crewly 1.20.361 → 1.20.363
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/config/hooks/destructive-git-guard/guard.mjs +96 -0
- package/config/roles/team-leader/prompt.md +1 -1
- package/config/roles/team-leader/tl-addon.md +1 -1
- package/config/skills/agent/core/ask-owner/SKILL.md +31 -0
- package/config/skills/agent/core/ask-owner/execute.sh +14 -3
- package/config/skills/agent/core/ask-owner/execute.test.sh +8 -0
- package/config/skills/agent/core/gmail-read/SKILL.md +8 -0
- package/config/skills/agent/core/gmail-send/SKILL.md +10 -3
- package/config/skills/agent/core/gmail-send/execute.sh +2 -1
- package/config/skills/agent/core/gmail-watch-thread/SKILL.md +69 -0
- package/config/skills/agent/core/gmail-watch-thread/execute.sh +51 -0
- package/config/skills/agent/core/project-tickets/SKILL.md +12 -0
- package/config/skills/agent/core/project-tickets/execute.sh +13 -3
- package/config/skills/agent/core/project-tickets/execute.test.sh +4 -0
- package/config/skills/agent/core/watch-for-event/SKILL.md +22 -0
- package/config/skills/orchestrator/harness-login/SKILL.md +1 -1
- package/config/skills/team-leader/delegate-task/SKILL.md +21 -6
- package/config/skills/team-leader/delegate-task/execute.sh +12 -1
- package/dist/backend/backend/src/constants.d.ts +216 -8
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +217 -9
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts +44 -0
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.js +121 -3
- package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.routes.js +5 -1
- package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts +1 -1
- package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +2 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +7 -4
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +114 -1
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/follow-through.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/follow-through.wiring.js +2 -0
- package/dist/backend/backend/src/services/agent/follow-through.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/agent/handover-interrupted.d.ts +76 -0
- package/dist/backend/backend/src/services/agent/handover-interrupted.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/handover-interrupted.js +139 -0
- package/dist/backend/backend/src/services/agent/handover-interrupted.js.map +1 -0
- package/dist/backend/backend/src/services/agent/handover-pointers.d.ts +4 -0
- package/dist/backend/backend/src/services/agent/handover-pointers.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/handover-pointers.js +11 -4
- package/dist/backend/backend/src/services/agent/handover-pointers.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-work-guard.d.ts +3 -1
- package/dist/backend/backend/src/services/agent/idle-work-guard.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-work-guard.js +2 -0
- package/dist/backend/backend/src/services/agent/idle-work-guard.js.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +5 -1
- package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode-protection.js +6 -1
- package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +7 -0
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +18 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts +8 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js +10 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts +46 -13
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.js +100 -50
- package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-contract.d.ts +23 -1
- package/dist/backend/backend/src/services/decisions/decision-contract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-contract.js +76 -4
- package/dist/backend/backend/src/services/decisions/decision-contract.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-wording.d.ts +167 -0
- package/dist/backend/backend/src/services/decisions/decision-wording.d.ts.map +1 -0
- package/dist/backend/backend/src/services/decisions/decision-wording.js +406 -0
- package/dist/backend/backend/src/services/decisions/decision-wording.js.map +1 -0
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +30 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +44 -8
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +17 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +1 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/google/gmail-reply-watch.service.d.ts +142 -0
- package/dist/backend/backend/src/services/google/gmail-reply-watch.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/google/gmail-reply-watch.service.js +304 -0
- package/dist/backend/backend/src/services/google/gmail-reply-watch.service.js.map +1 -0
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.d.ts +130 -0
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.js +216 -0
- package/dist/backend/backend/src/services/google/gmail-send-approval.service.js.map +1 -0
- package/dist/backend/backend/src/services/google/gmail-send-gate.d.ts +28 -13
- package/dist/backend/backend/src/services/google/gmail-send-gate.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/gmail-send-gate.js +82 -29
- package/dist/backend/backend/src/services/google/gmail-send-gate.js.map +1 -1
- package/dist/backend/backend/src/services/google/gmail.service.d.ts +90 -0
- package/dist/backend/backend/src/services/google/gmail.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/gmail.service.js +122 -0
- package/dist/backend/backend/src/services/google/gmail.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/claude-accounts.d.ts +24 -14
- package/dist/backend/backend/src/services/harness/claude-accounts.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/claude-accounts.js +35 -21
- package/dist/backend/backend/src/services/harness/claude-accounts.js.map +1 -1
- package/dist/backend/backend/src/services/harness/claude-native-login.d.ts +106 -0
- package/dist/backend/backend/src/services/harness/claude-native-login.d.ts.map +1 -0
- package/dist/backend/backend/src/services/harness/claude-native-login.js +174 -0
- package/dist/backend/backend/src/services/harness/claude-native-login.js.map +1 -0
- package/dist/backend/backend/src/services/harness/claude-token-migration.service.d.ts +158 -0
- package/dist/backend/backend/src/services/harness/claude-token-migration.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/harness/claude-token-migration.service.js +283 -0
- package/dist/backend/backend/src/services/harness/claude-token-migration.service.js.map +1 -0
- package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts +44 -24
- package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-credentials.store.js +96 -39
- package/dist/backend/backend/src/services/harness/harness-credentials.store.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-registry.js +1 -1
- package/dist/backend/backend/src/services/harness/harness-registry.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +2 -2
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js +2 -2
- package/dist/backend/backend/src/services/harness/harness.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness.service.js +10 -1
- package/dist/backend/backend/src/services/harness/harness.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/login-broker.service.d.ts +24 -21
- package/dist/backend/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/login-broker.service.js +50 -64
- package/dist/backend/backend/src/services/harness/login-broker.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/login-rules.d.ts +17 -11
- package/dist/backend/backend/src/services/harness/login-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/login-rules.js +22 -25
- package/dist/backend/backend/src/services/harness/login-rules.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts +79 -2
- package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-extractor.js +194 -13
- package/dist/backend/backend/src/services/open-items/open-item-extractor.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +65 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.js +140 -7
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts +8 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js +19 -1
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +35 -19
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +60 -63
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts +86 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.js +170 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.text.js.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts +24 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js +38 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts +2 -0
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +8 -3
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +76 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js +83 -3
- package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +31 -2
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +38 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +5 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +30 -6
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-file.js +6 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-file.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.d.ts +64 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.js +93 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold-registry.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold.d.ts +176 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold.js +301 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hold.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +33 -3
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +50 -4
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +8 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +26 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +6 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +3 -2
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +4 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/stall/background-run-detector.d.ts +56 -0
- package/dist/backend/backend/src/services/stall/background-run-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/stall/background-run-detector.js +93 -0
- package/dist/backend/backend/src/services/stall/background-run-detector.js.map +1 -0
- package/dist/backend/backend/src/services/stall/claim-check.d.ts +60 -0
- package/dist/backend/backend/src/services/stall/claim-check.d.ts.map +1 -0
- package/dist/backend/backend/src/services/stall/claim-check.js +98 -0
- package/dist/backend/backend/src/services/stall/claim-check.js.map +1 -0
- package/dist/backend/backend/src/services/stall/in-flight-runs.store.d.ts +110 -0
- package/dist/backend/backend/src/services/stall/in-flight-runs.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/stall/in-flight-runs.store.js +109 -0
- package/dist/backend/backend/src/services/stall/in-flight-runs.store.js.map +1 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.service.d.ts +490 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.service.js +922 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.service.js.map +1 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.wiring.d.ts +98 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.wiring.js +217 -0
- package/dist/backend/backend/src/services/stall/stall-watcher.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +53 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +162 -15
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.js +1 -1
- package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +3 -0
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +5 -2
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.d.ts +7 -2
- package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.js +11 -2
- package/dist/backend/backend/src/services/worktree/worktree-unmerged-notice.js.map +1 -1
- package/dist/backend/backend/src/types/decision.types.d.ts +53 -1
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +4 -2
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +8 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/project-ticket.types.d.ts +7 -0
- package/dist/backend/backend/src/types/project-ticket.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/project-ticket.types.js +1 -0
- package/dist/backend/backend/src/types/project-ticket.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts +10 -1
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +216 -8
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +217 -9
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/handover-interrupted.d.ts +76 -0
- package/dist/cli/backend/src/services/agent/handover-interrupted.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/handover-interrupted.js +139 -0
- package/dist/cli/backend/src/services/agent/handover-interrupted.js.map +1 -0
- package/dist/cli/backend/src/services/agent/handover-pointers.d.ts +4 -0
- package/dist/cli/backend/src/services/agent/handover-pointers.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/handover-pointers.js +11 -4
- package/dist/cli/backend/src/services/agent/handover-pointers.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +7 -0
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +18 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts +8 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js +10 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts +46 -13
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.js +100 -50
- package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +23 -1
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-contract.js +76 -4
- package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-wording.d.ts +167 -0
- package/dist/cli/backend/src/services/decisions/decision-wording.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-wording.js +406 -0
- package/dist/cli/backend/src/services/decisions/decision-wording.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +30 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +44 -8
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +1 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/claude-accounts.d.ts +24 -14
- package/dist/cli/backend/src/services/harness/claude-accounts.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/claude-accounts.js +35 -21
- package/dist/cli/backend/src/services/harness/claude-accounts.js.map +1 -1
- package/dist/cli/backend/src/services/harness/claude-native-login.d.ts +106 -0
- package/dist/cli/backend/src/services/harness/claude-native-login.d.ts.map +1 -0
- package/dist/cli/backend/src/services/harness/claude-native-login.js +174 -0
- package/dist/cli/backend/src/services/harness/claude-native-login.js.map +1 -0
- package/dist/cli/backend/src/services/harness/claude-token-migration.service.d.ts +158 -0
- package/dist/cli/backend/src/services/harness/claude-token-migration.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/harness/claude-token-migration.service.js +283 -0
- package/dist/cli/backend/src/services/harness/claude-token-migration.service.js.map +1 -0
- package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts +44 -24
- package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-credentials.store.js +96 -39
- package/dist/cli/backend/src/services/harness/harness-credentials.store.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-registry.js +1 -1
- package/dist/cli/backend/src/services/harness/harness-registry.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +2 -2
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js +2 -2
- package/dist/cli/backend/src/services/harness/harness.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness.service.js +10 -1
- package/dist/cli/backend/src/services/harness/harness.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/login-broker.service.d.ts +24 -21
- package/dist/cli/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/login-broker.service.js +50 -64
- package/dist/cli/backend/src/services/harness/login-broker.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/login-rules.d.ts +17 -11
- package/dist/cli/backend/src/services/harness/login-rules.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/login-rules.js +22 -25
- package/dist/cli/backend/src/services/harness/login-rules.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts +79 -2
- package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-extractor.js +194 -13
- package/dist/cli/backend/src/services/open-items/open-item-extractor.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +65 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.js +140 -7
- package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts +86 -0
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.js +170 -0
- package/dist/cli/backend/src/services/orc/owner-completion-report.text.js.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +76 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.js +83 -3
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +5 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +30 -6
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-file.js +6 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-file.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-hold.d.ts +176 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-hold.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-hold.js +301 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-hold.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +53 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +162 -15
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +53 -1
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.d.ts +4 -2
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.js +8 -0
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/cli/backend/src/types/project-ticket.types.d.ts +7 -0
- package/dist/cli/backend/src/types/project-ticket.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/project-ticket.types.js +1 -0
- package/dist/cli/backend/src/types/project-ticket.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts +10 -1
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stall watcher (crewly#1363, crewly#1362, specs/2026-10-17-stall-watcher.md).
|
|
3
|
+
*
|
|
4
|
+
* Stalls used to be a metric only (`TRACE_CONSTANTS.STALL_MINUTES`). This
|
|
5
|
+
* service acts on three kinds of in-flight work, each keyed to the agent's
|
|
6
|
+
* own estimate when it gave one:
|
|
7
|
+
*
|
|
8
|
+
* - **Promises to the owner** (open-items commitments): at 1.5× the estimate
|
|
9
|
+
* past the promise with nothing posted, the agent is re-briefed once with
|
|
10
|
+
* the last message from someone else before the promise (the approval it
|
|
11
|
+
* may be re-waiting for, crewly#1361); at 3× the team lead is told once;
|
|
12
|
+
* when the lead has not answered in the thread within LEAD_GRACE_MS, the
|
|
13
|
+
* owner gets one plain line (at most one per item per day).
|
|
14
|
+
* - **Claimed WorkItems**: the run trace's ongoing stall (no tool calls,
|
|
15
|
+
* posts or worktree changes for CLAIM_STALL_MS) nudges the claimer once
|
|
16
|
+
* with the cause; a second window with no progress releases the claim
|
|
17
|
+
* (unassigned, so the route sweep hands it to the lead and then the
|
|
18
|
+
* orchestrator) and tells the lead. Tickets the ticket autopilot already
|
|
19
|
+
* watches are left to it.
|
|
20
|
+
* - **Background runs**: an agent saying it started something that takes a
|
|
21
|
+
* while ("已经开跑…预计 1 小时左右") is recorded in
|
|
22
|
+
* `CREWLY_HOME/in-flight-runs.json`; the agent is protected from idle stops
|
|
23
|
+
* and evictions until expectedBy + grace; the same ladder as promises
|
|
24
|
+
* applies when nothing (a file, a link, a finished / failed report) lands in
|
|
25
|
+
* the thread.
|
|
26
|
+
*
|
|
27
|
+
* Plus the claim check (crewly#1362): "X is doing it" told to the owner with
|
|
28
|
+
* no WorkItem or ticket for X within CLAIM_CHECK_WINDOW_MS gets the speaker
|
|
29
|
+
* one internal line; the owner hears nothing.
|
|
30
|
+
*
|
|
31
|
+
* Cost control: every line to an agent is one line and tagged; one nudge per
|
|
32
|
+
* agent per NUDGE_COOLDOWN_MS; the owner is never the retry loop. The first
|
|
33
|
+
* ARM_DELAY_MS after the first pass is a dry run (logs only).
|
|
34
|
+
*
|
|
35
|
+
* @module services/stall/stall-watcher.service
|
|
36
|
+
*/
|
|
37
|
+
import { type ComponentLogger } from '../core/logger.service.js';
|
|
38
|
+
import type { Request } from '../../types/v2/request.types.js';
|
|
39
|
+
import type { WorkItem } from '../../types/v2/work-item.types.js';
|
|
40
|
+
import type { TaskClaim } from '../../types/v2/claim.types.js';
|
|
41
|
+
import { type RequestOpenItem } from '../../types/v2/open-item.types.js';
|
|
42
|
+
import type { StallCause } from '../trace/trace-metrics.js';
|
|
43
|
+
import { type ClaimableMember } from './claim-check.js';
|
|
44
|
+
import { type InFlightRun, type InFlightRunsStore, type StallWatcherState } from './in-flight-runs.store.js';
|
|
45
|
+
/** A chat-v2 message as the watcher reads it (from the thread or the live event). */
|
|
46
|
+
export interface StallThreadMessage {
|
|
47
|
+
id: string;
|
|
48
|
+
senderType: string;
|
|
49
|
+
senderId: string;
|
|
50
|
+
content: string;
|
|
51
|
+
/** Epoch ms */
|
|
52
|
+
createdAt: number;
|
|
53
|
+
/** Attachments on the post */
|
|
54
|
+
attachmentCount?: number;
|
|
55
|
+
metadata?: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
/** A live chat-v2 message (the `chat_message` event). */
|
|
58
|
+
export interface StallIncomingMessage extends StallThreadMessage {
|
|
59
|
+
channelId: string;
|
|
60
|
+
/** Thread root; absent for a root post */
|
|
61
|
+
threadId?: string;
|
|
62
|
+
}
|
|
63
|
+
/** Where a conversation lives in chat-v2. */
|
|
64
|
+
export interface StallThreadRef {
|
|
65
|
+
channelId: string;
|
|
66
|
+
threadId: string;
|
|
67
|
+
}
|
|
68
|
+
/** An ongoing stall on a trace, as the traces service sees it. */
|
|
69
|
+
export interface StallSignal {
|
|
70
|
+
/** Length of the gap so far (ms) */
|
|
71
|
+
ms: number;
|
|
72
|
+
cause: StallCause;
|
|
73
|
+
detail: string;
|
|
74
|
+
}
|
|
75
|
+
/** A step of the ladder. */
|
|
76
|
+
export type LadderStep = 'agent' | 'lead' | 'owner';
|
|
77
|
+
/** The owner's language, read from the owner's own messages in the thread. */
|
|
78
|
+
export type OwnerLanguage = 'zh' | 'en';
|
|
79
|
+
/** The boot-pressure gate (same shape as the wiki maintenance one). */
|
|
80
|
+
export type StallBootGate = () => Promise<{
|
|
81
|
+
reduced: boolean;
|
|
82
|
+
waitedMs: number;
|
|
83
|
+
reason?: string;
|
|
84
|
+
}>;
|
|
85
|
+
/** Collaborators. */
|
|
86
|
+
export interface StallWatcherDeps {
|
|
87
|
+
/** Every request (tickets with open items) */
|
|
88
|
+
listRequests: () => Promise<Request[]>;
|
|
89
|
+
/** Every WorkItem */
|
|
90
|
+
listWorkItems: () => Promise<WorkItem[]>;
|
|
91
|
+
/** Active claims (running items with a holder) */
|
|
92
|
+
activeClaims: () => Promise<TaskClaim[]>;
|
|
93
|
+
/** WorkItems that belong to an in-progress project ticket (the ticket autopilot watches those) */
|
|
94
|
+
ticketLinkedWorkItemIds?: () => Promise<ReadonlySet<string>>;
|
|
95
|
+
/** Every message of a thread, oldest first */
|
|
96
|
+
threadMessages: (ref: StallThreadRef) => Promise<StallThreadMessage[]>;
|
|
97
|
+
/** The ongoing stall of the trace a claimed item (or its holder) is on, or null when it is moving */
|
|
98
|
+
stallOf: (ref: {
|
|
99
|
+
workItemId: string;
|
|
100
|
+
session: string;
|
|
101
|
+
}) => Promise<StallSignal | null>;
|
|
102
|
+
/** Release a stalled claim: the item goes back to the queue, unassigned */
|
|
103
|
+
releaseClaim: (workItemId: string, reason: string) => Promise<void>;
|
|
104
|
+
/** One line to an agent (wakes it); false when it could not be delivered */
|
|
105
|
+
deliverToAgent: (session: string, text: string) => Promise<boolean>;
|
|
106
|
+
/** The agent's team lead, or null */
|
|
107
|
+
leadOf: (session: string) => Promise<string | null>;
|
|
108
|
+
/** Display name ("Pia") */
|
|
109
|
+
displayName: (session: string) => Promise<string>;
|
|
110
|
+
/** One plain line to the owner (the owner-alert notifier); false when not sent */
|
|
111
|
+
notifyOwner: (line: string) => Promise<boolean>;
|
|
112
|
+
/** Stamp a ladder step on an open-items commitment, so the open-items sweep does not repeat it */
|
|
113
|
+
recordPromiseStep: (requestId: string, itemId: string, step: LadderStep, at: Date) => Promise<void>;
|
|
114
|
+
/** The speaker's teammates (for "X is doing it") */
|
|
115
|
+
teammatesOf: (session: string) => Promise<ClaimableMember[]>;
|
|
116
|
+
/** A WorkItem or ticket for `member`, created by `speaker` or the harness, within ±windowMs of `saidAt` */
|
|
117
|
+
assignmentExists: (speaker: string, member: string, saidAt: number, windowMs: number) => Promise<boolean>;
|
|
118
|
+
/** Whether a live message is a reply to the owner (claims elsewhere are not checked); absent = every agent post */
|
|
119
|
+
isOwnerThread?: (message: StallIncomingMessage) => Promise<boolean>;
|
|
120
|
+
/** Record a harness nudge on the session's trace */
|
|
121
|
+
trace?: (input: {
|
|
122
|
+
session: string;
|
|
123
|
+
summary: string;
|
|
124
|
+
workItemId?: string;
|
|
125
|
+
data?: Record<string, unknown>;
|
|
126
|
+
}) => void;
|
|
127
|
+
bootGate?: StallBootGate;
|
|
128
|
+
store: InFlightRunsStore;
|
|
129
|
+
now?: () => number;
|
|
130
|
+
env?: NodeJS.ProcessEnv;
|
|
131
|
+
logger?: ComponentLogger;
|
|
132
|
+
}
|
|
133
|
+
/** What one pass did. */
|
|
134
|
+
export interface StallTickResult {
|
|
135
|
+
/** Set when the pass did not run */
|
|
136
|
+
skipped?: 'disabled';
|
|
137
|
+
dryRun: boolean;
|
|
138
|
+
promises: {
|
|
139
|
+
agent: number;
|
|
140
|
+
lead: number;
|
|
141
|
+
owner: number;
|
|
142
|
+
};
|
|
143
|
+
claims: {
|
|
144
|
+
nudged: number;
|
|
145
|
+
released: number;
|
|
146
|
+
};
|
|
147
|
+
runs: {
|
|
148
|
+
agent: number;
|
|
149
|
+
lead: number;
|
|
150
|
+
owner: number;
|
|
151
|
+
cleared: number;
|
|
152
|
+
};
|
|
153
|
+
teammateClaims: {
|
|
154
|
+
checked: number;
|
|
155
|
+
nudged: number;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Clip text to one line of at most `max` characters.
|
|
160
|
+
*
|
|
161
|
+
* @param text - Text
|
|
162
|
+
* @param max - Max characters
|
|
163
|
+
* @returns Clipped text
|
|
164
|
+
*/
|
|
165
|
+
export declare function clip(text: string, max: number): string;
|
|
166
|
+
/**
|
|
167
|
+
* A duration in words, in the owner's language.
|
|
168
|
+
*
|
|
169
|
+
* @param ms - Milliseconds
|
|
170
|
+
* @param lang - Language
|
|
171
|
+
* @returns "40 分钟" / "1.5 小时" / "40 minutes" / "1.5 hours"
|
|
172
|
+
*/
|
|
173
|
+
export declare function durationWords(ms: number, lang?: OwnerLanguage): string;
|
|
174
|
+
/**
|
|
175
|
+
* The owner's language in a thread: Chinese when the owner's own messages
|
|
176
|
+
* hold more CJK characters than Latin letters, else English (CLAUDE.md:
|
|
177
|
+
* harness text is English; a line to the owner follows the owner).
|
|
178
|
+
*
|
|
179
|
+
* @param messages - The thread
|
|
180
|
+
* @returns 'zh' or 'en'
|
|
181
|
+
*/
|
|
182
|
+
export declare function ownerLanguage(messages: readonly StallThreadMessage[]): OwnerLanguage;
|
|
183
|
+
/**
|
|
184
|
+
* The last message by someone other than the agent before a time: the
|
|
185
|
+
* approval or instruction the promise answered (crewly#1361 expectation 2).
|
|
186
|
+
*
|
|
187
|
+
* @param messages - The thread
|
|
188
|
+
* @param agent - The promising agent
|
|
189
|
+
* @param before - Epoch ms of the promise
|
|
190
|
+
* @returns That message, or null
|
|
191
|
+
*/
|
|
192
|
+
export declare function contextBefore(messages: readonly StallThreadMessage[], agent: string, before: number): StallThreadMessage | null;
|
|
193
|
+
/**
|
|
194
|
+
* Whether a run's agent posted a deliverable or a finished / failed report in
|
|
195
|
+
* the thread after the run started.
|
|
196
|
+
*
|
|
197
|
+
* @param messages - The thread
|
|
198
|
+
* @param run - The run
|
|
199
|
+
* @returns True when the run is over as far as the thread shows
|
|
200
|
+
*/
|
|
201
|
+
export declare function runDeliveredIn(messages: readonly StallThreadMessage[], run: Pick<InFlightRun, 'agent' | 'startedAt' | 'id'>): boolean;
|
|
202
|
+
/**
|
|
203
|
+
* The time each ladder step is due.
|
|
204
|
+
*
|
|
205
|
+
* @param madeAt - Promise / run start (ms)
|
|
206
|
+
* @param estimateMs - The agent's estimate
|
|
207
|
+
* @returns Due times (ms)
|
|
208
|
+
*/
|
|
209
|
+
export declare function ladderDue(madeAt: number, estimateMs: number): {
|
|
210
|
+
agentDue: number;
|
|
211
|
+
leadDue: number;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* The idle-stop / eviction protection reason for a session with a run in
|
|
215
|
+
* flight, or null.
|
|
216
|
+
*
|
|
217
|
+
* @param runs - Recorded runs
|
|
218
|
+
* @param session - Agent session
|
|
219
|
+
* @param now - Epoch ms
|
|
220
|
+
* @returns English reason, or null
|
|
221
|
+
*/
|
|
222
|
+
export declare function runProtectionReason(runs: readonly InFlightRun[], session: string, now: number): string | null;
|
|
223
|
+
/**
|
|
224
|
+
* Whether the watcher is switched on.
|
|
225
|
+
*
|
|
226
|
+
* @param env - Environment
|
|
227
|
+
* @returns False when CREWLY_STALL_WATCHER=false
|
|
228
|
+
*/
|
|
229
|
+
export declare function stallWatcherEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
230
|
+
/**
|
|
231
|
+
* Whether a pass is a dry run: CREWLY_STALL_WATCHER_DRY_RUN=true/false wins;
|
|
232
|
+
* otherwise dry until ARM_DELAY_MS after the first pass.
|
|
233
|
+
*
|
|
234
|
+
* @param armedAt - When the first pass ran (ms), or undefined
|
|
235
|
+
* @param now - Epoch ms
|
|
236
|
+
* @param env - Environment
|
|
237
|
+
* @returns True to only log
|
|
238
|
+
*/
|
|
239
|
+
export declare function stallWatcherDryRun(armedAt: number | undefined, now: number, env?: NodeJS.ProcessEnv): boolean;
|
|
240
|
+
/**
|
|
241
|
+
* The agent-facing stall cause: the trace's label plus its detail.
|
|
242
|
+
*
|
|
243
|
+
* @param signal - Stall signal
|
|
244
|
+
* @returns One clause
|
|
245
|
+
*/
|
|
246
|
+
export declare function causeText(signal: StallSignal): string;
|
|
247
|
+
/**
|
|
248
|
+
* The one plain line the owner gets about a promise.
|
|
249
|
+
*
|
|
250
|
+
* @param lang - Owner's language
|
|
251
|
+
* @param input - Names and times
|
|
252
|
+
* @returns The line
|
|
253
|
+
*/
|
|
254
|
+
export declare function promiseOwnerLine(lang: OwnerLanguage, input: {
|
|
255
|
+
name: string;
|
|
256
|
+
what: string;
|
|
257
|
+
estimateMs: number;
|
|
258
|
+
elapsedMs: number;
|
|
259
|
+
leadName: string | null;
|
|
260
|
+
}): string;
|
|
261
|
+
/**
|
|
262
|
+
* Whether an open item is an owner decision asked in prose that has no card
|
|
263
|
+
* (crewly#1369): it is followed up on the promise ladder.
|
|
264
|
+
*
|
|
265
|
+
* @param item - Open item
|
|
266
|
+
* @returns True for an uncarded owner question with a due time
|
|
267
|
+
*/
|
|
268
|
+
export declare function isUncardedOwnerQuestion(item: RequestOpenItem): boolean;
|
|
269
|
+
/**
|
|
270
|
+
* The one plain line the owner gets about a question still waiting on him.
|
|
271
|
+
*
|
|
272
|
+
* @param lang - Owner's language
|
|
273
|
+
* @param input - Name, question, time since
|
|
274
|
+
* @returns The line
|
|
275
|
+
*/
|
|
276
|
+
export declare function questionOwnerLine(lang: OwnerLanguage, input: {
|
|
277
|
+
name: string;
|
|
278
|
+
what: string;
|
|
279
|
+
elapsedMs: number;
|
|
280
|
+
}): string;
|
|
281
|
+
/**
|
|
282
|
+
* The one plain line the owner gets about a background run.
|
|
283
|
+
*
|
|
284
|
+
* @param lang - Owner's language
|
|
285
|
+
* @param input - Names and times
|
|
286
|
+
* @returns The line
|
|
287
|
+
*/
|
|
288
|
+
export declare function runOwnerLine(lang: OwnerLanguage, input: {
|
|
289
|
+
name: string;
|
|
290
|
+
head: string;
|
|
291
|
+
estimateMs: number;
|
|
292
|
+
elapsedMs: number;
|
|
293
|
+
leadName: string | null;
|
|
294
|
+
}): string;
|
|
295
|
+
/**
|
|
296
|
+
* The running watcher, if any.
|
|
297
|
+
*
|
|
298
|
+
* @returns The service, or null
|
|
299
|
+
*/
|
|
300
|
+
export declare function getStallWatcher(): StallWatcherService | null;
|
|
301
|
+
/**
|
|
302
|
+
* Install (or clear) the process-wide watcher.
|
|
303
|
+
*
|
|
304
|
+
* @param service - The service, or null
|
|
305
|
+
*/
|
|
306
|
+
export declare function setStallWatcher(service: StallWatcherService | null): void;
|
|
307
|
+
/**
|
|
308
|
+
* Watches in-flight work and climbs the agent → lead → owner ladder.
|
|
309
|
+
*/
|
|
310
|
+
export declare class StallWatcherService {
|
|
311
|
+
private readonly deps;
|
|
312
|
+
private readonly logger;
|
|
313
|
+
private readonly now;
|
|
314
|
+
private readonly env;
|
|
315
|
+
private state;
|
|
316
|
+
private loaded;
|
|
317
|
+
private timer;
|
|
318
|
+
private bootTimer;
|
|
319
|
+
private chain;
|
|
320
|
+
/**
|
|
321
|
+
* @param deps - Collaborators
|
|
322
|
+
*/
|
|
323
|
+
constructor(deps: StallWatcherDeps);
|
|
324
|
+
/**
|
|
325
|
+
* Whether the kill switch is off.
|
|
326
|
+
*
|
|
327
|
+
* @returns True when the watcher may run
|
|
328
|
+
*/
|
|
329
|
+
enabled(): boolean;
|
|
330
|
+
/**
|
|
331
|
+
* Load the state file, then schedule the first pass (after the boot
|
|
332
|
+
* gate and BOOT_DELAY_MS) and the periodic passes. No-op when disabled.
|
|
333
|
+
*/
|
|
334
|
+
start(): void;
|
|
335
|
+
/** Stop the passes. Safe to call more than once. */
|
|
336
|
+
stop(): void;
|
|
337
|
+
/**
|
|
338
|
+
* Read the state file once (later passes keep the in-memory copy).
|
|
339
|
+
*
|
|
340
|
+
* @returns The state
|
|
341
|
+
*/
|
|
342
|
+
load(): Promise<StallWatcherState>;
|
|
343
|
+
/**
|
|
344
|
+
* The first pass: waits at the boot-pressure gate like the other
|
|
345
|
+
* maintenance passes, then ticks.
|
|
346
|
+
*
|
|
347
|
+
* @returns What the pass did
|
|
348
|
+
*/
|
|
349
|
+
bootTick(): Promise<StallTickResult>;
|
|
350
|
+
/**
|
|
351
|
+
* Why an agent must not be idle-stopped or evicted right now: a run it
|
|
352
|
+
* announced is still expected. Synchronous, from the in-memory state.
|
|
353
|
+
*
|
|
354
|
+
* @param session - Agent session
|
|
355
|
+
* @returns English reason, or null
|
|
356
|
+
*/
|
|
357
|
+
protectedRunReason(session: string): string | null;
|
|
358
|
+
/**
|
|
359
|
+
* The runs recorded for a session (tests and the status endpoint).
|
|
360
|
+
*
|
|
361
|
+
* @param session - Agent session
|
|
362
|
+
* @returns Runs, newest last
|
|
363
|
+
*/
|
|
364
|
+
runsOf(session: string): InFlightRun[];
|
|
365
|
+
/**
|
|
366
|
+
* A chat-v2 message arrived. Agent posts can start a background run,
|
|
367
|
+
* close one (a deliverable or a finished / failed report in its thread)
|
|
368
|
+
* or claim that a teammate is doing something. Other posts are ignored
|
|
369
|
+
* here; the lead's answer is read from the thread when the ladder needs it.
|
|
370
|
+
*
|
|
371
|
+
* @param message - The message
|
|
372
|
+
*/
|
|
373
|
+
onMessage(message: StallIncomingMessage): Promise<void>;
|
|
374
|
+
/**
|
|
375
|
+
* One pass over every kind of in-flight work.
|
|
376
|
+
*
|
|
377
|
+
* @returns What the pass did
|
|
378
|
+
*/
|
|
379
|
+
tick(): Promise<StallTickResult>;
|
|
380
|
+
/**
|
|
381
|
+
* Run `fn` after every earlier change to the state (one writer).
|
|
382
|
+
*
|
|
383
|
+
* @param fn - Work
|
|
384
|
+
* @returns Its result
|
|
385
|
+
*/
|
|
386
|
+
private serial;
|
|
387
|
+
/**
|
|
388
|
+
* The pass itself (under {@link serial}).
|
|
389
|
+
*
|
|
390
|
+
* @returns What it did
|
|
391
|
+
*/
|
|
392
|
+
private pass;
|
|
393
|
+
/**
|
|
394
|
+
* One line to an agent, at most one per agent per NUDGE_COOLDOWN_MS.
|
|
395
|
+
*
|
|
396
|
+
* @param agent - Session
|
|
397
|
+
* @param text - The line
|
|
398
|
+
* @param now - Epoch ms
|
|
399
|
+
* @param dry - Dry run: log only
|
|
400
|
+
* @param recentNudgeAt - A nudge from elsewhere that counts for the cooldown
|
|
401
|
+
* @returns What happened
|
|
402
|
+
*/
|
|
403
|
+
private nudgeAgent;
|
|
404
|
+
/**
|
|
405
|
+
* One line to an agent's lead.
|
|
406
|
+
*
|
|
407
|
+
* @param agent - The agent whose lead is told
|
|
408
|
+
* @param text - The line (built with the lead's name)
|
|
409
|
+
* @param dry - Dry run
|
|
410
|
+
* @returns The lead session when told (or would be), null when there is no lead or it failed
|
|
411
|
+
*/
|
|
412
|
+
private tellLead;
|
|
413
|
+
/**
|
|
414
|
+
* Display name of a session (falls back to the session).
|
|
415
|
+
*
|
|
416
|
+
* @param session - Session
|
|
417
|
+
* @returns Name
|
|
418
|
+
*/
|
|
419
|
+
private name;
|
|
420
|
+
/**
|
|
421
|
+
* Climb one step of the ladder for an item, when it is due.
|
|
422
|
+
*
|
|
423
|
+
* @param item - The item
|
|
424
|
+
* @param now - Epoch ms
|
|
425
|
+
* @param dry - Dry run
|
|
426
|
+
* @returns The step taken, or null
|
|
427
|
+
*/
|
|
428
|
+
private climb;
|
|
429
|
+
/**
|
|
430
|
+
* Active commitments with a due time: the ladder keyed to the agent's
|
|
431
|
+
* estimate (due − made). The open-items sweep's own stamps count as steps.
|
|
432
|
+
*
|
|
433
|
+
* @param now - Epoch ms
|
|
434
|
+
* @param dry - Dry run
|
|
435
|
+
* @param result - Counters
|
|
436
|
+
*/
|
|
437
|
+
private promisesPass;
|
|
438
|
+
/**
|
|
439
|
+
* The ladder item of a commitment.
|
|
440
|
+
*
|
|
441
|
+
* @param request - Its request
|
|
442
|
+
* @param item - The commitment
|
|
443
|
+
* @param madeAt - Promise time (ms)
|
|
444
|
+
* @param estimateMs - due − made
|
|
445
|
+
* @param now - Epoch ms
|
|
446
|
+
* @returns Ladder item
|
|
447
|
+
*/
|
|
448
|
+
private promiseLadderItem;
|
|
449
|
+
/**
|
|
450
|
+
* The ladder item of an uncarded owner question: the agent is asked to
|
|
451
|
+
* put it on a card (or record the answer), then the lead, then the owner
|
|
452
|
+
* gets the question itself once.
|
|
453
|
+
*
|
|
454
|
+
* @param request - Its request
|
|
455
|
+
* @param item - The owner question
|
|
456
|
+
* @param madeAt - When it was asked (ms)
|
|
457
|
+
* @param estimateMs - due − asked
|
|
458
|
+
* @param now - Epoch ms
|
|
459
|
+
* @returns Ladder item
|
|
460
|
+
*/
|
|
461
|
+
private questionLadderItem;
|
|
462
|
+
/**
|
|
463
|
+
* Running items with an active claim: the trace's ongoing stall nudges the
|
|
464
|
+
* claimer once; a second window releases the claim and tells the lead.
|
|
465
|
+
*
|
|
466
|
+
* @param now - Epoch ms
|
|
467
|
+
* @param dry - Dry run
|
|
468
|
+
* @param result - Counters
|
|
469
|
+
*/
|
|
470
|
+
private claimsPass;
|
|
471
|
+
/**
|
|
472
|
+
* Runs agents announced: closed when the thread shows a deliverable or a
|
|
473
|
+
* report, else the same ladder as promises from the run's start.
|
|
474
|
+
*
|
|
475
|
+
* @param now - Epoch ms
|
|
476
|
+
* @param dry - Dry run
|
|
477
|
+
* @param result - Counters
|
|
478
|
+
*/
|
|
479
|
+
private runsPass;
|
|
480
|
+
/**
|
|
481
|
+
* Claims past their window: a WorkItem or ticket for the teammate exists,
|
|
482
|
+
* or the speaker is told once. Never the owner.
|
|
483
|
+
*
|
|
484
|
+
* @param now - Epoch ms
|
|
485
|
+
* @param dry - Dry run
|
|
486
|
+
* @param result - Counters
|
|
487
|
+
*/
|
|
488
|
+
private teammateClaimsPass;
|
|
489
|
+
}
|
|
490
|
+
//# sourceMappingURL=stall-watcher.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stall-watcher.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/stall/stall-watcher.service.ts"],"names":[],"mappings":"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"}
|