crewly 1.20.355 → 1.20.358
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/constants.ts +11 -0
- package/config/roles/team-leader/prompt.md +1 -1
- package/config/roles/team-leader/tl-addon.md +1 -1
- package/config/skills/team-leader/delegate-task/SKILL.md +23 -1
- package/config/skills/team-leader/delegate-task/execute.sh +44 -1
- package/config/skills/team-leader/delegate-task/execute.test.sh +95 -1
- package/dist/backend/backend/src/constants.d.ts +319 -17
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +322 -17
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +10 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +7 -0
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +5 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +15 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +138 -15
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +21 -2
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +100 -3
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +8 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +26 -2
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +22 -0
- 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 +33 -0
- package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +59 -3
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode.service.js +108 -10
- package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
- 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 +126 -11
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js +47 -6
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts +150 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js +319 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +9 -7
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +19 -17
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +11 -0
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.js +302 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts +14 -2
- package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/deferred-start-retry.js +21 -4
- package/dist/backend/backend/src/services/messaging/deferred-start-retry.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts +24 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js +54 -3
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +10 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +8 -0
- 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 +33 -0
- 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.js +2 -2
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts +49 -0
- package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/question-card-gate.js +77 -0
- package/dist/backend/backend/src/services/open-items/question-card-gate.js.map +1 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +9 -0
- 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 +16 -2
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +10 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts +30 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js +48 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +8 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +29 -8
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +3 -2
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +128 -5
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +320 -38
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +23 -0
- 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 +48 -3
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.d.ts +119 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.js +174 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +619 -9
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +49 -12
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts +21 -1
- package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-chat.js +54 -2
- package/dist/backend/backend/src/services/team-move/team-move-chat.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts +9 -4
- package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-exporter.js +32 -10
- package/dist/backend/backend/src/services/team-move/team-move-exporter.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts +19 -0
- package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-importer.js +78 -3
- package/dist/backend/backend/src/services/team-move/team-move-importer.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-runtime.js +8 -0
- package/dist/backend/backend/src/services/team-move/team-move-runtime.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts +106 -0
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.js +212 -0
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.d.ts +20 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move.types.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -2
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +11 -4
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +13 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +3 -0
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js +4 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +4 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js +75 -7
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +3 -1
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts +116 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js +227 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.js +222 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts +93 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js +142 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts +104 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js +192 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +3 -2
- package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-query.service.js +23 -39
- package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts +105 -0
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js +195 -0
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +3 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js +96 -25
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js +17 -1
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +22 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +35 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +12 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +1 -0
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +11 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +11 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +319 -17
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +322 -17
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +21 -2
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +100 -3
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +59 -3
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.js +108 -10
- package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
- 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 +126 -11
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +9 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js +47 -6
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +11 -0
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts +104 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.js +302 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js +10 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +8 -0
- 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 +33 -0
- package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts +49 -0
- package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
- package/dist/cli/backend/src/services/open-items/question-card-gate.js +77 -0
- package/dist/cli/backend/src/services/open-items/question-card-gate.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.js +3 -2
- package/dist/cli/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
- package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.d.ts +119 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.js +174 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +619 -9
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +49 -12
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +33 -4
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +75 -7
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.js +222 -0
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.js +105 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
- package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-search.service.js +96 -25
- package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js +17 -1
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +12 -0
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.d.ts +1 -0
- package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
- package/dist/cli/config/constants.d.ts +11 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +11 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/package.json +1 -1
package/config/constants.ts
CHANGED
|
@@ -1155,6 +1155,17 @@ export const AGENT_SUSPEND_CONSTANTS = {
|
|
|
1155
1155
|
* paid that 50 times a day on steamfun-ops (2026-09-16).
|
|
1156
1156
|
*/
|
|
1157
1157
|
CRON_KEEPALIVE_WINDOW_MINUTES: 30,
|
|
1158
|
+
/**
|
|
1159
|
+
* An idle member that is in a conversation with the owner (an owner thread
|
|
1160
|
+
* the sentinel watches: the owner wrote to it, or it promised the owner
|
|
1161
|
+
* something, in the last two hours) is kept at least this long before an
|
|
1162
|
+
* idle stop, whatever the configured or pressure timeout says. Under the
|
|
1163
|
+
* 10-minute pressure timeout the audit of 2026-10-16 counted 50 idle stops
|
|
1164
|
+
* in 9 h, many of them agents the owner was still talking to; every stop
|
|
1165
|
+
* costs a cold start and, past the fresh-start threshold, the conversation
|
|
1166
|
+
* (crewly#1344). Memory-pressure and critical stops still apply.
|
|
1167
|
+
*/
|
|
1168
|
+
OWNER_THREAD_IDLE_TIMEOUT_MINUTES: 30,
|
|
1158
1169
|
} as const;
|
|
1159
1170
|
|
|
1160
1171
|
// ========================= SERVER PROCESS CONSTANTS =========================
|
|
@@ -174,7 +174,7 @@ When you receive an Objective from the Orchestrator:
|
|
|
174
174
|
1. Monitor worker status — check for Idle/Working/Error states
|
|
175
175
|
2. If a worker requests information, retrieve it from the Knowledge Base or Orchestrator
|
|
176
176
|
3. Use idle event subscriptions (auto-setup by delegate-task) to get notified when workers finish
|
|
177
|
-
4.
|
|
177
|
+
4. No recurring progress check is set up by default: the idle event and report-status wake you. Opt in with `--progress-check <minutes>` (minimum 30) only for a long task with no other signal
|
|
178
178
|
|
|
179
179
|
### Step 5: Result Verification (#140)
|
|
180
180
|
**MANDATORY: When a worker reports task as done, you MUST verify before accepting.**
|
|
@@ -156,7 +156,7 @@ When you receive an Objective from the Orchestrator:
|
|
|
156
156
|
1. Monitor worker status — check for Idle/Working/Error states
|
|
157
157
|
2. If a worker requests information, retrieve it from the Knowledge Base or Orchestrator
|
|
158
158
|
3. Use idle event subscriptions (auto-setup by delegate-task) to get notified when workers finish
|
|
159
|
-
4.
|
|
159
|
+
4. No recurring progress check is set up by default: the idle event and report-status wake you. Opt in with `--progress-check <minutes>` (minimum 30) only for a long task with no other signal
|
|
160
160
|
|
|
161
161
|
#### Step 5: Result Verification (#140)
|
|
162
162
|
**MANDATORY: When a worker reports task as done, you MUST verify before accepting.**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Delegate Task (TL)
|
|
3
|
-
description: "Assign a task to a worker within the Team Leader's subordinate scope. Validates that the target worker's parentMemberId matches the TL's memberId before delegation.
|
|
3
|
+
description: "Assign a task to a worker within the Team Leader's subordinate scope. Validates that the target worker's parentMemberId matches the TL's memberId before delegation. Subscribes the lead to the worker's idle event; a recurring progress check is opt-in (minimum 30 minutes)."
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
category: management
|
|
6
6
|
skillType: claude-skill
|
|
@@ -52,6 +52,28 @@ Assigns a task to a worker within the Team Leader's subordinate scope. Validates
|
|
|
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
53
|
| `--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
54
|
| `--work-item` | `workItemId` | No | With `--no-member-fits`: the WorkItem you keep (gets a `[NO-MEMBER-FITS]` note) |
|
|
55
|
+
| `--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 |
|
|
56
|
+
| — | `monitor.idleEvent` | No | `false` skips the idle event subscription (default `true`) |
|
|
57
|
+
|
|
58
|
+
## Monitoring
|
|
59
|
+
|
|
60
|
+
Each delegation subscribes you (one-shot) to the worker's `agent:idle` event,
|
|
61
|
+
so you are woken when the worker goes idle; the worker also reports
|
|
62
|
+
completion with `report-status`. That is enough for almost every task.
|
|
63
|
+
|
|
64
|
+
No recurring progress check is scheduled unless you ask for one. Every check
|
|
65
|
+
wakes your session and re-reads your whole context; the old default (every 5
|
|
66
|
+
minutes per delegation) woke leads 219 times in 3.5 days. Opt in only for a
|
|
67
|
+
long task with no other signal:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
bash execute.sh --to worker-session --task "..." --progress-check 60
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The minimum is 30 minutes (lower values are raised, with a note on stderr).
|
|
74
|
+
The backend applies the same floor to any "TL progress check" it schedules.
|
|
75
|
+
A check linked to the WorkItem stops once the item is done, verified,
|
|
76
|
+
cancelled or failed.
|
|
55
77
|
|
|
56
78
|
## Who to delegate to
|
|
57
79
|
|
|
@@ -21,6 +21,7 @@ PROJECT_TICKET=""
|
|
|
21
21
|
OWNER_THREAD=""
|
|
22
22
|
NO_MEMBER_FITS=""
|
|
23
23
|
KEPT_WORK_ITEM=""
|
|
24
|
+
PROGRESS_CHECK_ARG=""
|
|
24
25
|
|
|
25
26
|
# Detect legacy JSON argument
|
|
26
27
|
if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
|
|
@@ -44,11 +45,13 @@ while [[ $# -gt 0 ]]; do
|
|
|
44
45
|
--thread) OWNER_THREAD="$2"; shift 2 ;;
|
|
45
46
|
--no-member-fits) NO_MEMBER_FITS="$2"; shift 2 ;;
|
|
46
47
|
--work-item) KEPT_WORK_ITEM="$2"; shift 2 ;;
|
|
48
|
+
--progress-check) PROGRESS_CHECK_ARG="$2"; shift 2 ;;
|
|
47
49
|
--json|-j) INPUT_JSON="$2"; shift 2 ;;
|
|
48
50
|
--help|-h)
|
|
49
51
|
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>]"
|
|
50
52
|
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."
|
|
51
53
|
echo "Owner request from Slack: add --thread <key> (from [SLACK-THREAD:<key>]) — the member answers the owner in that thread itself."
|
|
54
|
+
echo "Optional recurring progress check (off by default; the idle notification already wakes you): --progress-check <minutes, min 30>"
|
|
52
55
|
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>]"
|
|
53
56
|
exit 0
|
|
54
57
|
;;
|
|
@@ -132,6 +135,45 @@ require_param "task (--task)" "$TASK"
|
|
|
132
135
|
# The check is NOT weakened — a marker genuinely absent from BOTH fields
|
|
133
136
|
# still warns, and the missing-field list is still per-marker.
|
|
134
137
|
#
|
|
138
|
+
# Minutes between recurring "TL progress check" wakes for this delegation,
|
|
139
|
+
# or 0 for none.
|
|
140
|
+
#
|
|
141
|
+
# Off by default: the one-shot agent:idle subscription below already wakes
|
|
142
|
+
# the lead when the worker goes idle, and completion is reported with
|
|
143
|
+
# report-status. The old default (every 5 minutes, per delegation) woke a
|
|
144
|
+
# Claude session 219 times in 3.5 days (Owen 109; every 5 min 03:21-05:13).
|
|
145
|
+
# An explicit opt-in (--progress-check N, or monitor.progressCheckMinutes /
|
|
146
|
+
# legacy monitor.fallbackCheckMinutes in JSON) is raised to the 30-minute
|
|
147
|
+
# floor. The backend enforces the same floor
|
|
148
|
+
# (DELEGATION_PROGRESS_CHECK_CONSTANTS in backend/src/constants.ts).
|
|
149
|
+
#
|
|
150
|
+
# $1 = --progress-check value (may be empty), $2 = parsed JSON input.
|
|
151
|
+
# Prints the interval on stdout; notes go to stderr.
|
|
152
|
+
resolve_progress_check_minutes() {
|
|
153
|
+
local min_minutes=30
|
|
154
|
+
local requested="$1"
|
|
155
|
+
if [ -z "$requested" ]; then
|
|
156
|
+
local input="${2:-}"
|
|
157
|
+
[ -z "$input" ] && input='{}'
|
|
158
|
+
requested=$(printf '%s' "$input" | jq -r '.monitor.progressCheckMinutes // .monitor.fallbackCheckMinutes // empty' 2>/dev/null || true)
|
|
159
|
+
fi
|
|
160
|
+
if [ -z "$requested" ] || [ "$requested" = "null" ] || [ "$requested" = "0" ] || [ "$requested" = "false" ]; then
|
|
161
|
+
echo 0
|
|
162
|
+
return 0
|
|
163
|
+
fi
|
|
164
|
+
if ! [[ "$requested" =~ ^[0-9]+$ ]]; then
|
|
165
|
+
echo "{\"warning\":\"Ignoring progress check interval '${requested}': expected whole minutes. No recurring check scheduled.\"}" >&2
|
|
166
|
+
echo 0
|
|
167
|
+
return 0
|
|
168
|
+
fi
|
|
169
|
+
if [ "$requested" -lt "$min_minutes" ]; then
|
|
170
|
+
echo "{\"warning\":\"Progress check interval ${requested} min is below the ${min_minutes} min minimum; using ${min_minutes} min.\"}" >&2
|
|
171
|
+
echo "$min_minutes"
|
|
172
|
+
return 0
|
|
173
|
+
fi
|
|
174
|
+
echo "$requested"
|
|
175
|
+
}
|
|
176
|
+
|
|
135
177
|
# $1 = task, $2 = context (either may be empty).
|
|
136
178
|
warn_missing_request_contract() {
|
|
137
179
|
# Join with a newline rather than concatenating: the patterns below anchor
|
|
@@ -406,7 +448,8 @@ fi
|
|
|
406
448
|
|
|
407
449
|
# Set up idle event subscription for TL monitoring
|
|
408
450
|
MONITOR_IDLE=$(printf '%s' "$INPUT" | jq -r 'if .monitor.idleEvent == null then true else .monitor.idleEvent end')
|
|
409
|
-
|
|
451
|
+
# Recurring progress check: none unless asked for (see resolve_progress_check_minutes).
|
|
452
|
+
MONITOR_FALLBACK_MINUTES=$(resolve_progress_check_minutes "$PROGRESS_CHECK_ARG" "$INPUT")
|
|
410
453
|
|
|
411
454
|
COLLECTED_SCHEDULE_IDS="[]"
|
|
412
455
|
COLLECTED_SUBSCRIPTION_IDS="[]"
|
|
@@ -26,6 +26,15 @@ if ! grep -q 'Request Contract incomplete' "$REAL_FN_FILE"; then
|
|
|
26
26
|
echo "FATAL: could not extract warn_missing_request_contract() from execute.sh" >&2
|
|
27
27
|
exit 1
|
|
28
28
|
fi
|
|
29
|
+
# Same for the progress-check interval resolution (default off, 30 min floor).
|
|
30
|
+
sed -n '/^resolve_progress_check_minutes() {$/,/^}$/p' "$SCRIPT_DIR/execute.sh" >> "$REAL_FN_FILE"
|
|
31
|
+
if ! grep -q 'min_minutes=' "$REAL_FN_FILE"; then
|
|
32
|
+
echo "FATAL: could not extract resolve_progress_check_minutes() from execute.sh" >&2
|
|
33
|
+
exit 1
|
|
34
|
+
fi
|
|
35
|
+
# The mock writes each /schedule request body here so scenarios can check the interval.
|
|
36
|
+
SCHED_BODY_LOG="$(mktemp)"
|
|
37
|
+
export SCHED_BODY_LOG
|
|
29
38
|
# shellcheck source=/dev/null
|
|
30
39
|
source "$REAL_FN_FILE"
|
|
31
40
|
|
|
@@ -133,6 +142,7 @@ TEAMJSON
|
|
|
133
142
|
fi
|
|
134
143
|
|
|
135
144
|
if [ "$method" = "POST" ] && [ "$endpoint" = "/schedule" ]; then
|
|
145
|
+
printf '%s\n' "$body" >> "$SCHED_BODY_LOG"
|
|
136
146
|
echo '{"success":true,"data":{"checkId":"sched-001"}}'
|
|
137
147
|
return 0
|
|
138
148
|
fi
|
|
@@ -225,7 +235,9 @@ fi
|
|
|
225
235
|
|
|
226
236
|
# --- THIS IS THE CODE BEING TESTED ---
|
|
227
237
|
MONITOR_IDLE=$(echo "$INPUT" | jq -r 'if .monitor.idleEvent == null then true else .monitor.idleEvent end')
|
|
228
|
-
|
|
238
|
+
# Production line verbatim (the mock takes JSON only, so no --progress-check flag).
|
|
239
|
+
PROGRESS_CHECK_ARG="${PROGRESS_CHECK_ARG:-}"
|
|
240
|
+
eval "$(grep -E '^MONITOR_FALLBACK_MINUTES=' "${REAL_SKILL_DIR}/execute.sh")"
|
|
229
241
|
|
|
230
242
|
COLLECTED_SCHEDULE_IDS="[]"
|
|
231
243
|
COLLECTED_SUBSCRIPTION_IDS="[]"
|
|
@@ -415,6 +427,88 @@ else
|
|
|
415
427
|
FAIL=$((FAIL + 1))
|
|
416
428
|
fi
|
|
417
429
|
|
|
430
|
+
# -----------------------------------------------------------------------
|
|
431
|
+
# Scenario 7b: no monitor field — no recurring progress check by default
|
|
432
|
+
# (219 "TL progress check" wakes in 3.5 days with the old 5-minute default)
|
|
433
|
+
# -----------------------------------------------------------------------
|
|
434
|
+
echo "Scenario 7b: no recurring progress check by default"
|
|
435
|
+
: > "$SCHED_BODY_LOG"
|
|
436
|
+
RAW_OUTPUT=$(env CREWLY_SESSION_NAME="sam-tl" bash "$MOCK_SCRIPT" "$SKILL_DIR" \
|
|
437
|
+
'{"to":"crewly-product-leo-dev","task":"Default monitoring"}' 2>&1)
|
|
438
|
+
OUTPUT=$(echo "$RAW_OUTPUT" | grep '"monitoring"' | head -1)
|
|
439
|
+
SCHED_COUNT=$(echo "$OUTPUT" | jq '.monitoring.scheduleIds | length')
|
|
440
|
+
SUB_COUNT=$(echo "$OUTPUT" | jq '.monitoring.subscriptionIds | length')
|
|
441
|
+
if [ "$SCHED_COUNT" = "0" ] && [ "$SUB_COUNT" = "1" ] && [ ! -s "$SCHED_BODY_LOG" ]; then
|
|
442
|
+
echo " PASS: idle subscription only, no /schedule call"
|
|
443
|
+
PASS=$((PASS + 1))
|
|
444
|
+
else
|
|
445
|
+
echo " FAIL: expected 0 schedules + 1 subscription, got schedules=$SCHED_COUNT subs=$SUB_COUNT body=$(cat "$SCHED_BODY_LOG")"
|
|
446
|
+
FAIL=$((FAIL + 1))
|
|
447
|
+
fi
|
|
448
|
+
|
|
449
|
+
# -----------------------------------------------------------------------
|
|
450
|
+
# Scenario 7c: opt-in below the floor is raised to 30 minutes, with a note
|
|
451
|
+
# -----------------------------------------------------------------------
|
|
452
|
+
echo "Scenario 7c: fallbackCheckMinutes=5 is raised to the 30 min floor"
|
|
453
|
+
: > "$SCHED_BODY_LOG"
|
|
454
|
+
RAW_OUTPUT=$(env CREWLY_SESSION_NAME="sam-tl" bash "$MOCK_SCRIPT" "$SKILL_DIR" \
|
|
455
|
+
'{"to":"crewly-product-leo-dev","task":"Opt in low","monitor":{"fallbackCheckMinutes":5}}' 2>&1)
|
|
456
|
+
INTERVAL=$(jq -r '.intervalMinutes' "$SCHED_BODY_LOG" 2>/dev/null | head -1)
|
|
457
|
+
RECURRING=$(jq -r '.isRecurring' "$SCHED_BODY_LOG" 2>/dev/null | head -1)
|
|
458
|
+
if [ "$INTERVAL" = "30" ] && [ "$RECURRING" = "true" ] && echo "$RAW_OUTPUT" | grep -q "below the 30 min minimum"; then
|
|
459
|
+
echo " PASS: interval raised to 30 and the lead is told"
|
|
460
|
+
PASS=$((PASS + 1))
|
|
461
|
+
else
|
|
462
|
+
echo " FAIL: expected recurring interval 30 + warning, got interval=$INTERVAL recurring=$RECURRING output=$RAW_OUTPUT"
|
|
463
|
+
FAIL=$((FAIL + 1))
|
|
464
|
+
fi
|
|
465
|
+
|
|
466
|
+
# -----------------------------------------------------------------------
|
|
467
|
+
# Scenario 7d: opt-in at or above the floor is kept as asked
|
|
468
|
+
# -----------------------------------------------------------------------
|
|
469
|
+
echo "Scenario 7d: progressCheckMinutes=45 is kept"
|
|
470
|
+
: > "$SCHED_BODY_LOG"
|
|
471
|
+
env CREWLY_SESSION_NAME="sam-tl" bash "$MOCK_SCRIPT" "$SKILL_DIR" \
|
|
472
|
+
'{"to":"crewly-product-leo-dev","task":"Opt in 45","monitor":{"progressCheckMinutes":45}}' > /dev/null 2>&1 || true
|
|
473
|
+
INTERVAL=$(jq -r '.intervalMinutes' "$SCHED_BODY_LOG" 2>/dev/null | head -1)
|
|
474
|
+
if [ "$INTERVAL" = "45" ]; then
|
|
475
|
+
echo " PASS: 45 min interval kept"
|
|
476
|
+
PASS=$((PASS + 1))
|
|
477
|
+
else
|
|
478
|
+
echo " FAIL: expected interval 45, got '$INTERVAL'"
|
|
479
|
+
FAIL=$((FAIL + 1))
|
|
480
|
+
fi
|
|
481
|
+
|
|
482
|
+
# -----------------------------------------------------------------------
|
|
483
|
+
# Scenario 7e: a non-numeric interval schedules nothing
|
|
484
|
+
# -----------------------------------------------------------------------
|
|
485
|
+
echo "Scenario 7e: non-numeric interval is ignored"
|
|
486
|
+
: > "$SCHED_BODY_LOG"
|
|
487
|
+
RAW_OUTPUT=$(env CREWLY_SESSION_NAME="sam-tl" bash "$MOCK_SCRIPT" "$SKILL_DIR" \
|
|
488
|
+
'{"to":"crewly-product-leo-dev","task":"Bad interval","monitor":{"progressCheckMinutes":"soon"}}' 2>&1)
|
|
489
|
+
if [ ! -s "$SCHED_BODY_LOG" ] && echo "$RAW_OUTPUT" | grep -q "expected whole minutes"; then
|
|
490
|
+
echo " PASS: nothing scheduled, warning emitted"
|
|
491
|
+
PASS=$((PASS + 1))
|
|
492
|
+
else
|
|
493
|
+
echo " FAIL: expected no schedule + warning, got body=$(cat "$SCHED_BODY_LOG") output=$RAW_OUTPUT"
|
|
494
|
+
FAIL=$((FAIL + 1))
|
|
495
|
+
fi
|
|
496
|
+
|
|
497
|
+
# -----------------------------------------------------------------------
|
|
498
|
+
# Scenario 7f: --progress-check flag value wins over JSON; floor and default hold
|
|
499
|
+
# -----------------------------------------------------------------------
|
|
500
|
+
echo "Scenario 7f: --progress-check flag resolves through the real function"
|
|
501
|
+
if [ "$(resolve_progress_check_minutes "10" '{}' 2>/dev/null)" = "30" ] \
|
|
502
|
+
&& [ "$(resolve_progress_check_minutes "" '{}')" = "0" ] \
|
|
503
|
+
&& [ "$(resolve_progress_check_minutes "60" '{"monitor":{"progressCheckMinutes":45}}')" = "60" ] \
|
|
504
|
+
&& grep -q -- '--progress-check) PROGRESS_CHECK_ARG="$2"' "$SCRIPT_DIR/execute.sh"; then
|
|
505
|
+
echo " PASS: flag wins over JSON, floor and default hold"
|
|
506
|
+
PASS=$((PASS + 1))
|
|
507
|
+
else
|
|
508
|
+
echo " FAIL: resolve_progress_check_minutes / --progress-check parsing mismatch"
|
|
509
|
+
FAIL=$((FAIL + 1))
|
|
510
|
+
fi
|
|
511
|
+
|
|
418
512
|
# -----------------------------------------------------------------------
|
|
419
513
|
# Scenario 8: Missing required params
|
|
420
514
|
# -----------------------------------------------------------------------
|