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
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Native-module build toolchain preflight.
|
|
3
3
|
*
|
|
4
|
-
* `node-pty`
|
|
5
|
-
*
|
|
4
|
+
* `node-pty` ships prebuilt binaries for macOS (x64/arm64) and glibc Linux
|
|
5
|
+
* (x64/arm64, glibc >= 2.28), so on those platforms no compiler is needed
|
|
6
|
+
* (#778). Elsewhere — Alpine/musl, older glibc, 32-bit ARM — it (and
|
|
7
|
+
* `better-sqlite3` without a prebuild) compiles through node-gyp, which needs
|
|
8
|
+
* a C++ compiler, `make` and `python3`. When one
|
|
6
9
|
* is missing the operator sees forty lines of gyp output ending in
|
|
7
10
|
* `make: g++: No such file or directory` (server-install finding 11). This
|
|
8
11
|
* module answers three questions with no dependencies beyond node builtins
|
|
9
12
|
* — it runs from `preinstall`, before any dependency exists:
|
|
10
13
|
*
|
|
11
|
-
* 1. Is node-pty already built (or
|
|
14
|
+
* 1. Is node-pty already built (or has a usable prebuild) for this platform?
|
|
12
15
|
* 2. Which build tools are missing?
|
|
13
16
|
* 3. What is the one-line package-manager command that installs them?
|
|
14
17
|
*
|
|
@@ -28,6 +31,40 @@ export declare const TOOLCHAIN_INSTALL_COMMANDS: ReadonlyArray<{
|
|
|
28
31
|
manager: string;
|
|
29
32
|
command: string;
|
|
30
33
|
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Oldest glibc node-pty's Linux prebuilds run on. node-pty 1.2.0-beta.15's
|
|
36
|
+
* `prebuilds/linux-{x64,arm64}/pty.node` reference `GLIBC_2.28` symbols
|
|
37
|
+
* (Debian 10+, Ubuntu 18.10+, RHEL 8+).
|
|
38
|
+
*/
|
|
39
|
+
export declare const NODE_PTY_PREBUILD_MIN_GLIBC = "2.28";
|
|
40
|
+
/**
|
|
41
|
+
* `<platform>-<arch>` targets node-pty's npm tarball ships prebuilds for.
|
|
42
|
+
* Used at `preinstall`, before node-pty is on disk to look at.
|
|
43
|
+
*/
|
|
44
|
+
export declare const NODE_PTY_PREBUILT_TARGETS: readonly string[];
|
|
45
|
+
/** C library of a Linux host; null when not Linux or unknown. */
|
|
46
|
+
export type LinuxLibc = {
|
|
47
|
+
family: 'glibc';
|
|
48
|
+
version: string;
|
|
49
|
+
} | {
|
|
50
|
+
family: 'musl';
|
|
51
|
+
} | null;
|
|
52
|
+
/**
|
|
53
|
+
* Detect the running Linux host's C library from Node's diagnostic report
|
|
54
|
+
* (`header.glibcVersionRuntime` is only set on glibc).
|
|
55
|
+
*
|
|
56
|
+
* @param platform - Platform tag (defaults to the current one)
|
|
57
|
+
* @returns glibc + version, musl, or null off Linux / when the report is unavailable
|
|
58
|
+
*/
|
|
59
|
+
export declare function detectLinuxLibc(platform?: string): LinuxLibc;
|
|
60
|
+
/**
|
|
61
|
+
* Why node-pty's prebuild cannot run on this libc, if it cannot.
|
|
62
|
+
*
|
|
63
|
+
* @param platform - Platform tag
|
|
64
|
+
* @param libc - Detected libc (null = unknown, assumed compatible)
|
|
65
|
+
* @returns A short reason, or null when the prebuild is usable
|
|
66
|
+
*/
|
|
67
|
+
export declare function prebuildLibcProblem(platform: string, libc: LinuxLibc): string | null;
|
|
31
68
|
/**
|
|
32
69
|
* Check whether an executable is on PATH without spawning a shell.
|
|
33
70
|
*
|
|
@@ -52,20 +89,25 @@ export declare function detectMissingBuildTools(which?: (bin: string) => boolean
|
|
|
52
89
|
export declare function toolchainInstallHint(which?: (bin: string) => boolean): string;
|
|
53
90
|
/** Whether node-pty is usable without compiling. */
|
|
54
91
|
export interface NodePtyBuildStatus {
|
|
55
|
-
/** `build/Release/pty.node` exists (compiled
|
|
92
|
+
/** `build/Release/pty.node` exists (compiled from source). */
|
|
56
93
|
built: boolean;
|
|
57
|
-
/** A `prebuilds/<platform>-<arch>` directory exists
|
|
94
|
+
/** A `prebuilds/<platform>-<arch>` directory exists AND its binary can run on this libc. */
|
|
58
95
|
prebuilt: boolean;
|
|
96
|
+
/** Set when a prebuild directory exists but cannot run here (musl, old glibc). */
|
|
97
|
+
prebuildProblem?: string;
|
|
59
98
|
}
|
|
60
99
|
/**
|
|
61
|
-
* Inspect node-pty's install state under a package root.
|
|
100
|
+
* Inspect node-pty's install state under a package root. Before node-pty is
|
|
101
|
+
* installed (the `preinstall` preflight) the prebuild answer comes from
|
|
102
|
+
* {@link NODE_PTY_PREBUILT_TARGETS} instead of the filesystem.
|
|
62
103
|
*
|
|
63
104
|
* @param packageRoot - Directory containing `node_modules/`
|
|
64
105
|
* @param platform - Platform tag (defaults to the current one)
|
|
65
106
|
* @param arch - Arch tag (defaults to the current one)
|
|
107
|
+
* @param libc - Host libc (defaults to detection; null = unknown, assumed compatible)
|
|
66
108
|
* @returns Build/prebuild status
|
|
67
109
|
*/
|
|
68
|
-
export declare function nodePtyBuildStatus(packageRoot: string, platform?: string, arch?: string): NodePtyBuildStatus;
|
|
110
|
+
export declare function nodePtyBuildStatus(packageRoot: string, platform?: string, arch?: string, libc?: LinuxLibc): NodePtyBuildStatus;
|
|
69
111
|
/** Outcome of the preflight. */
|
|
70
112
|
export interface ToolchainCheckResult {
|
|
71
113
|
/** True when nothing needs to be reported. */
|
|
@@ -89,6 +131,7 @@ export interface ToolchainCheckResult {
|
|
|
89
131
|
* @param options.which - PATH lookup
|
|
90
132
|
* @param options.platform - Platform tag for prebuild detection
|
|
91
133
|
* @param options.arch - Arch tag for prebuild detection
|
|
134
|
+
* @param options.libc - Host libc for prebuild detection (defaults to detection)
|
|
92
135
|
* @param options.force - Report missing tools even when node-pty is already built (doctor mode)
|
|
93
136
|
* @returns The check result
|
|
94
137
|
*/
|
|
@@ -97,6 +140,7 @@ export declare function checkNativeToolchain(options: {
|
|
|
97
140
|
which?: (bin: string) => boolean;
|
|
98
141
|
platform?: string;
|
|
99
142
|
arch?: string;
|
|
143
|
+
libc?: LinuxLibc;
|
|
100
144
|
force?: boolean;
|
|
101
145
|
}): ToolchainCheckResult;
|
|
102
146
|
/**
|
|
@@ -105,7 +149,8 @@ export declare function checkNativeToolchain(options: {
|
|
|
105
149
|
* @param missing - Missing tool labels
|
|
106
150
|
* @param installHint - Install command
|
|
107
151
|
* @param needsBuild - Whether node-pty still has to be compiled
|
|
152
|
+
* @param prebuildProblem - Why the shipped prebuild cannot be used here, if that is the reason
|
|
108
153
|
* @returns Multi-line message
|
|
109
154
|
*/
|
|
110
|
-
export declare function formatToolchainMessage(missing: string[], installHint: string, needsBuild: boolean): string;
|
|
155
|
+
export declare function formatToolchainMessage(missing: string[], installHint: string, needsBuild: boolean, prebuildProblem?: string): string;
|
|
111
156
|
//# sourceMappingURL=native-toolchain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-toolchain.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/native-toolchain.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"native-toolchain.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/native-toolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Native-module build toolchain preflight.
|
|
3
3
|
*
|
|
4
|
-
* `node-pty`
|
|
5
|
-
*
|
|
4
|
+
* `node-pty` ships prebuilt binaries for macOS (x64/arm64) and glibc Linux
|
|
5
|
+
* (x64/arm64, glibc >= 2.28), so on those platforms no compiler is needed
|
|
6
|
+
* (#778). Elsewhere — Alpine/musl, older glibc, 32-bit ARM — it (and
|
|
7
|
+
* `better-sqlite3` without a prebuild) compiles through node-gyp, which needs
|
|
8
|
+
* a C++ compiler, `make` and `python3`. When one
|
|
6
9
|
* is missing the operator sees forty lines of gyp output ending in
|
|
7
10
|
* `make: g++: No such file or directory` (server-install finding 11). This
|
|
8
11
|
* module answers three questions with no dependencies beyond node builtins
|
|
9
12
|
* — it runs from `preinstall`, before any dependency exists:
|
|
10
13
|
*
|
|
11
|
-
* 1. Is node-pty already built (or
|
|
14
|
+
* 1. Is node-pty already built (or has a usable prebuild) for this platform?
|
|
12
15
|
* 2. Which build tools are missing?
|
|
13
16
|
* 3. What is the one-line package-manager command that installs them?
|
|
14
17
|
*
|
|
@@ -36,8 +39,84 @@ export const TOOLCHAIN_INSTALL_COMMANDS = [
|
|
|
36
39
|
const GENERIC_INSTALL_HINT = 'install a C++ compiler (g++ or clang++), make and python3 with your package manager';
|
|
37
40
|
/** Relative path of node-pty's compiled binding inside a package root. */
|
|
38
41
|
const NODE_PTY_BINDING = path.join('node_modules', 'node-pty', 'build', 'Release', 'pty.node');
|
|
39
|
-
/** Relative path of node-pty's prebuilds directory (
|
|
42
|
+
/** Relative path of node-pty's prebuilds directory (`prebuilds/<platform>-<arch>/`). */
|
|
40
43
|
const NODE_PTY_PREBUILDS = path.join('node_modules', 'node-pty', 'prebuilds');
|
|
44
|
+
/**
|
|
45
|
+
* Oldest glibc node-pty's Linux prebuilds run on. node-pty 1.2.0-beta.15's
|
|
46
|
+
* `prebuilds/linux-{x64,arm64}/pty.node` reference `GLIBC_2.28` symbols
|
|
47
|
+
* (Debian 10+, Ubuntu 18.10+, RHEL 8+).
|
|
48
|
+
*/
|
|
49
|
+
export const NODE_PTY_PREBUILD_MIN_GLIBC = '2.28';
|
|
50
|
+
/**
|
|
51
|
+
* `<platform>-<arch>` targets node-pty's npm tarball ships prebuilds for.
|
|
52
|
+
* Used at `preinstall`, before node-pty is on disk to look at.
|
|
53
|
+
*/
|
|
54
|
+
export const NODE_PTY_PREBUILT_TARGETS = [
|
|
55
|
+
'darwin-arm64',
|
|
56
|
+
'darwin-x64',
|
|
57
|
+
'linux-arm64',
|
|
58
|
+
'linux-x64',
|
|
59
|
+
'win32-arm64',
|
|
60
|
+
'win32-x64',
|
|
61
|
+
];
|
|
62
|
+
/**
|
|
63
|
+
* Detect the running Linux host's C library from Node's diagnostic report
|
|
64
|
+
* (`header.glibcVersionRuntime` is only set on glibc).
|
|
65
|
+
*
|
|
66
|
+
* @param platform - Platform tag (defaults to the current one)
|
|
67
|
+
* @returns glibc + version, musl, or null off Linux / when the report is unavailable
|
|
68
|
+
*/
|
|
69
|
+
export function detectLinuxLibc(platform = process.platform) {
|
|
70
|
+
if (platform !== 'linux' || process.platform !== 'linux')
|
|
71
|
+
return null;
|
|
72
|
+
try {
|
|
73
|
+
const report = process.report;
|
|
74
|
+
if (!report)
|
|
75
|
+
return null;
|
|
76
|
+
const previous = report.excludeNetwork;
|
|
77
|
+
report.excludeNetwork = true;
|
|
78
|
+
const header = report.getReport().header;
|
|
79
|
+
report.excludeNetwork = previous;
|
|
80
|
+
return header?.glibcVersionRuntime
|
|
81
|
+
? { family: 'glibc', version: header.glibcVersionRuntime }
|
|
82
|
+
: { family: 'musl' };
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Compare dotted numeric versions.
|
|
90
|
+
*
|
|
91
|
+
* @returns negative, 0 or positive like `Array#sort` comparators
|
|
92
|
+
*/
|
|
93
|
+
function compareDotted(a, b) {
|
|
94
|
+
const pa = a.split('.').map((n) => parseInt(n, 10) || 0);
|
|
95
|
+
const pb = b.split('.').map((n) => parseInt(n, 10) || 0);
|
|
96
|
+
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
97
|
+
const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
98
|
+
if (diff !== 0)
|
|
99
|
+
return diff;
|
|
100
|
+
}
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Why node-pty's prebuild cannot run on this libc, if it cannot.
|
|
105
|
+
*
|
|
106
|
+
* @param platform - Platform tag
|
|
107
|
+
* @param libc - Detected libc (null = unknown, assumed compatible)
|
|
108
|
+
* @returns A short reason, or null when the prebuild is usable
|
|
109
|
+
*/
|
|
110
|
+
export function prebuildLibcProblem(platform, libc) {
|
|
111
|
+
if (platform !== 'linux' || libc === null)
|
|
112
|
+
return null;
|
|
113
|
+
if (libc.family === 'musl')
|
|
114
|
+
return 'musl libc (e.g. Alpine) — the prebuilds target glibc';
|
|
115
|
+
if (compareDotted(libc.version, NODE_PTY_PREBUILD_MIN_GLIBC) < 0) {
|
|
116
|
+
return `glibc ${libc.version} is older than the ${NODE_PTY_PREBUILD_MIN_GLIBC} the prebuilds need`;
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
41
120
|
/**
|
|
42
121
|
* Check whether an executable is on PATH without spawning a shell.
|
|
43
122
|
*
|
|
@@ -85,18 +164,26 @@ export function toolchainInstallHint(which = isOnPath) {
|
|
|
85
164
|
return match ? match.command : GENERIC_INSTALL_HINT;
|
|
86
165
|
}
|
|
87
166
|
/**
|
|
88
|
-
* Inspect node-pty's install state under a package root.
|
|
167
|
+
* Inspect node-pty's install state under a package root. Before node-pty is
|
|
168
|
+
* installed (the `preinstall` preflight) the prebuild answer comes from
|
|
169
|
+
* {@link NODE_PTY_PREBUILT_TARGETS} instead of the filesystem.
|
|
89
170
|
*
|
|
90
171
|
* @param packageRoot - Directory containing `node_modules/`
|
|
91
172
|
* @param platform - Platform tag (defaults to the current one)
|
|
92
173
|
* @param arch - Arch tag (defaults to the current one)
|
|
174
|
+
* @param libc - Host libc (defaults to detection; null = unknown, assumed compatible)
|
|
93
175
|
* @returns Build/prebuild status
|
|
94
176
|
*/
|
|
95
|
-
export function nodePtyBuildStatus(packageRoot, platform = process.platform, arch = process.arch) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
177
|
+
export function nodePtyBuildStatus(packageRoot, platform = process.platform, arch = process.arch, libc = detectLinuxLibc(platform)) {
|
|
178
|
+
const built = fs.existsSync(path.join(packageRoot, NODE_PTY_BINDING));
|
|
179
|
+
const installed = fs.existsSync(path.join(packageRoot, 'node_modules', 'node-pty'));
|
|
180
|
+
const hasPrebuildDir = installed
|
|
181
|
+
? fs.existsSync(path.join(packageRoot, NODE_PTY_PREBUILDS, `${platform}-${arch}`))
|
|
182
|
+
: NODE_PTY_PREBUILT_TARGETS.includes(`${platform}-${arch}`);
|
|
183
|
+
const problem = hasPrebuildDir ? prebuildLibcProblem(platform, libc) : null;
|
|
184
|
+
return problem
|
|
185
|
+
? { built, prebuilt: false, prebuildProblem: problem }
|
|
186
|
+
: { built, prebuilt: hasPrebuildDir };
|
|
100
187
|
}
|
|
101
188
|
/**
|
|
102
189
|
* Run the preflight: when node-pty has to be compiled and the toolchain is
|
|
@@ -108,19 +195,20 @@ export function nodePtyBuildStatus(packageRoot, platform = process.platform, arc
|
|
|
108
195
|
* @param options.which - PATH lookup
|
|
109
196
|
* @param options.platform - Platform tag for prebuild detection
|
|
110
197
|
* @param options.arch - Arch tag for prebuild detection
|
|
198
|
+
* @param options.libc - Host libc for prebuild detection (defaults to detection)
|
|
111
199
|
* @param options.force - Report missing tools even when node-pty is already built (doctor mode)
|
|
112
200
|
* @returns The check result
|
|
113
201
|
*/
|
|
114
202
|
export function checkNativeToolchain(options) {
|
|
115
203
|
const which = options.which ?? isOnPath;
|
|
116
|
-
const nodePty = nodePtyBuildStatus(options.packageRoot, options.platform, options.arch);
|
|
204
|
+
const nodePty = nodePtyBuildStatus(options.packageRoot, options.platform, options.arch, options.libc === undefined ? detectLinuxLibc(options.platform) : options.libc);
|
|
117
205
|
const missing = detectMissingBuildTools(which);
|
|
118
206
|
const installHint = toolchainInstallHint(which);
|
|
119
207
|
const needsBuild = !nodePty.built && !nodePty.prebuilt;
|
|
120
208
|
if (missing.length === 0 || (!needsBuild && !options.force)) {
|
|
121
209
|
return { ok: true, missing, installHint, nodePty, message: '' };
|
|
122
210
|
}
|
|
123
|
-
const message = formatToolchainMessage(missing, installHint, needsBuild);
|
|
211
|
+
const message = formatToolchainMessage(missing, installHint, needsBuild, nodePty.prebuildProblem);
|
|
124
212
|
return { ok: false, missing, installHint, nodePty, message };
|
|
125
213
|
}
|
|
126
214
|
/**
|
|
@@ -129,13 +217,17 @@ export function checkNativeToolchain(options) {
|
|
|
129
217
|
* @param missing - Missing tool labels
|
|
130
218
|
* @param installHint - Install command
|
|
131
219
|
* @param needsBuild - Whether node-pty still has to be compiled
|
|
220
|
+
* @param prebuildProblem - Why the shipped prebuild cannot be used here, if that is the reason
|
|
132
221
|
* @returns Multi-line message
|
|
133
222
|
*/
|
|
134
|
-
export function formatToolchainMessage(missing, installHint, needsBuild) {
|
|
223
|
+
export function formatToolchainMessage(missing, installHint, needsBuild, prebuildProblem) {
|
|
135
224
|
const tools = missing.join(', ');
|
|
225
|
+
const noPrebuild = prebuildProblem
|
|
226
|
+
? `node-pty's prebuilt binary cannot run here (${prebuildProblem})`
|
|
227
|
+
: 'node-pty has no prebuilt binary for this platform';
|
|
136
228
|
const consequence = needsBuild
|
|
137
|
-
?
|
|
138
|
-
: 'node-pty is currently built, but the next `npm rebuild` / upgrade will fail in node-gyp.';
|
|
229
|
+
? `${noPrebuild} and must be compiled, so \`npm install\` will fail in node-gyp.`
|
|
230
|
+
: 'node-pty is currently built from source, but the next `npm rebuild` / upgrade will fail in node-gyp.';
|
|
139
231
|
return [
|
|
140
232
|
`[crewly] Missing native build tool${missing.length > 1 ? 's' : ''}: ${tools}.`,
|
|
141
233
|
`[crewly] ${consequence}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-toolchain.js","sourceRoot":"","sources":["../../../../../cli/src/utils/native-toolchain.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"native-toolchain.js","sourceRoot":"","sources":["../../../../../cli/src/utils/native-toolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,46 @@
|
|
|
4
4
|
* @module cli/utils/process-cleanup
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
* the
|
|
9
|
-
*
|
|
7
|
+
* A process is treated as a Crewly backend only when its command line runs
|
|
8
|
+
* the backend entrypoint: the compiled `dist/backend/backend/src/index.js`
|
|
9
|
+
* (what `crewly start` spawns) or `backend/src/index.ts` (dev via tsx).
|
|
10
|
+
*/
|
|
11
|
+
export declare const CREWLY_BACKEND_COMMAND_PATTERN: RegExp;
|
|
12
|
+
/**
|
|
13
|
+
* Command that lists the pids LISTENING on a TCP port.
|
|
10
14
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
15
|
+
* `-sTCP:LISTEN` matters: a plain `lsof -ti :<port>` also returns every
|
|
16
|
+
* client connected to the port (browsers, agents, curl), which must never be
|
|
17
|
+
* signalled.
|
|
18
|
+
*
|
|
19
|
+
* @param port - TCP port
|
|
20
|
+
* @returns Shell command
|
|
21
|
+
*/
|
|
22
|
+
export declare function listListenersCommand(port: number): string;
|
|
23
|
+
/**
|
|
24
|
+
* Replace a stale Crewly backend that still holds THIS start's port, and
|
|
25
|
+
* nothing else.
|
|
26
|
+
*
|
|
27
|
+
* `crewly start` calls this only after the health check on `port` failed, so
|
|
28
|
+
* a listener on `port` is a dead or wedged instance of this same Crewly. Scope:
|
|
29
|
+
* - only processes LISTENING on `port`, never clients connected to it;
|
|
30
|
+
* - only if the listener's command line is a Crewly backend
|
|
31
|
+
* ({@link CREWLY_BACKEND_COMMAND_PATTERN}). Anything else on the port is
|
|
32
|
+
* reported and left alone;
|
|
33
|
+
* - SIGTERM first, SIGKILL only for stragglers after a short grace period.
|
|
34
|
+
*
|
|
35
|
+
* Crewly backends of other projects run on other ports and are never touched.
|
|
36
|
+
* An earlier version also SIGKILLed every process on the machine matching
|
|
37
|
+
* `dist/backend/backend/src/index.js`, which took down every other project's
|
|
38
|
+
* backend and its agents on each `crewly start`. That sweep is gone.
|
|
39
|
+
*
|
|
40
|
+
* Orphaned test runners are still cleaned up ({@link killOrphanedTestProcesses}).
|
|
41
|
+
*
|
|
42
|
+
* @param port - The port this `crewly start` will bind
|
|
43
|
+
* @param logFn - Logging function for status messages
|
|
44
|
+
* @returns The pids that were signalled
|
|
13
45
|
*/
|
|
14
|
-
export declare function killZombieProcesses(port: number, logFn?: (msg: string) => void):
|
|
46
|
+
export declare function killZombieProcesses(port: number, logFn?: (msg: string) => void): number[];
|
|
15
47
|
/**
|
|
16
48
|
* Whether a parent pid means "the real parent is gone": pid 1, or a
|
|
17
49
|
* `systemd --user` / launchd subreaper that adopted the process.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-cleanup.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/process-cleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH
|
|
1
|
+
{"version":3,"file":"process-cleanup.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/process-cleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,QAAmC,CAAC;AAE/E;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,GAAG,MAAM,EAAE,CAwDtG;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC7B,QAAQ,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAwB,GAClD,MAAM,EAAE,CAkBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,GAAE,MAAoB,EAC3B,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,GACxC,IAAI,CAwCN"}
|
|
@@ -5,75 +5,105 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { execSync } from 'child_process';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* the
|
|
10
|
-
*
|
|
8
|
+
* A process is treated as a Crewly backend only when its command line runs
|
|
9
|
+
* the backend entrypoint: the compiled `dist/backend/backend/src/index.js`
|
|
10
|
+
* (what `crewly start` spawns) or `backend/src/index.ts` (dev via tsx).
|
|
11
|
+
*/
|
|
12
|
+
export const CREWLY_BACKEND_COMMAND_PATTERN = /backend\/src\/index\.(js|ts)\b/;
|
|
13
|
+
/**
|
|
14
|
+
* Command that lists the pids LISTENING on a TCP port.
|
|
11
15
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
16
|
+
* `-sTCP:LISTEN` matters: a plain `lsof -ti :<port>` also returns every
|
|
17
|
+
* client connected to the port (browsers, agents, curl), which must never be
|
|
18
|
+
* signalled.
|
|
19
|
+
*
|
|
20
|
+
* @param port - TCP port
|
|
21
|
+
* @returns Shell command
|
|
22
|
+
*/
|
|
23
|
+
export function listListenersCommand(port) {
|
|
24
|
+
return `lsof -nP -ti tcp:${port} -sTCP:LISTEN`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Replace a stale Crewly backend that still holds THIS start's port, and
|
|
28
|
+
* nothing else.
|
|
29
|
+
*
|
|
30
|
+
* `crewly start` calls this only after the health check on `port` failed, so
|
|
31
|
+
* a listener on `port` is a dead or wedged instance of this same Crewly. Scope:
|
|
32
|
+
* - only processes LISTENING on `port`, never clients connected to it;
|
|
33
|
+
* - only if the listener's command line is a Crewly backend
|
|
34
|
+
* ({@link CREWLY_BACKEND_COMMAND_PATTERN}). Anything else on the port is
|
|
35
|
+
* reported and left alone;
|
|
36
|
+
* - SIGTERM first, SIGKILL only for stragglers after a short grace period.
|
|
37
|
+
*
|
|
38
|
+
* Crewly backends of other projects run on other ports and are never touched.
|
|
39
|
+
* An earlier version also SIGKILLed every process on the machine matching
|
|
40
|
+
* `dist/backend/backend/src/index.js`, which took down every other project's
|
|
41
|
+
* backend and its agents on each `crewly start`. That sweep is gone.
|
|
42
|
+
*
|
|
43
|
+
* Orphaned test runners are still cleaned up ({@link killOrphanedTestProcesses}).
|
|
44
|
+
*
|
|
45
|
+
* @param port - The port this `crewly start` will bind
|
|
46
|
+
* @param logFn - Logging function for status messages
|
|
47
|
+
* @returns The pids that were signalled
|
|
14
48
|
*/
|
|
15
49
|
export function killZombieProcesses(port, logFn = console.log) {
|
|
16
50
|
const myPid = process.pid;
|
|
17
|
-
|
|
51
|
+
const signalled = [];
|
|
52
|
+
let listeners = [];
|
|
18
53
|
try {
|
|
19
|
-
|
|
54
|
+
listeners = execSync(listListenersCommand(port), { encoding: 'utf8', timeout: 5000 })
|
|
20
55
|
.trim()
|
|
21
56
|
.split('\n')
|
|
22
|
-
.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
57
|
+
.map((p) => parseInt(p, 10))
|
|
58
|
+
.filter((pid) => !isNaN(pid) && pid !== myPid);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// lsof exits 1 when nothing listens on the port: nothing to replace
|
|
62
|
+
}
|
|
63
|
+
const stale = [];
|
|
64
|
+
for (const pid of listeners) {
|
|
65
|
+
let command = '';
|
|
66
|
+
try {
|
|
67
|
+
command = execSync(`ps -o command= -p ${pid}`, { encoding: 'utf8', timeout: 2000 }).trim();
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
continue; // already gone
|
|
71
|
+
}
|
|
72
|
+
if (CREWLY_BACKEND_COMMAND_PATTERN.test(command)) {
|
|
73
|
+
stale.push(pid);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
logFn(`Port ${port} is held by pid ${pid} (${command.slice(0, 80)}), which is not a Crewly backend; leaving it alone.`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (stale.length > 0) {
|
|
80
|
+
logFn(`Replacing ${stale.length} stale Crewly backend(s) on port ${port} (pid ${stale.join(', ')})...`);
|
|
81
|
+
for (const pid of stale) {
|
|
34
82
|
try {
|
|
35
|
-
|
|
83
|
+
process.kill(pid, 'SIGTERM');
|
|
84
|
+
signalled.push(pid);
|
|
36
85
|
}
|
|
37
|
-
catch {
|
|
38
|
-
|
|
39
|
-
try {
|
|
40
|
-
process.kill(parseInt(pid), 'SIGKILL');
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// Already dead
|
|
44
|
-
}
|
|
86
|
+
catch {
|
|
87
|
+
// Already dead
|
|
45
88
|
}
|
|
46
89
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
.filter(pid => !isNaN(pid) && pid !== myPid);
|
|
59
|
-
if (stalePids.length > 0) {
|
|
60
|
-
logFn(`Found ${stalePids.length} stale backend process(es), killing...`);
|
|
61
|
-
for (const pid of stalePids) {
|
|
62
|
-
try {
|
|
63
|
-
process.kill(pid, 'SIGKILL');
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
// Already dead
|
|
67
|
-
}
|
|
68
|
-
}
|
|
90
|
+
// Give SIGTERM a moment, then SIGKILL stragglers
|
|
91
|
+
try {
|
|
92
|
+
execSync('sleep 1', { timeout: 3000 });
|
|
93
|
+
}
|
|
94
|
+
catch { /* ignore */ }
|
|
95
|
+
for (const pid of stale) {
|
|
96
|
+
try {
|
|
97
|
+
process.kill(pid, 'SIGKILL');
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Already dead
|
|
69
101
|
}
|
|
70
102
|
}
|
|
71
103
|
}
|
|
72
|
-
catch {
|
|
73
|
-
// No stale processes found
|
|
74
|
-
}
|
|
75
104
|
// Kill orphaned vitest/test runner processes from previous agent sessions
|
|
76
105
|
killOrphanedTestProcesses(myPid, logFn);
|
|
106
|
+
return signalled;
|
|
77
107
|
}
|
|
78
108
|
/**
|
|
79
109
|
* Whether a parent pid means "the real parent is gone": pid 1, or a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-cleanup.js","sourceRoot":"","sources":["../../../../../cli/src/utils/process-cleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"process-cleanup.js","sourceRoot":"","sources":["../../../../../cli/src/utils/process-cleanup.ts"],"names":[],"mappings":"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"}
|