crewly 1.13.0 → 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/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 +25 -0
- 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.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +9 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +42 -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 +22 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.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/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/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/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/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/frontend/dist/assets/index-890d3f9d.js +4961 -0
- package/frontend/dist/index.html +1 -1
- package/package.json +2 -2
- package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +174 -30
- package/packages/crewly-agent/src/runtime/agent-runner.service.ts +121 -6
- package/packages/crewly-agent/src/runtime/types.ts +56 -5
- package/frontend/dist/assets/index-aa737fd3.js +0 -5254
|
@@ -0,0 +1,713 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 Mission & MissionPolicy Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* A Mission represents a team's long-term objective. Missions drive
|
|
5
|
+
* autonomous work independent of user Requests. MissionPolicy governs
|
|
6
|
+
* what a team can do autonomously under a Mission.
|
|
7
|
+
*
|
|
8
|
+
* @module types/v2/mission.types
|
|
9
|
+
*/
|
|
10
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
11
|
+
/** All valid MissionStatus values. */
|
|
12
|
+
export const MISSION_STATUSES = [
|
|
13
|
+
'active',
|
|
14
|
+
'paused',
|
|
15
|
+
'completed',
|
|
16
|
+
'cancelled',
|
|
17
|
+
];
|
|
18
|
+
/** Terminal mission statuses. */
|
|
19
|
+
export const TERMINAL_MISSION_STATUSES = new Set([
|
|
20
|
+
'completed',
|
|
21
|
+
'cancelled',
|
|
22
|
+
]);
|
|
23
|
+
/** Valid mission status transitions. */
|
|
24
|
+
export const MISSION_TRANSITIONS = {
|
|
25
|
+
active: new Set(['paused', 'completed', 'cancelled']),
|
|
26
|
+
paused: new Set(['active', 'cancelled']),
|
|
27
|
+
completed: new Set(),
|
|
28
|
+
cancelled: new Set(),
|
|
29
|
+
};
|
|
30
|
+
/** All valid MissionLevel values, ordered top → bottom of the cascade. */
|
|
31
|
+
export const MISSION_LEVELS = ['company', 'team', 'project'];
|
|
32
|
+
/**
|
|
33
|
+
* Numeric depth of each cascade tier (company = 0, team = 1, project = 2).
|
|
34
|
+
* Used to enforce the "child is exactly one tier below parent" rule.
|
|
35
|
+
*/
|
|
36
|
+
export const MISSION_LEVEL_DEPTH = {
|
|
37
|
+
company: 0,
|
|
38
|
+
team: 1,
|
|
39
|
+
project: 2,
|
|
40
|
+
};
|
|
41
|
+
/** Depth threshold at or beyond which a mission is treated as `project` level. */
|
|
42
|
+
export const PROJECT_LEVEL_DEPTH = 2;
|
|
43
|
+
/**
|
|
44
|
+
* Checks whether a string is a valid MissionLevel.
|
|
45
|
+
*
|
|
46
|
+
* @param value - Candidate string
|
|
47
|
+
* @returns `true` if `value` is one of `company` | `team` | `project`
|
|
48
|
+
*/
|
|
49
|
+
export function isValidMissionLevel(value) {
|
|
50
|
+
return MISSION_LEVELS.includes(value);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Validates a single downward cascade step: a child level may only sit exactly
|
|
54
|
+
* one tier below its parent, and `company` must be a root (no parent).
|
|
55
|
+
*
|
|
56
|
+
* Adjacency matrix:
|
|
57
|
+
* | child | required parent | parentMissionId |
|
|
58
|
+
* |---------|-----------------|-------------------|
|
|
59
|
+
* | company | — | must be undefined |
|
|
60
|
+
* | team | company | required |
|
|
61
|
+
* | project | team | required |
|
|
62
|
+
*
|
|
63
|
+
* @param childLevel - The level of the child mission
|
|
64
|
+
* @param parentLevel - The level of the parent mission, or `undefined` if no parent
|
|
65
|
+
* @returns `null` if the pairing is legal, otherwise a human-readable reason
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* validateLevelLink('team', 'company'); // null
|
|
70
|
+
* validateLevelLink('company', 'team'); // "A company mission cannot have a parent"
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export function validateLevelLink(childLevel, parentLevel) {
|
|
74
|
+
if (childLevel === 'company') {
|
|
75
|
+
return parentLevel === undefined
|
|
76
|
+
? null
|
|
77
|
+
: 'A company mission cannot have a parent';
|
|
78
|
+
}
|
|
79
|
+
if (parentLevel === undefined) {
|
|
80
|
+
return `A ${childLevel} mission requires a parent mission`;
|
|
81
|
+
}
|
|
82
|
+
const expectedDepth = MISSION_LEVEL_DEPTH[childLevel] - 1;
|
|
83
|
+
if (MISSION_LEVEL_DEPTH[parentLevel] !== expectedDepth) {
|
|
84
|
+
return `A ${childLevel} mission must have a ${MISSION_LEVELS[expectedDepth]} parent, not a ${parentLevel} parent`;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
/** All valid ProposalState values. */
|
|
89
|
+
export const PROPOSAL_STATES = [
|
|
90
|
+
'draft',
|
|
91
|
+
'pending_approval',
|
|
92
|
+
'approved',
|
|
93
|
+
'rejected',
|
|
94
|
+
];
|
|
95
|
+
/**
|
|
96
|
+
* Legal proposal-state transitions.
|
|
97
|
+
*
|
|
98
|
+
* - draft → pending_approval
|
|
99
|
+
* - pending_approval → approved | rejected
|
|
100
|
+
* - approved → (terminal)
|
|
101
|
+
* - rejected → draft (owner can ask for a redraft)
|
|
102
|
+
*/
|
|
103
|
+
export const PROPOSAL_TRANSITIONS = {
|
|
104
|
+
draft: new Set(['pending_approval']),
|
|
105
|
+
pending_approval: new Set(['approved', 'rejected']),
|
|
106
|
+
approved: new Set(),
|
|
107
|
+
rejected: new Set(['draft']),
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Checks whether a string is a valid ProposalState.
|
|
111
|
+
*
|
|
112
|
+
* @param value - Candidate string
|
|
113
|
+
* @returns `true` if `value` is one of the four proposal states
|
|
114
|
+
*/
|
|
115
|
+
export function isValidProposalState(value) {
|
|
116
|
+
return PROPOSAL_STATES.includes(value);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Checks whether a proposal-state transition is legal.
|
|
120
|
+
*
|
|
121
|
+
* @param from - Current proposal state
|
|
122
|
+
* @param to - Proposed next proposal state
|
|
123
|
+
* @returns `true` if `from → to` is an allowed transition
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* isValidProposalTransition('pending_approval', 'approved'); // true
|
|
128
|
+
* isValidProposalTransition('approved', 'draft'); // false
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export function isValidProposalTransition(from, to) {
|
|
132
|
+
return PROPOSAL_TRANSITIONS[from].has(to);
|
|
133
|
+
}
|
|
134
|
+
/** All valid MissionPriority values (ordered most → least important). */
|
|
135
|
+
export const MISSION_PRIORITIES = [
|
|
136
|
+
'critical',
|
|
137
|
+
'high',
|
|
138
|
+
'medium',
|
|
139
|
+
'low',
|
|
140
|
+
];
|
|
141
|
+
/**
|
|
142
|
+
* Numeric rank for sorting missions by priority (lower rank = higher priority).
|
|
143
|
+
* Missing priority is treated as `low`.
|
|
144
|
+
*/
|
|
145
|
+
export const MISSION_PRIORITY_RANK = {
|
|
146
|
+
critical: 0,
|
|
147
|
+
high: 1,
|
|
148
|
+
medium: 2,
|
|
149
|
+
low: 3,
|
|
150
|
+
};
|
|
151
|
+
/** All valid escalation conditions. */
|
|
152
|
+
export const ESCALATION_CONDITIONS = [
|
|
153
|
+
'cost_exceeded',
|
|
154
|
+
'time_exceeded',
|
|
155
|
+
'failure_count',
|
|
156
|
+
'scope_change',
|
|
157
|
+
'security_concern',
|
|
158
|
+
];
|
|
159
|
+
/** All valid PhaseGateApproval values. */
|
|
160
|
+
export const PHASE_GATE_APPROVALS = [
|
|
161
|
+
'none',
|
|
162
|
+
'team_lead',
|
|
163
|
+
'human',
|
|
164
|
+
];
|
|
165
|
+
// ---------------------------------------------------------------------------
|
|
166
|
+
// Default ExecutionCadence values
|
|
167
|
+
// ---------------------------------------------------------------------------
|
|
168
|
+
/**
|
|
169
|
+
* Conservative cadence — slow, human-gated, business hours only.
|
|
170
|
+
*/
|
|
171
|
+
export const CONSERVATIVE_CADENCE = {
|
|
172
|
+
reviewSchedule: '0 9 * * 1',
|
|
173
|
+
dailyItemLimit: 3,
|
|
174
|
+
workHours: {
|
|
175
|
+
startHour: 9,
|
|
176
|
+
endHour: 17,
|
|
177
|
+
timezone: 'UTC',
|
|
178
|
+
activeDays: [1, 2, 3, 4, 5],
|
|
179
|
+
},
|
|
180
|
+
phaseGateApproval: 'human',
|
|
181
|
+
requireVerificationGate: true,
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Moderate cadence — steady flow, TL-gated phases, extended hours.
|
|
185
|
+
*/
|
|
186
|
+
export const MODERATE_CADENCE = {
|
|
187
|
+
reviewSchedule: '0 9 * * 1,4',
|
|
188
|
+
dailyItemLimit: 10,
|
|
189
|
+
workHours: {
|
|
190
|
+
startHour: 8,
|
|
191
|
+
endHour: 20,
|
|
192
|
+
timezone: 'UTC',
|
|
193
|
+
activeDays: [1, 2, 3, 4, 5],
|
|
194
|
+
},
|
|
195
|
+
phaseGateApproval: 'team_lead',
|
|
196
|
+
requireVerificationGate: true,
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Autonomous cadence — fast, self-advancing, 24/7.
|
|
200
|
+
*/
|
|
201
|
+
export const AUTONOMOUS_CADENCE = {
|
|
202
|
+
reviewSchedule: '0 9 * * *',
|
|
203
|
+
dailyItemLimit: 0,
|
|
204
|
+
workHours: null,
|
|
205
|
+
phaseGateApproval: 'none',
|
|
206
|
+
requireVerificationGate: false,
|
|
207
|
+
};
|
|
208
|
+
/** All valid policy actions. */
|
|
209
|
+
export const POLICY_ACTIONS = [
|
|
210
|
+
'create_task',
|
|
211
|
+
'reprioritize_task',
|
|
212
|
+
'close_task',
|
|
213
|
+
'deploy_staging',
|
|
214
|
+
'deploy_prod',
|
|
215
|
+
'spend_money',
|
|
216
|
+
'change_user_visible_behavior',
|
|
217
|
+
'replan_mission',
|
|
218
|
+
'advance_phase',
|
|
219
|
+
'adjust_kr_target',
|
|
220
|
+
];
|
|
221
|
+
/**
|
|
222
|
+
* Maps PolicyAction to the corresponding MissionPolicy boolean field.
|
|
223
|
+
*/
|
|
224
|
+
export const ACTION_TO_POLICY_FIELD = {
|
|
225
|
+
create_task: 'canCreateTasks',
|
|
226
|
+
reprioritize_task: 'canReprioritizeTasks',
|
|
227
|
+
close_task: 'canCloseTasks',
|
|
228
|
+
deploy_staging: 'canDeployToStaging',
|
|
229
|
+
deploy_prod: 'canDeployToProd',
|
|
230
|
+
spend_money: 'canSpendMoney',
|
|
231
|
+
change_user_visible_behavior: 'canChangeUserVisibleBehaviorWithoutReview',
|
|
232
|
+
replan_mission: 'canReplanMission',
|
|
233
|
+
advance_phase: 'canAdvancePhase',
|
|
234
|
+
adjust_kr_target: 'canAdjustKRTargets',
|
|
235
|
+
};
|
|
236
|
+
// ---------------------------------------------------------------------------
|
|
237
|
+
// Default Policies (Templates)
|
|
238
|
+
// ---------------------------------------------------------------------------
|
|
239
|
+
/**
|
|
240
|
+
* Conservative policy — all capabilities disabled, human approval for everything.
|
|
241
|
+
*/
|
|
242
|
+
export const CONSERVATIVE_POLICY = {
|
|
243
|
+
canCreateTasks: false,
|
|
244
|
+
canReprioritizeTasks: false,
|
|
245
|
+
canCloseTasks: false,
|
|
246
|
+
canDeployToStaging: false,
|
|
247
|
+
canDeployToProd: false,
|
|
248
|
+
canSpendMoney: false,
|
|
249
|
+
canChangeUserVisibleBehaviorWithoutReview: false,
|
|
250
|
+
maxParallelExecutions: 1,
|
|
251
|
+
escalationRules: [],
|
|
252
|
+
executionCadence: CONSERVATIVE_CADENCE,
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Moderate policy — can create and close tasks, but no deploy or spend.
|
|
256
|
+
*/
|
|
257
|
+
export const MODERATE_POLICY = {
|
|
258
|
+
canCreateTasks: true,
|
|
259
|
+
canReprioritizeTasks: true,
|
|
260
|
+
canCloseTasks: true,
|
|
261
|
+
canDeployToStaging: false,
|
|
262
|
+
canDeployToProd: false,
|
|
263
|
+
canSpendMoney: false,
|
|
264
|
+
canChangeUserVisibleBehaviorWithoutReview: false,
|
|
265
|
+
maxParallelExecutions: 3,
|
|
266
|
+
escalationRules: [
|
|
267
|
+
{ condition: 'failure_count', threshold: 3, escalateTo: 'team_lead', action: 'notify' },
|
|
268
|
+
],
|
|
269
|
+
executionCadence: MODERATE_CADENCE,
|
|
270
|
+
};
|
|
271
|
+
/**
|
|
272
|
+
* Autonomous policy — most capabilities enabled, but no prod deploy.
|
|
273
|
+
*/
|
|
274
|
+
export const AUTONOMOUS_POLICY = {
|
|
275
|
+
canCreateTasks: true,
|
|
276
|
+
canReprioritizeTasks: true,
|
|
277
|
+
canCloseTasks: true,
|
|
278
|
+
canDeployToStaging: true,
|
|
279
|
+
canDeployToProd: false,
|
|
280
|
+
canSpendMoney: true,
|
|
281
|
+
canChangeUserVisibleBehaviorWithoutReview: false,
|
|
282
|
+
maxParallelExecutions: 5,
|
|
283
|
+
escalationRules: [
|
|
284
|
+
{ condition: 'cost_exceeded', threshold: 50, escalateTo: 'user', action: 'pause' },
|
|
285
|
+
{ condition: 'failure_count', threshold: 5, escalateTo: 'team_lead', action: 'notify' },
|
|
286
|
+
{ condition: 'security_concern', threshold: 1, escalateTo: 'user', action: 'block' },
|
|
287
|
+
],
|
|
288
|
+
executionCadence: AUTONOMOUS_CADENCE,
|
|
289
|
+
};
|
|
290
|
+
// ---------------------------------------------------------------------------
|
|
291
|
+
// Type Guards
|
|
292
|
+
// ---------------------------------------------------------------------------
|
|
293
|
+
/**
|
|
294
|
+
* Checks whether a string is a valid MissionStatus.
|
|
295
|
+
*/
|
|
296
|
+
export function isValidMissionStatus(value) {
|
|
297
|
+
return MISSION_STATUSES.includes(value);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Checks whether a string is a valid PolicyAction.
|
|
301
|
+
*/
|
|
302
|
+
export function isValidPolicyAction(value) {
|
|
303
|
+
return POLICY_ACTIONS.includes(value);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Checks whether a string is a valid EscalationCondition.
|
|
307
|
+
*/
|
|
308
|
+
export function isValidEscalationCondition(value) {
|
|
309
|
+
return ESCALATION_CONDITIONS.includes(value);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Checks whether a mission status transition is valid.
|
|
313
|
+
*/
|
|
314
|
+
export function isValidMissionTransition(from, to) {
|
|
315
|
+
return MISSION_TRANSITIONS[from].has(to);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Validates an EscalationRule.
|
|
319
|
+
*/
|
|
320
|
+
export function isValidEscalationRule(rule) {
|
|
321
|
+
if (typeof rule !== 'object' || rule === null)
|
|
322
|
+
return false;
|
|
323
|
+
const obj = rule;
|
|
324
|
+
return (typeof obj.condition === 'string' &&
|
|
325
|
+
isValidEscalationCondition(obj.condition) &&
|
|
326
|
+
typeof obj.threshold === 'number' &&
|
|
327
|
+
obj.threshold >= 0 &&
|
|
328
|
+
typeof obj.escalateTo === 'string' &&
|
|
329
|
+
['user', 'orchestrator', 'team_lead'].includes(obj.escalateTo) &&
|
|
330
|
+
typeof obj.action === 'string' &&
|
|
331
|
+
['pause', 'notify', 'block'].includes(obj.action));
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Checks whether a string is a valid PhaseGateApproval.
|
|
335
|
+
*/
|
|
336
|
+
export function isValidPhaseGateApproval(value) {
|
|
337
|
+
return PHASE_GATE_APPROVALS.includes(value);
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Validates a WorkHoursWindow object.
|
|
341
|
+
*/
|
|
342
|
+
export function isValidWorkHoursWindow(value) {
|
|
343
|
+
if (typeof value !== 'object' || value === null)
|
|
344
|
+
return false;
|
|
345
|
+
const obj = value;
|
|
346
|
+
return (typeof obj.startHour === 'number' &&
|
|
347
|
+
Number.isInteger(obj.startHour) &&
|
|
348
|
+
obj.startHour >= 0 && obj.startHour <= 23 &&
|
|
349
|
+
typeof obj.endHour === 'number' &&
|
|
350
|
+
Number.isInteger(obj.endHour) &&
|
|
351
|
+
obj.endHour >= 0 && obj.endHour <= 23 &&
|
|
352
|
+
typeof obj.timezone === 'string' &&
|
|
353
|
+
obj.timezone.length > 0 &&
|
|
354
|
+
Array.isArray(obj.activeDays) &&
|
|
355
|
+
obj.activeDays.every((d) => typeof d === 'number' && Number.isInteger(d) && d >= 0 && d <= 6));
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Validates an ExecutionCadence object.
|
|
359
|
+
*/
|
|
360
|
+
export function isValidExecutionCadence(value) {
|
|
361
|
+
if (typeof value !== 'object' || value === null)
|
|
362
|
+
return false;
|
|
363
|
+
const obj = value;
|
|
364
|
+
return (typeof obj.reviewSchedule === 'string' &&
|
|
365
|
+
obj.reviewSchedule.length > 0 &&
|
|
366
|
+
typeof obj.dailyItemLimit === 'number' &&
|
|
367
|
+
Number.isInteger(obj.dailyItemLimit) &&
|
|
368
|
+
obj.dailyItemLimit >= 0 &&
|
|
369
|
+
(obj.workHours === null || isValidWorkHoursWindow(obj.workHours)) &&
|
|
370
|
+
typeof obj.phaseGateApproval === 'string' &&
|
|
371
|
+
isValidPhaseGateApproval(obj.phaseGateApproval) &&
|
|
372
|
+
typeof obj.requireVerificationGate === 'boolean');
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Validates a MissionPolicy object.
|
|
376
|
+
*/
|
|
377
|
+
export function isValidMissionPolicy(value) {
|
|
378
|
+
if (typeof value !== 'object' || value === null)
|
|
379
|
+
return false;
|
|
380
|
+
const obj = value;
|
|
381
|
+
const baseValid = (typeof obj.missionId === 'string' &&
|
|
382
|
+
typeof obj.canCreateTasks === 'boolean' &&
|
|
383
|
+
typeof obj.canReprioritizeTasks === 'boolean' &&
|
|
384
|
+
typeof obj.canCloseTasks === 'boolean' &&
|
|
385
|
+
typeof obj.canDeployToStaging === 'boolean' &&
|
|
386
|
+
typeof obj.canDeployToProd === 'boolean' &&
|
|
387
|
+
typeof obj.canSpendMoney === 'boolean' &&
|
|
388
|
+
typeof obj.canChangeUserVisibleBehaviorWithoutReview === 'boolean' &&
|
|
389
|
+
typeof obj.maxParallelExecutions === 'number' &&
|
|
390
|
+
obj.maxParallelExecutions > 0 &&
|
|
391
|
+
Array.isArray(obj.escalationRules));
|
|
392
|
+
if (!baseValid)
|
|
393
|
+
return false;
|
|
394
|
+
// executionCadence is optional; validate only if present
|
|
395
|
+
if (obj.executionCadence !== undefined && !isValidExecutionCadence(obj.executionCadence)) {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
return true;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Validates that an unknown value is structurally a valid Mission.
|
|
402
|
+
*/
|
|
403
|
+
export function isMission(value) {
|
|
404
|
+
if (typeof value !== 'object' || value === null)
|
|
405
|
+
return false;
|
|
406
|
+
const obj = value;
|
|
407
|
+
return (typeof obj.id === 'string' &&
|
|
408
|
+
typeof obj.objective === 'string' &&
|
|
409
|
+
typeof obj.ownerTeamId === 'string' &&
|
|
410
|
+
typeof obj.status === 'string' &&
|
|
411
|
+
isValidMissionStatus(obj.status) &&
|
|
412
|
+
typeof obj.createdAt === 'string' &&
|
|
413
|
+
Array.isArray(obj.successCriteria) &&
|
|
414
|
+
Array.isArray(obj.activeProjectTaskIds));
|
|
415
|
+
}
|
|
416
|
+
// ---------------------------------------------------------------------------
|
|
417
|
+
// Factory
|
|
418
|
+
// ---------------------------------------------------------------------------
|
|
419
|
+
/**
|
|
420
|
+
* Creates a default MissionPolicy for a given mission.
|
|
421
|
+
* Defaults to conservative (all disabled).
|
|
422
|
+
*
|
|
423
|
+
* @param missionId - The mission this policy applies to
|
|
424
|
+
* @param template - Optional template: 'conservative', 'moderate', 'autonomous'
|
|
425
|
+
* @returns A fully populated MissionPolicy
|
|
426
|
+
*/
|
|
427
|
+
export function createMissionPolicy(missionId, template = 'conservative') {
|
|
428
|
+
const templates = {
|
|
429
|
+
conservative: CONSERVATIVE_POLICY,
|
|
430
|
+
moderate: MODERATE_POLICY,
|
|
431
|
+
autonomous: AUTONOMOUS_POLICY,
|
|
432
|
+
};
|
|
433
|
+
return {
|
|
434
|
+
missionId,
|
|
435
|
+
...templates[template],
|
|
436
|
+
// Deep copy escalation rules to avoid shared references
|
|
437
|
+
escalationRules: [...templates[template].escalationRules.map(r => ({ ...r }))],
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Creates a new Mission with sensible defaults.
|
|
442
|
+
*
|
|
443
|
+
* @param input - Required and optional creation fields
|
|
444
|
+
* @returns A fully populated Mission object
|
|
445
|
+
*/
|
|
446
|
+
export function createMission(input) {
|
|
447
|
+
const now = new Date().toISOString();
|
|
448
|
+
const id = uuidv4();
|
|
449
|
+
const reviewSchedule = input.cadence ?? '0 9 * * 1';
|
|
450
|
+
const basePolicy = createMissionPolicy(id, 'conservative');
|
|
451
|
+
const mergedPolicy = {
|
|
452
|
+
...basePolicy,
|
|
453
|
+
...input.policy,
|
|
454
|
+
missionId: id,
|
|
455
|
+
// Deep copy escalation rules from the merged result
|
|
456
|
+
escalationRules: [...(input.policy?.escalationRules ?? basePolicy.escalationRules).map(r => ({ ...r }))],
|
|
457
|
+
};
|
|
458
|
+
// Sync reviewSchedule into executionCadence if caller provided cadence but no executionCadence
|
|
459
|
+
if (!mergedPolicy.executionCadence) {
|
|
460
|
+
mergedPolicy.executionCadence = { ...CONSERVATIVE_CADENCE, reviewSchedule };
|
|
461
|
+
}
|
|
462
|
+
else if (input.cadence && !input.policy?.executionCadence?.reviewSchedule) {
|
|
463
|
+
mergedPolicy.executionCadence = {
|
|
464
|
+
...mergedPolicy.executionCadence,
|
|
465
|
+
reviewSchedule,
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
return {
|
|
469
|
+
id,
|
|
470
|
+
objective: input.objective,
|
|
471
|
+
ownerTeamId: input.ownerTeamId,
|
|
472
|
+
successCriteria: input.successCriteria,
|
|
473
|
+
currentStrategy: input.currentStrategy,
|
|
474
|
+
activeProjectTaskIds: [],
|
|
475
|
+
cadence: reviewSchedule,
|
|
476
|
+
policy: mergedPolicy,
|
|
477
|
+
status: 'active',
|
|
478
|
+
ownerId: input.ownerId,
|
|
479
|
+
createdAt: now,
|
|
480
|
+
updatedAt: now,
|
|
481
|
+
learnings: [],
|
|
482
|
+
period: input.period,
|
|
483
|
+
parentMissionId: input.parentMissionId,
|
|
484
|
+
level: input.level ?? (input.parentMissionId ? undefined : 'company'),
|
|
485
|
+
projectId: input.projectId,
|
|
486
|
+
approval: input.approval,
|
|
487
|
+
priority: input.priority,
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
// ---------------------------------------------------------------------------
|
|
491
|
+
// ExecutionCadence Helpers
|
|
492
|
+
// ---------------------------------------------------------------------------
|
|
493
|
+
/**
|
|
494
|
+
* Returns the effective ExecutionCadence for a mission policy.
|
|
495
|
+
* Falls back to CONSERVATIVE_CADENCE when no cadence is defined.
|
|
496
|
+
*
|
|
497
|
+
* @param policy - The MissionPolicy to read from
|
|
498
|
+
* @returns Resolved ExecutionCadence (never undefined)
|
|
499
|
+
*/
|
|
500
|
+
export function getEffectiveCadence(policy) {
|
|
501
|
+
return policy.executionCadence ?? { ...CONSERVATIVE_CADENCE };
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Merges a partial cadence update into an existing ExecutionCadence.
|
|
505
|
+
* Deep-merges workHours if both exist. Pass workHours: null to clear.
|
|
506
|
+
*
|
|
507
|
+
* @param existing - Current cadence
|
|
508
|
+
* @param updates - Partial fields to merge
|
|
509
|
+
* @returns New merged ExecutionCadence (does not mutate inputs)
|
|
510
|
+
*/
|
|
511
|
+
export function mergeExecutionCadence(existing, updates) {
|
|
512
|
+
return {
|
|
513
|
+
...existing,
|
|
514
|
+
...updates,
|
|
515
|
+
workHours: updates.workHours === null
|
|
516
|
+
? null
|
|
517
|
+
: updates.workHours !== undefined
|
|
518
|
+
? {
|
|
519
|
+
...(existing.workHours ?? { startHour: 9, endHour: 17, timezone: 'UTC', activeDays: [1, 2, 3, 4, 5] }),
|
|
520
|
+
...updates.workHours,
|
|
521
|
+
}
|
|
522
|
+
: existing.workHours,
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
export function isPeriodActive(period, now = new Date()) {
|
|
526
|
+
return now >= new Date(period.startDate) && now < new Date(period.endDate);
|
|
527
|
+
}
|
|
528
|
+
export function isPeriodPast(period, now = new Date()) {
|
|
529
|
+
return now >= new Date(period.endDate);
|
|
530
|
+
}
|
|
531
|
+
export function isPeriodFuture(period, now = new Date()) {
|
|
532
|
+
return now < new Date(period.startDate);
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Build a `monthly` MissionPeriod for a given calendar month.
|
|
536
|
+
*
|
|
537
|
+
* The period is half-open `[first day of month, first day of next month)`,
|
|
538
|
+
* matching the `now >= start && now < end` convention used by
|
|
539
|
+
* {@link isPeriodActive}. Dates are UTC so the boundaries are deterministic
|
|
540
|
+
* regardless of server timezone. Handles December → January year rollover.
|
|
541
|
+
*
|
|
542
|
+
* @param year - Full year, e.g. `2026`.
|
|
543
|
+
* @param month - 1-based month (`1` = January … `12` = December).
|
|
544
|
+
* @returns A `monthly` MissionPeriod with ISO8601 start/end and a `YYYY-MM` label.
|
|
545
|
+
*
|
|
546
|
+
* @example
|
|
547
|
+
* ```typescript
|
|
548
|
+
* createMonthlyPeriod(2026, 3); // March 2026: 2026-03-01 → 2026-04-01, label "2026-03"
|
|
549
|
+
* ```
|
|
550
|
+
*/
|
|
551
|
+
export function createMonthlyPeriod(year, month) {
|
|
552
|
+
const start = new Date(Date.UTC(year, month - 1, 1));
|
|
553
|
+
// month is 1-based, so passing it as the 0-based Date month index yields the
|
|
554
|
+
// first day of the *next* month (Date normalizes 12 → January of year+1).
|
|
555
|
+
const end = new Date(Date.UTC(year, month, 1));
|
|
556
|
+
return {
|
|
557
|
+
type: 'monthly',
|
|
558
|
+
startDate: start.toISOString(),
|
|
559
|
+
endDate: end.toISOString(),
|
|
560
|
+
label: `${year}-${String(month).padStart(2, '0')}`,
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
// ---------------------------------------------------------------------------
|
|
564
|
+
// Mission Hierarchy Helpers
|
|
565
|
+
// ---------------------------------------------------------------------------
|
|
566
|
+
/**
|
|
567
|
+
* Validates a proposed parent link between a child mission and a parent.
|
|
568
|
+
*
|
|
569
|
+
* Rejects self-reference and any cycle that would be introduced by walking
|
|
570
|
+
* up the existing parent chain from `parentId`. The child mission itself
|
|
571
|
+
* does not need to exist in `byId` (useful for create-time validation).
|
|
572
|
+
*
|
|
573
|
+
* @param childId - The mission that would acquire the parent
|
|
574
|
+
* @param parentId - The proposed parent mission ID
|
|
575
|
+
* @param byId - All existing missions indexed by ID
|
|
576
|
+
* @returns `null` if the link is valid, otherwise a human-readable reason
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```ts
|
|
580
|
+
* const reason = validateParentLink('m1', 'm2', new Map([['m2', m2]]));
|
|
581
|
+
* if (reason) throw new Error(reason);
|
|
582
|
+
* ```
|
|
583
|
+
*/
|
|
584
|
+
export function validateParentLink(childId, parentId, byId) {
|
|
585
|
+
if (childId === parentId)
|
|
586
|
+
return 'A mission cannot be its own parent';
|
|
587
|
+
if (!byId.has(parentId))
|
|
588
|
+
return `Parent mission ${parentId} does not exist`;
|
|
589
|
+
// Walk up from the proposed parent; if we reach `childId`, we have a cycle.
|
|
590
|
+
const seen = new Set();
|
|
591
|
+
let cursor = parentId;
|
|
592
|
+
while (cursor) {
|
|
593
|
+
if (seen.has(cursor))
|
|
594
|
+
return `Parent chain contains a cycle at ${cursor}`;
|
|
595
|
+
if (cursor === childId)
|
|
596
|
+
return 'Proposed parent link would create a cycle';
|
|
597
|
+
seen.add(cursor);
|
|
598
|
+
cursor = byId.get(cursor)?.parentMissionId;
|
|
599
|
+
}
|
|
600
|
+
return null;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* Derives a Mission's cascade level by walking its `parentMissionId` chain.
|
|
604
|
+
*
|
|
605
|
+
* Depth 0 (no parent) ⇒ `company`, depth 1 ⇒ `team`, depth ≥ 2 ⇒ `project`.
|
|
606
|
+
* Used to backfill `level` for legacy missions persisted before the cascade
|
|
607
|
+
* fields existed. Guards against cycles defensively (returns the level computed
|
|
608
|
+
* at the point a repeat is detected rather than looping forever).
|
|
609
|
+
*
|
|
610
|
+
* @param missionId - The mission whose level to derive
|
|
611
|
+
* @param byId - All missions indexed by ID (need only `id` + `parentMissionId`)
|
|
612
|
+
* @returns The derived MissionLevel
|
|
613
|
+
*
|
|
614
|
+
* @example
|
|
615
|
+
* ```ts
|
|
616
|
+
* deriveLevel('teamM', new Map([['teamM', { id: 'teamM', parentMissionId: 'co' }], ['co', { id: 'co' }]])); // 'team'
|
|
617
|
+
* ```
|
|
618
|
+
*/
|
|
619
|
+
export function deriveLevel(missionId, byId) {
|
|
620
|
+
let depth = 0;
|
|
621
|
+
const seen = new Set();
|
|
622
|
+
let cursor = byId.get(missionId)?.parentMissionId;
|
|
623
|
+
while (cursor && depth < PROJECT_LEVEL_DEPTH) {
|
|
624
|
+
if (seen.has(cursor))
|
|
625
|
+
break;
|
|
626
|
+
seen.add(cursor);
|
|
627
|
+
depth += 1;
|
|
628
|
+
cursor = byId.get(cursor)?.parentMissionId;
|
|
629
|
+
}
|
|
630
|
+
if (depth === 0)
|
|
631
|
+
return 'company';
|
|
632
|
+
if (depth === 1)
|
|
633
|
+
return 'team';
|
|
634
|
+
return 'project';
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Resolve a mission's effective cascade level through a SINGLE canonical rule,
|
|
638
|
+
* shared by every read path (cascade service, mission routes' read-migration).
|
|
639
|
+
*
|
|
640
|
+
* Prefers the mission's explicit `level`; when absent (legacy missions persisted
|
|
641
|
+
* before the cascade fields existed) it falls back to {@link deriveLevel}, which
|
|
642
|
+
* walks the `parentMissionId` chain (no parent ⇒ `company`, one parent ⇒ `team`,
|
|
643
|
+
* two-or-more ⇒ `project`). Centralising the fallback here guarantees the same
|
|
644
|
+
* document resolves to the same level no matter which code path reads it.
|
|
645
|
+
*
|
|
646
|
+
* @param mission - The mission whose level to resolve (needs `id`, optional
|
|
647
|
+
* `level` + `parentMissionId`)
|
|
648
|
+
* @param byId - All missions indexed by ID for the parent-chain walk
|
|
649
|
+
* @returns The resolved {@link MissionLevel}
|
|
650
|
+
*
|
|
651
|
+
* @example
|
|
652
|
+
* ```ts
|
|
653
|
+
* resolveMissionLevel({ id: 'co', }, byId); // 'company' (no parent)
|
|
654
|
+
* resolveMissionLevel({ id: 't', parentMissionId: 'co' }, byId); // 'team'
|
|
655
|
+
* ```
|
|
656
|
+
*/
|
|
657
|
+
export function resolveMissionLevel(mission, byId) {
|
|
658
|
+
if (mission.level)
|
|
659
|
+
return mission.level;
|
|
660
|
+
return deriveLevel(mission.id, byId);
|
|
661
|
+
}
|
|
662
|
+
/**
|
|
663
|
+
* Combined cascade-link guard: runs the raw cycle/self-ref check
|
|
664
|
+
* ({@link validateParentLink}) AND the level-adjacency check
|
|
665
|
+
* ({@link validateLevelLink}). The parent's level is read from `byId` (its own
|
|
666
|
+
* `level` field, falling back to {@link deriveLevel} when absent).
|
|
667
|
+
*
|
|
668
|
+
* `validateParentLink` keeps its original signature for callers that only need
|
|
669
|
+
* the cycle check.
|
|
670
|
+
*
|
|
671
|
+
* @param childId - The mission that would acquire the parent
|
|
672
|
+
* @param childLevel - The proposed level of the child mission
|
|
673
|
+
* @param parentId - The proposed parent mission ID, or `undefined` for a root
|
|
674
|
+
* @param byId - All existing missions indexed by ID
|
|
675
|
+
* @returns `null` if the link is valid, otherwise a human-readable reason
|
|
676
|
+
*
|
|
677
|
+
* @example
|
|
678
|
+
* ```ts
|
|
679
|
+
* const reason = validateCascadeLink('p1', 'project', 't1', byId);
|
|
680
|
+
* if (reason) throw new Error(reason);
|
|
681
|
+
* ```
|
|
682
|
+
*/
|
|
683
|
+
export function validateCascadeLink(childId, childLevel, parentId, byId) {
|
|
684
|
+
if (parentId === undefined) {
|
|
685
|
+
return validateLevelLink(childLevel, undefined);
|
|
686
|
+
}
|
|
687
|
+
const cycleReason = validateParentLink(childId, parentId, byId);
|
|
688
|
+
if (cycleReason)
|
|
689
|
+
return cycleReason;
|
|
690
|
+
const parent = byId.get(parentId);
|
|
691
|
+
const parentLevel = parent?.level ?? deriveLevel(parentId, byId);
|
|
692
|
+
return validateLevelLink(childLevel, parentLevel);
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
* Sort missions by status (active first), then by priority rank, then by recency.
|
|
696
|
+
*
|
|
697
|
+
* @param missions - Missions to sort (not mutated)
|
|
698
|
+
* @returns New array sorted by status → priority → createdAt desc
|
|
699
|
+
*/
|
|
700
|
+
export function sortMissionsByPriority(missions) {
|
|
701
|
+
return [...missions].sort((a, b) => {
|
|
702
|
+
if (a.status === 'active' && b.status !== 'active')
|
|
703
|
+
return -1;
|
|
704
|
+
if (a.status !== 'active' && b.status === 'active')
|
|
705
|
+
return 1;
|
|
706
|
+
const rankA = MISSION_PRIORITY_RANK[a.priority ?? 'low'];
|
|
707
|
+
const rankB = MISSION_PRIORITY_RANK[b.priority ?? 'low'];
|
|
708
|
+
if (rankA !== rankB)
|
|
709
|
+
return rankA - rankB;
|
|
710
|
+
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
//# sourceMappingURL=mission.types.js.map
|