@openrig/cli 0.6.4 → 0.6.5
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 +384 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +5 -0
- package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +100 -20
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +201 -132
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -11
- package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +45 -19
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
- package/daemon/context-packs/help/help.md +9 -4
- package/daemon/context-packs/help/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +25 -12
- package/daemon/context-packs/reference/getting-started.md +7 -2
- package/daemon/context-packs/reference/instance-layout.md +11 -0
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/rig-spec.md +32 -5
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +201 -132
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
- package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +6 -0
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +11 -11
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
- package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
- package/daemon/context-packs/skills/openrig-user/SKILL.md +45 -19
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +17 -3
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +157 -53
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +7 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +39 -8
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +7 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +14 -6
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +8 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +34 -12
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
- package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/compose-services-adapter.js +5 -2
- package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
- package/daemon/dist/adapters/daemon-url.d.ts +7 -0
- package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
- package/daemon/dist/adapters/daemon-url.js +12 -0
- package/daemon/dist/adapters/daemon-url.js.map +1 -0
- package/daemon/dist/adapters/omp-resume.d.ts +6 -0
- package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-resume.js +6 -0
- package/daemon/dist/adapters/omp-resume.js.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
- package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
- package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/pi-resume.d.ts +4 -0
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +20 -18
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +14 -2
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +62 -5
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +49 -5
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +362 -67
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +3 -2
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +49 -32
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
- package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/preflight-exec.js +52 -0
- package/daemon/dist/adapters/preflight-exec.js.map +1 -0
- package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/stub-runner.js +3 -1
- package/daemon/dist/adapters/stub-runner.js.map +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js +1 -1
- package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +47 -5
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +305 -54
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/daemon-shutdown.d.ts +19 -0
- package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
- package/daemon/dist/daemon-shutdown.js +81 -0
- package/daemon/dist/daemon-shutdown.js.map +1 -1
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +10 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
- package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
- package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
- package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/091_human_questions.js +9 -0
- package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
- package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
- package/daemon/dist/db/migrations/092_node_effort.js +8 -0
- package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
- package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
- package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
- package/daemon/dist/domain/activity-endpoint.js +3 -1
- package/daemon/dist/domain/activity-endpoint.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +13 -3
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
- package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +24 -3
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +3 -2
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-archive.js +25 -5
- package/daemon/dist/domain/bundle-archive.js.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +3 -1
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
- package/daemon/dist/domain/checkpoint-store.js +2 -2
- package/daemon/dist/domain/checkpoint-store.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts +7 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +6 -2
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +35 -12
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +256 -128
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.js +31 -4
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
- package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
- package/daemon/dist/domain/codex-daemon-support.js +2 -2
- package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
- package/daemon/dist/domain/codex-network-default.d.ts +42 -0
- package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
- package/daemon/dist/domain/codex-network-default.js +230 -0
- package/daemon/dist/domain/codex-network-default.js.map +1 -0
- package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
- package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/codex-profile-preflight.js +3 -3
- package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
- package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +10 -6
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +2 -1
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
- package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +3 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +4 -2
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-detect.js +2 -1
- package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
- package/daemon/dist/domain/crash-cart-discovery.js +4 -2
- package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +17 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +46 -0
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/cwd-resolution.js +1 -1
- package/daemon/dist/domain/cwd-resolution.js.map +1 -1
- package/daemon/dist/domain/daemon-url.d.ts +7 -0
- package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
- package/daemon/dist/domain/daemon-url.js +12 -0
- package/daemon/dist/domain/daemon-url.js.map +1 -0
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.d.ts +1 -0
- package/daemon/dist/domain/event-bus.d.ts.map +1 -1
- package/daemon/dist/domain/event-bus.js +18 -7
- package/daemon/dist/domain/event-bus.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts +3 -3
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +116 -93
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +71 -3
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +145 -11
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +77 -3
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
- package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +16 -10
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +91 -23
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +114 -27
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +3 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.js +18 -0
- package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +1 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
- package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
- package/daemon/dist/domain/health-checkpoints.js +2 -0
- package/daemon/dist/domain/health-checkpoints.js.map +1 -1
- package/daemon/dist/domain/health-detectors.d.ts +32 -1
- package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
- package/daemon/dist/domain/health-detectors.js +40 -9
- package/daemon/dist/domain/health-detectors.js.map +1 -1
- package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
- package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
- package/daemon/dist/domain/health-diagnosis.js +6 -3
- package/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
- package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
- package/daemon/dist/domain/health-passive-ceremony.js +20 -4
- package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +41 -0
- package/daemon/dist/domain/human-questions.d.ts.map +1 -0
- package/daemon/dist/domain/human-questions.js +81 -0
- package/daemon/dist/domain/human-questions.js.map +1 -0
- package/daemon/dist/domain/markdown-address.js +1 -1
- package/daemon/dist/domain/markdown-address.js.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
- package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
- package/daemon/dist/domain/native-process-lineage.d.ts +9 -2
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +104 -11
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts +5 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +17 -4
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +91 -44
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +4 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +4 -1
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/permission-drift.d.ts +1 -0
- package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift.js +13 -1
- package/daemon/dist/domain/permission-drift.js.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +14 -8
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
- package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +7 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
- package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
- package/daemon/dist/domain/projection-planner.js +14 -5
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/proof/judgments.d.ts +3 -0
- package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
- package/daemon/dist/domain/proof/judgments.js +13 -8
- package/daemon/dist/domain/proof/judgments.js.map +1 -1
- package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
- package/daemon/dist/domain/proof/source-watch.js +45 -27
- package/daemon/dist/domain/proof/source-watch.js.map +1 -1
- package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
- package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +22 -3
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +50 -11
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
- package/daemon/dist/domain/queue-recovery.js +7 -1
- package/daemon/dist/domain/queue-recovery.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +98 -6
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +301 -33
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +278 -19
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +31 -11
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
- package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
- package/daemon/dist/domain/reply-to-choice.js +45 -0
- package/daemon/dist/domain/reply-to-choice.js.map +1 -0
- package/daemon/dist/domain/restore-check-service.d.ts +27 -8
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +202 -126
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +3 -2
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +65 -208
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +2 -6
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
- package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
- package/daemon/dist/domain/restore-preconditions.js +202 -0
- package/daemon/dist/domain/restore-preconditions.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +32 -4
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +24 -24
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +3 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +21 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts +3 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +96 -19
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +6 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +4 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +37 -8
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +2 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +20 -5
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +14 -2
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +7 -0
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +10 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +73 -22
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +32 -9
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +6 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +8 -5
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
- package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
- package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
- package/daemon/dist/domain/seat-launch-environment.js +178 -0
- package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +7 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +37 -2
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +4 -2
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
- package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
- package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-switch-client-service.js +3 -2
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
- package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/services-readiness.js +6 -2
- package/daemon/dist/domain/services-readiness.js.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
- package/daemon/dist/domain/session-fingerprinter.js +16 -1
- package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +6 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +3 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +7 -0
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +30 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +290 -145
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +39 -15
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
- package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
- package/daemon/dist/domain/spec-validation-service.js +16 -1
- package/daemon/dist/domain/spec-validation-service.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +8 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +148 -37
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-submission-evidence.d.ts +41 -0
- package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
- package/daemon/dist/domain/startup-submission-evidence.js +67 -0
- package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +4 -0
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +5 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +8 -6
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.js +2 -1
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
- package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
- package/daemon/dist/domain/tmux-option-defaults.js +5 -0
- package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +1 -1
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-rotation.js +176 -25
- package/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +11 -4
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +18 -5
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +11 -6
- package/daemon/dist/domain/usage-series.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +2 -0
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +88 -6
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +11 -6
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +2 -6
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +103 -14
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
- package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
- package/daemon/dist/health-detectors-surface.d.ts +1 -1
- package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
- package/daemon/dist/health-detectors-surface.js.map +1 -1
- package/daemon/dist/index.d.ts +4 -4
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +11 -7
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/middleware/json-body-error.d.ts +17 -0
- package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
- package/daemon/dist/middleware/json-body-error.js +42 -0
- package/daemon/dist/middleware/json-body-error.js.map +1 -0
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +85 -6
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/attention.d.ts.map +1 -1
- package/daemon/dist/routes/attention.js +7 -1
- package/daemon/dist/routes/attention.js.map +1 -1
- package/daemon/dist/routes/bundles.js +32 -3
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts.map +1 -1
- package/daemon/dist/routes/compaction.js +30 -2
- package/daemon/dist/routes/compaction.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +10 -2
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/files.js +2 -2
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +6 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/hosts.d.ts.map +1 -1
- package/daemon/dist/routes/hosts.js +51 -12
- package/daemon/dist/routes/hosts.js.map +1 -1
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +6 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +17 -5
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/plugins.d.ts.map +1 -1
- package/daemon/dist/routes/plugins.js +5 -1
- package/daemon/dist/routes/plugins.js.map +1 -1
- package/daemon/dist/routes/proof.d.ts.map +1 -1
- package/daemon/dist/routes/proof.js +9 -2
- package/daemon/dist/routes/proof.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +18 -0
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +150 -67
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +40 -1
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.js +1 -1
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.d.ts.map +1 -1
- package/daemon/dist/routes/rigspec.js +7 -10
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +11 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +1 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/telemetry.d.ts.map +1 -1
- package/daemon/dist/routes/telemetry.js +6 -1
- package/daemon/dist/routes/telemetry.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts +1 -2
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +1 -2
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/up.js +2 -1
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/views.js +2 -2
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/server.d.ts +2 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +7 -2
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/spec-validation-surface.d.ts +2 -0
- package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
- package/daemon/dist/spec-validation-surface.js +2 -0
- package/daemon/dist/spec-validation-surface.js.map +1 -0
- package/daemon/dist/startup.d.ts +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +137 -50
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +36 -1
- package/daemon/docs/reference/agent-startup-guide.md +81 -2
- package/daemon/docs/reference/browser-access.md +4 -1
- package/daemon/docs/reference/developing.md +17 -9
- package/daemon/docs/reference/getting-started.md +7 -2
- package/daemon/docs/reference/health-diagnosis.md +10 -3
- package/daemon/docs/reference/help.md +9 -4
- package/daemon/docs/reference/host-resources.md +60 -0
- package/daemon/docs/reference/instance-layout.md +11 -0
- package/daemon/docs/reference/rig-spec.md +32 -5
- package/daemon/docs/reference/sdlc-conventions.md +6 -3
- package/daemon/docs/reference/slack-app-setup.md +6 -0
- package/daemon/specs/agents/shared/agent.yaml +1 -1
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +6 -0
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
- package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +1 -1
- package/dist/atomic-text-write.d.ts +3 -0
- package/dist/atomic-text-write.d.ts.map +1 -0
- package/dist/atomic-text-write.js +79 -0
- package/dist/atomic-text-write.js.map +1 -0
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +15 -2
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +14 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -4
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +2 -0
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +10 -1
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +4 -6
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/broadcast.js +1 -1
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +22 -1
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/compact-plan.d.ts.map +1 -1
- package/dist/commands/compact-plan.js +34 -5
- package/dist/commands/compact-plan.js.map +1 -1
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +24 -4
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +19 -14
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/crash-cart.d.ts.map +1 -1
- package/dist/commands/crash-cart.js +2 -1
- package/dist/commands/crash-cart.js.map +1 -1
- package/dist/commands/daemon.d.ts +13 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +35 -17
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/destroy.d.ts.map +1 -1
- package/dist/commands/destroy.js +3 -2
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +2 -4
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +3 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +8 -0
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +23 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +9 -0
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +13 -3
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +12 -2
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/ps.d.ts +1 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +97 -35
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +2 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +129 -17
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/requirements.d.ts.map +1 -1
- package/dist/commands/requirements.js +6 -3
- package/dist/commands/requirements.js.map +1 -1
- package/dist/commands/rig-mode.d.ts.map +1 -1
- package/dist/commands/rig-mode.js +6 -1
- package/dist/commands/rig-mode.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +20 -20
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +22 -0
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +39 -9
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +6 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +8 -1
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +2 -0
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/start.js +6 -5
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startup-proof.d.ts.map +1 -1
- package/dist/commands/startup-proof.js +2 -1
- package/dist/commands/startup-proof.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +4 -0
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/transcript.js +5 -3
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/up.d.ts +8 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +78 -4
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +3 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/workflow-follow.d.ts +2 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -1
- package/dist/commands/workflow-follow.js +6 -4
- package/dist/commands/workflow-follow.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +2 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +2 -4
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +2 -0
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +24 -6
- package/dist/config-store.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +9 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +61 -19
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-reachability.d.ts +18 -0
- package/dist/daemon-reachability.d.ts.map +1 -0
- package/dist/daemon-reachability.js +48 -0
- package/dist/daemon-reachability.js.map +1 -0
- package/dist/lib/file-transfer.d.ts +1 -1
- package/dist/lib/file-transfer.d.ts.map +1 -1
- package/dist/lib/file-transfer.js +17 -5
- package/dist/lib/file-transfer.js.map +1 -1
- package/dist/lib/scope/mission-composition.d.ts.map +1 -1
- package/dist/lib/scope/mission-composition.js +11 -0
- package/dist/lib/scope/mission-composition.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +4 -4
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +10 -16
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope-templates/slice-progress.md +11 -7
- package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.js +2 -0
- package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
- package/dist/restore-packet/codex-jsonl-parser.js +2 -0
- package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
- package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
- package/dist/restore-packet/runtime-detect.js +2 -0
- package/dist/restore-packet/runtime-detect.js.map +1 -1
- package/package.json +4 -3
- package/tui/dist/attention/source-continuity.d.ts.map +1 -1
- package/tui/dist/attention/source-continuity.js +5 -3
- package/tui/dist/attention/source-continuity.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +2 -1
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +13 -4
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts.map +1 -1
- package/tui/dist/execution/execution-model.js +19 -7
- package/tui/dist/execution/execution-model.js.map +1 -1
- package/tui/dist/grammar.d.ts.map +1 -1
- package/tui/dist/grammar.js +3 -2
- package/tui/dist/grammar.js.map +1 -1
- package/tui/dist/health/health-model.d.ts.map +1 -1
- package/tui/dist/health/health-model.js +17 -5
- package/tui/dist/health/health-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +1 -0
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +5 -0
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/live-events.d.ts +2 -2
- package/tui/dist/live-events.d.ts.map +1 -1
- package/tui/dist/live-events.js +65 -27
- package/tui/dist/live-events.js.map +1 -1
- package/tui/dist/local-reading.d.ts.map +1 -1
- package/tui/dist/local-reading.js +2 -0
- package/tui/dist/local-reading.js.map +1 -1
- package/tui/dist/main.js +16 -3
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/page-read.d.ts.map +1 -1
- package/tui/dist/page-read.js +4 -1
- package/tui/dist/page-read.js.map +1 -1
- package/tui/dist/render.d.ts +2 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +15 -4
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
- package/tui/dist/scopes/scopes-model.js +36 -31
- package/tui/dist/scopes/scopes-model.js.map +1 -1
- package/tui/dist/socket-server.d.ts +6 -2
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +159 -14
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/types.d.ts +18 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
- package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
- package/ui/dist/index.html +2 -2
|
@@ -15,8 +15,13 @@
|
|
|
15
15
|
import fs from "node:fs";
|
|
16
16
|
import path from "node:path";
|
|
17
17
|
import { postChatMessage, getUploadURLExternal, uploadBytesExternal, completeUploadExternal, fetchRecentMessageTexts } from "./slack-api.js";
|
|
18
|
-
import { buildOutboundMessage, attributionFromSession, reconcileToken } from "./message.js";
|
|
18
|
+
import { buildOutboundMessage, attributionFromSession, reconcileToken, redactSecrets } from "./message.js";
|
|
19
19
|
const LOCAL_IMAGE_EXT = new Set([".png", ".jpg", ".jpeg", ".gif", ".webp"]);
|
|
20
|
+
/** Local evidence files uploaded into the thread: images, video (Slack plays mp4/webm/mov inline)
|
|
21
|
+
* and PDF. Wider than LOCAL_IMAGE_EXT, which gates https Block Kit image blocks. */
|
|
22
|
+
const LOCAL_ATTACHMENT_EXT = new Set([...LOCAL_IMAGE_EXT, ".mp4", ".webm", ".mov", ".pdf"]);
|
|
23
|
+
/** Well under Slack's 1 GB per-file limit, and bounded for a daemon that holds the bytes in memory. */
|
|
24
|
+
export const LOCAL_ATTACHMENT_MAX_BYTES = 50 * 1024 * 1024;
|
|
20
25
|
const TRANSPORT_FAILURE_RECEIPT_PREFIX = "::transport-failure-receipt::";
|
|
21
26
|
const TRANSPORT_FAILURE_RECEIPT_REPAIRED = "::repaired";
|
|
22
27
|
function transportFailureReceiptKey(decisionId, failureClass, detail) {
|
|
@@ -41,19 +46,81 @@ function pendingTransportFailureReceipt(attempted, decisionId) {
|
|
|
41
46
|
return { key, error: `pending transport-failure receipt is unreadable: ${e.message}` };
|
|
42
47
|
}
|
|
43
48
|
}
|
|
44
|
-
/** Default local-
|
|
49
|
+
/** Default local-attachment reader: an absolute path with an attachment extension, a regular file
|
|
50
|
+
* of at most LOCAL_ATTACHMENT_MAX_BYTES, readable — else null (not an attachment), or { skipped }
|
|
51
|
+
* when it is an attachment that can't be sent (too large, missing, unreadable), so the miss is
|
|
52
|
+
* logged rather than silent. */
|
|
45
53
|
export function defaultReadLocalImage(refPath) {
|
|
54
|
+
if (!path.isAbsolute(refPath))
|
|
55
|
+
return null;
|
|
56
|
+
if (!LOCAL_ATTACHMENT_EXT.has(path.extname(refPath).toLowerCase()))
|
|
57
|
+
return null;
|
|
58
|
+
// The path is resolved ONCE: open it, then stat and read that same descriptor, so the file checked is the file
|
|
59
|
+
// sent. O_NONBLOCK keeps the open from waiting on a FIFO (refused below as not a regular file), and the read is
|
|
60
|
+
// bounded by the size just checked.
|
|
61
|
+
let fd = null;
|
|
46
62
|
try {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (!
|
|
50
|
-
return
|
|
51
|
-
|
|
52
|
-
|
|
63
|
+
fd = fs.openSync(refPath, fs.constants.O_RDONLY | fs.constants.O_NONBLOCK);
|
|
64
|
+
const st = fs.fstatSync(fd);
|
|
65
|
+
if (!st.isFile())
|
|
66
|
+
return { skipped: "not a regular file" };
|
|
67
|
+
if (st.size > LOCAL_ATTACHMENT_MAX_BYTES) {
|
|
68
|
+
return { skipped: `${st.size} bytes is over the ${LOCAL_ATTACHMENT_MAX_BYTES}-byte attachment cap` };
|
|
69
|
+
}
|
|
70
|
+
const bytes = new Uint8Array(st.size);
|
|
71
|
+
let read = 0;
|
|
72
|
+
while (read < bytes.length) {
|
|
73
|
+
const n = fs.readSync(fd, bytes, read, bytes.length - read, read);
|
|
74
|
+
if (n === 0)
|
|
75
|
+
break;
|
|
76
|
+
read += n;
|
|
77
|
+
}
|
|
78
|
+
return { bytes: read === bytes.length ? bytes : bytes.subarray(0, read), filename: path.basename(refPath) };
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
return { skipped: `unreadable (${e.code ?? "error"})` };
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
if (fd !== null)
|
|
85
|
+
fs.closeSync(fd);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** #47 — only an https evidenceRef with an image-like extension may ride as a Block Kit
|
|
89
|
+
* `image` block (extension set mirrors LOCAL_IMAGE_EXT). Slack rejects the ENTIRE
|
|
90
|
+
* message with `invalid_blocks` when an image block's URL is not a real image (e.g. a
|
|
91
|
+
* GitLab issue link or a PROOF.md URL — both explicitly documented evidenceRef uses),
|
|
92
|
+
* so a non-image https ref must never become an image block. Query strings and
|
|
93
|
+
* fragments are stripped before the extension check. */
|
|
94
|
+
export function isHttpsImageRef(ref) {
|
|
95
|
+
if (typeof ref !== "string")
|
|
96
|
+
return false;
|
|
97
|
+
const url = ref.trim();
|
|
98
|
+
if (!/^https:\/\/\S+$/.test(url))
|
|
99
|
+
return false;
|
|
100
|
+
try {
|
|
101
|
+
return LOCAL_IMAGE_EXT.has(path.extname(new URL(url).pathname).toLowerCase());
|
|
53
102
|
}
|
|
54
103
|
catch {
|
|
55
|
-
return
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** #47 — split an evidenceRef into an image attachment vs. a plain link. An explicit
|
|
108
|
+
* `media` array stays fully caller-controlled; otherwise an image-looking https
|
|
109
|
+
* evidenceRef becomes a Block Kit image and a non-image https evidenceRef becomes a
|
|
110
|
+
* plain link (rendered by buildEvidenceLink, never an image block). Local refs keep
|
|
111
|
+
* their existing handling (image upload flow / clean skip). */
|
|
112
|
+
export function evidenceAttachment(media, evidenceRef, summary) {
|
|
113
|
+
if (Array.isArray(media))
|
|
114
|
+
return { mediaRefs: media, evidenceLink: undefined };
|
|
115
|
+
if (typeof evidenceRef !== "string")
|
|
116
|
+
return { mediaRefs: undefined, evidenceLink: undefined };
|
|
117
|
+
const ref = evidenceRef.trim();
|
|
118
|
+
if (isHttpsImageRef(ref)) {
|
|
119
|
+
return { mediaRefs: [{ imageUrl: ref, altText: summary ?? "attachment" }], evidenceLink: undefined };
|
|
56
120
|
}
|
|
121
|
+
if (/^https:\/\/\S+$/.test(ref))
|
|
122
|
+
return { mediaRefs: undefined, evidenceLink: ref };
|
|
123
|
+
return { mediaRefs: undefined, evidenceLink: undefined };
|
|
57
124
|
}
|
|
58
125
|
/** Build the subsystem DeliverFn. Contract mirrors the retired connector handleDecision. */
|
|
59
126
|
function deliverSinglePart(opts, markEpisode = true) {
|
|
@@ -66,22 +133,21 @@ function deliverSinglePart(opts, markEpisode = true) {
|
|
|
66
133
|
}
|
|
67
134
|
const q = (decision.payload ?? {});
|
|
68
135
|
// M1 A5b (carried over from the retired sweep): an alert's evidenceRef IS the artifact the
|
|
69
|
-
// human judges —
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
: q.evidenceRef
|
|
74
|
-
? [{ imageUrl: String(q.evidenceRef), altText: q.summary ?? "attachment" }]
|
|
75
|
-
: undefined;
|
|
136
|
+
// human judges. #47 — it rides as a Block Kit image ONLY when it looks like an image;
|
|
137
|
+
// a non-image https ref rides as a plain link instead (Slack's invalid_blocks rejects
|
|
138
|
+
// the whole message when an image block's URL is not a real image).
|
|
139
|
+
const { mediaRefs, evidenceLink } = evidenceAttachment(q.media, q.evidenceRef, q.summary);
|
|
76
140
|
const payload = buildOutboundMessage({
|
|
77
141
|
qitemId: q.qitemId ?? decision.decisionId,
|
|
78
142
|
summary: q.summary,
|
|
79
143
|
body: q.body,
|
|
144
|
+
humanQuestions: q.humanQuestions,
|
|
80
145
|
destinationSession: q.destinationSession ?? decision.entityBindingRef,
|
|
81
146
|
}, {
|
|
82
147
|
sourceLabel: opts.sourceLabel,
|
|
83
148
|
bodyExcerpt: opts.bodyExcerpt,
|
|
84
149
|
mediaRefs,
|
|
150
|
+
evidenceLink,
|
|
85
151
|
// A1.2 — attribution rides every post; identity stays the app's own (postChatMessage
|
|
86
152
|
// structurally cannot carry username/icon overrides — the customize-absence rail).
|
|
87
153
|
attribution: attributionFromSession(q.sourceSession),
|
|
@@ -115,9 +181,9 @@ function deliverSinglePart(opts, markEpisode = true) {
|
|
|
115
181
|
// H — RECONCILE-BY-MARKER before any RESEND: if this decision was attempted before, the
|
|
116
182
|
// prior outcome is ambiguous (a timeout may have posted). Search where the message would
|
|
117
183
|
// live (the thread, else channel history) for the message's STRUCTURAL identity; FOUND →
|
|
118
|
-
// already delivered, record + ack, never repost.
|
|
119
|
-
//
|
|
120
|
-
//
|
|
184
|
+
// already delivered, record + ack, never repost. An initial unreadable request
|
|
185
|
+
// retains the decision. A partial scan warns and keeps main's at-least-once
|
|
186
|
+
// retry trade-off rather than indefinitely stranding a human notification.
|
|
121
187
|
// fix-r3 (R2 exactly-once): the identity is reconcileToken(decisionId) — a bounded,
|
|
122
188
|
// decision-scoped token the renderer reserves OUTSIDE the clamp budget, so it is
|
|
123
189
|
// GUARANTEED present in the scanned top-level text at any ordinary length, and ordinary
|
|
@@ -126,7 +192,7 @@ function deliverSinglePart(opts, markEpisode = true) {
|
|
|
126
192
|
// identity, same bytes, both sides.
|
|
127
193
|
const marker = reconcileToken(decision.decisionId);
|
|
128
194
|
if (attempted.has(decision.decisionId)) {
|
|
129
|
-
const scan = await fetchRecentMessageTexts(opts.botToken, opts.channel, threadTs, opts.fetchImpl);
|
|
195
|
+
const scan = await fetchRecentMessageTexts(opts.botToken, opts.channel, threadTs, opts.fetchImpl, undefined, undefined, marker);
|
|
130
196
|
if (!scan.ok) {
|
|
131
197
|
log(`reconcile scan failed for ${decision.decisionId} (${scan.error}) — retained, no blind repost`);
|
|
132
198
|
return { ok: false, class: "reconcile-unreadable", detail: scan.error };
|
|
@@ -167,7 +233,12 @@ function deliverSinglePart(opts, markEpisode = true) {
|
|
|
167
233
|
}
|
|
168
234
|
return { ok: true };
|
|
169
235
|
}
|
|
170
|
-
|
|
236
|
+
if (scan.incomplete) {
|
|
237
|
+
log(`reconcile WARNING: incomplete scan for ${decision.decisionId}: ${scan.incomplete} — marker not located; attempting one post`);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
log(`reconcile: marker "${marker}" absent — safe to send`);
|
|
241
|
+
}
|
|
171
242
|
}
|
|
172
243
|
// Marked ATTEMPTED durably BEFORE the post: from here any outcome is ambiguous until 2xx.
|
|
173
244
|
opts.attempted.mark(decision.decisionId, "attempted");
|
|
@@ -236,17 +307,23 @@ function deliverSinglePart(opts, markEpisode = true) {
|
|
|
236
307
|
// into the conversation thread (files.upload is sunset). Upload failure is fail-VISIBLE
|
|
237
308
|
// but does NOT fail the decision: the text delivered; failing here would replay the whole
|
|
238
309
|
// post and duplicate the human notification (the H red). https refs already rode as Block
|
|
239
|
-
// Kit image blocks above;
|
|
310
|
+
// Kit image blocks above; refs that are not attachments (e.g. a PROOF.md path) are a clean
|
|
311
|
+
// skip, and an attachment that can't be sent is logged.
|
|
240
312
|
const local = q.evidenceRef && !/^https:\/\//.test(String(q.evidenceRef))
|
|
241
313
|
? (opts.readLocalImage ?? defaultReadLocalImage)(String(q.evidenceRef))
|
|
242
314
|
: null;
|
|
243
|
-
if (local) {
|
|
315
|
+
if (local && "skipped" in local) {
|
|
316
|
+
log(`ATTACHMENT skipped for ${q.qitemId ?? decision.decisionId}: ${path.basename(String(q.evidenceRef))} ${local.skipped} (text delivered; attachment missing)`);
|
|
317
|
+
}
|
|
318
|
+
else if (local) {
|
|
244
319
|
const intoThread = threadTs ?? res.ts;
|
|
245
320
|
const up = await getUploadURLExternal(opts.botToken, local.filename, local.bytes.length, opts.fetchImpl);
|
|
246
321
|
if (up.ok && up.uploadUrl && up.fileId) {
|
|
247
322
|
const put = await uploadBytesExternal(up.uploadUrl, local.bytes, opts.fetchImpl);
|
|
248
323
|
if (put.ok) {
|
|
249
|
-
const done = await completeUploadExternal(opts.botToken,
|
|
324
|
+
const done = await completeUploadExternal(opts.botToken,
|
|
325
|
+
// #300: the title is shown in Slack like the text, so it gets the same secret redaction.
|
|
326
|
+
{ files: [{ id: up.fileId, title: redactSecrets(q.summary ?? local.filename) }], channelId: opts.channel, threadTs: intoThread }, opts.fetchImpl);
|
|
250
327
|
if (done.ok)
|
|
251
328
|
log(`uploaded ${local.filename} into thread ${intoThread ?? "(root)"} for ${q.qitemId ?? decision.decisionId}`);
|
|
252
329
|
else
|
|
@@ -276,18 +353,22 @@ export function subsystemSlackDeliver(opts) {
|
|
|
276
353
|
const parts = q.humanDetail
|
|
277
354
|
? [
|
|
278
355
|
{ ...q, humanDetail: undefined, body: `${q.body ?? ""}\n\nSupplemental detail follows in this thread.` },
|
|
279
|
-
{ ...q, humanDetail: undefined, summary: `Supplemental detail: ${q.summary ?? ""}`, body: q.humanDetail, media: [], evidenceRef: null },
|
|
356
|
+
{ ...q, humanDetail: undefined, humanQuestions: undefined, summary: `Supplemental detail: ${q.summary ?? ""}`, body: q.humanDetail, media: [], evidenceRef: null },
|
|
280
357
|
]
|
|
281
358
|
: [q];
|
|
282
359
|
const partId = (index) => parts.length === 1 ? decision.decisionId : `${decision.decisionId}:part:${index + 1}`;
|
|
283
360
|
try {
|
|
284
361
|
for (const [index, part] of parts.entries()) {
|
|
362
|
+
// #47 — preflight must mirror deliverSinglePart exactly: the same evidenceRef
|
|
363
|
+
// split (image attachment vs. plain link) so the shape check sees the true payload.
|
|
364
|
+
const partEvidence = evidenceAttachment(part.media, part.evidenceRef, part.summary);
|
|
285
365
|
buildOutboundMessage(part, {
|
|
286
366
|
sourceLabel: opts.sourceLabel,
|
|
287
367
|
attribution: attributionFromSession(part.sourceSession),
|
|
288
368
|
mentionUserId: index === 0 ? opts.resolveMentionUserId?.(q) : undefined,
|
|
289
369
|
reconcileMarker: reconcileToken(partId(index)),
|
|
290
|
-
mediaRefs:
|
|
370
|
+
mediaRefs: partEvidence.mediaRefs,
|
|
371
|
+
evidenceLink: partEvidence.evidenceLink,
|
|
291
372
|
});
|
|
292
373
|
}
|
|
293
374
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-delivery.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-delivery.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type GatewayWire } from "../gateway-subsystem.js";
|
|
|
2
2
|
import { type InboundFilePort } from "./inbound.js";
|
|
3
3
|
import { type RegistrySurface } from "./inbound-admission.js";
|
|
4
4
|
import { type WsLike } from "./socket-inbound.js";
|
|
5
|
-
import type
|
|
5
|
+
import { type QueueRepository } from "../../queue-repository.js";
|
|
6
6
|
import type { FetchImpl } from "./slack-api.js";
|
|
7
7
|
export interface SlackWireOpts {
|
|
8
8
|
home: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-subsystem.d.ts","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-subsystem.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack-subsystem.d.ts","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-subsystem.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAsB,KAAK,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAQxG,OAAO,EAA0D,KAAK,eAAe,EAA0E,MAAM,cAAc,CAAC;AACpL,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzF,OAAO,EAAgD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhG,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoBhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,UAAU,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,CAAC;CACzJ;AAED,UAAU,oBAAoB;IAC5B,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5G;AAED;;yEAEyE;AACzE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAqCjD;AA0BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,eAAe,CA4ClB;AAMD;wEACwE;AACxE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAqbtE"}
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
// relay already delivered (the enable-time backlog rule survives the cutover by construction).
|
|
14
14
|
import { channelStateDigest } from "../channel-operations.js";
|
|
15
15
|
import path from "node:path";
|
|
16
|
+
import { createHash } from "node:crypto";
|
|
16
17
|
import fs from "node:fs";
|
|
17
18
|
import { buildInProcessWire } from "../gateway-subsystem.js";
|
|
18
|
-
import { downloadPrivateFile } from "./slack-api.js";
|
|
19
|
+
import { downloadPrivateFile, postChatMessage } from "./slack-api.js";
|
|
19
20
|
import { loadConfig } from "./config.js";
|
|
20
21
|
import { resolveSecret } from "./secrets.js";
|
|
21
22
|
import { SeenStore, DeadLetterStore, InboundReceiptStore } from "./state-store.js";
|
|
@@ -28,6 +29,8 @@ import { ThreadSeatMap, formatPostedStamp } from "./thread-seat-map.js";
|
|
|
28
29
|
import { makeThreadRouteResolver } from "./thread-routing.js";
|
|
29
30
|
import { startSocketInbound } from "./socket-inbound.js";
|
|
30
31
|
import { loadHumanRegistry, resolveSlackHandle } from "../human-registry.js";
|
|
32
|
+
import { hasLiveHumanGate } from "../../queue-repository.js";
|
|
33
|
+
import { formatReplyToChoice, REPLY_TO_CHOICE_ACTOR } from "../../reply-to-choice.js";
|
|
31
34
|
import { parseSessionName } from "../../session-name.js";
|
|
32
35
|
import { ownerNotificationLevelAtLeast } from "../../queue-transition-log.js";
|
|
33
36
|
// OPR.0.5.6.1 — the delivery rules engine: ONE decision per message replaces
|
|
@@ -91,7 +94,8 @@ export function makeHumanReplyResolver(queueRepo, contract) {
|
|
|
91
94
|
* yields `{ name, error }`, never an exception that could cost the message.
|
|
92
95
|
*
|
|
93
96
|
* Safe-path discipline: filenames sanitize to a bounded [A-Za-z0-9._-] basename
|
|
94
|
-
* prefixed with the event ts
|
|
97
|
+
* prefixed with the event ts, a channel/message/file identity digest, and index,
|
|
98
|
+
* so messages sharing a timestamp across channels cannot overwrite each other. The resolved path
|
|
95
99
|
* is verified to stay inside `mediaDir` before any write.
|
|
96
100
|
*/
|
|
97
101
|
/** R1 F1 — the anchored Slack-host verdict: https + URL-parsed hostname that is
|
|
@@ -110,7 +114,7 @@ export function makeInboundFilePort(opts) {
|
|
|
110
114
|
const mkdirp = opts.mkdirp ?? ((dir) => { fs.mkdirSync(dir, { recursive: true }); });
|
|
111
115
|
const writeFile = opts.writeFile ?? ((p, bytes) => { fs.writeFileSync(p, bytes); });
|
|
112
116
|
return {
|
|
113
|
-
async transfer(files, eventTs) {
|
|
117
|
+
async transfer(files, eventTs, eventChannel) {
|
|
114
118
|
const stored = [];
|
|
115
119
|
const failed = [];
|
|
116
120
|
mkdirp(opts.mediaDir);
|
|
@@ -132,7 +136,8 @@ export function makeInboundFilePort(opts) {
|
|
|
132
136
|
continue;
|
|
133
137
|
}
|
|
134
138
|
const safeBase = path.basename(name).replace(/[^A-Za-z0-9._-]/g, "_").slice(0, 80) || `file-${i + 1}`;
|
|
135
|
-
const
|
|
139
|
+
const identity = createHash("sha256").update(JSON.stringify([eventChannel ?? "-", eventTs, meta.id ?? null])).digest("hex").slice(0, 20);
|
|
140
|
+
const localPath = path.join(opts.mediaDir, `${eventTs.replace(/[^0-9.]/g, "")}-${identity}-${i + 1}-${safeBase}`);
|
|
136
141
|
if (!path.resolve(localPath).startsWith(path.resolve(opts.mediaDir) + path.sep)) {
|
|
137
142
|
failed.push({ name, error: "unsafe path refused" });
|
|
138
143
|
continue;
|
|
@@ -210,6 +215,81 @@ export function buildSlackGatewayWire(opts) {
|
|
|
210
215
|
const attempted = new SeenStore(path.join(stateDir(opts.home), "slack-attempted-decisions.jsonl"));
|
|
211
216
|
// S10 thread routing — the map shares the daemon DB (queue rows carry the rebuild stamps).
|
|
212
217
|
const threadMap = new ThreadSeatMap(opts.queueRepo.db);
|
|
218
|
+
// OPR.0.5.6.14 — a failed post writes the transport-failed ledger transition so the
|
|
219
|
+
// undelivered surface (and --verify) can name the gateway's error instead of guessing
|
|
220
|
+
// from nudge telemetry. One receipt per episode.
|
|
221
|
+
const recordTransportFailed = (p, failureClass, detail) => {
|
|
222
|
+
if (!p.qitemId)
|
|
223
|
+
return;
|
|
224
|
+
const key = p.notificationKey ?? p.qitemId;
|
|
225
|
+
const alreadyRecorded = opts.queueRepo.transitionLog.listForQitem(p.qitemId).some((transition) => transition.transitionNote?.startsWith("slack-owner-notification-transport-failed ")
|
|
226
|
+
&& transition.transitionNote.split(/\s+/).includes(`notification_key=${key}`));
|
|
227
|
+
if (alreadyRecorded)
|
|
228
|
+
return;
|
|
229
|
+
opts.queueRepo.update({
|
|
230
|
+
qitemId: p.qitemId,
|
|
231
|
+
actorSession: "daemon@kernel",
|
|
232
|
+
transitionNote: [
|
|
233
|
+
"slack-owner-notification-transport-failed",
|
|
234
|
+
`notification_key=${key}`,
|
|
235
|
+
`class=${failureClass}`,
|
|
236
|
+
`error=${detail}`,
|
|
237
|
+
].join(" "),
|
|
238
|
+
});
|
|
239
|
+
};
|
|
240
|
+
// #96 — where a replyTo update posts. Walks back through earlier threaded updates (which
|
|
241
|
+
// open no root of their own) to the item that owns the root.
|
|
242
|
+
const MAX_REPLY_TO_CHAIN = 32;
|
|
243
|
+
const deriveReplyToChoice = (p) => {
|
|
244
|
+
let item = p.replyTo ? opts.queueRepo.getById(p.replyTo) : null;
|
|
245
|
+
for (let depth = 0; item && depth < MAX_REPLY_TO_CHAIN; depth++) {
|
|
246
|
+
if (hasLiveHumanGate(item))
|
|
247
|
+
return { kind: "fallback", reason: "reference-has-live-gate", qitemId: item.qitemId };
|
|
248
|
+
const root = threadMap.resolveByConversation(item.qitemId);
|
|
249
|
+
if (root) {
|
|
250
|
+
if (root.state === "closed")
|
|
251
|
+
return { kind: "fallback", reason: "root-closed", threadTs: root.threadTs };
|
|
252
|
+
if (root.channel !== cfg.channel)
|
|
253
|
+
return { kind: "fallback", reason: "root-other-channel", threadTs: root.threadTs };
|
|
254
|
+
if (root.human !== (p.destinationSession ?? ""))
|
|
255
|
+
return { kind: "fallback", reason: "root-other-human", threadTs: root.threadTs };
|
|
256
|
+
if (root.seat !== (p.sourceSession ?? ""))
|
|
257
|
+
return { kind: "fallback", reason: "root-other-seat", threadTs: root.threadTs };
|
|
258
|
+
return { kind: "thread", threadTs: root.threadTs };
|
|
259
|
+
}
|
|
260
|
+
if (!item.replyTo)
|
|
261
|
+
return { kind: "fallback", reason: "root-missing", qitemId: item.qitemId };
|
|
262
|
+
item = opts.queueRepo.getById(item.replyTo);
|
|
263
|
+
}
|
|
264
|
+
return item
|
|
265
|
+
? { kind: "fallback", reason: "chain-too-long", qitemId: item.qitemId }
|
|
266
|
+
: { kind: "fallback", reason: "root-missing", qitemId: p.replyTo ?? "" };
|
|
267
|
+
};
|
|
268
|
+
// Decided ONCE and recorded on the row before the first post. Every later attempt reuses
|
|
269
|
+
// the record, so a reconcile scan searches where the message actually went and --verify
|
|
270
|
+
// reports what happened. If the record cannot be written, nothing posts: the delivery is
|
|
271
|
+
// retained for replay and a transport-failed receipt names why, so --verify does not just
|
|
272
|
+
// time out.
|
|
273
|
+
const chooseReplyToThread = (p) => {
|
|
274
|
+
const recorded = opts.queueRepo.replyToChoiceFor(p.qitemId);
|
|
275
|
+
if (recorded)
|
|
276
|
+
return recorded;
|
|
277
|
+
const choice = deriveReplyToChoice(p);
|
|
278
|
+
try {
|
|
279
|
+
opts.queueRepo.update({ qitemId: p.qitemId, actorSession: REPLY_TO_CHOICE_ACTOR, transitionNote: formatReplyToChoice(choice) });
|
|
280
|
+
}
|
|
281
|
+
catch (e) {
|
|
282
|
+
const detail = `reply-to thread choice could not be recorded: ${e.message}`;
|
|
283
|
+
try {
|
|
284
|
+
recordTransportFailed(p, "reply-to-choice-unrecorded", detail);
|
|
285
|
+
}
|
|
286
|
+
catch (receiptError) {
|
|
287
|
+
log(`transport-failed receipt write FAILED for ${p.qitemId}: ${receiptError.message}`);
|
|
288
|
+
}
|
|
289
|
+
throw new Error(detail);
|
|
290
|
+
}
|
|
291
|
+
return choice;
|
|
292
|
+
};
|
|
213
293
|
// Late-bound so deliver can release the driver's in-flight guard (built after the wire).
|
|
214
294
|
let releaseRef = () => { };
|
|
215
295
|
const deliver = outboundReady
|
|
@@ -226,7 +306,20 @@ export function buildSlackGatewayWire(opts) {
|
|
|
226
306
|
// Slack replies identify only the root thread. Giving two qitems the same root
|
|
227
307
|
// would make an inbound reply ambiguous and could resume the wrong human gate.
|
|
228
308
|
// Re-delivery/new notification episodes for one qitem still reuse its exact root.
|
|
229
|
-
|
|
309
|
+
// #96: an update may name an earlier qitem's root; the guard lives in deriveReplyToChoice.
|
|
310
|
+
resolveThreadTs: (p) => {
|
|
311
|
+
if (p.replyTo) {
|
|
312
|
+
const choice = chooseReplyToThread(p);
|
|
313
|
+
if (choice.kind === "thread")
|
|
314
|
+
return choice.threadTs;
|
|
315
|
+
}
|
|
316
|
+
const own = threadMap.resolveOpenForConversation(p.destinationSession ?? "", p.sourceSession ?? "", p.qitemId);
|
|
317
|
+
// #96: once an update shares this root, a new decision from its owner starts a fresh
|
|
318
|
+
// root instead, so the decision never lands in a thread a reader took as FYI-only.
|
|
319
|
+
if (own && !p.replyTo && opts.queueRepo.isReplyToThread(own.threadTs))
|
|
320
|
+
return undefined;
|
|
321
|
+
return own?.threadTs;
|
|
322
|
+
},
|
|
230
323
|
// S14: posting and interruption are separate threshold dials over one vocabulary.
|
|
231
324
|
resolveMentionUserId: (p) => {
|
|
232
325
|
if (p.humanIntent === "update")
|
|
@@ -277,28 +370,7 @@ export function buildSlackGatewayWire(opts) {
|
|
|
277
370
|
log(`thread stamp failed for ${p.qitemId}: ${e.message}`);
|
|
278
371
|
}
|
|
279
372
|
},
|
|
280
|
-
|
|
281
|
-
// transition so the undelivered surface can name the gateway's error
|
|
282
|
-
// instead of guessing from nudge telemetry.
|
|
283
|
-
onTransportFailed: (p, failureClass, detail) => {
|
|
284
|
-
if (!p.qitemId)
|
|
285
|
-
return;
|
|
286
|
-
const key = p.notificationKey ?? p.qitemId;
|
|
287
|
-
const alreadyRecorded = opts.queueRepo.transitionLog.listForQitem(p.qitemId).some((transition) => transition.transitionNote?.startsWith("slack-owner-notification-transport-failed ")
|
|
288
|
-
&& transition.transitionNote.split(/\s+/).includes(`notification_key=${key}`));
|
|
289
|
-
if (alreadyRecorded)
|
|
290
|
-
return;
|
|
291
|
-
opts.queueRepo.update({
|
|
292
|
-
qitemId: p.qitemId,
|
|
293
|
-
actorSession: "daemon@kernel",
|
|
294
|
-
transitionNote: [
|
|
295
|
-
"slack-owner-notification-transport-failed",
|
|
296
|
-
`notification_key=${key}`,
|
|
297
|
-
`class=${failureClass}`,
|
|
298
|
-
`error=${detail}`,
|
|
299
|
-
].join(" "),
|
|
300
|
-
});
|
|
301
|
-
},
|
|
373
|
+
onTransportFailed: recordTransportFailed,
|
|
302
374
|
onPosted: (p, messageTs, threadTs) => {
|
|
303
375
|
// v3 digest branch: transport truth first — every member receipt is
|
|
304
376
|
// stamped HERE, after the real post, digest-tokened and episode-keyed.
|
|
@@ -475,6 +547,21 @@ export function buildSlackGatewayWire(opts) {
|
|
|
475
547
|
// or human-initiated → the configured orchestrator slot as an unrouted-signal row.
|
|
476
548
|
resolveRoute: makeThreadRouteResolver({ map: threadMap, unroutedDestination: cfg.inboundDestination, log }),
|
|
477
549
|
resolveHumanReply: opts.resolveHumanReply,
|
|
550
|
+
// #193 — a button click records its answer on the decision the clicked root belongs to;
|
|
551
|
+
// a failed hand-back is retried with the event dead-letters, and each click is confirmed
|
|
552
|
+
// in the decision's thread (a bot post, so inbound never ingests it).
|
|
553
|
+
recordHumanAnswer: (input) => opts.queueRepo.recordHumanAnswer(input),
|
|
554
|
+
actionDeadLetter: new DeadLetterStore(path.join(stateDir(opts.home), "slack-inbound-action-deadletter.jsonl")),
|
|
555
|
+
...(bot ? {
|
|
556
|
+
acknowledgeAnswer: async ({ channel, threadTs, text }) => {
|
|
557
|
+
const target = channel ?? cfg.channel;
|
|
558
|
+
if (!target)
|
|
559
|
+
return;
|
|
560
|
+
const r = await postChatMessage(bot, { channel: target, thread_ts: threadTs, text }, opts.fetchImpl);
|
|
561
|
+
if (!r.ok)
|
|
562
|
+
log(`answer acknowledgement not posted thread=${threadTs}: ${r.error}`);
|
|
563
|
+
},
|
|
564
|
+
} : {}),
|
|
478
565
|
// OPR.0.5.6.2 — inbound file transfer: wired only when the bot token exists
|
|
479
566
|
// (downloads need `files:read`); absent → the router's own named-failure
|
|
480
567
|
// arm keeps failure honest. Media lives beside the gateway's other durable
|