crewly 1.6.4 → 1.6.5
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/roles/architect/prompt.md +68 -2
- package/config/roles/auditor/prompt.md +68 -0
- package/config/roles/backend-developer/prompt.md +68 -2
- package/config/roles/content-strategist/prompt.md +73 -5
- package/config/roles/designer/prompt.md +69 -4
- package/config/roles/developer/prompt.md +231 -4
- package/config/roles/frontend-developer/prompt.md +68 -2
- package/config/roles/fullstack-dev/prompt.md +68 -2
- package/config/roles/generalist/prompt.md +68 -2
- package/config/roles/ops/prompt.md +69 -3
- package/config/roles/orchestrator/fragments/communication.md +27 -0
- package/config/roles/orchestrator/fragments/role-boundary.md +1 -1
- package/config/roles/orchestrator/prompt.md +215 -72
- package/config/roles/product-manager/prompt.md +140 -7
- package/config/roles/qa/prompt.md +70 -5
- package/config/roles/qa-engineer/prompt.md +70 -5
- package/config/roles/researcher/prompt.md +68 -2
- package/config/roles/sales/prompt.md +70 -5
- package/config/roles/support/prompt.md +69 -4
- package/config/roles/team-leader/prompt.md +87 -6
- package/config/roles/team-leader/role-boundaries.md +26 -0
- package/config/roles/team-leader/tl-addon.md +153 -1
- package/config/roles/tpm/prompt.md +68 -2
- package/config/roles/ux-designer/prompt.md +70 -5
- package/config/skills/_common/complete-body-shape.test.sh +249 -0
- package/config/skills/agent/core/accept-task/execute.sh +18 -15
- package/config/skills/agent/core/block-task/execute.sh +27 -9
- package/config/skills/agent/core/cancel-followup/SKILL.md +18 -0
- package/config/skills/agent/core/complete-task/execute.sh +45 -7
- package/config/skills/agent/core/create-task/execute.sh +40 -12
- package/config/skills/agent/core/get-my-active-work/SKILL.md +3 -1
- package/config/skills/agent/core/get-my-tasks/execute.sh +7 -5
- package/config/skills/agent/core/handoff-task/execute.sh +34 -48
- package/config/skills/agent/core/list-my-followups/SKILL.md +18 -0
- package/config/skills/agent/core/read-task/execute.sh +21 -8
- package/config/skills/agent/core/recall/SKILL.md +7 -0
- package/config/skills/agent/core/remember/SKILL.md +17 -1
- package/config/skills/agent/core/remember/execute.sh +5 -1
- package/config/skills/agent/core/reply-channel/SKILL.md +19 -0
- package/config/skills/agent/core/report-progress/execute.sh +39 -16
- package/config/skills/agent/core/report-status/execute.sh +36 -12
- package/config/skills/agent/core/save-working-state/execute.sh +17 -6
- package/config/skills/agent/core/schedule-followup/SKILL.md +19 -0
- package/config/skills/agent/core/send-message/SKILL.md +6 -0
- package/config/skills/agent/core/supersede-memory/SKILL.md +76 -0
- package/config/skills/agent/core/supersede-memory/execute.sh +108 -0
- package/config/skills/agent/core/watch-for-event/SKILL.md +19 -0
- package/config/skills/agent/onboarding/materialize-team/SKILL.md +94 -0
- package/config/skills/agent/onboarding/materialize-team/execute.sh +98 -0
- package/config/skills/agent/onboarding/recommend-team/SKILL.md +90 -0
- package/config/skills/agent/onboarding/recommend-team/execute.sh +96 -0
- package/config/skills/agent/xhs-article-to-image/SKILL.md +20 -0
- package/config/skills/auditor/score-task/SKILL.md +15 -0
- package/config/skills/orchestrator/assign-task/execute.sh +28 -4
- package/config/skills/orchestrator/cancel-all-schedules/SKILL.md +15 -1
- package/config/skills/orchestrator/complete-task/execute.sh +45 -4
- package/config/skills/orchestrator/delegate-task/SKILL.md +1 -0
- package/config/skills/orchestrator/delegate-task/execute.sh +41 -2
- package/config/skills/orchestrator/get-tasks/execute.sh +22 -18
- package/config/skills/orchestrator/list-schedules/SKILL.md +15 -1
- package/config/skills/orchestrator/update-team-member/SKILL.md +20 -0
- package/config/skills/team-leader/decompose-goal/execute.sh +51 -20
- package/config/skills/team-leader/delegate-task/execute.sh +67 -26
- package/config/skills/team-leader/delegate-task/execute.test.sh +117 -0
- package/config/skills/team-leader/verify-output/execute.sh +19 -20
- package/config/slack-app-manifest.json +2 -1
- package/config/sops/common/dev-process-tiers.md +181 -0
- package/config/sops/common/owner-facing-communication.md +131 -0
- package/config/souls/orchestrator.md +8 -0
- package/config/souls/team-leader.md +77 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +4 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts +8 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js +30 -26
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/api.controller.d.ts +0 -9
- package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/api.controller.js +4 -32
- package/dist/backend/backend/src/controllers/api.controller.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 +5 -2
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +5 -2
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.d.ts +45 -0
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.js +122 -0
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts +24 -0
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js +69 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.js +3 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +80 -5
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +30 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts +41 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +213 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts +21 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js +27 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.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 +97 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts +13 -3
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js +29 -24
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +61 -13
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +159 -7
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +421 -37
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +15 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +221 -10
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts +22 -0
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js +92 -0
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js +6 -2
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/types.d.ts +1 -2
- package/dist/backend/backend/src/controllers/types.d.ts.map +1 -1
- package/dist/backend/backend/src/index.d.ts +4 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +291 -64
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/models/Project.d.ts +2 -0
- package/dist/backend/backend/src/models/Project.d.ts.map +1 -1
- package/dist/backend/backend/src/models/Project.js +10 -1
- package/dist/backend/backend/src/models/Project.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 +4 -1
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts +15 -0
- 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 +23 -43
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.d.ts +87 -0
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.js +116 -0
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.js.map +1 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +46 -6
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +56 -13
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +9 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +28 -3
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +31 -5
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +69 -29
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -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 +113 -75
- 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/auditor-tools.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +5 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +35 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +127 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +79 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +145 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +64 -9
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +125 -15
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
- 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 +101 -33
- 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 +76 -1
- 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 +73 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +5 -5
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +22 -8
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +10 -0
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +160 -4
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts +37 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +77 -3
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +4 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js +4 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.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 +45 -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 +16 -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/request-contract.module.d.ts +106 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
- 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 +28 -0
- 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/soul.module.d.ts +38 -6
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.js +73 -10
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
- package/dist/backend/backend/src/services/autonomous/index.d.ts +7 -3
- package/dist/backend/backend/src/services/autonomous/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/autonomous/index.js +7 -3
- package/dist/backend/backend/src/services/autonomous/index.js.map +1 -1
- 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 +16 -22
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +13 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +15 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +11 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +51 -19
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +18 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +23 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/config.service.js +8 -1
- package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts +51 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.js +59 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.js.map +1 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.d.ts +53 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.js +61 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.js.map +1 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts +20 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +96 -8
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/teams-backup.service.d.ts +94 -4
- package/dist/backend/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/teams-backup.service.js +172 -10
- package/dist/backend/backend/src/services/core/teams-backup.service.js.map +1 -1
- package/dist/backend/backend/src/services/index.d.ts +0 -2
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +0 -2
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.d.ts +78 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.js +209 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts +331 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js +413 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js +13 -4
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +18 -13
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +102 -0
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js +118 -0
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js +11 -15
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +20 -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 +27 -2
- package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory-supersession.service.d.ts +104 -0
- package/dist/backend/backend/src/services/memory/memory-supersession.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/memory-supersession.service.js +127 -0
- package/dist/backend/backend/src/services/memory/memory-supersession.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +48 -17
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +65 -35
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/mission-context.service.d.ts +168 -0
- package/dist/backend/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/mission-context.service.js +365 -0
- package/dist/backend/backend/src/services/memory/mission-context.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts +138 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js +183 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/vector-store.service.js +7 -11
- package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/working-memory.service.d.ts +232 -0
- package/dist/backend/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/working-memory.service.js +417 -0
- package/dist/backend/backend/src/services/memory/working-memory.service.js.map +1 -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 +23 -2
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +2 -2
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts +27 -7
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js +66 -27
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js +2 -2
- package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.js +284 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.js +48 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
- package/dist/backend/backend/src/services/observability/observability-db.d.ts +84 -0
- package/dist/backend/backend/src/services/observability/observability-db.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/observability-db.js +165 -0
- package/dist/backend/backend/src/services/observability/observability-db.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts +22 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js +36 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts +21 -2
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js +12 -3
- package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts +108 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +165 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +114 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +299 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.d.ts +128 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.js +195 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts +66 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js +145 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts +59 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js +68 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts +67 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +290 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts +23 -1
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js +64 -1
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js.map +1 -1
- 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 +2 -2
- package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.js +2 -2
- package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
- package/dist/backend/backend/src/services/prompt/prompt-generator.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/prompt/prompt-generator.service.js +2 -2
- package/dist/backend/backend/src/services/prompt/prompt-generator.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +51 -5
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +162 -15
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +15 -2
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +153 -11
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +31 -18
- 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 +73 -80
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.js +15 -4
- package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.js +25 -0
- package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +14 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +28 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js +13 -18
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +45 -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 +202 -19
- 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 +21 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +15 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.js +31 -8
- package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +183 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +404 -8
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +14 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +128 -17
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts +95 -0
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/cascade-request-status.js +147 -0
- package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +42 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.js +16 -4
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts +87 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js +152 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts +253 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +476 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +55 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +257 -20
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts +204 -0
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +575 -0
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts +107 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +155 -2
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +69 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +157 -4
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +50 -26
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js +126 -161
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/work-item-projection.d.ts +40 -0
- package/dist/backend/backend/src/services/v3/work-item-projection.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/work-item-projection.js +115 -0
- package/dist/backend/backend/src/services/v3/work-item-projection.js.map +1 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +121 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +268 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +11 -2
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +68 -14
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +12 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +11 -1
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js +0 -2
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts +22 -3
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.js +201 -40
- package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
- package/dist/backend/backend/src/types/memory.types.d.ts +53 -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/orchestrator-state.types.d.ts +49 -0
- package/dist/backend/backend/src/types/orchestrator-state.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/orchestrator-state.types.js +27 -0
- package/dist/backend/backend/src/types/orchestrator-state.types.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +38 -2
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +16 -2
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts +5 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +2 -2
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +40 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +20 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts +111 -0
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/esm-require.utils.js +124 -0
- package/dist/backend/backend/src/utils/esm-require.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.d.ts +119 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.js +212 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/native-binding.utils.d.ts +128 -0
- package/dist/backend/backend/src/utils/native-binding.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/native-binding.utils.js +206 -0
- package/dist/backend/backend/src/utils/native-binding.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/node-require.utils.d.ts +104 -0
- package/dist/backend/backend/src/utils/node-require.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/node-require.utils.js +111 -0
- package/dist/backend/backend/src/utils/node-require.utils.js.map +1 -0
- package/dist/cli/backend/src/models/Project.d.ts +2 -0
- package/dist/cli/backend/src/models/Project.d.ts.map +1 -1
- package/dist/cli/backend/src/models/Project.js +10 -1
- package/dist/cli/backend/src/models/Project.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +16 -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/config.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/config.service.js +8 -1
- package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts +51 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.js +59 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.js.map +1 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.d.ts +53 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.js +61 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.js.map +1 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts +20 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +96 -8
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +94 -4
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/teams-backup.service.js +172 -10
- package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts +245 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +639 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +18 -13
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +102 -0
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js +118 -0
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js +11 -15
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +20 -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 +27 -2
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +48 -17
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +65 -35
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts +138 -0
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js +183 -0
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts +236 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.js +581 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.js.map +1 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project/task-tracking.service.js +2 -2
- package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.js +25 -0
- package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.d.ts +147 -0
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.js +258 -0
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +15 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.js +31 -8
- package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +459 -9
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +1050 -126
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/work-item-projection.d.ts +40 -0
- package/dist/cli/backend/src/services/v3/work-item-projection.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/work-item-projection.js +115 -0
- package/dist/cli/backend/src/services/v3/work-item-projection.js.map +1 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts +173 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/event-bus.types.js +218 -0
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -0
- package/dist/cli/backend/src/types/index.d.ts +11 -1
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js +0 -2
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/memory.types.d.ts +53 -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/messaging.types.d.ts +223 -0
- package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/messaging.types.js +231 -0
- package/dist/cli/backend/src/types/messaging.types.js.map +1 -0
- package/dist/cli/backend/src/types/settings.types.d.ts +38 -2
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +16 -2
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/slack.types.d.ts +356 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/slack.types.js +66 -0
- package/dist/cli/backend/src/types/slack.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/claim.types.d.ts +2 -5
- package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/claim.types.js +2 -5
- package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +40 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +20 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/utils/format-error.d.ts +8 -0
- package/dist/cli/backend/src/utils/format-error.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/format-error.js +10 -0
- package/dist/cli/backend/src/utils/format-error.js.map +1 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.d.ts +119 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.js +212 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/node-require.utils.d.ts +104 -0
- package/dist/cli/backend/src/utils/node-require.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/node-require.utils.js +111 -0
- package/dist/cli/backend/src/utils/node-require.utils.js.map +1 -0
- package/frontend/dist/assets/{index-7a4e7df5.js → index-698305f3.js} +337 -337
- package/frontend/dist/index.html +1 -1
- package/package.json +6 -2
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +0 -63
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/eval/eval.controller.js +0 -228
- package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/eval/eval.routes.js +0 -37
- package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +0 -8
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js +0 -8
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +0 -63
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +0 -179
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +0 -22
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +0 -34
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +0 -130
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +0 -406
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +0 -68
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +0 -206
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +0 -32
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +0 -46
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +0 -87
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +0 -299
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +0 -59
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +0 -218
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +0 -203
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +0 -467
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +0 -313
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +0 -45
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +0 -21
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +0 -21
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +0 -15
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +0 -349
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +0 -97
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +0 -414
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +0 -42
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +0 -403
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +0 -41
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +0 -58
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +0 -15
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +0 -396
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +0 -14
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +0 -564
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +0 -13
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +0 -634
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +0 -21
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +0 -1036
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +0 -100
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +0 -187
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +0 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +0 -79
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +0 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +0 -118
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts +0 -113
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js +0 -179
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts +0 -131
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js +0 -227
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js.map +0 -1
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +0 -56
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +0 -1
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +0 -91
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +0 -1
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +0 -97
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +0 -1
- package/dist/backend/backend/src/services/memory/learning-format.validator.js +0 -209
- package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +0 -1
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.d.ts +0 -0
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.d.ts.map +0 -0
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.js +0 -0
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.js.map +0 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recommend-Team Logic (Onboarding v3, v0)
|
|
3
|
+
*
|
|
4
|
+
* Pure function: turns a business-context payload (collected during the
|
|
5
|
+
* onboarding conversation) into a concrete team recommendation
|
|
6
|
+
* (template + agents + responsibilities).
|
|
7
|
+
*
|
|
8
|
+
* v0 strategy: 5 hardcoded heuristic mappings that cover the ~80% case
|
|
9
|
+
* Steve and Sam expect to see during the Mon 5/4 EOD demo, plus a
|
|
10
|
+
* generic 2-agent fallback for everything else. Real RAG over Mia's
|
|
11
|
+
* spec v3 + doc 69 + the live template registry lands Wed–Fri.
|
|
12
|
+
*
|
|
13
|
+
* Importantly, the function is **pure** (no FS, no API, no clock) —
|
|
14
|
+
* tests exercise the mapping logic directly without mocks.
|
|
15
|
+
*
|
|
16
|
+
* @module services/orchestrator/onboarding/recommend-team
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Build a recommendation given a key + template + agents + rationale.
|
|
20
|
+
* Internal helper to avoid repeating the source/reasoning shape.
|
|
21
|
+
*/
|
|
22
|
+
function build(key, templateId, agents, reasoning) {
|
|
23
|
+
return {
|
|
24
|
+
templateId,
|
|
25
|
+
agents,
|
|
26
|
+
reasoning,
|
|
27
|
+
source: `hardcoded:${key}`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The 5 hardcoded mappings — ordered most-specific first.
|
|
32
|
+
*
|
|
33
|
+
* Each mapping is keyed off a small lowercase keyword set; the
|
|
34
|
+
* highest-scoring mapping wins. If no mapping scores ≥1, the generic
|
|
35
|
+
* fallback fires.
|
|
36
|
+
*/
|
|
37
|
+
const HARDCODED_MAPPINGS = [
|
|
38
|
+
// --- 1. E-commerce + content + customer support (Steve's anchor demo)
|
|
39
|
+
{
|
|
40
|
+
key: 'ecommerce-content-support',
|
|
41
|
+
keywords: [
|
|
42
|
+
'shopify',
|
|
43
|
+
'e-commerce',
|
|
44
|
+
'ecommerce',
|
|
45
|
+
'dtc',
|
|
46
|
+
'skincare',
|
|
47
|
+
'apparel',
|
|
48
|
+
'retail',
|
|
49
|
+
'storefront',
|
|
50
|
+
'support',
|
|
51
|
+
'content',
|
|
52
|
+
],
|
|
53
|
+
build: (ctx) => build('ecommerce-content-support', 'dtc-viral-content-team', [
|
|
54
|
+
{
|
|
55
|
+
role: 'content-drafter',
|
|
56
|
+
responsibilities: 'Drafts weekly blog + social content tuned to your storefront and audience.',
|
|
57
|
+
skillIds: ['content-drafter', 'content-calendar'],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
role: 'support-triage',
|
|
61
|
+
responsibilities: 'Triages incoming customer messages and prepares first-draft replies for your approval.',
|
|
62
|
+
skillIds: ['support-triage'],
|
|
63
|
+
},
|
|
64
|
+
], `You named e-commerce + content + support. The content drafter handles your weekly publishing cadence; the support triage agent keeps inbound from piling up while leaving the send button to you. ${ctx.scale === 'solo' ? 'Sized 2-agent because solo founders should not babysit a big team.' : ''}`.trim()),
|
|
65
|
+
},
|
|
66
|
+
// --- 2. Solo content creator / social-first
|
|
67
|
+
{
|
|
68
|
+
key: 'solo-creator',
|
|
69
|
+
keywords: [
|
|
70
|
+
'creator',
|
|
71
|
+
'youtube',
|
|
72
|
+
'tiktok',
|
|
73
|
+
'instagram',
|
|
74
|
+
'newsletter',
|
|
75
|
+
'blog',
|
|
76
|
+
'podcast',
|
|
77
|
+
'video',
|
|
78
|
+
'social',
|
|
79
|
+
],
|
|
80
|
+
build: () => build('solo-creator', 'ai-video-social-team', [
|
|
81
|
+
{
|
|
82
|
+
role: 'content-drafter',
|
|
83
|
+
responsibilities: 'Plans + drafts your content schedule across platforms.',
|
|
84
|
+
skillIds: ['content-drafter', 'content-calendar', 'content-repurposer'],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
role: 'trend-monitor',
|
|
88
|
+
responsibilities: 'Watches the trends and topic signals in your niche so your drafts ride the wave.',
|
|
89
|
+
skillIds: ['trend-monitor'],
|
|
90
|
+
},
|
|
91
|
+
], 'Your work centres on content production. Drafting + trend monitoring is the smallest team that meaningfully removes the daily-content treadmill.'),
|
|
92
|
+
},
|
|
93
|
+
// --- 3. Engineering / SaaS dev team
|
|
94
|
+
{
|
|
95
|
+
key: 'engineering',
|
|
96
|
+
keywords: [
|
|
97
|
+
'saas',
|
|
98
|
+
'software',
|
|
99
|
+
'engineering',
|
|
100
|
+
'dev',
|
|
101
|
+
'developer',
|
|
102
|
+
'startup',
|
|
103
|
+
'product',
|
|
104
|
+
'b2b',
|
|
105
|
+
'platform',
|
|
106
|
+
'mvp',
|
|
107
|
+
],
|
|
108
|
+
build: (ctx) => build('engineering', ctx.scale === 'solo' ? 'pragmatic-mvp-dev-team' : 'web-dev-team', [
|
|
109
|
+
{
|
|
110
|
+
role: 'code-reviewer',
|
|
111
|
+
responsibilities: 'Reviews pull requests for style, obvious bugs, and missing tests.',
|
|
112
|
+
skillIds: ['code-reviewer'],
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
role: 'data-analyst',
|
|
116
|
+
responsibilities: 'Pulls product metrics into a daily report so you do not lose signal in the build cycle.',
|
|
117
|
+
skillIds: ['data-summarizer', 'scheduled-reporter'],
|
|
118
|
+
},
|
|
119
|
+
], `For a ${ctx.scale === 'solo' ? 'solo MVP push' : 'small engineering team'}, the highest-leverage agents are code review + a data summariser that surfaces the metrics you forget to check.`),
|
|
120
|
+
},
|
|
121
|
+
// --- 4. Customer support / ops focus
|
|
122
|
+
{
|
|
123
|
+
key: 'support-ops',
|
|
124
|
+
keywords: [
|
|
125
|
+
'support',
|
|
126
|
+
'helpdesk',
|
|
127
|
+
'tickets',
|
|
128
|
+
'customer service',
|
|
129
|
+
'cs',
|
|
130
|
+
'ops',
|
|
131
|
+
'operations',
|
|
132
|
+
'feedback',
|
|
133
|
+
],
|
|
134
|
+
build: () => build('support-ops', 'customer-ops-team', [
|
|
135
|
+
{
|
|
136
|
+
role: 'support-triage',
|
|
137
|
+
responsibilities: 'Triages inbound and drafts replies; you stay in the loop on send.',
|
|
138
|
+
skillIds: ['support-triage'],
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
role: 'data-analyst',
|
|
142
|
+
responsibilities: 'Summarises ticket trends so the same issue does not surprise you twice.',
|
|
143
|
+
skillIds: ['feedback-analyzer', 'data-summarizer'],
|
|
144
|
+
},
|
|
145
|
+
], 'Your time-sinks are on the support side. A triage agent removes the inbox sprint; a feedback analyst catches the patterns under the noise.'),
|
|
146
|
+
},
|
|
147
|
+
// --- 5. Growth / marketing-heavy
|
|
148
|
+
{
|
|
149
|
+
key: 'growth-marketing',
|
|
150
|
+
keywords: [
|
|
151
|
+
'marketing',
|
|
152
|
+
'growth',
|
|
153
|
+
'seo',
|
|
154
|
+
'ads',
|
|
155
|
+
'paid',
|
|
156
|
+
'distribution',
|
|
157
|
+
'pipeline',
|
|
158
|
+
'lead gen',
|
|
159
|
+
'leadgen',
|
|
160
|
+
'agency',
|
|
161
|
+
],
|
|
162
|
+
build: () => build('growth-marketing', 'growth-marketing-team', [
|
|
163
|
+
{
|
|
164
|
+
role: 'content-drafter',
|
|
165
|
+
responsibilities: 'Drafts the content side of your growth pipeline (blog / social / newsletter).',
|
|
166
|
+
skillIds: ['content-drafter', 'content-calendar'],
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
role: 'data-analyst',
|
|
170
|
+
responsibilities: 'Tracks growth metrics across channels and flags drops before they compound.',
|
|
171
|
+
skillIds: ['data-summarizer', 'scheduled-reporter'],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
role: 'trend-monitor',
|
|
175
|
+
responsibilities: 'Surfaces topic + competitor signals so your distribution stays current.',
|
|
176
|
+
skillIds: ['trend-monitor', 'competitor-content-tracker'],
|
|
177
|
+
},
|
|
178
|
+
], 'You named growth / distribution as the core. Three agents — drafting + analytics + trend-watching — cover the production / measurement / sensing loop.'),
|
|
179
|
+
},
|
|
180
|
+
];
|
|
181
|
+
// =============================================================================
|
|
182
|
+
// Public API
|
|
183
|
+
// =============================================================================
|
|
184
|
+
/**
|
|
185
|
+
* Map a {@link BusinessContext} to a {@link TeamRecommendation}.
|
|
186
|
+
*
|
|
187
|
+
* Strategy (v0):
|
|
188
|
+
* 1. Score every hardcoded mapping by counting keyword hits across
|
|
189
|
+
* `industry` + each task name.
|
|
190
|
+
* 2. Highest-scoring mapping wins (ties broken by declaration order).
|
|
191
|
+
* 3. If no mapping scores ≥1, fire the generic 2-agent fallback.
|
|
192
|
+
*
|
|
193
|
+
* The function never throws — invalid input degrades to the fallback so
|
|
194
|
+
* the conversation can keep moving even if discovery captured nothing
|
|
195
|
+
* useful.
|
|
196
|
+
*
|
|
197
|
+
* @param ctx - Business context collected during phases 1–3.
|
|
198
|
+
* @returns A team recommendation ready for phase 4.
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* recommendTeam({
|
|
203
|
+
* industry: 'small Shopify skincare shop',
|
|
204
|
+
* scale: 'solo',
|
|
205
|
+
* tasks: [
|
|
206
|
+
* { name: 'weekly blog content', tier: 'yes-today' },
|
|
207
|
+
* { name: 'customer support replies', tier: 'yes-today' },
|
|
208
|
+
* ],
|
|
209
|
+
* });
|
|
210
|
+
* // → templateId: 'dtc-viral-content-team', 2 agents, …
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export function recommendTeam(ctx) {
|
|
214
|
+
const haystack = buildHaystack(ctx);
|
|
215
|
+
let bestScore = 0;
|
|
216
|
+
let best = null;
|
|
217
|
+
for (const mapping of HARDCODED_MAPPINGS) {
|
|
218
|
+
const score = scoreMapping(mapping, haystack);
|
|
219
|
+
if (score > bestScore) {
|
|
220
|
+
bestScore = score;
|
|
221
|
+
best = mapping;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (best && bestScore > 0) {
|
|
225
|
+
return best.build(ctx);
|
|
226
|
+
}
|
|
227
|
+
return genericFallback(ctx);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Generic 2-agent fallback when no hardcoded mapping fires. Picks
|
|
231
|
+
* `startup-team` (the most general template) and a content + analyst
|
|
232
|
+
* pair, which has been the highest-utility default in our discovery
|
|
233
|
+
* data.
|
|
234
|
+
*
|
|
235
|
+
* @param ctx - Original business context (used only for rationale).
|
|
236
|
+
* @returns A safe, neutral recommendation.
|
|
237
|
+
*/
|
|
238
|
+
function genericFallback(ctx) {
|
|
239
|
+
const tasksLine = ctx.tasks.length
|
|
240
|
+
? `you mentioned ${ctx.tasks.map((t) => t.name).join(' / ')}`
|
|
241
|
+
: 'we did not nail the time-sinks down yet';
|
|
242
|
+
return {
|
|
243
|
+
templateId: 'startup-team',
|
|
244
|
+
agents: [
|
|
245
|
+
{
|
|
246
|
+
role: 'content-drafter',
|
|
247
|
+
responsibilities: 'Drafts written content (blog / social / internal updates) on a schedule.',
|
|
248
|
+
skillIds: ['content-drafter'],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
role: 'data-analyst',
|
|
252
|
+
responsibilities: 'Summarises whatever data feed you connect (sheets / API / CSV) into a daily report.',
|
|
253
|
+
skillIds: ['data-summarizer', 'scheduled-reporter'],
|
|
254
|
+
},
|
|
255
|
+
],
|
|
256
|
+
reasoning: `I did not match a precise mapping for your shape — ${tasksLine} — so I am proposing a safe 2-agent default. We can adjust before I create anything.`,
|
|
257
|
+
source: 'fallback',
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
// =============================================================================
|
|
261
|
+
// Internals
|
|
262
|
+
// =============================================================================
|
|
263
|
+
/**
|
|
264
|
+
* Build a single lowercase haystack string from the context's industry
|
|
265
|
+
* + task names. Keyword matches are checked against this string.
|
|
266
|
+
*/
|
|
267
|
+
function buildHaystack(ctx) {
|
|
268
|
+
const parts = [];
|
|
269
|
+
parts.push(ctx.industry ?? '');
|
|
270
|
+
for (const t of ctx.tasks) {
|
|
271
|
+
parts.push(t.name);
|
|
272
|
+
}
|
|
273
|
+
return parts.join(' ').toLowerCase();
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Count how many of a mapping's keywords appear in the haystack.
|
|
277
|
+
*/
|
|
278
|
+
function scoreMapping(mapping, haystack) {
|
|
279
|
+
let score = 0;
|
|
280
|
+
for (const kw of mapping.keywords) {
|
|
281
|
+
if (haystack.includes(kw))
|
|
282
|
+
score += 1;
|
|
283
|
+
}
|
|
284
|
+
return score;
|
|
285
|
+
}
|
|
286
|
+
// =============================================================================
|
|
287
|
+
// Exports for tests / wiring
|
|
288
|
+
// =============================================================================
|
|
289
|
+
/**
|
|
290
|
+
* Exposed for test introspection — the count is asserted against the
|
|
291
|
+
* spec ("5 hardcoded mappings cover 80% of users").
|
|
292
|
+
*/
|
|
293
|
+
export const HARDCODED_MAPPING_COUNT = HARDCODED_MAPPINGS.length;
|
|
294
|
+
/**
|
|
295
|
+
* Exposed for test introspection — list of mapping keys, useful for
|
|
296
|
+
* asserting coverage without opening the array.
|
|
297
|
+
*/
|
|
298
|
+
export const HARDCODED_MAPPING_KEYS = HARDCODED_MAPPINGS.map((m) => m.key);
|
|
299
|
+
//# sourceMappingURL=recommend-team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommend-team.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/orchestrator/onboarding/recommend-team.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Onboarding Bootstrap Service (Onboarding v3 — B1).
|
|
3
|
+
*
|
|
4
|
+
* Detects whether a freshly-launched Crewly OSS instance should enter
|
|
5
|
+
* onboarding mode. Two AND-ed signals are required:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Project marker** — `Project.firstLaunchedAt` is unset (or no project
|
|
8
|
+
* record exists yet). Set on first successful orc bootstrap and never
|
|
9
|
+
* overwritten thereafter; defends the cold-start signal against the
|
|
10
|
+
* edge case where chat-v2 is wiped accidentally on an existing install.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Chat-v2 emptiness** — `ChatV2Service.countAllMessages() === 0`.
|
|
13
|
+
* Captures "user has not spoken to Crewly yet" — Steve's exact phrasing.
|
|
14
|
+
*
|
|
15
|
+
* If EITHER signal says "user has been here before", onboarding does NOT
|
|
16
|
+
* trigger. This intentional belt-and-braces design follows Sam's substrate
|
|
17
|
+
* note 2026-05-03.
|
|
18
|
+
*
|
|
19
|
+
* Hook point: `crewly-agent-runtime.service.initializeInProcess()` calls
|
|
20
|
+
* `shouldEnterOnboardingMode()` before composing the system prompt and
|
|
21
|
+
* branches on the result (B3). After bootstrap success, the orc bootstrap
|
|
22
|
+
* also calls `markProjectAsLaunched()` to set the marker.
|
|
23
|
+
*
|
|
24
|
+
* @module services/orchestrator/onboarding-bootstrap.service
|
|
25
|
+
*/
|
|
26
|
+
import type { StorageService } from '../core/storage.service.js';
|
|
27
|
+
/**
|
|
28
|
+
* Minimal contract for the chat-v2 emptiness probe.
|
|
29
|
+
*
|
|
30
|
+
* Decoupled from the concrete `ChatV2Service` so tests can inject a fake
|
|
31
|
+
* counter without bringing up sqlite. Production wiring resolves to
|
|
32
|
+
* `getChatV2Service().countAllMessages.bind(...)`.
|
|
33
|
+
*/
|
|
34
|
+
export interface ChatMessageCounter {
|
|
35
|
+
/** @returns Total count of persisted chat messages across all channels */
|
|
36
|
+
countAllMessages(): number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Constructor dependencies for `OnboardingBootstrapService`.
|
|
40
|
+
*/
|
|
41
|
+
export interface OnboardingBootstrapDependencies {
|
|
42
|
+
/** Source of project records (provides `getProjects` + `saveProject`). */
|
|
43
|
+
storage: StorageService;
|
|
44
|
+
/** Source of chat-v2 emptiness signal. */
|
|
45
|
+
chat: ChatMessageCounter;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Cold-start detector for the orchestrator's onboarding mode.
|
|
49
|
+
*
|
|
50
|
+
* The two helpers are called from the orc bootstrap path:
|
|
51
|
+
* - `shouldEnterOnboardingMode()` — branch on this BEFORE composing the
|
|
52
|
+
* system prompt; if true, load `ONBOARDING_MODE_SYSTEM_PROMPT` instead
|
|
53
|
+
* of the role prompt.
|
|
54
|
+
* - `markProjectAsLaunched(projectId)` — call AFTER bootstrap succeeds,
|
|
55
|
+
* regardless of mode, to write the per-project first-launch marker.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const detector = new OnboardingBootstrapService({ storage, chat });
|
|
60
|
+
* if (await detector.shouldEnterOnboardingMode()) {
|
|
61
|
+
* stateService.setMode('onboarding');
|
|
62
|
+
* }
|
|
63
|
+
* // ... orc init succeeds ...
|
|
64
|
+
* if (currentProjectId) {
|
|
65
|
+
* await detector.markProjectAsLaunched(currentProjectId);
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare class OnboardingBootstrapService {
|
|
70
|
+
private readonly storage;
|
|
71
|
+
private readonly chat;
|
|
72
|
+
private readonly logger;
|
|
73
|
+
constructor(deps: OnboardingBootstrapDependencies);
|
|
74
|
+
/**
|
|
75
|
+
* Decide whether the orchestrator should enter onboarding mode.
|
|
76
|
+
*
|
|
77
|
+
* Both signals must agree on "this is a cold start":
|
|
78
|
+
*
|
|
79
|
+
* 1. The targeted project's `firstLaunchedAt` marker is unset. When
|
|
80
|
+
* `projectId` is omitted, the check broadens to "no project at all
|
|
81
|
+
* has the marker set" — appropriate for the orc bootstrap path,
|
|
82
|
+
* which runs before any user has bound a project.
|
|
83
|
+
* 2. Chat-v2 has zero persisted messages.
|
|
84
|
+
*
|
|
85
|
+
* Errors in either probe are treated as "user has been here before"
|
|
86
|
+
* (returns false) — failing closed avoids false-triggering onboarding
|
|
87
|
+
* on a transient storage hiccup.
|
|
88
|
+
*
|
|
89
|
+
* @param projectId - Optional project to scope the marker check to.
|
|
90
|
+
* Omit during orc bootstrap (no project context yet).
|
|
91
|
+
* @returns True iff this looks like a fresh OSS install
|
|
92
|
+
*/
|
|
93
|
+
shouldEnterOnboardingMode(projectId?: string): Promise<boolean>;
|
|
94
|
+
/**
|
|
95
|
+
* Set `firstLaunchedAt` on the named project record.
|
|
96
|
+
*
|
|
97
|
+
* Idempotent: a no-op if the marker is already set (logged at debug),
|
|
98
|
+
* preserving the original launch timestamp. No-op (warn) if the project
|
|
99
|
+
* record cannot be located. Errors are caught and logged so the
|
|
100
|
+
* bootstrap path is not destabilised by a marker-write failure.
|
|
101
|
+
*
|
|
102
|
+
* @param projectId - Target project ID
|
|
103
|
+
*/
|
|
104
|
+
markProjectAsLaunched(projectId: string): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Wire (or replace) the process-wide `OnboardingBootstrapService`.
|
|
108
|
+
*
|
|
109
|
+
* Called once during server bootstrap after `StorageService` and
|
|
110
|
+
* `ChatV2Service` are constructed. Subsequent calls overwrite the binding
|
|
111
|
+
* (used by tests and graceful-restart paths).
|
|
112
|
+
*
|
|
113
|
+
* @param service - The configured service instance
|
|
114
|
+
*/
|
|
115
|
+
export declare function setOnboardingBootstrapService(service: OnboardingBootstrapService | null): void;
|
|
116
|
+
/**
|
|
117
|
+
* Resolve the process-wide `OnboardingBootstrapService`.
|
|
118
|
+
*
|
|
119
|
+
* Returns null when not yet wired — callers must tolerate that case
|
|
120
|
+
* (the orc bootstrap path does, because cold-start detection is a "best
|
|
121
|
+
* effort, default to normal mode" probe).
|
|
122
|
+
*
|
|
123
|
+
* @returns The shared service instance, or null if not wired
|
|
124
|
+
*/
|
|
125
|
+
export declare function getOnboardingBootstrapService(): OnboardingBootstrapService | null;
|
|
126
|
+
/** Reset the singleton — test-only helper. */
|
|
127
|
+
export declare function resetOnboardingBootstrapServiceForTesting(): void;
|
|
128
|
+
//# sourceMappingURL=onboarding-bootstrap.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-bootstrap.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/onboarding-bootstrap.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0EAA0E;IAC1E,OAAO,EAAE,cAAc,CAAC;IACxB,0CAA0C;IAC1C,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,IAAI,EAAE,+BAA+B;IAMjD;;;;;;;;;;;;;;;;;;OAkBG;IACG,yBAAyB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8CrE;;;;;;;;;OASG;IACG,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B9D;AAQD;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,IAAI,CAE9F;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,IAAI,0BAA0B,GAAG,IAAI,CAEjF;AAED,8CAA8C;AAC9C,wBAAgB,yCAAyC,IAAI,IAAI,CAEhE"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Onboarding Bootstrap Service (Onboarding v3 — B1).
|
|
3
|
+
*
|
|
4
|
+
* Detects whether a freshly-launched Crewly OSS instance should enter
|
|
5
|
+
* onboarding mode. Two AND-ed signals are required:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Project marker** — `Project.firstLaunchedAt` is unset (or no project
|
|
8
|
+
* record exists yet). Set on first successful orc bootstrap and never
|
|
9
|
+
* overwritten thereafter; defends the cold-start signal against the
|
|
10
|
+
* edge case where chat-v2 is wiped accidentally on an existing install.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Chat-v2 emptiness** — `ChatV2Service.countAllMessages() === 0`.
|
|
13
|
+
* Captures "user has not spoken to Crewly yet" — Steve's exact phrasing.
|
|
14
|
+
*
|
|
15
|
+
* If EITHER signal says "user has been here before", onboarding does NOT
|
|
16
|
+
* trigger. This intentional belt-and-braces design follows Sam's substrate
|
|
17
|
+
* note 2026-05-03.
|
|
18
|
+
*
|
|
19
|
+
* Hook point: `crewly-agent-runtime.service.initializeInProcess()` calls
|
|
20
|
+
* `shouldEnterOnboardingMode()` before composing the system prompt and
|
|
21
|
+
* branches on the result (B3). After bootstrap success, the orc bootstrap
|
|
22
|
+
* also calls `markProjectAsLaunched()` to set the marker.
|
|
23
|
+
*
|
|
24
|
+
* @module services/orchestrator/onboarding-bootstrap.service
|
|
25
|
+
*/
|
|
26
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
27
|
+
/**
|
|
28
|
+
* Cold-start detector for the orchestrator's onboarding mode.
|
|
29
|
+
*
|
|
30
|
+
* The two helpers are called from the orc bootstrap path:
|
|
31
|
+
* - `shouldEnterOnboardingMode()` — branch on this BEFORE composing the
|
|
32
|
+
* system prompt; if true, load `ONBOARDING_MODE_SYSTEM_PROMPT` instead
|
|
33
|
+
* of the role prompt.
|
|
34
|
+
* - `markProjectAsLaunched(projectId)` — call AFTER bootstrap succeeds,
|
|
35
|
+
* regardless of mode, to write the per-project first-launch marker.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const detector = new OnboardingBootstrapService({ storage, chat });
|
|
40
|
+
* if (await detector.shouldEnterOnboardingMode()) {
|
|
41
|
+
* stateService.setMode('onboarding');
|
|
42
|
+
* }
|
|
43
|
+
* // ... orc init succeeds ...
|
|
44
|
+
* if (currentProjectId) {
|
|
45
|
+
* await detector.markProjectAsLaunched(currentProjectId);
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export class OnboardingBootstrapService {
|
|
50
|
+
storage;
|
|
51
|
+
chat;
|
|
52
|
+
logger;
|
|
53
|
+
constructor(deps) {
|
|
54
|
+
this.storage = deps.storage;
|
|
55
|
+
this.chat = deps.chat;
|
|
56
|
+
this.logger = LoggerService.getInstance().createComponentLogger('OnboardingBootstrap');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Decide whether the orchestrator should enter onboarding mode.
|
|
60
|
+
*
|
|
61
|
+
* Both signals must agree on "this is a cold start":
|
|
62
|
+
*
|
|
63
|
+
* 1. The targeted project's `firstLaunchedAt` marker is unset. When
|
|
64
|
+
* `projectId` is omitted, the check broadens to "no project at all
|
|
65
|
+
* has the marker set" — appropriate for the orc bootstrap path,
|
|
66
|
+
* which runs before any user has bound a project.
|
|
67
|
+
* 2. Chat-v2 has zero persisted messages.
|
|
68
|
+
*
|
|
69
|
+
* Errors in either probe are treated as "user has been here before"
|
|
70
|
+
* (returns false) — failing closed avoids false-triggering onboarding
|
|
71
|
+
* on a transient storage hiccup.
|
|
72
|
+
*
|
|
73
|
+
* @param projectId - Optional project to scope the marker check to.
|
|
74
|
+
* Omit during orc bootstrap (no project context yet).
|
|
75
|
+
* @returns True iff this looks like a fresh OSS install
|
|
76
|
+
*/
|
|
77
|
+
async shouldEnterOnboardingMode(projectId) {
|
|
78
|
+
// --- Signal 1: project firstLaunchedAt marker ---
|
|
79
|
+
let projectMarkerIsCold;
|
|
80
|
+
try {
|
|
81
|
+
const projects = await this.storage.getProjects();
|
|
82
|
+
if (projectId !== undefined) {
|
|
83
|
+
const target = projects.find((p) => p.id === projectId);
|
|
84
|
+
// Missing project (deleted under us) and absent marker both count
|
|
85
|
+
// as "cold". Any value (string, even empty string) means the user
|
|
86
|
+
// has been here before — only `undefined` clears the gate.
|
|
87
|
+
projectMarkerIsCold = !target || target.firstLaunchedAt === undefined;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
projectMarkerIsCold = !projects.some((p) => p.firstLaunchedAt !== undefined);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
this.logger.warn('Failed to read project marker; failing closed (no onboarding)', {
|
|
95
|
+
error: err instanceof Error ? err.message : String(err),
|
|
96
|
+
});
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
if (!projectMarkerIsCold) {
|
|
100
|
+
this.logger.debug('Project firstLaunchedAt is set — skipping onboarding', { projectId });
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
// --- Signal 2: chat-v2 emptiness ---
|
|
104
|
+
let chatIsEmpty;
|
|
105
|
+
try {
|
|
106
|
+
chatIsEmpty = this.chat.countAllMessages() === 0;
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
this.logger.warn('Failed to read chat-v2 count; failing closed (no onboarding)', {
|
|
110
|
+
error: err instanceof Error ? err.message : String(err),
|
|
111
|
+
});
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
if (!chatIsEmpty) {
|
|
115
|
+
this.logger.debug('Chat-v2 has prior messages — skipping onboarding');
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
this.logger.info('Cold-start detected — entering onboarding mode', { projectId });
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Set `firstLaunchedAt` on the named project record.
|
|
123
|
+
*
|
|
124
|
+
* Idempotent: a no-op if the marker is already set (logged at debug),
|
|
125
|
+
* preserving the original launch timestamp. No-op (warn) if the project
|
|
126
|
+
* record cannot be located. Errors are caught and logged so the
|
|
127
|
+
* bootstrap path is not destabilised by a marker-write failure.
|
|
128
|
+
*
|
|
129
|
+
* @param projectId - Target project ID
|
|
130
|
+
*/
|
|
131
|
+
async markProjectAsLaunched(projectId) {
|
|
132
|
+
try {
|
|
133
|
+
const projects = await this.storage.getProjects();
|
|
134
|
+
const target = projects.find((p) => p.id === projectId);
|
|
135
|
+
if (!target) {
|
|
136
|
+
this.logger.warn('markProjectAsLaunched: project not found', { projectId });
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (target.firstLaunchedAt) {
|
|
140
|
+
this.logger.debug('markProjectAsLaunched: marker already set, no-op', {
|
|
141
|
+
projectId,
|
|
142
|
+
existingValue: target.firstLaunchedAt,
|
|
143
|
+
});
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const now = new Date().toISOString();
|
|
147
|
+
const updated = {
|
|
148
|
+
...target,
|
|
149
|
+
firstLaunchedAt: now,
|
|
150
|
+
updatedAt: now,
|
|
151
|
+
};
|
|
152
|
+
await this.storage.saveProject(updated);
|
|
153
|
+
this.logger.info('Project marked as launched', { projectId, firstLaunchedAt: now });
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
this.logger.error('markProjectAsLaunched: storage write failed', {
|
|
157
|
+
projectId,
|
|
158
|
+
error: err instanceof Error ? err.message : String(err),
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// ---------------------------------------------------------------------------
|
|
164
|
+
// Singleton accessor — wired by the bootstrap layer once dependencies exist
|
|
165
|
+
// ---------------------------------------------------------------------------
|
|
166
|
+
let onboardingBootstrapInstance = null;
|
|
167
|
+
/**
|
|
168
|
+
* Wire (or replace) the process-wide `OnboardingBootstrapService`.
|
|
169
|
+
*
|
|
170
|
+
* Called once during server bootstrap after `StorageService` and
|
|
171
|
+
* `ChatV2Service` are constructed. Subsequent calls overwrite the binding
|
|
172
|
+
* (used by tests and graceful-restart paths).
|
|
173
|
+
*
|
|
174
|
+
* @param service - The configured service instance
|
|
175
|
+
*/
|
|
176
|
+
export function setOnboardingBootstrapService(service) {
|
|
177
|
+
onboardingBootstrapInstance = service;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Resolve the process-wide `OnboardingBootstrapService`.
|
|
181
|
+
*
|
|
182
|
+
* Returns null when not yet wired — callers must tolerate that case
|
|
183
|
+
* (the orc bootstrap path does, because cold-start detection is a "best
|
|
184
|
+
* effort, default to normal mode" probe).
|
|
185
|
+
*
|
|
186
|
+
* @returns The shared service instance, or null if not wired
|
|
187
|
+
*/
|
|
188
|
+
export function getOnboardingBootstrapService() {
|
|
189
|
+
return onboardingBootstrapInstance;
|
|
190
|
+
}
|
|
191
|
+
/** Reset the singleton — test-only helper. */
|
|
192
|
+
export function resetOnboardingBootstrapServiceForTesting() {
|
|
193
|
+
onboardingBootstrapInstance = null;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=onboarding-bootstrap.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-bootstrap.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/onboarding-bootstrap.service.ts"],"names":[],"mappings":"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"}
|