@ouro.bot/cli 0.1.0-alpha.55 → 0.1.0-alpha.551
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 +133 -19
- 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-bootstrap-drift.md +54 -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 +3561 -0
- package/dist/arc/attention-types.js +8 -0
- package/dist/arc/cares.js +140 -0
- package/dist/arc/episodes.js +117 -0
- package/dist/arc/intentions.js +133 -0
- package/dist/arc/json-store.js +117 -0
- package/dist/arc/obligations.js +237 -0
- package/dist/arc/packets.js +193 -0
- package/dist/arc/presence.js +185 -0
- package/dist/arc/task-lifecycle.js +65 -0
- package/dist/heart/active-work.js +837 -26
- package/dist/heart/agent-entry.js +58 -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/adapter.js +2 -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/background-operations.js +281 -0
- package/dist/heart/bundle-state.js +168 -0
- package/dist/heart/commitments.js +111 -0
- package/dist/heart/config-registry.js +304 -0
- package/dist/heart/config.js +114 -118
- package/dist/heart/core.js +925 -246
- package/dist/heart/cross-chat-delivery.js +3 -18
- package/dist/heart/daemon/agent-config-check.js +512 -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 +554 -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 +665 -0
- package/dist/heart/daemon/cli-exec.js +7565 -0
- package/dist/heart/daemon/cli-help.js +498 -0
- package/dist/heart/daemon/cli-parse.js +1590 -0
- package/dist/heart/daemon/cli-render-doctor.js +57 -0
- package/dist/heart/daemon/cli-render.js +775 -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 -1672
- package/dist/heart/daemon/daemon-entry.js +417 -2
- package/dist/heart/daemon/daemon-health.js +183 -0
- package/dist/heart/daemon/daemon-rollup.js +58 -0
- package/dist/heart/daemon/daemon-runtime-sync.js +87 -13
- package/dist/heart/daemon/daemon-tombstone.js +236 -0
- package/dist/heart/daemon/daemon.js +796 -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 +844 -0
- package/dist/heart/daemon/drift-detection.js +146 -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 +102 -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 +82 -12
- package/dist/heart/daemon/logs-prune.js +110 -0
- package/dist/heart/daemon/mcp-canary.js +297 -0
- package/dist/heart/daemon/message-router.js +2 -2
- 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/process-manager.js +375 -33
- 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 +67 -16
- package/dist/heart/daemon/runtime-metadata.js +3 -31
- package/dist/heart/daemon/safe-mode.js +161 -0
- package/dist/heart/daemon/sense-manager.js +353 -38
- package/dist/heart/daemon/session-id-resolver.js +131 -0
- package/dist/heart/daemon/skill-management-installer.js +94 -0
- 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 +3 -25
- package/dist/heart/daemon/terminal-ui.js +499 -0
- package/dist/heart/daemon/thoughts.js +162 -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 -1
- 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 +52 -117
- 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 +35 -12
- package/dist/heart/identity.js +200 -51
- 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 +195 -0
- package/dist/heart/mailbox/readers/agent-machine.js +382 -0
- package/dist/heart/mailbox/readers/continuity-readers.js +338 -0
- package/dist/heart/mailbox/readers/mail.js +362 -0
- package/dist/heart/mailbox/readers/runtime-readers.js +651 -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 +683 -0
- package/dist/heart/migrate-config.js +100 -0
- package/dist/heart/model-capabilities.js +19 -0
- package/dist/heart/platform.js +81 -0
- package/dist/heart/provider-attempt.js +134 -0
- package/dist/heart/provider-binding-resolver.js +255 -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-state.js +216 -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 +97 -13
- 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 +11 -4
- package/dist/heart/session-activity.js +43 -22
- package/dist/heart/session-events.js +1149 -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 +243 -0
- package/dist/heart/start-of-turn-packet.js +345 -0
- package/dist/heart/streaming.js +44 -27
- 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 +139 -0
- package/dist/heart/tool-friction.js +55 -0
- package/dist/heart/tool-loop.js +200 -0
- package/dist/heart/turn-context.js +381 -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-BPr5vNuM.css +1 -0
- package/dist/mailbox-ui/assets/index-Cm51CY9W.js +61 -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 +674 -0
- package/dist/mailroom/body-cache.js +61 -0
- package/dist/mailroom/core.js +720 -0
- package/dist/mailroom/entry.js +160 -0
- package/dist/mailroom/file-store.js +430 -0
- package/dist/mailroom/mbox-import.js +383 -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 +256 -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 +7 -1
- package/dist/mind/context.js +165 -101
- package/dist/mind/diary-integrity.js +60 -0
- package/dist/mind/{memory.js → diary.js} +62 -75
- package/dist/mind/embedding-provider.js +60 -0
- package/dist/mind/file-state.js +179 -0
- package/dist/mind/friends/channel.js +30 -0
- package/dist/mind/friends/resolver.js +54 -2
- package/dist/mind/friends/store-file.js +39 -3
- package/dist/mind/friends/types.js +2 -2
- package/dist/mind/journal-index.js +161 -0
- package/dist/mind/note-search.js +268 -0
- package/dist/mind/obligation-steering.js +221 -0
- package/dist/mind/pending.js +4 -0
- package/dist/mind/prompt-refresh.js +3 -2
- package/dist/mind/prompt.js +995 -123
- 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/coverage/run-artifacts.js +1 -1
- 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 +11 -10
- package/dist/repertoire/api-client.js +97 -0
- package/dist/repertoire/bitwarden-store.js +816 -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 +330 -0
- package/dist/repertoire/coding/feedback.js +197 -30
- package/dist/repertoire/coding/manager.js +158 -9
- package/dist/repertoire/coding/spawner.js +55 -9
- package/dist/repertoire/coding/tools.js +170 -7
- package/dist/repertoire/commerce-errors.js +109 -0
- package/dist/repertoire/commerce-self-test.js +156 -0
- package/dist/repertoire/credential-access.js +111 -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 +396 -0
- package/dist/repertoire/mcp-client.js +295 -0
- package/dist/repertoire/mcp-manager.js +362 -0
- package/dist/repertoire/mcp-tools.js +63 -0
- package/dist/repertoire/shell-sessions.js +133 -0
- package/dist/repertoire/skills.js +15 -24
- package/dist/repertoire/stripe-client.js +131 -0
- package/dist/repertoire/tasks/board.js +31 -5
- package/dist/repertoire/tasks/fix.js +182 -0
- package/dist/repertoire/tasks/index.js +16 -4
- package/dist/repertoire/tasks/lifecycle.js +2 -2
- package/dist/repertoire/tasks/parser.js +3 -2
- package/dist/repertoire/tasks/scanner.js +194 -37
- package/dist/repertoire/tasks/transitions.js +16 -78
- package/dist/repertoire/tool-results.js +29 -0
- package/dist/repertoire/tools-attachments.js +317 -0
- package/dist/repertoire/tools-base.js +47 -1075
- package/dist/repertoire/tools-bluebubbles.js +1 -0
- package/dist/repertoire/tools-bridge.js +142 -0
- package/dist/repertoire/tools-bundle.js +984 -0
- package/dist/repertoire/tools-config.js +185 -0
- package/dist/repertoire/tools-continuity.js +248 -0
- package/dist/repertoire/tools-credential.js +381 -0
- package/dist/repertoire/tools-files.js +342 -0
- package/dist/repertoire/tools-flight.js +224 -0
- package/dist/repertoire/tools-flow.js +119 -0
- package/dist/repertoire/tools-github.js +1 -7
- package/dist/repertoire/tools-mail.js +1857 -0
- package/dist/repertoire/tools-notes.js +421 -0
- package/dist/repertoire/tools-session.js +750 -0
- package/dist/repertoire/tools-shell.js +120 -0
- package/dist/repertoire/tools-stripe.js +180 -0
- package/dist/repertoire/tools-surface.js +243 -0
- package/dist/repertoire/tools-teams.js +9 -39
- package/dist/repertoire/tools-travel.js +125 -0
- package/dist/repertoire/tools-trip.js +604 -0
- package/dist/repertoire/tools-user-profile.js +144 -0
- package/dist/repertoire/tools-vault.js +40 -0
- package/dist/repertoire/tools.js +108 -100
- 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 +561 -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/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 +2305 -0
- package/dist/senses/{bluebubbles-media.js → bluebubbles/media.js} +121 -70
- 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/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 +187 -0
- package/dist/senses/cli.js +520 -209
- package/dist/senses/commands.js +66 -3
- package/dist/senses/habit-turn-message.js +108 -0
- package/dist/senses/inner-dialog-worker.js +175 -21
- package/dist/senses/inner-dialog.js +330 -27
- package/dist/senses/mail-entry.js +66 -0
- package/dist/senses/mail.js +379 -0
- package/dist/senses/pipeline.js +569 -182
- package/dist/senses/proactive-content-guard.js +51 -0
- package/dist/senses/shared-turn.js +248 -0
- package/dist/senses/surface-tool.js +68 -0
- package/dist/senses/teams-entry.js +60 -8
- package/dist/senses/teams.js +387 -98
- package/dist/senses/trust-gate.js +100 -5
- package/dist/trips/core.js +138 -0
- package/dist/trips/store.js +146 -0
- package/package.json +38 -7
- 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 +101 -0
- package/skills/travel-planning.md +138 -0
- package/dist/heart/daemon/ouro-path-installer.js +0 -178
- package/dist/heart/daemon/subagent-installer.js +0 -166
- package/dist/heart/session-recall.js +0 -116
- package/dist/mind/associative-recall.js +0 -209
- 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 -86
- package/subagents/work-doer.md +0 -237
- package/subagents/work-merger.md +0 -618
- package/subagents/work-planner.md +0 -390
- /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/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,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProactiveInternalContentBlockReason = getProactiveInternalContentBlockReason;
|
|
4
|
+
exports.emitProactiveInternalContentBlocked = emitProactiveInternalContentBlocked;
|
|
5
|
+
const runtime_1 = require("../nerves/runtime");
|
|
6
|
+
// ── Patterns ────────────────────────────────────────────────────
|
|
7
|
+
const PROACTIVE_INTERNAL_CONTENT_PATTERNS = [
|
|
8
|
+
// PR 447 patterns: raw meta markers
|
|
9
|
+
{ reason: "raw_meta_marker", pattern: /<\s*\/?\s*(think|analysis|commentary)\b[^>]*>/i },
|
|
10
|
+
{ reason: "raw_meta_marker", pattern: /\[\s*surfaced from inner dialog\s*\]/i },
|
|
11
|
+
// Inner dialog / attention / obligation references
|
|
12
|
+
{ reason: "inner_dialog_reference", pattern: /\binner (dialog|dialogue)\b/i },
|
|
13
|
+
{ reason: "attention_queue_reference", pattern: /\battention queues?\b/i },
|
|
14
|
+
{ reason: "return_obligation_reference", pattern: /\b(return|held|heart|inner)\s+obligations?\b/i },
|
|
15
|
+
// Surfacing mechanics
|
|
16
|
+
{ reason: "surfacing_mechanics_reference", pattern: /\b(surface tool|surfacing (mechanics|itself)|surfaced? outward|call `?surface`?|delegationId|delegation id)\b/i },
|
|
17
|
+
// Prompt references
|
|
18
|
+
{ reason: "prompt_reference", pattern: /\b(system|developer|inner|tool|orientation)\s+prompts?\b|\bprompt\/orientation\b|\bprompt wording\b/i },
|
|
19
|
+
// Routing references
|
|
20
|
+
{ reason: "routing_reference", pattern: /\b(routing target|reply target|route through surface|routed through surface|proactive bluebubbles delivery)\b/i },
|
|
21
|
+
// Heartbeat / status patterns
|
|
22
|
+
{ reason: "heartbeat_status", pattern: /\bheartbeat\b/i },
|
|
23
|
+
{ reason: "heartbeat_status", pattern: /\bcheck-in\b/i },
|
|
24
|
+
{ reason: "heartbeat_status", pattern: /\btask board\b/i },
|
|
25
|
+
{ reason: "heartbeat_status", pattern: /\ball else settled\b/i },
|
|
26
|
+
{ reason: "heartbeat_status", pattern: /\bobligations?\s+showing\b/i },
|
|
27
|
+
{ reason: "heartbeat_status", pattern: /\bsame state\b/i },
|
|
28
|
+
];
|
|
29
|
+
// ── Public API ──────────────────────────────────────────────────
|
|
30
|
+
function getProactiveInternalContentBlockReason(text) {
|
|
31
|
+
for (const { reason, pattern } of PROACTIVE_INTERNAL_CONTENT_PATTERNS) {
|
|
32
|
+
if (pattern.test(text))
|
|
33
|
+
return reason;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
function emitProactiveInternalContentBlocked(params) {
|
|
38
|
+
(0, runtime_1.emitNervesEvent)({
|
|
39
|
+
level: "warn",
|
|
40
|
+
component: "senses",
|
|
41
|
+
event: "senses.proactive_internal_content_blocked",
|
|
42
|
+
message: "proactive send blocked: internal content",
|
|
43
|
+
meta: {
|
|
44
|
+
friendId: params.friendId,
|
|
45
|
+
source: params.source,
|
|
46
|
+
reason: params.reason,
|
|
47
|
+
...(params.sessionKey ? { sessionKey: params.sessionKey } : {}),
|
|
48
|
+
...(params.intent ? { intent: params.intent } : {}),
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Shared turn runner for non-interactive senses (MCP, future senses).
|
|
3
|
+
// Follows the CLI pattern: resolves context, constructs InboundTurnInput,
|
|
4
|
+
// calls handleInboundTurn, collects response text, detects ponder deferral.
|
|
5
|
+
//
|
|
6
|
+
// Does NOT refactor CLI — CLI is stable with 2280+ tests. This is a new
|
|
7
|
+
// code path for new senses that follows the same pipeline pattern.
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.stripThinkBlocks = stripThinkBlocks;
|
|
43
|
+
exports.runSenseTurn = runSenseTurn;
|
|
44
|
+
const os = __importStar(require("os"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const core_1 = require("../heart/core");
|
|
47
|
+
const identity_1 = require("../heart/identity");
|
|
48
|
+
const config_1 = require("../heart/config");
|
|
49
|
+
const session_events_1 = require("../heart/session-events");
|
|
50
|
+
const context_1 = require("../mind/context");
|
|
51
|
+
const prompt_1 = require("../mind/prompt");
|
|
52
|
+
const channel_1 = require("../mind/friends/channel");
|
|
53
|
+
const resolver_1 = require("../mind/friends/resolver");
|
|
54
|
+
const store_file_1 = require("../mind/friends/store-file");
|
|
55
|
+
const pending_1 = require("../mind/pending");
|
|
56
|
+
const context_2 = require("../mind/context");
|
|
57
|
+
const tokens_1 = require("../mind/friends/tokens");
|
|
58
|
+
const trust_gate_1 = require("./trust-gate");
|
|
59
|
+
const pipeline_1 = require("./pipeline");
|
|
60
|
+
const mcp_manager_1 = require("../repertoire/mcp-manager");
|
|
61
|
+
const runtime_1 = require("../nerves/runtime");
|
|
62
|
+
const RESPONSE_CAP = 50_000;
|
|
63
|
+
/**
|
|
64
|
+
* Strip MiniMax-style `<think>...</think>` reasoning blocks from a response
|
|
65
|
+
* string. Handles unclosed open tags (treats everything from `<think>` to
|
|
66
|
+
* end of string as reasoning) and multiple blocks in sequence. Returns the
|
|
67
|
+
* trimmed remainder.
|
|
68
|
+
*/
|
|
69
|
+
function stripThinkBlocks(input) {
|
|
70
|
+
let out = input;
|
|
71
|
+
// Closed blocks first (greedy match removed by repeatedly slicing the leftmost pair).
|
|
72
|
+
for (;;) {
|
|
73
|
+
const open = out.indexOf("<think>");
|
|
74
|
+
if (open === -1)
|
|
75
|
+
break;
|
|
76
|
+
const close = out.indexOf("</think>", open + "<think>".length);
|
|
77
|
+
if (close === -1) {
|
|
78
|
+
// Unclosed — drop everything from <think> onward.
|
|
79
|
+
out = out.slice(0, open);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
out = out.slice(0, open) + out.slice(close + "</think>".length);
|
|
83
|
+
}
|
|
84
|
+
return out.trim();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Run a single agent turn through the inbound pipeline.
|
|
88
|
+
* Caller provides channel, session key, friend, and message;
|
|
89
|
+
* this function handles all pipeline wiring.
|
|
90
|
+
*/
|
|
91
|
+
async function runSenseTurn(options) {
|
|
92
|
+
const { agentName, channel, sessionKey, friendId, userMessage } = options;
|
|
93
|
+
(0, runtime_1.emitNervesEvent)({
|
|
94
|
+
component: "senses",
|
|
95
|
+
event: "senses.shared_turn_start",
|
|
96
|
+
message: "shared turn runner starting",
|
|
97
|
+
meta: { agentName, channel, sessionKey, friendId },
|
|
98
|
+
});
|
|
99
|
+
// Resolve context
|
|
100
|
+
const agentRoot = (0, identity_1.getAgentRoot)(agentName);
|
|
101
|
+
const friendsPath = path.join(agentRoot, "friends");
|
|
102
|
+
const friendStore = new store_file_1.FileFriendStore(friendsPath);
|
|
103
|
+
const capabilities = (0, channel_1.getChannelCapabilities)(channel);
|
|
104
|
+
// If friendId looks like a UUID, look up the friend record directly and use its identity.
|
|
105
|
+
// Otherwise, resolve as a local user (same pattern as CLI sense).
|
|
106
|
+
const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-/.test(friendId);
|
|
107
|
+
let resolverParams;
|
|
108
|
+
if (isUuid) {
|
|
109
|
+
const existingFriend = await friendStore.get(friendId);
|
|
110
|
+
if (existingFriend) {
|
|
111
|
+
// Use the friend's first external ID for resolver context
|
|
112
|
+
const ext = existingFriend.externalIds?.[0];
|
|
113
|
+
resolverParams = {
|
|
114
|
+
provider: (ext?.provider ?? "local"),
|
|
115
|
+
externalId: ext?.externalId ?? friendId,
|
|
116
|
+
displayName: existingFriend.name ?? friendId,
|
|
117
|
+
channel,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
resolverParams = { provider: "local", externalId: friendId, displayName: friendId, channel };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Treat as local user identity (username@hostname pattern)
|
|
126
|
+
const username = os.userInfo().username;
|
|
127
|
+
resolverParams = { provider: "local", externalId: username, displayName: username, channel };
|
|
128
|
+
}
|
|
129
|
+
const resolver = new resolver_1.FriendResolver(friendStore, resolverParams);
|
|
130
|
+
// Initialize MCP manager so MCP tools appear as first-class tools in the agent's tool list
|
|
131
|
+
const mcpManager = await (0, mcp_manager_1.getSharedMcpManager)() ?? undefined;
|
|
132
|
+
// Session path and loading
|
|
133
|
+
const sessPath = (0, config_1.sessionPath)(friendId, channel, sessionKey);
|
|
134
|
+
const existing = (0, context_1.loadSession)(sessPath);
|
|
135
|
+
let sessionState = existing?.state;
|
|
136
|
+
let persistPromise;
|
|
137
|
+
const sessionMessages = existing?.messages && existing.messages.length > 0
|
|
138
|
+
? existing.messages
|
|
139
|
+
: [{ role: "system", content: (0, prompt_1.flattenSystemPrompt)(await (0, prompt_1.buildSystem)(channel, {}, undefined)) }];
|
|
140
|
+
// Pending dir
|
|
141
|
+
const pendingDir = (0, pending_1.getPendingDir)(agentName, friendId, channel, sessionKey);
|
|
142
|
+
// Accumulate response text via callbacks
|
|
143
|
+
let responseText = "";
|
|
144
|
+
/* v8 ignore start — no-op callback stubs; only onTextChunk does real work (covered via mock) */
|
|
145
|
+
const callbacks = {
|
|
146
|
+
onModelStart: () => { },
|
|
147
|
+
onModelStreamStart: () => { },
|
|
148
|
+
onTextChunk: (chunk) => { responseText += chunk; },
|
|
149
|
+
onReasoningChunk: () => { },
|
|
150
|
+
onToolStart: () => { },
|
|
151
|
+
onToolEnd: () => { },
|
|
152
|
+
onError: () => { },
|
|
153
|
+
};
|
|
154
|
+
/* v8 ignore stop */
|
|
155
|
+
// Run the pipeline
|
|
156
|
+
const userMsg = { role: "user", content: userMessage };
|
|
157
|
+
(0, session_events_1.stampIngressTime)(userMsg);
|
|
158
|
+
await (0, pipeline_1.handleInboundTurn)({
|
|
159
|
+
channel,
|
|
160
|
+
sessionKey,
|
|
161
|
+
capabilities,
|
|
162
|
+
messages: [userMsg],
|
|
163
|
+
callbacks,
|
|
164
|
+
/* v8 ignore start — delegation wrappers; pipeline integration tested separately */
|
|
165
|
+
friendResolver: { resolve: () => resolver.resolve() },
|
|
166
|
+
sessionLoader: {
|
|
167
|
+
loadOrCreate: () => Promise.resolve({
|
|
168
|
+
messages: sessionMessages,
|
|
169
|
+
sessionPath: sessPath,
|
|
170
|
+
state: sessionState,
|
|
171
|
+
events: existing?.events,
|
|
172
|
+
}),
|
|
173
|
+
},
|
|
174
|
+
/* v8 ignore stop */
|
|
175
|
+
pendingDir,
|
|
176
|
+
friendStore,
|
|
177
|
+
provider: "local",
|
|
178
|
+
externalId: friendId,
|
|
179
|
+
enforceTrustGate: trust_gate_1.enforceTrustGate,
|
|
180
|
+
drainPending: pending_1.drainPending,
|
|
181
|
+
runAgentOptions: { mcpManager },
|
|
182
|
+
/* v8 ignore start — delegation wrappers; these just forward to the real functions */
|
|
183
|
+
runAgent: (msgs, cb, ch, sig, opts) => (0, core_1.runAgent)(msgs, cb, ch, sig, opts),
|
|
184
|
+
postTurn: (turnMessages, sessionPathArg, usage, hooks, state) => {
|
|
185
|
+
const prepared = (0, context_2.postTurnTrim)(turnMessages, usage, hooks);
|
|
186
|
+
sessionState = state;
|
|
187
|
+
persistPromise = (0, context_2.deferPostTurnPersist)(sessionPathArg, prepared, usage, state);
|
|
188
|
+
},
|
|
189
|
+
/* v8 ignore stop */
|
|
190
|
+
accumulateFriendTokens: tokens_1.accumulateFriendTokens,
|
|
191
|
+
});
|
|
192
|
+
const ponderDeferred = false;
|
|
193
|
+
// Build response
|
|
194
|
+
let finalResponse;
|
|
195
|
+
if (responseText.length === 0) {
|
|
196
|
+
// Agent settled but no text came through callbacks — check session transcript for the settle answer
|
|
197
|
+
// Await deferred persist so the session file is up-to-date before readback
|
|
198
|
+
/* v8 ignore next -- persistPromise set inside v8-ignored postTurn callback; tested via pipeline integration @preserve */
|
|
199
|
+
if (persistPromise)
|
|
200
|
+
await persistPromise;
|
|
201
|
+
const postTurnSession = (0, context_1.loadSession)(sessPath);
|
|
202
|
+
if (postTurnSession?.messages) {
|
|
203
|
+
const lastAssistant = [...postTurnSession.messages].reverse().find(m => m.role === "assistant");
|
|
204
|
+
if (lastAssistant && typeof lastAssistant.content === "string" && lastAssistant.content.trim()) {
|
|
205
|
+
finalResponse = lastAssistant.content;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
finalResponse = "(agent responded but response was empty)";
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
finalResponse = "(agent responded but response was empty)";
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
finalResponse = responseText;
|
|
217
|
+
}
|
|
218
|
+
// Strip MiniMax-style <think>...</think> blocks from the final response.
|
|
219
|
+
// When a reasoning-style model emits only a think block and no final answer
|
|
220
|
+
// (no settle tool call, no post-think text), the readback path above
|
|
221
|
+
// surfaces the raw saved assistant content — which includes the think tags
|
|
222
|
+
// and renders as empty (or as raw reasoning) on MCP/CLI clients. Strip
|
|
223
|
+
// here so the caller sees the actual delivered text. If only reasoning
|
|
224
|
+
// came through and nothing else, surface a clear diagnostic message
|
|
225
|
+
// instead of a blank response so the operator knows what happened.
|
|
226
|
+
finalResponse = stripThinkBlocks(finalResponse);
|
|
227
|
+
if (finalResponse.length === 0) {
|
|
228
|
+
(0, runtime_1.emitNervesEvent)({
|
|
229
|
+
level: "warn",
|
|
230
|
+
component: "senses",
|
|
231
|
+
event: "senses.shared_turn_only_reasoning",
|
|
232
|
+
message: "agent produced only <think> reasoning with no final answer — likely a model that closed the think tag without continuing",
|
|
233
|
+
meta: { agentName, channel, sessionKey, friendId },
|
|
234
|
+
});
|
|
235
|
+
finalResponse = "(agent produced reasoning but no final answer this turn — try again, or check the session transcript for the trace)";
|
|
236
|
+
}
|
|
237
|
+
// Cap response length
|
|
238
|
+
if (finalResponse.length > RESPONSE_CAP) {
|
|
239
|
+
finalResponse = finalResponse.slice(0, RESPONSE_CAP) + "\n\n[truncated — response exceeded 50K characters]";
|
|
240
|
+
}
|
|
241
|
+
(0, runtime_1.emitNervesEvent)({
|
|
242
|
+
component: "senses",
|
|
243
|
+
event: "senses.shared_turn_end",
|
|
244
|
+
message: "shared turn runner complete",
|
|
245
|
+
meta: { agentName, channel, sessionKey, friendId, ponderDeferred, responseLength: finalResponse.length },
|
|
246
|
+
});
|
|
247
|
+
return { response: finalResponse, ponderDeferred };
|
|
248
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleSurface = handleSurface;
|
|
4
|
+
const attention_queue_1 = require("./attention-queue");
|
|
5
|
+
const runtime_1 = require("../nerves/runtime");
|
|
6
|
+
async function handleSurface(input) {
|
|
7
|
+
const { content, delegationId, friendId, queue, routeToFriend, advanceObligation, fulfillHeartObligation } = input;
|
|
8
|
+
// Resolve target friend
|
|
9
|
+
let targetFriendId;
|
|
10
|
+
let queueItem;
|
|
11
|
+
if (delegationId) {
|
|
12
|
+
// Look up in attention queue
|
|
13
|
+
const found = queue.find((item) => item.id === delegationId);
|
|
14
|
+
if (!found) {
|
|
15
|
+
return `no delegation found with id ${delegationId} — check your attention queue`;
|
|
16
|
+
}
|
|
17
|
+
targetFriendId = found.friendId;
|
|
18
|
+
queueItem = found;
|
|
19
|
+
}
|
|
20
|
+
else if (friendId) {
|
|
21
|
+
targetFriendId = friendId;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return "specify who this thought is for — use delegationId to address a held thought, or friendId for spontaneous outreach";
|
|
25
|
+
}
|
|
26
|
+
// Route to target
|
|
27
|
+
const result = await routeToFriend(targetFriendId, content, queueItem);
|
|
28
|
+
(0, runtime_1.emitNervesEvent)({
|
|
29
|
+
event: "senses.surface_routed",
|
|
30
|
+
component: "senses",
|
|
31
|
+
message: `surface routed to ${targetFriendId}: ${result.status}`,
|
|
32
|
+
meta: {
|
|
33
|
+
targetFriendId,
|
|
34
|
+
status: result.status,
|
|
35
|
+
hasDelegationId: !!delegationId,
|
|
36
|
+
...(result.detail ? { detail: result.detail } : {}),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
// On successful routing with delegationId:
|
|
40
|
+
// 1. Advance obligation to "returned" (disk FIRST — crash safety)
|
|
41
|
+
// 2. Dequeue from process-local queue (AFTER obligation advance)
|
|
42
|
+
if (delegationId && queueItem && result.status !== "failed") {
|
|
43
|
+
if (queueItem.obligationId) {
|
|
44
|
+
advanceObligation(queueItem.obligationId, {
|
|
45
|
+
status: "returned",
|
|
46
|
+
returnedAt: Date.now(),
|
|
47
|
+
returnTarget: "surface",
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Fulfill the heart obligation for this origin (separate from inner/mind obligation)
|
|
51
|
+
if (fulfillHeartObligation) {
|
|
52
|
+
try {
|
|
53
|
+
fulfillHeartObligation({
|
|
54
|
+
friendId: queueItem.friendId,
|
|
55
|
+
channel: queueItem.channel,
|
|
56
|
+
key: queueItem.key,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// swallowed — heart obligation fulfillment must never break surface delivery
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
(0, attention_queue_1.dequeueAttentionItem)(queue, delegationId);
|
|
64
|
+
}
|
|
65
|
+
// Return delivery status
|
|
66
|
+
const detail = result.detail ? ` — ${result.detail}` : "";
|
|
67
|
+
return `${result.status}${detail}`;
|
|
68
|
+
}
|
|
@@ -1,15 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
7
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const runtime_1 = require("../nerves/runtime");
|
|
8
37
|
// Fail fast if --agent is missing (before any src/ code tries getAgentName())
|
|
9
|
-
|
|
38
|
+
const agentArgIndex = process.argv.indexOf("--agent");
|
|
39
|
+
const agentName = agentArgIndex >= 0 ? process.argv[agentArgIndex + 1] : undefined;
|
|
40
|
+
if (!agentName) {
|
|
10
41
|
// eslint-disable-next-line no-console -- pre-boot guard: --agent check before imports
|
|
11
42
|
console.error("Missing required --agent <name> argument.\nUsage: node dist/senses/teams-entry.js --agent ouroboros");
|
|
12
43
|
process.exit(1);
|
|
13
44
|
}
|
|
14
|
-
|
|
15
|
-
|
|
45
|
+
(0, runtime_1.emitNervesEvent)({
|
|
46
|
+
component: "senses",
|
|
47
|
+
event: "senses.entry_boot",
|
|
48
|
+
message: "booting Teams entrypoint",
|
|
49
|
+
meta: { entry: "teams", agentName },
|
|
50
|
+
});
|
|
51
|
+
Promise.resolve().then(() => __importStar(require("../heart/runtime-credentials"))).then(async ({ refreshRuntimeCredentialConfig }) => {
|
|
52
|
+
void refreshRuntimeCredentialConfig(agentName, { preserveCachedOnFailure: true }).catch(() => undefined);
|
|
53
|
+
const { startTeamsApp } = await Promise.resolve().then(() => __importStar(require("./teams")));
|
|
54
|
+
startTeamsApp();
|
|
55
|
+
})
|
|
56
|
+
.catch((error) => {
|
|
57
|
+
(0, runtime_1.emitNervesEvent)({
|
|
58
|
+
level: "error",
|
|
59
|
+
component: "senses",
|
|
60
|
+
event: "senses.entry_error",
|
|
61
|
+
message: "Teams entrypoint failed",
|
|
62
|
+
meta: { entry: "teams", agentName, error: error instanceof Error ? error.message : String(error) },
|
|
63
|
+
});
|
|
64
|
+
// eslint-disable-next-line no-console -- fatal startup guard for sense process
|
|
65
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
});
|