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
|
@@ -50,6 +50,7 @@ Assigns a task to a worker within the Team Leader's subordinate scope. Validates
|
|
|
50
50
|
| `--request-id` / `-R` | `requestId` | No | Ticket this work is for: the id (or `TKT-123`) from the `[TICKET:TKT-123 <id>]` line of the message you are acting on. Omit it and the task is still linked when your current turn has exactly one ticket |
|
|
51
51
|
| `--ticket` | `ticket` | No | Project ticket this work is for (e.g. `APP-12`). Without it a ticket is created for you when the target works on a project — see Project tickets |
|
|
52
52
|
| `--thread` | `thread` | No | Owner request from Slack: the key from the `[SLACK-THREAD:<key>]` of the owner's message. The member answers the owner in that thread itself — see Owner requests |
|
|
53
|
+
| `--conversation` | `conversation` | No | Owner request from the Crewly chat (no Slack thread): the conversation id from the `[CHAT:<id>]` of the owner's message — see Owner requests |
|
|
53
54
|
| `--no-member-fits` | `noMemberFits` | No | You keep the work: record what is missing (access, tool, permission, everyone busy). Needs `--task`; nothing is delegated — see No member fits |
|
|
54
55
|
| `--work-item` | `workItemId` | No | With `--no-member-fits`: the WorkItem you keep (gets a `[NO-MEMBER-FITS]` note) |
|
|
55
56
|
| `--progress-check` | `monitor.progressCheckMinutes` | No | Opt in to a recurring "TL progress check" every N minutes for this delegation. Off by default; values under 30 are raised to 30. Legacy JSON `monitor.fallbackCheckMinutes` is read the same way |
|
|
@@ -84,21 +85,35 @@ yourself. Do hands-on work yourself only for lead-level work (review,
|
|
|
84
85
|
decisions, owner communication, cross-team coordination), when every member
|
|
85
86
|
is busy, or when the work truly needs your own judgment.
|
|
86
87
|
|
|
87
|
-
## Owner requests (`--thread`)
|
|
88
|
+
## Owner requests (`--thread` / `--conversation`)
|
|
88
89
|
|
|
89
90
|
When the owner asked in Slack, pass the thread key from the owner message's
|
|
90
|
-
`[SLACK-THREAD:<key>]
|
|
91
|
+
`[SLACK-THREAD:<key>]`; when the owner asked in the Crewly chat (no Slack
|
|
92
|
+
thread), pass the conversation id from its `[CHAT:<id>]`:
|
|
91
93
|
|
|
92
94
|
```bash
|
|
93
95
|
bash execute.sh --to sage-session --task "Goal: … Outcome: … Eval: …" --thread C0THINK:1790000000.000100
|
|
96
|
+
bash execute.sh --to sage-session --task "Goal: … Outcome: … Eval: …" --conversation 5f1c…-room
|
|
94
97
|
```
|
|
95
98
|
|
|
96
|
-
The WorkItem carries
|
|
99
|
+
The WorkItem carries that place and the member is told to post its progress
|
|
97
100
|
and result there itself (`reply --work-item <id>`), under its own name. You do
|
|
98
101
|
not relay its answer; the room's reply gate never holds the member's post.
|
|
99
|
-
|
|
100
|
-
in
|
|
101
|
-
|
|
102
|
+
(A thread in your DM with the owner: the member's bot cannot post there, so
|
|
103
|
+
it answers in its own DM with the owner, opened with `Re: <task>`.)
|
|
104
|
+
|
|
105
|
+
**Without `--thread` / `--conversation` the work is yours, not the owner's.**
|
|
106
|
+
The WorkItem's origin is you: the member's `reply --work-item <id>` reaches
|
|
107
|
+
you as an internal `[RESULT]` message, nothing goes to the owner, and Crewly
|
|
108
|
+
never posts a "finished" line to the owner for it. Pass the place only when
|
|
109
|
+
the owner actually asked for this work there; a place the owner last wrote in
|
|
110
|
+
more than 2 hours ago is not taken (the result then comes back to you). Work
|
|
111
|
+
you start on your own initiative — a refresh, a cleanup, something you noticed
|
|
112
|
+
— is delegated without a place, and you decide what, if anything, the owner
|
|
113
|
+
hears. (crewly#1357: a lead's own-initiative delegation inherited an old owner
|
|
114
|
+
DM, and two delegations made while the lead answered the owner in a video
|
|
115
|
+
thread inherited that thread; the members' internal reports landed on the
|
|
116
|
+
owner.)
|
|
102
117
|
|
|
103
118
|
## No member fits (`--no-member-fits`)
|
|
104
119
|
|
|
@@ -19,6 +19,7 @@ FROM_SESSION=""
|
|
|
19
19
|
REQUEST_ID=""
|
|
20
20
|
PROJECT_TICKET=""
|
|
21
21
|
OWNER_THREAD=""
|
|
22
|
+
OWNER_CONVERSATION=""
|
|
22
23
|
NO_MEMBER_FITS=""
|
|
23
24
|
KEPT_WORK_ITEM=""
|
|
24
25
|
PROGRESS_CHECK_ARG=""
|
|
@@ -43,6 +44,7 @@ while [[ $# -gt 0 ]]; do
|
|
|
43
44
|
--request-id|-R) REQUEST_ID="$2"; shift 2 ;;
|
|
44
45
|
--ticket) PROJECT_TICKET="$2"; shift 2 ;;
|
|
45
46
|
--thread) OWNER_THREAD="$2"; shift 2 ;;
|
|
47
|
+
--conversation) OWNER_CONVERSATION="$2"; shift 2 ;;
|
|
46
48
|
--no-member-fits) NO_MEMBER_FITS="$2"; shift 2 ;;
|
|
47
49
|
--work-item) KEPT_WORK_ITEM="$2"; shift 2 ;;
|
|
48
50
|
--progress-check) PROGRESS_CHECK_ARG="$2"; shift 2 ;;
|
|
@@ -51,6 +53,7 @@ while [[ $# -gt 0 ]]; do
|
|
|
51
53
|
echo "Usage: execute.sh --to worker-session --task 'implement feature' --priority high --project /path [--team teamId] [--tl-member memberId] [--request-id <ticket id from the [TICKET:TKT-123 <id>] line>] [--ticket <project ticket id, e.g. APP-12>]"
|
|
52
54
|
echo "Work for a teammate on a project always runs through a project ticket: --ticket uses that backlog/ready ticket, otherwise one is created for you."
|
|
53
55
|
echo "Owner request from Slack: add --thread <key> (from [SLACK-THREAD:<key>]) — the member answers the owner in that thread itself."
|
|
56
|
+
echo "Owner request from the Crewly chat: add --conversation <id> (from [CHAT:<id>]). Without --thread/--conversation the result comes back to YOU, never to the owner."
|
|
54
57
|
echo "Optional recurring progress check (off by default; the idle notification already wakes you): --progress-check <minutes, min 30>"
|
|
55
58
|
echo "Keeping work yourself because no member fits: execute.sh --no-member-fits '<what is missing: access / tool / permission / everyone busy>' --task '<the work>' [--work-item <id>] [--ticket <ID>]"
|
|
56
59
|
exit 0
|
|
@@ -91,6 +94,7 @@ if [ -n "$INPUT_JSON" ]; then
|
|
|
91
94
|
[ -z "$REQUEST_ID" ] && REQUEST_ID=$(printf '%s' "$INPUT" | jq -r '.requestId // empty')
|
|
92
95
|
[ -z "$PROJECT_TICKET" ] && PROJECT_TICKET=$(printf '%s' "$INPUT" | jq -r '.ticket // .projectTicketId // empty')
|
|
93
96
|
[ -z "$OWNER_THREAD" ] && OWNER_THREAD=$(printf '%s' "$INPUT" | jq -r '.thread // .ownerThread // empty')
|
|
97
|
+
[ -z "$OWNER_CONVERSATION" ] && OWNER_CONVERSATION=$(printf '%s' "$INPUT" | jq -r '.conversation // .ownerConversation // empty')
|
|
94
98
|
[ -z "$NO_MEMBER_FITS" ] && NO_MEMBER_FITS=$(printf '%s' "$INPUT" | jq -r '.noMemberFits // empty')
|
|
95
99
|
[ -z "$KEPT_WORK_ITEM" ] && KEPT_WORK_ITEM=$(printf '%s' "$INPUT" | jq -r '.workItemId // empty')
|
|
96
100
|
fi
|
|
@@ -291,7 +295,8 @@ POOL_BODY=$(jq -n \
|
|
|
291
295
|
--arg projectTicketId "${PROJECT_TICKET:-}" \
|
|
292
296
|
--arg delegatedBy "${CREWLY_SESSION_NAME:-${FROM_SESSION:-}}" \
|
|
293
297
|
--arg ownerThread "${OWNER_THREAD:-}" \
|
|
294
|
-
|
|
298
|
+
--arg ownerConversation "${OWNER_CONVERSATION:-}" \
|
|
299
|
+
'{type: $type, owner: $owner, target: $target, title: $title, description: $description, briefMarkdown: $briefMarkdown, metadata: ({priority: $priority, directDelivery: true} + (if $projectPath != "" then {projectPath: $projectPath} else {} end) + (if $delegatedBy != "" then {delegatedBy: $delegatedBy} else {} end) + (if $ownerThread != "" then {ownerThread: $ownerThread} else {} end) + (if $ownerConversation != "" then {ownerConversation: $ownerConversation} else {} end))} + (if $requestId != "" then {requestId: $requestId} else {} end) + (if $projectTicketId != "" then {projectTicketId: $projectTicketId} else {} end)')
|
|
295
300
|
# metadata.directDelivery: this script delivers the brief itself (below), so
|
|
296
301
|
# the backend's workitem:queued push holds off and only fires if that
|
|
297
302
|
# delivery never lands — the task reaches the worker once.
|
|
@@ -337,6 +342,12 @@ OWNER_THREAD_NOTE=$(echo "$POOL_RESULT" | jq -r '.data.ownerThread.note // empty
|
|
|
337
342
|
if [ -n "$OWNER_THREAD_NOTE" ]; then
|
|
338
343
|
DELIVER_MESSAGE="${DELIVER_MESSAGE}\n\n${OWNER_THREAD_NOTE}"
|
|
339
344
|
fi
|
|
345
|
+
# No owner place named (crewly#1357): the result comes back to the delegator;
|
|
346
|
+
# the member is told not to post it to the owner.
|
|
347
|
+
RESULT_ROUTE_NOTE=$(echo "$POOL_RESULT" | jq -r '.data.resultRoute.note // empty' 2>/dev/null || true)
|
|
348
|
+
if [ -n "$RESULT_ROUTE_NOTE" ]; then
|
|
349
|
+
DELIVER_MESSAGE="${DELIVER_MESSAGE}\n\n${RESULT_ROUTE_NOTE}"
|
|
350
|
+
fi
|
|
340
351
|
|
|
341
352
|
if [ "$POOL_OK" != "true" ]; then
|
|
342
353
|
# Unchanged from before the reorder: warn and still attempt delivery.
|
|
@@ -3733,6 +3733,35 @@ export declare const HANDOVER_POINTERS_CONSTANTS: {
|
|
|
3733
3733
|
readonly START_MARK: "<!-- handover-pointers -->";
|
|
3734
3734
|
readonly END_MARK: "<!-- /handover-pointers -->";
|
|
3735
3735
|
};
|
|
3736
|
+
/**
|
|
3737
|
+
* Work a restart cut off inside an agent's conversation (crewly#1361): a
|
|
3738
|
+
* Claude Code transcript whose `tool_use` never received its `tool_result`
|
|
3739
|
+
* before the cutoff. Sub-agents (Task / Agent tool) and background or
|
|
3740
|
+
* long-running shell commands die with the process; the handover says so
|
|
3741
|
+
* instead of carrying the agent's last "still in progress" narration.
|
|
3742
|
+
*/
|
|
3743
|
+
export declare const HANDOVER_CONSTANTS: {
|
|
3744
|
+
/** Heading of the section listing the interrupted work */
|
|
3745
|
+
readonly INTERRUPTED_HEADING: "## Interrupted by the restart";
|
|
3746
|
+
/** At most this many interrupted calls are listed */
|
|
3747
|
+
readonly INTERRUPTED_MAX_ITEMS: 5;
|
|
3748
|
+
/** Characters kept of a sub-agent's prompt / a command */
|
|
3749
|
+
readonly INTERRUPTED_TEXT_MAX_CHARS: 200;
|
|
3750
|
+
/** Tool names that start a sub-agent inside the conversation */
|
|
3751
|
+
readonly SUBAGENT_TOOLS: readonly string[];
|
|
3752
|
+
/** Tool names that run shell commands */
|
|
3753
|
+
readonly SHELL_TOOLS: readonly string[];
|
|
3754
|
+
/**
|
|
3755
|
+
* A shell command that looks long-running (a render, encode, build or a
|
|
3756
|
+
* command sent to the background) even without `run_in_background`
|
|
3757
|
+
*/
|
|
3758
|
+
readonly LONG_COMMAND_PATTERN: RegExp;
|
|
3759
|
+
/** Bullet prefixes of the section (also how the pointers header reads it back) */
|
|
3760
|
+
readonly SUBAGENT_LINE_PREFIX: "- A sub-agent was running: ";
|
|
3761
|
+
readonly COMMAND_LINE_PREFIX: "- A background command was running: ";
|
|
3762
|
+
readonly SUBAGENT_LINE_SUFFIX: ". It did not finish and is not running now. Restart it or report that it was lost.";
|
|
3763
|
+
readonly COMMAND_LINE_SUFFIX: ". It is not running now.";
|
|
3764
|
+
};
|
|
3736
3765
|
/**
|
|
3737
3766
|
* Fresh conversation per new task for Claude Code team members (never the
|
|
3738
3767
|
* orchestrator): before a work item with a different root than the last one
|
|
@@ -5287,6 +5316,12 @@ export declare const GOOGLE_WORKSPACE_CONSTANTS: {
|
|
|
5287
5316
|
readonly PORTAL_CONNECT_PATH: "/portal/integrations/google";
|
|
5288
5317
|
/** Metadata headers requested on Gmail search hits */
|
|
5289
5318
|
readonly GMAIL_SEARCH_HEADERS: readonly ["From", "To", "Subject", "Date"];
|
|
5319
|
+
/** How often watched Gmail threads are checked for replies (one history.list per tick); must stay well under the 60 s wake promise */
|
|
5320
|
+
readonly GMAIL_WATCH_POLL_MS: 30000;
|
|
5321
|
+
/** A thread watch is dropped this long after its last reply (or creation) so the set cannot grow forever */
|
|
5322
|
+
readonly GMAIL_WATCH_EXPIRY_MS: number;
|
|
5323
|
+
/** Consecutive "account not connected" ticks before its watches are removed */
|
|
5324
|
+
readonly GMAIL_WATCH_DISCONNECT_MISSES: 3;
|
|
5290
5325
|
/** RFC 2045 line width for base64 message bodies */
|
|
5291
5326
|
readonly MIME_LINE_WIDTH: 76;
|
|
5292
5327
|
/** Error codes shared between the token service, controller and skills */
|
|
@@ -6493,7 +6528,7 @@ export declare const HARNESS_CONSTANTS: {
|
|
|
6493
6528
|
readonly ENTER: "\r";
|
|
6494
6529
|
/**
|
|
6495
6530
|
* Pause between typing the user's input and pressing Enter (ms). Ink TUIs
|
|
6496
|
-
* (Claude's `
|
|
6531
|
+
* (Claude's `auth login`) read one write of "code + \r" as a paste and
|
|
6497
6532
|
* swallow the Enter, leaving the code sitting at the prompt
|
|
6498
6533
|
* (iriss-air.lan, 2026-10-01).
|
|
6499
6534
|
*/
|
|
@@ -6594,6 +6629,18 @@ export declare const HARNESS_CONSTANTS: {
|
|
|
6594
6629
|
* with its own config dir (`CLAUDE_CONFIG_DIR`) and login, used as
|
|
6595
6630
|
* runtime fallbacks (`claude-code@<name>`). Issue #942.
|
|
6596
6631
|
*/
|
|
6632
|
+
/**
|
|
6633
|
+
* Retiring the Claude sign-in tokens older Crewly versions saved
|
|
6634
|
+
* (claude-token-migration.service.ts).
|
|
6635
|
+
*/
|
|
6636
|
+
readonly TOKEN_MIGRATION: {
|
|
6637
|
+
/** Bookkeeping under CREWLY_HOME (no credential in it) */
|
|
6638
|
+
readonly STATE_FILE: "claude-token-migration.json";
|
|
6639
|
+
/** First run after the backend starts */
|
|
6640
|
+
readonly START_DELAY_MS: 60000;
|
|
6641
|
+
/** How often saved tokens are re-checked (a login done by hand is noticed) */
|
|
6642
|
+
readonly RUN_INTERVAL_MS: number;
|
|
6643
|
+
};
|
|
6597
6644
|
readonly ACCOUNTS: {
|
|
6598
6645
|
/** Directory under CREWLY_HOME holding one config dir per account */
|
|
6599
6646
|
readonly DIR: "claude-accounts";
|
|
@@ -7188,6 +7235,23 @@ export declare const SYSTEM_CONTROL_CONSTANTS: {
|
|
|
7188
7235
|
readonly RESTART_IN_PROGRESS: "Crewly is already shutting down or restarting.";
|
|
7189
7236
|
};
|
|
7190
7237
|
};
|
|
7238
|
+
/**
|
|
7239
|
+
* Owner-facing wording of decision cards (crewly#1367, crewly#1369 §3): the
|
|
7240
|
+
* question in plain words in the owner's language, internal references only
|
|
7241
|
+
* in a short details line, context on merge cards.
|
|
7242
|
+
*/
|
|
7243
|
+
export declare const DECISION_WORDING_CONSTANTS: {
|
|
7244
|
+
/** Max characters of one card context field (who asked, what the owner said, what changes) */
|
|
7245
|
+
readonly CONTEXT_FIELD_MAX_CHARS: 200;
|
|
7246
|
+
/** Max characters of the context link */
|
|
7247
|
+
readonly LINK_MAX_CHARS: 300;
|
|
7248
|
+
/** Max references shown in the card's details line */
|
|
7249
|
+
readonly DETAILS_MAX_REFS: 3;
|
|
7250
|
+
/** Max characters of the question quoted in a one-line reminder */
|
|
7251
|
+
readonly REMINDER_QUESTION_MAX_CHARS: 60;
|
|
7252
|
+
/** Min letters (any script) left in a question once internal references are stripped */
|
|
7253
|
+
readonly QUESTION_MIN_LETTERS: 4;
|
|
7254
|
+
};
|
|
7191
7255
|
/**
|
|
7192
7256
|
* Decision cards (specs/2026-10-01-decision-cards.md): structured owner
|
|
7193
7257
|
* questions posted by the responsible agent's own Slack bot as a Block Kit
|
|
@@ -7199,7 +7263,7 @@ export declare const DECISION_CONSTANTS: {
|
|
|
7199
7263
|
* (buttons added/removed): open cards drawn with an older revision are
|
|
7200
7264
|
* redrawn once at startup so they get the new controls (e.g. Skip, 1.20.185).
|
|
7201
7265
|
*/
|
|
7202
|
-
readonly CARD_RENDER_REV:
|
|
7266
|
+
readonly CARD_RENDER_REV: 4;
|
|
7203
7267
|
/** Delay after startup before stale open cards are redrawn (ms) */
|
|
7204
7268
|
readonly STALE_CARD_REFRESH_DELAY_MS: 15000;
|
|
7205
7269
|
/** Gap between two card redraws, to stay under Slack's chat.update rate limit (ms) */
|
|
@@ -7326,6 +7390,18 @@ export declare const OPEN_ITEMS_CONSTANTS: {
|
|
|
7326
7390
|
readonly DEFAULT_DUE_HOUR_LOCAL: 12;
|
|
7327
7391
|
/** A commitment with no time is due this long after it was made (ms) */
|
|
7328
7392
|
readonly DEFAULT_DUE_MS: number;
|
|
7393
|
+
/**
|
|
7394
|
+
* A commitment with no time made live in the owner's conversation (the
|
|
7395
|
+
* owner is waiting for the reply) is due this long after it was made (ms).
|
|
7396
|
+
* Backfilled and gate-opened promises keep DEFAULT_DUE_MS (crewly#1360).
|
|
7397
|
+
*/
|
|
7398
|
+
readonly CHAT_PROMISE_DEFAULT_DUE_MS: number;
|
|
7399
|
+
/**
|
|
7400
|
+
* An estimate the same agent states in the same thread this long after an
|
|
7401
|
+
* undated promise ("预计一小时左右" a minute after "改完发你") dates that
|
|
7402
|
+
* promise (ms) (crewly#1360)
|
|
7403
|
+
*/
|
|
7404
|
+
readonly ESTIMATE_WINDOW_MS: number;
|
|
7329
7405
|
/** The same words by the same agent this close together are one item (a reply recorded twice) (ms) */
|
|
7330
7406
|
readonly DUPLICATE_WINDOW_MS: number;
|
|
7331
7407
|
/** The same agent's two promises this close together, about the same deliverable, are one (the newer stands) (ms) */
|
|
@@ -7336,6 +7412,13 @@ export declare const OPEN_ITEMS_CONSTANTS: {
|
|
|
7336
7412
|
readonly TEXT_MAX_CHARS: 300;
|
|
7337
7413
|
/** Max characters of a question (the card's one line) */
|
|
7338
7414
|
readonly QUESTION_MAX_CHARS: 280;
|
|
7415
|
+
/**
|
|
7416
|
+
* A yes/no decision asked of the owner in prose ("should I close PR #12?",
|
|
7417
|
+
* "要不要合并?") is on file as an owner question due this long after it
|
|
7418
|
+
* was asked; with no answer by then the stall watcher follows up (ms)
|
|
7419
|
+
* (crewly#1369 gap 2).
|
|
7420
|
+
*/
|
|
7421
|
+
readonly OWNER_QUESTION_DUE_MS: number;
|
|
7339
7422
|
/** Child WorkItems created this long before the promise still count as what it waits on (ms) */
|
|
7340
7423
|
readonly CHILD_LOOKBACK_MS: number;
|
|
7341
7424
|
/** ...and this long after it — the agent promises, then delegates (ms). Later work is a new topic. */
|
|
@@ -7430,6 +7513,15 @@ export declare const WORK_ITEM_DESTINATION_CONSTANTS: {
|
|
|
7430
7513
|
readonly METADATA_KEY: "origin";
|
|
7431
7514
|
/** An owner turn origin newer than this (ms) still counts as the current work when no work item is running */
|
|
7432
7515
|
readonly OWNER_ORIGIN_FRESH_MS: number;
|
|
7516
|
+
/**
|
|
7517
|
+
* An owner origin whose request is older than this (ms) is never inherited by
|
|
7518
|
+
* new work, explicit or not (crewly#1357: a delegation carried an owner DM
|
|
7519
|
+
* from nine days earlier). A verbatim `metadata.origin` in the add body is
|
|
7520
|
+
* not an inheritance and is kept as given.
|
|
7521
|
+
*/
|
|
7522
|
+
readonly ORIGIN_INHERIT_MAX_AGE_MS: number;
|
|
7523
|
+
/** Tag that opens the message a delegating agent gets with a result for work it handed out */
|
|
7524
|
+
readonly AGENT_RESULT_TAG: "[RESULT]";
|
|
7433
7525
|
/** Max characters of the topic line of a new top-level post */
|
|
7434
7526
|
readonly TOPIC_MAX_CHARS: 120;
|
|
7435
7527
|
/** The one line every prompt carries about where to answer */
|
|
@@ -7445,8 +7537,11 @@ export declare const OWNER_COMPLETION_REPORT_CONSTANTS: {
|
|
|
7445
7537
|
readonly TICK_MS: 60000;
|
|
7446
7538
|
/** A chain must stay finished this long before the report is asked for — the lead may still be handing out the next step (ms) */
|
|
7447
7539
|
readonly SETTLE_MS: number;
|
|
7448
|
-
/**
|
|
7449
|
-
|
|
7540
|
+
/**
|
|
7541
|
+
* After the one nudge, the agent has this long to post its own report before
|
|
7542
|
+
* the harness posts one line for it (ms) (crewly#1357)
|
|
7543
|
+
*/
|
|
7544
|
+
readonly NUDGE_GRACE_MS: number;
|
|
7450
7545
|
/** Chains whose first item is older than this are never reported (ms) */
|
|
7451
7546
|
readonly MAX_CHAIN_AGE_MS: number;
|
|
7452
7547
|
/** Finished chain records are forgotten after this long (ms) */
|
|
@@ -7457,10 +7552,14 @@ export declare const OWNER_COMPLETION_REPORT_CONSTANTS: {
|
|
|
7457
7552
|
readonly MAX_TITLES: 5;
|
|
7458
7553
|
/** Max characters of one title in a message */
|
|
7459
7554
|
readonly TITLE_MAX_CHARS: 90;
|
|
7460
|
-
/** Max
|
|
7461
|
-
readonly
|
|
7462
|
-
/**
|
|
7463
|
-
readonly
|
|
7555
|
+
/** Max characters of one deliverable named in the fallback line */
|
|
7556
|
+
readonly DELIVERABLE_MAX_CHARS: 90;
|
|
7557
|
+
/** Share of CJK characters in the owner's text above which the fallback line is written in Chinese */
|
|
7558
|
+
readonly OWNER_LANGUAGE_CJK_MIN_RATIO: 0.2;
|
|
7559
|
+
/** How far back the owner's recent messages are read to pick the fallback line's language (ms) */
|
|
7560
|
+
readonly OWNER_LANGUAGE_LOOKBACK_MS: number;
|
|
7561
|
+
/** How many recent owner messages are read for that */
|
|
7562
|
+
readonly OWNER_LANGUAGE_SAMPLE: 30;
|
|
7464
7563
|
/** An app comment / relayed owner request stays the agent's current request this long (ms) */
|
|
7465
7564
|
readonly CONTEXT_FRESH_MS: number;
|
|
7466
7565
|
/** Max sessions the owner-request context registry remembers */
|
|
@@ -7474,6 +7573,8 @@ export declare const OWNER_COMPLETION_REPORT_CONSTANTS: {
|
|
|
7474
7573
|
export declare const TL_DELEGATION_CONSTANTS: {
|
|
7475
7574
|
/** WorkItem.metadata / add-body field: the owner's Slack thread key a delegation answers */
|
|
7476
7575
|
readonly OWNER_THREAD_FIELD: "ownerThread";
|
|
7576
|
+
/** WorkItem.metadata / add-body field: the owner's chat conversation a delegation answers (crewly#1357) */
|
|
7577
|
+
readonly OWNER_CONVERSATION_FIELD: "ownerConversation";
|
|
7477
7578
|
/** A done item still lets its agent post in the owner's thread this long (ms) */
|
|
7478
7579
|
readonly DONE_THREAD_GRACE_MS: number;
|
|
7479
7580
|
/** Claude Code tools that count as hands-on file edits */
|
|
@@ -7754,6 +7855,94 @@ export declare const TRACE_CONSTANTS: {
|
|
|
7754
7855
|
/** Most ticket labels kept in a trace's tags (specs/2026-10-03-autopilot-experiments.md) */
|
|
7755
7856
|
readonly MAX_TAG_LABELS: 20;
|
|
7756
7857
|
};
|
|
7858
|
+
/**
|
|
7859
|
+
* Stall watcher (crewly#1363, crewly#1362, specs/2026-10-17-stall-watcher.md):
|
|
7860
|
+
* acts on in-flight work that stopped moving — promises to the owner,
|
|
7861
|
+
* claimed WorkItems, and background runs an agent said it started — with
|
|
7862
|
+
* one ladder: the agent once, then its lead once, then one plain line to the
|
|
7863
|
+
* owner. The owner is never the retry loop.
|
|
7864
|
+
*/
|
|
7865
|
+
export declare const STALL_WATCHER_CONSTANTS: {
|
|
7866
|
+
/** `=false` switches the watcher off entirely */
|
|
7867
|
+
readonly ENV_KILL_SWITCH: "CREWLY_STALL_WATCHER";
|
|
7868
|
+
/** `=true` / `=false` forces dry run on / off (default: dry run until armed for ARM_DELAY_MS) */
|
|
7869
|
+
readonly ENV_DRY_RUN: "CREWLY_STALL_WATCHER_DRY_RUN";
|
|
7870
|
+
/** State file under CREWLY_HOME: in-flight runs, ladder stamps, pending claim checks, the armed time */
|
|
7871
|
+
readonly STATE_FILE: "in-flight-runs.json";
|
|
7872
|
+
/** State file format version */
|
|
7873
|
+
readonly STATE_VERSION: 1;
|
|
7874
|
+
/** How often the watcher looks (ms) */
|
|
7875
|
+
readonly INTERVAL_MS: number;
|
|
7876
|
+
/** First pass this long after boot, after the boot-pressure gate (ms) */
|
|
7877
|
+
readonly BOOT_DELAY_MS: number;
|
|
7878
|
+
/**
|
|
7879
|
+
* Like the janitor's retention deletes: the first pass records when it ran
|
|
7880
|
+
* and only logs; the watcher sends nothing until this long after that (ms).
|
|
7881
|
+
*/
|
|
7882
|
+
readonly ARM_DELAY_MS: number;
|
|
7883
|
+
/** The agent is re-briefed at this multiple of its own estimate past the promise / run start */
|
|
7884
|
+
readonly AGENT_STEP_MULTIPLIER: 1.5;
|
|
7885
|
+
/** ... but never sooner than this after the promise (ms) */
|
|
7886
|
+
readonly MIN_AGENT_STEP_MS: number;
|
|
7887
|
+
/** The lead is told at this multiple of the estimate */
|
|
7888
|
+
readonly LEAD_STEP_MULTIPLIER: 3;
|
|
7889
|
+
/** The owner hears one line when the lead has not answered in the thread this long after being told (ms) */
|
|
7890
|
+
readonly LEAD_GRACE_MS: number;
|
|
7891
|
+
/** At most one watcher nudge per agent per this long (ms) */
|
|
7892
|
+
readonly NUDGE_COOLDOWN_MS: number;
|
|
7893
|
+
/** At most one owner line per stalled item per this long (ms) */
|
|
7894
|
+
readonly OWNER_LINE_INTERVAL_MS: number;
|
|
7895
|
+
/** A background run with no duration in the text is expected back after this long (ms) */
|
|
7896
|
+
readonly RUN_DEFAULT_ESTIMATE_MS: number;
|
|
7897
|
+
/** An agent with a run in flight is not idle-stopped or evicted until expectedBy + this (ms) */
|
|
7898
|
+
readonly RUN_PROTECTION_GRACE_MS: number;
|
|
7899
|
+
/** A run record older than this is dropped whatever happened (ms) */
|
|
7900
|
+
readonly RUN_MAX_AGE_MS: number;
|
|
7901
|
+
/** Ladder stamps of an item not seen for this long are forgotten (ms) */
|
|
7902
|
+
readonly LADDER_TTL_MS: number;
|
|
7903
|
+
/** Most in-flight runs kept */
|
|
7904
|
+
readonly MAX_RUNS: 200;
|
|
7905
|
+
/** Characters of a run's sentence kept in its record and in nudges */
|
|
7906
|
+
readonly RUN_HEAD_MAX_CHARS: 160;
|
|
7907
|
+
/** Characters of the context message quoted in a promise re-brief */
|
|
7908
|
+
readonly CONTEXT_MAX_CHARS: 300;
|
|
7909
|
+
/** Characters of a promise / title quoted in a nudge or an owner line */
|
|
7910
|
+
readonly QUOTE_MAX_CHARS: 120;
|
|
7911
|
+
/**
|
|
7912
|
+
* A claimed WorkItem whose trace shows no progress (no tool calls, posts
|
|
7913
|
+
* or worktree changes) for this long is stalled; the same again after the
|
|
7914
|
+
* nudge releases the claim (ms). Shares the autonomy-metrics threshold.
|
|
7915
|
+
*/
|
|
7916
|
+
readonly CLAIM_STALL_MS: number;
|
|
7917
|
+
/** The claim-check window around "X is doing it": a WorkItem / ticket for X created this long before or after (ms) (crewly#1362) */
|
|
7918
|
+
readonly CLAIM_CHECK_WINDOW_MS: number;
|
|
7919
|
+
/** Most pending claim checks kept */
|
|
7920
|
+
readonly MAX_PENDING_CLAIMS: 200;
|
|
7921
|
+
/** Opens every watcher line to an agent */
|
|
7922
|
+
readonly NUDGE_TAG: "[STALL]";
|
|
7923
|
+
/** Opens a claim-check line to an agent */
|
|
7924
|
+
readonly CLAIM_CHECK_TAG: "[CLAIM-CHECK]";
|
|
7925
|
+
/** Title of the owner's Slack notice */
|
|
7926
|
+
readonly OWNER_ALERT_TITLE: "Stalled work";
|
|
7927
|
+
/**
|
|
7928
|
+
* An agent saying it started something that runs on its own (a render, a
|
|
7929
|
+
* background process, a sub-agent). Registered only together with a
|
|
7930
|
+
* duration the open-items parser understands ("预计 1 小时左右", "about 40 min").
|
|
7931
|
+
*/
|
|
7932
|
+
readonly BACKGROUND_RUN_PATTERN: RegExp;
|
|
7933
|
+
/** A later post by the same agent in the thread that reports the run finished or failed */
|
|
7934
|
+
readonly RUN_FINISHED_PATTERN: RegExp;
|
|
7935
|
+
/** A link or a file in a post counts as a deliverable */
|
|
7936
|
+
readonly DELIVERABLE_PATTERN: RegExp;
|
|
7937
|
+
/** Chinese verbs that make "<Name> …" a claim that the named teammate is doing the work (crewly#1362) */
|
|
7938
|
+
readonly CLAIM_ZH_AFTER_NAME: "(?:已经)?(?:在做|在弄|在处理|在搞|在跟|在推进|在准备|在出|在写|在剪|在录|在改|负责|去做|来做|接了|接手|正在)";
|
|
7939
|
+
/** Chinese verbs that make "… <Name>" a hand-off to the named teammate */
|
|
7940
|
+
readonly CLAIM_ZH_BEFORE_NAME: "(?:交给|让|叫|由|派给|丢给|转给|安排)";
|
|
7941
|
+
/** English verbs after the name: "Pia is (already) doing / on / making / working on it" */
|
|
7942
|
+
readonly CLAIM_EN_AFTER_NAME: "(?:is|'s|has been|will be|was|are|'re)\\s+(?:already\\s+)?(?:doing|on|making|working on|handling|building|taking|taking care of|writing|producing|rendering|editing|cutting|preparing|drafting|looking into|picking (?:it|this) up)";
|
|
7943
|
+
/** English hand-off before the name: "handed it to Pia", "assigned this to Pia" */
|
|
7944
|
+
readonly CLAIM_EN_BEFORE_NAME: "(?:handed|gave|passed|assigned|delegated|sent|routed)\\s+(?:it|this|that|the\\s+\\w+(?:\\s+\\w+)?)\\s+(?:over\\s+)?to";
|
|
7945
|
+
};
|
|
7757
7946
|
/**
|
|
7758
7947
|
* Token usage: the unit, the stats endpoint, and the Codex / Antigravity
|
|
7759
7948
|
* ledgers (specs/2026-10-02-spend-cap.md).
|
|
@@ -9092,4 +9281,23 @@ export declare const BROWSER_PRIORITY_CONSTANTS: {
|
|
|
9092
9281
|
*/
|
|
9093
9282
|
readonly promptSection: (remoteBrowserPath: string) => string;
|
|
9094
9283
|
};
|
|
9284
|
+
/**
|
|
9285
|
+
* Ticket holds (crewly#1369 gap 1): a ticket the owner put on hold ("do not
|
|
9286
|
+
* merge PR #1138") blocks follow-up work on the same PR / branch / worktree.
|
|
9287
|
+
* Only closing the PR and removing the worktree stays allowed.
|
|
9288
|
+
*/
|
|
9289
|
+
export declare const TICKET_HOLD_CONSTANTS: {
|
|
9290
|
+
/** Labels that put a ticket on hold */
|
|
9291
|
+
readonly LABELS: readonly string[];
|
|
9292
|
+
/** Prefix of the Log line written when a hold is set */
|
|
9293
|
+
readonly LOG_PREFIX: "HOLD:";
|
|
9294
|
+
/** Log line written when a hold is lifted */
|
|
9295
|
+
readonly LIFT_LOG_LINE: "hold lifted";
|
|
9296
|
+
/** Prefix of the hold reason of a ticket held because it references a held ticket */
|
|
9297
|
+
readonly LINKED_PREFIX: "held by";
|
|
9298
|
+
/** What may still be done about held work */
|
|
9299
|
+
readonly ALLOWED_ACTIONS: "close the PR and remove the worktree";
|
|
9300
|
+
/** Max characters of a hold reason quoted in a message */
|
|
9301
|
+
readonly REASON_MAX_CHARS: 240;
|
|
9302
|
+
};
|
|
9095
9303
|
//# sourceMappingURL=constants.d.ts.map
|