crewly 1.5.17 → 1.5.19
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/constants.ts +50 -0
- package/config/domain-sops/content-production-pipeline.sop.md +76 -0
- package/config/domain-sops/content-publishing-policy.sop.md +59 -0
- package/config/domain-sops/customer-onboarding.sop.md +74 -0
- package/config/domain-sops/expert-distillation.sop.md +70 -0
- package/config/domain-sops/innovation-strategy.sop.md +26 -0
- package/config/experts/EXAMPLE.json +11 -0
- package/config/experts/EXAMPLE.md +41 -0
- package/config/experts/empathetic-resolver/expert.json +11 -0
- package/config/experts/empathetic-resolver.md +32 -0
- package/config/experts/pragmatic-architect/expert.json +11 -0
- package/config/experts/pragmatic-architect.md +32 -0
- package/config/experts/viral-alchemist/expert.json +11 -0
- package/config/experts/viral-alchemist.md +32 -0
- package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +2 -2
- package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +11 -1
- package/config/roles/developer/prompt.md +43 -0
- package/config/roles/orchestrator/fragments/role-boundary.md +31 -0
- package/config/roles/orchestrator/prompt.md +104 -0
- package/config/skills/agent/computer-use/SKILL.md +144 -93
- package/config/skills/agent/computer-use/execute.sh +847 -211
- package/config/skills/agent/core/break-down-request/SKILL.md +128 -0
- package/config/skills/agent/core/break-down-request/execute.sh +200 -0
- package/config/skills/agent/core/claim-heartbeat/execute.sh +57 -0
- package/config/skills/agent/core/claim-heartbeat/execute.test.sh +130 -0
- package/config/skills/agent/core/create-intent-tasks/execute.sh +93 -0
- package/config/skills/agent/core/create-mission/SKILL.md +78 -0
- package/config/skills/agent/core/create-mission/execute.sh +141 -0
- package/config/skills/agent/core/create-request/SKILL.md +132 -0
- package/config/skills/agent/core/create-request/execute.sh +176 -0
- package/config/skills/agent/core/create-task/SKILL.md +76 -0
- package/config/skills/agent/core/create-task/execute.sh +134 -0
- package/config/skills/agent/core/decompose-intent/execute.sh +106 -0
- package/config/skills/agent/core/extend-lease/execute.sh +63 -0
- package/config/skills/agent/core/extend-lease/execute.test.sh +46 -0
- package/config/skills/agent/core/get-my-context/execute.sh +85 -8
- package/config/skills/agent/core/get-my-tasks/SKILL.md +58 -0
- package/config/skills/agent/core/get-my-tasks/execute.sh +77 -6
- package/config/skills/agent/core/handoff-task/execute.sh +139 -95
- package/config/skills/agent/core/handoff-task/execute.test.sh +348 -0
- package/config/skills/agent/core/poll-tasks/execute.sh +182 -0
- package/config/skills/agent/core/poll-tasks/execute.test.sh +215 -0
- package/config/skills/agent/core/register-self/execute.sh +102 -14
- package/config/skills/agent/core/release-claim/execute.sh +53 -0
- package/config/skills/agent/core/release-claim/execute.test.sh +46 -0
- package/config/skills/agent/core/report-status/execute.sh +44 -0
- package/config/skills/agent/core/update-intent-task/execute.sh +93 -0
- package/config/skills/agent/core/work-loop/execute.sh +130 -0
- package/config/skills/agent/core/work-loop/execute.test.sh +52 -0
- package/config/skills/agent/core/workspace/execute.sh +270 -0
- package/config/skills/agent/core/workspace/execute.test.sh +185 -0
- package/config/skills/agent/remote-browser/SOP-google-flow-video.md +202 -0
- package/config/skills/agent/remote-browser/execute.sh +287 -0
- package/config/skills/agent/v3/plan-request/SKILL.md +72 -0
- package/config/skills/agent/v3/plan-request/execute.sh +116 -0
- package/config/skills/orchestrator/decompose-mission/SKILL.md +78 -0
- package/config/skills/orchestrator/decompose-mission/execute.sh +138 -0
- package/config/skills/orchestrator/delegate-task/SKILL.md +4 -3
- package/config/skills/orchestrator/delegate-task/execute.sh +43 -97
- package/config/skills/orchestrator/design-team/SKILL.md +51 -0
- package/config/skills/orchestrator/design-team/execute.sh +145 -0
- package/config/skills/orchestrator/measure-kr/SKILL.md +47 -0
- package/config/skills/orchestrator/measure-kr/execute.sh +87 -0
- package/config/skills/orchestrator/review-mission/SKILL.md +61 -0
- package/config/skills/orchestrator/review-mission/execute.sh +127 -0
- package/config/skills/team-leader/aggregate-results/execute.sh +25 -74
- package/config/skills/team-leader/delegate-task/SKILL.md +10 -0
- package/config/skills/team-leader/delegate-task/execute.sh +42 -3
- package/config/skills/team-leader/design-checklist/SKILL.md +122 -0
- package/config/skills/team-leader/design-checklist/execute.sh +157 -0
- package/config/skills/team-leader/verify-output/execute.sh +42 -0
- package/config/templates/agent-gemini-md.md +3 -1
- package/config/templates/ai-video-social-team.json +22 -0
- package/config/templates/broker-squad-v1.json +22 -0
- package/config/templates/customer-loyalty-team.json +44 -0
- package/config/templates/customer-ops-team.json +22 -0
- package/config/templates/dtc-viral-content-team.json +58 -0
- package/config/templates/expert-innovation-team.json +60 -0
- package/config/templates/growth-marketing-team.json +22 -0
- package/config/templates/pragmatic-mvp-dev-team.json +58 -0
- package/config/templates/pro-sops/norms/content-production-pipeline.md +39 -0
- package/config/templates/pro-sops/norms/customer-onboarding-sop.md +40 -0
- package/config/templates/prop-manager-v1.json +22 -0
- package/dist/backend/backend/src/constants.d.ts +5 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +5 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +12 -2
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +36 -20
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js +4 -2
- package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +28 -0
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +5 -2
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts +72 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js +202 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts +16 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js +32 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +63 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.js +228 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +23 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.js +37 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +29 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.js +79 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.js +21 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/expert/index.d.ts +9 -0
- package/dist/backend/backend/src/controllers/expert/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/expert/index.js +9 -0
- package/dist/backend/backend/src/controllers/expert/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts +80 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.js +264 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.js +29 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts +29 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.js +74 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts +20 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.js +26 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/index.d.ts +5 -1
- package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/index.js +9 -1
- package/dist/backend/backend/src/controllers/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/intent-task/index.d.ts +9 -0
- package/dist/backend/backend/src/controllers/intent-task/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/index.js +9 -0
- package/dist/backend/backend/src/controllers/intent-task/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts +85 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js +356 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts +19 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js +43 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +8 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js +8 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +63 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +179 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +22 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +34 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +38 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +11 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +40 -0
- package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/mission/kr.controller.js +131 -0
- package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts +71 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js +270 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts +16 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +194 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +5 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts +19 -0
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js +36 -0
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/index.d.ts +7 -0
- package/dist/backend/backend/src/controllers/onboarding/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/index.js +7 -0
- package/dist/backend/backend/src/controllers/onboarding/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +24 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +340 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts +21 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js +181 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/payment/payment.controller.js +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.js +0 -2
- package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.js +9 -5
- package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts +84 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js +189 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts +16 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js +29 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts +51 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js +106 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js +25 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.controller.d.ts +55 -0
- package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.controller.js +168 -0
- package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts +23 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.routes.js +37 -0
- package/dist/backend/backend/src/controllers/request/request.routes.js.map +1 -0
- 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 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +20 -57
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +283 -385
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +157 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +648 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +45 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts +75 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js +170 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts +10 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js +29 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js +16 -12
- package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts +4 -4
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.js +73 -31
- package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts +50 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.js +125 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts +26 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.js +38 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/user/user-validation.d.ts +86 -0
- package/dist/backend/backend/src/controllers/user/user-validation.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/user/user-validation.js +165 -0
- package/dist/backend/backend/src/controllers/user/user-validation.js.map +1 -0
- package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/user/user.routes.js +7 -4
- package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts +72 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js +236 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js +31 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts +18 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +613 -12
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/cache.middleware.d.ts +43 -0
- package/dist/backend/backend/src/middleware/cache.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/cache.middleware.js +103 -0
- package/dist/backend/backend/src/middleware/cache.middleware.js.map +1 -0
- package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +49 -9
- package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/require-auth.middleware.js +115 -9
- package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +77 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.js +4 -0
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +6 -9
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +43 -30
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
- 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 +11 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +66 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +282 -4
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +60 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +407 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +130 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +406 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +68 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +206 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +32 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +46 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +87 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +299 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +59 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +218 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +203 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +467 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +313 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +45 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +15 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +349 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +97 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +414 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +42 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +403 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +41 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +58 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +15 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +396 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +14 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +564 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +13 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +634 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +1036 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +100 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +187 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +43 -6
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +7 -0
- 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.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +10 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +63 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +19 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +26 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +191 -8
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +4 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +48 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js +100 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +3 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +54 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +222 -25
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts +115 -0
- package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cache/redis-cache.service.js +316 -0
- package/dist/backend/backend/src/services/cache/redis-cache.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +17 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +74 -3
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/system-health.util.d.ts +23 -0
- package/dist/backend/backend/src/services/core/system-health.util.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/system-health.util.js +44 -0
- package/dist/backend/backend/src/services/core/system-health.util.js.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts +188 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.js +372 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.js.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts +137 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.js +133 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts +91 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js +179 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts +138 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js +244 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +333 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js +843 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +220 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts +34 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js +128 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +11 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.js +76 -11
- package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/embedding-provider.d.ts +78 -0
- package/dist/backend/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/embedding-provider.js +185 -0
- package/dist/backend/backend/src/services/memory/embedding-provider.js.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts +331 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.js +814 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +15 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +42 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +8 -0
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +20 -0
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +17 -0
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +62 -0
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +81 -0
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +287 -0
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts +73 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js +199 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +7 -0
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +37 -6
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +56 -4
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js +102 -7
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts +5 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js +41 -0
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts +36 -0
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +51 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +136 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts +178 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js +163 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts +141 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.js +411 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts +129 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.js +10 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts +241 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.js +605 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.js.map +1 -0
- package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/payment/stripe.service.js +17 -11
- package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
- package/dist/backend/backend/src/services/policy/default-policies.d.ts +66 -0
- package/dist/backend/backend/src/services/policy/default-policies.d.ts.map +1 -0
- package/dist/backend/backend/src/services/policy/default-policies.js +120 -0
- package/dist/backend/backend/src/services/policy/default-policies.js.map +1 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts +77 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.js +164 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.js.map +1 -0
- package/dist/backend/backend/src/services/project/active-projects.service.d.ts +0 -4
- package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/active-projects.service.js +1 -43
- package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.js +88 -48
- package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts +137 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js +410 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts +182 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js +84 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts +149 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.js +201 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts +135 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.js +261 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts +184 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.js +119 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +229 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +666 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +141 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +470 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +144 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +360 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -0
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +4 -3
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.js +13 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts +59 -0
- package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill/skill-permission.service.js +141 -0
- package/dist/backend/backend/src/services/skill/skill-permission.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +124 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +78 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +190 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.js +354 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +146 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.js +243 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +263 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +593 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -0
- package/dist/backend/backend/src/services/template/template.service.d.ts +2 -0
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +16 -3
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +90 -0
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +394 -0
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +100 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +357 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts +148 -0
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation.service.js +371 -0
- package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +109 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.js +314 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts +117 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.js +301 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.d.ts +73 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.js +200 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +58 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.js +221 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +118 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +326 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +52 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.js +161 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts +78 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.js +108 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts +166 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.js +310 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.d.ts +128 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.js +378 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +63 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +169 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +263 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +632 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +298 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.js +1075 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +5 -11
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +34 -23
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/workspace/workspace.service.d.ts +120 -0
- package/dist/backend/backend/src/services/workspace/workspace.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/workspace/workspace.service.js +271 -0
- package/dist/backend/backend/src/services/workspace/workspace.service.js.map +1 -0
- package/dist/backend/backend/src/types/index.d.ts +14 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts +386 -0
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/intent-task.types.js +231 -0
- package/dist/backend/backend/src/types/intent-task.types.js.map +1 -0
- package/dist/backend/backend/src/types/memory.types.d.ts +19 -0
- package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/memory.types.js.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +52 -0
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/claim.types.d.ts +140 -0
- package/dist/backend/backend/src/types/v2/claim.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/claim.types.js +180 -0
- package/dist/backend/backend/src/types/v2/claim.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/index.d.ts +30 -0
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/index.js +22 -0
- package/dist/backend/backend/src/types/v2/index.js.map +1 -0
- package/dist/backend/backend/src/types/v2/key-result.types.d.ts +195 -0
- package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/key-result.types.js +194 -0
- package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/mission.types.d.ts +357 -0
- package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/mission.types.js +416 -0
- package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +199 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.js +121 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts +188 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.js +178 -0
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/trigger.types.d.ts +185 -0
- package/dist/backend/backend/src/types/v2/trigger.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/trigger.types.js +172 -0
- package/dist/backend/backend/src/types/v2/trigger.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +323 -0
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js +264 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/workspace.types.d.ts +157 -0
- package/dist/backend/backend/src/types/v2/workspace.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/workspace.types.js +173 -0
- package/dist/backend/backend/src/types/v2/workspace.types.js.map +1 -0
- package/dist/backend/backend/src/types/v3/task-record.types.d.ts +98 -0
- package/dist/backend/backend/src/types/v3/task-record.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v3/task-record.types.js +55 -0
- package/dist/backend/backend/src/types/v3/task-record.types.js.map +1 -0
- package/dist/backend/config/constants.d.ts +47 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +49 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +5 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +5 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +220 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +11 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.js +76 -11
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +78 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.js +179 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.js.map +1 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +331 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.js +814 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +190 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.js +354 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +146 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.js +243 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +263 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +605 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -0
- package/dist/cli/backend/src/types/index.d.ts +14 -0
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/memory.types.d.ts +19 -0
- package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/memory.types.js.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.d.ts +220 -0
- package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/team-template.types.js +139 -0
- package/dist/cli/backend/src/types/team-template.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/claim.types.d.ts +143 -0
- package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/claim.types.js +183 -0
- package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +323 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js +271 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -0
- package/dist/cli/config/constants.d.ts +47 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +49 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/frontend/dist/assets/index-e3de7a8c.css +33 -0
- package/frontend/dist/assets/index-f6bc685f.js +4924 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +3 -1
- package/config/skills/agent/computer-use/lib/accessibility.sh +0 -292
- package/config/skills/agent/computer-use/lib/applescript.sh +0 -117
- package/config/skills/agent/computer-use/lib/discover.sh +0 -122
- package/config/skills/agent/computer-use/lib/playwright.sh +0 -153
- package/config/skills/agent/computer-use/lib/screenshot.sh +0 -61
- package/config/templates/cloud-deploy.json +0 -119
- package/config/templates/code-review-team/README.md +0 -176
- package/config/templates/code-review-team/team-config.json +0 -23
- package/config/templates/code-review-team.json +0 -62
- package/config/templates/content-generation-team/README.md +0 -128
- package/config/templates/content-generation-team/norms/publish-checklist.md +0 -64
- package/config/templates/content-generation-team/team-config.json +0 -28
- package/config/templates/content-generation-team.json +0 -67
- package/config/templates/dev-fullstack/norms/docker-deploy-cleanup.md +0 -28
- package/config/templates/dev-fullstack/template.json +0 -178
- package/config/templates/education-smb/README.md +0 -27
- package/config/templates/education-smb/goals.md +0 -16
- package/config/templates/education-smb/knowledge/docs/content-standards.md +0 -24
- package/config/templates/education-smb/knowledge/docs/education-industry-context.md +0 -13
- package/config/templates/education-smb/knowledge/index.json +0 -24
- package/config/templates/education-smb/learned-patterns.json +0 -16
- package/config/templates/education-smb/quality-gates.yaml +0 -66
- package/config/templates/education-smb/roles/analytics-specialist.md +0 -6
- package/config/templates/education-smb/roles/content-creator.md +0 -6
- package/config/templates/education-smb/roles/curriculum-designer.md +0 -6
- package/config/templates/education-smb/roles/engagement-manager.md +0 -6
- package/config/templates/education-smb/team.json +0 -40
- package/config/templates/education-smb/template.json +0 -35
- package/config/templates/education-smb/workflows/course-content-generation.yaml +0 -44
- package/config/templates/education-smb/workflows/reporting.yaml +0 -31
- package/config/templates/education-smb/workflows/student-communication.yaml +0 -44
- package/config/templates/education-smb/workflows.yaml +0 -40
- package/config/templates/insurance-smb/README.md +0 -28
- package/config/templates/insurance-smb/goals.md +0 -21
- package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +0 -28
- package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +0 -23
- package/config/templates/insurance-smb/knowledge/index.json +0 -24
- package/config/templates/insurance-smb/learned-patterns.json +0 -16
- package/config/templates/insurance-smb/quality-gates.yaml +0 -54
- package/config/templates/insurance-smb/roles/claims-processor.md +0 -6
- package/config/templates/insurance-smb/roles/client-manager.md +0 -6
- package/config/templates/insurance-smb/roles/compliance-officer.md +0 -6
- package/config/templates/insurance-smb/roles/marketing-specialist.md +0 -6
- package/config/templates/insurance-smb/roles/policy-analyst.md +0 -6
- package/config/templates/insurance-smb/team.json +0 -48
- package/config/templates/insurance-smb/template.json +0 -35
- package/config/templates/insurance-smb/workflows/claims-processing.yaml +0 -48
- package/config/templates/insurance-smb/workflows.yaml +0 -43
- package/config/templates/marketing-team/README.md +0 -42
- package/config/templates/marketing-team/goals.md +0 -21
- package/config/templates/marketing-team/knowledge/docs/brand-voice-guide.md +0 -61
- package/config/templates/marketing-team/knowledge/docs/content-best-practices.md +0 -64
- package/config/templates/marketing-team/knowledge/index.json +0 -24
- package/config/templates/marketing-team/learned-patterns.json +0 -5
- package/config/templates/marketing-team/norms/brand-consistency.md +0 -40
- package/config/templates/marketing-team/norms/content-quality-checklist.md +0 -45
- package/config/templates/marketing-team/quality-gates.yaml +0 -47
- package/config/templates/marketing-team/roles/analyst.md +0 -63
- package/config/templates/marketing-team/roles/strategist.md +0 -26
- package/config/templates/marketing-team/roles/writer.md +0 -58
- package/config/templates/marketing-team/template.json +0 -90
- package/config/templates/marketing-team/workflows/weekly-content-cycle.yaml +0 -48
- package/config/templates/research-analysis/template.json +0 -133
- package/config/templates/security-audit-team.json +0 -67
- package/config/templates/social-media-ops/template.json +0 -129
- package/config/templates/social-media-ops-team/README.md +0 -145
- package/config/templates/social-media-ops-team/team-config.json +0 -21
- package/config/templates/social-media-ops-team.json +0 -67
- package/config/templates/video-production/template.json +0 -132
- package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts +0 -69
- package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/admin/admin.controller.js +0 -187
- package/dist/backend/backend/src/controllers/admin/admin.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts +0 -22
- package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/admin/admin.routes.js +0 -31
- package/dist/backend/backend/src/controllers/admin/admin.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js +0 -42
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts +0 -56
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js +0 -173
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts +0 -22
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js +0 -33
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/admin/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +0 -81
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +0 -234
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +0 -25
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +0 -42
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts +0 -40
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js +0 -161
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +0 -69
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +0 -165
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +0 -32
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts +0 -34
- package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.controller.js +0 -70
- package/dist/backend/backend/src/controllers/cloud/device.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.routes.js +0 -34
- package/dist/backend/backend/src/controllers/cloud/device.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +0 -42
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +0 -138
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +0 -34
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +0 -43
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +0 -9
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/files/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +0 -47
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +0 -131
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +0 -30
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +0 -81
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +0 -85
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +0 -45
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +0 -155
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +0 -25
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +0 -32
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +0 -97
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js +0 -317
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +0 -25
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js +0 -35
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +0 -49
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +0 -152
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +0 -24
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +0 -34
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +0 -90
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +0 -48
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +0 -10
- package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/index.js +0 -10
- package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/payment/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/payment/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/payment/index.js +0 -7
- package/dist/backend/backend/src/controllers/payment/index.js.map +0 -1
- package/dist/backend/backend/src/scripts/run-log-rotation.d.ts +0 -3
- package/dist/backend/backend/src/scripts/run-log-rotation.d.ts.map +0 -1
- package/dist/backend/backend/src/scripts/run-log-rotation.js +0 -31
- package/dist/backend/backend/src/scripts/run-log-rotation.js.map +0 -1
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +0 -70
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +0 -131
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts +0 -18
- package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/admin-seed.service.js +0 -50
- package/dist/backend/backend/src/services/cloud/admin-seed.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +0 -203
- package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.service.js +0 -494
- package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +0 -110
- package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.types.js +0 -54
- package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +0 -47
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +0 -116
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts +0 -25
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js +0 -52
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +0 -61
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +0 -203
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +0 -136
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +0 -204
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-features.d.ts +0 -19
- package/dist/backend/backend/src/services/cloud/cloud-features.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-features.js +0 -23
- package/dist/backend/backend/src/services/cloud/cloud-features.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +0 -97
- package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-file.service.js +0 -184
- package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +0 -114
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +0 -196
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +0 -118
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +0 -326
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +0 -115
- package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task.service.js +0 -265
- package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts +0 -103
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js +0 -143
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts +0 -45
- package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/mongodb.service.js +0 -76
- package/dist/backend/backend/src/services/cloud/mongodb.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +0 -245
- package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-client.service.js +0 -586
- package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +0 -87
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +0 -140
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +0 -181
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.js +0 -485
- package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay.types.d.ts +0 -195
- package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay.types.js +0 -69
- package/dist/backend/backend/src/services/cloud/relay.types.js.map +0 -1
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts +0 -47
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js +0 -69
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +0 -69
- package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.service.js +0 -158
- package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +0 -95
- package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.types.js +0 -91
- package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts +0 -69
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js +0 -133
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts +0 -51
- package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.controller.js +0 -104
- package/dist/backend/backend/src/services/wechat/wechat.controller.js.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.service.d.ts +0 -171
- package/dist/backend/backend/src/services/wechat/wechat.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.service.js +0 -411
- package/dist/backend/backend/src/services/wechat/wechat.service.js.map +0 -1
- package/frontend/dist/assets/index-a2db8a73.css +0 -33
- package/frontend/dist/assets/index-d516a3cd.js +0 -5215
|
@@ -0,0 +1,1075 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Data Service — Automatic V3 entity creation via EventBus hooks
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to existing backend events and automatically creates/updates
|
|
5
|
+
* V3 entities (WorkItem, Request, Mission). This service is fire-and-forget:
|
|
6
|
+
* errors are logged but never block the main flow.
|
|
7
|
+
*
|
|
8
|
+
* Design principle: Orchestrator has zero knowledge of V3 concepts.
|
|
9
|
+
* V3 data is produced as a side effect of normal operations.
|
|
10
|
+
*
|
|
11
|
+
* Events consumed:
|
|
12
|
+
* - task:delegated -> creates WorkItem in TaskPool
|
|
13
|
+
* - task:completed -> updates WorkItem status to 'done'
|
|
14
|
+
* - task:failed -> updates WorkItem status to 'failed'
|
|
15
|
+
* - goal:set -> creates Mission with conservative policy
|
|
16
|
+
* - message:user_work -> creates Request
|
|
17
|
+
*
|
|
18
|
+
* @module services/v3/v3-data.service
|
|
19
|
+
*/
|
|
20
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
21
|
+
import { TaskPoolService } from '../task-pool/task-pool.service.js';
|
|
22
|
+
import { RequestService } from './request.service.js';
|
|
23
|
+
import { RequestTracker } from './request-tracker.service.js';
|
|
24
|
+
import { createWorkItem } from '../../types/v2/work-item.types.js';
|
|
25
|
+
import { createMission } from '../../types/v2/mission.types.js';
|
|
26
|
+
import { isValidRequestTransition } from '../../types/v2/request.types.js';
|
|
27
|
+
import { ensureDir, atomicWriteJson } from '../../utils/file-io.utils.js';
|
|
28
|
+
import { ProjectTaskWatcherService } from './project-task-watcher.service.js';
|
|
29
|
+
import { TokenUsageService } from '../monitoring/token-usage.service.js';
|
|
30
|
+
import * as path from 'path';
|
|
31
|
+
import * as fs from 'fs/promises';
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Constants
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
/**
|
|
36
|
+
* Minimum content length for a user message to create a Request.
|
|
37
|
+
* P2-1: Relaxed from 5 → 2 to stop dropping legitimate short commands
|
|
38
|
+
* like "fix", "help", "go", "OK". Only truly empty or single-char
|
|
39
|
+
* messages (e.g., ".", "k") are filtered out.
|
|
40
|
+
*/
|
|
41
|
+
export const MIN_REQUEST_CONTENT_LENGTH = 2;
|
|
42
|
+
/**
|
|
43
|
+
* Grace period (in ms) before an open Request with no WorkItems is
|
|
44
|
+
* auto-closed as dangling. P2-1: Added to prevent premature closure —
|
|
45
|
+
* the orchestrator may need time to process the request and delegate.
|
|
46
|
+
* Default: 5 minutes.
|
|
47
|
+
*/
|
|
48
|
+
export const DANGLING_REQUEST_GRACE_MS = 5 * 60 * 1000;
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Service
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
/**
|
|
53
|
+
* V3DataService automatically creates V3 data entities by subscribing to
|
|
54
|
+
* backend EventBus events. It wraps every handler in try-catch to ensure
|
|
55
|
+
* failures never impact the main workflow.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const v3Data = new V3DataService(eventBus, '/path/to/project');
|
|
60
|
+
* // That's it — events are now being listened to.
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export class V3DataService {
|
|
64
|
+
eventBus;
|
|
65
|
+
logger = LoggerService.getInstance().createComponentLogger('V3DataService');
|
|
66
|
+
projectPath;
|
|
67
|
+
missionsDir;
|
|
68
|
+
taskWatcher = null;
|
|
69
|
+
/**
|
|
70
|
+
* Creates and initializes the V3DataService.
|
|
71
|
+
*
|
|
72
|
+
* Subscribes to EventBus domain events and starts the ProjectTask file watcher
|
|
73
|
+
* to ensure every ProjectTask has a corresponding WorkItem.
|
|
74
|
+
*
|
|
75
|
+
* @param eventBus - The EventEmitter that publishes domain events
|
|
76
|
+
* @param projectPath - Absolute path to the project root
|
|
77
|
+
*/
|
|
78
|
+
constructor(eventBus, projectPath) {
|
|
79
|
+
this.eventBus = eventBus;
|
|
80
|
+
this.projectPath = projectPath;
|
|
81
|
+
this.missionsDir = path.join(projectPath, '.crewly', 'missions');
|
|
82
|
+
// Subscribe to events — all handlers are fire-and-forget
|
|
83
|
+
this.eventBus.on('v3:task_delegated', this.onTaskDelegated.bind(this));
|
|
84
|
+
this.eventBus.on('v3:task_completed', this.onTaskCompleted.bind(this));
|
|
85
|
+
this.eventBus.on('v3:task_failed', this.onTaskFailed.bind(this));
|
|
86
|
+
this.eventBus.on('v3:task_blocked', this.onTaskBlocked.bind(this));
|
|
87
|
+
this.eventBus.on('v3:goal_set', this.onGoalSet.bind(this));
|
|
88
|
+
this.eventBus.on('v3:user_work_message', this.onUserWorkMessage.bind(this));
|
|
89
|
+
// Start ProjectTask file watcher (fire-and-forget)
|
|
90
|
+
this.startTaskWatcher();
|
|
91
|
+
this.logger.info('V3DataService initialized — listening for domain events');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Starts the ProjectTask file watcher that monitors `.crewly/tasks/` for
|
|
95
|
+
* new task files and auto-creates WorkItems. Fire-and-forget — errors
|
|
96
|
+
* are logged but never block initialization.
|
|
97
|
+
*/
|
|
98
|
+
startTaskWatcher() {
|
|
99
|
+
try {
|
|
100
|
+
this.taskWatcher = new ProjectTaskWatcherService(this.projectPath);
|
|
101
|
+
this.taskWatcher.start().catch((err) => {
|
|
102
|
+
this.logger.warn('ProjectTaskWatcher start failed (non-fatal)', {
|
|
103
|
+
error: err instanceof Error ? err.message : String(err),
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
this.logger.warn('ProjectTaskWatcher initialization failed (non-fatal)', {
|
|
109
|
+
error: err instanceof Error ? err.message : String(err),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// ---------------------------------------------------------------------------
|
|
114
|
+
// WorkItem Matching (shared by completed/failed/blocked handlers)
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
116
|
+
/**
|
|
117
|
+
* Finds the WorkItem matching a task event using a two-tier strategy:
|
|
118
|
+
* 1. Match by projectTaskId (most precise)
|
|
119
|
+
* 2. Fall back to sessionName + status (running first, then queued)
|
|
120
|
+
*
|
|
121
|
+
* If the matched WorkItem is 'queued', it is transitioned to 'running'
|
|
122
|
+
* since completeItem/failItem require 'running' status.
|
|
123
|
+
*
|
|
124
|
+
* @param taskId - The project task ID (may be undefined)
|
|
125
|
+
* @param sessionName - The agent session name
|
|
126
|
+
* @param logContext - Context string for debug logging
|
|
127
|
+
* @returns The matched WorkItem (with status fix applied), or null
|
|
128
|
+
*/
|
|
129
|
+
async findMatchingWorkItem(taskId, sessionName, logContext) {
|
|
130
|
+
const taskPool = TaskPoolService.getInstance();
|
|
131
|
+
const items = await taskPool.getAllItems();
|
|
132
|
+
// Tier 1: precise match by projectTaskId
|
|
133
|
+
let match = taskId
|
|
134
|
+
? items.find((wi) => wi.projectTaskId === taskId && wi.status !== 'done' && wi.status !== 'failed')
|
|
135
|
+
: undefined;
|
|
136
|
+
// Tier 2: match by sessionName + active status (running first, then queued)
|
|
137
|
+
if (!match) {
|
|
138
|
+
match = items.find((wi) => wi.target === sessionName && wi.status === 'running');
|
|
139
|
+
}
|
|
140
|
+
if (!match) {
|
|
141
|
+
match = items.find((wi) => wi.target === sessionName && wi.status === 'queued');
|
|
142
|
+
}
|
|
143
|
+
if (!match) {
|
|
144
|
+
this.logger.debug(`No matching WorkItem found for ${logContext}`, { sessionName, taskId });
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
// Bug 1 fix: completeItem/failItem require status === 'running', but WorkItems
|
|
148
|
+
// created via delegation start as 'queued' and may never be claimed.
|
|
149
|
+
if (match.status === 'queued') {
|
|
150
|
+
await taskPool.updateItemStatus(match.id, 'running');
|
|
151
|
+
}
|
|
152
|
+
return match;
|
|
153
|
+
}
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
// Event Handlers (all fire-and-forget)
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
/**
|
|
158
|
+
* Handles task:delegated — creates a WorkItem in the TaskPool.
|
|
159
|
+
*
|
|
160
|
+
* @param event - Task delegation event payload
|
|
161
|
+
*/
|
|
162
|
+
async onTaskDelegated(event) {
|
|
163
|
+
try {
|
|
164
|
+
const taskPool = TaskPoolService.getInstance();
|
|
165
|
+
// Dedup: check if a WorkItem with this projectTaskId already exists
|
|
166
|
+
const existing = await taskPool.getAllItems();
|
|
167
|
+
if (existing.some((wi) => wi.projectTaskId === event.taskId)) {
|
|
168
|
+
this.logger.debug('WorkItem already exists for task, skipping', { taskId: event.taskId });
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
// Resolve requestId: prefer explicit value from the event payload,
|
|
172
|
+
// fall back to RequestTracker time-window correlation for orchestrator
|
|
173
|
+
// skill-based delegations that don't pass requestId explicitly.
|
|
174
|
+
const resolvedRequestId = event.requestId
|
|
175
|
+
|| RequestTracker.getInstance().getActiveRequestId()
|
|
176
|
+
|| undefined;
|
|
177
|
+
const workItem = createWorkItem({
|
|
178
|
+
type: 'delegate',
|
|
179
|
+
owner: 'orchestrator',
|
|
180
|
+
target: event.assignedTo,
|
|
181
|
+
title: event.title,
|
|
182
|
+
description: event.description,
|
|
183
|
+
projectTaskId: event.taskId,
|
|
184
|
+
requestId: resolvedRequestId,
|
|
185
|
+
maxRetries: 2,
|
|
186
|
+
});
|
|
187
|
+
// Add to pool (createWorkItem already sets status to 'queued')
|
|
188
|
+
await taskPool.addToPool(workItem);
|
|
189
|
+
this.logger.info('WorkItem auto-created from task delegation', {
|
|
190
|
+
workItemId: workItem.id,
|
|
191
|
+
taskId: event.taskId,
|
|
192
|
+
target: event.assignedTo,
|
|
193
|
+
requestId: resolvedRequestId,
|
|
194
|
+
});
|
|
195
|
+
// Auto-claim for the target agent so WorkItem transitions queued → running
|
|
196
|
+
try {
|
|
197
|
+
await taskPool.claimFromPool(event.assignedTo, { types: ['delegate'] });
|
|
198
|
+
}
|
|
199
|
+
catch (claimErr) {
|
|
200
|
+
this.logger.debug('Auto-claim after delegation failed (non-fatal)', {
|
|
201
|
+
workItemId: workItem.id,
|
|
202
|
+
target: event.assignedTo,
|
|
203
|
+
error: claimErr instanceof Error ? claimErr.message : String(claimErr),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
// Link WorkItem to Request for bidirectional tracking
|
|
207
|
+
if (resolvedRequestId) {
|
|
208
|
+
try {
|
|
209
|
+
const requestService = RequestService.getInstance(this.projectPath);
|
|
210
|
+
await requestService.linkWorkItem(resolvedRequestId, workItem.id);
|
|
211
|
+
// Transition Request: open → running (first WorkItem assigned)
|
|
212
|
+
const request = await requestService.getById(resolvedRequestId);
|
|
213
|
+
if (request && request.status === 'open') {
|
|
214
|
+
await requestService.update(resolvedRequestId, { status: 'running' });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (linkErr) {
|
|
218
|
+
this.logger.debug('Failed to link WorkItem to Request (non-fatal)', {
|
|
219
|
+
requestId: resolvedRequestId,
|
|
220
|
+
workItemId: workItem.id,
|
|
221
|
+
error: linkErr instanceof Error ? linkErr.message : String(linkErr),
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
this.logger.warn('V3DataService.onTaskDelegated failed (non-fatal)', {
|
|
228
|
+
taskId: event.taskId,
|
|
229
|
+
error: err instanceof Error ? err.message : String(err),
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Handles task:completed — updates the matching WorkItem to 'done'.
|
|
235
|
+
*
|
|
236
|
+
* Uses a two-tier matching strategy:
|
|
237
|
+
* 1. Match by projectTaskId (most precise — correlates to the .crewly/tasks/ file ID)
|
|
238
|
+
* 2. Fall back to sessionName + status (running or queued, since WorkItems
|
|
239
|
+
* created via delegation start as 'queued' and may never be claimed)
|
|
240
|
+
*
|
|
241
|
+
* @param event - Task completion event payload
|
|
242
|
+
*/
|
|
243
|
+
async onTaskCompleted(event) {
|
|
244
|
+
try {
|
|
245
|
+
const match = await this.findMatchingWorkItem(event.taskId, event.sessionName, 'completed task');
|
|
246
|
+
if (!match)
|
|
247
|
+
return;
|
|
248
|
+
const taskPool = TaskPoolService.getInstance();
|
|
249
|
+
await taskPool.completeItem(match.id);
|
|
250
|
+
// Look up token usage for this work item
|
|
251
|
+
try {
|
|
252
|
+
const tokenUsageService = TokenUsageService.getInstance();
|
|
253
|
+
const sessionUsage = tokenUsageService.getUsageBySessions();
|
|
254
|
+
// Find usage for the agent session that completed this task
|
|
255
|
+
const sessionSummary = sessionUsage.find(s => s.sessionName === event.sessionName);
|
|
256
|
+
if (sessionSummary) {
|
|
257
|
+
const totalInput = sessionSummary.totalInput || 0;
|
|
258
|
+
const totalOutput = sessionSummary.totalOutput || 0;
|
|
259
|
+
const totalCost = sessionSummary.cost || 0;
|
|
260
|
+
if (totalInput > 0 || totalOutput > 0) {
|
|
261
|
+
await taskPool.updateTokenUsage(match.id, totalInput, totalOutput, totalCost);
|
|
262
|
+
this.logger.debug('Updated WorkItem token usage', {
|
|
263
|
+
workItemId: match.id,
|
|
264
|
+
inputTokens: totalInput,
|
|
265
|
+
outputTokens: totalOutput,
|
|
266
|
+
cost: totalCost,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
catch (tokenErr) {
|
|
272
|
+
// Token usage update is non-fatal
|
|
273
|
+
this.logger.debug('Failed to update WorkItem token usage (non-fatal)', {
|
|
274
|
+
error: tokenErr instanceof Error ? tokenErr.message : String(tokenErr),
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
this.logger.info('WorkItem auto-completed', {
|
|
278
|
+
workItemId: match.id,
|
|
279
|
+
sessionName: event.sessionName,
|
|
280
|
+
taskId: event.taskId,
|
|
281
|
+
});
|
|
282
|
+
// Growth: extract growth areas from the task title/description (keyword-based, no LLM)
|
|
283
|
+
try {
|
|
284
|
+
const { GrowthAreasService } = await import('../ai/self-improvement/growth-areas.service.js');
|
|
285
|
+
const growthService = new GrowthAreasService();
|
|
286
|
+
const text = match.title + ' ' + (match.description || '');
|
|
287
|
+
const newAreas = await growthService.extractFromText(event.sessionName, text);
|
|
288
|
+
if (newAreas.length > 0) {
|
|
289
|
+
this.logger.info('Growth areas extracted from completed task', {
|
|
290
|
+
sessionName: event.sessionName,
|
|
291
|
+
areas: newAreas.map(a => a.area),
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
this.logger.debug('Growth area extraction failed (non-fatal)', {
|
|
297
|
+
sessionName: event.sessionName,
|
|
298
|
+
error: err instanceof Error ? err.message : String(err),
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
// Cascade: update parent Request status
|
|
302
|
+
await this.cascadeRequestStatus(match.requestId);
|
|
303
|
+
// Unlock dependent WorkItems (task dependency resolution)
|
|
304
|
+
await this.unlockDependentWorkItems(match.id);
|
|
305
|
+
}
|
|
306
|
+
catch (err) {
|
|
307
|
+
this.logger.warn('V3DataService.onTaskCompleted failed (non-fatal)', {
|
|
308
|
+
sessionName: event.sessionName,
|
|
309
|
+
error: err instanceof Error ? err.message : String(err),
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Handles task:failed — updates the matching WorkItem to 'failed'.
|
|
315
|
+
*
|
|
316
|
+
* Uses the same two-tier matching strategy as onTaskCompleted.
|
|
317
|
+
*
|
|
318
|
+
* @param event - Task failure event payload
|
|
319
|
+
*/
|
|
320
|
+
async onTaskFailed(event) {
|
|
321
|
+
try {
|
|
322
|
+
const match = await this.findMatchingWorkItem(event.taskId, event.sessionName, 'failed task');
|
|
323
|
+
if (!match)
|
|
324
|
+
return;
|
|
325
|
+
const taskPool = TaskPoolService.getInstance();
|
|
326
|
+
await taskPool.failItem(match.id, `Task failed for session ${event.sessionName}`);
|
|
327
|
+
this.logger.info('WorkItem auto-failed', {
|
|
328
|
+
workItemId: match.id,
|
|
329
|
+
sessionName: event.sessionName,
|
|
330
|
+
taskId: event.taskId,
|
|
331
|
+
});
|
|
332
|
+
// Cascade: update parent Request status
|
|
333
|
+
await this.cascadeRequestStatus(match.requestId);
|
|
334
|
+
}
|
|
335
|
+
catch (err) {
|
|
336
|
+
this.logger.warn('V3DataService.onTaskFailed failed (non-fatal)', {
|
|
337
|
+
sessionName: event.sessionName,
|
|
338
|
+
error: err instanceof Error ? err.message : String(err),
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Handles goal:set — creates a Mission with conservative policy.
|
|
344
|
+
*
|
|
345
|
+
* @param event - Goal set event payload
|
|
346
|
+
*/
|
|
347
|
+
async onGoalSet(event) {
|
|
348
|
+
try {
|
|
349
|
+
// Dedup: check if an active Mission with the same objective already exists
|
|
350
|
+
const existingMissions = await this.listMissions();
|
|
351
|
+
const duplicate = existingMissions.find((m) => m.objective === event.goal &&
|
|
352
|
+
m.status !== 'completed' &&
|
|
353
|
+
m.status !== 'cancelled');
|
|
354
|
+
if (duplicate) {
|
|
355
|
+
this.logger.debug('Active Mission with same objective already exists, skipping', {
|
|
356
|
+
missionId: duplicate.id,
|
|
357
|
+
objective: event.goal,
|
|
358
|
+
});
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
const mission = createMission({
|
|
362
|
+
objective: event.goal,
|
|
363
|
+
ownerTeamId: 'default',
|
|
364
|
+
successCriteria: [],
|
|
365
|
+
currentStrategy: '',
|
|
366
|
+
cadence: '0 9 * * 1', // Default: weekly Monday review
|
|
367
|
+
});
|
|
368
|
+
// Decompose the mission objective into initial ProjectTasks
|
|
369
|
+
const taskIds = await V3DataService.decomposeMissionToTasks(mission.id, event.goal, event.projectPath);
|
|
370
|
+
mission.activeProjectTaskIds = taskIds;
|
|
371
|
+
await ensureDir(this.missionsDir);
|
|
372
|
+
await atomicWriteJson(path.join(this.missionsDir, `${mission.id}.json`), mission);
|
|
373
|
+
this.logger.info('Mission auto-created from goal with tasks', {
|
|
374
|
+
missionId: mission.id,
|
|
375
|
+
objective: event.goal,
|
|
376
|
+
setBy: event.setBy,
|
|
377
|
+
taskCount: taskIds.length,
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
catch (err) {
|
|
381
|
+
this.logger.warn('V3DataService.onGoalSet failed (non-fatal)', {
|
|
382
|
+
goal: event.goal,
|
|
383
|
+
error: err instanceof Error ? err.message : String(err),
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Handles message:user_work — creates a Request from a user message.
|
|
389
|
+
*
|
|
390
|
+
* @param event - User work message event payload
|
|
391
|
+
*/
|
|
392
|
+
async onUserWorkMessage(event) {
|
|
393
|
+
try {
|
|
394
|
+
// Signal new user turn — clear stale request correlation
|
|
395
|
+
RequestTracker.getInstance().clearOnNewMessage();
|
|
396
|
+
const requestService = RequestService.getInstance(this.projectPath);
|
|
397
|
+
// Bug 3 fix: auto-close dangling Requests (open, no workItems).
|
|
398
|
+
// When a new user message arrives, any previous Request that is still
|
|
399
|
+
// 'open' with empty workItemIds was never delegated — the orchestrator
|
|
400
|
+
// handled it directly. Close these as 'done' so they don't linger.
|
|
401
|
+
//
|
|
402
|
+
// P2-1 improvement: only auto-close Requests older than DANGLING_GRACE_MS
|
|
403
|
+
// to avoid prematurely closing Requests before the orchestrator has time
|
|
404
|
+
// to process them and create WorkItems.
|
|
405
|
+
try {
|
|
406
|
+
const allRequests = await requestService.listAll();
|
|
407
|
+
const now = Date.now();
|
|
408
|
+
const danglingRequests = allRequests.filter((r) => {
|
|
409
|
+
if (r.status !== 'open' || r.workItemIds.length > 0)
|
|
410
|
+
return false;
|
|
411
|
+
// Grace period: only close if the Request has been open long enough
|
|
412
|
+
const age = now - new Date(r.createdAt).getTime();
|
|
413
|
+
return age > DANGLING_REQUEST_GRACE_MS;
|
|
414
|
+
});
|
|
415
|
+
for (const dangling of danglingRequests) {
|
|
416
|
+
await requestService.update(dangling.id, { status: 'done' });
|
|
417
|
+
this.logger.debug('Auto-closed dangling Request (no workItems, past grace period)', {
|
|
418
|
+
requestId: dangling.id,
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
catch (cleanupErr) {
|
|
423
|
+
this.logger.debug('Dangling Request cleanup failed (non-fatal)', {
|
|
424
|
+
error: cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr),
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
// Dedup: check if a Request with this messageId already exists.
|
|
428
|
+
// Previous: used conversationId (Slack thread), which blocked all
|
|
429
|
+
// subsequent messages in the same thread. Now uses messageId so each
|
|
430
|
+
// user message can independently create a Request.
|
|
431
|
+
const existing = await requestService.findBySourceConversationItemId(event.messageId);
|
|
432
|
+
if (existing) {
|
|
433
|
+
this.logger.debug('Request already exists for this message, skipping', {
|
|
434
|
+
messageId: event.messageId,
|
|
435
|
+
existingRequestId: existing.id,
|
|
436
|
+
});
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
// Simple filter: skip empty/whitespace-only messages.
|
|
440
|
+
const content = event.content.trim();
|
|
441
|
+
if (content.length < MIN_REQUEST_CONTENT_LENGTH) {
|
|
442
|
+
this.logger.debug('Message too short to create Request', {
|
|
443
|
+
messageId: event.messageId,
|
|
444
|
+
contentLength: content.length,
|
|
445
|
+
minRequired: MIN_REQUEST_CONTENT_LENGTH,
|
|
446
|
+
});
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
// -----------------------------------------------------------------------
|
|
450
|
+
// V3 Pipeline change: Semantic understanding moved to orchestrator skills.
|
|
451
|
+
// The orchestrator (which has Claude LLM) will decide when to create
|
|
452
|
+
// Requests via the 'create-request' skill and decompose them via the
|
|
453
|
+
// 'break-down-request' skill. This removes mechanical keyword-based
|
|
454
|
+
// intent classification from the data service.
|
|
455
|
+
//
|
|
456
|
+
// The helper functions (classifyIntent, isNonActionableMessage, etc.)
|
|
457
|
+
// are preserved at the bottom of this file as potential fallback.
|
|
458
|
+
// -----------------------------------------------------------------------
|
|
459
|
+
this.logger.info('User work message received — awaiting orchestrator classification via skills', {
|
|
460
|
+
messageId: event.messageId,
|
|
461
|
+
source: event.source,
|
|
462
|
+
contentLength: content.length,
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
catch (err) {
|
|
466
|
+
this.logger.warn('V3DataService.onUserWorkMessage failed (non-fatal)', {
|
|
467
|
+
messageId: event.messageId,
|
|
468
|
+
error: err instanceof Error ? err.message : String(err),
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Handles task:blocked — updates the matching WorkItem to 'blocked'.
|
|
474
|
+
*
|
|
475
|
+
* Uses the same two-tier matching strategy as onTaskCompleted.
|
|
476
|
+
*
|
|
477
|
+
* @param event - Task blocked event payload
|
|
478
|
+
*/
|
|
479
|
+
async onTaskBlocked(event) {
|
|
480
|
+
try {
|
|
481
|
+
const match = await this.findMatchingWorkItem(event.taskId, event.sessionName, 'blocked task');
|
|
482
|
+
if (!match)
|
|
483
|
+
return;
|
|
484
|
+
const taskPool = TaskPoolService.getInstance();
|
|
485
|
+
await taskPool.updateItemStatus(match.id, 'blocked');
|
|
486
|
+
this.logger.info('WorkItem auto-blocked', {
|
|
487
|
+
workItemId: match.id,
|
|
488
|
+
sessionName: event.sessionName,
|
|
489
|
+
reason: event.reason,
|
|
490
|
+
});
|
|
491
|
+
// Cascade: update parent Request status
|
|
492
|
+
await this.cascadeRequestStatus(match.requestId);
|
|
493
|
+
}
|
|
494
|
+
catch (err) {
|
|
495
|
+
this.logger.warn('V3DataService.onTaskBlocked failed (non-fatal)', {
|
|
496
|
+
sessionName: event.sessionName,
|
|
497
|
+
error: err instanceof Error ? err.message : String(err),
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Unlocks WorkItems that were blocked by the completed WorkItem.
|
|
503
|
+
* Scans all blocked items in the pool for `metadata._blockedBy` arrays
|
|
504
|
+
* containing the completed item's ID. Removes it and transitions
|
|
505
|
+
* `blocked → queued` when no blockers remain.
|
|
506
|
+
*
|
|
507
|
+
* @param completedWorkItemId - The ID of the just-completed WorkItem
|
|
508
|
+
*/
|
|
509
|
+
async unlockDependentWorkItems(completedWorkItemId) {
|
|
510
|
+
try {
|
|
511
|
+
const taskPool = TaskPoolService.getInstance();
|
|
512
|
+
const allItems = await taskPool.getAllItems();
|
|
513
|
+
for (const wi of allItems) {
|
|
514
|
+
if (wi.status !== 'blocked')
|
|
515
|
+
continue;
|
|
516
|
+
const blockedBy = wi.metadata?._blockedBy;
|
|
517
|
+
if (!Array.isArray(blockedBy))
|
|
518
|
+
continue;
|
|
519
|
+
if (!blockedBy.includes(completedWorkItemId))
|
|
520
|
+
continue;
|
|
521
|
+
const remaining = blockedBy.filter((id) => id !== completedWorkItemId);
|
|
522
|
+
// Update metadata and potentially unblock
|
|
523
|
+
if (remaining.length === 0) {
|
|
524
|
+
await taskPool.updateItemStatus(wi.id, 'queued');
|
|
525
|
+
this.logger.info('Dependency resolved — WorkItem unblocked', {
|
|
526
|
+
workItemId: wi.id,
|
|
527
|
+
resolvedBy: completedWorkItemId,
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
else {
|
|
531
|
+
this.logger.debug('Dependency partially resolved', {
|
|
532
|
+
workItemId: wi.id,
|
|
533
|
+
resolvedBy: completedWorkItemId,
|
|
534
|
+
remainingBlockers: remaining.length,
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
// Update the _blockedBy metadata
|
|
538
|
+
if (wi.metadata) {
|
|
539
|
+
wi.metadata._blockedBy = remaining;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
catch (err) {
|
|
544
|
+
this.logger.debug('unlockDependentWorkItems failed (non-fatal)', {
|
|
545
|
+
completedWorkItemId,
|
|
546
|
+
error: err instanceof Error ? err.message : String(err),
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Recomputes Request.status from the aggregate state of its child WorkItems.
|
|
552
|
+
*
|
|
553
|
+
* Rules:
|
|
554
|
+
* - All WorkItems done → Request = done
|
|
555
|
+
* - Any WorkItem running → Request = running
|
|
556
|
+
* - All WorkItems queued → no change (work delegated but not started)
|
|
557
|
+
* - Any WorkItem blocked, none running → Request = blocked
|
|
558
|
+
* - All WorkItems failed/cancelled → Request = cancelled
|
|
559
|
+
* - Some done + some queued (no running) → Request = running
|
|
560
|
+
*
|
|
561
|
+
* @param requestId - The parent Request ID (may be undefined for unlinked WorkItems)
|
|
562
|
+
*/
|
|
563
|
+
async cascadeRequestStatus(requestId) {
|
|
564
|
+
if (!requestId)
|
|
565
|
+
return;
|
|
566
|
+
try {
|
|
567
|
+
const requestService = RequestService.getInstance(this.projectPath);
|
|
568
|
+
const request = await requestService.getById(requestId);
|
|
569
|
+
if (!request || request.status === 'done' || request.status === 'cancelled')
|
|
570
|
+
return;
|
|
571
|
+
const taskPool = TaskPoolService.getInstance();
|
|
572
|
+
const allItems = await taskPool.getAllItems();
|
|
573
|
+
const childItems = allItems.filter((wi) => wi.requestId === requestId);
|
|
574
|
+
if (childItems.length === 0)
|
|
575
|
+
return;
|
|
576
|
+
const statuses = childItems.map((wi) => wi.status);
|
|
577
|
+
let newStatus;
|
|
578
|
+
const allQueued = statuses.every((s) => s === 'queued' || s === 'scheduled');
|
|
579
|
+
if (statuses.every((s) => s === 'done')) {
|
|
580
|
+
newStatus = 'done';
|
|
581
|
+
}
|
|
582
|
+
else if (statuses.some((s) => s === 'running')) {
|
|
583
|
+
newStatus = 'running';
|
|
584
|
+
}
|
|
585
|
+
else if (allQueued) {
|
|
586
|
+
// All WorkItems still queued — work delegated but not started.
|
|
587
|
+
// Keep Request in its current status (no change needed).
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
else if (statuses.some((s) => s === 'blocked') && !statuses.some((s) => s === 'running')) {
|
|
591
|
+
newStatus = 'blocked';
|
|
592
|
+
}
|
|
593
|
+
else if (statuses.every((s) => s === 'failed' || s === 'cancelled')) {
|
|
594
|
+
newStatus = 'cancelled';
|
|
595
|
+
}
|
|
596
|
+
else if (statuses.some((s) => s === 'done')) {
|
|
597
|
+
// Some work completed, some still queued — progress is being made
|
|
598
|
+
newStatus = 'running';
|
|
599
|
+
}
|
|
600
|
+
else {
|
|
601
|
+
// Mixed state — keep current status
|
|
602
|
+
return;
|
|
603
|
+
}
|
|
604
|
+
if (newStatus !== request.status && isValidRequestTransition(request.status, newStatus)) {
|
|
605
|
+
await requestService.update(requestId, { status: newStatus });
|
|
606
|
+
this.logger.info('Request status cascaded from WorkItems', {
|
|
607
|
+
requestId,
|
|
608
|
+
previousStatus: request.status,
|
|
609
|
+
newStatus,
|
|
610
|
+
childStatuses: statuses,
|
|
611
|
+
});
|
|
612
|
+
// Emit update event for notification services
|
|
613
|
+
this.eventBus.emit('v3:request_updated', {
|
|
614
|
+
requestId,
|
|
615
|
+
status: newStatus,
|
|
616
|
+
previousStatus: request.status,
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
catch (err) {
|
|
621
|
+
this.logger.debug('cascadeRequestStatus failed (non-fatal)', {
|
|
622
|
+
requestId,
|
|
623
|
+
error: err instanceof Error ? err.message : String(err),
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
// ---------------------------------------------------------------------------
|
|
628
|
+
// Mission → Task Decomposition
|
|
629
|
+
// ---------------------------------------------------------------------------
|
|
630
|
+
/**
|
|
631
|
+
* Decomposes a mission objective into initial ProjectTask files.
|
|
632
|
+
*
|
|
633
|
+
* Uses keyword-based planning to break the objective into 2-4 actionable
|
|
634
|
+
* sub-tasks, writes them as markdown files under `.crewly/tasks/delegated/open/`,
|
|
635
|
+
* and returns the task IDs (filenames without extension).
|
|
636
|
+
*
|
|
637
|
+
* @param missionId - The parent mission ID
|
|
638
|
+
* @param objective - The mission objective text
|
|
639
|
+
* @param projectPath - Absolute path to the project root
|
|
640
|
+
* @returns Array of created task IDs (file basenames without .md)
|
|
641
|
+
*/
|
|
642
|
+
static async decomposeMissionToTasks(missionId, objective, projectPath) {
|
|
643
|
+
const tasksDir = path.join(projectPath, '.crewly', 'tasks', 'delegated', 'open');
|
|
644
|
+
await ensureDir(tasksDir);
|
|
645
|
+
const planned = planTasksFromObjective(objective);
|
|
646
|
+
const taskIds = [];
|
|
647
|
+
const now = new Date().toISOString();
|
|
648
|
+
const timestamp = Date.now();
|
|
649
|
+
for (let i = 0; i < planned.length; i++) {
|
|
650
|
+
const task = planned[i];
|
|
651
|
+
const sanitizedTitle = task.title
|
|
652
|
+
.toLowerCase()
|
|
653
|
+
.replace(/[^a-z0-9]+/g, '_')
|
|
654
|
+
.replace(/^_|_$/g, '')
|
|
655
|
+
.slice(0, 80);
|
|
656
|
+
const taskId = `${sanitizedTitle}_${timestamp + i}`;
|
|
657
|
+
const fileName = `${taskId}.md`;
|
|
658
|
+
const content = [
|
|
659
|
+
`# ${task.title}`,
|
|
660
|
+
'',
|
|
661
|
+
task.description,
|
|
662
|
+
'',
|
|
663
|
+
'## Acceptance Criteria',
|
|
664
|
+
...task.acceptanceCriteria.map((c) => `- ${c}`),
|
|
665
|
+
'',
|
|
666
|
+
'## Context',
|
|
667
|
+
`Parent mission: ${missionId}`,
|
|
668
|
+
`Mission objective: ${objective}`,
|
|
669
|
+
`Required role: developer`,
|
|
670
|
+
'',
|
|
671
|
+
'## Task Information',
|
|
672
|
+
`- **Priority**: ${task.priority}`,
|
|
673
|
+
'- **Milestone**: delegated',
|
|
674
|
+
`- **Created at**: ${now}`,
|
|
675
|
+
'- **Status**: Open',
|
|
676
|
+
`- **Mission ID**: ${missionId}`,
|
|
677
|
+
].join('\n');
|
|
678
|
+
await fs.writeFile(path.join(tasksDir, fileName), content, 'utf-8');
|
|
679
|
+
taskIds.push(taskId);
|
|
680
|
+
}
|
|
681
|
+
LoggerService.getInstance().createComponentLogger('V3DataService').debug('Decomposed mission into tasks', {
|
|
682
|
+
missionId,
|
|
683
|
+
taskCount: taskIds.length,
|
|
684
|
+
taskIds,
|
|
685
|
+
});
|
|
686
|
+
return taskIds;
|
|
687
|
+
}
|
|
688
|
+
// ---------------------------------------------------------------------------
|
|
689
|
+
// Helpers
|
|
690
|
+
// ---------------------------------------------------------------------------
|
|
691
|
+
/**
|
|
692
|
+
* Lists all missions from disk.
|
|
693
|
+
*
|
|
694
|
+
* @returns Array of Mission objects
|
|
695
|
+
*/
|
|
696
|
+
async listMissions() {
|
|
697
|
+
try {
|
|
698
|
+
await ensureDir(this.missionsDir);
|
|
699
|
+
const files = await import('fs/promises').then((fs) => fs.readdir(this.missionsDir));
|
|
700
|
+
const missions = [];
|
|
701
|
+
for (const file of files) {
|
|
702
|
+
if (!file.endsWith('.json'))
|
|
703
|
+
continue;
|
|
704
|
+
try {
|
|
705
|
+
const filePath = path.join(this.missionsDir, file);
|
|
706
|
+
const { safeReadJson: readJson } = await import('../../utils/file-io.utils.js');
|
|
707
|
+
const data = await readJson(filePath, null);
|
|
708
|
+
if (data && data.id && data.objective) {
|
|
709
|
+
missions.push(data);
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
catch {
|
|
713
|
+
// Skip malformed files
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
return missions;
|
|
717
|
+
}
|
|
718
|
+
catch {
|
|
719
|
+
return [];
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Stops listening to events. Used for cleanup/testing.
|
|
724
|
+
*/
|
|
725
|
+
dispose() {
|
|
726
|
+
this.eventBus.removeAllListeners('v3:task_delegated');
|
|
727
|
+
this.eventBus.removeAllListeners('v3:task_completed');
|
|
728
|
+
this.eventBus.removeAllListeners('v3:task_failed');
|
|
729
|
+
this.eventBus.removeAllListeners('v3:task_blocked');
|
|
730
|
+
this.eventBus.removeAllListeners('v3:goal_set');
|
|
731
|
+
this.eventBus.removeAllListeners('v3:user_work_message');
|
|
732
|
+
if (this.taskWatcher) {
|
|
733
|
+
this.taskWatcher.dispose();
|
|
734
|
+
this.taskWatcher = null;
|
|
735
|
+
}
|
|
736
|
+
this.logger.info('V3DataService disposed');
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
// ---------------------------------------------------------------------------
|
|
740
|
+
// Intent Classification (keyword-based, no AI)
|
|
741
|
+
// ---------------------------------------------------------------------------
|
|
742
|
+
/**
|
|
743
|
+
* Patterns that identify non-actionable messages (confirmations, chit-chat,
|
|
744
|
+
* acknowledgements). These messages should NOT create Requests.
|
|
745
|
+
*/
|
|
746
|
+
const NON_ACTIONABLE_PATTERNS = [
|
|
747
|
+
// Acknowledgements / confirmations (Chinese + English)
|
|
748
|
+
/^(好的|好|嗯|嗯嗯|行|行的|可以|没问题|收到|了解|知道了|明白|ok|okay|sure|yes|yep|yeah|yup|got it|sounds good|lgtm|ack|roger|copy|noted|thanks|thank you|thx|ty|np|no problem|alright|understood|fine|cool|nice|great|perfect|awesome|good|done|right|exactly|absolutely|definitely|indeed|correct|agreed|approved|confirmed|approve|accept|安排|好的安排|辛苦了|谢谢|不错|可以的|没事|随便|都行|好吧|对|对的|是的|嗯好|好嘞|好哒|okie|oki|kk|k)\s*[!.。!~~]*$/i,
|
|
749
|
+
// Greetings
|
|
750
|
+
/^(hi|hello|hey|yo|sup|morning|afternoon|evening|你好|早|早上好|下午好|晚上好|嗨|哈喽)\s*[!.。!~~]*$/i,
|
|
751
|
+
// Emoji-only messages
|
|
752
|
+
/^[\p{Emoji}\s]+$/u,
|
|
753
|
+
// Filler / single-word non-work
|
|
754
|
+
/^(hmm+|huh|ah|oh|lol|haha|hehe|wow|omg|idk|brb|ttyl|tbd|wip)\s*[!.。!~~]*$/i,
|
|
755
|
+
];
|
|
756
|
+
/**
|
|
757
|
+
* Maximum word count for a message to be eligible for non-actionable check.
|
|
758
|
+
* Longer messages are unlikely to be simple acknowledgements.
|
|
759
|
+
*/
|
|
760
|
+
const MAX_NON_ACTIONABLE_WORDS = 6;
|
|
761
|
+
/**
|
|
762
|
+
* Checks if a message is non-actionable (confirmation, chit-chat, greeting).
|
|
763
|
+
* These messages should not create Requests or WorkItems.
|
|
764
|
+
*
|
|
765
|
+
* @param content - The user message text (trimmed)
|
|
766
|
+
* @returns True if the message is non-actionable
|
|
767
|
+
*/
|
|
768
|
+
export function isNonActionableMessage(content) {
|
|
769
|
+
// Long messages are likely actionable
|
|
770
|
+
const words = content.split(/\s+/).filter(Boolean);
|
|
771
|
+
if (words.length > MAX_NON_ACTIONABLE_WORDS)
|
|
772
|
+
return false;
|
|
773
|
+
return NON_ACTIONABLE_PATTERNS.some((pattern) => pattern.test(content.trim()));
|
|
774
|
+
}
|
|
775
|
+
/**
|
|
776
|
+
* Auto-classify request intent from message content.
|
|
777
|
+
* Runs synchronously — no AI call, just keyword matching.
|
|
778
|
+
*
|
|
779
|
+
* @param content - The user message text
|
|
780
|
+
* @returns Object with intentCategory and intentLevel
|
|
781
|
+
*/
|
|
782
|
+
export function classifyIntent(content) {
|
|
783
|
+
const lower = content.toLowerCase();
|
|
784
|
+
// Non-actionable messages: acknowledgements, chit-chat, greetings
|
|
785
|
+
if (isNonActionableMessage(content)) {
|
|
786
|
+
return { intentCategory: 'other', intentLevel: 'L0' };
|
|
787
|
+
}
|
|
788
|
+
// Debugging — English + Chinese keywords
|
|
789
|
+
if (/\b(fix|bug|error|crash|broken|issue)\b/.test(lower) || /修复|修|bug|报错|崩溃|出错|故障|异常/.test(content)) {
|
|
790
|
+
return { intentCategory: 'debugging', intentLevel: 'L1' };
|
|
791
|
+
}
|
|
792
|
+
// Deployment
|
|
793
|
+
if (/\b(deploy|release|publish|ship)\b/.test(lower) || /部署|发布|上线|发版/.test(content)) {
|
|
794
|
+
return { intentCategory: 'deployment', intentLevel: 'L2' };
|
|
795
|
+
}
|
|
796
|
+
// Review
|
|
797
|
+
if (/\b(review|pr|pull request|code review)\b/.test(lower) || /审查|评审|review|代码审查/.test(content)) {
|
|
798
|
+
return { intentCategory: 'review', intentLevel: 'L1' };
|
|
799
|
+
}
|
|
800
|
+
// Planning
|
|
801
|
+
if (/\b(plan|design|architect|spec)\b/.test(lower) || /规划|设计|架构|方案|计划/.test(content)) {
|
|
802
|
+
return { intentCategory: 'planning', intentLevel: 'L2' };
|
|
803
|
+
}
|
|
804
|
+
// Research / analysis
|
|
805
|
+
if (/\b(research|investigate|analyze|look into|evaluate|assess|audit)\b/.test(lower) || /研究|调查|分析|评估|排查|审计|检查/.test(content)) {
|
|
806
|
+
return { intentCategory: 'research', intentLevel: 'L1' };
|
|
807
|
+
}
|
|
808
|
+
// Communication
|
|
809
|
+
if (/\b(tell|ask|message|notify|send)\b/.test(lower) || /告诉|问|通知|发消息|转告/.test(content)) {
|
|
810
|
+
return { intentCategory: 'communication', intentLevel: 'L0' };
|
|
811
|
+
}
|
|
812
|
+
// Code change
|
|
813
|
+
if (/\b(add|implement|create|build|feature|write)\b/.test(lower) || /添加|实现|创建|开发|编写|搭建|新增/.test(content)) {
|
|
814
|
+
return { intentCategory: 'code_change', intentLevel: 'L2' };
|
|
815
|
+
}
|
|
816
|
+
// Query / lookup (Chinese-specific, lightweight tasks)
|
|
817
|
+
if (/查一下|查看|查询|看看|有多少|列出|统计/.test(content)) {
|
|
818
|
+
return { intentCategory: 'research', intentLevel: 'L1' };
|
|
819
|
+
}
|
|
820
|
+
return { intentCategory: 'other', intentLevel: 'L1' };
|
|
821
|
+
}
|
|
822
|
+
/**
|
|
823
|
+
* Threshold for "complex" objectives that warrant multi-step decomposition.
|
|
824
|
+
* Below this word count, a single task is sufficient.
|
|
825
|
+
*/
|
|
826
|
+
const COMPLEX_OBJECTIVE_WORD_THRESHOLD = 15;
|
|
827
|
+
/**
|
|
828
|
+
* Determines whether an objective is complex enough for multi-step decomposition.
|
|
829
|
+
* Complexity heuristics: word count, presence of conjunctions/lists, multiple
|
|
830
|
+
* action verbs, or explicit multi-step indicators.
|
|
831
|
+
*
|
|
832
|
+
* @param objective - The objective text
|
|
833
|
+
* @returns True if the objective warrants multiple tasks
|
|
834
|
+
*/
|
|
835
|
+
export function isComplexObjective(objective) {
|
|
836
|
+
const words = objective.split(/\s+/).filter(Boolean);
|
|
837
|
+
if (words.length >= COMPLEX_OBJECTIVE_WORD_THRESHOLD)
|
|
838
|
+
return true;
|
|
839
|
+
// Chinese: character count heuristic (Chinese text has fewer spaces)
|
|
840
|
+
const cjkChars = objective.match(/[\u4e00-\u9fff]/g);
|
|
841
|
+
if (cjkChars && cjkChars.length >= 20)
|
|
842
|
+
return true;
|
|
843
|
+
const lower = objective.toLowerCase();
|
|
844
|
+
// Multiple action verbs suggest multi-step work (English)
|
|
845
|
+
const actionVerbs = lower.match(/\b(build|create|implement|add|fix|deploy|test|review|design|write|migrate|refactor|setup|configure|integrate)\b/g);
|
|
846
|
+
if (actionVerbs && actionVerbs.length >= 2)
|
|
847
|
+
return true;
|
|
848
|
+
// Chinese action verbs
|
|
849
|
+
const cnActionVerbs = objective.match(/创建|实现|添加|修复|部署|测试|审查|设计|编写|迁移|重构|配置|集成|评估|分析|检查|搭建|开发/g);
|
|
850
|
+
if (cnActionVerbs && cnActionVerbs.length >= 2)
|
|
851
|
+
return true;
|
|
852
|
+
// Conjunctions or list indicators (English)
|
|
853
|
+
if (/\b(and then|then|also|plus|as well as|followed by|after that)\b/.test(lower))
|
|
854
|
+
return true;
|
|
855
|
+
if (/[;,]\s*(and\s+)?(then\s+)?/.test(objective) && words.length > 8)
|
|
856
|
+
return true;
|
|
857
|
+
// Chinese list/compound indicators: "包括...方面", enumeration with 、or ,
|
|
858
|
+
if (/包括|以及|同时|另外|还有|并且|然后/.test(objective))
|
|
859
|
+
return true;
|
|
860
|
+
// Chinese comma-separated list (3+ items with 、)
|
|
861
|
+
const cnListItems = objective.split(/[、,]/).filter((s) => s.trim().length > 1);
|
|
862
|
+
if (cnListItems.length >= 3)
|
|
863
|
+
return true;
|
|
864
|
+
return false;
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* Decomposes a mission objective into actionable tasks using keyword matching.
|
|
868
|
+
*
|
|
869
|
+
* P0-1 fix: Uses intelligent decomposition instead of always producing 3 tasks.
|
|
870
|
+
* - Simple/direct objectives → 1 task
|
|
871
|
+
* - Complex/multi-step objectives → 2-3 tasks
|
|
872
|
+
*
|
|
873
|
+
* Recognises three broad categories:
|
|
874
|
+
* - **Build** (create/implement/build/add/feature) → single task or design+implement+test
|
|
875
|
+
* - **Fix** (fix/debug/resolve/repair/patch) → single task or investigate+fix+verify
|
|
876
|
+
* - **Default** (anything else) → single task or plan+execute+review
|
|
877
|
+
*
|
|
878
|
+
* @param objective - The mission objective text
|
|
879
|
+
* @returns Array of PlannedTask objects (1-3 items)
|
|
880
|
+
*/
|
|
881
|
+
export function planTasksFromObjective(objective) {
|
|
882
|
+
const lower = objective.toLowerCase();
|
|
883
|
+
const complex = isComplexObjective(objective);
|
|
884
|
+
// Category: Build / Feature work (English + Chinese)
|
|
885
|
+
if (/\b(build|create|implement|add|feature|develop|write|ship)\b/.test(lower) || /创建|实现|添加|开发|编写|搭建|新增/.test(objective)) {
|
|
886
|
+
if (!complex) {
|
|
887
|
+
return [{
|
|
888
|
+
title: truncate(objective, 80),
|
|
889
|
+
description: `Implement: ${objective}. Follow project conventions, write tests, ensure build passes.`,
|
|
890
|
+
acceptanceCriteria: [
|
|
891
|
+
'Functionality implemented and working',
|
|
892
|
+
'Tests written and passing',
|
|
893
|
+
'Build passes clean',
|
|
894
|
+
],
|
|
895
|
+
priority: 'high',
|
|
896
|
+
}];
|
|
897
|
+
}
|
|
898
|
+
return [
|
|
899
|
+
{
|
|
900
|
+
title: `Design approach for: ${truncate(objective, 60)}`,
|
|
901
|
+
description: `Analyse requirements and design the technical approach for: ${objective}. Identify key components, interfaces, and dependencies.`,
|
|
902
|
+
acceptanceCriteria: [
|
|
903
|
+
'Technical approach documented',
|
|
904
|
+
'Key components and interfaces identified',
|
|
905
|
+
'Dependencies and risks listed',
|
|
906
|
+
],
|
|
907
|
+
priority: 'high',
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
title: `Implement: ${truncate(objective, 60)}`,
|
|
911
|
+
description: `Implement the core functionality described in: ${objective}. Follow the design approach from the previous task.`,
|
|
912
|
+
acceptanceCriteria: [
|
|
913
|
+
'Core functionality implemented',
|
|
914
|
+
'Code follows project conventions',
|
|
915
|
+
'TypeScript compiles without errors',
|
|
916
|
+
],
|
|
917
|
+
priority: 'high',
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
title: `Test and verify: ${truncate(objective, 60)}`,
|
|
921
|
+
description: `Write unit tests for the implementation of: ${objective}. Ensure minimum 80% coverage for new code.`,
|
|
922
|
+
acceptanceCriteria: [
|
|
923
|
+
'Unit tests written and passing',
|
|
924
|
+
'Edge cases covered',
|
|
925
|
+
'Build passes clean',
|
|
926
|
+
],
|
|
927
|
+
priority: 'medium',
|
|
928
|
+
},
|
|
929
|
+
];
|
|
930
|
+
}
|
|
931
|
+
// Category: Bug fix / Debugging (English + Chinese)
|
|
932
|
+
if (/\b(fix|debug|resolve|repair|patch|broken|bug|error|crash)\b/.test(lower) || /修复|修|调试|解决|修补|bug|报错|崩溃/.test(objective)) {
|
|
933
|
+
if (!complex) {
|
|
934
|
+
return [{
|
|
935
|
+
title: truncate(objective, 80),
|
|
936
|
+
description: `Investigate and fix: ${objective}. Identify root cause, apply fix, verify with tests.`,
|
|
937
|
+
acceptanceCriteria: [
|
|
938
|
+
'Root cause identified and fixed',
|
|
939
|
+
'Tests pass, no regressions',
|
|
940
|
+
'Build passes clean',
|
|
941
|
+
],
|
|
942
|
+
priority: 'high',
|
|
943
|
+
}];
|
|
944
|
+
}
|
|
945
|
+
return [
|
|
946
|
+
{
|
|
947
|
+
title: `Investigate: ${truncate(objective, 60)}`,
|
|
948
|
+
description: `Investigate the root cause of: ${objective}. Reproduce the issue and identify the failing code path.`,
|
|
949
|
+
acceptanceCriteria: [
|
|
950
|
+
'Root cause identified',
|
|
951
|
+
'Issue reproduced reliably',
|
|
952
|
+
'Affected code paths documented',
|
|
953
|
+
],
|
|
954
|
+
priority: 'high',
|
|
955
|
+
},
|
|
956
|
+
{
|
|
957
|
+
title: `Fix: ${truncate(objective, 60)}`,
|
|
958
|
+
description: `Apply a fix for: ${objective}. Ensure the fix addresses the root cause, not just the symptoms.`,
|
|
959
|
+
acceptanceCriteria: [
|
|
960
|
+
'Fix applied and tested locally',
|
|
961
|
+
'Root cause addressed',
|
|
962
|
+
'No regressions introduced',
|
|
963
|
+
],
|
|
964
|
+
priority: 'high',
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
title: `Verify fix: ${truncate(objective, 60)}`,
|
|
968
|
+
description: `Verify the fix for: ${objective}. Run full test suite and confirm the issue no longer reproduces.`,
|
|
969
|
+
acceptanceCriteria: [
|
|
970
|
+
'All existing tests pass',
|
|
971
|
+
'Regression test added',
|
|
972
|
+
'Issue confirmed resolved',
|
|
973
|
+
],
|
|
974
|
+
priority: 'medium',
|
|
975
|
+
},
|
|
976
|
+
];
|
|
977
|
+
}
|
|
978
|
+
// Default category
|
|
979
|
+
if (!complex) {
|
|
980
|
+
return [{
|
|
981
|
+
title: truncate(objective, 80),
|
|
982
|
+
description: `Execute: ${objective}. Complete the work and verify results.`,
|
|
983
|
+
acceptanceCriteria: [
|
|
984
|
+
'Objective completed',
|
|
985
|
+
'Deliverables produced',
|
|
986
|
+
'Build passes',
|
|
987
|
+
],
|
|
988
|
+
priority: 'high',
|
|
989
|
+
}];
|
|
990
|
+
}
|
|
991
|
+
return [
|
|
992
|
+
{
|
|
993
|
+
title: `Plan: ${truncate(objective, 60)}`,
|
|
994
|
+
description: `Create an execution plan for: ${objective}. Break down the work into concrete steps.`,
|
|
995
|
+
acceptanceCriteria: [
|
|
996
|
+
'Execution plan created',
|
|
997
|
+
'Steps are concrete and actionable',
|
|
998
|
+
'Dependencies identified',
|
|
999
|
+
],
|
|
1000
|
+
priority: 'high',
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
title: `Execute: ${truncate(objective, 60)}`,
|
|
1004
|
+
description: `Execute the plan for: ${objective}. Complete all steps identified in the planning phase.`,
|
|
1005
|
+
acceptanceCriteria: [
|
|
1006
|
+
'All planned steps completed',
|
|
1007
|
+
'Deliverables produced',
|
|
1008
|
+
'Build passes',
|
|
1009
|
+
],
|
|
1010
|
+
priority: 'high',
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
title: `Review: ${truncate(objective, 60)}`,
|
|
1014
|
+
description: `Review the completed work for: ${objective}. Verify quality, completeness, and alignment with the original objective.`,
|
|
1015
|
+
acceptanceCriteria: [
|
|
1016
|
+
'Work reviewed for quality',
|
|
1017
|
+
'Objective fully addressed',
|
|
1018
|
+
'Documentation updated if needed',
|
|
1019
|
+
],
|
|
1020
|
+
priority: 'low',
|
|
1021
|
+
},
|
|
1022
|
+
];
|
|
1023
|
+
}
|
|
1024
|
+
/**
|
|
1025
|
+
* Truncates a string to a maximum length, appending ellipsis if needed.
|
|
1026
|
+
*
|
|
1027
|
+
* @param str - The string to truncate
|
|
1028
|
+
* @param maxLen - Maximum length
|
|
1029
|
+
* @returns Truncated string
|
|
1030
|
+
*/
|
|
1031
|
+
function truncate(str, maxLen) {
|
|
1032
|
+
if (str.length <= maxLen)
|
|
1033
|
+
return str;
|
|
1034
|
+
return str.slice(0, maxLen - 3) + '...';
|
|
1035
|
+
}
|
|
1036
|
+
/**
|
|
1037
|
+
* Intent category labels for title prefixes.
|
|
1038
|
+
*/
|
|
1039
|
+
const INTENT_TITLE_PREFIXES = {
|
|
1040
|
+
debugging: 'Fix',
|
|
1041
|
+
deployment: 'Deploy',
|
|
1042
|
+
review: 'Review',
|
|
1043
|
+
planning: 'Plan',
|
|
1044
|
+
research: 'Research',
|
|
1045
|
+
code_change: 'Implement',
|
|
1046
|
+
communication: 'Message',
|
|
1047
|
+
};
|
|
1048
|
+
/**
|
|
1049
|
+
* Generates a summarized title for a Request instead of copying raw content.
|
|
1050
|
+
*
|
|
1051
|
+
* For short messages (under 60 chars), uses the content directly with an
|
|
1052
|
+
* intent prefix. For longer messages, extracts the first sentence or clause
|
|
1053
|
+
* and prepends the intent prefix.
|
|
1054
|
+
*
|
|
1055
|
+
* @param content - The trimmed user message
|
|
1056
|
+
* @param intentCategory - The classified intent category
|
|
1057
|
+
* @returns A concise, informative title (max 80 chars)
|
|
1058
|
+
*/
|
|
1059
|
+
export function generateRequestTitle(content, intentCategory) {
|
|
1060
|
+
const prefix = INTENT_TITLE_PREFIXES[intentCategory];
|
|
1061
|
+
// For short messages (under 60 chars), always add a prefix.
|
|
1062
|
+
// If no category-specific prefix, use a generic "Request" prefix
|
|
1063
|
+
// to ensure title ≠ description.
|
|
1064
|
+
if (content.length <= 60) {
|
|
1065
|
+
const label = prefix || 'Request';
|
|
1066
|
+
return truncate(`[${label}] ${content}`, 80);
|
|
1067
|
+
}
|
|
1068
|
+
// For longer messages, extract the first sentence or clause
|
|
1069
|
+
// and split on Chinese sentence-ending punctuation as well.
|
|
1070
|
+
const firstSentence = content.match(/^[^.!?\n。!?]+[.!?。!?]?/)?.[0] || content;
|
|
1071
|
+
const core = firstSentence.trim();
|
|
1072
|
+
const label = prefix || 'Request';
|
|
1073
|
+
return truncate(`[${label}] ${core}`, 80);
|
|
1074
|
+
}
|
|
1075
|
+
//# sourceMappingURL=v3-data.service.js.map
|