crewly 1.12.1 → 1.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/skills/_common/complete-body-shape.test.sh +113 -0
- package/config/skills/_common/no-dangling-symlinks.test.sh +63 -0
- package/config/skills/_common/task-pool-body-shape.test.sh +471 -0
- package/config/skills/agent/core/accept-task/execute.sh +30 -5
- package/config/skills/agent/core/block-task/execute.sh +59 -6
- package/config/skills/agent/core/complete-task/SKILL.md +37 -5
- package/config/skills/agent/core/complete-task/execute.sh +40 -9
- package/config/skills/agent/core/complete-task/execute.test.sh +213 -0
- package/config/skills/agent/core/create-task/SKILL.md +33 -0
- package/config/skills/agent/core/create-task/execute.sh +82 -23
- package/config/skills/agent/core/delegate-task/execute.sh +46 -0
- package/config/skills/agent/core/get-team-norms/SKILL.md +1 -1
- package/config/skills/agent/core/get-team-norms/execute.sh +73 -2
- package/config/skills/agent/core/handoff-task/execute.sh +8 -1
- package/config/skills/agent/core/report-status/SKILL.md +26 -0
- package/config/skills/agent/core/report-status/execute.sh +40 -5
- package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
- package/config/skills/orchestrator/delegate-task/execute.sh +45 -11
- package/config/skills/orchestrator/delegate-task/execute.test.sh +153 -1
- package/config/skills/team-leader/aggregate-results/SKILL.md +1 -1
- package/config/skills/team-leader/decompose-goal/execute.sh +11 -16
- package/config/skills/team-leader/delegate-task/SKILL.md +14 -1
- package/config/skills/team-leader/delegate-task/execute.sh +132 -43
- package/config/skills/team-leader/delegate-task/execute.test.sh +180 -27
- package/config/vitest-exclude.constants.ts +56 -0
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +29 -7
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +18 -3
- package/dist/backend/backend/src/controllers/monitoring/terminal.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 +18 -15
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +6 -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 +19 -10
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +20 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/scripts/stamp-build.d.ts +25 -0
- package/dist/backend/backend/src/scripts/stamp-build.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/stamp-build.js +48 -0
- package/dist/backend/backend/src/scripts/stamp-build.js.map +1 -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 +33 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +78 -2
- 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 +248 -44
- 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 +51 -3
- 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 +31 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +5 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +7 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +15 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +40 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.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 +26 -0
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +19 -3
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +28 -3
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +65 -8
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +214 -4
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +330 -48
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +13 -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 +84 -5
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +14 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +77 -3
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
- 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 +268 -36
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +2 -2
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +39 -2
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +3 -0
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +21 -10
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +1 -1
- 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/work-item.types.d.ts +181 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +104 -17
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/build-provenance.d.ts +150 -0
- package/dist/backend/backend/src/utils/build-provenance.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/build-provenance.js +211 -0
- package/dist/backend/backend/src/utils/build-provenance.js.map +1 -0
- package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/chat.gateway.js +7 -1
- package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
- package/dist/backend/build-info.json +4 -0
- package/dist/backend/config/vitest-exclude.constants.d.ts +53 -0
- package/dist/backend/config/vitest-exclude.constants.d.ts.map +1 -0
- package/dist/backend/config/vitest-exclude.constants.js +55 -0
- package/dist/backend/config/vitest-exclude.constants.js.map +1 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts +538 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.js +802 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts +240 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js +524 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +629 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +4548 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts +118 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.js +304 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts +196 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js +504 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +97 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js +334 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +47 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js +112 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts +323 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.js +1056 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +198 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +816 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +155 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +272 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +91 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +120 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +536 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js +282 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts +100 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.js +149 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +130 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +758 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +508 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts +113 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js +161 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +156 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +641 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +295 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +1166 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts +71 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js +174 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +435 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js +1331 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts +33 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js +70 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts +100 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +296 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts +35 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js +50 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts +28 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js +47 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts +28 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js +55 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts +44 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js +120 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts +46 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js +44 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +28 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js +46 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts +29 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +50 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +103 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +383 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts +34 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +96 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts +106 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts +35 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js +50 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +91 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js +411 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts +62 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +199 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts +102 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js +229 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts +54 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js +149 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts +32 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js +69 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts +81 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js +135 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +737 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +1213 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/config.d.ts +100 -0
- package/dist/cli/backend/src/services/chat-v2/config.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/config.js +174 -0
- package/dist/cli/backend/src/services/chat-v2/config.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts +118 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js +171 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +188 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +317 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts +119 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js +551 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +208 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +405 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/types.d.ts +341 -0
- package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/types.js +61 -0
- package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -0
- package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts +5 -0
- package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-client.service.js +7 -0
- package/dist/cli/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts +37 -0
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -0
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js +63 -0
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts +335 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js +421 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
- package/dist/cli/backend/src/services/mcp-client.d.ts +233 -0
- package/dist/cli/backend/src/services/mcp-client.d.ts.map +1 -0
- package/dist/cli/backend/src/services/mcp-client.js +302 -0
- package/dist/cli/backend/src/services/mcp-client.js.map +1 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.d.ts +168 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.js +365 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.d.ts +197 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.js +369 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.d.ts +77 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.js +171 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.d.ts +232 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.js +417 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +84 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +136 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +358 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +755 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +269 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js +391 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js +284 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js +48 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
- package/dist/cli/backend/src/services/observability/observability-db.d.ts +84 -0
- package/dist/cli/backend/src/services/observability/observability-db.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/observability-db.js +165 -0
- package/dist/cli/backend/src/services/observability/observability-db.js.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts +124 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.js +256 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.js.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts +80 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.js +16 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.js.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +142 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +265 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts +231 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js +353 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts +157 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js +483 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/index.d.ts +16 -0
- package/dist/cli/backend/src/services/orchestrator/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/index.js +16 -0
- package/dist/cli/backend/src/services/orchestrator/index.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +117 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +300 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts +114 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js +195 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +94 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +279 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts +192 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js +395 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts +201 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js +396 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts +17 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js +30 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts +249 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js +569 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/index.d.ts +47 -0
- package/dist/cli/backend/src/services/session/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/index.js +50 -0
- package/dist/cli/backend/src/services/session/index.js.map +1 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.d.ts +163 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.js +362 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/index.d.ts +11 -0
- package/dist/cli/backend/src/services/session/pty/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/index.js +11 -0
- package/dist/cli/backend/src/services/session/pty/index.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +445 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +804 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +252 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.js +611 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +275 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +403 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js +214 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.d.ts +127 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.js +226 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +390 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.js +19 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-command-helper.d.ts +350 -0
- package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-command-helper.js +810 -0
- package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts +307 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.js +742 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.d.ts +231 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.js +407 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.js.map +1 -0
- package/dist/cli/backend/src/services/settings/role.service.d.ts +277 -0
- package/dist/cli/backend/src/services/settings/role.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/settings/role.service.js +728 -0
- package/dist/cli/backend/src/services/settings/role.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts +152 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.js +354 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.d.ts +114 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.js +331 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +499 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +1928 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +315 -0
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack.service.js +1094 -0
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -0
- package/dist/cli/backend/src/services/sop/sop.service.d.ts +364 -0
- package/dist/cli/backend/src/services/sop/sop.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/sop/sop.service.js +734 -0
- package/dist/cli/backend/src/services/sop/sop.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
- 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 +268 -36
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +178 -0
- package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/escalation-router.service.js +692 -0
- package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts +200 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.js +482 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts +117 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.js +321 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +610 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +1529 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts +78 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.js +108 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request.service.d.ts +295 -0
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request.service.js +534 -0
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +340 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.js +1113 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -0
- package/dist/cli/backend/src/types/cross-machine.types.d.ts +103 -0
- package/dist/cli/backend/src/types/cross-machine.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/cross-machine.types.js +47 -0
- package/dist/cli/backend/src/types/cross-machine.types.js.map +1 -0
- package/dist/cli/backend/src/types/intent-task.types.d.ts +402 -0
- package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/intent-task.types.js +403 -0
- package/dist/cli/backend/src/types/intent-task.types.js.map +1 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.d.ts +531 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.js +110 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/index.d.ts +30 -0
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/index.js +22 -0
- package/dist/cli/backend/src/types/v2/index.js.map +1 -0
- package/dist/cli/backend/src/types/v2/key-result.types.d.ts +279 -0
- package/dist/cli/backend/src/types/v2/key-result.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/key-result.types.js +264 -0
- package/dist/cli/backend/src/types/v2/key-result.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/mission.types.d.ts +661 -0
- package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/mission.types.js +713 -0
- package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +204 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.js +121 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts +192 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/request.types.js +179 -0
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +181 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +104 -17
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/workspace.types.d.ts +157 -0
- package/dist/cli/backend/src/types/v2/workspace.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/workspace.types.js +173 -0
- package/dist/cli/backend/src/types/v2/workspace.types.js.map +1 -0
- package/dist/cli/backend/src/utils/async.utils.d.ts +68 -0
- package/dist/cli/backend/src/utils/async.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/async.utils.js +80 -0
- package/dist/cli/backend/src/utils/async.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/native-binding.utils.d.ts +128 -0
- package/dist/cli/backend/src/utils/native-binding.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/native-binding.utils.js +206 -0
- package/dist/cli/backend/src/utils/native-binding.utils.js.map +1 -0
- package/dist/cli/backend/src/websocket/chat.gateway.d.ts +142 -0
- package/dist/cli/backend/src/websocket/chat.gateway.d.ts.map +1 -0
- package/dist/cli/backend/src/websocket/chat.gateway.js +327 -0
- package/dist/cli/backend/src/websocket/chat.gateway.js.map +1 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.d.ts +341 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.js +933 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -0
- package/dist/cli/config/vitest-exclude.constants.d.ts +53 -0
- package/dist/cli/config/vitest-exclude.constants.d.ts.map +1 -0
- package/dist/cli/config/vitest-exclude.constants.js +55 -0
- package/dist/cli/config/vitest-exclude.constants.js.map +1 -0
- package/package.json +2 -2
- package/packages/crewly-agent/src/cli.ts +16 -6
- package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +311 -33
- package/packages/crewly-agent/src/runtime/agent-runner.service.ts +221 -12
- package/packages/crewly-agent/src/runtime/tool-registry.test.ts +19 -0
- package/packages/crewly-agent/src/runtime/tool-registry.ts +4 -1
- package/packages/crewly-agent/src/runtime/types.ts +65 -5
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Status Service
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities to check the status of the orchestrator.
|
|
5
|
+
* Used by Chat and Slack services to provide appropriate feedback
|
|
6
|
+
* when the orchestrator is not running.
|
|
7
|
+
*
|
|
8
|
+
* @module services/orchestrator/orchestrator-status.service
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Result of an orchestrator status check
|
|
12
|
+
*/
|
|
13
|
+
export interface OrchestratorStatusResult {
|
|
14
|
+
/** Whether the orchestrator is active and ready to receive messages */
|
|
15
|
+
isActive: boolean;
|
|
16
|
+
/** The current agent status of the orchestrator */
|
|
17
|
+
agentStatus: string | null;
|
|
18
|
+
/** Human-readable status message */
|
|
19
|
+
message: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if the orchestrator is currently active and ready to receive messages.
|
|
23
|
+
*
|
|
24
|
+
* @returns Promise resolving to true if orchestrator is active
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* if (await isOrchestratorActive()) {
|
|
29
|
+
* // Safe to send message to orchestrator
|
|
30
|
+
* } else {
|
|
31
|
+
* // Show user-friendly offline message
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function isOrchestratorActive(): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Get detailed orchestrator status information.
|
|
38
|
+
*
|
|
39
|
+
* Uses the storageService.getOrchestratorStatus() method which reads the
|
|
40
|
+
* orchestrator data directly from storage (not from the teams array).
|
|
41
|
+
*
|
|
42
|
+
* @returns Promise resolving to status details including active state and message
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const status = await getOrchestratorStatus();
|
|
47
|
+
* if (!status.isActive) {
|
|
48
|
+
* showError(status.message);
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function getOrchestratorStatus(): Promise<OrchestratorStatusResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Check if a specific agent is currently active.
|
|
55
|
+
*
|
|
56
|
+
* Two liveness paths, checked in order:
|
|
57
|
+
* 1. **PTY path (unchanged)** — the agent's PTY session exists AND its child
|
|
58
|
+
* process (the AI runtime) is alive. This is the ground truth for
|
|
59
|
+
* `claude-code`, `gemini-cli` and `codex-cli` runtimes.
|
|
60
|
+
* 2. **In-process fallback** — in-process Crewly Agent runtimes have no PTY
|
|
61
|
+
* session at all, so `sessionExists()` always returns `false` for them.
|
|
62
|
+
* When the in-process registry reports a ready runtime for this session
|
|
63
|
+
* AND the session's configured runtime type is `crewly-agent`, the agent
|
|
64
|
+
* is alive. This mirrors the B0 hot-fix fallback in
|
|
65
|
+
* {@link getOrchestratorStatus}.
|
|
66
|
+
*
|
|
67
|
+
* The fallback is deliberately narrow: it requires BOTH a ready registry
|
|
68
|
+
* entry and a `crewly-agent` runtime type. A PTY-less `claude-code` agent
|
|
69
|
+
* still reports inactive — widening the gate would let dead agents claim
|
|
70
|
+
* work from the task pool, which is worse than the bug this fixes.
|
|
71
|
+
*
|
|
72
|
+
* The registry probe runs before the storage lookup because it is a
|
|
73
|
+
* synchronous map hit; when it misses (the common case for a genuinely dead
|
|
74
|
+
* PTY agent) no storage I/O happens at all.
|
|
75
|
+
*
|
|
76
|
+
* @param sessionName - The agent's session name to check
|
|
77
|
+
* @returns Promise resolving to true if the agent's runtime is alive
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* // crewly-orc runs in-process with no PTY session
|
|
82
|
+
* await isAgentActive('crewly-orc'); // true when its runtime is registered and ready
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function isAgentActive(sessionName: string): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Get a user-friendly message for when the orchestrator is offline.
|
|
88
|
+
* Useful for Slack and Chat responses.
|
|
89
|
+
*
|
|
90
|
+
* @param includeUrl - Whether to include the dashboard URL in the message
|
|
91
|
+
* @returns A user-friendly offline message
|
|
92
|
+
*/
|
|
93
|
+
export declare function getOrchestratorOfflineMessage(includeUrl?: boolean): string;
|
|
94
|
+
//# sourceMappingURL=orchestrator-status.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-status.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-status.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAqJ/E;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBzE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,UAAO,GAAG,MAAM,CAMvE"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Status Service
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities to check the status of the orchestrator.
|
|
5
|
+
* Used by Chat and Slack services to provide appropriate feedback
|
|
6
|
+
* when the orchestrator is not running.
|
|
7
|
+
*
|
|
8
|
+
* @module services/orchestrator/orchestrator-status.service
|
|
9
|
+
*/
|
|
10
|
+
import { StorageService } from '../core/storage.service.js';
|
|
11
|
+
import { CREWLY_CONSTANTS, WEB_CONSTANTS } from '../../../../config/index.js';
|
|
12
|
+
import { getSessionBackendSync } from '../session/index.js';
|
|
13
|
+
import { isInProcessRuntimeActive } from '../agent/crewly-agent/in-process-runtime-registry.js';
|
|
14
|
+
import { RUNTIME_TYPES } from '../../constants.js';
|
|
15
|
+
/** Dashboard URL for user-facing messages */
|
|
16
|
+
const DASHBOARD_URL = `http://localhost:${WEB_CONSTANTS.PORTS.FRONTEND}`;
|
|
17
|
+
/**
|
|
18
|
+
* Check if the orchestrator is currently active and ready to receive messages.
|
|
19
|
+
*
|
|
20
|
+
* @returns Promise resolving to true if orchestrator is active
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* if (await isOrchestratorActive()) {
|
|
25
|
+
* // Safe to send message to orchestrator
|
|
26
|
+
* } else {
|
|
27
|
+
* // Show user-friendly offline message
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export async function isOrchestratorActive() {
|
|
32
|
+
const status = await getOrchestratorStatus();
|
|
33
|
+
return status.isActive;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get detailed orchestrator status information.
|
|
37
|
+
*
|
|
38
|
+
* Uses the storageService.getOrchestratorStatus() method which reads the
|
|
39
|
+
* orchestrator data directly from storage (not from the teams array).
|
|
40
|
+
*
|
|
41
|
+
* @returns Promise resolving to status details including active state and message
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const status = await getOrchestratorStatus();
|
|
46
|
+
* if (!status.isActive) {
|
|
47
|
+
* showError(status.message);
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export async function getOrchestratorStatus() {
|
|
52
|
+
try {
|
|
53
|
+
const storageService = StorageService.getInstance();
|
|
54
|
+
// Use getOrchestratorStatus which reads the orchestrator data directly
|
|
55
|
+
// The orchestrator is stored separately from the teams array
|
|
56
|
+
const orchestratorStatus = await storageService.getOrchestratorStatus();
|
|
57
|
+
// Also check if the PTY session exists - this provides a real-time view
|
|
58
|
+
// of whether the orchestrator is actually running.
|
|
59
|
+
// Use the well-known constant as fallback when sessionName isn't stored,
|
|
60
|
+
// aligning with how the teams controller checks session existence.
|
|
61
|
+
let sessionExists = false;
|
|
62
|
+
let sessionCheckPerformed = false;
|
|
63
|
+
const sessionName = orchestratorStatus?.sessionName || CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME;
|
|
64
|
+
try {
|
|
65
|
+
const sessionBackend = getSessionBackendSync();
|
|
66
|
+
if (sessionBackend && sessionName) {
|
|
67
|
+
sessionExists = sessionBackend.sessionExists(sessionName);
|
|
68
|
+
sessionCheckPerformed = true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Ignore session check errors - fall back to storage-based status
|
|
73
|
+
}
|
|
74
|
+
// Runtime-aware fallback (B0 hot-fix):
|
|
75
|
+
// The PTY-based `sessionExists()` returns false for in-process Crewly
|
|
76
|
+
// Agent runtimes because they have no PTY session. Treat the session as
|
|
77
|
+
// alive when the runtime type is `crewly-agent` AND the in-process
|
|
78
|
+
// registry confirms a ready runtime is registered. The PTY path is
|
|
79
|
+
// untouched for `claude-code` / other runtimes.
|
|
80
|
+
if (!sessionExists
|
|
81
|
+
&& orchestratorStatus?.runtimeType === RUNTIME_TYPES.CREWLY_AGENT
|
|
82
|
+
&& sessionName
|
|
83
|
+
&& isInProcessRuntimeActive(sessionName)) {
|
|
84
|
+
sessionExists = true;
|
|
85
|
+
sessionCheckPerformed = true;
|
|
86
|
+
}
|
|
87
|
+
if (!orchestratorStatus) {
|
|
88
|
+
return {
|
|
89
|
+
isActive: false,
|
|
90
|
+
agentStatus: null,
|
|
91
|
+
message: 'Orchestrator not configured. Please set up the orchestrator from the Dashboard.',
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const agentStatus = orchestratorStatus.agentStatus || CREWLY_CONSTANTS.AGENT_STATUSES.INACTIVE;
|
|
95
|
+
// Orchestrator is active when fully registered via MCP AND the session is
|
|
96
|
+
// confirmed alive (or the session backend was unavailable to check).
|
|
97
|
+
// If the session backend confirmed the session is dead, treat as not active.
|
|
98
|
+
const isRegisteredActive = agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE
|
|
99
|
+
&& (!sessionCheckPerformed || sessionExists);
|
|
100
|
+
// Also treat as active when the PTY session exists and the runtime is running
|
|
101
|
+
// ("started" means Claude Code is running). This aligns with the teams controller
|
|
102
|
+
// which uses session existence as ground truth for status.
|
|
103
|
+
const isSessionActive = sessionExists && agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.STARTED;
|
|
104
|
+
if (isRegisteredActive || isSessionActive) {
|
|
105
|
+
return {
|
|
106
|
+
isActive: true,
|
|
107
|
+
agentStatus: CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE,
|
|
108
|
+
message: 'Orchestrator is active and ready.',
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// Proactive cleanup: if the session backend confirmed the session is dead
|
|
112
|
+
// but stored status says active, update storage to prevent repeated stale checks
|
|
113
|
+
// from other callers (QueueProcessor, dashboard).
|
|
114
|
+
if (sessionCheckPerformed && !sessionExists && agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE) {
|
|
115
|
+
try {
|
|
116
|
+
const storageServiceForCleanup = StorageService.getInstance();
|
|
117
|
+
await storageServiceForCleanup.updateAgentStatus(sessionName, CREWLY_CONSTANTS.AGENT_STATUSES.INACTIVE);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Best-effort cleanup — don't let it break the status check
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Provide context-appropriate message based on status
|
|
124
|
+
// Note: STARTED without a live session falls here (session died or config is stale)
|
|
125
|
+
if (agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVATING ||
|
|
126
|
+
agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.STARTING ||
|
|
127
|
+
agentStatus === CREWLY_CONSTANTS.AGENT_STATUSES.STARTED) {
|
|
128
|
+
return {
|
|
129
|
+
isActive: false,
|
|
130
|
+
agentStatus,
|
|
131
|
+
message: 'Orchestrator is starting up. Please wait a moment and try again.',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Self-healing: if the session is alive AND has a running child process
|
|
135
|
+
// (e.g. claude), but status says inactive, restore to active.
|
|
136
|
+
// This handles cases where the status got stale due to a transient false
|
|
137
|
+
// positive in exit detection while the runtime was actually still running.
|
|
138
|
+
if (sessionExists && sessionCheckPerformed) {
|
|
139
|
+
let childProcessAlive = false;
|
|
140
|
+
try {
|
|
141
|
+
const sessionBackend = getSessionBackendSync();
|
|
142
|
+
childProcessAlive = !!sessionBackend?.isChildProcessAlive?.(sessionName);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Ignore check errors
|
|
146
|
+
}
|
|
147
|
+
if (childProcessAlive) {
|
|
148
|
+
// Best-effort: persist the recovered status but return active regardless
|
|
149
|
+
try {
|
|
150
|
+
const storageServiceForRecovery = StorageService.getInstance();
|
|
151
|
+
await storageServiceForRecovery.updateAgentStatus(sessionName, CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE);
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Best-effort — don't let persist failure block recovery
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
isActive: true,
|
|
158
|
+
agentStatus: CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE,
|
|
159
|
+
message: 'Orchestrator is active and ready (status recovered).',
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// If session exists but status is not active/started, it may be initializing
|
|
164
|
+
if (sessionExists) {
|
|
165
|
+
return {
|
|
166
|
+
isActive: false,
|
|
167
|
+
agentStatus,
|
|
168
|
+
message: 'Orchestrator is starting up. Please wait a moment and try again.',
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
isActive: false,
|
|
173
|
+
agentStatus,
|
|
174
|
+
message: 'Orchestrator is not running. Please start the orchestrator from the Dashboard.',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
return {
|
|
179
|
+
isActive: false,
|
|
180
|
+
agentStatus: null,
|
|
181
|
+
message: `Unable to check orchestrator status: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Resolve the configured runtime type for a session name.
|
|
187
|
+
*
|
|
188
|
+
* Looks the session up as a team member first, then falls back to the
|
|
189
|
+
* orchestrator record (the orchestrator lives in its own `orchestrator.json`
|
|
190
|
+
* and is not part of any team's `members` array).
|
|
191
|
+
*
|
|
192
|
+
* Only called on the in-process fallback path in {@link isAgentActive}, so
|
|
193
|
+
* the extra storage reads never touch the hot PTY path.
|
|
194
|
+
*
|
|
195
|
+
* @param sessionName - The session name to resolve a runtime type for
|
|
196
|
+
* @returns The configured runtime type, or `undefined` when the session is unknown
|
|
197
|
+
*/
|
|
198
|
+
async function resolveRuntimeTypeForSession(sessionName) {
|
|
199
|
+
const storageService = StorageService.getInstance();
|
|
200
|
+
const found = await storageService.findMemberBySessionName(sessionName);
|
|
201
|
+
if (found?.member?.runtimeType) {
|
|
202
|
+
return found.member.runtimeType;
|
|
203
|
+
}
|
|
204
|
+
const orchestrator = await storageService.getOrchestratorStatus();
|
|
205
|
+
const orchestratorSession = orchestrator?.sessionName || CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME;
|
|
206
|
+
if (orchestrator && orchestratorSession === sessionName) {
|
|
207
|
+
return orchestrator.runtimeType;
|
|
208
|
+
}
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Check if a specific agent is currently active.
|
|
213
|
+
*
|
|
214
|
+
* Two liveness paths, checked in order:
|
|
215
|
+
* 1. **PTY path (unchanged)** — the agent's PTY session exists AND its child
|
|
216
|
+
* process (the AI runtime) is alive. This is the ground truth for
|
|
217
|
+
* `claude-code`, `gemini-cli` and `codex-cli` runtimes.
|
|
218
|
+
* 2. **In-process fallback** — in-process Crewly Agent runtimes have no PTY
|
|
219
|
+
* session at all, so `sessionExists()` always returns `false` for them.
|
|
220
|
+
* When the in-process registry reports a ready runtime for this session
|
|
221
|
+
* AND the session's configured runtime type is `crewly-agent`, the agent
|
|
222
|
+
* is alive. This mirrors the B0 hot-fix fallback in
|
|
223
|
+
* {@link getOrchestratorStatus}.
|
|
224
|
+
*
|
|
225
|
+
* The fallback is deliberately narrow: it requires BOTH a ready registry
|
|
226
|
+
* entry and a `crewly-agent` runtime type. A PTY-less `claude-code` agent
|
|
227
|
+
* still reports inactive — widening the gate would let dead agents claim
|
|
228
|
+
* work from the task pool, which is worse than the bug this fixes.
|
|
229
|
+
*
|
|
230
|
+
* The registry probe runs before the storage lookup because it is a
|
|
231
|
+
* synchronous map hit; when it misses (the common case for a genuinely dead
|
|
232
|
+
* PTY agent) no storage I/O happens at all.
|
|
233
|
+
*
|
|
234
|
+
* @param sessionName - The agent's session name to check
|
|
235
|
+
* @returns Promise resolving to true if the agent's runtime is alive
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* // crewly-orc runs in-process with no PTY session
|
|
240
|
+
* await isAgentActive('crewly-orc'); // true when its runtime is registered and ready
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
export async function isAgentActive(sessionName) {
|
|
244
|
+
try {
|
|
245
|
+
const sessionBackend = getSessionBackendSync();
|
|
246
|
+
if (sessionBackend && sessionBackend.sessionExists(sessionName)) {
|
|
247
|
+
// Session exists — check if child process (the AI runtime) is alive
|
|
248
|
+
if (sessionBackend.isChildProcessAlive?.(sessionName)) {
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Runtime-aware fallback: in-process Crewly Agent runtimes have no PTY
|
|
253
|
+
// session. Cheap synchronous registry probe first, storage lookup only
|
|
254
|
+
// if it hits.
|
|
255
|
+
if (!isInProcessRuntimeActive(sessionName)) {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
const runtimeType = await resolveRuntimeTypeForSession(sessionName);
|
|
259
|
+
return runtimeType === RUNTIME_TYPES.CREWLY_AGENT;
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get a user-friendly message for when the orchestrator is offline.
|
|
267
|
+
* Useful for Slack and Chat responses.
|
|
268
|
+
*
|
|
269
|
+
* @param includeUrl - Whether to include the dashboard URL in the message
|
|
270
|
+
* @returns A user-friendly offline message
|
|
271
|
+
*/
|
|
272
|
+
export function getOrchestratorOfflineMessage(includeUrl = true) {
|
|
273
|
+
const baseMessage = 'The orchestrator is currently offline.';
|
|
274
|
+
if (includeUrl) {
|
|
275
|
+
return `${baseMessage} Please start it from the Crewly dashboard at ${DASHBOARD_URL}`;
|
|
276
|
+
}
|
|
277
|
+
return `${baseMessage} Please start it from the Crewly dashboard.`;
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=orchestrator-status.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-status.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-status.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe Restart Service
|
|
3
|
+
*
|
|
4
|
+
* Manages graceful shutdown and restart of Crewly,
|
|
5
|
+
* preserving state and enabling seamless recovery.
|
|
6
|
+
*
|
|
7
|
+
* @module services/orchestrator/safe-restart
|
|
8
|
+
*/
|
|
9
|
+
import { ResumeInstructions } from '../../types/orchestrator-state.types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Restart configuration
|
|
12
|
+
*/
|
|
13
|
+
export interface RestartConfig {
|
|
14
|
+
/** Reason for restart */
|
|
15
|
+
reason: string;
|
|
16
|
+
/** Delay before restart in ms */
|
|
17
|
+
delayMs?: number;
|
|
18
|
+
/** Skip state save (emergency restart) */
|
|
19
|
+
skipStateSave?: boolean;
|
|
20
|
+
/** Command to run after restart */
|
|
21
|
+
postRestartCommand?: string;
|
|
22
|
+
/** Notify via Slack */
|
|
23
|
+
notifySlack?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Restart status
|
|
27
|
+
*/
|
|
28
|
+
export interface RestartStatus {
|
|
29
|
+
/** Whether a restart is in progress */
|
|
30
|
+
isRestarting: boolean;
|
|
31
|
+
/** When restart was scheduled */
|
|
32
|
+
restartScheduledAt?: string;
|
|
33
|
+
/** Why restart was scheduled */
|
|
34
|
+
restartReason?: string;
|
|
35
|
+
/** Countdown until restart */
|
|
36
|
+
countdown?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* SafeRestartService class
|
|
40
|
+
*
|
|
41
|
+
* Handles graceful shutdown, state preservation, and process restart.
|
|
42
|
+
* Integrates with state persistence and Slack for notifications.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const service = getSafeRestartService();
|
|
47
|
+
*
|
|
48
|
+
* // Handle startup and resume
|
|
49
|
+
* const instructions = await service.handleStartup();
|
|
50
|
+
* if (instructions) {
|
|
51
|
+
* // Resume tasks and conversations
|
|
52
|
+
* }
|
|
53
|
+
*
|
|
54
|
+
* // Schedule restart for self-improvement
|
|
55
|
+
* service.scheduleRestart({
|
|
56
|
+
* reason: 'Applying code changes',
|
|
57
|
+
* delayMs: 5000,
|
|
58
|
+
* notifySlack: true,
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class SafeRestartService {
|
|
63
|
+
private isRestartingFlag;
|
|
64
|
+
private restartTimer;
|
|
65
|
+
private scheduledRestartReason;
|
|
66
|
+
private scheduledRestartTime;
|
|
67
|
+
private shutdownCallbacks;
|
|
68
|
+
private startupCallbacks;
|
|
69
|
+
private signalHandlersRegistered;
|
|
70
|
+
private logger;
|
|
71
|
+
/**
|
|
72
|
+
* Create a new SafeRestartService
|
|
73
|
+
*
|
|
74
|
+
* Note: Does not automatically register signal handlers.
|
|
75
|
+
* Call registerProcessHandlers() explicitly to enable signal handling.
|
|
76
|
+
*/
|
|
77
|
+
constructor();
|
|
78
|
+
/**
|
|
79
|
+
* Register process signal handlers
|
|
80
|
+
*
|
|
81
|
+
* Sets up handlers for SIGTERM, SIGINT, and error events.
|
|
82
|
+
* Should be called during application initialization.
|
|
83
|
+
*/
|
|
84
|
+
registerProcessHandlers(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Register a callback to run before shutdown
|
|
87
|
+
*
|
|
88
|
+
* @param callback - Async function to run during shutdown
|
|
89
|
+
*/
|
|
90
|
+
onShutdown(callback: () => Promise<void>): void;
|
|
91
|
+
/**
|
|
92
|
+
* Register a callback to run after startup
|
|
93
|
+
*
|
|
94
|
+
* @param callback - Async function to run with resume instructions
|
|
95
|
+
*/
|
|
96
|
+
onStartup(callback: (instructions: ResumeInstructions) => Promise<void>): void;
|
|
97
|
+
/**
|
|
98
|
+
* Handle application startup
|
|
99
|
+
*
|
|
100
|
+
* Initializes state persistence, loads previous state, and runs
|
|
101
|
+
* startup callbacks with resume instructions.
|
|
102
|
+
*
|
|
103
|
+
* @returns Resume instructions if restarting, null for fresh start
|
|
104
|
+
*/
|
|
105
|
+
handleStartup(): Promise<ResumeInstructions | null>;
|
|
106
|
+
/**
|
|
107
|
+
* Initiate graceful shutdown
|
|
108
|
+
*
|
|
109
|
+
* Runs all shutdown callbacks and saves state before shutdown.
|
|
110
|
+
*
|
|
111
|
+
* @param reason - Reason for shutdown
|
|
112
|
+
*/
|
|
113
|
+
gracefulShutdown(reason: string): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Emergency shutdown (minimal cleanup)
|
|
116
|
+
*
|
|
117
|
+
* Attempts to save state with minimal processing for error scenarios.
|
|
118
|
+
*
|
|
119
|
+
* @param reason - Reason for emergency shutdown
|
|
120
|
+
*/
|
|
121
|
+
emergencyShutdown(reason: string): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Schedule a restart
|
|
124
|
+
*
|
|
125
|
+
* Schedules a restart after the specified delay.
|
|
126
|
+
*
|
|
127
|
+
* @param config - Restart configuration
|
|
128
|
+
*/
|
|
129
|
+
scheduleRestart(config: RestartConfig): void;
|
|
130
|
+
/**
|
|
131
|
+
* Cancel scheduled restart
|
|
132
|
+
*
|
|
133
|
+
* @returns True if a restart was cancelled, false if none scheduled
|
|
134
|
+
*/
|
|
135
|
+
cancelScheduledRestart(): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Execute restart
|
|
138
|
+
*
|
|
139
|
+
* @param config - Restart configuration
|
|
140
|
+
*/
|
|
141
|
+
private executeRestart;
|
|
142
|
+
/**
|
|
143
|
+
* Notify about scheduled restart
|
|
144
|
+
*
|
|
145
|
+
* @param reason - Restart reason
|
|
146
|
+
* @param delayMs - Delay in milliseconds
|
|
147
|
+
*/
|
|
148
|
+
private notifyRestartScheduled;
|
|
149
|
+
/**
|
|
150
|
+
* Get restart status
|
|
151
|
+
*
|
|
152
|
+
* @returns Current restart status
|
|
153
|
+
*/
|
|
154
|
+
getStatus(): RestartStatus;
|
|
155
|
+
/**
|
|
156
|
+
* Check if this is a restart (vs fresh start)
|
|
157
|
+
*
|
|
158
|
+
* @returns True if this process was started after a restart
|
|
159
|
+
*/
|
|
160
|
+
isRestart(): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Get restart reason (if restarted)
|
|
163
|
+
*
|
|
164
|
+
* @returns Restart reason or undefined for fresh start
|
|
165
|
+
*/
|
|
166
|
+
getRestartReason(): string | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* Check for and execute post-restart command
|
|
169
|
+
*
|
|
170
|
+
* Reads the restart marker file and executes any post-restart command.
|
|
171
|
+
*/
|
|
172
|
+
checkPostRestartCommand(): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Clear shutdown callbacks (for testing)
|
|
175
|
+
*/
|
|
176
|
+
clearShutdownCallbacks(): void;
|
|
177
|
+
/**
|
|
178
|
+
* Clear startup callbacks (for testing)
|
|
179
|
+
*/
|
|
180
|
+
clearStartupCallbacks(): void;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get singleton instance
|
|
184
|
+
*
|
|
185
|
+
* @returns SafeRestartService instance
|
|
186
|
+
*/
|
|
187
|
+
export declare function getSafeRestartService(): SafeRestartService;
|
|
188
|
+
/**
|
|
189
|
+
* Reset instance (for testing)
|
|
190
|
+
*/
|
|
191
|
+
export declare function resetSafeRestartService(): void;
|
|
192
|
+
//# sourceMappingURL=safe-restart.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-restart.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/safe-restart.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,gBAAgB,CAEjB;IACP,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,MAAM,CAAqF;IAEnG;;;;;OAKG;;IAKH;;;;;OAKG;IACH,uBAAuB,IAAI,IAAI;IA6B/B;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI/C;;;;OAIG;IACH,SAAS,CACP,QAAQ,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,GAC5D,IAAI;IAIP;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA4CzD;;;;;;OAMG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCrD;;;;;;OAMG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAkB5C;;;;OAIG;IACH,sBAAsB,IAAI,OAAO;IAYjC;;;;OAIG;YACW,cAAc;IAkC5B;;;;;OAKG;YACW,sBAAsB;IAoBpC;;;;OAIG;IACH,SAAS,IAAI,aAAa;IAiB1B;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC;;;;OAIG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9C;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAI9B;;OAEG;IACH,qBAAqB,IAAI,IAAI;CAG9B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C"}
|