@ouro.bot/cli 0.1.0-alpha.83 → 0.1.0-alpha.831
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/LICENSE +21 -0
- package/README.md +154 -23
- package/RepairGuide.ouro/agent.json +5 -0
- package/RepairGuide.ouro/psyche/IDENTITY.md +19 -0
- package/RepairGuide.ouro/psyche/SOUL.md +55 -0
- package/RepairGuide.ouro/skills/diagnose-broken-remote.md +63 -0
- package/RepairGuide.ouro/skills/diagnose-stacked-typed-issues.md +35 -0
- package/RepairGuide.ouro/skills/diagnose-sync-blocked.md +54 -0
- package/RepairGuide.ouro/skills/diagnose-vault-expired.md +60 -0
- package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/agent.json +4 -2
- package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/SOUL.md +2 -2
- package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/the-serpent.md +1 -1
- package/assets/bluebubbles-host +264 -0
- package/assets/sanctuary-host-launcher.sh +16 -0
- package/changelog.json +5308 -16
- package/deploy/unraid/Dockerfile +54 -0
- package/deploy/unraid/README.txt +2983 -0
- package/deploy/unraid/audit-container-spec.sh +4 -0
- package/deploy/unraid/container-runtime.json +1 -0
- package/deploy/unraid/docker-man-template-transaction.mjs +711 -0
- package/deploy/unraid/docker-man-template-xml.cjs +105 -0
- package/deploy/unraid/migrate-sanctuary-bundle.mjs +60 -0
- package/deploy/unraid/ouro-events/bootstrap-spool.sh +92 -0
- package/deploy/unraid/ouro-events/emit-event.mjs +310 -0
- package/deploy/unraid/ouro-events/emit-usenet-event.sh +54 -0
- package/deploy/unraid/ouro-events/install-usenet-guard.sh +435 -0
- package/deploy/unraid/ouro-events/usenet-health.sh +176 -0
- package/deploy/unraid/sanctuary-acceptance-adapter.sh +43 -0
- package/deploy/unraid/sanctuary-acceptance-contract.json +198 -0
- package/deploy/unraid/sanctuary-acceptance-harness.sh +23 -0
- package/deploy/unraid/sanctuary-authority-installation.json +36 -0
- package/deploy/unraid/sanctuary-authority-service.sh +30 -0
- package/deploy/unraid/sanctuary-deployment-target.mjs +710 -0
- package/deploy/unraid/sanctuary-safe-rename.py +24 -0
- package/deploy/unraid/sanctuary-unit16-host-broker.mjs +2084 -0
- package/deploy/unraid/sanctuary-unit16-run.sh +560 -0
- package/deploy/unraid/sanctuary-unit18-target-audit.sh +27 -0
- package/deploy/unraid/sanctuary.ouro/agent.json +66 -0
- package/deploy/unraid/sanctuary.ouro/arc/README.md +3 -0
- package/deploy/unraid/sanctuary.ouro/bundle-meta.json +5 -0
- package/deploy/unraid/sanctuary.ouro/habits/sanctuary-health.md +8 -0
- package/deploy/unraid/sanctuary.ouro/mcp/media-mcp.mjs +795 -0
- package/deploy/unraid/sanctuary.ouro/provider-readiness.json +11 -0
- package/deploy/unraid/sanctuary.ouro/psyche/ASPIRATIONS.md +5 -0
- package/deploy/unraid/sanctuary.ouro/psyche/IDENTITY.md +5 -0
- package/deploy/unraid/sanctuary.ouro/psyche/LORE.md +15 -0
- package/deploy/unraid/sanctuary.ouro/psyche/SOUL.md +25 -0
- package/deploy/unraid/sanctuary.ouro/psyche/TACIT.md +15 -0
- package/deploy/unraid/sanctuary.ouro/state/policy/steward.json +7 -0
- package/deploy/unraid/sanctuary.ouro/tool-profiles.json +135 -0
- package/deploy/unraid/sanctuary.xml +28 -0
- package/dist/a2a/card.js +57 -0
- package/dist/a2a/client.js +180 -0
- package/dist/a2a/config.js +50 -0
- package/dist/a2a/delegation-stores.js +56 -0
- package/dist/a2a/did-resolution.js +93 -0
- package/dist/a2a/identity.js +170 -0
- package/dist/a2a/inbound-share.js +107 -0
- package/dist/a2a/mission-result-wire.js +196 -0
- package/dist/a2a/onboarding.js +115 -0
- package/dist/a2a/pin-store.js +132 -0
- package/dist/a2a/seen-ledger.js +120 -0
- package/dist/a2a/server.js +604 -0
- package/dist/a2a/task-store.js +69 -0
- package/dist/a2a/transport.js +45 -0
- package/dist/a2a/types.js +3 -0
- package/dist/arc/attention-types.js +8 -0
- package/dist/arc/cares.js +360 -0
- package/dist/arc/episodes.js +118 -0
- package/dist/arc/evolution.js +490 -0
- package/dist/arc/flight-recorder.js +1034 -0
- package/dist/arc/intentions.js +134 -0
- package/dist/arc/json-store.js +117 -0
- package/dist/arc/obligations.js +386 -0
- package/dist/arc/packets.js +336 -0
- package/dist/arc/presence.js +185 -0
- package/dist/arc/task-lifecycle.js +57 -0
- package/dist/commerce/store.js +755 -0
- package/dist/commerce/types.js +3 -0
- package/dist/heart/active-work.js +798 -40
- package/dist/heart/agent-entry.js +252 -3
- package/dist/heart/approval-files.js +113 -0
- package/dist/heart/approval-store.js +960 -0
- package/dist/heart/attachments/image-normalize.js +194 -0
- package/dist/heart/attachments/materialize.js +97 -0
- package/dist/heart/attachments/originals.js +88 -0
- package/dist/heart/attachments/render.js +29 -0
- package/dist/heart/attachments/sources/bluebubbles.js +156 -0
- package/dist/heart/attachments/sources/cli-local-file.js +78 -0
- package/dist/heart/attachments/sources/index.js +18 -0
- package/dist/heart/attachments/sources/telegram.js +71 -0
- package/dist/heart/attachments/store.js +132 -0
- package/dist/heart/attachments/types.js +93 -0
- package/dist/heart/auth/auth-flow.js +495 -0
- package/dist/heart/autonomy-budget.js +478 -0
- package/dist/heart/awaiting/await-alert.js +148 -0
- package/dist/heart/awaiting/await-expiry.js +143 -0
- package/dist/heart/awaiting/await-loader.js +91 -0
- package/dist/heart/awaiting/await-parser.js +149 -0
- package/dist/heart/awaiting/await-runtime-state.js +111 -0
- package/dist/heart/awaiting/await-scheduler.js +382 -0
- package/dist/heart/background-operations.js +281 -0
- package/dist/heart/bridges/manager.js +137 -17
- package/dist/heart/bridges/store.js +14 -2
- package/dist/heart/bundle-state.js +168 -0
- package/dist/heart/commitments.js +44 -18
- package/dist/heart/config-registry.js +331 -0
- package/dist/heart/config.js +174 -131
- package/dist/heart/context-loss-gauntlet.js +387 -0
- package/dist/heart/context-loss-sentinel.js +1157 -0
- package/dist/heart/core.js +2169 -581
- package/dist/heart/cross-chat-delivery.js +9 -22
- package/dist/heart/daemon/agent-config-check.js +451 -0
- package/dist/heart/daemon/agent-discovery.js +185 -3
- package/dist/heart/daemon/agent-service.js +542 -0
- package/dist/heart/daemon/agentic-repair.js +547 -0
- package/dist/heart/daemon/await-private-wake.js +59 -0
- package/dist/heart/daemon/bluebubbles-cli-integration.js +71 -0
- package/dist/heart/daemon/bluebubbles-health-diagnostics.js +122 -0
- package/dist/heart/daemon/bluebubbles-host-protocol.js +433 -0
- package/dist/heart/daemon/bluebubbles-host.js +273 -0
- package/dist/heart/daemon/boot-sync-probe.js +197 -0
- package/dist/heart/daemon/cadence.js +180 -0
- package/dist/heart/daemon/cli-defaults.js +854 -0
- package/dist/heart/daemon/cli-desk.js +322 -0
- package/dist/heart/daemon/cli-exec.js +8822 -0
- package/dist/heart/daemon/cli-help.js +716 -0
- package/dist/heart/daemon/cli-parse.js +2771 -0
- package/dist/heart/daemon/cli-render-doctor.js +57 -0
- package/dist/heart/daemon/cli-render.js +777 -0
- package/dist/heart/daemon/cli-types.js +8 -0
- package/dist/heart/daemon/connect-bay.js +323 -0
- package/dist/heart/daemon/container-credential-bootstrap.js +273 -0
- package/dist/heart/daemon/container-healthcheck.js +112 -0
- package/dist/heart/daemon/container-runtime.js +97 -0
- package/dist/heart/daemon/container-spec-auditor-main.js +171 -0
- package/dist/heart/daemon/container-spec-auditor.js +229 -0
- package/dist/heart/daemon/daemon-bootstrap-startup.js +115 -0
- package/dist/heart/daemon/daemon-cli.js +29 -2349
- package/dist/heart/daemon/daemon-entry.js +930 -11
- package/dist/heart/daemon/daemon-health.js +186 -0
- package/dist/heart/daemon/daemon-rollup.js +57 -0
- package/dist/heart/daemon/daemon-runtime-sync.js +88 -13
- package/dist/heart/daemon/daemon-tombstone.js +236 -0
- package/dist/heart/daemon/daemon.js +2084 -105
- package/dist/heart/daemon/dns-workflow.js +394 -0
- package/dist/heart/daemon/doctor-types.js +8 -0
- package/dist/heart/daemon/doctor.js +1755 -0
- package/dist/heart/daemon/freshness.js +345 -0
- package/dist/heart/daemon/habit-private-wake.js +61 -0
- package/dist/heart/daemon/health-monitor.js +142 -11
- package/dist/heart/daemon/hooks/agent-config-v2.js +33 -0
- package/dist/heart/daemon/hooks/bundle-meta.js +135 -1
- package/dist/heart/daemon/http-health-probe.js +80 -0
- package/dist/heart/daemon/human-command-screens.js +234 -0
- package/dist/heart/daemon/human-readiness.js +114 -0
- package/dist/heart/daemon/inner-status.js +78 -0
- package/dist/heart/daemon/interactive-repair.js +394 -0
- package/dist/heart/daemon/launchd.js +37 -8
- package/dist/heart/daemon/log-tailer.js +79 -10
- package/dist/heart/daemon/logs-prune.js +132 -0
- package/dist/heart/daemon/mcp-canary.js +524 -0
- package/dist/heart/daemon/message-router.js +65 -5
- package/dist/heart/daemon/migrate-to-desk.js +848 -0
- package/dist/heart/daemon/os-cron-deps.js +135 -0
- package/dist/heart/daemon/os-cron.js +22 -14
- package/dist/heart/daemon/ouro-bot-entry.js +4 -2
- package/dist/heart/daemon/ouro-entry.js +3 -1
- package/dist/heart/daemon/plugin-cli.js +432 -0
- package/dist/heart/daemon/process-manager.js +733 -61
- package/dist/heart/daemon/provider-discovery.js +137 -0
- package/dist/heart/daemon/provider-ping-progress.js +83 -0
- package/dist/heart/daemon/prunable-bundle.js +144 -0
- package/dist/heart/daemon/pulse.js +511 -0
- package/dist/heart/daemon/readiness-repair.js +365 -0
- package/dist/heart/daemon/run-hooks.js +2 -0
- package/dist/heart/daemon/runtime-logging.js +47 -14
- package/dist/heart/daemon/runtime-metadata.js +2 -30
- package/dist/heart/daemon/runtime-mode.js +13 -2
- package/dist/heart/daemon/safe-mode.js +161 -0
- package/dist/heart/daemon/sanctuary-acceptance-adapter.js +2654 -0
- package/dist/heart/daemon/sanctuary-acceptance-harness.js +1830 -0
- package/dist/heart/daemon/sanctuary-acceptance-marker.js +267 -0
- package/dist/heart/daemon/sanctuary-acceptance-scenarios.js +955 -0
- package/dist/heart/daemon/sanctuary-authority-codec.js +86 -0
- package/dist/heart/daemon/sanctuary-authority-epoch.js +256 -0
- package/dist/heart/daemon/sanctuary-authority-installation.js +140 -0
- package/dist/heart/daemon/sanctuary-authority-ledger.js +241 -0
- package/dist/heart/daemon/sanctuary-authority-root-lifecycle.js +819 -0
- package/dist/heart/daemon/sanctuary-authority-vault-migration.js +79 -0
- package/dist/heart/daemon/sanctuary-bundle-migration.js +729 -0
- package/dist/heart/daemon/sanctuary-host-authority.js +1008 -0
- package/dist/heart/daemon/sanctuary-host-detached-supervisor.js +494 -0
- package/dist/heart/daemon/sanctuary-host-executor.js +670 -0
- package/dist/heart/daemon/sanctuary-host-linux-kernel.js +334 -0
- package/dist/heart/daemon/sanctuary-host-supervisor-entry.js +207 -0
- package/dist/heart/daemon/sanctuary-host-supervisor.js +95 -0
- package/dist/heart/daemon/sanctuary-package-management.js +103 -0
- package/dist/heart/daemon/sanctuary-scheduler-liveness.js +227 -0
- package/dist/heart/daemon/sanctuary-scheduler-origin.js +132 -0
- package/dist/heart/daemon/sanctuary-telegram-authority-entry.js +445 -0
- package/dist/heart/daemon/sanctuary-telegram-authority-gateway.js +585 -0
- package/dist/heart/daemon/sanctuary-telegram-authority-service.js +630 -0
- package/dist/heart/daemon/sense-manager.js +699 -48
- package/dist/heart/daemon/session-id-resolver.js +131 -0
- package/dist/heart/daemon/skill-management-installer.js +1 -1
- package/dist/heart/daemon/socket-client.js +180 -12
- package/dist/heart/daemon/stale-bundle-prune.js +113 -0
- package/dist/heart/daemon/startup-tui.js +339 -0
- package/dist/heart/daemon/supercronic-supervisor.js +282 -0
- package/dist/heart/daemon/task-scheduler.js +117 -39
- package/dist/heart/daemon/terminal-ui.js +499 -0
- package/dist/heart/daemon/thoughts.js +138 -54
- package/dist/heart/daemon/up-progress.js +366 -0
- package/dist/heart/daemon/vault-items.js +56 -0
- package/dist/heart/delegation.js +1 -4
- package/dist/heart/external-events/router.js +1430 -0
- package/dist/heart/frontend-approval-runtime.js +506 -0
- package/dist/heart/frontend-journal.js +215 -0
- package/dist/heart/frontend-session-service.js +237 -0
- package/dist/heart/frontend-socket-client.js +164 -0
- package/dist/heart/frontend-socket.js +400 -0
- package/dist/heart/habits/habit-cancel.js +810 -0
- package/dist/heart/habits/habit-lifecycle.js +1327 -0
- package/dist/heart/habits/habit-migration.js +194 -0
- package/dist/heart/habits/habit-parser.js +278 -0
- package/dist/heart/habits/habit-runtime-state.js +93 -0
- package/dist/heart/habits/habit-scheduler.js +653 -0
- package/dist/heart/habits/habit-session-summary.js +318 -0
- package/dist/heart/habits/habit-session.js +636 -0
- package/dist/heart/{daemon → hatch}/hatch-flow.js +55 -62
- package/dist/heart/{daemon → hatch}/hatch-specialist.js +6 -8
- package/dist/heart/{daemon → hatch}/specialist-prompt.js +12 -9
- package/dist/heart/{daemon → hatch}/specialist-tools.js +53 -18
- package/dist/heart/identity.js +196 -59
- package/dist/heart/kept-notes.js +289 -0
- package/dist/heart/kicks.js +1 -1
- package/dist/heart/machine-identity.js +161 -0
- package/dist/heart/mail-import-discovery.js +356 -0
- package/dist/heart/mailbox/mailbox-http-hooks.js +98 -0
- package/dist/heart/mailbox/mailbox-http-response.js +7 -0
- package/dist/heart/mailbox/mailbox-http-routes.js +398 -0
- package/dist/heart/mailbox/mailbox-http-static.js +103 -0
- package/dist/heart/mailbox/mailbox-http-transport.js +129 -0
- package/dist/heart/mailbox/mailbox-http.js +99 -0
- package/dist/heart/mailbox/mailbox-read.js +39 -0
- package/dist/heart/mailbox/mailbox-types.js +27 -0
- package/dist/heart/mailbox/mailbox-view.js +197 -0
- package/dist/heart/mailbox/readers/agent-machine.js +428 -0
- package/dist/heart/mailbox/readers/continuity-readers.js +329 -0
- package/dist/heart/mailbox/readers/mail.js +375 -0
- package/dist/heart/mailbox/readers/runtime-readers.js +823 -0
- package/dist/heart/mailbox/readers/sessions.js +231 -0
- package/dist/heart/mailbox/readers/shared.js +111 -0
- package/dist/heart/mcp/mcp-server.js +696 -0
- package/dist/heart/migrate-config.js +100 -0
- package/dist/heart/model-capabilities.js +11 -0
- package/dist/heart/orientation-frame.js +345 -0
- package/dist/heart/platform.js +81 -0
- package/dist/heart/primitives.js +1 -1
- package/dist/heart/private-runtime/decision-renderer.js +158 -0
- package/dist/heart/private-runtime/index.js +18 -0
- package/dist/heart/private-runtime/ledger.js +221 -0
- package/dist/heart/private-runtime/policy.js +252 -0
- package/dist/heart/private-runtime/types.js +2 -0
- package/dist/heart/progress-story.js +1 -1
- package/dist/heart/provider-attempt.js +137 -0
- package/dist/heart/provider-binding-resolver.js +273 -0
- package/dist/heart/provider-credentials.js +449 -0
- package/dist/heart/provider-failover.js +311 -0
- package/dist/heart/provider-models.js +96 -0
- package/dist/heart/provider-ping.js +265 -0
- package/dist/heart/provider-readiness-cache.js +119 -0
- package/dist/heart/provider-visibility.js +188 -0
- package/dist/heart/providers/anthropic-token.js +131 -0
- package/dist/heart/providers/anthropic.js +173 -60
- package/dist/heart/providers/azure.js +23 -11
- package/dist/heart/providers/error-classification.js +127 -0
- package/dist/heart/providers/github-copilot.js +34 -38
- package/dist/heart/providers/minimax-vlm.js +189 -0
- package/dist/heart/providers/minimax.js +26 -8
- package/dist/heart/providers/openai-codex-token.js +349 -0
- package/dist/heart/providers/openai-codex.js +55 -40
- package/dist/heart/providers/openai-compatible.js +177 -0
- package/dist/heart/run-ledger.js +247 -0
- package/dist/heart/runtime-capability-check.js +170 -0
- package/dist/heart/runtime-credentials.js +607 -0
- package/dist/heart/runtime-cwd.js +87 -0
- package/dist/heart/sense-truth.js +22 -4
- package/dist/heart/session-activity.js +92 -24
- package/dist/heart/session-events.js +1504 -0
- package/dist/heart/session-playback-cli-main.js +5 -0
- package/dist/heart/session-playback-cli.js +36 -0
- package/dist/heart/session-playback.js +231 -0
- package/dist/heart/session-redaction-repair-cli-main.js +31 -0
- package/dist/heart/session-redaction-repair.js +552 -0
- package/dist/heart/session-stats-cli-main.js +5 -0
- package/dist/heart/session-stats.js +183 -0
- package/dist/heart/session-transcript.js +133 -0
- package/dist/heart/start-of-turn-packet.js +372 -0
- package/dist/heart/steward-policy.js +618 -0
- package/dist/heart/streaming.js +604 -207
- package/dist/heart/structured-output.js +196 -0
- package/dist/heart/sync-classification.js +176 -0
- package/dist/heart/sync.js +449 -0
- package/dist/heart/target-resolution.js +11 -7
- package/dist/heart/tempo.js +93 -0
- package/dist/heart/temporal-view.js +41 -0
- package/dist/heart/timeouts.js +101 -0
- package/dist/heart/tool-activity-callbacks.js +59 -0
- package/dist/heart/tool-approval.js +382 -0
- package/dist/heart/tool-description.js +155 -0
- package/dist/heart/tool-friction.js +55 -0
- package/dist/heart/tool-loop.js +200 -0
- package/dist/heart/turn-context.js +482 -0
- package/dist/heart/turn-execution-lease.js +30 -0
- package/dist/heart/{daemon → versioning}/ouro-bot-global-installer.js +6 -5
- package/dist/heart/{daemon → versioning}/ouro-bot-wrapper.js +1 -1
- package/dist/heart/versioning/ouro-path-installer.js +432 -0
- package/dist/heart/versioning/ouro-recovery-launcher.js +76 -0
- package/dist/heart/versioning/ouro-version-manager.js +409 -0
- package/dist/heart/{daemon → versioning}/staged-restart.js +40 -8
- package/dist/heart/{daemon → versioning}/update-checker.js +6 -1
- package/dist/heart/versioning/update-hooks.js +154 -0
- package/dist/heart/versioning/version-intent.js +114 -0
- package/dist/heart/work-card.js +380 -0
- package/dist/mailbox-ui/assets/index-Cyv4mw3Y.js +1 -0
- package/dist/mailbox-ui/assets/index-Du_9G9WO.css +1 -0
- package/dist/mailbox-ui/assets/vendor-CcN1XpQ9.js +61 -0
- package/dist/mailbox-ui/index.html +16 -0
- package/dist/mailroom/attention.js +167 -0
- package/dist/mailroom/autonomy.js +209 -0
- package/dist/mailroom/blob-store.js +889 -0
- package/dist/mailroom/body-cache.js +61 -0
- package/dist/mailroom/cache-sync-cli.js +58 -0
- package/dist/mailroom/core.js +803 -0
- package/dist/mailroom/entry.js +160 -0
- package/dist/mailroom/file-store.js +568 -0
- package/dist/mailroom/hosted-cache-sync.js +384 -0
- package/dist/mailroom/mbox-import.js +393 -0
- package/dist/mailroom/migration.js +164 -0
- package/dist/mailroom/outbound.js +380 -0
- package/dist/mailroom/policy.js +263 -0
- package/dist/mailroom/reader.js +292 -0
- package/dist/mailroom/search-cache.js +513 -0
- package/dist/mailroom/search-relevance.js +319 -0
- package/dist/mailroom/smtp-ingress.js +176 -0
- package/dist/mailroom/source-state.js +176 -0
- package/dist/mailroom/thread.js +109 -0
- package/dist/mailroom/travel-extract.js +89 -0
- package/dist/mind/bundle-manifest.js +24 -2
- package/dist/mind/context.js +309 -111
- package/dist/mind/desk-section.js +362 -0
- package/dist/mind/diary-integrity.js +60 -0
- package/dist/mind/{memory.js → diary.js} +68 -77
- package/dist/mind/embedding-provider.js +60 -0
- package/dist/mind/file-state.js +179 -0
- package/dist/mind/{associative-recall.js → note-search.js} +47 -58
- package/dist/mind/obligation-steering.js +199 -3
- package/dist/mind/pending.js +36 -10
- package/dist/mind/prompt-budget.js +479 -0
- package/dist/mind/prompt-refresh.js +3 -2
- package/dist/mind/prompt.js +1050 -189
- package/dist/mind/provenance-trust.js +26 -0
- package/dist/mind/record-paths.js +312 -0
- package/dist/mind/scrutiny.js +173 -0
- package/dist/mind/session-transaction.js +564 -0
- package/dist/nerves/cli-logging.js +7 -1
- package/dist/nerves/coverage/audit-rules.js +15 -6
- package/dist/nerves/coverage/audit.js +28 -2
- package/dist/nerves/coverage/cli.js +1 -1
- package/dist/nerves/coverage/contract.js +5 -5
- package/dist/nerves/coverage/file-completeness.js +139 -5
- package/dist/nerves/coverage/run-artifacts.js +55 -35
- package/dist/nerves/coverage/source-scanner.js +4 -4
- package/dist/nerves/event-buffer.js +111 -0
- package/dist/nerves/index.js +293 -9
- package/dist/nerves/observation.js +20 -0
- package/dist/nerves/redact.js +79 -0
- package/dist/nerves/review/cli-main.js +5 -0
- package/dist/nerves/review/cli.js +156 -0
- package/dist/nerves/review/core.js +159 -0
- package/dist/nerves/runtime.js +17 -1
- package/dist/repertoire/ado-client.js +15 -56
- package/dist/repertoire/ado-semantic.js +16 -10
- package/dist/repertoire/api-client.js +97 -0
- package/dist/repertoire/bitwarden-store.js +1045 -0
- package/dist/repertoire/bundle-templates.js +71 -0
- package/dist/repertoire/bw-installer.js +180 -0
- package/dist/repertoire/coding/codex-jsonl.js +64 -0
- package/dist/repertoire/coding/context-pack.js +331 -0
- package/dist/repertoire/coding/feedback.js +174 -32
- package/dist/repertoire/coding/index.js +15 -3
- package/dist/repertoire/coding/manager.js +159 -10
- package/dist/repertoire/coding/spawner.js +58 -11
- package/dist/repertoire/coding/tools.js +221 -15
- package/dist/repertoire/coding/workbench-client.js +272 -0
- package/dist/repertoire/coding/workbench-manager.js +346 -0
- package/dist/repertoire/commerce-errors.js +109 -0
- package/dist/repertoire/commerce-self-test.js +156 -0
- package/dist/repertoire/credential-access.js +178 -0
- package/dist/repertoire/desk/classifier.js +362 -0
- package/dist/repertoire/duffel-client.js +185 -0
- package/dist/repertoire/github-client.js +14 -55
- package/dist/repertoire/graph-client.js +11 -52
- package/dist/repertoire/guardrails.js +811 -18
- package/dist/repertoire/mcp-client.js +44 -3
- package/dist/repertoire/mcp-manager.js +427 -139
- package/dist/repertoire/mcp-tools.js +124 -0
- package/dist/repertoire/plugin-mcp.js +175 -0
- package/dist/repertoire/plugins.js +253 -0
- package/dist/repertoire/relationship-authorization.js +322 -0
- package/dist/repertoire/shell-sessions.js +134 -0
- package/dist/repertoire/skills.js +48 -4
- package/dist/repertoire/stripe-client.js +131 -0
- package/dist/repertoire/tool-arguments.js +170 -0
- package/dist/repertoire/tool-results.js +29 -0
- package/dist/repertoire/tools-a2a.js +699 -0
- package/dist/repertoire/tools-attachments.js +322 -0
- package/dist/repertoire/tools-awaiting.js +575 -0
- package/dist/repertoire/tools-base.js +77 -1138
- package/dist/repertoire/tools-bluebubbles.js +2 -0
- package/dist/repertoire/tools-bridge.js +144 -0
- package/dist/repertoire/tools-bundle.js +993 -0
- package/dist/repertoire/tools-commerce.js +253 -0
- package/dist/repertoire/tools-config.js +186 -0
- package/dist/repertoire/tools-continuity.js +575 -0
- package/dist/repertoire/tools-credential.js +383 -0
- package/dist/repertoire/tools-evolution.js +527 -0
- package/dist/repertoire/tools-files.js +344 -0
- package/dist/repertoire/tools-flight.js +290 -0
- package/dist/repertoire/tools-flow.js +119 -0
- package/dist/repertoire/tools-github.js +3 -8
- package/dist/repertoire/tools-habits.js +103 -0
- package/dist/repertoire/tools-mail.js +1828 -0
- package/dist/repertoire/tools-notes.js +485 -0
- package/dist/repertoire/tools-obligations.js +182 -0
- package/dist/repertoire/tools-orientation.js +31 -0
- package/dist/repertoire/tools-record.js +482 -0
- package/dist/repertoire/tools-rsvp.js +139 -0
- package/dist/repertoire/tools-runtime.js +150 -0
- package/dist/repertoire/tools-sanctuary-host.js +202 -0
- package/dist/repertoire/tools-session.js +1133 -0
- package/dist/repertoire/tools-shell.js +149 -0
- package/dist/repertoire/tools-steward-policy.js +119 -0
- package/dist/repertoire/tools-stripe.js +224 -0
- package/dist/repertoire/tools-surface.js +369 -0
- package/dist/repertoire/tools-teams.js +12 -39
- package/dist/repertoire/tools-telegram-contacts.js +37 -0
- package/dist/repertoire/tools-travel.js +125 -0
- package/dist/repertoire/tools-trip.js +982 -0
- package/dist/repertoire/tools-unraid.js +531 -0
- package/dist/repertoire/tools-user-profile.js +146 -0
- package/dist/repertoire/tools-vault.js +40 -0
- package/dist/repertoire/tools-voice.js +145 -0
- package/dist/repertoire/tools.js +494 -148
- package/dist/repertoire/travel-api-client.js +360 -0
- package/dist/repertoire/unraid-client.js +155 -0
- package/dist/repertoire/unraid-restart.js +339 -0
- package/dist/repertoire/user-profile.js +131 -0
- package/dist/repertoire/vault-setup.js +246 -0
- package/dist/repertoire/vault-unlock.js +628 -0
- package/dist/rsvp/aisleplanner-client.js +354 -0
- package/dist/rsvp/cli.js +926 -0
- package/dist/rsvp/config.js +327 -0
- package/dist/rsvp/cutover.js +433 -0
- package/dist/rsvp/diagnostics.js +232 -0
- package/dist/rsvp/diff-renderer.js +176 -0
- package/dist/rsvp/habit-policy.js +110 -0
- package/dist/rsvp/habit-stage.js +123 -0
- package/dist/rsvp/incident-bundle.js +97 -0
- package/dist/rsvp/migration.js +204 -0
- package/dist/rsvp/native-habit-runner.js +630 -0
- package/dist/rsvp/outbound-state.js +628 -0
- package/dist/rsvp/query.js +118 -0
- package/dist/rsvp/replay.js +233 -0
- package/dist/rsvp/snapshot.js +232 -0
- package/dist/rsvp/spend-ledger.js +175 -0
- package/dist/scripts/claude-code-hook.js +41 -0
- package/dist/scripts/claude-code-stop-hook.js +47 -0
- package/dist/senses/a2a-entry.js +115 -0
- package/dist/senses/acp-server.js +386 -0
- package/dist/senses/attention-queue.js +186 -0
- package/dist/senses/await-turn-message.js +58 -0
- package/dist/senses/bluebubbles/active-turns.js +216 -0
- package/dist/senses/bluebubbles/attachment-cache.js +53 -0
- package/dist/senses/bluebubbles/attachment-download.js +137 -0
- package/dist/senses/{bluebubbles-client.js → bluebubbles/client.js} +355 -40
- package/dist/senses/bluebubbles/context-packet.js +207 -0
- package/dist/senses/bluebubbles/context-smoke.js +144 -0
- package/dist/senses/bluebubbles/entry.js +90 -0
- package/dist/senses/{bluebubbles-inbound-log.js → bluebubbles/inbound-log.js} +21 -3
- package/dist/senses/bluebubbles/index.js +3841 -0
- package/dist/senses/bluebubbles/latest-turn.js +311 -0
- package/dist/senses/{bluebubbles-media.js → bluebubbles/media.js} +121 -71
- package/dist/senses/{bluebubbles-model.js → bluebubbles/model.js} +159 -28
- package/dist/senses/{bluebubbles-mutation-log.js → bluebubbles/mutation-log.js} +24 -13
- package/dist/senses/bluebubbles/outbound-state.js +308 -0
- package/dist/senses/bluebubbles/processed-log.js +133 -0
- package/dist/senses/bluebubbles/reaction-policy.js +47 -0
- package/dist/senses/bluebubbles/replay.js +284 -0
- package/dist/senses/{bluebubbles-runtime-state.js → bluebubbles/runtime-state.js} +30 -2
- package/dist/senses/bluebubbles/semantic-receipts.js +1986 -0
- package/dist/senses/{bluebubbles-session-cleanup.js → bluebubbles/session-cleanup.js} +1 -1
- package/dist/senses/bluebubbles/webhook-registration.js +228 -0
- package/dist/senses/bluebubbles-meta-guard.js +39 -0
- package/dist/senses/cli/bracketed-paste.js +82 -0
- package/dist/senses/cli/image-paste.js +287 -0
- package/dist/senses/cli/image-ref-navigation.js +75 -0
- package/dist/senses/cli/ink-app.js +156 -0
- package/dist/senses/cli/inline-diff.js +64 -0
- package/dist/senses/cli/input-keys.js +174 -0
- package/dist/senses/cli/kill-ring.js +86 -0
- package/dist/senses/cli/message-list.js +51 -0
- package/dist/senses/cli/ouro-tui.js +607 -0
- package/dist/senses/cli/spinner-imperative.js +135 -0
- package/dist/senses/cli/spinner.js +101 -0
- package/dist/senses/cli/status-line.js +60 -0
- package/dist/senses/cli/streaming-markdown.js +526 -0
- package/dist/senses/cli/tool-display.js +85 -0
- package/dist/senses/cli/tool-render.js +85 -0
- package/dist/senses/cli/tui-store.js +241 -0
- package/dist/senses/cli/virtual-list.js +35 -0
- package/dist/senses/cli-entry.js +60 -8
- package/dist/senses/cli.js +604 -320
- package/dist/senses/commands.js +66 -3
- package/dist/senses/context-packet-ledger.js +371 -0
- package/dist/senses/context-packets.js +154 -0
- package/dist/senses/habit-lifecycle-guard.js +24 -0
- package/dist/senses/habit-turn-message.js +160 -0
- package/dist/senses/ingress-evidence.js +2 -0
- package/dist/senses/mail-entry.js +66 -0
- package/dist/senses/mail.js +524 -0
- package/dist/senses/pipeline.js +1115 -204
- package/dist/senses/private-runtime-worker.js +859 -0
- package/dist/senses/private-runtime.js +1517 -0
- package/dist/senses/proactive-content-guard.js +51 -0
- package/dist/senses/root-host-approval-port.js +345 -0
- package/dist/senses/root-host-approval-runtime.js +393 -0
- package/dist/senses/sanctuary-authority-resident.js +102 -0
- package/dist/senses/sanctuary-download-credit-presentation.js +31 -0
- package/dist/senses/sanctuary-full-visibility-contract.js +302 -0
- package/dist/senses/sanctuary-grounding.js +118 -0
- package/dist/senses/sanctuary-health-acceptance-probe-entry.js +12 -0
- package/dist/senses/sanctuary-health-acceptance-probe.js +774 -0
- package/dist/senses/sanctuary-health-runner.js +100 -0
- package/dist/senses/sanctuary-health.js +408 -0
- package/dist/senses/sanctuary-install-state-contract.js +126 -0
- package/dist/senses/sanctuary-interactive-control.js +410 -0
- package/dist/senses/sanctuary-media-catalog-contract.js +297 -0
- package/dist/senses/sanctuary-media-optimization.js +514 -0
- package/dist/senses/sanctuary-runtime.js +340 -0
- package/dist/senses/sanctuary-sab.js +85 -0
- package/dist/senses/sanctuary-storage-optimization-contract.js +32 -0
- package/dist/senses/shared-turn.js +772 -0
- package/dist/senses/surface-tool.js +109 -0
- package/dist/senses/teams-entry.js +60 -8
- package/dist/senses/teams.js +519 -218
- package/dist/senses/telegram-admission.js +718 -0
- package/dist/senses/telegram-approval-runtime.js +793 -0
- package/dist/senses/telegram-attachments.js +186 -0
- package/dist/senses/telegram-audit-ledger.js +220 -0
- package/dist/senses/telegram-authority-transport.js +231 -0
- package/dist/senses/telegram-client.js +1749 -0
- package/dist/senses/telegram-effect-adapter.js +896 -0
- package/dist/senses/telegram-entry.js +83 -0
- package/dist/senses/telegram.js +2324 -0
- package/dist/senses/trust-gate.js +104 -9
- package/dist/senses/voice/audio-playback.js +237 -0
- package/dist/senses/voice/audio-routing.js +119 -0
- package/dist/senses/voice/elevenlabs.js +202 -0
- package/dist/senses/voice/floor-control.js +431 -0
- package/dist/senses/voice/floor-controller.js +115 -0
- package/dist/senses/voice/golden-path.js +116 -0
- package/dist/senses/voice/index.js +29 -0
- package/dist/senses/voice/meeting.js +113 -0
- package/dist/senses/voice/outbound.js +190 -0
- package/dist/senses/voice/phone.js +33 -0
- package/dist/senses/voice/playback.js +139 -0
- package/dist/senses/voice/realtime-eval.js +496 -0
- package/dist/senses/voice/realtime-trace.js +531 -0
- package/dist/senses/voice/transcript.js +70 -0
- package/dist/senses/voice/turn.js +191 -0
- package/dist/senses/voice/twilio-phone-runtime.js +807 -0
- package/dist/senses/voice/twilio-phone.js +5031 -0
- package/dist/senses/voice/types.js +2 -0
- package/dist/senses/voice/whisper.js +161 -0
- package/dist/senses/voice-entry.js +81 -0
- package/dist/senses/voice-realtime-eval-command.js +99 -0
- package/dist/senses/voice-realtime-eval-entry.js +21 -0
- package/dist/senses/voice-twilio-entry.js +87 -0
- package/dist/trips/core.js +138 -0
- package/dist/trips/store.js +265 -0
- package/dist/util/frontmatter.js +69 -0
- package/npm-shrinkwrap.json +8138 -0
- package/package.json +72 -13
- package/skills/agent-commerce.md +113 -0
- package/skills/browser-navigation.md +117 -0
- package/skills/commerce-setup-guide.md +116 -0
- package/skills/commerce-setup.md +84 -0
- package/skills/configure-dev-tools.md +99 -0
- package/skills/travel-planning.md +138 -0
- package/dist/heart/daemon/auth-flow.js +0 -430
- package/dist/heart/daemon/ouro-path-installer.js +0 -260
- package/dist/heart/daemon/ouro-version-manager.js +0 -171
- package/dist/heart/daemon/update-hooks.js +0 -138
- package/dist/heart/obligations.js +0 -191
- package/dist/heart/safe-workspace.js +0 -228
- package/dist/heart/session-recall.js +0 -116
- package/dist/mind/friends/channel.js +0 -84
- package/dist/mind/friends/group-context.js +0 -144
- package/dist/mind/friends/resolver.js +0 -84
- package/dist/mind/friends/store-file.js +0 -190
- package/dist/mind/friends/store.js +0 -4
- package/dist/mind/friends/tokens.js +0 -26
- package/dist/mind/friends/trust-explanation.js +0 -74
- package/dist/mind/friends/types.js +0 -29
- package/dist/repertoire/tasks/board.js +0 -134
- package/dist/repertoire/tasks/index.js +0 -224
- package/dist/repertoire/tasks/lifecycle.js +0 -80
- package/dist/repertoire/tasks/middleware.js +0 -65
- package/dist/repertoire/tasks/parser.js +0 -173
- package/dist/repertoire/tasks/scanner.js +0 -132
- package/dist/repertoire/tasks/transitions.js +0 -144
- package/dist/senses/bluebubbles-entry.js +0 -13
- package/dist/senses/bluebubbles.js +0 -1181
- package/dist/senses/debug-activity.js +0 -154
- package/dist/senses/inner-dialog-worker.js +0 -90
- package/dist/senses/inner-dialog.js +0 -525
- package/subagents/README.md +0 -7
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/basilisk.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/jafar.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/jormungandr.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/kaa.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/medusa.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/monty.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/nagini.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/ouroboros.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/python.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/quetzalcoatl.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/sir-hiss.md +0 -0
- /package/{AdoptionSpecialist.ouro → SerpentGuide.ouro}/psyche/identities/the-snake.md +0 -0
- /package/dist/{repertoire/tasks/types.js → heart/attachments/sources/adapter.js} +0 -0
- /package/dist/heart/{daemon → hatch}/hatch-animation.js +0 -0
- /package/dist/heart/{daemon → hatch}/specialist-orchestrator.js +0 -0
- /package/dist/heart/{daemon → versioning}/ouro-uti.js +0 -0
- /package/dist/heart/{daemon → versioning}/wrapper-publish-guard.js +0 -0
|
@@ -0,0 +1,716 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI help system — command registry, grouped help output, and per-command help.
|
|
4
|
+
*
|
|
5
|
+
* Pure data + formatting: no side effects, no daemon communication.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.COMMAND_REGISTRY = void 0;
|
|
9
|
+
exports.levenshteinDistance = levenshteinDistance;
|
|
10
|
+
exports.suggestCommand = suggestCommand;
|
|
11
|
+
exports.getGroupedHelp = getGroupedHelp;
|
|
12
|
+
exports.getCommandHelp = getCommandHelp;
|
|
13
|
+
const core_1 = require("../../nerves/review/core");
|
|
14
|
+
// ── Registry ──
|
|
15
|
+
exports.COMMAND_REGISTRY = {
|
|
16
|
+
up: {
|
|
17
|
+
category: "Lifecycle",
|
|
18
|
+
description: "Start and check Ouro: bring up the background runtime, refresh what this machine needs, and show anything that still needs attention. A pinned rollback stays pinned during ordinary starts; use `--latest` to preflight and explicitly return to the latest release. In a human TTY, bare `ouro` opens the home screen instead; noninteractive shells still route bare `ouro` to `ouro up`.",
|
|
19
|
+
usage: "ouro [up] [--no-repair] [--latest]",
|
|
20
|
+
example: "ouro up --no-repair",
|
|
21
|
+
},
|
|
22
|
+
stop: {
|
|
23
|
+
category: "Lifecycle",
|
|
24
|
+
description: "Stop the running daemon",
|
|
25
|
+
usage: "ouro stop",
|
|
26
|
+
example: "ouro stop",
|
|
27
|
+
},
|
|
28
|
+
down: {
|
|
29
|
+
category: "Lifecycle",
|
|
30
|
+
description: "Stop the running daemon (alias for stop)",
|
|
31
|
+
usage: "ouro down",
|
|
32
|
+
example: "ouro down",
|
|
33
|
+
},
|
|
34
|
+
status: {
|
|
35
|
+
category: "Lifecycle",
|
|
36
|
+
description: "Show Ouro status for this machine",
|
|
37
|
+
usage: "ouro status",
|
|
38
|
+
example: "ouro status",
|
|
39
|
+
},
|
|
40
|
+
logs: {
|
|
41
|
+
category: "Lifecycle",
|
|
42
|
+
description: "View or prune daemon logs",
|
|
43
|
+
usage: "ouro logs | ouro logs prune --agent <name>",
|
|
44
|
+
example: "ouro logs",
|
|
45
|
+
subcommands: ["prune"],
|
|
46
|
+
},
|
|
47
|
+
dev: {
|
|
48
|
+
category: "Lifecycle",
|
|
49
|
+
description: "Start daemon in development mode from a local repo",
|
|
50
|
+
usage: "ouro dev [--repo-path <path>] [--clone [--clone-path <path>]]",
|
|
51
|
+
example: "ouro dev --repo-path ~/code/ouroboros",
|
|
52
|
+
},
|
|
53
|
+
hatch: {
|
|
54
|
+
category: "Lifecycle",
|
|
55
|
+
description: "Create a new agent",
|
|
56
|
+
usage: "ouro hatch [--agent <name>] [--human <name>] [--provider <provider>]",
|
|
57
|
+
example: "ouro hatch --agent Sprout --human <your-name> --provider anthropic",
|
|
58
|
+
},
|
|
59
|
+
rollback: {
|
|
60
|
+
category: "Lifecycle",
|
|
61
|
+
description: "Pin Ouro to an exact installed CLI version; ordinary `ouro up` preserves the pinned intent until `ouro up --latest` succeeds",
|
|
62
|
+
usage: "ouro rollback [<version>]",
|
|
63
|
+
example: "ouro rollback 0.1.0-alpha.250",
|
|
64
|
+
},
|
|
65
|
+
versions: {
|
|
66
|
+
category: "Lifecycle",
|
|
67
|
+
description: "List installed CLI versions and show the active version intent mode and target",
|
|
68
|
+
usage: "ouro versions",
|
|
69
|
+
example: "ouro versions",
|
|
70
|
+
},
|
|
71
|
+
clone: {
|
|
72
|
+
category: "Lifecycle",
|
|
73
|
+
description: "Clone an existing agent bundle from a git remote onto this machine",
|
|
74
|
+
usage: "ouro clone <remote> [--agent <name>]",
|
|
75
|
+
example: "ouro clone https://github.com/user/myagent.ouro.git",
|
|
76
|
+
},
|
|
77
|
+
doctor: {
|
|
78
|
+
category: "Lifecycle",
|
|
79
|
+
description: "Run diagnostic checks on the ouro installation",
|
|
80
|
+
usage: "ouro doctor",
|
|
81
|
+
example: "ouro doctor",
|
|
82
|
+
},
|
|
83
|
+
mailbox: {
|
|
84
|
+
category: "Agents",
|
|
85
|
+
description: "Show the agent's current mailbox overview",
|
|
86
|
+
usage: "ouro mailbox [--json]",
|
|
87
|
+
example: "ouro mailbox --json",
|
|
88
|
+
},
|
|
89
|
+
outlook: {
|
|
90
|
+
category: "Agents",
|
|
91
|
+
description: "Deprecated alias for `ouro mailbox`",
|
|
92
|
+
usage: "ouro outlook [--json]",
|
|
93
|
+
example: "ouro outlook --json",
|
|
94
|
+
hidden: true,
|
|
95
|
+
},
|
|
96
|
+
whoami: {
|
|
97
|
+
category: "Agents",
|
|
98
|
+
description: "Show current agent identity info",
|
|
99
|
+
usage: "ouro whoami [--agent <name>]",
|
|
100
|
+
example: "ouro whoami",
|
|
101
|
+
},
|
|
102
|
+
config: {
|
|
103
|
+
category: "Agents",
|
|
104
|
+
description: "Legacy model compatibility helpers; prefer `ouro use` and `ouro check`",
|
|
105
|
+
usage: "ouro config <subcommand> [--agent <name>]",
|
|
106
|
+
example: "ouro config models",
|
|
107
|
+
subcommands: ["model", "models"],
|
|
108
|
+
hidden: true,
|
|
109
|
+
},
|
|
110
|
+
changelog: {
|
|
111
|
+
category: "Agents",
|
|
112
|
+
description: "View the agent changelog",
|
|
113
|
+
usage: "ouro changelog [--from <version>] [--agent <name>]",
|
|
114
|
+
example: "ouro changelog --from 0.1.0-alpha.250",
|
|
115
|
+
},
|
|
116
|
+
chat: {
|
|
117
|
+
category: "Chat",
|
|
118
|
+
description: "Open an interactive chat session with an agent",
|
|
119
|
+
usage: "ouro chat <agent>",
|
|
120
|
+
example: "ouro chat ouroboros",
|
|
121
|
+
},
|
|
122
|
+
msg: {
|
|
123
|
+
category: "Chat",
|
|
124
|
+
description: "Send a single message to an agent",
|
|
125
|
+
usage: "ouro msg --to <agent> [--session <id>] [--task <ref>] <message>",
|
|
126
|
+
example: "ouro msg --to ouroboros hello there",
|
|
127
|
+
},
|
|
128
|
+
event: {
|
|
129
|
+
category: "Tasks",
|
|
130
|
+
description: "Submit an external event or apply a reviewed receipt-repair manifest through the owning daemon",
|
|
131
|
+
usage: "ouro event submit --agent <agent> --source <source> --type <event-type> --id <provider-id> [--summary <text>] [--evidence <path>] [--payload <path>] [--priority high|normal|low] [--no-wake] | ouro event repair --manifest <path>",
|
|
132
|
+
example: "ouro event submit --agent slugger --source app-store-connect --type feedback.created --id evt_123 --evidence /tmp/feedback",
|
|
133
|
+
subcommands: ["submit", "repair"],
|
|
134
|
+
},
|
|
135
|
+
poke: {
|
|
136
|
+
category: "Tasks",
|
|
137
|
+
description: "Poke an agent about a task or habit",
|
|
138
|
+
usage: "ouro poke <agent> --task <task-id> | --habit <name> [--trigger poke|launchd|cron|overdue|manual]",
|
|
139
|
+
example: "ouro poke ouroboros --task abc123",
|
|
140
|
+
},
|
|
141
|
+
habit: {
|
|
142
|
+
category: "Habits",
|
|
143
|
+
description: "Manage agent habits",
|
|
144
|
+
usage: "ouro habit <subcommand> [--agent <name>]",
|
|
145
|
+
example: "ouro habit list",
|
|
146
|
+
subcommands: ["list", "create", "runs", "inspect", "summary", "poke", "cancel", "probe"],
|
|
147
|
+
},
|
|
148
|
+
rsvp: {
|
|
149
|
+
category: "Habits",
|
|
150
|
+
description: "AislePlanner-backed RSVP habit operations, triage, receipts, ledgers, migration checks, refreshes, and smoke tests",
|
|
151
|
+
usage: "ouro rsvp <doctor|incident|cutover|legacy-render|replay|config|habit|import-legacy|refresh|compare|smoke> ...",
|
|
152
|
+
example: "ouro rsvp doctor --agent rsvp-agent --json",
|
|
153
|
+
subcommands: [
|
|
154
|
+
"doctor",
|
|
155
|
+
"incident",
|
|
156
|
+
"cutover",
|
|
157
|
+
"legacy-render",
|
|
158
|
+
"replay",
|
|
159
|
+
"config import-legacy",
|
|
160
|
+
"habit stage",
|
|
161
|
+
"import-legacy",
|
|
162
|
+
"refresh",
|
|
163
|
+
"compare",
|
|
164
|
+
"smoke",
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
desk: {
|
|
168
|
+
category: "Tasks",
|
|
169
|
+
description: "Manage the agent's desk — tasks, tracks, friction, lessons, search, and recall (routes through the desk MCP server).",
|
|
170
|
+
usage: "ouro desk <task|track|friction|lesson|search|recall|reindex|thread> ...",
|
|
171
|
+
example: "ouro desk task list",
|
|
172
|
+
subcommands: ["task", "track", "friction", "lesson", "search", "recall", "reindex", "thread"],
|
|
173
|
+
},
|
|
174
|
+
task: {
|
|
175
|
+
category: "Tasks",
|
|
176
|
+
description: "Alias for `ouro desk task ...`.",
|
|
177
|
+
usage: "ouro task <list|new|done|archive|show> [...]",
|
|
178
|
+
example: "ouro task list",
|
|
179
|
+
subcommands: ["list", "new", "done", "archive", "show"],
|
|
180
|
+
},
|
|
181
|
+
work: {
|
|
182
|
+
category: "Tasks",
|
|
183
|
+
description: "Show durable Arc work state, recovery Sentinel state, or run the context-loss gauntlet.",
|
|
184
|
+
usage: "ouro work card|gauntlet|sentinel [refresh] [--agent <name>] [--format text|json|--json]",
|
|
185
|
+
example: "ouro work sentinel --agent slugger --format json",
|
|
186
|
+
subcommands: ["card", "gauntlet", "sentinel"],
|
|
187
|
+
},
|
|
188
|
+
"nerves-review": {
|
|
189
|
+
category: "Internal",
|
|
190
|
+
description: `Read-only review of recent nerves events from one agent log stream (default: ${core_1.DEFAULT_NERVES_PROCESS})`,
|
|
191
|
+
usage: "ouro nerves-review [--agent <name>] [--process <name>] [--component <substr>] [--event <substr>] [--level <level>] [--since <duration>] [--limit <n>] [--json]",
|
|
192
|
+
example: "ouro nerves-review --agent slugger --component daemon --event habit --since 30m --json",
|
|
193
|
+
},
|
|
194
|
+
"work card": {
|
|
195
|
+
category: "Tasks",
|
|
196
|
+
description: "Show the agent's durable Work Card compiled from arc records.",
|
|
197
|
+
usage: "ouro work card [--agent <name>] [--format text|json|--json]",
|
|
198
|
+
example: "ouro work card --agent slugger --format json",
|
|
199
|
+
hidden: true,
|
|
200
|
+
},
|
|
201
|
+
"work gauntlet": {
|
|
202
|
+
category: "Tasks",
|
|
203
|
+
description: "Score whether durable Arc, flight recorder, and Desk state can recover after context loss.",
|
|
204
|
+
usage: "ouro work gauntlet [--agent <name>] [--format text|json|--json]",
|
|
205
|
+
example: "ouro work gauntlet --agent slugger --format json",
|
|
206
|
+
hidden: true,
|
|
207
|
+
},
|
|
208
|
+
"work sentinel": {
|
|
209
|
+
category: "Tasks",
|
|
210
|
+
description: "Show read-only Arc Sentinel recovery state, or explicitly refresh it.",
|
|
211
|
+
usage: "ouro work sentinel [refresh] [--agent <name>] [--format text|json|--json]",
|
|
212
|
+
example: "ouro work sentinel refresh --agent slugger --format json",
|
|
213
|
+
hidden: true,
|
|
214
|
+
},
|
|
215
|
+
"migrate-to-desk": {
|
|
216
|
+
category: "Tasks",
|
|
217
|
+
description: "Migrate a legacy `tasks/` tree into the new `desk/` shape (copy semantics — source untouched).",
|
|
218
|
+
usage: "ouro migrate-to-desk --agent <name> [--root <path>] [--force] [--dry-run]",
|
|
219
|
+
example: "ouro migrate-to-desk --agent <agent> --dry-run",
|
|
220
|
+
},
|
|
221
|
+
friend: {
|
|
222
|
+
category: "Friends",
|
|
223
|
+
description: "Manage agent friends and identity links",
|
|
224
|
+
usage: "ouro friend <subcommand> [--agent <name>]",
|
|
225
|
+
example: "ouro friend list",
|
|
226
|
+
subcommands: ["list", "show", "create", "update", "link", "unlink"],
|
|
227
|
+
},
|
|
228
|
+
link: {
|
|
229
|
+
category: "Friends",
|
|
230
|
+
description: "Link an external identity to an agent friend",
|
|
231
|
+
usage: "ouro link <agent> --friend <id> --provider <provider> --external-id <eid>",
|
|
232
|
+
example: "ouro link ouroboros --friend f1 --provider aad --external-id user@example.com",
|
|
233
|
+
},
|
|
234
|
+
auth: {
|
|
235
|
+
category: "Auth",
|
|
236
|
+
description: "Set up or verify agent credentials",
|
|
237
|
+
usage: "ouro auth [verify] [--agent <name>] [--provider <provider>]",
|
|
238
|
+
example: "ouro auth",
|
|
239
|
+
subcommands: ["verify"],
|
|
240
|
+
},
|
|
241
|
+
account: {
|
|
242
|
+
category: "Auth",
|
|
243
|
+
description: "Ensure the agent's vault-backed work substrate account, including Mailroom setup",
|
|
244
|
+
usage: "ouro account ensure [--agent <name>]",
|
|
245
|
+
example: "ouro account ensure --agent <agent>",
|
|
246
|
+
subcommands: ["ensure"],
|
|
247
|
+
},
|
|
248
|
+
connect: {
|
|
249
|
+
category: "Auth",
|
|
250
|
+
description: "Set up providers, portable integrations, and local senses from one guided screen",
|
|
251
|
+
usage: "ouro connect [providers|perplexity|embeddings|teams|bluebubbles|mail|voice|a2a|workbench] [--agent <name>]",
|
|
252
|
+
example: "ouro connect",
|
|
253
|
+
subcommands: ["providers", "perplexity", "embeddings", "teams", "bluebubbles", "mail", "voice", "a2a", "workbench"],
|
|
254
|
+
},
|
|
255
|
+
a2a: {
|
|
256
|
+
category: "Friends",
|
|
257
|
+
description: "Publish A2A cards, onboard agent peers, and run the A2A sense server",
|
|
258
|
+
usage: "ouro a2a <card|onboard|serve> [--agent <name>]",
|
|
259
|
+
example: "ouro a2a card --agent <agent> --base-url https://agent.example",
|
|
260
|
+
subcommands: ["card", "onboard", "serve"],
|
|
261
|
+
},
|
|
262
|
+
mail: {
|
|
263
|
+
category: "Auth",
|
|
264
|
+
description: "Import delegated mail and repair hosted Mailroom indexes or local search cache",
|
|
265
|
+
usage: "ouro mail <import-mbox|backfill-indexes|sync-cache> [--agent <name>]",
|
|
266
|
+
example: "ouro mail import-mbox --discover --owner-email you@example.com --source hey --agent <agent>",
|
|
267
|
+
subcommands: ["import-mbox", "backfill-indexes", "sync-cache"],
|
|
268
|
+
},
|
|
269
|
+
use: {
|
|
270
|
+
category: "Auth",
|
|
271
|
+
description: "Choose this machine's provider/model lane for an agent",
|
|
272
|
+
usage: "ouro use [--agent <name>] --lane outward|inner --provider <provider> --model <model> [--force]",
|
|
273
|
+
example: "ouro use --agent ouroboros --lane outward --provider minimax --model MiniMax-M2.5",
|
|
274
|
+
},
|
|
275
|
+
check: {
|
|
276
|
+
category: "Auth",
|
|
277
|
+
description: "Run a live check for this machine's selected provider/model lane",
|
|
278
|
+
usage: "ouro check [--agent <name>] --lane outward|inner",
|
|
279
|
+
example: "ouro check --agent ouroboros --lane outward",
|
|
280
|
+
},
|
|
281
|
+
repair: {
|
|
282
|
+
category: "Auth",
|
|
283
|
+
description: "Guide vault and provider readiness repair without invoking AI diagnosis for known issues",
|
|
284
|
+
usage: "ouro repair [--agent <name>]",
|
|
285
|
+
example: "ouro repair --agent ouroboros",
|
|
286
|
+
},
|
|
287
|
+
provider: {
|
|
288
|
+
category: "Auth",
|
|
289
|
+
description: "Refresh daemon provider credentials from an agent vault",
|
|
290
|
+
usage: "ouro provider refresh [--agent <name>]",
|
|
291
|
+
example: "ouro provider refresh --agent ouroboros",
|
|
292
|
+
subcommands: ["refresh"],
|
|
293
|
+
},
|
|
294
|
+
vault: {
|
|
295
|
+
category: "Auth",
|
|
296
|
+
description: "Create, replace, recover, unlock, inspect, and populate the agent credential vault",
|
|
297
|
+
usage: "ouro vault <create|replace|recover|unlock|status|config|item|ops> [--agent <name>]",
|
|
298
|
+
example: "ouro vault status",
|
|
299
|
+
subcommands: ["create", "replace", "recover", "unlock", "status", "config set", "config status", "vault item set", "vault item status", "vault item list", "vault ops porkbun set", "vault ops porkbun status"],
|
|
300
|
+
},
|
|
301
|
+
thoughts: {
|
|
302
|
+
category: "Internal",
|
|
303
|
+
description: "View private runtime transcript turns",
|
|
304
|
+
usage: "ouro thoughts [--last <n>] [--json] [--follow] [--agent <name>]",
|
|
305
|
+
example: "ouro thoughts --last 5 --follow",
|
|
306
|
+
},
|
|
307
|
+
private: {
|
|
308
|
+
category: "Internal",
|
|
309
|
+
description: "Inspect private-runtime status and policy decisions",
|
|
310
|
+
usage: "ouro private status|decisions [--agent <name>] [--limit <n>] [--json]",
|
|
311
|
+
example: "ouro private status --agent ouroboros",
|
|
312
|
+
subcommands: ["status", "decisions"],
|
|
313
|
+
},
|
|
314
|
+
inner: {
|
|
315
|
+
category: "Internal",
|
|
316
|
+
description: "Legacy alias for `ouro private status`",
|
|
317
|
+
usage: "ouro inner [--agent <name>]",
|
|
318
|
+
example: "ouro inner",
|
|
319
|
+
hidden: true,
|
|
320
|
+
},
|
|
321
|
+
attention: {
|
|
322
|
+
category: "Internal",
|
|
323
|
+
description: "View agent attention items",
|
|
324
|
+
usage: "ouro attention [show <id>|history] [--agent <name>]",
|
|
325
|
+
example: "ouro attention history",
|
|
326
|
+
subcommands: ["show", "history"],
|
|
327
|
+
},
|
|
328
|
+
session: {
|
|
329
|
+
category: "Internal",
|
|
330
|
+
description: "Manage agent sessions",
|
|
331
|
+
usage: "ouro session list [--agent <name>]",
|
|
332
|
+
example: "ouro session list",
|
|
333
|
+
subcommands: ["list"],
|
|
334
|
+
},
|
|
335
|
+
mcp: {
|
|
336
|
+
category: "System",
|
|
337
|
+
description: "Interact with MCP servers",
|
|
338
|
+
usage: "ouro mcp <subcommand>",
|
|
339
|
+
example: "ouro mcp doctor --agent ouroboros",
|
|
340
|
+
subcommands: ["list", "call", "canary", "doctor"],
|
|
341
|
+
},
|
|
342
|
+
"mcp-serve": {
|
|
343
|
+
category: "System",
|
|
344
|
+
description: "Start an MCP server for dev tool integration",
|
|
345
|
+
usage: "ouro mcp-serve --agent <name> [--friend <id>]",
|
|
346
|
+
example: "ouro mcp-serve --agent ouroboros",
|
|
347
|
+
},
|
|
348
|
+
"acp-serve": {
|
|
349
|
+
category: "System",
|
|
350
|
+
description: "Start the ACP frontend adapter for an Ouro agent",
|
|
351
|
+
usage: "ouro acp-serve --agent <name> [--friend-id <id>] [--workbench-mcp [path]] [--observe-only]",
|
|
352
|
+
example: "ouro acp-serve --agent ouroboros --workbench-mcp",
|
|
353
|
+
},
|
|
354
|
+
setup: {
|
|
355
|
+
category: "System",
|
|
356
|
+
description: "Register MCP server and hooks for a dev tool",
|
|
357
|
+
usage: "ouro setup --tool <claude-code|codex> [--agent <name>]",
|
|
358
|
+
example: "ouro setup --tool claude-code",
|
|
359
|
+
},
|
|
360
|
+
hook: {
|
|
361
|
+
category: "System",
|
|
362
|
+
description: "Fire a dev tool lifecycle hook",
|
|
363
|
+
usage: "ouro hook <event> --agent <name>",
|
|
364
|
+
example: "ouro hook session-start --agent ouroboros",
|
|
365
|
+
},
|
|
366
|
+
bluebubbles: {
|
|
367
|
+
category: "System",
|
|
368
|
+
description: "BlueBubbles integration commands",
|
|
369
|
+
usage: [
|
|
370
|
+
"ouro bluebubbles replay [--agent <name>] --message-guid <guid> [--event-type <type>] [--json]",
|
|
371
|
+
"ouro bluebubbles context-smoke [--agent <name>] --message-guid <guid> [--persist] [--json]",
|
|
372
|
+
"ouro bluebubbles host <install|status|repair|remove|collect> [--username <name> --uid <uid> --home <path>] [--request-id <id>] [--json]",
|
|
373
|
+
].join("\n"),
|
|
374
|
+
example: "ouro bluebubbles context-smoke --agent slugger --message-guid abc123 --persist --json",
|
|
375
|
+
subcommands: ["replay", "context-smoke", "host"],
|
|
376
|
+
},
|
|
377
|
+
};
|
|
378
|
+
const SUBCOMMAND_HELP = {
|
|
379
|
+
"habit probe": {
|
|
380
|
+
description: "Probe one habit through its real dispatch path with an irrevocable no-send boundary; it cannot send and reports zero transport invocations",
|
|
381
|
+
usage: "ouro habit probe --agent <name> --habit <name> --no-send [--json]",
|
|
382
|
+
example: "ouro habit probe --agent slugger --habit report-name --no-send --json",
|
|
383
|
+
},
|
|
384
|
+
"habit cancel": {
|
|
385
|
+
description: "Cancel a habit offline from a previously verified evidence bridge",
|
|
386
|
+
usage: "ouro habit cancel --agent <name> --habit <name> --evidence <bridge-id>",
|
|
387
|
+
example: "ouro habit cancel --agent slugger --habit report-name --evidence pre-v1-bluebubbles-event-id",
|
|
388
|
+
},
|
|
389
|
+
"private decisions": {
|
|
390
|
+
description: "Read recent private-runtime allow/deny decisions from the policy ledger",
|
|
391
|
+
usage: "ouro private decisions [--agent <name>] [--limit <n>] [--json]",
|
|
392
|
+
example: "ouro private decisions --agent ouroboros --json",
|
|
393
|
+
},
|
|
394
|
+
"private status": {
|
|
395
|
+
description: "Show private-runtime status from local agent state",
|
|
396
|
+
usage: "ouro private status [--agent <name>] [--json]",
|
|
397
|
+
example: "ouro private status --agent ouroboros --json",
|
|
398
|
+
},
|
|
399
|
+
"auth verify": {
|
|
400
|
+
description: "Verify agent provider credentials without changing provider/model lanes",
|
|
401
|
+
usage: "ouro auth verify [--agent <name>] [--provider <provider>]",
|
|
402
|
+
example: "ouro auth verify --provider openai-codex",
|
|
403
|
+
},
|
|
404
|
+
"auth switch": {
|
|
405
|
+
description: "Deprecated compatibility wrapper; use `ouro use` for provider/model lane selection",
|
|
406
|
+
usage: "ouro auth switch [--agent <name>] --provider <provider> [--facing human|agent]",
|
|
407
|
+
example: "ouro use --agent ouroboros --lane outward --provider minimax --model MiniMax-M2.5",
|
|
408
|
+
},
|
|
409
|
+
"connect perplexity": {
|
|
410
|
+
description: "Connect portable Perplexity search that travels with this agent",
|
|
411
|
+
usage: "ouro connect perplexity [--agent <name>]",
|
|
412
|
+
example: "ouro connect perplexity",
|
|
413
|
+
},
|
|
414
|
+
"connect providers": {
|
|
415
|
+
description: "Open provider setup from the connections screen without remembering the auth command",
|
|
416
|
+
usage: "ouro connect providers [--agent <name>]",
|
|
417
|
+
example: "ouro connect providers",
|
|
418
|
+
},
|
|
419
|
+
"connect embeddings": {
|
|
420
|
+
description: "Connect portable embeddings for note search and diary consultation; travels with this agent",
|
|
421
|
+
usage: "ouro connect embeddings [--agent <name>]",
|
|
422
|
+
example: "ouro connect embeddings",
|
|
423
|
+
},
|
|
424
|
+
"connect teams": {
|
|
425
|
+
description: "Connect portable Microsoft Teams credentials and enable the Teams sense",
|
|
426
|
+
usage: "ouro connect teams [--agent <name>]",
|
|
427
|
+
example: "ouro connect teams",
|
|
428
|
+
},
|
|
429
|
+
"connect bluebubbles": {
|
|
430
|
+
description: "Attach BlueBubbles iMessage to this machine only, install or hand off its native host lifecycle, and reconcile the Ouro-owned webhook; it does not travel with the agent",
|
|
431
|
+
usage: "ouro connect bluebubbles [--agent <name>]",
|
|
432
|
+
example: "ouro connect bluebubbles",
|
|
433
|
+
},
|
|
434
|
+
"bluebubbles host": {
|
|
435
|
+
description: "Inspect or repair the native BlueBubbles host. Same-user actions run directly; dedicated-user actions return one nonce-bound `human-required` Terminal command and a matching collect command.",
|
|
436
|
+
usage: "ouro bluebubbles host <install|status|repair|remove> [--username <name> --uid <uid> --home <path>] [--json]\nouro bluebubbles host collect --request-id <uid>-<nonce> [--json]",
|
|
437
|
+
example: "ouro bluebubbles host status --json",
|
|
438
|
+
},
|
|
439
|
+
"mcp doctor": {
|
|
440
|
+
description: "Run a bounded direct MCP bridge check. Use `--host-stall-observed` only when the host app was independently observed stalled; `host-stall-unexplained` preserves that evidence but does not prove a host-app cause.",
|
|
441
|
+
usage: "ouro mcp doctor --agent <name> [--socket <path>] [--host-stall-observed] [--json]",
|
|
442
|
+
example: "ouro mcp doctor --agent slugger --json",
|
|
443
|
+
},
|
|
444
|
+
"connect mail": {
|
|
445
|
+
description: "Provision portable Agent Mail / Mailroom access and enable the Mail sense",
|
|
446
|
+
usage: "ouro connect mail [--agent <name>] [--owner-email <email> --source <label>|--no-delegated-source] [--rotate-missing-mail-keys]",
|
|
447
|
+
example: "ouro connect mail --agent <agent> --owner-email you@example.com --source hey",
|
|
448
|
+
},
|
|
449
|
+
"connect a2a": {
|
|
450
|
+
description: "Enable the agent-to-agent A2A sense",
|
|
451
|
+
usage: "ouro connect a2a [--agent <name>]",
|
|
452
|
+
example: "ouro connect a2a --agent <agent>",
|
|
453
|
+
},
|
|
454
|
+
"connect telegram": {
|
|
455
|
+
description: "Connect a private Telegram bot and enable the Telegram sense",
|
|
456
|
+
usage: "ouro connect telegram [--agent <name>]",
|
|
457
|
+
example: "ouro connect telegram --agent <agent>",
|
|
458
|
+
},
|
|
459
|
+
"connect workbench": {
|
|
460
|
+
description: "Verify native Ouro Workbench runtime injection and clean stale bundle entries",
|
|
461
|
+
usage: "ouro connect workbench [--agent <name>]",
|
|
462
|
+
example: "ouro connect workbench --agent <agent>",
|
|
463
|
+
},
|
|
464
|
+
"a2a card": {
|
|
465
|
+
description: "Print this agent's A2A Agent Card",
|
|
466
|
+
usage: "ouro a2a card [--agent <name>] [--base-url <url>] [--json]",
|
|
467
|
+
example: "ouro a2a card --agent <agent> --base-url https://agent.example --json",
|
|
468
|
+
},
|
|
469
|
+
"a2a onboard": {
|
|
470
|
+
description: "Onboard an A2A peer into the existing friend model",
|
|
471
|
+
usage: "ouro a2a onboard [--agent <name>] --card-url <url> [--trust <level>] [--name <name>]",
|
|
472
|
+
example: "ouro a2a onboard --agent <agent> --card-url https://peer.example/.well-known/agent-card.json --trust friend",
|
|
473
|
+
},
|
|
474
|
+
"a2a serve": {
|
|
475
|
+
description: "Run this agent's local A2A JSON-RPC sense server",
|
|
476
|
+
usage: "ouro a2a serve [--agent <name>] [--host <host>] [--port <port>] [--base-url <url>] [--path <path>]",
|
|
477
|
+
example: "ouro a2a serve --agent <agent> --base-url https://agent.example",
|
|
478
|
+
},
|
|
479
|
+
"account ensure": {
|
|
480
|
+
description: "Idempotently prepare an agent's vault-backed work substrate account and private Mailroom mailbox",
|
|
481
|
+
usage: "ouro account ensure [--agent <name>] [--owner-email <email> --source <label>|--no-delegated-source] [--rotate-missing-mail-keys]",
|
|
482
|
+
example: "ouro account ensure --agent <agent> --owner-email you@example.com --source hey",
|
|
483
|
+
},
|
|
484
|
+
"habit summary": {
|
|
485
|
+
description: "Read a habit run summary from receipts and session artifacts without contacting the daemon",
|
|
486
|
+
usage: "ouro habit summary [--agent <name>] (--run-id <id>|--habit <name>|--operation-id <id>) [--which latest|previous|latest-success|latest-failure] [--json]",
|
|
487
|
+
example: "ouro habit summary --agent slugger --operation-id habit:standup --which latest --json",
|
|
488
|
+
},
|
|
489
|
+
"rsvp doctor": {
|
|
490
|
+
description: "Check native RSVP configuration, credentials, BlueBubbles attachment, ledgers, receipts, and migration readiness without sending messages; use --json --strict in triage",
|
|
491
|
+
usage: "ouro rsvp doctor [--agent <name>] [--strict] [--output <path>] [--json]",
|
|
492
|
+
example: "ouro rsvp doctor --agent rsvp-agent --strict --json",
|
|
493
|
+
},
|
|
494
|
+
"rsvp incident": {
|
|
495
|
+
description: "Collect a redacted local RSVP diagnostic incident bundle with doctor status, receipts, and ledger pointers without contacting the daemon",
|
|
496
|
+
usage: "ouro rsvp incident [--agent <name>] [--output <path>] [--json]",
|
|
497
|
+
example: "ouro rsvp incident --agent rsvp-agent --output /tmp/rsvp-incident.json",
|
|
498
|
+
},
|
|
499
|
+
"rsvp cutover": {
|
|
500
|
+
description: "Inspect or retire legacy RSVP sender state before native live send",
|
|
501
|
+
usage: "ouro rsvp cutover [--agent <name>] --legacy-root <path> --action check|quarantine-launchd|retire-legacy-send-config [--yes] [--output <path>] [--json]",
|
|
502
|
+
example: "ouro rsvp cutover --agent rsvp-agent --legacy-root ~/Projects/rsvp-tracker --action check --json",
|
|
503
|
+
},
|
|
504
|
+
"rsvp legacy-render": {
|
|
505
|
+
description: "Render the legacy RSVP script's local snapshot/report shape for comparison without mutating native state",
|
|
506
|
+
usage: "ouro rsvp legacy-render --legacy-root <path> [--agent <name>] [--output <path>] [--json]",
|
|
507
|
+
example: "ouro rsvp legacy-render --legacy-root ~/Projects/rsvp-tracker --output /tmp/legacy.json",
|
|
508
|
+
},
|
|
509
|
+
"rsvp replay": {
|
|
510
|
+
description: "Replay an offline fixture through deterministic native RSVP report/query logic without live BlueBubbles or AislePlanner access",
|
|
511
|
+
usage: "ouro rsvp replay [--agent <name>] --fixture <path> [--output <path>] [--json]",
|
|
512
|
+
example: "ouro rsvp replay --agent rsvp-agent --fixture /tmp/rsvp-replay.json --json",
|
|
513
|
+
},
|
|
514
|
+
"rsvp config import-legacy": {
|
|
515
|
+
description: "Import legacy RSVP coordinates into native config and vault-backed runtime/config; mutates only with --yes",
|
|
516
|
+
usage: "ouro rsvp config import-legacy [--agent <name>] --legacy-root <path> --mode shadow|live [--yes] [--output <path>] [--json]",
|
|
517
|
+
example: "ouro rsvp config import-legacy --agent rsvp-agent --legacy-root ~/Projects/rsvp-tracker --mode shadow --yes",
|
|
518
|
+
},
|
|
519
|
+
"rsvp habit stage": {
|
|
520
|
+
description: "Stage an RSVP refresh habit with bundle-owned routine naming and report copy",
|
|
521
|
+
usage: "ouro rsvp habit stage [--agent <name>] [--name <rsvp-name>] [--title <title>] [--report-title <title>] --mode shadow|live --cadence '<cron>' [--output <path>] [--json]",
|
|
522
|
+
example: "ouro rsvp habit stage --agent rsvp-agent --name rsvp-updates --title 'RSVP Updates' --mode shadow --cadence '0 10 * * *'",
|
|
523
|
+
},
|
|
524
|
+
"rsvp import-legacy": {
|
|
525
|
+
description: "Compatibility alias for `ouro rsvp config import-legacy`; mutates only with --yes",
|
|
526
|
+
usage: "ouro rsvp import-legacy [--agent <name>] --legacy-root <path> --mode shadow|live [--yes] [--output <path>] [--json]",
|
|
527
|
+
example: "ouro rsvp import-legacy --agent rsvp-agent --legacy-root ~/Projects/rsvp-tracker --mode shadow --yes",
|
|
528
|
+
},
|
|
529
|
+
"rsvp refresh": {
|
|
530
|
+
description: "Run the native RSVP refresh path and write receipts; defaults to dry-run behavior unless --allow-send is explicit",
|
|
531
|
+
usage: "ouro rsvp refresh [--agent <name>] [--habit <rsvp-name>] --mode shadow|live [--no-send|--allow-send] [--output <path>] [--json]",
|
|
532
|
+
example: "ouro rsvp refresh --agent rsvp-agent --habit rsvp-updates --mode shadow --no-send --json",
|
|
533
|
+
},
|
|
534
|
+
"rsvp compare": {
|
|
535
|
+
description: "Compare native and legacy RSVP render outputs for migration verification",
|
|
536
|
+
usage: "ouro rsvp compare [--agent <name>] --native <path> --legacy <path> [--output <path>] [--json]",
|
|
537
|
+
example: "ouro rsvp compare --agent rsvp-agent --native /tmp/native.json --legacy /tmp/legacy.json",
|
|
538
|
+
},
|
|
539
|
+
"rsvp smoke": {
|
|
540
|
+
description: "Smoke-test RSVP follow-up behavior through a target sense; preflight is no-send and live mode requires --allow-send",
|
|
541
|
+
usage: "ouro rsvp smoke [--agent <name>] --mode preflight|live --surface bluebubbles [--question <text>] [--allow-send] [--output <path>] [--replay-output <path>] [--json]",
|
|
542
|
+
example: "ouro rsvp smoke --agent rsvp-agent --mode preflight --surface bluebubbles --question 'who is pending?'",
|
|
543
|
+
},
|
|
544
|
+
"mail import-mbox": {
|
|
545
|
+
description: "Import a HEY or other MBOX export into an existing delegated Mailroom source grant",
|
|
546
|
+
usage: "ouro mail import-mbox (--file <path>|--discover) [--owner-email <email>] [--source <label>] [--agent <name>] [--foreground]",
|
|
547
|
+
example: "ouro mail import-mbox --discover --owner-email you@example.com --source hey --agent <agent>",
|
|
548
|
+
},
|
|
549
|
+
"mail backfill-indexes": {
|
|
550
|
+
description: "Rebuild hosted blob mailbox indexes for faster recent-mail reads after large legacy imports or drift repair.",
|
|
551
|
+
usage: "ouro mail backfill-indexes [--agent <name>] [--foreground]",
|
|
552
|
+
example: "ouro mail backfill-indexes --agent <agent>",
|
|
553
|
+
},
|
|
554
|
+
"mail sync-cache": {
|
|
555
|
+
description: "Converge the local decrypted search cache against stable hosted Mailroom authority in up to three passes, using 20 bounded body-read workers, foreground settlement progress, a 30-second heartbeat, and durable missing-key receipts.",
|
|
556
|
+
usage: "ouro mail sync-cache [--agent <name>]",
|
|
557
|
+
example: "ouro mail sync-cache --agent <agent>",
|
|
558
|
+
},
|
|
559
|
+
"provider refresh": {
|
|
560
|
+
description: "Reload this agent's provider credentials from its vault into the running daemon",
|
|
561
|
+
usage: "ouro provider refresh [--agent <name>]",
|
|
562
|
+
example: "ouro provider refresh",
|
|
563
|
+
},
|
|
564
|
+
"vault create": {
|
|
565
|
+
description: "Create an agent credential vault and store local unlock material",
|
|
566
|
+
usage: "ouro vault create [--agent <name>] --email <email> [--server <url>] [--store <store>]",
|
|
567
|
+
example: "ouro vault create --email ouroboros@ouro.bot",
|
|
568
|
+
},
|
|
569
|
+
"vault replace": {
|
|
570
|
+
description: "Create an empty agent vault at the stable agent email when no unlock secret or JSON export exists",
|
|
571
|
+
usage: "ouro vault replace [--agent <name>] [--email <email>] [--server <url>] [--store <store>]",
|
|
572
|
+
example: "ouro vault replace",
|
|
573
|
+
},
|
|
574
|
+
"vault recover": {
|
|
575
|
+
description: "Create an agent vault at the stable agent email and import local JSON credential exports",
|
|
576
|
+
usage: "ouro vault recover [--agent <name>] --from <json> [--from <json> ...] [--email <email>] [--server <url>] [--store <store>]",
|
|
577
|
+
example: "ouro vault recover --from ./credentials.json",
|
|
578
|
+
},
|
|
579
|
+
"vault unlock": {
|
|
580
|
+
description: "Unlock an existing agent credential vault on this machine",
|
|
581
|
+
usage: "ouro vault unlock [--agent <name>] [--store <store>]",
|
|
582
|
+
example: "ouro vault unlock",
|
|
583
|
+
},
|
|
584
|
+
"vault status": {
|
|
585
|
+
description: "Show whether this machine can unlock an agent credential vault",
|
|
586
|
+
usage: "ouro vault status [--agent <name>] [--store <store>]",
|
|
587
|
+
example: "ouro vault status",
|
|
588
|
+
},
|
|
589
|
+
"vault config set": {
|
|
590
|
+
description: "Write runtime configuration into the agent credential vault without printing values",
|
|
591
|
+
usage: "ouro vault config set [--agent <name>] --key <path> [--value <value>] [--scope agent|machine]",
|
|
592
|
+
example: "ouro vault config set --key teams.clientSecret",
|
|
593
|
+
},
|
|
594
|
+
"vault config status": {
|
|
595
|
+
description: "List runtime configuration keys stored in the agent credential vault",
|
|
596
|
+
usage: "ouro vault config status [--agent <name>] [--scope agent|machine|all]",
|
|
597
|
+
example: "ouro vault config status --scope all",
|
|
598
|
+
},
|
|
599
|
+
"vault item set": {
|
|
600
|
+
description: "Store an ordinary vault item / credential with no assumed use. Prompts for hidden secret fields, stores optional public fields and notes, and secret values are not printed.",
|
|
601
|
+
usage: "ouro vault item set [--agent <name>] --item <path> (--secret-field <name>...|--template <template>) [--public-field <key=value>] [--note <text>]",
|
|
602
|
+
example: "ouro vault item set --agent <agent> --item ops/porkbun/you@example.com --template porkbun-api",
|
|
603
|
+
},
|
|
604
|
+
"vault item status": {
|
|
605
|
+
description: "Show metadata for an ordinary vault item without printing secret values",
|
|
606
|
+
usage: "ouro vault item status [--agent <name>] --item <path>",
|
|
607
|
+
example: "ouro vault item status --agent <agent> --item ops/porkbun/you@example.com",
|
|
608
|
+
},
|
|
609
|
+
"vault item list": {
|
|
610
|
+
description: "List ordinary vault item names and metadata without printing secret values",
|
|
611
|
+
usage: "ouro vault item list [--agent <name>] [--prefix <path-prefix>]",
|
|
612
|
+
example: "ouro vault item list --agent <agent> --prefix ops/",
|
|
613
|
+
},
|
|
614
|
+
"vault ops porkbun set": {
|
|
615
|
+
description: "deprecated compatibility alias for `ouro vault item set --template porkbun-api`; stores an ordinary vault item, not a special credential kind",
|
|
616
|
+
usage: "ouro vault ops porkbun set [--agent <name>] --account <account>",
|
|
617
|
+
example: "ouro vault ops porkbun set --agent <agent> --account you@example.com",
|
|
618
|
+
},
|
|
619
|
+
"vault ops porkbun status": {
|
|
620
|
+
description: "deprecated compatibility alias for checking the ordinary vault item used by the Porkbun API template",
|
|
621
|
+
usage: "ouro vault ops porkbun status [--agent <name>] [--account <account>]",
|
|
622
|
+
example: "ouro vault ops porkbun status --agent <agent> --account you@example.com",
|
|
623
|
+
},
|
|
624
|
+
};
|
|
625
|
+
// ── Levenshtein distance ──
|
|
626
|
+
function levenshteinDistance(a, b) {
|
|
627
|
+
if (a.length === 0)
|
|
628
|
+
return b.length;
|
|
629
|
+
if (b.length === 0)
|
|
630
|
+
return a.length;
|
|
631
|
+
const matrix = [];
|
|
632
|
+
for (let i = 0; i <= a.length; i++) {
|
|
633
|
+
matrix[i] = [i];
|
|
634
|
+
}
|
|
635
|
+
for (let j = 0; j <= b.length; j++) {
|
|
636
|
+
matrix[0][j] = j;
|
|
637
|
+
}
|
|
638
|
+
for (let i = 1; i <= a.length; i++) {
|
|
639
|
+
for (let j = 1; j <= b.length; j++) {
|
|
640
|
+
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
641
|
+
matrix[i][j] = Math.min(matrix[i - 1][j] + 1, // deletion
|
|
642
|
+
matrix[i][j - 1] + 1, // insertion
|
|
643
|
+
matrix[i - 1][j - 1] + cost);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
return matrix[a.length][b.length];
|
|
647
|
+
}
|
|
648
|
+
// ── Command suggestion ──
|
|
649
|
+
function suggestCommand(input) {
|
|
650
|
+
if (!input)
|
|
651
|
+
return null;
|
|
652
|
+
let bestMatch = null;
|
|
653
|
+
let bestDistance = Infinity;
|
|
654
|
+
for (const name of Object.keys(exports.COMMAND_REGISTRY)) {
|
|
655
|
+
if (exports.COMMAND_REGISTRY[name].hidden)
|
|
656
|
+
continue;
|
|
657
|
+
const distance = levenshteinDistance(input, name);
|
|
658
|
+
if (distance < bestDistance) {
|
|
659
|
+
bestDistance = distance;
|
|
660
|
+
bestMatch = name;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
return bestDistance <= 2 ? bestMatch : null;
|
|
664
|
+
}
|
|
665
|
+
// ── Category display order ──
|
|
666
|
+
const CATEGORY_ORDER = [
|
|
667
|
+
"Lifecycle",
|
|
668
|
+
"Agents",
|
|
669
|
+
"Chat",
|
|
670
|
+
"Tasks",
|
|
671
|
+
"Habits",
|
|
672
|
+
"Friends",
|
|
673
|
+
"Auth",
|
|
674
|
+
"Internal",
|
|
675
|
+
"System",
|
|
676
|
+
];
|
|
677
|
+
// ── Grouped help output ──
|
|
678
|
+
function getGroupedHelp() {
|
|
679
|
+
const lines = ["Usage: ouro <command> [options]", ""];
|
|
680
|
+
for (const category of CATEGORY_ORDER) {
|
|
681
|
+
lines.push(` ${category}:`);
|
|
682
|
+
for (const [name, entry] of Object.entries(exports.COMMAND_REGISTRY)) {
|
|
683
|
+
if (entry.hidden)
|
|
684
|
+
continue;
|
|
685
|
+
if (entry.category === category) {
|
|
686
|
+
lines.push(` ${name.padEnd(16)} ${entry.description}`);
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
lines.push("");
|
|
690
|
+
}
|
|
691
|
+
lines.push("Run 'ouro help <command>' for details on a specific command.");
|
|
692
|
+
return lines.join("\n");
|
|
693
|
+
}
|
|
694
|
+
// ── Per-command help ──
|
|
695
|
+
function getCommandHelp(name) {
|
|
696
|
+
const entry = SUBCOMMAND_HELP[name] ?? exports.COMMAND_REGISTRY[name];
|
|
697
|
+
if (!entry)
|
|
698
|
+
return null;
|
|
699
|
+
const lines = [
|
|
700
|
+
`${name} - ${entry.description}`,
|
|
701
|
+
"",
|
|
702
|
+
`Usage: ${entry.usage}`,
|
|
703
|
+
];
|
|
704
|
+
if (entry.subcommands && entry.subcommands.length > 0) {
|
|
705
|
+
lines.push("");
|
|
706
|
+
lines.push("Subcommands:");
|
|
707
|
+
for (const sub of entry.subcommands) {
|
|
708
|
+
lines.push(` ${sub}`);
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
if (entry.example) {
|
|
712
|
+
lines.push("");
|
|
713
|
+
lines.push(`Example: ${entry.example}`);
|
|
714
|
+
}
|
|
715
|
+
return lines.join("\n");
|
|
716
|
+
}
|