crewly 1.6.1 → 1.6.3
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/orchestrator/prompt.md +16 -0
- package/config/skills/agent/core/get-my-active-work/SKILL.md +101 -0
- package/config/skills/agent/core/get-my-active-work/execute.sh +122 -0
- package/config/skills/agent/core/record-learning/SKILL.md +29 -0
- package/config/skills/agent/core/reply-channel/SKILL.md +41 -0
- package/config/skills/agent/core/reply-channel/execute.sh +165 -0
- package/config/skills/agent/core/reply-channel/execute.test.sh +148 -0
- package/config/skills/agent/remote-browser/execute.sh +296 -14
- package/config/skills/agent/remote-browser/execute.test.sh +482 -0
- package/config/skills/orchestrator/send-message/SKILL.md +30 -7
- package/config/skills/orchestrator/team-health-scan/SKILL.md +98 -0
- package/config/skills/orchestrator/team-health-scan/execute.sh +44 -0
- package/config/skills/registry.json +62 -1
- package/config/slack-app-manifest.json +2 -1
- package/config/sops/developer/git-workflow.md +38 -3
- package/dist/backend/backend/src/constants.d.ts +69 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +69 -2
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts +53 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +92 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js.map +1 -0
- 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 +18 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +68 -0
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +233 -5
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js +10 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +8 -3
- 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 +132 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +401 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +29 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +39 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.d.ts +8 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.js +8 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +13 -13
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +74 -234
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +76 -15
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/request/request.controller.js +4 -6
- package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts +43 -0
- 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 +200 -72
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.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 +49 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.d.ts +59 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.js +127 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.d.ts +13 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.js +20 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts +9 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +233 -0
- package/dist/backend/backend/src/index.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 +40 -6
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +498 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +759 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +25 -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 +221 -58
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +9 -2
- 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 +35 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +8 -2
- 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 +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.js +2 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js +2 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +148 -3
- 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 +241 -2
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +13 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- 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 +26 -1
- 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/sop-norm-distinction.module.d.ts +79 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +161 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +382 -2
- 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 +105 -0
- 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 +232 -13
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +178 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +254 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts +134 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.js +232 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.d.ts +25 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.js +23 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +254 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +467 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.d.ts +43 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.js +54 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/config.d.ts +100 -0
- package/dist/backend/backend/src/services/chat-v2/config.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/config.js +174 -0
- package/dist/backend/backend/src/services/chat-v2/config.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/index.d.ts +11 -0
- package/dist/backend/backend/src/services/chat-v2/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/index.js +12 -0
- package/dist/backend/backend/src/services/chat-v2/index.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +114 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +194 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +100 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +351 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +132 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +281 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts +295 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/types.js +61 -0
- package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts +113 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js +179 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts +131 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js +227 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js.map +1 -0
- package/dist/backend/backend/src/services/core/config.service.js +3 -3
- package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +22 -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 +57 -0
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +69 -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 +118 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +275 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +736 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -0
- 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 -2
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +49 -13
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +123 -29
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.d.ts +159 -0
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.js +304 -0
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.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 +24 -4
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +174 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +375 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +97 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.js +209 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.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 +19 -4
- package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +16 -5
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +32 -5
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts +157 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js +229 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts +141 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.js +18 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.js.map +1 -0
- package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/pr-review/pr-review.service.js +1 -1
- package/dist/backend/backend/src/services/pr-review/pr-review.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 +17 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +39 -1
- 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 +158 -26
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +248 -6
- 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 +531 -51
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/team-health/index.d.ts +16 -0
- package/dist/backend/backend/src/services/team-health/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/index.js +16 -0
- package/dist/backend/backend/src/services/team-health/index.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts +52 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js +161 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.d.ts +53 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.js +88 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.d.ts +44 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.js +83 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.d.ts +92 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.js +328 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.d.ts +41 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.js +213 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.d.ts +46 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.js +347 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.d.ts +154 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.js +94 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.d.ts +111 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.js +226 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +148 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js +545 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +499 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +1105 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts +22 -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 +71 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +1 -0
- 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 +22 -6
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +19 -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 +43 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +22 -1
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/review-reason.types.d.ts +63 -0
- package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/review-reason.types.js +50 -0
- package/dist/backend/backend/src/types/review-reason.types.js.map +1 -0
- package/dist/backend/backend/src/types/slack.types.d.ts +4 -1
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/mission.types.d.ts +18 -0
- package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/mission.types.js +1 -0
- package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -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 +25 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/team.utils.d.ts +38 -0
- package/dist/backend/backend/src/utils/team.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/team.utils.js +45 -0
- package/dist/backend/backend/src/utils/team.utils.js.map +1 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts +195 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts.map +1 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.js +401 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.js.map +1 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +37 -2
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +106 -5
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +69 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +69 -2
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/core/config.service.js +3 -3
- package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +22 -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 +57 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- 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 -2
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +49 -13
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +123 -29
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
- 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 +24 -4
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +22 -1
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +25 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/frontend/dist/assets/{index-70356616.js → index-7a4e7df5.js} +328 -326
- package/frontend/dist/assets/index-b7e59b2b.css +33 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +2 -1
- package/config/skills/orchestrator/recall/SKILL.md +0 -47
- package/config/skills/orchestrator/recall/execute.sh +0 -13
- package/config/skills/orchestrator/record-learning/SKILL.md +0 -47
- package/config/skills/orchestrator/record-learning/execute.sh +0 -13
- package/config/skills/orchestrator/remember/SKILL.md +0 -55
- package/config/skills/orchestrator/remember/execute.sh +0 -15
- package/frontend/dist/assets/index-6aaa0630.css +0 -33
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-wide holder for chat-v2 realtime dependencies.
|
|
3
|
+
*
|
|
4
|
+
* The REST router is mounted during `configureRoutes()` — but the
|
|
5
|
+
* WebSocket gateway + agent dispatcher are only available once the HTTP
|
|
6
|
+
* server is up (in `start()`). Rather than reshuffling startup order,
|
|
7
|
+
* the router reads deps from this holder at request time; `start()` sets
|
|
8
|
+
* them after the gateway + dispatcher are ready.
|
|
9
|
+
*
|
|
10
|
+
* Tests can `setChatV2RealtimeDeps(null)` to clear between runs.
|
|
11
|
+
*
|
|
12
|
+
* @module services/chat-v2/chat-v2.realtime-holder
|
|
13
|
+
*/
|
|
14
|
+
import type { ChatV2Gateway } from '../../websocket/chat-v2.gateway.js';
|
|
15
|
+
import type { ChatV2DispatcherService } from './chat-v2.dispatcher.service.js';
|
|
16
|
+
/** Realtime deps lazily bound after HTTP server start. */
|
|
17
|
+
export interface ChatV2RealtimeDeps {
|
|
18
|
+
gateway?: ChatV2Gateway;
|
|
19
|
+
dispatcher?: ChatV2DispatcherService;
|
|
20
|
+
}
|
|
21
|
+
/** Set the live realtime deps. Call once after gateway/dispatcher init. */
|
|
22
|
+
export declare function setChatV2RealtimeDeps(deps: ChatV2RealtimeDeps | null): void;
|
|
23
|
+
/** Retrieve the live realtime deps. Returns `{}` when unset. */
|
|
24
|
+
export declare function getChatV2RealtimeDeps(): ChatV2RealtimeDeps;
|
|
25
|
+
//# sourceMappingURL=chat-v2.realtime-holder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-v2.realtime-holder.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.realtime-holder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAID,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE3E;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-wide holder for chat-v2 realtime dependencies.
|
|
3
|
+
*
|
|
4
|
+
* The REST router is mounted during `configureRoutes()` — but the
|
|
5
|
+
* WebSocket gateway + agent dispatcher are only available once the HTTP
|
|
6
|
+
* server is up (in `start()`). Rather than reshuffling startup order,
|
|
7
|
+
* the router reads deps from this holder at request time; `start()` sets
|
|
8
|
+
* them after the gateway + dispatcher are ready.
|
|
9
|
+
*
|
|
10
|
+
* Tests can `setChatV2RealtimeDeps(null)` to clear between runs.
|
|
11
|
+
*
|
|
12
|
+
* @module services/chat-v2/chat-v2.realtime-holder
|
|
13
|
+
*/
|
|
14
|
+
let _deps = null;
|
|
15
|
+
/** Set the live realtime deps. Call once after gateway/dispatcher init. */
|
|
16
|
+
export function setChatV2RealtimeDeps(deps) {
|
|
17
|
+
_deps = deps;
|
|
18
|
+
}
|
|
19
|
+
/** Retrieve the live realtime deps. Returns `{}` when unset. */
|
|
20
|
+
export function getChatV2RealtimeDeps() {
|
|
21
|
+
return _deps ?? {};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=chat-v2.realtime-holder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-v2.realtime-holder.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.realtime-holder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,IAAI,KAAK,GAA8B,IAAI,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,IAA+B;IACnE,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatV2Service — orchestrator for the Agent-First Chat MVP.
|
|
3
|
+
*
|
|
4
|
+
* Wires ChannelStore + MessageStore, enforces the authorization rules
|
|
5
|
+
* laid out in the tech spec §7.2, and maps DB rows to wire-format DTOs.
|
|
6
|
+
*
|
|
7
|
+
* WebSocket push, offline queuing, and attachment durability land in
|
|
8
|
+
* later passes of Phase 1 — see §18 rollout plan.
|
|
9
|
+
*
|
|
10
|
+
* @module services/chat-v2/chat-v2.service
|
|
11
|
+
*/
|
|
12
|
+
import type { ChatV2Config } from './config.js';
|
|
13
|
+
import { type ChatDatabase } from './sqlite/chat-db.js';
|
|
14
|
+
import { type ChatAttachmentDTO, type ChatChannelDTO, type ChatChannelType, type ChatContentType, type ChatMessageDTO, type ChatMessageListResult, type ChatPrincipal } from './types.js';
|
|
15
|
+
/** Constructor options for `ChatV2Service`. */
|
|
16
|
+
export interface ChatV2ServiceOptions {
|
|
17
|
+
config: ChatV2Config;
|
|
18
|
+
/** Optional pre-opened DB (tests pass an in-memory handle). */
|
|
19
|
+
db?: ChatDatabase;
|
|
20
|
+
/** Presence lookup — wired to `AgentRegistrationService` in wiring; tests pass a stub. */
|
|
21
|
+
getPresence?: (agentSession: string) => {
|
|
22
|
+
status: ChatChannelDTO['agentPresence']['status'];
|
|
23
|
+
lastSeenAt: number | null;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* F2b (#333) — outer-ring tenant defense. Called when creating a
|
|
27
|
+
* `type='channel'` channel; if the principal cannot bind a channel
|
|
28
|
+
* to `teamId`, return false → `createChannel` throws
|
|
29
|
+
* `forbidden_team` (HTTP 403). Sync only, since `createChannel` runs
|
|
30
|
+
* inside the synchronous `runHandler` wrapper (an async refactor is
|
|
31
|
+
* a Phase E concern, not a F2b requirement).
|
|
32
|
+
*
|
|
33
|
+
* In OSS production, wire to a check that confirms `teamId` exists
|
|
34
|
+
* in `StorageService.getTeams()` — single-user OSS treats existence
|
|
35
|
+
* as membership. Cloud Portal Phase E swaps in a real user-tenant
|
|
36
|
+
* binding check.
|
|
37
|
+
*
|
|
38
|
+
* When omitted (legacy tests, REST-only fixtures) `createChannel`
|
|
39
|
+
* preserves pre-F2b behavior: only validates teamId is non-empty.
|
|
40
|
+
* The composition root in `backend/src/index.ts` MUST inject this
|
|
41
|
+
* to close the leak in production.
|
|
42
|
+
*/
|
|
43
|
+
validateTeamMembership?: (principal: ChatPrincipal, teamId: string) => boolean;
|
|
44
|
+
/** Clock override for tests. */
|
|
45
|
+
now?: () => number;
|
|
46
|
+
}
|
|
47
|
+
/** Minimal interface the service needs from a presence provider. */
|
|
48
|
+
export interface ChatPresenceProvider {
|
|
49
|
+
getPresence(agentSession: string): {
|
|
50
|
+
status: ChatChannelDTO['agentPresence']['status'];
|
|
51
|
+
lastSeenAt: number | null;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Arguments for `createChannel`. */
|
|
55
|
+
export interface CreateChannelArgs {
|
|
56
|
+
/**
|
|
57
|
+
* Wire-level session binding. Required when `type='dm'` (default);
|
|
58
|
+
* for `type='channel'`, callers may omit it (server stores '').
|
|
59
|
+
*/
|
|
60
|
+
agentSession?: string;
|
|
61
|
+
name: string;
|
|
62
|
+
purpose?: string;
|
|
63
|
+
principal: ChatPrincipal;
|
|
64
|
+
/**
|
|
65
|
+
* Phase A (SEALED §3.1) — channel kind. Defaults to `'dm'` to preserve
|
|
66
|
+
* the Phase 1 contract for callers that omit this field.
|
|
67
|
+
*/
|
|
68
|
+
type?: ChatChannelType;
|
|
69
|
+
/** Phase A — required when `type='channel'`. */
|
|
70
|
+
teamId?: string;
|
|
71
|
+
/** Phase A — optional even when `type='channel'`. */
|
|
72
|
+
projectId?: string;
|
|
73
|
+
/** Phase A — optional when `type='dm'`. */
|
|
74
|
+
targetMemberId?: string;
|
|
75
|
+
}
|
|
76
|
+
/** Arguments for `listChannels`. */
|
|
77
|
+
export interface ListChannelsArgs {
|
|
78
|
+
principal: ChatPrincipal;
|
|
79
|
+
includeArchived?: boolean;
|
|
80
|
+
limit?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Phase C — filter to a single channel type. The controller validates
|
|
83
|
+
* the wire value against {@link CHAT_CHANNEL_TYPES} before reaching
|
|
84
|
+
* this layer; an unknown value is rejected as `validation_error`.
|
|
85
|
+
*/
|
|
86
|
+
type?: ChatChannelType;
|
|
87
|
+
/**
|
|
88
|
+
* Phase C — filter to channels with this `team_id`. Empty string is
|
|
89
|
+
* treated the same as `undefined` (no filter) so callers don't have
|
|
90
|
+
* to pre-normalize blank query strings. The store-level filter still
|
|
91
|
+
* uses an exact-match against the column, so DMs (which have null
|
|
92
|
+
* team_id) drop out of the result.
|
|
93
|
+
*/
|
|
94
|
+
teamId?: string;
|
|
95
|
+
}
|
|
96
|
+
/** Arguments for `sendMessage`. */
|
|
97
|
+
export interface SendMessageArgs {
|
|
98
|
+
channelId: string;
|
|
99
|
+
principal: ChatPrincipal;
|
|
100
|
+
content: string;
|
|
101
|
+
contentType?: ChatContentType;
|
|
102
|
+
clientMessageId?: string;
|
|
103
|
+
/** Attachment hooks — the store is added in a later step, so pre-resolved DTOs are accepted. */
|
|
104
|
+
attachments?: ChatAttachmentDTO[];
|
|
105
|
+
/**
|
|
106
|
+
* Phase A (SEALED §3.2) — array of mention IDs (member or team)
|
|
107
|
+
* referenced inline in `content`. Persisted as JSON; emitted on the
|
|
108
|
+
* outbound message DTO. Empty / omitted → no mentions.
|
|
109
|
+
*/
|
|
110
|
+
mentions?: string[];
|
|
111
|
+
/**
|
|
112
|
+
* Phase A (SEALED §3.2) — Slack-style thread reply root. When set,
|
|
113
|
+
* the new message is a reply within the thread rooted at this id;
|
|
114
|
+
* the service validates that the thread root lives in the same
|
|
115
|
+
* channel before persisting.
|
|
116
|
+
*/
|
|
117
|
+
threadId?: string;
|
|
118
|
+
}
|
|
119
|
+
/** Arguments for `listMessages`. */
|
|
120
|
+
export interface ListMessagesArgs {
|
|
121
|
+
channelId: string;
|
|
122
|
+
principal: ChatPrincipal;
|
|
123
|
+
cursor?: string | null;
|
|
124
|
+
limit?: number;
|
|
125
|
+
direction?: 'backward' | 'forward';
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Orchestrator for chat domain operations.
|
|
129
|
+
*
|
|
130
|
+
* Responsibilities:
|
|
131
|
+
* - Owns the DB handle + stores.
|
|
132
|
+
* - Enforces authorization per §7.2.
|
|
133
|
+
* - Maps rows → DTOs.
|
|
134
|
+
* - Fans out to WebSocket / adapters in later phases.
|
|
135
|
+
*/
|
|
136
|
+
export declare class ChatV2Service {
|
|
137
|
+
/** Phase A spec §3.2: max mention count per message. */
|
|
138
|
+
static readonly MAX_MENTIONS_PER_MESSAGE = 50;
|
|
139
|
+
/** Phase A spec §3.2: max JSON-encoded byte size of the mentions array. */
|
|
140
|
+
static readonly MAX_MENTIONS_JSON_BYTES = 1024;
|
|
141
|
+
readonly config: ChatV2Config;
|
|
142
|
+
private readonly db;
|
|
143
|
+
private readonly channels;
|
|
144
|
+
private readonly messages;
|
|
145
|
+
private readonly presence;
|
|
146
|
+
private readonly validateTeamMembership;
|
|
147
|
+
private readonly now;
|
|
148
|
+
constructor(options: ChatV2ServiceOptions);
|
|
149
|
+
/** Release the DB handle. Safe to call during graceful shutdown / in tests. */
|
|
150
|
+
close(): void;
|
|
151
|
+
/**
|
|
152
|
+
* Create a channel bound 1:1 to an agent session. Server always assigns
|
|
153
|
+
* `owner_user_id = principal.userId` — the body's owner fields are ignored.
|
|
154
|
+
*
|
|
155
|
+
* F2b (#333): when `type='channel'` and a `validateTeamMembership` provider
|
|
156
|
+
* is wired into the service, the principal must be authorized for the
|
|
157
|
+
* requested `teamId`. Failures throw `forbidden_team` (403) — distinct
|
|
158
|
+
* from generic `forbidden` so the FE can surface a tenant-specific
|
|
159
|
+
* message.
|
|
160
|
+
*
|
|
161
|
+
* @param args - Channel creation args
|
|
162
|
+
* @returns The created channel as a DTO
|
|
163
|
+
* @throws {ChatError} `validation_error` (400) / `forbidden_team` (403) /
|
|
164
|
+
* `agent_already_bound` (409)
|
|
165
|
+
*/
|
|
166
|
+
createChannel(args: CreateChannelArgs): ChatChannelDTO;
|
|
167
|
+
/**
|
|
168
|
+
* List channels owned by the caller.
|
|
169
|
+
*
|
|
170
|
+
* Phase C: extended with optional `type` + `teamId` filters so the
|
|
171
|
+
* channel-rail can request a focused slice (e.g. "channels in this
|
|
172
|
+
* workspace only") without paging the full owner-scoped list. An
|
|
173
|
+
* unknown `type` value is rejected as `validation_error`. Blank
|
|
174
|
+
* `teamId` is normalized to "no filter" so callers don't need to
|
|
175
|
+
* sanitize empty query strings.
|
|
176
|
+
*
|
|
177
|
+
* @param args - List args (principal + optional filters)
|
|
178
|
+
* @returns DTO-mapped channels
|
|
179
|
+
* @throws {ChatError} `validation_error` (400) when `type` is set
|
|
180
|
+
* to a value outside {@link CHAT_CHANNEL_TYPES}.
|
|
181
|
+
*/
|
|
182
|
+
listChannels(args: ListChannelsArgs): ChatChannelDTO[];
|
|
183
|
+
/**
|
|
184
|
+
* Look up a single channel the caller owns.
|
|
185
|
+
*
|
|
186
|
+
* @param channelId - Channel id
|
|
187
|
+
* @param principal - Auth principal
|
|
188
|
+
* @returns DTO shape
|
|
189
|
+
* @throws {ChatError} `channel_not_found` (404) if the caller doesn't own it
|
|
190
|
+
*/
|
|
191
|
+
getChannel(channelId: string, principal: ChatPrincipal): ChatChannelDTO;
|
|
192
|
+
/**
|
|
193
|
+
* Archive a channel. Returns true if a row was modified.
|
|
194
|
+
*
|
|
195
|
+
* @param channelId - Channel id
|
|
196
|
+
* @param principal - Auth principal
|
|
197
|
+
* @returns True if newly archived, false if already archived
|
|
198
|
+
* @throws {ChatError} `channel_not_found` (404)
|
|
199
|
+
*/
|
|
200
|
+
archiveChannel(channelId: string, principal: ChatPrincipal): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Persist a message sent by the caller. The server decides `sender_type`
|
|
203
|
+
* and `sender_id` from the auth principal; client fields are ignored.
|
|
204
|
+
*
|
|
205
|
+
* @param args - Send args
|
|
206
|
+
* @returns The persisted message as a DTO (fresh or deduped)
|
|
207
|
+
* @throws {ChatError} on validation, authorization, or size limit
|
|
208
|
+
*/
|
|
209
|
+
sendMessage(args: SendMessageArgs): ChatMessageDTO;
|
|
210
|
+
/**
|
|
211
|
+
* Phase A — validate the mentions array passed to sendMessage.
|
|
212
|
+
* Returns the cleaned array (or undefined when input is empty/missing).
|
|
213
|
+
*
|
|
214
|
+
* @param raw - The raw `mentions` field from the request body
|
|
215
|
+
* @returns Validated mention IDs (caller passes to messageStore)
|
|
216
|
+
* @throws {ChatError} `validation_error` (400) on type / size / count violation
|
|
217
|
+
*/
|
|
218
|
+
private validateMentions;
|
|
219
|
+
/**
|
|
220
|
+
* Phase A — validate the threadId passed to sendMessage.
|
|
221
|
+
*
|
|
222
|
+
* Returns the original threadId if it's a valid reference to a message
|
|
223
|
+
* in the same channel, or undefined when input is empty/missing.
|
|
224
|
+
* Refuses dangling references and cross-channel thread roots.
|
|
225
|
+
*
|
|
226
|
+
* @param raw - The raw `threadId` field from the request body
|
|
227
|
+
* @param channelId - The channel this message will be inserted into
|
|
228
|
+
* @returns Validated thread root id (caller passes to messageStore)
|
|
229
|
+
* @throws {ChatError} `validation_error` (400) when invalid
|
|
230
|
+
*/
|
|
231
|
+
private validateThreadId;
|
|
232
|
+
/**
|
|
233
|
+
* Page messages for a channel the caller may read.
|
|
234
|
+
*
|
|
235
|
+
* @param args - List args
|
|
236
|
+
* @returns A pagination envelope
|
|
237
|
+
* @throws {ChatError} on auth or invalid cursor
|
|
238
|
+
*/
|
|
239
|
+
listMessages(args: ListMessagesArgs): ChatMessageListResult;
|
|
240
|
+
/** Fetch the channel and enforce caller = owner. */
|
|
241
|
+
private requireOwnedChannel;
|
|
242
|
+
/**
|
|
243
|
+
* Fetch the channel and allow if the caller is the owner OR the bound agent.
|
|
244
|
+
* Used for read + send; agents must always be acting from their own session.
|
|
245
|
+
*/
|
|
246
|
+
private requireReadableChannel;
|
|
247
|
+
/** Decide sender_type + sender_id for a message based on principal + channel. */
|
|
248
|
+
private resolveSender;
|
|
249
|
+
/** Map a channel row + live presence into the wire DTO. */
|
|
250
|
+
private toChannelDTO;
|
|
251
|
+
/** Map a message row to the wire DTO. Attachments passed in by the caller. */
|
|
252
|
+
private toMessageDTO;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=chat-v2.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-v2.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat-v2/chat-v2.service.ts"],"names":[],"mappings":"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"}
|