crewly 1.20.106 → 1.20.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -12
- package/config/constants.ts +43 -0
- package/config/index.ts +2 -0
- package/config/skills/_common/lib.sh +55 -2
- package/config/skills/_common/lib.test.sh +58 -1
- package/config/skills/_common/task-pool-body-shape.test.sh +60 -0
- package/config/skills/agent/core/cancel-followup/execute.sh +18 -3
- package/config/skills/agent/core/cancel-followup/execute.test.sh +73 -0
- package/config/skills/agent/core/complete-task/execute.sh +1 -1
- package/config/skills/agent/core/create-intent-tasks/execute.sh +1 -1
- package/config/skills/agent/core/create-task/SKILL.md +1 -0
- package/config/skills/agent/core/create-task/execute.sh +10 -0
- package/config/skills/agent/core/decompose-intent/execute.sh +1 -1
- package/config/skills/agent/core/handoff-task/execute.sh +1 -1
- package/config/skills/agent/core/list-my-followups/SKILL.md +1 -1
- package/config/skills/agent/core/list-my-followups/execute.sh +25 -3
- package/config/skills/agent/core/list-my-followups/execute.test.sh +72 -0
- package/config/skills/agent/core/poll-tasks/execute.sh +3 -3
- package/config/skills/agent/core/reply-channel/SKILL.md +1 -1
- package/config/skills/agent/core/report-progress/execute.sh +1 -1
- package/config/skills/agent/core/report-status/execute.sh +1 -1
- package/config/skills/agent/core/slack-post/SKILL.md +1 -1
- package/config/skills/agent/core/update-intent-task/execute.sh +1 -1
- package/config/skills/agent/marketing/brand-onboarding/execute.sh +1 -1
- package/config/skills/agent/marketing/submit-for-approval/execute.sh +1 -1
- package/config/skills/agent/remote-browser/SOP-google-flow-video.md +1 -1
- package/config/skills/agent/remote-browser/execute.sh +33 -1
- package/config/skills/agent/remote-browser/execute.test.sh +62 -0
- package/config/skills/agent/screenshot-compare/execute.sh +1 -1
- package/config/skills/agent/transcribe-audio/SKILL.md +1 -1
- package/config/skills/agent/transcribe-audio/execute.sh +1 -1
- package/config/skills/agent/transcribe-audio/instructions.md +1 -1
- package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
- package/config/skills/orchestrator/get-tasks/SKILL.md +7 -1
- package/config/skills/orchestrator/get-tasks/execute.sh +51 -28
- package/config/skills/orchestrator/get-tasks/execute.test.sh +67 -0
- package/config/skills/orchestrator/heartbeat/execute.sh +2 -2
- package/config/skills/orchestrator/list-missions/execute.sh +1 -1
- package/config/skills/orchestrator/list-missions/execute.test.sh +38 -11
- package/config/skills/team-leader/decompose-goal/SKILL.md +1 -0
- package/config/skills/team-leader/decompose-goal/execute.sh +17 -2
- package/config/skills/team-leader/delegate-task/SKILL.md +1 -0
- package/config/skills/team-leader/delegate-task/execute.sh +6 -2
- package/dist/backend/backend/src/constants.d.ts +199 -2
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +190 -3
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +33 -0
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +176 -9
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +38 -35
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +10 -45
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +40 -89
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.d.ts +2 -1
- package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.js +21 -0
- package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +51 -3
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/restart-readiness.controller.d.ts +23 -0
- package/dist/backend/backend/src/controllers/system/restart-readiness.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/system/restart-readiness.controller.js +35 -0
- package/dist/backend/backend/src/controllers/system/restart-readiness.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/system/system.controller.d.ts +5 -3
- package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.controller.js +27 -6
- package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.routes.js +3 -0
- package/dist/backend/backend/src/controllers/system/system.routes.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 +29 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.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 +86 -6
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts +41 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +135 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts +18 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.js +25 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts +70 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +352 -71
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +3 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts +128 -0
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js +200 -0
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js.map +1 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +2 -2
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +3 -1
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +4 -0
- 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 +61 -4
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +30 -0
- package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.js +62 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +2 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +0 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +0 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +65 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +113 -10
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/restore-filter.d.ts +12 -0
- package/dist/backend/backend/src/services/agent/restore-filter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/restore-filter.js +19 -0
- package/dist/backend/backend/src/services/agent/restore-filter.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +3 -2
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts +28 -0
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js +34 -0
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +57 -5
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +98 -18
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +12 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +25 -4
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts +2 -1
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js +5 -1
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.d.ts +38 -0
- package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.js +34 -0
- package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +6 -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 +5 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js +7 -2
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +23 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +58 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.d.ts +63 -0
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.js +72 -0
- package/dist/backend/backend/src/services/chat-v2/owner-inbound.utils.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +15 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +6 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/retry.util.d.ts +5 -0
- package/dist/backend/backend/src/services/core/retry.util.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/retry.util.js +2 -2
- package/dist/backend/backend/src/services/core/retry.util.js.map +1 -1
- package/dist/backend/backend/src/services/factory.service.js +3 -3
- package/dist/backend/backend/src/services/factory.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +24 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +9 -0
- 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 +55 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +7 -0
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +12 -0
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +36 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +90 -2
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js +22 -16
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +11 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -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 +9 -9
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +189 -0
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js +246 -0
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -0
- package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts +153 -0
- package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts.map +1 -0
- package/dist/backend/backend/src/services/restart/interrupted-turns.js +279 -0
- package/dist/backend/backend/src/services/restart/interrupted-turns.js.map +1 -0
- package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts +176 -0
- package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/restart/restart-drain.service.js +298 -0
- package/dist/backend/backend/src/services/restart/restart-drain.service.js.map +1 -0
- package/dist/backend/backend/src/services/restart/turn-probe.d.ts +52 -0
- package/dist/backend/backend/src/services/restart/turn-probe.d.ts.map +1 -0
- package/dist/backend/backend/src/services/restart/turn-probe.js +61 -0
- package/dist/backend/backend/src/services/restart/turn-probe.js.map +1 -0
- package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.d.ts +70 -0
- package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.js +105 -0
- package/dist/backend/backend/src/services/session/pty/node-pty-install.utils.js.map +1 -0
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +2 -0
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js +53 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-binding.d.ts +125 -0
- package/dist/backend/backend/src/services/session/session-binding.d.ts.map +1 -0
- package/dist/backend/backend/src/services/session/session-binding.js +183 -0
- package/dist/backend/backend/src/services/session/session-binding.js.map +1 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.js +19 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts +10 -0
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +37 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts +4 -3
- package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js +4 -3
- package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +72 -7
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +185 -23
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +4 -45
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +57 -190
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-source-preference.service.d.ts +59 -0
- package/dist/backend/backend/src/services/slack/slack-source-preference.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-source-preference.service.js +69 -0
- package/dist/backend/backend/src/services/slack/slack-source-preference.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +18 -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 +64 -3
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +42 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +148 -4
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-archive-migration.d.ts +108 -0
- package/dist/backend/backend/src/services/task-pool/pool-archive-migration.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/pool-archive-migration.js +193 -0
- package/dist/backend/backend/src/services/task-pool/pool-archive-migration.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +15 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.js +30 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +41 -1
- 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 +55 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts +7 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +32 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -1
- 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 +4 -3
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +12 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.d.ts +7 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +17 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts +271 -0
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +443 -0
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +383 -0
- package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-intake.service.js +566 -0
- package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +3 -3
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +28 -4
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +40 -10
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +1 -0
- 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 +3 -3
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/slack.types.d.ts +29 -0
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/backend/src/types/thread-status.types.d.ts +26 -0
- package/dist/backend/backend/src/types/thread-status.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/thread-status.types.js +17 -0
- package/dist/backend/backend/src/types/thread-status.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +3 -2
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -1
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts +39 -3
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +11 -2
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/ticket.types.d.ts +175 -0
- package/dist/backend/backend/src/types/v2/ticket.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/ticket.types.js +203 -0
- package/dist/backend/backend/src/types/v2/ticket.types.js.map +1 -0
- package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +26 -0
- package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/agent-caller.utils.js +40 -3
- package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
- package/dist/backend/backend/src/utils/gemini-auth-settings.d.ts +62 -0
- package/dist/backend/backend/src/utils/gemini-auth-settings.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/gemini-auth-settings.js +104 -0
- package/dist/backend/backend/src/utils/gemini-auth-settings.js.map +1 -0
- package/dist/backend/backend/src/utils/local-api-url.utils.d.ts +56 -0
- package/dist/backend/backend/src/utils/local-api-url.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/local-api-url.utils.js +80 -0
- package/dist/backend/backend/src/utils/local-api-url.utils.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +40 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +41 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +4 -2
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/backend/config/index.js +2 -2
- package/dist/backend/config/index.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +199 -2
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +190 -3
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts +2 -2
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.js +3 -1
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +4 -0
- 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 +61 -4
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +30 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js +62 -1
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +2 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +0 -2
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js +0 -2
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +65 -1
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +113 -10
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +3 -2
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts +28 -0
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js +34 -0
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +6 -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 +5 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +23 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +58 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +15 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +7 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +12 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +36 -1
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +90 -2
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +189 -0
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js +246 -0
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -0
- package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts +176 -0
- package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/restart/restart-drain.service.js +298 -0
- package/dist/cli/backend/src/services/restart/restart-drain.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.d.ts +70 -0
- package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.js +105 -0
- package/dist/cli/backend/src/services/session/pty/node-pty-install.utils.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +2 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.js +53 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/session-handoff.service.js +19 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts +10 -0
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +37 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +4 -45
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +57 -190
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +18 -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 +64 -3
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +42 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +148 -4
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +15 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.js +30 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +41 -1
- 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 +55 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.d.ts +7 -0
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.js +17 -0
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts +271 -0
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +443 -0
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +383 -0
- package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-intake.service.js +566 -0
- package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -0
- package/dist/cli/backend/src/types/slack.types.d.ts +29 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/slack.types.js.map +1 -1
- package/dist/cli/backend/src/types/thread-status.types.d.ts +26 -0
- package/dist/cli/backend/src/types/thread-status.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/thread-status.types.js +17 -0
- package/dist/cli/backend/src/types/thread-status.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/index.d.ts +3 -2
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.js +1 -1
- package/dist/cli/backend/src/types/v2/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.d.ts +39 -3
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.js +11 -2
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/ticket.types.d.ts +175 -0
- package/dist/cli/backend/src/types/v2/ticket.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/ticket.types.js +203 -0
- package/dist/cli/backend/src/types/v2/ticket.types.js.map +1 -0
- package/dist/cli/backend/src/utils/gemini-auth-settings.d.ts +62 -0
- package/dist/cli/backend/src/utils/gemini-auth-settings.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/gemini-auth-settings.js +104 -0
- package/dist/cli/backend/src/utils/gemini-auth-settings.js.map +1 -0
- package/dist/cli/backend/src/utils/local-api-url.utils.d.ts +56 -0
- package/dist/cli/backend/src/utils/local-api-url.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/local-api-url.utils.js +80 -0
- package/dist/cli/backend/src/utils/local-api-url.utils.js.map +1 -0
- package/dist/cli/cli/src/commands/doctor.d.ts +73 -2
- package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/doctor.js +250 -8
- package/dist/cli/cli/src/commands/doctor.js.map +1 -1
- package/dist/cli/cli/src/commands/install.js +2 -0
- package/dist/cli/cli/src/commands/install.js.map +1 -1
- package/dist/cli/cli/src/commands/onboard.d.ts +68 -0
- package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/onboard.js +149 -18
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/commands/service.d.ts +6 -0
- package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/service.js +152 -50
- package/dist/cli/cli/src/commands/service.js.map +1 -1
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +25 -80
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/commands/status.d.ts +17 -1
- package/dist/cli/cli/src/commands/status.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/status.js +133 -68
- package/dist/cli/cli/src/commands/status.js.map +1 -1
- package/dist/cli/cli/src/commands/stop.d.ts +28 -1
- package/dist/cli/cli/src/commands/stop.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/stop.js +260 -100
- package/dist/cli/cli/src/commands/stop.js.map +1 -1
- package/dist/cli/cli/src/index.js +3 -2
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/scripts/ensure-node-pty.d.ts +68 -0
- package/dist/cli/cli/src/scripts/ensure-node-pty.d.ts.map +1 -0
- package/dist/cli/cli/src/scripts/ensure-node-pty.js +167 -0
- package/dist/cli/cli/src/scripts/ensure-node-pty.js.map +1 -0
- package/dist/cli/cli/src/utils/backend-status.d.ts +175 -0
- package/dist/cli/cli/src/utils/backend-status.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/backend-status.js +322 -0
- package/dist/cli/cli/src/utils/backend-status.js.map +1 -0
- package/dist/cli/cli/src/utils/marketplace.d.ts +31 -2
- package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/marketplace.js +78 -20
- package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
- package/dist/cli/cli/src/utils/native-toolchain.d.ts +53 -8
- package/dist/cli/cli/src/utils/native-toolchain.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/native-toolchain.js +107 -15
- package/dist/cli/cli/src/utils/native-toolchain.js.map +1 -1
- package/dist/cli/cli/src/utils/process-cleanup.d.ts +38 -6
- package/dist/cli/cli/src/utils/process-cleanup.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/process-cleanup.js +83 -53
- package/dist/cli/cli/src/utils/process-cleanup.js.map +1 -1
- package/dist/cli/cli/src/utils/runtime-auth.d.ts +130 -0
- package/dist/cli/cli/src/utils/runtime-auth.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/runtime-auth.js +248 -0
- package/dist/cli/cli/src/utils/runtime-auth.js.map +1 -0
- package/dist/cli/cli/src/utils/safe-shutdown.d.ts +137 -0
- package/dist/cli/cli/src/utils/safe-shutdown.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/safe-shutdown.js +236 -0
- package/dist/cli/cli/src/utils/safe-shutdown.js.map +1 -0
- package/dist/cli/config/constants.d.ts +40 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +41 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +4 -2
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +2 -2
- package/dist/cli/config/index.js.map +1 -1
- package/frontend/dist/assets/{index-488339c1.js → index-f7b99e81.js} +222 -222
- package/frontend/dist/index.html +1 -1
- package/package.json +4 -4
|
@@ -22,6 +22,9 @@ import { randomUUID } from 'crypto';
|
|
|
22
22
|
import chalk from 'chalk';
|
|
23
23
|
import { checkSkillsInstalled, installAllSkills, countBundledSkills, } from '../utils/marketplace.js';
|
|
24
24
|
import { listTemplates, getTemplate, getTemplatesDir, } from '../utils/templates.js';
|
|
25
|
+
import { CLI_CONSTANTS } from '../constants.js';
|
|
26
|
+
/** Process exit codes used by the wizard. */
|
|
27
|
+
const CLI_EXIT_CODES = CLI_CONSTANTS.EXIT_CODES;
|
|
25
28
|
// ========================= Banner =========================
|
|
26
29
|
/**
|
|
27
30
|
* Prints the Crewly ASCII art banner to stdout.
|
|
@@ -49,20 +52,72 @@ export function createReadlineInterface() {
|
|
|
49
52
|
output: process.stdout,
|
|
50
53
|
});
|
|
51
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Thrown when the wizard's input closes before a question was answered
|
|
57
|
+
* (EOF, e.g. stdin is an exhausted pipe or the user pressed Ctrl+D).
|
|
58
|
+
*
|
|
59
|
+
* Without this, a closed input left the pending question unresolved, the
|
|
60
|
+
* event loop drained and the process exited 0 with nothing set up (#772).
|
|
61
|
+
*/
|
|
62
|
+
export class WizardInputClosedError extends Error {
|
|
63
|
+
constructor() {
|
|
64
|
+
super('The setup wizard\'s input closed before the question was answered');
|
|
65
|
+
this.name = 'WizardInputClosedError';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
52
68
|
/**
|
|
53
69
|
* Prompts the user with a question and returns their answer.
|
|
54
70
|
*
|
|
55
71
|
* @param rl - Readline interface
|
|
56
72
|
* @param question - The prompt text
|
|
57
73
|
* @returns The user's response string
|
|
74
|
+
* @throws {WizardInputClosedError} When the input closes before an answer arrives
|
|
58
75
|
*/
|
|
59
76
|
function ask(rl, question) {
|
|
60
|
-
return new Promise((resolve) => {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const onClose = () => reject(new WizardInputClosedError());
|
|
79
|
+
rl.on('close', onClose);
|
|
61
80
|
rl.question(question, (answer) => {
|
|
81
|
+
rl.removeListener('close', onClose);
|
|
62
82
|
resolve(answer.trim());
|
|
63
83
|
});
|
|
64
84
|
});
|
|
65
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether the wizard can prompt: stdin must be a terminal.
|
|
88
|
+
*
|
|
89
|
+
* `curl ... | bash` hands the wizard the script's pipe as stdin, so every
|
|
90
|
+
* prompt would read EOF (#772). The installer redirects from /dev/tty when a
|
|
91
|
+
* terminal exists; otherwise the wizard must refuse instead of "finishing".
|
|
92
|
+
*
|
|
93
|
+
* @param stdin - Input stream to check (defaults to process.stdin)
|
|
94
|
+
* @returns True when stdin is a TTY
|
|
95
|
+
*/
|
|
96
|
+
export function isInteractiveInput(stdin = process.stdin) {
|
|
97
|
+
return stdin.isTTY === true;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Explain that the wizard cannot run without a terminal and name the exact
|
|
101
|
+
* command to run next. Sets a non-zero exit code; never reports success.
|
|
102
|
+
*
|
|
103
|
+
* @param reason - What went wrong (printed first)
|
|
104
|
+
* @param startedSetup - True when the input closed mid-wizard (some steps may have run)
|
|
105
|
+
*/
|
|
106
|
+
export function reportNonInteractiveInput(reason, startedSetup = false) {
|
|
107
|
+
console.log(chalk.red(` ✖ ${reason}`));
|
|
108
|
+
if (startedSetup) {
|
|
109
|
+
console.log(chalk.yellow(' Setup did not finish.\n'));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
console.log(chalk.yellow(' Nothing was set up. This happens when the wizard\'s input is a pipe or a file,'));
|
|
113
|
+
console.log(chalk.yellow(' for example `curl -fsSL https://crewlyai.com/install.sh | bash` without a terminal.\n'));
|
|
114
|
+
}
|
|
115
|
+
console.log(' Run the wizard from a terminal:');
|
|
116
|
+
console.log(chalk.cyan(' crewly onboard\n'));
|
|
117
|
+
console.log(' Or set up with the defaults, no prompts (CI, scripts):');
|
|
118
|
+
console.log(chalk.cyan(' crewly init --yes\n'));
|
|
119
|
+
process.exitCode = CLI_EXIT_CODES.ERROR;
|
|
120
|
+
}
|
|
66
121
|
// ========================= Step 1: Provider selection =========================
|
|
67
122
|
/**
|
|
68
123
|
* Asks the user which AI coding assistant they use.
|
|
@@ -164,6 +219,57 @@ export function installTool(displayName, npmPackage) {
|
|
|
164
219
|
return false;
|
|
165
220
|
}
|
|
166
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* System tools required before setup can continue.
|
|
224
|
+
*
|
|
225
|
+
* tmux is deliberately NOT here: agent sessions run on the built-in node-pty
|
|
226
|
+
* backend (session-backend.factory.ts), and a clean-machine run reached an
|
|
227
|
+
* active agent with no tmux installed. jq IS here: the agent skills parse JSON
|
|
228
|
+
* with jq (188 of 203 skill scripts), and register-self fails with
|
|
229
|
+
* "jq: not found" (exit 127) without it.
|
|
230
|
+
*/
|
|
231
|
+
export const REQUIRED_SYSTEM_TOOLS = [
|
|
232
|
+
{
|
|
233
|
+
displayName: 'jq',
|
|
234
|
+
command: 'jq',
|
|
235
|
+
versionFlag: '--version',
|
|
236
|
+
reason: 'Agent skills use jq to read and write JSON; agents cannot register without it.',
|
|
237
|
+
install: { macos: 'brew install jq', linux: 'sudo apt-get install -y jq (Fedora: sudo dnf install -y jq)' },
|
|
238
|
+
},
|
|
239
|
+
];
|
|
240
|
+
/**
|
|
241
|
+
* Check the required system tools. Missing tools are listed with install
|
|
242
|
+
* commands, and setup stops: continuing would only fail later, when the
|
|
243
|
+
* first agent tries to register.
|
|
244
|
+
*
|
|
245
|
+
* @returns Number of system tools checked
|
|
246
|
+
*/
|
|
247
|
+
export function ensureSystemTools() {
|
|
248
|
+
let checked = 0;
|
|
249
|
+
const missing = [];
|
|
250
|
+
for (const tool of REQUIRED_SYSTEM_TOOLS) {
|
|
251
|
+
checked += 1;
|
|
252
|
+
if (checkToolInstalled(tool.command)) {
|
|
253
|
+
const version = getToolVersion(tool.command, tool.versionFlag);
|
|
254
|
+
console.log(chalk.green(` ✓ ${tool.displayName} detected${version ? ` (${version})` : ''}`));
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
missing.push(tool);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
if (missing.length > 0) {
|
|
261
|
+
for (const tool of missing) {
|
|
262
|
+
console.log(chalk.red(` ✖ ${tool.displayName} not found.`));
|
|
263
|
+
console.log(chalk.yellow(` ${tool.reason}`));
|
|
264
|
+
console.log(chalk.gray(` macOS: ${tool.install.macos}`));
|
|
265
|
+
console.log(chalk.gray(` Linux: ${tool.install.linux}`));
|
|
266
|
+
}
|
|
267
|
+
console.log(chalk.gray(' Install the tool(s) above, then run `crewly onboard` again.\n'));
|
|
268
|
+
process.exit(1);
|
|
269
|
+
}
|
|
270
|
+
console.log(chalk.gray(` ${checked} system tool(s) checked.`));
|
|
271
|
+
return checked;
|
|
272
|
+
}
|
|
167
273
|
/** Map of provider choices to the tools they require */
|
|
168
274
|
const PROVIDER_TOOLS = {
|
|
169
275
|
claude: [
|
|
@@ -199,19 +305,8 @@ const PROVIDER_TOOLS = {
|
|
|
199
305
|
*/
|
|
200
306
|
export async function ensureTools(rl, provider, autoYes = false) {
|
|
201
307
|
console.log(chalk.bold(' Step 2/5: Tool Installation'));
|
|
202
|
-
//
|
|
203
|
-
|
|
204
|
-
const tmuxVersion = getToolVersion('tmux', '-V');
|
|
205
|
-
const versionStr = tmuxVersion ? ` (${tmuxVersion})` : '';
|
|
206
|
-
console.log(chalk.green(` ✓ tmux detected${versionStr}`));
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
console.log(chalk.red(' ✖ tmux not found!'));
|
|
210
|
-
console.log(chalk.yellow(' tmux is required to manage agent terminal sessions.'));
|
|
211
|
-
console.log(chalk.gray(' Install: brew install tmux (macOS) or sudo apt install tmux (Linux)'));
|
|
212
|
-
console.log(chalk.gray(' Setup cannot continue without tmux.\n'));
|
|
213
|
-
process.exit(1);
|
|
214
|
-
}
|
|
308
|
+
// Required system tools (jq). tmux is not required: sessions use node-pty.
|
|
309
|
+
ensureSystemTools();
|
|
215
310
|
const tools = PROVIDER_TOOLS[provider] || [];
|
|
216
311
|
if (tools.length === 0) {
|
|
217
312
|
console.log(chalk.gray(' Skipped AI provider installation.\n'));
|
|
@@ -269,10 +364,21 @@ export async function ensureSkills() {
|
|
|
269
364
|
return;
|
|
270
365
|
}
|
|
271
366
|
console.log(chalk.blue(` Installing ${total} agent skills from marketplace...`));
|
|
272
|
-
const
|
|
367
|
+
const result = await installAllSkills((name, index, skillTotal) => {
|
|
273
368
|
console.log(chalk.gray(` [${index}/${skillTotal}] ${name}`));
|
|
274
369
|
});
|
|
275
|
-
|
|
370
|
+
// Report failures by name. Printing only the success count hid 29 of 31
|
|
371
|
+
// skills failing ("✓ 2 skills installed" after "Installing 31...").
|
|
372
|
+
if (result.failed.length === 0) {
|
|
373
|
+
console.log(chalk.green(` ✓ ${result.installed} skills installed\n`));
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
for (const f of result.failed) {
|
|
377
|
+
console.log(chalk.red(` ✗ ${f.name}: ${f.message}`));
|
|
378
|
+
}
|
|
379
|
+
console.log(chalk.yellow(` ⚠ ${result.installed} of ${result.total} skills installed, ${result.failed.length} failed.`));
|
|
380
|
+
console.log(chalk.gray(' Setup continues; retry with \'crewly install --all\' and report persistent failures.\n'));
|
|
381
|
+
}
|
|
276
382
|
}
|
|
277
383
|
catch (error) {
|
|
278
384
|
// Offline fallback: count bundled skills
|
|
@@ -517,6 +623,11 @@ export function printSummary(selectedTemplate = null, projectDir) {
|
|
|
517
623
|
* - First available template (or --template flag)
|
|
518
624
|
* - Scaffold .crewly/ directory
|
|
519
625
|
*
|
|
626
|
+
* Interactive mode requires stdin to be a terminal. When it is not (a pipe,
|
|
627
|
+
* as under `curl ... | bash` without `< /dev/tty`), or when the input closes
|
|
628
|
+
* mid-wizard, it prints the command to run next and sets exit code 1 instead
|
|
629
|
+
* of finishing with nothing set up (#772).
|
|
630
|
+
*
|
|
520
631
|
* @param options - Command options from Commander.js
|
|
521
632
|
*/
|
|
522
633
|
export async function onboardCommand(options = {}) {
|
|
@@ -537,6 +648,11 @@ export async function onboardCommand(options = {}) {
|
|
|
537
648
|
}
|
|
538
649
|
}
|
|
539
650
|
}
|
|
651
|
+
// Interactive mode needs a terminal to read answers from (#772).
|
|
652
|
+
if (!autoYes && !isInteractiveInput()) {
|
|
653
|
+
reportNonInteractiveInput('The setup wizard needs a terminal, but its input is not one.');
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
540
656
|
if (autoYes) {
|
|
541
657
|
// Non-interactive mode: use defaults
|
|
542
658
|
const provider = 'claude';
|
|
@@ -544,8 +660,15 @@ export async function onboardCommand(options = {}) {
|
|
|
544
660
|
// Step 1: Default provider
|
|
545
661
|
console.log(chalk.bold(' Step 1/5: AI Provider'));
|
|
546
662
|
console.log(chalk.green(` ✓ Using default: Claude Code\n`));
|
|
547
|
-
// Step 2: Auto-install tools
|
|
548
|
-
|
|
663
|
+
// Step 2: Auto-install tools (autoYes never prompts; close the interface
|
|
664
|
+
// so an open stdin cannot keep the process alive)
|
|
665
|
+
const autoRl = createReadlineInterface();
|
|
666
|
+
try {
|
|
667
|
+
await ensureTools(autoRl, provider, true);
|
|
668
|
+
}
|
|
669
|
+
finally {
|
|
670
|
+
autoRl.close();
|
|
671
|
+
}
|
|
549
672
|
// Step 3: Skills
|
|
550
673
|
await ensureSkills();
|
|
551
674
|
// Step 4: Template — use preselected or first available
|
|
@@ -598,6 +721,14 @@ export async function onboardCommand(options = {}) {
|
|
|
598
721
|
// Step 5: Summary
|
|
599
722
|
printSummary(selectedTemplate);
|
|
600
723
|
}
|
|
724
|
+
catch (error) {
|
|
725
|
+
if (error instanceof WizardInputClosedError) {
|
|
726
|
+
console.log('');
|
|
727
|
+
reportNonInteractiveInput('The setup wizard\'s input closed before setup finished.', true);
|
|
728
|
+
return;
|
|
729
|
+
}
|
|
730
|
+
throw error;
|
|
731
|
+
}
|
|
601
732
|
finally {
|
|
602
733
|
rl.close();
|
|
603
734
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../../../../cli/src/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../../../../cli/src/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,12 @@ interface ServiceOptions {
|
|
|
47
47
|
follow?: boolean;
|
|
48
48
|
/** Target version for upgrade (e.g. "1.4.48" or "latest") */
|
|
49
49
|
version?: string;
|
|
50
|
+
/**
|
|
51
|
+
* restart/stop/upgrade: do not wait for agents mid-turn — send a second
|
|
52
|
+
* SIGTERM so the backend skips its drain (interrupted turns are resumed
|
|
53
|
+
* after the next start).
|
|
54
|
+
*/
|
|
55
|
+
now?: boolean;
|
|
50
56
|
}
|
|
51
57
|
/**
|
|
52
58
|
* Entry point for the `crewly service` subcommand.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqFH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAClC,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,kBAAkB,CAa9D;AA0ED,UAAU,cAAc;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACd;AAMD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAiCf;AA+WD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA2B/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,kBAAgD,GACnD,MAAM,CA8BR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,IAAI,GAAE,MAA+B,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B1F;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAA+B,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,CAQxG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsB9D;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAClC,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,kBAAgD,GACnD,MAAM,CAiER;AAsCD;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS9D;AAkkBD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAgB7C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAYnD"}
|
|
@@ -24,6 +24,7 @@ import * as os from 'os';
|
|
|
24
24
|
import chalk from 'chalk';
|
|
25
25
|
import { CREWLY_CONSTANTS } from '../../../config/index.js';
|
|
26
26
|
import { resolvePackageRoot } from '../utils/package-root.js';
|
|
27
|
+
import { SKIP_DRAIN_SIGNAL_GAP_MS, describeReadiness, fetchRestartReadiness, isPidAlive, resolveRestartDrainMs, resolveShutdownBudgetMs, waitForPidExit, } from '../utils/safe-shutdown.js';
|
|
27
28
|
const execAsync = promisify(exec);
|
|
28
29
|
// ---------------------------------------------------------------------------
|
|
29
30
|
// Shared constants
|
|
@@ -124,25 +125,31 @@ fi`;
|
|
|
124
125
|
// ---------------------------------------------------------------------------
|
|
125
126
|
/**
|
|
126
127
|
* Shell snippet embedded in wrapper scripts that detects architecture
|
|
127
|
-
* mismatches between the running node binary and
|
|
128
|
-
* node
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* (
|
|
128
|
+
* mismatches between the running node binary and a from-source node-pty
|
|
129
|
+
* build (`build/Release/pty.node`), preventing the ERR_DLOPEN_FAILED crash
|
|
130
|
+
* when it was compiled for x86_64 but node is arm64 (or vice versa).
|
|
131
|
+
*
|
|
132
|
+
* node-pty ships prebuilds per `<platform>-<arch>` (#778) and loads
|
|
133
|
+
* `build/Release` before them, so a stale build is removed when a matching
|
|
134
|
+
* prebuild exists; only when there is none is node-pty rebuilt.
|
|
132
135
|
*/
|
|
133
|
-
const NATIVE_MODULE_CHECK = `#
|
|
134
|
-
|
|
136
|
+
const NATIVE_MODULE_CHECK = `# Fix native modules if node arch doesn't match a from-source node-pty build
|
|
137
|
+
PTY_DIR="node_modules/node-pty"
|
|
138
|
+
PTY_NODE="$PTY_DIR/build/Release/pty.node"
|
|
135
139
|
if [ -f "$PTY_NODE" ]; then
|
|
136
|
-
|
|
140
|
+
NODE_PLATFORM_ARCH=$("\${NODE_BIN:-node}" -p "process.platform + '-' + process.arch")
|
|
141
|
+
NODE_ARCH="\${NODE_PLATFORM_ARCH##*-}"
|
|
137
142
|
PTY_ARCH=$(file "$PTY_NODE" | grep -o 'arm64\\|x86_64' | head -1)
|
|
138
143
|
# Normalize: node uses "x64", file uses "x86_64"
|
|
139
144
|
if [ "$NODE_ARCH" = "x64" ]; then NODE_ARCH="x86_64"; fi
|
|
140
|
-
if [ "$NODE_ARCH" = "arm64" ]
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
145
|
+
if [ -n "$PTY_ARCH" ] && [ "$NODE_ARCH" != "$PTY_ARCH" ] && { [ "$NODE_ARCH" = "arm64" ] || [ "$NODE_ARCH" = "x86_64" ]; }; then
|
|
146
|
+
if [ -f "$PTY_DIR/prebuilds/$NODE_PLATFORM_ARCH/pty.node" ]; then
|
|
147
|
+
echo "$(date): Architecture mismatch (node=$NODE_ARCH, pty.node=$PTY_ARCH). Removing the stale build; using the $NODE_PLATFORM_ARCH prebuild." | tee -a "$LOG_DIR/service.log" 2>/dev/null
|
|
148
|
+
rm -rf "$PTY_DIR/build"
|
|
149
|
+
else
|
|
150
|
+
echo "$(date): Architecture mismatch (node=$NODE_ARCH, pty.node=$PTY_ARCH). Rebuilding..." | tee -a "$LOG_DIR/service.log" 2>/dev/null
|
|
151
|
+
npm rebuild node-pty 2>&1 | tee -a "$LOG_DIR/service.log" 2>/dev/null
|
|
152
|
+
fi
|
|
146
153
|
fi
|
|
147
154
|
fi`;
|
|
148
155
|
// ---------------------------------------------------------------------------
|
|
@@ -169,10 +176,10 @@ export async function serviceCommand(action, options) {
|
|
|
169
176
|
await serviceStatus();
|
|
170
177
|
break;
|
|
171
178
|
case 'restart':
|
|
172
|
-
await restartService();
|
|
179
|
+
await restartService(options);
|
|
173
180
|
break;
|
|
174
181
|
case 'stop':
|
|
175
|
-
await stopService();
|
|
182
|
+
await stopService(options);
|
|
176
183
|
break;
|
|
177
184
|
case 'start':
|
|
178
185
|
await startService();
|
|
@@ -488,6 +495,13 @@ ExecStart=${SYSTEMD_WRAPPER_PATH}
|
|
|
488
495
|
WorkingDirectory=${projectRoot}
|
|
489
496
|
Restart=on-failure
|
|
490
497
|
RestartSec=5
|
|
498
|
+
# Safe restart: SIGTERM only the main process (the crewly CLI, which forwards
|
|
499
|
+
# it to the backend) instead of the whole cgroup — the default would kill
|
|
500
|
+
# every agent runtime at once, before the backend can drain their turns.
|
|
501
|
+
KillMode=mixed
|
|
502
|
+
# The backend waits up to CREWLY_RESTART_DRAIN_MS for agents mid-turn; do not
|
|
503
|
+
# SIGKILL before that plus the shutdown margin.
|
|
504
|
+
TimeoutStopSec=${Math.ceil(resolveShutdownBudgetMs(process.env) / 1000)}
|
|
491
505
|
Environment=NODE_ENV=development
|
|
492
506
|
EnvironmentFile=-%h/${CREWLY_CONSTANTS.PATHS.CREWLY_HOME}/${SERVICE_ENV_FILE_NAME}
|
|
493
507
|
|
|
@@ -784,18 +798,103 @@ async function migrateLegacyLaunchAgent() {
|
|
|
784
798
|
// Restart
|
|
785
799
|
// ===========================================================================
|
|
786
800
|
/**
|
|
787
|
-
*
|
|
801
|
+
* Print who is mid-turn before stopping, so the operator knows why the stop
|
|
802
|
+
* may take a while (the backend drains in-flight agent turns first).
|
|
803
|
+
*/
|
|
804
|
+
async function printRestartReadiness() {
|
|
805
|
+
const readiness = await fetchRestartReadiness();
|
|
806
|
+
if (!readiness)
|
|
807
|
+
return;
|
|
808
|
+
for (const line of describeReadiness(readiness, resolveRestartDrainMs(process.env))) {
|
|
809
|
+
console.log(chalk.gray(` ${line}`));
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
/**
|
|
813
|
+
* Send SIGTERM to a pid; with `skipDrain`, send a second one after the
|
|
814
|
+
* backend's dedup window so it stops waiting for agents.
|
|
815
|
+
*
|
|
816
|
+
* @param pid - Process to signal
|
|
817
|
+
* @param skipDrain - Also send the "stop waiting" signal
|
|
818
|
+
* @returns False if the process could not be signalled
|
|
819
|
+
*/
|
|
820
|
+
async function signalStop(pid, skipDrain) {
|
|
821
|
+
try {
|
|
822
|
+
process.kill(pid, 'SIGTERM');
|
|
823
|
+
}
|
|
824
|
+
catch {
|
|
825
|
+
return false;
|
|
826
|
+
}
|
|
827
|
+
if (skipDrain) {
|
|
828
|
+
await new Promise((r) => setTimeout(r, SKIP_DRAIN_SIGNAL_GAP_MS));
|
|
829
|
+
try {
|
|
830
|
+
process.kill(pid, 'SIGTERM');
|
|
831
|
+
console.log(chalk.yellow(' --now: asked the backend not to wait for agents mid-turn'));
|
|
832
|
+
}
|
|
833
|
+
catch {
|
|
834
|
+
// Already gone.
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
return true;
|
|
838
|
+
}
|
|
839
|
+
/**
|
|
840
|
+
* Wait for a stopped process to exit, within the drain budget.
|
|
841
|
+
*
|
|
842
|
+
* @param pid - Process id
|
|
843
|
+
* @returns True if it exited
|
|
844
|
+
*/
|
|
845
|
+
async function waitForStopped(pid) {
|
|
846
|
+
const budgetMs = resolveShutdownBudgetMs(process.env);
|
|
847
|
+
console.log(chalk.gray(` Waiting for agents to finish their current turn (up to ${Math.round(budgetMs / 1000)}s; --now skips)...`));
|
|
848
|
+
const exited = await waitForPidExit(pid, budgetMs, {
|
|
849
|
+
isAlive: isPidAlive,
|
|
850
|
+
onProgress: (waitedMs) => console.log(chalk.gray(` ...still draining (${Math.round(waitedMs / 1000)}s)`)),
|
|
851
|
+
});
|
|
852
|
+
if (!exited) {
|
|
853
|
+
console.log(chalk.yellow(` Process ${pid} is still running after ${Math.round(budgetMs / 1000)}s.`));
|
|
854
|
+
}
|
|
855
|
+
return exited;
|
|
856
|
+
}
|
|
857
|
+
/**
|
|
858
|
+
* On Linux with --now, ask the running unit to skip its drain before
|
|
859
|
+
* systemctl stops it: two SIGTERMs to the main process (the CLI forwards
|
|
860
|
+
* both; the backend reads the second as "stop waiting").
|
|
861
|
+
*/
|
|
862
|
+
async function skipDrainLinux() {
|
|
863
|
+
const cmd = `systemctl --user kill --kill-whom=main --signal=SIGTERM ${SYSTEMD_UNIT_NAME}`;
|
|
864
|
+
try {
|
|
865
|
+
await execAsync(cmd);
|
|
866
|
+
await new Promise((r) => setTimeout(r, SKIP_DRAIN_SIGNAL_GAP_MS));
|
|
867
|
+
await execAsync(cmd);
|
|
868
|
+
console.log(chalk.yellow(' --now: asked the backend not to wait for agents mid-turn'));
|
|
869
|
+
}
|
|
870
|
+
catch {
|
|
871
|
+
// Not running — systemctl below reports the state.
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
/**
|
|
875
|
+
* Restarts the Crewly service.
|
|
876
|
+
*
|
|
877
|
+
* The backend drains in-flight agent turns on SIGTERM (up to
|
|
878
|
+
* CREWLY_RESTART_DRAIN_MS, default 120s), so this waits for the old process
|
|
879
|
+
* to exit before reporting or re-launching. `--now` skips the drain; turns
|
|
880
|
+
* cut off are resumed after the restart.
|
|
788
881
|
*
|
|
789
882
|
* On macOS, checks whether the service wrapper (while-true loop) is the
|
|
790
883
|
* parent of the running node process. If so, the wrapper auto-restarts.
|
|
791
884
|
* If the process was started via `npm run dev` or another method (parent is
|
|
792
885
|
* PID 1 / launchd), kills it and launches via the .command wrapper directly.
|
|
793
886
|
*
|
|
794
|
-
* On Linux, uses `systemctl --user restart
|
|
887
|
+
* On Linux, uses `systemctl --user restart` (blocks until stopped; the unit's
|
|
888
|
+
* TimeoutStopSec covers the drain).
|
|
889
|
+
*
|
|
890
|
+
* @param options - `now` to skip the drain
|
|
795
891
|
*/
|
|
796
|
-
async function restartService() {
|
|
892
|
+
async function restartService(options = {}) {
|
|
797
893
|
assertSupportedPlatform();
|
|
894
|
+
await printRestartReadiness();
|
|
798
895
|
if (process.platform === 'linux') {
|
|
896
|
+
if (options.now)
|
|
897
|
+
await skipDrainLinux();
|
|
799
898
|
try {
|
|
800
899
|
await execAsync(`systemctl --user restart ${SYSTEMD_UNIT_NAME}`);
|
|
801
900
|
console.log(chalk.green('Crewly service restarted.'));
|
|
@@ -823,32 +922,24 @@ async function restartService() {
|
|
|
823
922
|
catch {
|
|
824
923
|
// Could not determine parent
|
|
825
924
|
}
|
|
826
|
-
|
|
827
|
-
process.kill(pid, 'SIGTERM');
|
|
828
|
-
console.log(chalk.green(`Sent SIGTERM to node process (PID ${pid}).`));
|
|
829
|
-
}
|
|
830
|
-
catch {
|
|
925
|
+
if (!(await signalStop(pid, options.now === true))) {
|
|
831
926
|
console.log(chalk.red('Failed to send signal to the process.'));
|
|
832
927
|
return;
|
|
833
928
|
}
|
|
929
|
+
console.log(chalk.green(`Sent SIGTERM to node process (PID ${pid}).`));
|
|
930
|
+
const exited = await waitForStopped(pid);
|
|
834
931
|
if (hasWrapper) {
|
|
835
|
-
console.log(chalk.gray(
|
|
932
|
+
console.log(chalk.gray(exited
|
|
933
|
+
? 'The service wrapper will auto-restart in ~5 seconds.'
|
|
934
|
+
: 'The service wrapper restarts it once it exits.'));
|
|
836
935
|
}
|
|
837
|
-
else {
|
|
838
|
-
// No wrapper — wait for process to die, then start via .command or directly
|
|
936
|
+
else if (exited) {
|
|
839
937
|
console.log(chalk.gray('No service wrapper detected. Re-launching...'));
|
|
840
|
-
// Wait up to 10s for the process to exit
|
|
841
|
-
for (let i = 0; i < 20; i++) {
|
|
842
|
-
try {
|
|
843
|
-
process.kill(pid, 0); // Check if still alive
|
|
844
|
-
await new Promise(r => setTimeout(r, 500));
|
|
845
|
-
}
|
|
846
|
-
catch {
|
|
847
|
-
break; // Process exited
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
938
|
await startService();
|
|
851
939
|
}
|
|
940
|
+
else {
|
|
941
|
+
console.log(chalk.yellow('Not re-launching while the old process is still running. Run "crewly service start" once it exits.'));
|
|
942
|
+
}
|
|
852
943
|
}
|
|
853
944
|
// ===========================================================================
|
|
854
945
|
// Stop
|
|
@@ -856,13 +947,22 @@ async function restartService() {
|
|
|
856
947
|
/**
|
|
857
948
|
* Stops the Crewly service completely, including the restart wrapper.
|
|
858
949
|
*
|
|
950
|
+
* Waits for the backend to drain in-flight agent turns (see restartService);
|
|
951
|
+
* `--now` skips the drain.
|
|
952
|
+
*
|
|
859
953
|
* On macOS, kills both the node process and its parent bash wrapper
|
|
860
|
-
* (the `while true` loop) to prevent automatic restart.
|
|
954
|
+
* (the `while true` loop) to prevent automatic restart. The wrapper only
|
|
955
|
+
* waits on the node process, so stopping it does not cut the drain short.
|
|
861
956
|
* On Linux, uses `systemctl --user stop`.
|
|
957
|
+
*
|
|
958
|
+
* @param options - `now` to skip the drain
|
|
862
959
|
*/
|
|
863
|
-
async function stopService() {
|
|
960
|
+
async function stopService(options = {}) {
|
|
864
961
|
assertSupportedPlatform();
|
|
962
|
+
await printRestartReadiness();
|
|
865
963
|
if (process.platform === 'linux') {
|
|
964
|
+
if (options.now)
|
|
965
|
+
await skipDrainLinux();
|
|
866
966
|
try {
|
|
867
967
|
await execAsync(`systemctl --user stop ${SYSTEMD_UNIT_NAME}`);
|
|
868
968
|
console.log(chalk.green('Crewly service stopped.'));
|
|
@@ -894,15 +994,8 @@ async function stopService() {
|
|
|
894
994
|
catch {
|
|
895
995
|
// Could not determine parent — will just kill node process
|
|
896
996
|
}
|
|
897
|
-
// Kill the
|
|
898
|
-
|
|
899
|
-
process.kill(pid, 'SIGTERM');
|
|
900
|
-
console.log(chalk.green(` Stopped node process (PID ${pid})`));
|
|
901
|
-
}
|
|
902
|
-
catch {
|
|
903
|
-
console.log(chalk.gray(' Node process was already stopped'));
|
|
904
|
-
}
|
|
905
|
-
// Kill the parent wrapper to prevent restart
|
|
997
|
+
// Kill the parent wrapper first so it cannot restart the process once it
|
|
998
|
+
// exits. The wrapper is only waiting on node; the drain carries on.
|
|
906
999
|
if (parentPid) {
|
|
907
1000
|
try {
|
|
908
1001
|
process.kill(parentPid, 'SIGTERM');
|
|
@@ -916,6 +1009,13 @@ async function stopService() {
|
|
|
916
1009
|
console.log(chalk.yellow(' Could not find wrapper process. The service may auto-restart.'));
|
|
917
1010
|
console.log(chalk.gray(' To fully stop, close the Terminal.app tab running crewly-start.command'));
|
|
918
1011
|
}
|
|
1012
|
+
if (await signalStop(pid, options.now === true)) {
|
|
1013
|
+
console.log(chalk.green(` Stopping node process (PID ${pid})`));
|
|
1014
|
+
await waitForStopped(pid);
|
|
1015
|
+
}
|
|
1016
|
+
else {
|
|
1017
|
+
console.log(chalk.gray(' Node process was already stopped'));
|
|
1018
|
+
}
|
|
919
1019
|
// Clean up PID file
|
|
920
1020
|
if (fs.existsSync(PID_FILE)) {
|
|
921
1021
|
fs.unlinkSync(PID_FILE);
|
|
@@ -995,9 +1095,11 @@ async function upgradeService(options) {
|
|
|
995
1095
|
assertSupportedPlatform();
|
|
996
1096
|
const targetVersion = options.version || 'latest';
|
|
997
1097
|
console.log(chalk.blue(`Upgrading Crewly to ${targetVersion}...`));
|
|
998
|
-
// 1. Stop the service
|
|
1098
|
+
// 1. Stop the service — and wait for it: npm must not replace the files
|
|
1099
|
+
// under a backend that is still draining agent turns, and startService
|
|
1100
|
+
// refuses to start while the old process is alive.
|
|
999
1101
|
console.log(chalk.gray(' Stopping service...'));
|
|
1000
|
-
await stopService();
|
|
1102
|
+
await stopService(options);
|
|
1001
1103
|
// 2. Run npm install -g
|
|
1002
1104
|
console.log(chalk.gray(` Installing crewly@${targetVersion}...`));
|
|
1003
1105
|
try {
|