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,483 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Improvement Startup Service
|
|
3
|
+
*
|
|
4
|
+
* Handles self-improvement continuation after process restart.
|
|
5
|
+
* This is the critical hook that makes self-improvement work
|
|
6
|
+
* with hot-reload / nodemon.
|
|
7
|
+
*
|
|
8
|
+
* @module services/orchestrator/improvement-startup
|
|
9
|
+
*/
|
|
10
|
+
import { spawn } from 'child_process';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
import * as fs from 'fs/promises';
|
|
13
|
+
import { getImprovementMarkerService, } from './improvement-marker.service.js';
|
|
14
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
15
|
+
/**
|
|
16
|
+
* Default validation checks
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_VALIDATIONS = [
|
|
19
|
+
{
|
|
20
|
+
name: 'build',
|
|
21
|
+
command: 'npm',
|
|
22
|
+
args: ['run', 'build'],
|
|
23
|
+
required: true,
|
|
24
|
+
timeoutMs: 120000,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'lint',
|
|
28
|
+
command: 'npm',
|
|
29
|
+
args: ['run', 'lint'],
|
|
30
|
+
required: true,
|
|
31
|
+
timeoutMs: 60000,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'test',
|
|
35
|
+
command: 'npm',
|
|
36
|
+
args: ['run', 'test'],
|
|
37
|
+
required: true,
|
|
38
|
+
timeoutMs: 300000,
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Maximum restart count before giving up
|
|
43
|
+
*/
|
|
44
|
+
const MAX_RESTART_COUNT = 3;
|
|
45
|
+
/**
|
|
46
|
+
* ImprovementStartupService class
|
|
47
|
+
*
|
|
48
|
+
* Runs at application startup to check for and handle pending
|
|
49
|
+
* self-improvements that were interrupted by hot-reload.
|
|
50
|
+
*/
|
|
51
|
+
export class ImprovementStartupService {
|
|
52
|
+
projectRoot;
|
|
53
|
+
logger = LoggerService.getInstance().createComponentLogger('ImprovementStartup');
|
|
54
|
+
/**
|
|
55
|
+
* Creates an instance of ImprovementStartupService.
|
|
56
|
+
*
|
|
57
|
+
* @param projectRoot - Project root directory
|
|
58
|
+
*/
|
|
59
|
+
constructor(projectRoot) {
|
|
60
|
+
this.projectRoot = projectRoot || process.cwd();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Run the startup check.
|
|
64
|
+
*
|
|
65
|
+
* This should be called early in application startup,
|
|
66
|
+
* before normal operations begin.
|
|
67
|
+
*
|
|
68
|
+
* @returns Result of the startup check
|
|
69
|
+
*/
|
|
70
|
+
async runStartupCheck() {
|
|
71
|
+
const markerService = getImprovementMarkerService();
|
|
72
|
+
await markerService.initialize();
|
|
73
|
+
// Check for pending improvement
|
|
74
|
+
const marker = await markerService.getPendingImprovement();
|
|
75
|
+
if (!marker) {
|
|
76
|
+
return { hadPendingImprovement: false };
|
|
77
|
+
}
|
|
78
|
+
this.logger.info('Found pending improvement', { id: marker.id });
|
|
79
|
+
this.logger.info('Improvement state', { phase: marker.phase, restartCount: marker.restartCount });
|
|
80
|
+
// Increment restart count
|
|
81
|
+
const restartCount = await markerService.incrementRestartCount();
|
|
82
|
+
// Check for too many restarts (possible infinite loop)
|
|
83
|
+
if (restartCount > MAX_RESTART_COUNT) {
|
|
84
|
+
this.logger.error('Too many restarts, forcing rollback', { restartCount });
|
|
85
|
+
return await this.handleTooManyRestarts(marker);
|
|
86
|
+
}
|
|
87
|
+
// Handle based on phase
|
|
88
|
+
switch (marker.phase) {
|
|
89
|
+
case 'planning':
|
|
90
|
+
case 'backing_up':
|
|
91
|
+
// Improvement was interrupted before changes were applied
|
|
92
|
+
// Safe to just clean up
|
|
93
|
+
return await this.handleInterruptedPlanning(marker);
|
|
94
|
+
case 'changes_applied':
|
|
95
|
+
// Changes were applied, need to validate
|
|
96
|
+
return await this.handleChangesApplied(marker);
|
|
97
|
+
case 'validating':
|
|
98
|
+
// Was in the middle of validation, continue
|
|
99
|
+
return await this.handleValidating(marker);
|
|
100
|
+
case 'rolling_back':
|
|
101
|
+
// Was rolling back, continue
|
|
102
|
+
return await this.handleRollingBack(marker);
|
|
103
|
+
case 'rolled_back':
|
|
104
|
+
// Rollback complete, just clean up
|
|
105
|
+
return await this.handleRolledBack(marker);
|
|
106
|
+
case 'complete':
|
|
107
|
+
// Shouldn't have a pending marker, clean up
|
|
108
|
+
await markerService.deleteMarker();
|
|
109
|
+
return { hadPendingImprovement: true, action: 'cleaned_up' };
|
|
110
|
+
default:
|
|
111
|
+
this.logger.warn('Unknown phase', { phase: marker.phase });
|
|
112
|
+
return { hadPendingImprovement: true, action: 'none' };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Handle interrupted planning phase.
|
|
117
|
+
*
|
|
118
|
+
* @param marker - The improvement marker
|
|
119
|
+
* @returns Startup result
|
|
120
|
+
*/
|
|
121
|
+
async handleInterruptedPlanning(marker) {
|
|
122
|
+
this.logger.info('Improvement interrupted during planning, cleaning up');
|
|
123
|
+
const markerService = getImprovementMarkerService();
|
|
124
|
+
await markerService.deleteMarker();
|
|
125
|
+
await this.notifySlack(marker, ':warning: Self-improvement was interrupted during planning and has been cancelled.', 'normal');
|
|
126
|
+
return {
|
|
127
|
+
hadPendingImprovement: true,
|
|
128
|
+
improvementId: marker.id,
|
|
129
|
+
phase: marker.phase,
|
|
130
|
+
action: 'cleaned_up',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Handle changes_applied phase - run validation.
|
|
135
|
+
*
|
|
136
|
+
* @param marker - The improvement marker
|
|
137
|
+
* @returns Startup result
|
|
138
|
+
*/
|
|
139
|
+
async handleChangesApplied(marker) {
|
|
140
|
+
this.logger.info('Changes applied, running validation...');
|
|
141
|
+
const markerService = getImprovementMarkerService();
|
|
142
|
+
await markerService.updatePhase('validating');
|
|
143
|
+
await this.notifySlack(marker, ':hourglass: Crewly restarted after self-improvement. Running validation...', 'normal');
|
|
144
|
+
// Run validation
|
|
145
|
+
const validationPassed = await this.runValidation(marker);
|
|
146
|
+
if (validationPassed) {
|
|
147
|
+
return await this.handleValidationSuccess(marker);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
return await this.handleValidationFailure(marker);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Handle validating phase - continue validation.
|
|
155
|
+
*
|
|
156
|
+
* @param marker - The improvement marker
|
|
157
|
+
* @returns Startup result
|
|
158
|
+
*/
|
|
159
|
+
async handleValidating(marker) {
|
|
160
|
+
this.logger.info('Continuing validation...');
|
|
161
|
+
// Check which validations have already passed
|
|
162
|
+
const passedChecks = marker.validation.results
|
|
163
|
+
.filter(r => r.passed)
|
|
164
|
+
.map(r => r.check);
|
|
165
|
+
// Run remaining validations
|
|
166
|
+
const validationPassed = await this.runValidation(marker, passedChecks);
|
|
167
|
+
if (validationPassed) {
|
|
168
|
+
return await this.handleValidationSuccess(marker);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
return await this.handleValidationFailure(marker);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Run validation checks.
|
|
176
|
+
*
|
|
177
|
+
* @param marker - The improvement marker
|
|
178
|
+
* @param skipChecks - Checks to skip (already passed)
|
|
179
|
+
* @returns True if all required validations passed
|
|
180
|
+
*/
|
|
181
|
+
async runValidation(marker, skipChecks = []) {
|
|
182
|
+
const markerService = getImprovementMarkerService();
|
|
183
|
+
let allPassed = true;
|
|
184
|
+
for (const check of DEFAULT_VALIDATIONS) {
|
|
185
|
+
if (skipChecks.includes(check.name)) {
|
|
186
|
+
this.logger.info('Skipping check (already passed)', { check: check.name });
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
this.logger.info('Running validation check', { check: check.name });
|
|
190
|
+
const startTime = Date.now();
|
|
191
|
+
try {
|
|
192
|
+
await this.runCommand(check.command, check.args, check.timeoutMs);
|
|
193
|
+
const result = {
|
|
194
|
+
check: check.name,
|
|
195
|
+
passed: true,
|
|
196
|
+
duration: Date.now() - startTime,
|
|
197
|
+
};
|
|
198
|
+
await markerService.recordValidationResult(result);
|
|
199
|
+
this.logger.info('Validation check passed', { check: check.name, duration: result.duration });
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
const result = {
|
|
203
|
+
check: check.name,
|
|
204
|
+
passed: false,
|
|
205
|
+
output: error.message,
|
|
206
|
+
duration: Date.now() - startTime,
|
|
207
|
+
};
|
|
208
|
+
await markerService.recordValidationResult(result);
|
|
209
|
+
this.logger.error('Validation check FAILED', { check: check.name, output: result.output });
|
|
210
|
+
if (check.required) {
|
|
211
|
+
allPassed = false;
|
|
212
|
+
break; // Stop on first required failure
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return allPassed;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Handle validation success.
|
|
220
|
+
*
|
|
221
|
+
* @param marker - The improvement marker
|
|
222
|
+
* @returns Startup result
|
|
223
|
+
*/
|
|
224
|
+
async handleValidationSuccess(marker) {
|
|
225
|
+
this.logger.info('All validation passed!');
|
|
226
|
+
const markerService = getImprovementMarkerService();
|
|
227
|
+
await markerService.completeImprovement(true);
|
|
228
|
+
await this.notifySlack(marker, `:white_check_mark: *Self-improvement completed successfully!*\n\n*${marker.description}*\n\nAll validation checks passed. Changes are now active.`, 'normal');
|
|
229
|
+
return {
|
|
230
|
+
hadPendingImprovement: true,
|
|
231
|
+
improvementId: marker.id,
|
|
232
|
+
phase: 'complete',
|
|
233
|
+
action: 'validated',
|
|
234
|
+
validationPassed: true,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Handle validation failure - trigger rollback.
|
|
239
|
+
*
|
|
240
|
+
* @param marker - The improvement marker
|
|
241
|
+
* @returns Startup result
|
|
242
|
+
*/
|
|
243
|
+
async handleValidationFailure(marker) {
|
|
244
|
+
this.logger.info('Validation failed, initiating rollback...');
|
|
245
|
+
const markerService = getImprovementMarkerService();
|
|
246
|
+
// Get fresh marker with updated validation results
|
|
247
|
+
const updatedMarker = await markerService.getPendingImprovement();
|
|
248
|
+
const currentMarker = updatedMarker || marker;
|
|
249
|
+
// Get failed checks
|
|
250
|
+
const failedChecks = currentMarker.validation.results
|
|
251
|
+
.filter(r => !r.passed)
|
|
252
|
+
.map(r => `${r.check}: ${r.output || 'failed'}`)
|
|
253
|
+
.join('\n');
|
|
254
|
+
await markerService.recordRollbackStarted(`Validation failed:\n${failedChecks}`);
|
|
255
|
+
await this.notifySlack(currentMarker, `:x: *Self-improvement validation failed!*\n\n*${currentMarker.description}*\n\nRolling back changes...\n\n\`\`\`\n${failedChecks}\n\`\`\``, 'high');
|
|
256
|
+
// Perform rollback
|
|
257
|
+
const rollbackResult = await this.performRollback(currentMarker);
|
|
258
|
+
if (rollbackResult.success) {
|
|
259
|
+
await markerService.recordRollbackCompleted(rollbackResult.filesRestored, rollbackResult.gitReset);
|
|
260
|
+
// Complete with failure status
|
|
261
|
+
await markerService.completeImprovement(false);
|
|
262
|
+
await this.notifySlack(currentMarker, `:rewind: *Rollback completed.* The codebase has been restored to its previous state.`, 'normal');
|
|
263
|
+
// Note: This may trigger another hot-reload from the rollback file changes
|
|
264
|
+
// The next startup will see phase='complete' and just clean up
|
|
265
|
+
}
|
|
266
|
+
return {
|
|
267
|
+
hadPendingImprovement: true,
|
|
268
|
+
improvementId: currentMarker.id,
|
|
269
|
+
phase: currentMarker.phase,
|
|
270
|
+
action: 'rolled_back',
|
|
271
|
+
validationPassed: false,
|
|
272
|
+
error: failedChecks,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Handle rolling_back phase - continue rollback.
|
|
277
|
+
*
|
|
278
|
+
* @param marker - The improvement marker
|
|
279
|
+
* @returns Startup result
|
|
280
|
+
*/
|
|
281
|
+
async handleRollingBack(marker) {
|
|
282
|
+
this.logger.info('Continuing rollback...');
|
|
283
|
+
const markerService = getImprovementMarkerService();
|
|
284
|
+
const rollbackResult = await this.performRollback(marker);
|
|
285
|
+
await markerService.recordRollbackCompleted(rollbackResult.filesRestored, rollbackResult.gitReset);
|
|
286
|
+
await markerService.completeImprovement(false);
|
|
287
|
+
return {
|
|
288
|
+
hadPendingImprovement: true,
|
|
289
|
+
improvementId: marker.id,
|
|
290
|
+
phase: 'rolled_back',
|
|
291
|
+
action: 'rolled_back',
|
|
292
|
+
validationPassed: false,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Handle rolled_back phase - just clean up.
|
|
297
|
+
*
|
|
298
|
+
* @param marker - The improvement marker
|
|
299
|
+
* @returns Startup result
|
|
300
|
+
*/
|
|
301
|
+
async handleRolledBack(marker) {
|
|
302
|
+
this.logger.info('Rollback already complete, cleaning up');
|
|
303
|
+
const markerService = getImprovementMarkerService();
|
|
304
|
+
await markerService.completeImprovement(false);
|
|
305
|
+
return {
|
|
306
|
+
hadPendingImprovement: true,
|
|
307
|
+
improvementId: marker.id,
|
|
308
|
+
phase: 'rolled_back',
|
|
309
|
+
action: 'cleaned_up',
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Force a rollback of the current improvement.
|
|
314
|
+
* Used for manual rollback requests via the API.
|
|
315
|
+
*
|
|
316
|
+
* @param reason - Reason for the rollback
|
|
317
|
+
* @returns Rollback result with success status and files restored count
|
|
318
|
+
*/
|
|
319
|
+
async forceRollback(reason) {
|
|
320
|
+
const markerService = getImprovementMarkerService();
|
|
321
|
+
await markerService.initialize();
|
|
322
|
+
const marker = await markerService.getPendingImprovement();
|
|
323
|
+
if (!marker) {
|
|
324
|
+
return {
|
|
325
|
+
success: false,
|
|
326
|
+
filesRestored: 0,
|
|
327
|
+
message: 'No pending improvement to rollback',
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
this.logger.info('Manual rollback requested', { reason });
|
|
331
|
+
await markerService.recordRollbackStarted(reason);
|
|
332
|
+
await this.notifySlack(marker, `:rewind: *Manual rollback requested*\n\n*${marker.description}*\n\nReason: ${reason}`, 'high');
|
|
333
|
+
const rollbackResult = await this.performRollback(marker);
|
|
334
|
+
await markerService.recordRollbackCompleted(rollbackResult.filesRestored, rollbackResult.gitReset);
|
|
335
|
+
await markerService.completeImprovement(false);
|
|
336
|
+
await this.notifySlack(marker, `:white_check_mark: *Rollback completed.* Restored ${rollbackResult.filesRestored.length} files.`, 'normal');
|
|
337
|
+
return {
|
|
338
|
+
success: true,
|
|
339
|
+
filesRestored: rollbackResult.filesRestored.length,
|
|
340
|
+
message: `Rollback completed. Restored ${rollbackResult.filesRestored.length} files.`,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Handle too many restarts.
|
|
345
|
+
*
|
|
346
|
+
* @param marker - The improvement marker
|
|
347
|
+
* @returns Startup result
|
|
348
|
+
*/
|
|
349
|
+
async handleTooManyRestarts(marker) {
|
|
350
|
+
const markerService = getImprovementMarkerService();
|
|
351
|
+
await markerService.recordError(`Too many restarts (${marker.restartCount}), possible infinite loop`);
|
|
352
|
+
await this.notifySlack(marker, `:rotating_light: *Self-improvement stuck in restart loop!*\n\n*${marker.description}*\n\nForcing rollback after ${marker.restartCount} restarts.`, 'critical');
|
|
353
|
+
// Force rollback
|
|
354
|
+
await this.performRollback(marker);
|
|
355
|
+
await markerService.completeImprovement(false);
|
|
356
|
+
return {
|
|
357
|
+
hadPendingImprovement: true,
|
|
358
|
+
improvementId: marker.id,
|
|
359
|
+
action: 'rolled_back',
|
|
360
|
+
validationPassed: false,
|
|
361
|
+
error: 'Too many restarts, forced rollback',
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Perform rollback of file changes.
|
|
366
|
+
*
|
|
367
|
+
* @param marker - The improvement marker with backup info
|
|
368
|
+
* @returns Rollback result
|
|
369
|
+
*/
|
|
370
|
+
async performRollback(marker) {
|
|
371
|
+
const filesRestored = [];
|
|
372
|
+
let gitReset = false;
|
|
373
|
+
// Try git reset first
|
|
374
|
+
if (marker.backup.gitCommit) {
|
|
375
|
+
try {
|
|
376
|
+
await this.runCommand('git', ['reset', '--hard', marker.backup.gitCommit], 30000);
|
|
377
|
+
gitReset = true;
|
|
378
|
+
this.logger.info('Git reset successful', { commit: marker.backup.gitCommit });
|
|
379
|
+
return { success: true, filesRestored: marker.targetFiles, gitReset: true };
|
|
380
|
+
}
|
|
381
|
+
catch (error) {
|
|
382
|
+
this.logger.warn('Git reset failed, using file backups');
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
// Restore from file backups
|
|
386
|
+
for (const backup of marker.backup.files) {
|
|
387
|
+
try {
|
|
388
|
+
if (backup.existed) {
|
|
389
|
+
// Restore original file
|
|
390
|
+
const content = await fs.readFile(backup.backupPath, 'utf-8');
|
|
391
|
+
await fs.mkdir(path.dirname(backup.originalPath), { recursive: true });
|
|
392
|
+
await fs.writeFile(path.join(this.projectRoot, backup.originalPath), content);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
// Delete file that was created
|
|
396
|
+
await fs.unlink(path.join(this.projectRoot, backup.originalPath));
|
|
397
|
+
}
|
|
398
|
+
filesRestored.push(backup.originalPath);
|
|
399
|
+
this.logger.info('Restored file', { path: backup.originalPath });
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
this.logger.error('Failed to restore file', { path: backup.originalPath, error: error instanceof Error ? error.message : String(error) });
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return { success: true, filesRestored, gitReset };
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Run a shell command.
|
|
409
|
+
*
|
|
410
|
+
* @param cmd - Command to run
|
|
411
|
+
* @param args - Command arguments
|
|
412
|
+
* @param timeoutMs - Timeout in milliseconds
|
|
413
|
+
* @returns Command output
|
|
414
|
+
*/
|
|
415
|
+
runCommand(cmd, args, timeoutMs) {
|
|
416
|
+
return new Promise((resolve, reject) => {
|
|
417
|
+
const child = spawn(cmd, args, {
|
|
418
|
+
cwd: this.projectRoot,
|
|
419
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
420
|
+
timeout: timeoutMs,
|
|
421
|
+
});
|
|
422
|
+
let stdout = '';
|
|
423
|
+
let stderr = '';
|
|
424
|
+
child.stdout.on('data', (data) => { stdout += data; });
|
|
425
|
+
child.stderr.on('data', (data) => { stderr += data; });
|
|
426
|
+
child.on('close', (code) => {
|
|
427
|
+
if (code === 0) {
|
|
428
|
+
resolve(stdout);
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
reject(new Error(stderr || stdout || `Exit code ${code}`));
|
|
432
|
+
}
|
|
433
|
+
});
|
|
434
|
+
child.on('error', reject);
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Send Slack notification.
|
|
439
|
+
*
|
|
440
|
+
* @param marker - The improvement marker
|
|
441
|
+
* @param message - Message to send
|
|
442
|
+
* @param urgency - Message urgency level
|
|
443
|
+
*/
|
|
444
|
+
async notifySlack(marker, message, urgency) {
|
|
445
|
+
try {
|
|
446
|
+
// Dynamic import to avoid circular dependency
|
|
447
|
+
const { getSlackOrchestratorBridge } = await import('../slack/slack-orchestrator-bridge.js');
|
|
448
|
+
const slackBridge = getSlackOrchestratorBridge();
|
|
449
|
+
await slackBridge.sendNotification({
|
|
450
|
+
type: 'alert',
|
|
451
|
+
title: 'Self-Improvement Update',
|
|
452
|
+
message,
|
|
453
|
+
urgency,
|
|
454
|
+
timestamp: new Date().toISOString(),
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
catch {
|
|
458
|
+
// Slack not available, silently ignore
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Singleton instance
|
|
464
|
+
*/
|
|
465
|
+
let startupServiceInstance = null;
|
|
466
|
+
/**
|
|
467
|
+
* Get singleton instance of ImprovementStartupService.
|
|
468
|
+
*
|
|
469
|
+
* @returns The singleton ImprovementStartupService instance
|
|
470
|
+
*/
|
|
471
|
+
export function getImprovementStartupService() {
|
|
472
|
+
if (!startupServiceInstance) {
|
|
473
|
+
startupServiceInstance = new ImprovementStartupService();
|
|
474
|
+
}
|
|
475
|
+
return startupServiceInstance;
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Reset singleton instance (for testing).
|
|
479
|
+
*/
|
|
480
|
+
export function resetImprovementStartupService() {
|
|
481
|
+
startupServiceInstance = null;
|
|
482
|
+
}
|
|
483
|
+
//# sourceMappingURL=improvement-startup.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improvement-startup.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/improvement-startup.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Service Module
|
|
3
|
+
*
|
|
4
|
+
* Exports orchestrator-related services.
|
|
5
|
+
*
|
|
6
|
+
* @module services/orchestrator
|
|
7
|
+
*/
|
|
8
|
+
export { StatePersistenceService, getStatePersistenceService, resetStatePersistenceService, } from './state-persistence.service.js';
|
|
9
|
+
export { SafeRestartService, getSafeRestartService, resetSafeRestartService, type RestartConfig, type RestartStatus, } from './safe-restart.service.js';
|
|
10
|
+
export { SelfImprovementService, getSelfImprovementService, resetSelfImprovementService, type ImprovementRequest, type ImprovementResult, type ImprovementPlan, } from './self-improvement.service.js';
|
|
11
|
+
export { ImprovementMarkerService, getImprovementMarkerService, resetImprovementMarkerService, type ImprovementMarker, type ImprovementPhase, type ValidationResult, type FileBackupRecord, } from './improvement-marker.service.js';
|
|
12
|
+
export { ImprovementStartupService, getImprovementStartupService, resetImprovementStartupService, type StartupResult, } from './improvement-startup.service.js';
|
|
13
|
+
export { isOrchestratorActive, isAgentActive, getOrchestratorStatus, getOrchestratorOfflineMessage, type OrchestratorStatusResult, } from './orchestrator-status.service.js';
|
|
14
|
+
export { OrchestratorRestartService, type RestartStats, } from './orchestrator-restart.service.js';
|
|
15
|
+
export { triggerOrchestratorSetup, setOrchestratorSetupDependencies, type OrchestratorSetupResult, type AgentRegistrationServiceLike, } from './orchestrator-setup.service.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,KAAK,aAAa,GACnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,0BAA0B,EAC1B,KAAK,YAAY,GAClB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,GAClC,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Service Module
|
|
3
|
+
*
|
|
4
|
+
* Exports orchestrator-related services.
|
|
5
|
+
*
|
|
6
|
+
* @module services/orchestrator
|
|
7
|
+
*/
|
|
8
|
+
export { StatePersistenceService, getStatePersistenceService, resetStatePersistenceService, } from './state-persistence.service.js';
|
|
9
|
+
export { SafeRestartService, getSafeRestartService, resetSafeRestartService, } from './safe-restart.service.js';
|
|
10
|
+
export { SelfImprovementService, getSelfImprovementService, resetSelfImprovementService, } from './self-improvement.service.js';
|
|
11
|
+
export { ImprovementMarkerService, getImprovementMarkerService, resetImprovementMarkerService, } from './improvement-marker.service.js';
|
|
12
|
+
export { ImprovementStartupService, getImprovementStartupService, resetImprovementStartupService, } from './improvement-startup.service.js';
|
|
13
|
+
export { isOrchestratorActive, isAgentActive, getOrchestratorStatus, getOrchestratorOfflineMessage, } from './orchestrator-status.service.js';
|
|
14
|
+
export { OrchestratorRestartService, } from './orchestrator-restart.service.js';
|
|
15
|
+
export { triggerOrchestratorSetup, setOrchestratorSetupDependencies, } from './orchestrator-setup.service.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAGxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAI5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,GAK9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,6BAA6B,GAE9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,0BAA0B,GAE3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,GAGjC,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Restart Service
|
|
3
|
+
*
|
|
4
|
+
* Automatically restarts the orchestrator when it becomes unresponsive
|
|
5
|
+
* (child process dies inside the PTY shell). Enforces a cooldown window
|
|
6
|
+
* to prevent restart loops.
|
|
7
|
+
*
|
|
8
|
+
* @module orchestrator-restart.service
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentRegistrationService } from '../agent/agent-registration.service.js';
|
|
11
|
+
import type { ISessionBackend } from '../session/session-backend.interface.js';
|
|
12
|
+
/**
|
|
13
|
+
* Restart statistics for monitoring
|
|
14
|
+
*/
|
|
15
|
+
export interface RestartStats {
|
|
16
|
+
/** Total number of restarts since service creation */
|
|
17
|
+
totalRestarts: number;
|
|
18
|
+
/** Restarts within the current cooldown window */
|
|
19
|
+
restartsInWindow: number;
|
|
20
|
+
/** Whether a restart is currently in progress */
|
|
21
|
+
isRestarting: boolean;
|
|
22
|
+
/** Timestamp of the last successful restart */
|
|
23
|
+
lastRestartAt: string | null;
|
|
24
|
+
/** Whether further restarts are allowed under cooldown */
|
|
25
|
+
restartAllowed: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* OrchestratorRestartService manages automatic restart of the orchestrator
|
|
29
|
+
* when the child process (Claude Code) dies inside the PTY shell.
|
|
30
|
+
*
|
|
31
|
+
* Features:
|
|
32
|
+
* - Kills the old PTY session before creating a new one
|
|
33
|
+
* - Initializes memory and starts chat monitoring
|
|
34
|
+
* - Notifies via Slack (if configured)
|
|
35
|
+
* - Broadcasts WebSocket event for UI updates
|
|
36
|
+
* - Enforces max 3 restarts per hour cooldown
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const service = OrchestratorRestartService.getInstance();
|
|
41
|
+
* service.setDependencies(agentRegistrationService, sessionBackend, io);
|
|
42
|
+
* await service.attemptRestart();
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class OrchestratorRestartService {
|
|
46
|
+
private static instance;
|
|
47
|
+
private logger;
|
|
48
|
+
/** Timestamps of recent restarts for cooldown tracking */
|
|
49
|
+
private restartTimestamps;
|
|
50
|
+
/** Total restart count since service creation */
|
|
51
|
+
private totalRestarts;
|
|
52
|
+
/** Flag to prevent concurrent restart attempts */
|
|
53
|
+
private isRestarting;
|
|
54
|
+
/** External dependencies (injected via setDependencies) */
|
|
55
|
+
private agentRegistrationService;
|
|
56
|
+
private sessionBackend;
|
|
57
|
+
private socketIO;
|
|
58
|
+
private constructor();
|
|
59
|
+
/**
|
|
60
|
+
* Get the singleton instance.
|
|
61
|
+
*
|
|
62
|
+
* @returns The OrchestratorRestartService instance
|
|
63
|
+
*/
|
|
64
|
+
static getInstance(): OrchestratorRestartService;
|
|
65
|
+
/**
|
|
66
|
+
* Reset the singleton instance (for testing).
|
|
67
|
+
*/
|
|
68
|
+
static resetInstance(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Inject external dependencies.
|
|
71
|
+
*
|
|
72
|
+
* @param agentRegistrationService - Service for creating agent sessions
|
|
73
|
+
* @param sessionBackend - Session backend for killing old sessions
|
|
74
|
+
* @param socketIO - Socket.IO server for broadcasting events
|
|
75
|
+
*/
|
|
76
|
+
setDependencies(agentRegistrationService: AgentRegistrationService, sessionBackend: ISessionBackend, socketIO?: {
|
|
77
|
+
emit: (event: string, data: unknown) => void;
|
|
78
|
+
}): void;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a restart is currently allowed under the cooldown window.
|
|
81
|
+
*
|
|
82
|
+
* @returns true if restart is allowed
|
|
83
|
+
*/
|
|
84
|
+
isRestartAllowed(): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Attempt to restart the orchestrator.
|
|
87
|
+
*
|
|
88
|
+
* This method:
|
|
89
|
+
* 1. Checks cooldown limits
|
|
90
|
+
* 2. Kills the old PTY session
|
|
91
|
+
* 3. Creates a new agent session
|
|
92
|
+
* 4. Initializes memory
|
|
93
|
+
* 5. Starts chat monitoring
|
|
94
|
+
* 6. Notifies Slack (if configured)
|
|
95
|
+
* 7. Broadcasts WebSocket event
|
|
96
|
+
*
|
|
97
|
+
* @returns true if restart succeeded, false otherwise
|
|
98
|
+
*/
|
|
99
|
+
attemptRestart(): Promise<boolean>;
|
|
100
|
+
/**
|
|
101
|
+
* Resolve orchestrator runtime type from persisted orchestrator status.
|
|
102
|
+
* Falls back to Claude Code if status is unavailable/invalid.
|
|
103
|
+
*/
|
|
104
|
+
private resolveOrchestratorRuntimeType;
|
|
105
|
+
/**
|
|
106
|
+
* Get current restart statistics.
|
|
107
|
+
*
|
|
108
|
+
* @returns Restart statistics object
|
|
109
|
+
*/
|
|
110
|
+
getRestartStats(): RestartStats;
|
|
111
|
+
/**
|
|
112
|
+
* Send a Slack notification about the orchestrator restart.
|
|
113
|
+
* Best-effort: silently ignores failures (Slack may not be configured).
|
|
114
|
+
*/
|
|
115
|
+
private notifySlack;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=orchestrator-restart.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-restart.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-restart.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI/E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0DAA0D;IAC1D,cAAc,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,0BAA0B;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAClE,OAAO,CAAC,MAAM,CAAkB;IAEhC,0DAA0D;IAC1D,OAAO,CAAC,iBAAiB,CAAgB;IACzC,iDAAiD;IACjD,OAAO,CAAC,aAAa,CAAK;IAC1B,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAAS;IAE7B,2DAA2D;IAC3D,OAAO,CAAC,wBAAwB,CAAyC;IACzE,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAiE;IAEjF,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,0BAA0B;IAOhD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAW5B;;;;;;OAMG;IACH,eAAe,CACd,wBAAwB,EAAE,wBAAwB,EAClD,cAAc,EAAE,eAAe,EAC/B,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,GACzD,IAAI;IAMP;;;;OAIG;IACH,gBAAgB,IAAI,OAAO;IAU3B;;;;;;;;;;;;;OAaG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA+IxC;;;OAGG;YACW,8BAA8B;IAgB5C;;;;OAIG;IACH,eAAe,IAAI,YAAY;IAiB/B;;;OAGG;YACW,WAAW;CAezB"}
|