crewly 1.6.4 → 1.7.0
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 +92 -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 +233 -5
- 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 +285 -70
- 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 +93 -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-request/SKILL.md +1 -1
- package/config/skills/agent/core/create-request/execute.sh +29 -2
- package/config/skills/agent/core/create-request/execute.test.sh +168 -0
- 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/SKILL.md +8 -1
- package/config/skills/agent/core/report-status/execute.sh +59 -13
- 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/heartbeat/execute.sh +48 -6
- 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/mid-flight-milestone-surface.md +128 -0
- package/config/sops/common/owner-facing-communication.md +175 -0
- package/config/sops/developer/git-workflow.md +33 -0
- package/config/souls/orchestrator.md +8 -0
- package/config/souls/team-leader.md +77 -0
- package/dist/backend/backend/src/constants.d.ts +12 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +12 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- 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/browser/browser.controller.js +2 -2
- package/dist/backend/backend/src/controllers/browser/browser.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 +11 -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 +73 -0
- 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 +133 -2
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +3 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +8 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.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/session/session.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.js +50 -8
- package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +236 -18
- 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 +5 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +476 -100
- 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 +15 -2
- 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 +51 -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 +246 -9
- 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 +61 -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 +230 -84
- 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/idle-detection.service.d.ts +33 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +108 -4
- package/dist/backend/backend/src/services/agent/idle-detection.service.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/browser/browser-proxy.service.d.ts +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +40 -2
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.d.ts +48 -331
- package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.js +261 -712
- package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +82 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +120 -2
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts +114 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js +182 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts +188 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js +434 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +414 -5
- 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 +634 -3
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts +93 -0
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js +138 -0
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +46 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +75 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +21 -2
- 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 +229 -29
- 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 +55 -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 +94 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.d.ts +33 -1
- package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.js +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +22 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +71 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +102 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +61 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +21 -3
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +47 -13
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.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/system-health.util.d.ts +25 -4
- package/dist/backend/backend/src/services/core/system-health.util.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/system-health.util.js +30 -5
- package/dist/backend/backend/src/services/core/system-health.util.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/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +22 -11
- package/dist/backend/backend/src/services/event-bus/event-bus.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 +97 -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/message-replay.service.d.ts +2 -4
- package/dist/backend/backend/src/services/messaging/message-replay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-replay.service.js +22 -12
- package/dist/backend/backend/src/services/messaging/message-replay.service.js.map +1 -1
- 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 +48 -7
- 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/system-resource-alert.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +13 -3
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.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/notification/milestone-notification.subscriber.d.ts +99 -0
- package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.js +225 -0
- package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.js.map +1 -0
- 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 +73 -6
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +200 -25
- 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 +149 -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 +569 -24
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +73 -7
- package/dist/backend/backend/src/services/reconciler/reconciler.service.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 +103 -84
- 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/skill/skill-executor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-executor.service.js +13 -1
- package/dist/backend/backend/src/services/skill/skill-executor.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/notify-reconciliation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js +9 -6
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +66 -2
- 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 +318 -61
- 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 +70 -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 +216 -2
- 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 +562 -14
- 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 +200 -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 +25 -5
- 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 +501 -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 +262 -22
- 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 +617 -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 +108 -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 +238 -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 +137 -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 +287 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +26 -10
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
- 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/cron-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.js +68 -5
- package/dist/backend/backend/src/services/workflow/cron-task.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/services/workflow/team-identifier-resolver.d.ts +44 -0
- package/dist/backend/backend/src/services/workflow/team-identifier-resolver.d.ts.map +1 -0
- package/dist/backend/backend/src/services/workflow/team-identifier-resolver.js +57 -0
- package/dist/backend/backend/src/services/workflow/team-identifier-resolver.js.map +1 -0
- package/dist/backend/backend/src/types/credential.types.d.ts +17 -1
- package/dist/backend/backend/src/types/credential.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/credential.types.js +15 -5
- package/dist/backend/backend/src/types/credential.types.js.map +1 -1
- package/dist/backend/backend/src/types/cron-task.types.d.ts +17 -0
- package/dist/backend/backend/src/types/cron-task.types.d.ts.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 +24 -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 +27 -11
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.js +204 -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 +63 -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/backend/backend/src/utils/team.utils.d.ts +3 -1
- package/dist/backend/backend/src/utils/team.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/team.utils.js +26 -5
- package/dist/backend/backend/src/utils/team.utils.js.map +1 -1
- package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts +23 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/chat-v2.gateway.js +56 -7
- package/dist/backend/backend/src/websocket/chat-v2.gateway.js.map +1 -1
- package/dist/backend/backend/src/websocket/chat.gateway.d.ts +19 -4
- package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/chat.gateway.js +78 -63
- package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +10 -2
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +12 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +12 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- 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 +650 -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 +97 -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/skill/skill-executor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/skill/skill-executor.service.js +13 -1
- package/dist/cli/backend/src/services/skill/skill-executor.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 +490 -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 +1197 -121
- 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/credential.types.d.ts +17 -1
- package/dist/cli/backend/src/types/credential.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/credential.types.js +15 -5
- package/dist/cli/backend/src/types/credential.types.js.map +1 -1
- 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 +230 -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 +63 -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/dist/cli/cli/src/commands/start.js +73 -12
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/frontend/dist/assets/index-b279da34.js +4926 -0
- package/frontend/dist/assets/{index-b7e59b2b.css → index-c07e04c0.css} +2 -2
- package/frontend/dist/index.html +2 -2
- 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/frontend/dist/assets/index-7a4e7df5.js +0 -5228
- /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
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloud Event Inbound Bridge — autonomy_v1.f1
|
|
3
|
-
*
|
|
4
|
-
* Receives `'event'` MessageType inbound from the Cloud Relay (via the
|
|
5
|
-
* existing CloudSyncService poll → `'message'` event-emitter hop) and
|
|
6
|
-
* re-publishes the carried AgentEvent onto the local EventBusService with
|
|
7
|
-
* `source = 'remote'` and `originDeviceId` stamped from the wire envelope.
|
|
8
|
-
*
|
|
9
|
-
* Compose-at-boundary discipline (per Arch verdict 2026-04-28 N1):
|
|
10
|
-
* - CloudSyncService stays a transport — it polls Cloud, dedupes by
|
|
11
|
-
* `processedMessageIds`, emits an in-process `'message'` event.
|
|
12
|
-
* - This service is the AgentEvent translator. It owns the bridge between
|
|
13
|
-
* the cloud message vocabulary (`MessageType` + `EventMessagePayload`)
|
|
14
|
-
* and the local event-bus vocabulary (`AgentEvent`). It does NOT touch
|
|
15
|
-
* the poll loop or the cloud transport.
|
|
16
|
-
*
|
|
17
|
-
* Mirrors the BRIDGE-1 ↔ EventBus separation pattern: CloudSync EMITS,
|
|
18
|
-
* downstream LISTENS. Same shape as PR #347 (BrandOnboarding ⊥
|
|
19
|
-
* OnboardingService) and PR #348 (StatusBadge ⊥ RequestStatusPill) where
|
|
20
|
-
* two parallel modules share a single narrow artifact.
|
|
21
|
-
*
|
|
22
|
-
* Idempotency:
|
|
23
|
-
* The local LRU at CloudSyncService blocks at-least-once cloud-message-id
|
|
24
|
-
* re-delivery upstream. The recent-publish suppression in EventBusService
|
|
25
|
-
* (post-M2 fix: `${type}:${sessionName}:${event.id}`) catches any
|
|
26
|
-
* duplicate that slips through to the publish boundary. The TriggerEngine
|
|
27
|
-
* per-trigger dedup `${triggerId}:${event.id}` (Slice 3) is the third
|
|
28
|
-
* layer at the trigger fire boundary.
|
|
29
|
-
*
|
|
30
|
-
* Unknown peer event types (Arch Q4):
|
|
31
|
-
* The closed `EVENT_TYPES` enum stays closed. Bridge accepts any string
|
|
32
|
-
* at the wire boundary via `RemoteEventType = string` and casts to
|
|
33
|
-
* `EventType` at the local re-publish boundary so the rest of the
|
|
34
|
-
* pipeline sees a stable type. A debug log names any unrecognised type
|
|
35
|
-
* so ops can audit drift.
|
|
36
|
-
*
|
|
37
|
-
* @module services/cloud/cloud-event-bridge.service
|
|
38
|
-
*/
|
|
39
|
-
import { type ComponentLogger } from '../core/logger.service.js';
|
|
40
|
-
import type { EventBusService } from '../event-bus/event-bus.service.js';
|
|
41
|
-
import { type IncomingMessage } from './cloud-sync.types.js';
|
|
42
|
-
/**
|
|
43
|
-
* Minimum shape this bridge needs from the upstream cloud transport.
|
|
44
|
-
* Defined locally rather than importing the full {@link CloudSyncService}
|
|
45
|
-
* type so the bridge is unit-testable with a tiny mock and isn't coupled
|
|
46
|
-
* to the whole transport surface.
|
|
47
|
-
*/
|
|
48
|
-
export interface CloudMessageEmitter {
|
|
49
|
-
on(eventName: 'message', listener: (msg: IncomingMessage) => void): this;
|
|
50
|
-
off(eventName: 'message', listener: (msg: IncomingMessage) => void): this;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Constructor dependencies for the inbound bridge.
|
|
54
|
-
*/
|
|
55
|
-
export interface CloudEventInboundBridgeDeps {
|
|
56
|
-
/** Cloud transport that emits 'message' events (CloudSyncService in prod). */
|
|
57
|
-
cloudSync: CloudMessageEmitter;
|
|
58
|
-
/** Local event bus the bridge publishes onto. */
|
|
59
|
-
eventBus: EventBusService;
|
|
60
|
-
/** Optional logger override (test isolation). */
|
|
61
|
-
logger?: ComponentLogger;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Bridges inbound cross-machine events from Cloud Relay → local EventBus.
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```typescript
|
|
68
|
-
* const bridge = new CloudEventInboundBridge({
|
|
69
|
-
* cloudSync: CloudSyncService.getInstance(),
|
|
70
|
-
* eventBus: EventBusService.getInstance(),
|
|
71
|
-
* });
|
|
72
|
-
* bridge.start();
|
|
73
|
-
* // ... later
|
|
74
|
-
* bridge.stop();
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
export declare class CloudEventInboundBridge {
|
|
78
|
-
private readonly logger;
|
|
79
|
-
private readonly cloudSync;
|
|
80
|
-
private readonly eventBus;
|
|
81
|
-
/**
|
|
82
|
-
* Bound listener kept so {@link stop} can detach it cleanly. Without
|
|
83
|
-
* this, repeated start/stop cycles (dev reloads, tests) would leak
|
|
84
|
-
* additional listeners.
|
|
85
|
-
*/
|
|
86
|
-
private listener;
|
|
87
|
-
/** Whether the bridge is currently subscribed. */
|
|
88
|
-
private running;
|
|
89
|
-
/**
|
|
90
|
-
* Construct the bridge. Subscription does NOT start until
|
|
91
|
-
* {@link start} is called explicitly so callers control lifecycle.
|
|
92
|
-
*/
|
|
93
|
-
constructor(deps: CloudEventInboundBridgeDeps);
|
|
94
|
-
/**
|
|
95
|
-
* Subscribe to the cloud transport's `'message'` event. Idempotent — a
|
|
96
|
-
* second `start()` call is a no-op.
|
|
97
|
-
*/
|
|
98
|
-
start(): void;
|
|
99
|
-
/**
|
|
100
|
-
* Detach the cloud transport listener. Safe to call when not running.
|
|
101
|
-
*/
|
|
102
|
-
stop(): void;
|
|
103
|
-
/**
|
|
104
|
-
* Process a single inbound cloud message. Filters on `type === 'event'`,
|
|
105
|
-
* validates the payload shape, then re-publishes the carried AgentEvent
|
|
106
|
-
* onto the local EventBus with `source = 'remote'` + `originDeviceId`.
|
|
107
|
-
*
|
|
108
|
-
* Public for unit tests only; production code should drive the bridge
|
|
109
|
-
* via the cloud transport's `'message'` event.
|
|
110
|
-
*/
|
|
111
|
-
handle(msg: IncomingMessage): void;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=cloud-event-bridge.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-event-bridge.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-event-bridge.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAOzE,OAAO,EAEN,KAAK,eAAe,EACpB,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IACnC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,8EAA8E;IAC9E,SAAS,EAAE,mBAAmB,CAAC;IAC/B,iDAAiD;IACjD,QAAQ,EAAE,eAAe,CAAC;IAC1B,iDAAiD;IACjD,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAiD;IAEjE,kDAAkD;IAClD,OAAO,CAAC,OAAO,CAAS;IAExB;;;OAGG;gBACS,IAAI,EAAE,2BAA2B;IAQ7C;;;OAGG;IACH,KAAK,IAAI,IAAI;IAoBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;;;;;;OAOG;IACI,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;CAwDzC"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloud Event Inbound Bridge — autonomy_v1.f1
|
|
3
|
-
*
|
|
4
|
-
* Receives `'event'` MessageType inbound from the Cloud Relay (via the
|
|
5
|
-
* existing CloudSyncService poll → `'message'` event-emitter hop) and
|
|
6
|
-
* re-publishes the carried AgentEvent onto the local EventBusService with
|
|
7
|
-
* `source = 'remote'` and `originDeviceId` stamped from the wire envelope.
|
|
8
|
-
*
|
|
9
|
-
* Compose-at-boundary discipline (per Arch verdict 2026-04-28 N1):
|
|
10
|
-
* - CloudSyncService stays a transport — it polls Cloud, dedupes by
|
|
11
|
-
* `processedMessageIds`, emits an in-process `'message'` event.
|
|
12
|
-
* - This service is the AgentEvent translator. It owns the bridge between
|
|
13
|
-
* the cloud message vocabulary (`MessageType` + `EventMessagePayload`)
|
|
14
|
-
* and the local event-bus vocabulary (`AgentEvent`). It does NOT touch
|
|
15
|
-
* the poll loop or the cloud transport.
|
|
16
|
-
*
|
|
17
|
-
* Mirrors the BRIDGE-1 ↔ EventBus separation pattern: CloudSync EMITS,
|
|
18
|
-
* downstream LISTENS. Same shape as PR #347 (BrandOnboarding ⊥
|
|
19
|
-
* OnboardingService) and PR #348 (StatusBadge ⊥ RequestStatusPill) where
|
|
20
|
-
* two parallel modules share a single narrow artifact.
|
|
21
|
-
*
|
|
22
|
-
* Idempotency:
|
|
23
|
-
* The local LRU at CloudSyncService blocks at-least-once cloud-message-id
|
|
24
|
-
* re-delivery upstream. The recent-publish suppression in EventBusService
|
|
25
|
-
* (post-M2 fix: `${type}:${sessionName}:${event.id}`) catches any
|
|
26
|
-
* duplicate that slips through to the publish boundary. The TriggerEngine
|
|
27
|
-
* per-trigger dedup `${triggerId}:${event.id}` (Slice 3) is the third
|
|
28
|
-
* layer at the trigger fire boundary.
|
|
29
|
-
*
|
|
30
|
-
* Unknown peer event types (Arch Q4):
|
|
31
|
-
* The closed `EVENT_TYPES` enum stays closed. Bridge accepts any string
|
|
32
|
-
* at the wire boundary via `RemoteEventType = string` and casts to
|
|
33
|
-
* `EventType` at the local re-publish boundary so the rest of the
|
|
34
|
-
* pipeline sees a stable type. A debug log names any unrecognised type
|
|
35
|
-
* so ops can audit drift.
|
|
36
|
-
*
|
|
37
|
-
* @module services/cloud/cloud-event-bridge.service
|
|
38
|
-
*/
|
|
39
|
-
import { LoggerService } from '../core/logger.service.js';
|
|
40
|
-
import { formatError } from '../../utils/format-error.js';
|
|
41
|
-
import { EVENT_TYPES } from '../../types/event-bus.types.js';
|
|
42
|
-
import { isEventMessagePayload, } from './cloud-sync.types.js';
|
|
43
|
-
/**
|
|
44
|
-
* Bridges inbound cross-machine events from Cloud Relay → local EventBus.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* ```typescript
|
|
48
|
-
* const bridge = new CloudEventInboundBridge({
|
|
49
|
-
* cloudSync: CloudSyncService.getInstance(),
|
|
50
|
-
* eventBus: EventBusService.getInstance(),
|
|
51
|
-
* });
|
|
52
|
-
* bridge.start();
|
|
53
|
-
* // ... later
|
|
54
|
-
* bridge.stop();
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
export class CloudEventInboundBridge {
|
|
58
|
-
logger;
|
|
59
|
-
cloudSync;
|
|
60
|
-
eventBus;
|
|
61
|
-
/**
|
|
62
|
-
* Bound listener kept so {@link stop} can detach it cleanly. Without
|
|
63
|
-
* this, repeated start/stop cycles (dev reloads, tests) would leak
|
|
64
|
-
* additional listeners.
|
|
65
|
-
*/
|
|
66
|
-
listener = null;
|
|
67
|
-
/** Whether the bridge is currently subscribed. */
|
|
68
|
-
running = false;
|
|
69
|
-
/**
|
|
70
|
-
* Construct the bridge. Subscription does NOT start until
|
|
71
|
-
* {@link start} is called explicitly so callers control lifecycle.
|
|
72
|
-
*/
|
|
73
|
-
constructor(deps) {
|
|
74
|
-
this.cloudSync = deps.cloudSync;
|
|
75
|
-
this.eventBus = deps.eventBus;
|
|
76
|
-
this.logger =
|
|
77
|
-
deps.logger ??
|
|
78
|
-
LoggerService.getInstance().createComponentLogger('CloudEventInboundBridge');
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Subscribe to the cloud transport's `'message'` event. Idempotent — a
|
|
82
|
-
* second `start()` call is a no-op.
|
|
83
|
-
*/
|
|
84
|
-
start() {
|
|
85
|
-
if (this.running)
|
|
86
|
-
return;
|
|
87
|
-
this.listener = (msg) => {
|
|
88
|
-
try {
|
|
89
|
-
this.handle(msg);
|
|
90
|
-
}
|
|
91
|
-
catch (err) {
|
|
92
|
-
// Defensive — handle() already swallows known failure modes,
|
|
93
|
-
// but a thrown error here MUST NOT poison other 'message'
|
|
94
|
-
// listeners on the cloud transport.
|
|
95
|
-
this.logger.error('CloudEventInboundBridge handler threw', {
|
|
96
|
-
error: formatError(err),
|
|
97
|
-
messageId: msg?.id,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
this.cloudSync.on('message', this.listener);
|
|
102
|
-
this.running = true;
|
|
103
|
-
this.logger.info('CloudEventInboundBridge started — listening for `event` MessageType');
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Detach the cloud transport listener. Safe to call when not running.
|
|
107
|
-
*/
|
|
108
|
-
stop() {
|
|
109
|
-
if (this.listener) {
|
|
110
|
-
this.cloudSync.off('message', this.listener);
|
|
111
|
-
this.listener = null;
|
|
112
|
-
}
|
|
113
|
-
this.running = false;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Process a single inbound cloud message. Filters on `type === 'event'`,
|
|
117
|
-
* validates the payload shape, then re-publishes the carried AgentEvent
|
|
118
|
-
* onto the local EventBus with `source = 'remote'` + `originDeviceId`.
|
|
119
|
-
*
|
|
120
|
-
* Public for unit tests only; production code should drive the bridge
|
|
121
|
-
* via the cloud transport's `'message'` event.
|
|
122
|
-
*/
|
|
123
|
-
handle(msg) {
|
|
124
|
-
// Wrong type — leave it for the consumer that actually owns it
|
|
125
|
-
// (CrossMachineMessageRouter, browser command handler, etc).
|
|
126
|
-
if (msg.type !== 'event') {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
if (!isEventMessagePayload(msg.payload)) {
|
|
130
|
-
this.logger.warn('Dropping malformed cross-machine event payload', {
|
|
131
|
-
messageId: msg.id,
|
|
132
|
-
from: msg.from,
|
|
133
|
-
});
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const { event: wireEvent, originDeviceId, originDeviceName } = msg.payload;
|
|
137
|
-
const remoteType = wireEvent.type;
|
|
138
|
-
// Per Arch Q4: log when a peer ships a type we don't know locally.
|
|
139
|
-
// We still re-publish — closed-enum sync would create a deployment-
|
|
140
|
-
// ordering constraint we explicitly rejected.
|
|
141
|
-
if (!isKnownEventType(remoteType)) {
|
|
142
|
-
this.logger.debug('Cross-machine event with unknown-to-local event type — accepting via RemoteEventType boundary', {
|
|
143
|
-
messageId: msg.id,
|
|
144
|
-
eventId: wireEvent.id,
|
|
145
|
-
unknownType: remoteType,
|
|
146
|
-
originDeviceId,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
// Build the AgentEvent. Wire payload may carry extra fields the
|
|
150
|
-
// origin device knew about (e.g. workItemId, missionId, requestId)
|
|
151
|
-
// — pass them through unchanged. Our bridge only stamps the two
|
|
152
|
-
// origin-tag fields.
|
|
153
|
-
const agentEvent = {
|
|
154
|
-
...wireEvent,
|
|
155
|
-
// Cast at the boundary per Arch Q4. Closed `EVENT_TYPES` enum
|
|
156
|
-
// stays closed; downstream consumers see a stable EventType.
|
|
157
|
-
type: remoteType,
|
|
158
|
-
source: 'remote',
|
|
159
|
-
originDeviceId,
|
|
160
|
-
};
|
|
161
|
-
this.logger.info('Re-publishing cross-machine event onto local EventBus', {
|
|
162
|
-
messageId: msg.id,
|
|
163
|
-
eventId: agentEvent.id,
|
|
164
|
-
eventType: agentEvent.type,
|
|
165
|
-
originDeviceId,
|
|
166
|
-
originDeviceName,
|
|
167
|
-
});
|
|
168
|
-
this.eventBus.publish(agentEvent);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Internal helper — true when the wire event-type matches the closed
|
|
173
|
-
* `EVENT_TYPES` enum. Used only for the debug-log breadcrumb; does NOT
|
|
174
|
-
* gate re-publish (per Arch Q4).
|
|
175
|
-
*/
|
|
176
|
-
function isKnownEventType(value) {
|
|
177
|
-
return EVENT_TYPES.includes(value);
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=cloud-event-bridge.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-event-bridge.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-event-bridge.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO1D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EACN,qBAAqB,GAErB,MAAM,uBAAuB,CAAC;AAyB/B;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,uBAAuB;IAClB,MAAM,CAAkB;IACxB,SAAS,CAAsB;IAC/B,QAAQ,CAAkB;IAE3C;;;;OAIG;IACK,QAAQ,GAA4C,IAAI,CAAC;IAEjE,kDAAkD;IAC1C,OAAO,GAAG,KAAK,CAAC;IAExB;;;OAGG;IACH,YAAY,IAAiC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,MAAM;YACV,IAAI,CAAC,MAAM;gBACX,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAoB,EAAE,EAAE;YACxC,IAAI,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,6DAA6D;gBAC7D,0DAA0D;gBAC1D,oCAAoC;gBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;oBAC1D,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;oBACvB,SAAS,EAAE,GAAG,EAAE,EAAE;iBAClB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,IAAI;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,GAAoB;QACjC,+DAA+D;QAC/D,6DAA6D;QAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAClE,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;aACd,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3E,MAAM,UAAU,GAAoB,SAAS,CAAC,IAAI,CAAC;QAEnD,mEAAmE;QACnE,oEAAoE;QACpE,8CAA8C;QAC9C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,+FAA+F,EAC/F;gBACC,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,OAAO,EAAE,SAAS,CAAC,EAAE;gBACrB,WAAW,EAAE,UAAU;gBACvB,cAAc;aACd,CACD,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,mEAAmE;QACnE,gEAAgE;QAChE,qBAAqB;QACrB,MAAM,UAAU,GAAe;YAC9B,GAAI,SAAmC;YACvC,8DAA8D;YAC9D,6DAA6D;YAC7D,IAAI,EAAE,UAAuB;YAC7B,MAAM,EAAE,QAAQ;YAChB,cAAc;SACd,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE;YACzE,SAAS,EAAE,GAAG,CAAC,EAAE;YACjB,OAAO,EAAE,UAAU,CAAC,EAAE;YACtB,SAAS,EAAE,UAAU,CAAC,IAAI;YAC1B,cAAc;YACd,gBAAgB;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;CACD;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACtC,OAAQ,WAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloud Event Outbound Forwarder — autonomy_v1.f1
|
|
3
|
-
*
|
|
4
|
-
* Closes the bidirectional cross-machine event loop. Subscribes to the
|
|
5
|
-
* local EventBusService for events whose type is on an OPT-IN allow-list
|
|
6
|
-
* (read from `crewly.json` at project root, key `crossMachineEvents`) and
|
|
7
|
-
* forwards each via `cloudSync.sendMessage(broadcast, 'event', payload)`
|
|
8
|
-
* so paired devices receive them at their inbound bridge.
|
|
9
|
-
*
|
|
10
|
-
* Forwarder discipline (per Arch verdict 2026-04-28):
|
|
11
|
-
* - **Q1 LOCKED — OPT-IN allow-list.** v1 forwards ONLY events whose
|
|
12
|
-
* type is explicitly listed in `crewly.json` `crossMachineEvents`.
|
|
13
|
-
* Reasons: privacy (avoid leaking internal events to peers), payload
|
|
14
|
-
* bloat, per-paired-device DoS-source containment. Empty allow-list
|
|
15
|
-
* → forwarder is a no-op.
|
|
16
|
-
* - **Q5 LOCKED — Loop-prevention fence.** The forwarder MUST short-
|
|
17
|
-
* circuit on `event.source === 'remote'`. Otherwise the inbound
|
|
18
|
-
* bridge re-publishes a remote event onto the local EventBus, the
|
|
19
|
-
* forwarder picks it up, ships it back to cloud, cloud fans it out
|
|
20
|
-
* again, etc. The fence is locked at the test surface via a
|
|
21
|
-
* dedicated `it()` (PR #354 N1 fence-at-test-surface pattern).
|
|
22
|
-
* - **Fail-safe on config.** Malformed `crewly.json`, missing file, or
|
|
23
|
-
* non-array `crossMachineEvents` → forwarder defaults to no-op (NOT
|
|
24
|
-
* "forward everything"). Surfaces an error log so ops can spot the
|
|
25
|
-
* misconfiguration without leaking events accidentally.
|
|
26
|
-
*
|
|
27
|
-
* Compose-at-boundary discipline (Arch N1, mirrors the inbound bridge):
|
|
28
|
-
* - CloudSyncService stays a transport — the forwarder calls
|
|
29
|
-
* `sendMessage` and that's the only coupling point.
|
|
30
|
-
* - This forwarder is a NEW file at the same boundary level as
|
|
31
|
-
* `cloud-event-bridge.service.ts`. Inbound and outbound bridges are
|
|
32
|
-
* symmetric.
|
|
33
|
-
*
|
|
34
|
-
* @module services/cloud/cloud-event-forwarder.service
|
|
35
|
-
*/
|
|
36
|
-
import { type ComponentLogger } from '../core/logger.service.js';
|
|
37
|
-
import type { EventBusService } from '../event-bus/event-bus.service.js';
|
|
38
|
-
import type { AgentEvent } from '../../types/event-bus.types.js';
|
|
39
|
-
import type { EventMessagePayload } from './cloud-sync.types.js';
|
|
40
|
-
/**
|
|
41
|
-
* Minimum cloud transport surface needed for outbound. Defined locally
|
|
42
|
-
* (mirrors `CloudMessageEmitter` in the inbound bridge) so the test mock
|
|
43
|
-
* is tiny and the forwarder is not coupled to the entire CloudSyncService.
|
|
44
|
-
*/
|
|
45
|
-
export interface CloudEventSender {
|
|
46
|
-
/**
|
|
47
|
-
* Broadcast an `'event'` MessageType to all paired devices in the same
|
|
48
|
-
* tenant. Cloud Relay handles the fan-out (web/ ticket).
|
|
49
|
-
*
|
|
50
|
-
* For v1 we use a sentinel deviceId `'*broadcast'` per the cloud
|
|
51
|
-
* contract spec §(c). Future v2 may add per-event subscription
|
|
52
|
-
* routing, in which case the call site here changes; the contract
|
|
53
|
-
* field shape is forward-compatible.
|
|
54
|
-
*/
|
|
55
|
-
sendMessage(toDeviceId: string, type: 'event', payload: EventMessagePayload): Promise<void>;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Constructor dependencies for the outbound forwarder.
|
|
59
|
-
*/
|
|
60
|
-
export interface CloudEventForwarderDeps {
|
|
61
|
-
/** Cloud transport for `sendMessage` (CloudSyncService in prod). */
|
|
62
|
-
cloudSync: CloudEventSender;
|
|
63
|
-
/** Local event bus the forwarder subscribes to. */
|
|
64
|
-
eventBus: EventBusService;
|
|
65
|
-
/** Origin device identity stamped onto every outbound payload. */
|
|
66
|
-
originDeviceId: string;
|
|
67
|
-
/** Optional human-readable origin device name (for log lines on the peer). */
|
|
68
|
-
originDeviceName?: string;
|
|
69
|
-
/** Project root used to resolve `crewly.json`. */
|
|
70
|
-
projectPath: string;
|
|
71
|
-
/**
|
|
72
|
-
* Optional override for the allow-list. When provided, the forwarder
|
|
73
|
-
* uses this instead of reading `crewly.json`. Test injection only.
|
|
74
|
-
*/
|
|
75
|
-
allowListOverride?: ReadonlyArray<string>;
|
|
76
|
-
/** Optional logger override (test isolation). */
|
|
77
|
-
logger?: ComponentLogger;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Forwards local AgentEvents to paired devices via Cloud Relay when their
|
|
81
|
-
* type is on the configured allow-list.
|
|
82
|
-
*/
|
|
83
|
-
export declare class CloudEventForwarder {
|
|
84
|
-
private readonly logger;
|
|
85
|
-
private readonly cloudSync;
|
|
86
|
-
private readonly eventBus;
|
|
87
|
-
private readonly originDeviceId;
|
|
88
|
-
private readonly originDeviceName?;
|
|
89
|
-
private readonly projectPath;
|
|
90
|
-
private readonly allowListOverride?;
|
|
91
|
-
/** Resolved allow-list of event types. Empty = forwarder is a no-op. */
|
|
92
|
-
private allowList;
|
|
93
|
-
/** Detach functions returned by EventBusService.onInProcess(). */
|
|
94
|
-
private unsubscribers;
|
|
95
|
-
/** Whether the forwarder is currently subscribed. */
|
|
96
|
-
private running;
|
|
97
|
-
constructor(deps: CloudEventForwarderDeps);
|
|
98
|
-
/**
|
|
99
|
-
* Load the allow-list and subscribe to the event bus. Idempotent.
|
|
100
|
-
*
|
|
101
|
-
* The forwarder uses {@link EventBusService.onInProcess} per
|
|
102
|
-
* registered allow-list type so it receives FULL `AgentEvent` payloads
|
|
103
|
-
* (including the `source` field needed for the loop-prevention fence).
|
|
104
|
-
* The widened `'event_published'` emit payload would also work but is
|
|
105
|
-
* stripped of optional fields the wire payload needs (e.g. workItemId,
|
|
106
|
-
* missionId).
|
|
107
|
-
*/
|
|
108
|
-
start(): Promise<void>;
|
|
109
|
-
/**
|
|
110
|
-
* Detach all event-bus listeners. Safe to call when not running.
|
|
111
|
-
*/
|
|
112
|
-
stop(): void;
|
|
113
|
-
/**
|
|
114
|
-
* Process a single local event — forward to cloud if eligible.
|
|
115
|
-
*
|
|
116
|
-
* Public for unit tests only; production drives this via the
|
|
117
|
-
* EventBusService.onInProcess subscription installed in {@link start}.
|
|
118
|
-
*/
|
|
119
|
-
handle(event: AgentEvent): Promise<void>;
|
|
120
|
-
/**
|
|
121
|
-
* Resolve the allow-list. Order:
|
|
122
|
-
* 1. `allowListOverride` (test injection).
|
|
123
|
-
* 2. `<projectPath>/crewly.json` `crossMachineEvents` array.
|
|
124
|
-
* 3. Empty (no-op forwarder) — fail-safe default.
|
|
125
|
-
*
|
|
126
|
-
* Malformed JSON or non-array `crossMachineEvents` → empty + error log.
|
|
127
|
-
* NEVER defaults to "forward everything" — privacy + DoS containment.
|
|
128
|
-
*/
|
|
129
|
-
private resolveAllowList;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=cloud-event-forwarder.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-event-forwarder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-event-forwarder.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,mCAAmC,CAAC;AAC/F,OAAO,KAAK,EACX,UAAU,EAEV,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;;;;;OAQG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,oEAAoE;IACpE,SAAS,EAAE,gBAAgB,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,eAAe,CAAC;IAC1B,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,iDAAiD;IACjD,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB;AAKD;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAwB;IAE3D,wEAAwE;IACxE,OAAO,CAAC,SAAS,CAAkC;IAEnD,kEAAkE;IAClE,OAAO,CAAC,aAAa,CAA8B;IAEnD,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,uBAAuB;IAYzC;;;;;;;;;OASG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;;;;OAKG;IACU,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDrD;;;;;;;;OAQG;YACW,gBAAgB;CAuC9B"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloud Event Outbound Forwarder — autonomy_v1.f1
|
|
3
|
-
*
|
|
4
|
-
* Closes the bidirectional cross-machine event loop. Subscribes to the
|
|
5
|
-
* local EventBusService for events whose type is on an OPT-IN allow-list
|
|
6
|
-
* (read from `crewly.json` at project root, key `crossMachineEvents`) and
|
|
7
|
-
* forwards each via `cloudSync.sendMessage(broadcast, 'event', payload)`
|
|
8
|
-
* so paired devices receive them at their inbound bridge.
|
|
9
|
-
*
|
|
10
|
-
* Forwarder discipline (per Arch verdict 2026-04-28):
|
|
11
|
-
* - **Q1 LOCKED — OPT-IN allow-list.** v1 forwards ONLY events whose
|
|
12
|
-
* type is explicitly listed in `crewly.json` `crossMachineEvents`.
|
|
13
|
-
* Reasons: privacy (avoid leaking internal events to peers), payload
|
|
14
|
-
* bloat, per-paired-device DoS-source containment. Empty allow-list
|
|
15
|
-
* → forwarder is a no-op.
|
|
16
|
-
* - **Q5 LOCKED — Loop-prevention fence.** The forwarder MUST short-
|
|
17
|
-
* circuit on `event.source === 'remote'`. Otherwise the inbound
|
|
18
|
-
* bridge re-publishes a remote event onto the local EventBus, the
|
|
19
|
-
* forwarder picks it up, ships it back to cloud, cloud fans it out
|
|
20
|
-
* again, etc. The fence is locked at the test surface via a
|
|
21
|
-
* dedicated `it()` (PR #354 N1 fence-at-test-surface pattern).
|
|
22
|
-
* - **Fail-safe on config.** Malformed `crewly.json`, missing file, or
|
|
23
|
-
* non-array `crossMachineEvents` → forwarder defaults to no-op (NOT
|
|
24
|
-
* "forward everything"). Surfaces an error log so ops can spot the
|
|
25
|
-
* misconfiguration without leaking events accidentally.
|
|
26
|
-
*
|
|
27
|
-
* Compose-at-boundary discipline (Arch N1, mirrors the inbound bridge):
|
|
28
|
-
* - CloudSyncService stays a transport — the forwarder calls
|
|
29
|
-
* `sendMessage` and that's the only coupling point.
|
|
30
|
-
* - This forwarder is a NEW file at the same boundary level as
|
|
31
|
-
* `cloud-event-bridge.service.ts`. Inbound and outbound bridges are
|
|
32
|
-
* symmetric.
|
|
33
|
-
*
|
|
34
|
-
* @module services/cloud/cloud-event-forwarder.service
|
|
35
|
-
*/
|
|
36
|
-
import * as fs from 'fs/promises';
|
|
37
|
-
import * as path from 'path';
|
|
38
|
-
import { LoggerService } from '../core/logger.service.js';
|
|
39
|
-
import { formatError } from '../../utils/format-error.js';
|
|
40
|
-
/** Sentinel for "fan out to every paired device in the tenant". */
|
|
41
|
-
const BROADCAST_TARGET = '*broadcast';
|
|
42
|
-
/**
|
|
43
|
-
* Forwards local AgentEvents to paired devices via Cloud Relay when their
|
|
44
|
-
* type is on the configured allow-list.
|
|
45
|
-
*/
|
|
46
|
-
export class CloudEventForwarder {
|
|
47
|
-
logger;
|
|
48
|
-
cloudSync;
|
|
49
|
-
eventBus;
|
|
50
|
-
originDeviceId;
|
|
51
|
-
originDeviceName;
|
|
52
|
-
projectPath;
|
|
53
|
-
allowListOverride;
|
|
54
|
-
/** Resolved allow-list of event types. Empty = forwarder is a no-op. */
|
|
55
|
-
allowList = new Set();
|
|
56
|
-
/** Detach functions returned by EventBusService.onInProcess(). */
|
|
57
|
-
unsubscribers = [];
|
|
58
|
-
/** Whether the forwarder is currently subscribed. */
|
|
59
|
-
running = false;
|
|
60
|
-
constructor(deps) {
|
|
61
|
-
this.cloudSync = deps.cloudSync;
|
|
62
|
-
this.eventBus = deps.eventBus;
|
|
63
|
-
this.originDeviceId = deps.originDeviceId;
|
|
64
|
-
this.originDeviceName = deps.originDeviceName;
|
|
65
|
-
this.projectPath = deps.projectPath;
|
|
66
|
-
this.allowListOverride = deps.allowListOverride;
|
|
67
|
-
this.logger =
|
|
68
|
-
deps.logger ??
|
|
69
|
-
LoggerService.getInstance().createComponentLogger('CloudEventForwarder');
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Load the allow-list and subscribe to the event bus. Idempotent.
|
|
73
|
-
*
|
|
74
|
-
* The forwarder uses {@link EventBusService.onInProcess} per
|
|
75
|
-
* registered allow-list type so it receives FULL `AgentEvent` payloads
|
|
76
|
-
* (including the `source` field needed for the loop-prevention fence).
|
|
77
|
-
* The widened `'event_published'` emit payload would also work but is
|
|
78
|
-
* stripped of optional fields the wire payload needs (e.g. workItemId,
|
|
79
|
-
* missionId).
|
|
80
|
-
*/
|
|
81
|
-
async start() {
|
|
82
|
-
if (this.running)
|
|
83
|
-
return;
|
|
84
|
-
this.allowList = await this.resolveAllowList();
|
|
85
|
-
if (this.allowList.size === 0) {
|
|
86
|
-
this.logger.info('CloudEventForwarder allow-list is empty — forwarder will be a no-op until configured', { projectPath: this.projectPath });
|
|
87
|
-
this.running = true;
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
for (const eventType of this.allowList) {
|
|
91
|
-
const unsub = this.eventBus.onInProcess([eventType], (event) => this.handle(event));
|
|
92
|
-
this.unsubscribers.push(unsub);
|
|
93
|
-
}
|
|
94
|
-
this.running = true;
|
|
95
|
-
this.logger.info('CloudEventForwarder started', {
|
|
96
|
-
allowList: Array.from(this.allowList),
|
|
97
|
-
originDeviceId: this.originDeviceId,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Detach all event-bus listeners. Safe to call when not running.
|
|
102
|
-
*/
|
|
103
|
-
stop() {
|
|
104
|
-
for (const unsub of this.unsubscribers) {
|
|
105
|
-
try {
|
|
106
|
-
unsub();
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
this.logger.warn('CloudEventForwarder unsubscribe threw', { error: formatError(err) });
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
this.unsubscribers = [];
|
|
113
|
-
this.running = false;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Process a single local event — forward to cloud if eligible.
|
|
117
|
-
*
|
|
118
|
-
* Public for unit tests only; production drives this via the
|
|
119
|
-
* EventBusService.onInProcess subscription installed in {@link start}.
|
|
120
|
-
*/
|
|
121
|
-
async handle(event) {
|
|
122
|
-
// Q5 LOCKED — loop-prevention fence. NEVER forward an event that
|
|
123
|
-
// itself arrived from cloud. Without this, the inbound bridge ↔
|
|
124
|
-
// forwarder pair would form an infinite ping-pong loop.
|
|
125
|
-
if (event.source === 'remote') {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
// Allow-list gate (Q1 LOCKED).
|
|
129
|
-
if (!this.allowList.has(event.type)) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const payload = {
|
|
133
|
-
event: {
|
|
134
|
-
id: event.id,
|
|
135
|
-
type: event.type,
|
|
136
|
-
sessionName: event.sessionName,
|
|
137
|
-
timestamp: event.timestamp,
|
|
138
|
-
// Pass through the rest of the AgentEvent so the inbound
|
|
139
|
-
// bridge on the peer device sees the full picture (workItemId,
|
|
140
|
-
// missionId, requestId, etc.). `source` and `originDeviceId`
|
|
141
|
-
// are NOT included — the receiving bridge stamps those from
|
|
142
|
-
// the message envelope so the contract stays symmetric.
|
|
143
|
-
...stripCrossMachineFields(event),
|
|
144
|
-
},
|
|
145
|
-
originDeviceId: this.originDeviceId,
|
|
146
|
-
originDeviceName: this.originDeviceName,
|
|
147
|
-
};
|
|
148
|
-
try {
|
|
149
|
-
await this.cloudSync.sendMessage(BROADCAST_TARGET, 'event', payload);
|
|
150
|
-
this.logger.debug('CloudEventForwarder broadcast', {
|
|
151
|
-
eventId: event.id,
|
|
152
|
-
eventType: event.type,
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
catch (err) {
|
|
156
|
-
// Failure is non-fatal — local processing already happened. We
|
|
157
|
-
// log + drop. A future enhancement could buffer + retry, but v1
|
|
158
|
-
// trusts the cloud queue's TTL semantics (see decomp §(c)
|
|
159
|
-
// errors table).
|
|
160
|
-
this.logger.warn('CloudEventForwarder broadcast failed', {
|
|
161
|
-
eventId: event.id,
|
|
162
|
-
eventType: event.type,
|
|
163
|
-
error: formatError(err),
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Resolve the allow-list. Order:
|
|
169
|
-
* 1. `allowListOverride` (test injection).
|
|
170
|
-
* 2. `<projectPath>/crewly.json` `crossMachineEvents` array.
|
|
171
|
-
* 3. Empty (no-op forwarder) — fail-safe default.
|
|
172
|
-
*
|
|
173
|
-
* Malformed JSON or non-array `crossMachineEvents` → empty + error log.
|
|
174
|
-
* NEVER defaults to "forward everything" — privacy + DoS containment.
|
|
175
|
-
*/
|
|
176
|
-
async resolveAllowList() {
|
|
177
|
-
if (this.allowListOverride) {
|
|
178
|
-
return new Set(this.allowListOverride);
|
|
179
|
-
}
|
|
180
|
-
const configPath = path.join(this.projectPath, 'crewly.json');
|
|
181
|
-
try {
|
|
182
|
-
const raw = await fs.readFile(configPath, 'utf-8');
|
|
183
|
-
const parsed = JSON.parse(raw);
|
|
184
|
-
const value = parsed.crossMachineEvents;
|
|
185
|
-
if (value === undefined || value === null)
|
|
186
|
-
return new Set();
|
|
187
|
-
if (!Array.isArray(value)) {
|
|
188
|
-
this.logger.error('crewly.json `crossMachineEvents` must be an array — falling back to empty allow-list (no events will forward)', { configPath, actualType: typeof value });
|
|
189
|
-
return new Set();
|
|
190
|
-
}
|
|
191
|
-
const cleaned = value.filter((v) => typeof v === 'string' && v.length > 0);
|
|
192
|
-
if (cleaned.length !== value.length) {
|
|
193
|
-
this.logger.warn('crewly.json `crossMachineEvents` contains non-string entries — dropped', { configPath, kept: cleaned, droppedCount: value.length - cleaned.length });
|
|
194
|
-
}
|
|
195
|
-
return new Set(cleaned);
|
|
196
|
-
}
|
|
197
|
-
catch (err) {
|
|
198
|
-
const code = err.code;
|
|
199
|
-
if (code === 'ENOENT') {
|
|
200
|
-
// File simply doesn't exist — silent default to empty.
|
|
201
|
-
return new Set();
|
|
202
|
-
}
|
|
203
|
-
this.logger.error('Failed to read crewly.json — falling back to empty allow-list (no events will forward)', { configPath, error: formatError(err) });
|
|
204
|
-
return new Set();
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Strip the cross-machine origin fields off an event before serialising
|
|
210
|
-
* onto the wire. The receiving bridge stamps `source` + `originDeviceId`
|
|
211
|
-
* from the message envelope — including them in the payload would let
|
|
212
|
-
* the wire mutate them mid-flight.
|
|
213
|
-
*/
|
|
214
|
-
function stripCrossMachineFields(event) {
|
|
215
|
-
// Shallow copy + drop the two fields. `id`, `type`, `sessionName`,
|
|
216
|
-
// `timestamp` are added back explicitly by the caller (above) so we
|
|
217
|
-
// don't double-spread them.
|
|
218
|
-
const out = { ...event };
|
|
219
|
-
delete out.source;
|
|
220
|
-
delete out.originDeviceId;
|
|
221
|
-
delete out.id;
|
|
222
|
-
delete out.type;
|
|
223
|
-
delete out.sessionName;
|
|
224
|
-
delete out.timestamp;
|
|
225
|
-
return out;
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=cloud-event-forwarder.service.js.map
|