@ouro.bot/cli 0.1.0-alpha.62 → 0.1.0-alpha.636
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/README.md +127 -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/changelog.json +4070 -13
- package/dist/arc/attention-types.js +8 -0
- package/dist/arc/cares.js +144 -0
- package/dist/arc/episodes.js +118 -0
- package/dist/arc/intentions.js +134 -0
- package/dist/arc/json-store.js +117 -0
- package/dist/arc/obligations.js +266 -0
- package/dist/arc/packets.js +194 -0
- package/dist/arc/presence.js +185 -0
- package/dist/arc/task-lifecycle.js +57 -0
- package/dist/heart/active-work.js +831 -43
- package/dist/heart/agent-entry.js +69 -3
- 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 +16 -0
- package/dist/heart/attachments/store.js +103 -0
- package/dist/heart/attachments/types.js +93 -0
- package/dist/heart/auth/auth-flow.js +479 -0
- package/dist/heart/awaiting/await-alert.js +146 -0
- package/dist/heart/awaiting/await-expiry.js +108 -0
- package/dist/heart/awaiting/await-loader.js +91 -0
- package/dist/heart/awaiting/await-parser.js +141 -0
- package/dist/heart/awaiting/await-runtime-state.js +100 -0
- package/dist/heart/awaiting/await-scheduler.js +377 -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 +135 -0
- package/dist/heart/config-registry.js +322 -0
- package/dist/heart/config.js +114 -119
- package/dist/heart/core.js +914 -248
- package/dist/heart/cross-chat-delivery.js +3 -18
- package/dist/heart/daemon/agent-config-check.js +419 -0
- package/dist/heart/daemon/agent-discovery.js +102 -3
- package/dist/heart/daemon/agent-service.js +522 -0
- package/dist/heart/daemon/agentic-repair.js +547 -0
- package/dist/heart/daemon/bluebubbles-health-diagnostics.js +122 -0
- package/dist/heart/daemon/boot-sync-probe.js +197 -0
- package/dist/heart/daemon/cadence.js +70 -0
- package/dist/heart/daemon/cli-defaults.js +776 -0
- package/dist/heart/daemon/cli-desk.js +322 -0
- package/dist/heart/daemon/cli-exec.js +7468 -0
- package/dist/heart/daemon/cli-help.js +505 -0
- package/dist/heart/daemon/cli-parse.js +1554 -0
- package/dist/heart/daemon/cli-render-doctor.js +57 -0
- package/dist/heart/daemon/cli-render.js +763 -0
- package/dist/heart/daemon/cli-types.js +8 -0
- package/dist/heart/daemon/connect-bay.js +323 -0
- package/dist/heart/daemon/daemon-cli.js +29 -1700
- package/dist/heart/daemon/daemon-entry.js +485 -2
- package/dist/heart/daemon/daemon-health.js +176 -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 +905 -71
- package/dist/heart/daemon/dns-workflow.js +394 -0
- package/dist/heart/daemon/doctor-types.js +8 -0
- package/dist/heart/daemon/doctor.js +873 -0
- package/dist/heart/daemon/health-monitor.js +122 -1
- package/dist/heart/daemon/hooks/agent-config-v2.js +33 -0
- package/dist/heart/daemon/hooks/bundle-meta.js +115 -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 +89 -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 +110 -0
- package/dist/heart/daemon/mcp-canary.js +297 -0
- 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 +14 -12
- 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 +463 -34
- package/dist/heart/daemon/provider-discovery.js +137 -0
- package/dist/heart/daemon/provider-ping-progress.js +83 -0
- package/dist/heart/daemon/pulse.js +475 -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 +11 -3
- package/dist/heart/daemon/runtime-metadata.js +2 -30
- package/dist/heart/daemon/safe-mode.js +161 -0
- package/dist/heart/daemon/sense-manager.js +493 -38
- package/dist/heart/daemon/session-id-resolver.js +131 -0
- package/dist/heart/daemon/skill-management-installer.js +22 -9
- package/dist/heart/daemon/socket-client.js +158 -11
- package/dist/heart/daemon/stale-bundle-prune.js +96 -0
- package/dist/heart/daemon/startup-tui.js +330 -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 +229 -17
- 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/habits/habit-migration.js +189 -0
- package/dist/heart/habits/habit-parser.js +140 -0
- package/dist/heart/habits/habit-runtime-state.js +100 -0
- package/dist/heart/habits/habit-scheduler.js +372 -0
- package/dist/heart/{daemon → hatch}/hatch-flow.js +32 -56
- 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 +37 -14
- package/dist/heart/identity.js +168 -57
- package/dist/heart/kept-notes.js +357 -0
- package/dist/heart/kicks.js +1 -1
- package/dist/heart/machine-identity.js +161 -0
- package/dist/heart/mail-import-discovery.js +353 -0
- package/dist/heart/mailbox/mailbox-http-hooks.js +66 -0
- package/dist/heart/mailbox/mailbox-http-response.js +7 -0
- package/dist/heart/mailbox/mailbox-http-routes.js +246 -0
- package/dist/heart/mailbox/mailbox-http-static.js +103 -0
- package/dist/heart/mailbox/mailbox-http-transport.js +116 -0
- package/dist/heart/mailbox/mailbox-http.js +99 -0
- package/dist/heart/mailbox/mailbox-read.js +31 -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 +418 -0
- package/dist/heart/mailbox/readers/continuity-readers.js +319 -0
- package/dist/heart/mailbox/readers/mail.js +375 -0
- package/dist/heart/mailbox/readers/runtime-readers.js +756 -0
- package/dist/heart/mailbox/readers/sessions.js +232 -0
- package/dist/heart/mailbox/readers/shared.js +111 -0
- package/dist/heart/mcp/mcp-server.js +656 -0
- package/dist/heart/migrate-config.js +100 -0
- package/dist/heart/model-capabilities.js +19 -0
- package/dist/heart/orientation-frame.js +217 -0
- package/dist/heart/platform.js +81 -0
- package/dist/heart/provider-attempt.js +134 -0
- package/dist/heart/provider-binding-resolver.js +272 -0
- package/dist/heart/provider-credentials.js +425 -0
- package/dist/heart/provider-failover.js +301 -0
- package/dist/heart/provider-models.js +81 -0
- package/dist/heart/provider-ping.js +262 -0
- package/dist/heart/provider-readiness-cache.js +40 -0
- package/dist/heart/provider-visibility.js +188 -0
- package/dist/heart/providers/anthropic-token.js +131 -0
- package/dist/heart/providers/anthropic.js +139 -52
- package/dist/heart/providers/azure.js +23 -11
- package/dist/heart/providers/error-classification.js +127 -0
- package/dist/heart/providers/github-copilot.js +145 -0
- package/dist/heart/providers/minimax-vlm.js +189 -0
- package/dist/heart/providers/minimax.js +26 -8
- package/dist/heart/providers/openai-codex.js +55 -40
- package/dist/heart/runtime-capability-check.js +170 -0
- package/dist/heart/runtime-credentials.js +367 -0
- package/dist/heart/runtime-cwd.js +87 -0
- package/dist/heart/sense-truth.js +13 -4
- package/dist/heart/session-activity.js +48 -24
- package/dist/heart/session-events.js +1163 -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-stats-cli-main.js +5 -0
- package/dist/heart/session-stats.js +182 -0
- package/dist/heart/session-transcript.js +133 -0
- package/dist/heart/start-of-turn-packet.js +345 -0
- package/dist/heart/streaming.js +44 -27
- 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 +9 -5
- 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-description.js +143 -0
- package/dist/heart/tool-friction.js +55 -0
- package/dist/heart/tool-loop.js +200 -0
- package/dist/heart/turn-context.js +389 -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 +426 -0
- package/dist/heart/versioning/ouro-version-manager.js +295 -0
- package/dist/heart/{daemon → versioning}/staged-restart.js +40 -8
- package/dist/heart/{daemon → versioning}/update-checker.js +6 -1
- package/dist/heart/{daemon → versioning}/update-hooks.js +63 -59
- package/dist/mailbox-ui/assets/index-9-AxCxuB.js +61 -0
- package/dist/mailbox-ui/assets/index-CWzt267f.css +1 -0
- package/dist/mailbox-ui/index.html +15 -0
- package/dist/mailroom/attention.js +167 -0
- package/dist/mailroom/autonomy.js +209 -0
- package/dist/mailroom/blob-store.js +715 -0
- package/dist/mailroom/body-cache.js +61 -0
- package/dist/mailroom/core.js +788 -0
- package/dist/mailroom/entry.js +160 -0
- package/dist/mailroom/file-store.js +568 -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 +233 -0
- package/dist/mailroom/search-cache.js +334 -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 +14 -1
- package/dist/mind/context.js +251 -101
- package/dist/mind/desk-section.js +310 -0
- package/dist/mind/diary-integrity.js +60 -0
- package/dist/mind/{memory.js → diary.js} +68 -76
- package/dist/mind/embedding-provider.js +60 -0
- package/dist/mind/file-state.js +179 -0
- package/dist/mind/friends/channel.js +39 -0
- package/dist/mind/friends/resolver.js +54 -2
- package/dist/mind/friends/store-file.js +48 -4
- package/dist/mind/friends/types.js +2 -2
- package/dist/mind/journal-index.js +162 -0
- package/dist/mind/note-search.js +268 -0
- package/dist/mind/obligation-steering.js +221 -0
- package/dist/mind/pending.js +6 -1
- package/dist/mind/prompt-refresh.js +3 -2
- package/dist/mind/prompt.js +1058 -146
- package/dist/mind/provenance-trust.js +26 -0
- package/dist/mind/scrutiny.js +173 -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/event-buffer.js +111 -0
- package/dist/nerves/index.js +224 -4
- 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 +152 -0
- package/dist/nerves/runtime.js +5 -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 +997 -0
- package/dist/repertoire/bundle-templates.js +72 -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 +197 -30
- package/dist/repertoire/coding/manager.js +163 -10
- package/dist/repertoire/coding/spawner.js +55 -9
- package/dist/repertoire/coding/tools.js +177 -7
- 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 +385 -0
- package/dist/repertoire/mcp-client.js +295 -0
- package/dist/repertoire/mcp-manager.js +403 -0
- package/dist/repertoire/mcp-tools.js +83 -0
- package/dist/repertoire/plugin-mcp.js +175 -0
- package/dist/repertoire/plugins.js +253 -0
- package/dist/repertoire/shell-sessions.js +133 -0
- package/dist/repertoire/skills.js +48 -4
- package/dist/repertoire/stripe-client.js +131 -0
- package/dist/repertoire/tool-results.js +29 -0
- package/dist/repertoire/tools-attachments.js +317 -0
- package/dist/repertoire/tools-awaiting.js +372 -0
- package/dist/repertoire/tools-base.js +57 -1082
- 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-config.js +186 -0
- package/dist/repertoire/tools-continuity.js +252 -0
- package/dist/repertoire/tools-credential.js +383 -0
- package/dist/repertoire/tools-files.js +344 -0
- package/dist/repertoire/tools-flight.js +227 -0
- package/dist/repertoire/tools-flow.js +119 -0
- package/dist/repertoire/tools-github.js +3 -8
- package/dist/repertoire/tools-mail.js +1975 -0
- package/dist/repertoire/tools-notes.js +438 -0
- package/dist/repertoire/tools-obligations.js +143 -0
- package/dist/repertoire/tools-orientation.js +31 -0
- package/dist/repertoire/tools-record.js +464 -0
- package/dist/repertoire/tools-runtime.js +150 -0
- package/dist/repertoire/tools-session.js +756 -0
- package/dist/repertoire/tools-shell.js +120 -0
- package/dist/repertoire/tools-stripe.js +182 -0
- package/dist/repertoire/tools-surface.js +316 -0
- package/dist/repertoire/tools-teams.js +12 -39
- package/dist/repertoire/tools-travel.js +125 -0
- package/dist/repertoire/tools-trip.js +982 -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 +215 -103
- package/dist/repertoire/travel-api-client.js +360 -0
- package/dist/repertoire/user-profile.js +131 -0
- package/dist/repertoire/vault-setup.js +246 -0
- package/dist/repertoire/vault-unlock.js +594 -0
- package/dist/scripts/claude-code-hook.js +41 -0
- package/dist/scripts/claude-code-stop-hook.js +47 -0
- package/dist/senses/attention-queue.js +116 -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} +219 -18
- package/dist/senses/bluebubbles/entry.js +77 -0
- package/dist/senses/{bluebubbles-inbound-log.js → bluebubbles/inbound-log.js} +20 -3
- package/dist/senses/bluebubbles/index.js +2599 -0
- package/dist/senses/{bluebubbles-media.js → bluebubbles/media.js} +121 -71
- package/dist/senses/{bluebubbles-model.js → bluebubbles/model.js} +33 -12
- package/dist/senses/{bluebubbles-mutation-log.js → bluebubbles/mutation-log.js} +3 -3
- package/dist/senses/bluebubbles/processed-log.js +133 -0
- package/dist/senses/bluebubbles/replay.js +137 -0
- package/dist/senses/{bluebubbles-runtime-state.js → bluebubbles/runtime-state.js} +30 -2
- package/dist/senses/{bluebubbles-session-cleanup.js → bluebubbles/session-cleanup.js} +1 -1
- package/dist/senses/bluebubbles-meta-guard.js +40 -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 +240 -0
- package/dist/senses/cli/virtual-list.js +35 -0
- package/dist/senses/cli-entry.js +60 -8
- package/dist/senses/cli-layout.js +100 -0
- package/dist/senses/cli.js +517 -204
- package/dist/senses/commands.js +66 -3
- package/dist/senses/habit-turn-message.js +108 -0
- package/dist/senses/inner-dialog-worker.js +254 -22
- package/dist/senses/inner-dialog.js +488 -39
- package/dist/senses/mail-entry.js +66 -0
- package/dist/senses/mail.js +379 -0
- package/dist/senses/pipeline.js +666 -181
- package/dist/senses/proactive-content-guard.js +51 -0
- package/dist/senses/shared-turn.js +393 -0
- package/dist/senses/surface-tool.js +70 -0
- package/dist/senses/teams-entry.js +60 -8
- package/dist/senses/teams.js +388 -98
- package/dist/senses/trust-gate.js +100 -5
- 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 +5079 -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 +53 -0
- package/package.json +42 -8
- package/skills/agent-commerce.md +106 -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 -351
- package/dist/heart/daemon/ouro-path-installer.js +0 -178
- package/dist/heart/safe-workspace.js +0 -228
- package/dist/heart/session-recall.js +0 -116
- package/dist/mind/associative-recall.js +0 -209
- 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 -1177
- package/dist/senses/debug-activity.js +0 -148
- 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
package/dist/nerves/runtime.js
CHANGED
|
@@ -6,7 +6,11 @@ const index_1 = require("./index");
|
|
|
6
6
|
let runtimeLogger = null;
|
|
7
7
|
function getRuntimeLogger() {
|
|
8
8
|
if (!runtimeLogger) {
|
|
9
|
-
|
|
9
|
+
// Default logger has no sinks — events emitted before the real logger is
|
|
10
|
+
// configured (e.g. identity resolution during startup) are silently dropped.
|
|
11
|
+
// This prevents INFO lines from leaking to stderr and interleaving with
|
|
12
|
+
// the CLI spinner when the ouro subprocess hasn't configured its logger yet.
|
|
13
|
+
runtimeLogger = (0, index_1.createLogger)({ level: "info", sinks: [] });
|
|
10
14
|
}
|
|
11
15
|
return runtimeLogger;
|
|
12
16
|
}
|
|
@@ -9,6 +9,7 @@ exports.discoverOrganizations = discoverOrganizations;
|
|
|
9
9
|
exports.discoverProjects = discoverProjects;
|
|
10
10
|
const api_error_1 = require("../heart/api-error");
|
|
11
11
|
const runtime_1 = require("../nerves/runtime");
|
|
12
|
+
const api_client_1 = require("./api-client");
|
|
12
13
|
const ADO_BASE = "https://dev.azure.com";
|
|
13
14
|
const VSSPS_BASE = "https://app.vssps.visualstudio.com";
|
|
14
15
|
const DEFAULT_API_VERSION = "api-version=7.1";
|
|
@@ -30,62 +31,20 @@ function resolveContentType(method, path) {
|
|
|
30
31
|
// Generic ADO API request. Returns response body as pretty-printed JSON string.
|
|
31
32
|
// `host` overrides the base URL for non-standard APIs (e.g. "vsapm.dev.azure.com", "vssps.dev.azure.com").
|
|
32
33
|
async function adoRequest(token, method, org, path, body, host) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Authorization: `Bearer ${token}`,
|
|
48
|
-
"Content-Type": contentType,
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
if (body)
|
|
52
|
-
opts.body = body;
|
|
53
|
-
const res = await fetch(url, opts);
|
|
54
|
-
if (!res.ok) {
|
|
55
|
-
(0, runtime_1.emitNervesEvent)({
|
|
56
|
-
level: "error",
|
|
57
|
-
event: "client.error",
|
|
58
|
-
component: "clients",
|
|
59
|
-
message: "ADO request failed",
|
|
60
|
-
meta: { client: "ado", method, org, path, status: res.status },
|
|
61
|
-
});
|
|
62
|
-
return (0, api_error_1.handleApiError)(res, "ADO", "ado");
|
|
63
|
-
}
|
|
64
|
-
const data = await res.json();
|
|
65
|
-
(0, runtime_1.emitNervesEvent)({
|
|
66
|
-
event: "client.request_end",
|
|
67
|
-
component: "clients",
|
|
68
|
-
message: "ADO request completed",
|
|
69
|
-
meta: { client: "ado", method, org, path, success: true },
|
|
70
|
-
});
|
|
71
|
-
return JSON.stringify(data, null, 2);
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
(0, runtime_1.emitNervesEvent)({
|
|
75
|
-
level: "error",
|
|
76
|
-
event: "client.error",
|
|
77
|
-
component: "clients",
|
|
78
|
-
message: "ADO request threw exception",
|
|
79
|
-
meta: {
|
|
80
|
-
client: "ado",
|
|
81
|
-
method,
|
|
82
|
-
org,
|
|
83
|
-
path,
|
|
84
|
-
reason: err instanceof Error ? err.message : String(err),
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
return (0, api_error_1.handleApiError)(err, "ADO", "ado");
|
|
88
|
-
}
|
|
34
|
+
const base = host ? `https://${host}/${org}` : `${ADO_BASE}/${org}`;
|
|
35
|
+
const fullPath = ensureApiVersion(path);
|
|
36
|
+
return (0, api_client_1.apiRequest)({
|
|
37
|
+
baseUrl: base,
|
|
38
|
+
method,
|
|
39
|
+
path: fullPath,
|
|
40
|
+
token,
|
|
41
|
+
clientName: "ado",
|
|
42
|
+
serviceLabel: "ADO",
|
|
43
|
+
connectionName: "ado",
|
|
44
|
+
body,
|
|
45
|
+
contentType: resolveContentType(method, path),
|
|
46
|
+
eventMeta: { org },
|
|
47
|
+
});
|
|
89
48
|
}
|
|
90
49
|
// Backward-compatible thin wrapper: runs WIQL query and returns formatted work items.
|
|
91
50
|
async function queryWorkItems(token, org, query) {
|
|
@@ -221,7 +221,7 @@ exports.adoSemanticToolDefinitions = [
|
|
|
221
221
|
type: "function",
|
|
222
222
|
function: {
|
|
223
223
|
name: "ado_backlog_list",
|
|
224
|
-
description: "Query the backlog and return enriched work items with hierarchy, type, parent, assignee, area path, and iteration. Supports filtering. Use this instead of raw WIQL queries.",
|
|
224
|
+
description: "Query the backlog and return enriched work items with hierarchy, type, parent, assignee, area path, and iteration. Supports filtering. Use this instead of raw WIQL queries. Provides enriched results with hierarchy.",
|
|
225
225
|
parameters: {
|
|
226
226
|
type: "object",
|
|
227
227
|
properties: {
|
|
@@ -279,6 +279,7 @@ exports.adoSemanticToolDefinitions = [
|
|
|
279
279
|
return formatForChannel(items, ctx, organization, project);
|
|
280
280
|
},
|
|
281
281
|
integration: "ado",
|
|
282
|
+
summaryKeys: ["organization", "project"],
|
|
282
283
|
},
|
|
283
284
|
// -- ado_create_epic --
|
|
284
285
|
{
|
|
@@ -286,7 +287,7 @@ exports.adoSemanticToolDefinitions = [
|
|
|
286
287
|
type: "function",
|
|
287
288
|
function: {
|
|
288
289
|
name: "ado_create_epic",
|
|
289
|
-
description: "Create an epic in Azure DevOps with title, description, area path, and optional parent.",
|
|
290
|
+
description: "Create an epic in Azure DevOps with title, description, area path, and optional parent. Use ado_preview_changes first to dry-run the operation.",
|
|
290
291
|
parameters: {
|
|
291
292
|
type: "object",
|
|
292
293
|
properties: {
|
|
@@ -317,7 +318,8 @@ exports.adoSemanticToolDefinitions = [
|
|
|
317
318
|
return result;
|
|
318
319
|
},
|
|
319
320
|
integration: "ado",
|
|
320
|
-
|
|
321
|
+
summaryKeys: ["organization", "project", "title"],
|
|
322
|
+
riskProfile: { mutates: "external_side_effect", risk: "high", reason: "creates an Azure DevOps epic" },
|
|
321
323
|
},
|
|
322
324
|
// -- ado_create_issue --
|
|
323
325
|
{
|
|
@@ -325,7 +327,7 @@ exports.adoSemanticToolDefinitions = [
|
|
|
325
327
|
type: "function",
|
|
326
328
|
function: {
|
|
327
329
|
name: "ado_create_issue",
|
|
328
|
-
description: "Create an issue or user story in Azure DevOps with title, description, area path, and parent epic.",
|
|
330
|
+
description: "Create an issue or user story in Azure DevOps with title, description, area path, and parent epic. Use ado_preview_changes first to dry-run the operation.",
|
|
329
331
|
parameters: {
|
|
330
332
|
type: "object",
|
|
331
333
|
properties: {
|
|
@@ -358,7 +360,8 @@ exports.adoSemanticToolDefinitions = [
|
|
|
358
360
|
return result;
|
|
359
361
|
},
|
|
360
362
|
integration: "ado",
|
|
361
|
-
|
|
363
|
+
summaryKeys: ["organization", "project", "title"],
|
|
364
|
+
riskProfile: { mutates: "external_side_effect", risk: "high", reason: "creates an Azure DevOps work item" },
|
|
362
365
|
},
|
|
363
366
|
// -- ado_move_items --
|
|
364
367
|
{
|
|
@@ -366,7 +369,7 @@ exports.adoSemanticToolDefinitions = [
|
|
|
366
369
|
type: "function",
|
|
367
370
|
function: {
|
|
368
371
|
name: "ado_move_items",
|
|
369
|
-
description: "Reparent work items -- move them to a new parent epic or feature.",
|
|
372
|
+
description: "Reparent work items -- move them to a new parent epic or feature. Use ado_preview_changes first. These mutations affect real work items.",
|
|
370
373
|
parameters: {
|
|
371
374
|
type: "object",
|
|
372
375
|
properties: {
|
|
@@ -412,7 +415,8 @@ exports.adoSemanticToolDefinitions = [
|
|
|
412
415
|
return JSON.stringify({ moved, errors, organization: adoCtx.organization, project: adoCtx.project });
|
|
413
416
|
},
|
|
414
417
|
integration: "ado",
|
|
415
|
-
|
|
418
|
+
summaryKeys: ["organization", "project", "workItemIds"],
|
|
419
|
+
riskProfile: { mutates: "external_side_effect", risk: "high", reason: "reparents Azure DevOps work items" },
|
|
416
420
|
},
|
|
417
421
|
// -- ado_restructure_backlog --
|
|
418
422
|
{
|
|
@@ -420,7 +424,7 @@ exports.adoSemanticToolDefinitions = [
|
|
|
420
424
|
type: "function",
|
|
421
425
|
function: {
|
|
422
426
|
name: "ado_restructure_backlog",
|
|
423
|
-
description: "Bulk restructure: reparent multiple work items in a single logical operation.",
|
|
427
|
+
description: "Bulk restructure: reparent multiple work items in a single logical operation. Use ado_preview_changes first. These mutations affect real work items.",
|
|
424
428
|
parameters: {
|
|
425
429
|
type: "object",
|
|
426
430
|
properties: {
|
|
@@ -470,7 +474,8 @@ exports.adoSemanticToolDefinitions = [
|
|
|
470
474
|
return JSON.stringify({ results, organization: adoCtx.organization, project: adoCtx.project });
|
|
471
475
|
},
|
|
472
476
|
integration: "ado",
|
|
473
|
-
|
|
477
|
+
summaryKeys: ["organization", "project"],
|
|
478
|
+
riskProfile: { mutates: "external_side_effect", risk: "high", reason: "bulk-reparents Azure DevOps work items" },
|
|
474
479
|
},
|
|
475
480
|
// -- ado_validate_structure --
|
|
476
481
|
{
|
|
@@ -671,7 +676,8 @@ exports.adoSemanticToolDefinitions = [
|
|
|
671
676
|
return JSON.stringify({ results, organization: adoCtx.organization, project: adoCtx.project });
|
|
672
677
|
},
|
|
673
678
|
integration: "ado",
|
|
674
|
-
|
|
679
|
+
summaryKeys: ["organization", "project"],
|
|
680
|
+
riskProfile: { mutates: "external_side_effect", risk: "high", reason: "executes Azure DevOps batch mutations" },
|
|
675
681
|
},
|
|
676
682
|
// -- ado_detect_orphans --
|
|
677
683
|
{
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared HTTP API client for Graph, ADO, and GitHub clients.
|
|
4
|
+
*
|
|
5
|
+
* All three API clients follow the same pattern: emit request_start event,
|
|
6
|
+
* build request with auth header, fetch, handle errors, emit request_end,
|
|
7
|
+
* and return pretty-printed JSON. This module extracts that shared logic.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.apiRequest = apiRequest;
|
|
11
|
+
const api_error_1 = require("../heart/api-error");
|
|
12
|
+
const runtime_1 = require("../nerves/runtime");
|
|
13
|
+
const credential_access_1 = require("./credential-access");
|
|
14
|
+
/**
|
|
15
|
+
* Execute an authenticated API request with standard logging and error handling.
|
|
16
|
+
* Returns the response body as a pretty-printed JSON string.
|
|
17
|
+
*/
|
|
18
|
+
async function apiRequest(options) {
|
|
19
|
+
const { baseUrl, method, path, token, clientName, serviceLabel, connectionName, body, extraHeaders, contentType, eventMeta, credentialDomain, credentialField, } = options;
|
|
20
|
+
// Resolve token from credential store if credentialDomain is provided
|
|
21
|
+
let resolvedToken = token;
|
|
22
|
+
if (credentialDomain) {
|
|
23
|
+
try {
|
|
24
|
+
const store = (0, credential_access_1.getCredentialStore)();
|
|
25
|
+
resolvedToken = await store.getRawSecret(credentialDomain, credentialField ?? "password");
|
|
26
|
+
(0, runtime_1.emitNervesEvent)({
|
|
27
|
+
event: "client.credential_fetch",
|
|
28
|
+
component: "clients",
|
|
29
|
+
message: `fetched credential from store for ${serviceLabel}`,
|
|
30
|
+
meta: { client: clientName, credentialDomain },
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
(0, runtime_1.emitNervesEvent)({
|
|
35
|
+
level: "error",
|
|
36
|
+
event: "client.credential_error",
|
|
37
|
+
component: "clients",
|
|
38
|
+
message: `failed to fetch credential for ${serviceLabel}`,
|
|
39
|
+
/* v8 ignore next -- defensive: getRawSecret throws Error instances @preserve */
|
|
40
|
+
meta: { client: clientName, credentialDomain, reason: err instanceof Error ? err.message : String(err) },
|
|
41
|
+
});
|
|
42
|
+
return (0, api_error_1.handleApiError)(err, serviceLabel, connectionName);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
(0, runtime_1.emitNervesEvent)({
|
|
47
|
+
event: "client.request_start",
|
|
48
|
+
component: "clients",
|
|
49
|
+
message: `starting ${serviceLabel} request`,
|
|
50
|
+
meta: { client: clientName, method, path, ...eventMeta },
|
|
51
|
+
});
|
|
52
|
+
const url = `${baseUrl}${path}`;
|
|
53
|
+
const headers = {
|
|
54
|
+
Authorization: `Bearer ${resolvedToken}`,
|
|
55
|
+
"Content-Type": contentType ?? "application/json",
|
|
56
|
+
...extraHeaders,
|
|
57
|
+
};
|
|
58
|
+
const opts = { method, headers };
|
|
59
|
+
if (body)
|
|
60
|
+
opts.body = body;
|
|
61
|
+
const res = await fetch(url, opts);
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
(0, runtime_1.emitNervesEvent)({
|
|
64
|
+
level: "error",
|
|
65
|
+
event: "client.error",
|
|
66
|
+
component: "clients",
|
|
67
|
+
message: `${serviceLabel} request failed`,
|
|
68
|
+
meta: { client: clientName, method, path, status: res.status, ...eventMeta },
|
|
69
|
+
});
|
|
70
|
+
return (0, api_error_1.handleApiError)(res, serviceLabel, connectionName);
|
|
71
|
+
}
|
|
72
|
+
const data = await res.json();
|
|
73
|
+
(0, runtime_1.emitNervesEvent)({
|
|
74
|
+
event: "client.request_end",
|
|
75
|
+
component: "clients",
|
|
76
|
+
message: `${serviceLabel} request completed`,
|
|
77
|
+
meta: { client: clientName, method, path, success: true, ...eventMeta },
|
|
78
|
+
});
|
|
79
|
+
return JSON.stringify(data, null, 2);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
(0, runtime_1.emitNervesEvent)({
|
|
83
|
+
level: "error",
|
|
84
|
+
event: "client.error",
|
|
85
|
+
component: "clients",
|
|
86
|
+
message: `${serviceLabel} request threw exception`,
|
|
87
|
+
meta: {
|
|
88
|
+
client: clientName,
|
|
89
|
+
method,
|
|
90
|
+
path,
|
|
91
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
92
|
+
...eventMeta,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
return (0, api_error_1.handleApiError)(err, serviceLabel, connectionName);
|
|
96
|
+
}
|
|
97
|
+
}
|