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,407 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session State Persistence Module
|
|
3
|
+
*
|
|
4
|
+
* Saves session metadata on shutdown and restores sessions on startup.
|
|
5
|
+
* This compensates for PTY sessions not persisting like tmux sessions do.
|
|
6
|
+
*
|
|
7
|
+
* @module session-state-persistence
|
|
8
|
+
*/
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import * as fs from 'fs/promises';
|
|
11
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
12
|
+
import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
|
|
13
|
+
import { getCrewlyHomePath } from '../core/crewly-home.utils.js';
|
|
14
|
+
/** Current version of the state file schema */
|
|
15
|
+
const STATE_VERSION = 1;
|
|
16
|
+
/**
|
|
17
|
+
* Default state file location.
|
|
18
|
+
*
|
|
19
|
+
* Resolved via {@link getCrewlyHomePath} so test profiles (CREWLY_HOME=/tmp/...)
|
|
20
|
+
* read and write their own session-state.json instead of the user's real
|
|
21
|
+
* `~/.crewly/session-state.json`. Computed lazily inside the function so a
|
|
22
|
+
* test that sets `process.env.CREWLY_HOME` after module load still gets the
|
|
23
|
+
* override; the previous module-level constant captured `homedir()` at
|
|
24
|
+
* import time and silently leaked across profiles.
|
|
25
|
+
*/
|
|
26
|
+
function defaultStateFile() {
|
|
27
|
+
return path.join(getCrewlyHomePath(), 'session-state.json');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Session State Persistence Service
|
|
31
|
+
*
|
|
32
|
+
* Manages saving and restoring session state for PTY-based sessions.
|
|
33
|
+
* Sessions are saved when the backend shuts down and restored on startup.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const persistence = new SessionStatePersistence();
|
|
38
|
+
*
|
|
39
|
+
* // Register a session for persistence
|
|
40
|
+
* persistence.registerSession('my-session', options, 'claude-code', 'dev');
|
|
41
|
+
*
|
|
42
|
+
* // Save state on shutdown
|
|
43
|
+
* await persistence.saveState(backend);
|
|
44
|
+
*
|
|
45
|
+
* // Restore state on startup
|
|
46
|
+
* await persistence.restoreState(backend);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export class SessionStatePersistence {
|
|
50
|
+
/** Path to the state file */
|
|
51
|
+
filePath;
|
|
52
|
+
/** Map of session name to metadata for persistence */
|
|
53
|
+
sessionMetadata = new Map();
|
|
54
|
+
/** Set of session names that were restored from the state file on startup */
|
|
55
|
+
restoredSessionNames = new Set();
|
|
56
|
+
/** Logger instance */
|
|
57
|
+
logger;
|
|
58
|
+
/**
|
|
59
|
+
* Create a new SessionStatePersistence instance.
|
|
60
|
+
*
|
|
61
|
+
* @param filePath - Optional custom path for the state file
|
|
62
|
+
*/
|
|
63
|
+
constructor(filePath) {
|
|
64
|
+
this.filePath = filePath ?? defaultStateFile();
|
|
65
|
+
this.logger = LoggerService.getInstance().createComponentLogger('SessionPersistence');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Register a session for persistence tracking.
|
|
69
|
+
*
|
|
70
|
+
* @param name - Session name
|
|
71
|
+
* @param options - Session options used to create the session
|
|
72
|
+
* @param runtimeType - Type of runtime (claude-code, gemini-cli, codex-cli)
|
|
73
|
+
* @param role - Optional role for the agent
|
|
74
|
+
* @param teamId - Optional team ID
|
|
75
|
+
* @param memberId - Optional member ID for team member sessions
|
|
76
|
+
*/
|
|
77
|
+
registerSession(name, options, runtimeType, role, teamId, memberId) {
|
|
78
|
+
this.sessionMetadata.set(name, {
|
|
79
|
+
name,
|
|
80
|
+
cwd: options.cwd,
|
|
81
|
+
command: options.command,
|
|
82
|
+
args: options.args ?? [],
|
|
83
|
+
runtimeType,
|
|
84
|
+
role,
|
|
85
|
+
teamId,
|
|
86
|
+
memberId,
|
|
87
|
+
env: options.env,
|
|
88
|
+
});
|
|
89
|
+
this.logger.debug('Registered session for persistence', { name, runtimeType, role });
|
|
90
|
+
this.autoSave().catch((err) => {
|
|
91
|
+
this.logger.warn('Auto-save after register failed', {
|
|
92
|
+
error: err instanceof Error ? err.message : String(err),
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Remove a session from persistence tracking.
|
|
98
|
+
*
|
|
99
|
+
* @param name - Session name to unregister
|
|
100
|
+
*/
|
|
101
|
+
unregisterSession(name) {
|
|
102
|
+
const deleted = this.sessionMetadata.delete(name);
|
|
103
|
+
if (deleted) {
|
|
104
|
+
this.logger.debug('Unregistered session from persistence', { name });
|
|
105
|
+
this.autoSave().catch((err) => {
|
|
106
|
+
this.logger.warn('Auto-save after unregister failed', {
|
|
107
|
+
error: err instanceof Error ? err.message : String(err),
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Check if a session is registered for persistence.
|
|
114
|
+
*
|
|
115
|
+
* @param name - Session name to check
|
|
116
|
+
* @returns true if the session is registered
|
|
117
|
+
*/
|
|
118
|
+
isSessionRegistered(name) {
|
|
119
|
+
return this.sessionMetadata.has(name);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get metadata for a registered session.
|
|
123
|
+
*
|
|
124
|
+
* @param name - Session name
|
|
125
|
+
* @returns Session metadata or undefined if not registered
|
|
126
|
+
*/
|
|
127
|
+
getSessionMetadata(name) {
|
|
128
|
+
return this.sessionMetadata.get(name);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Update the Claude session ID for a registered session.
|
|
132
|
+
* Called when an agent registers via MCP and reports its session ID.
|
|
133
|
+
*
|
|
134
|
+
* @param name - Session name
|
|
135
|
+
* @param claudeSessionId - The Claude conversation/session ID
|
|
136
|
+
*/
|
|
137
|
+
updateSessionId(name, claudeSessionId) {
|
|
138
|
+
const metadata = this.sessionMetadata.get(name);
|
|
139
|
+
if (metadata) {
|
|
140
|
+
metadata.claudeSessionId = claudeSessionId;
|
|
141
|
+
this.logger.info('Updated Claude session ID for persistence', { name, claudeSessionId });
|
|
142
|
+
this.autoSave().catch((err) => {
|
|
143
|
+
this.logger.warn('Auto-save after session ID update failed', {
|
|
144
|
+
error: err instanceof Error ? err.message : String(err),
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.logger.warn('Cannot update session ID - session not registered', { name });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get the Claude session ID for a registered session.
|
|
154
|
+
*
|
|
155
|
+
* @param name - Session name
|
|
156
|
+
* @returns Claude session ID or undefined
|
|
157
|
+
*/
|
|
158
|
+
getSessionId(name) {
|
|
159
|
+
return this.sessionMetadata.get(name)?.claudeSessionId;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Check if a session was restored from the state file on startup.
|
|
163
|
+
*
|
|
164
|
+
* Sessions loaded during restoreState() are tracked separately from
|
|
165
|
+
* newly created sessions. This allows the resume logic to determine
|
|
166
|
+
* whether an agent was running before the backend restart.
|
|
167
|
+
*
|
|
168
|
+
* @param name - Session name to check
|
|
169
|
+
* @returns true if the session was restored from persisted state
|
|
170
|
+
*/
|
|
171
|
+
isRestoredSession(name) {
|
|
172
|
+
return this.restoredSessionNames.has(name);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get all registered session names.
|
|
176
|
+
*
|
|
177
|
+
* @returns Array of registered session names
|
|
178
|
+
*/
|
|
179
|
+
getRegisteredSessions() {
|
|
180
|
+
return Array.from(this.sessionMetadata.keys());
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get all registered session metadata as a Map.
|
|
184
|
+
*
|
|
185
|
+
* @returns Map of session name to metadata
|
|
186
|
+
*/
|
|
187
|
+
getRegisteredSessionsMap() {
|
|
188
|
+
return new Map(this.sessionMetadata);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Build the current persisted state object from in-memory metadata.
|
|
192
|
+
*
|
|
193
|
+
* @returns PersistedState snapshot
|
|
194
|
+
*/
|
|
195
|
+
buildState() {
|
|
196
|
+
return {
|
|
197
|
+
version: STATE_VERSION,
|
|
198
|
+
savedAt: new Date().toISOString(),
|
|
199
|
+
sessions: Array.from(this.sessionMetadata.values()),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Auto-save current session metadata to disk.
|
|
204
|
+
* Called after register/unregister/updateSessionId to keep the state file
|
|
205
|
+
* in sync with in-memory metadata at all times. This ensures the state file
|
|
206
|
+
* is always up-to-date even if the process is killed before graceful shutdown.
|
|
207
|
+
*/
|
|
208
|
+
async autoSave() {
|
|
209
|
+
try {
|
|
210
|
+
await fs.mkdir(path.dirname(this.filePath), { recursive: true });
|
|
211
|
+
await atomicWriteJson(this.filePath, this.buildState());
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
this.logger.warn('Failed to auto-save session state', {
|
|
215
|
+
error: error instanceof Error ? error.message : String(error),
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Save current session state to disk.
|
|
221
|
+
*
|
|
222
|
+
* Saves all sessions registered in sessionMetadata, which is the source
|
|
223
|
+
* of truth for what should persist.
|
|
224
|
+
*
|
|
225
|
+
* @param backend - Session backend (kept for backward compatibility, no longer used)
|
|
226
|
+
* @returns Number of sessions saved
|
|
227
|
+
*/
|
|
228
|
+
async saveState(backend) {
|
|
229
|
+
try {
|
|
230
|
+
await this.autoSave();
|
|
231
|
+
const count = this.sessionMetadata.size;
|
|
232
|
+
this.logger.info('Saved session state', {
|
|
233
|
+
count,
|
|
234
|
+
sessions: Array.from(this.sessionMetadata.keys()),
|
|
235
|
+
});
|
|
236
|
+
return count;
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
this.logger.error('Failed to save session state', {
|
|
240
|
+
error: error instanceof Error ? error.message : String(error),
|
|
241
|
+
});
|
|
242
|
+
return 0;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Restore sessions from saved state.
|
|
247
|
+
*
|
|
248
|
+
* For Claude sessions, uses --resume flag to restore conversation context.
|
|
249
|
+
*
|
|
250
|
+
* @param backend - Session backend to create sessions in
|
|
251
|
+
* @returns Number of sessions successfully restored
|
|
252
|
+
*/
|
|
253
|
+
async restoreState(backend) {
|
|
254
|
+
try {
|
|
255
|
+
const state = await safeReadJson(this.filePath, null, this.logger);
|
|
256
|
+
if (!state) {
|
|
257
|
+
this.logger.info('No saved session state found');
|
|
258
|
+
return 0;
|
|
259
|
+
}
|
|
260
|
+
if (state.version !== STATE_VERSION) {
|
|
261
|
+
this.logger.warn('Unknown state version, skipping restore', {
|
|
262
|
+
version: state.version,
|
|
263
|
+
expected: STATE_VERSION,
|
|
264
|
+
});
|
|
265
|
+
return 0;
|
|
266
|
+
}
|
|
267
|
+
let restored = 0;
|
|
268
|
+
const failed = [];
|
|
269
|
+
for (const sessionInfo of state.sessions) {
|
|
270
|
+
try {
|
|
271
|
+
// For Claude, always use --resume to restore conversation
|
|
272
|
+
const args = this.getRestoreArgs(sessionInfo);
|
|
273
|
+
await backend.createSession(sessionInfo.name, {
|
|
274
|
+
cwd: sessionInfo.cwd,
|
|
275
|
+
command: sessionInfo.command,
|
|
276
|
+
args,
|
|
277
|
+
env: sessionInfo.env,
|
|
278
|
+
});
|
|
279
|
+
// Re-register metadata for future saves
|
|
280
|
+
this.sessionMetadata.set(sessionInfo.name, sessionInfo);
|
|
281
|
+
this.restoredSessionNames.add(sessionInfo.name);
|
|
282
|
+
restored++;
|
|
283
|
+
this.logger.info('Restored session', {
|
|
284
|
+
name: sessionInfo.name,
|
|
285
|
+
runtimeType: sessionInfo.runtimeType,
|
|
286
|
+
hasClaudeSessionId: !!sessionInfo.claudeSessionId,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
failed.push(sessionInfo.name);
|
|
291
|
+
this.logger.error('Failed to restore session', {
|
|
292
|
+
name: sessionInfo.name,
|
|
293
|
+
error: error instanceof Error ? error.message : String(error),
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
this.logger.info('Session restore complete', {
|
|
298
|
+
restored,
|
|
299
|
+
total: state.sessions.length,
|
|
300
|
+
failed: failed.length > 0 ? failed : undefined,
|
|
301
|
+
});
|
|
302
|
+
return restored;
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
this.logger.error('Failed to restore session state', {
|
|
306
|
+
error: error instanceof Error ? error.message : String(error),
|
|
307
|
+
});
|
|
308
|
+
return 0;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Get the arguments to use when restoring a session.
|
|
313
|
+
*
|
|
314
|
+
* The persisted command is the shell (e.g. /bin/zsh), not the Claude binary.
|
|
315
|
+
* Claude Code is launched inside the shell by initializeAgentWithRegistration,
|
|
316
|
+
* so we must NOT add --resume to the shell args — it would cause
|
|
317
|
+
* "/bin/zsh: no such option: resume".
|
|
318
|
+
*
|
|
319
|
+
* @param sessionInfo - Session metadata
|
|
320
|
+
* @returns Arguments array for session creation
|
|
321
|
+
*/
|
|
322
|
+
getRestoreArgs(sessionInfo) {
|
|
323
|
+
// Return original args as-is. The persisted command is the shell,
|
|
324
|
+
// not the runtime binary — flags like --resume belong on the runtime
|
|
325
|
+
// command which is launched separately during initialization.
|
|
326
|
+
return [...sessionInfo.args];
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Clear the saved state file.
|
|
330
|
+
*/
|
|
331
|
+
async clearState() {
|
|
332
|
+
try {
|
|
333
|
+
await fs.unlink(this.filePath);
|
|
334
|
+
this.logger.info('Cleared session state file');
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
const errno = error;
|
|
338
|
+
if (errno.code !== 'ENOENT') {
|
|
339
|
+
this.logger.error('Failed to clear session state file', {
|
|
340
|
+
error: error instanceof Error ? error.message : String(error),
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Clear both in-memory metadata and the state file on disk.
|
|
347
|
+
* Used when the user dismisses the session resume popup.
|
|
348
|
+
*/
|
|
349
|
+
async clearStateAndMetadata() {
|
|
350
|
+
this.sessionMetadata.clear();
|
|
351
|
+
this.restoredSessionNames.clear();
|
|
352
|
+
await this.clearState();
|
|
353
|
+
this.logger.info('Cleared session metadata and state file');
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Clear all registered session metadata (in-memory only).
|
|
357
|
+
*/
|
|
358
|
+
clearMetadata() {
|
|
359
|
+
this.sessionMetadata.clear();
|
|
360
|
+
this.restoredSessionNames.clear();
|
|
361
|
+
this.logger.debug('Cleared session metadata');
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Get the path to the state file.
|
|
365
|
+
*
|
|
366
|
+
* @returns State file path
|
|
367
|
+
*/
|
|
368
|
+
getFilePath() {
|
|
369
|
+
return this.filePath;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Load state from file without restoring sessions.
|
|
373
|
+
*
|
|
374
|
+
* @returns Persisted state or null if not found/invalid
|
|
375
|
+
*/
|
|
376
|
+
async loadState() {
|
|
377
|
+
const state = await safeReadJson(this.filePath, null, this.logger);
|
|
378
|
+
if (!state) {
|
|
379
|
+
return null;
|
|
380
|
+
}
|
|
381
|
+
if (state.version !== STATE_VERSION) {
|
|
382
|
+
this.logger.warn('Unknown state version', { version: state.version });
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
return state;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/** Singleton instance for application-wide use */
|
|
389
|
+
let _instance = null;
|
|
390
|
+
/**
|
|
391
|
+
* Get the singleton SessionStatePersistence instance.
|
|
392
|
+
*
|
|
393
|
+
* @returns SessionStatePersistence instance
|
|
394
|
+
*/
|
|
395
|
+
export function getSessionStatePersistence() {
|
|
396
|
+
if (!_instance) {
|
|
397
|
+
_instance = new SessionStatePersistence();
|
|
398
|
+
}
|
|
399
|
+
return _instance;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Reset the singleton instance (for testing).
|
|
403
|
+
*/
|
|
404
|
+
export function resetSessionStatePersistence() {
|
|
405
|
+
_instance = null;
|
|
406
|
+
}
|
|
407
|
+
//# sourceMappingURL=session-state-persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-state-persistence.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-state-persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Management Service
|
|
3
|
+
*
|
|
4
|
+
* Handles CRUD operations for AI agent roles, loading from configuration
|
|
5
|
+
* directories, and managing role-to-skill assignments.
|
|
6
|
+
*
|
|
7
|
+
* @module services/settings/role.service
|
|
8
|
+
*/
|
|
9
|
+
import { Role, RoleWithPrompt, RoleSummary, CreateRoleInput, UpdateRoleInput, RoleFilter } from '../../types/role.types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when a role is not found
|
|
12
|
+
*/
|
|
13
|
+
export declare class RoleNotFoundError extends Error {
|
|
14
|
+
constructor(id: string);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when role validation fails
|
|
18
|
+
*/
|
|
19
|
+
export declare class RoleValidationError extends Error {
|
|
20
|
+
readonly errors: string[];
|
|
21
|
+
constructor(errors: string[]);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error thrown when attempting to modify a built-in role
|
|
25
|
+
*/
|
|
26
|
+
export declare class BuiltinRoleModificationError extends Error {
|
|
27
|
+
constructor(action: string);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Error thrown when a role with the same name already exists
|
|
31
|
+
*/
|
|
32
|
+
export declare class DuplicateRoleNameError extends Error {
|
|
33
|
+
constructor(name: string);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Service for managing AI agent roles
|
|
37
|
+
*
|
|
38
|
+
* Handles:
|
|
39
|
+
* - Loading built-in roles from config/roles/
|
|
40
|
+
* - Managing user-created roles in ~/.crewly/roles/
|
|
41
|
+
* - CRUD operations for roles
|
|
42
|
+
* - Role-to-skill assignment management
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const service = getRoleService();
|
|
47
|
+
* await service.initialize();
|
|
48
|
+
*
|
|
49
|
+
* // List all roles
|
|
50
|
+
* const roles = await service.listRoles();
|
|
51
|
+
*
|
|
52
|
+
* // Create a new role
|
|
53
|
+
* const newRole = await service.createRole({
|
|
54
|
+
* name: 'my-role',
|
|
55
|
+
* displayName: 'My Role',
|
|
56
|
+
* description: 'A custom role',
|
|
57
|
+
* category: 'development',
|
|
58
|
+
* systemPromptContent: 'You are a helpful assistant.',
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class RoleService {
|
|
63
|
+
private readonly builtinRolesDir;
|
|
64
|
+
private readonly userRolesDir;
|
|
65
|
+
private rolesCache;
|
|
66
|
+
private promptCache;
|
|
67
|
+
private initialized;
|
|
68
|
+
private readonly logger;
|
|
69
|
+
/**
|
|
70
|
+
* Create a new RoleService instance
|
|
71
|
+
*
|
|
72
|
+
* @param options - Configuration options
|
|
73
|
+
* @param options.builtinRolesDir - Directory for built-in roles
|
|
74
|
+
* @param options.userRolesDir - Directory for user-created roles
|
|
75
|
+
*/
|
|
76
|
+
constructor(options?: {
|
|
77
|
+
builtinRolesDir?: string;
|
|
78
|
+
userRolesDir?: string;
|
|
79
|
+
});
|
|
80
|
+
/**
|
|
81
|
+
* Initialize the service by loading all roles
|
|
82
|
+
* Must be called before using other methods
|
|
83
|
+
*/
|
|
84
|
+
initialize(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Get all roles, optionally filtered
|
|
87
|
+
*
|
|
88
|
+
* @param filter - Optional filter criteria
|
|
89
|
+
* @param includeHidden - Whether to include hidden roles (default: false for UI)
|
|
90
|
+
* @returns Array of role summaries
|
|
91
|
+
*/
|
|
92
|
+
listRoles(filter?: RoleFilter, includeHidden?: boolean): Promise<RoleSummary[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Get a role by ID with full prompt content
|
|
95
|
+
*
|
|
96
|
+
* @param id - The role ID
|
|
97
|
+
* @returns The role with prompt content, or null if not found
|
|
98
|
+
*/
|
|
99
|
+
getRole(id: string): Promise<RoleWithPrompt | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Get a role by name (includes hidden roles)
|
|
102
|
+
*
|
|
103
|
+
* @param name - The role name
|
|
104
|
+
* @returns The role with prompt content, or null if not found
|
|
105
|
+
*/
|
|
106
|
+
getRoleByName(name: string): Promise<RoleWithPrompt | null>;
|
|
107
|
+
/**
|
|
108
|
+
* Get the prompt file path for a role
|
|
109
|
+
* Used by PromptBuilderService and AgentRegistrationService
|
|
110
|
+
*
|
|
111
|
+
* @param roleName - The role name (e.g., 'orchestrator', 'tpm', 'developer')
|
|
112
|
+
* @returns The full path to the prompt file, or null if role not found
|
|
113
|
+
*/
|
|
114
|
+
getPromptFilePath(roleName: string): Promise<string | null>;
|
|
115
|
+
/**
|
|
116
|
+
* Get the built-in roles directory path
|
|
117
|
+
*
|
|
118
|
+
* @returns The path to built-in roles directory
|
|
119
|
+
*/
|
|
120
|
+
getBuiltinRolesDir(): string;
|
|
121
|
+
/**
|
|
122
|
+
* Create a new user-defined role
|
|
123
|
+
*
|
|
124
|
+
* @param input - The role creation input
|
|
125
|
+
* @returns The created role
|
|
126
|
+
* @throws {RoleValidationError} If input validation fails
|
|
127
|
+
* @throws {DuplicateRoleNameError} If a role with the same name exists
|
|
128
|
+
*/
|
|
129
|
+
createRole(input: CreateRoleInput): Promise<Role>;
|
|
130
|
+
/**
|
|
131
|
+
* Update an existing role
|
|
132
|
+
*
|
|
133
|
+
* For builtin roles: Creates an override in ~/.crewly/roles/ (original stays intact)
|
|
134
|
+
* For user roles: Updates the role directly
|
|
135
|
+
*
|
|
136
|
+
* @param id - The role ID
|
|
137
|
+
* @param input - The update input
|
|
138
|
+
* @returns The updated role
|
|
139
|
+
* @throws {RoleNotFoundError} If the role is not found
|
|
140
|
+
* @throws {RoleValidationError} If input validation fails
|
|
141
|
+
*/
|
|
142
|
+
updateRole(id: string, input: UpdateRoleInput): Promise<Role>;
|
|
143
|
+
/**
|
|
144
|
+
* Check if a builtin role has a user override
|
|
145
|
+
*
|
|
146
|
+
* @param id - The role ID
|
|
147
|
+
* @returns True if the role has a user override
|
|
148
|
+
*/
|
|
149
|
+
hasOverride(id: string): Promise<boolean>;
|
|
150
|
+
/**
|
|
151
|
+
* Reset a builtin role to its default (removes user override)
|
|
152
|
+
*
|
|
153
|
+
* @param id - The role ID
|
|
154
|
+
* @returns The reset role (original builtin values)
|
|
155
|
+
* @throws {RoleNotFoundError} If the role is not found
|
|
156
|
+
*/
|
|
157
|
+
resetToDefault(id: string): Promise<Role>;
|
|
158
|
+
/**
|
|
159
|
+
* Delete a user-created role (built-in roles cannot be deleted)
|
|
160
|
+
*
|
|
161
|
+
* @param id - The role ID
|
|
162
|
+
* @throws {RoleNotFoundError} If the role is not found
|
|
163
|
+
* @throws {BuiltinRoleModificationError} If attempting to delete a built-in role
|
|
164
|
+
*/
|
|
165
|
+
deleteRole(id: string): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Assign skills to a role
|
|
168
|
+
*
|
|
169
|
+
* @param roleId - The role ID
|
|
170
|
+
* @param skillIds - Array of skill IDs to assign
|
|
171
|
+
* @returns The updated role
|
|
172
|
+
* @throws {RoleNotFoundError} If the role is not found
|
|
173
|
+
* @throws {BuiltinRoleModificationError} If attempting to modify a built-in role
|
|
174
|
+
*/
|
|
175
|
+
assignSkills(roleId: string, skillIds: string[]): Promise<Role>;
|
|
176
|
+
/**
|
|
177
|
+
* Remove skills from a role
|
|
178
|
+
*
|
|
179
|
+
* @param roleId - The role ID
|
|
180
|
+
* @param skillIds - Array of skill IDs to remove
|
|
181
|
+
* @returns The updated role
|
|
182
|
+
* @throws {RoleNotFoundError} If the role is not found
|
|
183
|
+
* @throws {BuiltinRoleModificationError} If attempting to modify a built-in role
|
|
184
|
+
*/
|
|
185
|
+
removeSkills(roleId: string, skillIds: string[]): Promise<Role>;
|
|
186
|
+
/**
|
|
187
|
+
* Set the default role
|
|
188
|
+
*
|
|
189
|
+
* @param roleId - The role ID to set as default
|
|
190
|
+
* @returns The updated role
|
|
191
|
+
* @throws {RoleNotFoundError} If the role is not found
|
|
192
|
+
*/
|
|
193
|
+
setDefaultRole(roleId: string): Promise<Role>;
|
|
194
|
+
/**
|
|
195
|
+
* Get the current default role
|
|
196
|
+
*
|
|
197
|
+
* @returns The default role, or null if none is set
|
|
198
|
+
*/
|
|
199
|
+
getDefaultRole(): Promise<Role | null>;
|
|
200
|
+
/**
|
|
201
|
+
* Refresh the roles cache by reloading from disk
|
|
202
|
+
*/
|
|
203
|
+
refresh(): Promise<void>;
|
|
204
|
+
/**
|
|
205
|
+
* Ensure the service is initialized.
|
|
206
|
+
* Auto-initializes if not already done.
|
|
207
|
+
*/
|
|
208
|
+
private ensureInitialized;
|
|
209
|
+
/**
|
|
210
|
+
* Load built-in roles from the config directory
|
|
211
|
+
* Loads from subdirectories (config/roles/{role}/role.json)
|
|
212
|
+
*/
|
|
213
|
+
private loadBuiltinRoles;
|
|
214
|
+
/**
|
|
215
|
+
* Load user-created roles from the user directory
|
|
216
|
+
*/
|
|
217
|
+
private loadUserRoles;
|
|
218
|
+
/**
|
|
219
|
+
* Save a role and its prompt content to disk
|
|
220
|
+
*
|
|
221
|
+
* @param role - The role to save
|
|
222
|
+
* @param promptContent - The prompt content to save
|
|
223
|
+
*/
|
|
224
|
+
private saveRole;
|
|
225
|
+
/**
|
|
226
|
+
* Save a role override to user directory
|
|
227
|
+
* Uses subdirectory structure: ~/.crewly/roles/{role-name}/role.json + prompt.md
|
|
228
|
+
*
|
|
229
|
+
* @param role - The role to save
|
|
230
|
+
* @param promptContent - The prompt content
|
|
231
|
+
*/
|
|
232
|
+
private saveRoleOverride;
|
|
233
|
+
/**
|
|
234
|
+
* Load prompt content from a file
|
|
235
|
+
* For built-in roles, checks for user override first, then falls back to builtin
|
|
236
|
+
* For user roles, loads from ~/.crewly/roles/
|
|
237
|
+
*
|
|
238
|
+
* @param promptFile - The prompt file name (e.g., "prompt.md")
|
|
239
|
+
* @param isBuiltin - Whether this is a built-in role
|
|
240
|
+
* @param roleName - The role name (directory name)
|
|
241
|
+
* @returns The prompt content
|
|
242
|
+
*/
|
|
243
|
+
private loadPromptContent;
|
|
244
|
+
/**
|
|
245
|
+
* Ensure the user roles directory exists
|
|
246
|
+
*/
|
|
247
|
+
private ensureUserRolesDir;
|
|
248
|
+
/**
|
|
249
|
+
* Generate a unique role ID
|
|
250
|
+
*
|
|
251
|
+
* @param name - The role name
|
|
252
|
+
* @returns A unique ID
|
|
253
|
+
*/
|
|
254
|
+
private generateRoleId;
|
|
255
|
+
/**
|
|
256
|
+
* Sanitize a role name for use in file names
|
|
257
|
+
*
|
|
258
|
+
* @param name - The role name
|
|
259
|
+
* @returns The sanitized name
|
|
260
|
+
*/
|
|
261
|
+
private sanitizeRoleName;
|
|
262
|
+
/**
|
|
263
|
+
* Unset isDefault on all roles
|
|
264
|
+
*/
|
|
265
|
+
private unsetAllDefaults;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get the singleton RoleService instance
|
|
269
|
+
*
|
|
270
|
+
* @returns The RoleService instance
|
|
271
|
+
*/
|
|
272
|
+
export declare function getRoleService(): RoleService;
|
|
273
|
+
/**
|
|
274
|
+
* Reset the singleton instance (for testing)
|
|
275
|
+
*/
|
|
276
|
+
export declare function resetRoleService(): void;
|
|
277
|
+
//# sourceMappingURL=role.service.d.ts.map
|