crewly 1.6.5 → 1.8.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/constants.ts +2 -0
- package/config/roles/auditor/prompt.md +24 -0
- package/config/roles/developer/prompt.md +2 -1
- package/config/roles/orchestrator/prompt.md +118 -2
- package/config/roles/team-leader/prompt.md +6 -0
- 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/report-status/SKILL.md +8 -1
- package/config/skills/agent/core/report-status/execute.sh +23 -1
- package/config/skills/orchestrator/heartbeat/execute.sh +48 -6
- package/config/sops/common/mid-flight-milestone-surface.md +128 -0
- package/config/sops/common/owner-facing-communication.md +46 -2
- package/config/sops/developer/git-workflow.md +33 -0
- package/dist/backend/backend/src/constants.d.ts +13 -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/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 +6 -0
- 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 +128 -0
- 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/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 +215 -94
- package/dist/backend/backend/src/controllers/slack/slack.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 +27 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +201 -37
- 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 +11 -1
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +45 -3
- 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 +219 -7
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +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 +117 -9
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +44 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +179 -10
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +6 -6
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +3 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +7 -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.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-service.factory.js +4 -4
- package/dist/backend/backend/src/services/agent/runtime-service.factory.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 +401 -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 +619 -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 +10 -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 +178 -10
- 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 +37 -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 +71 -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/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/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/mcp-server.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +5 -0
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +4 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js +12 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/backend/backend/src/services/memory/capability-inference.d.ts +73 -0
- package/dist/backend/backend/src/services/memory/capability-inference.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/capability-inference.js +115 -0
- package/dist/backend/backend/src/services/memory/capability-inference.js.map +1 -0
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +22 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +81 -3
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.d.ts +25 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.js +43 -0
- package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/task-history-seeder.d.ts +47 -0
- package/dist/backend/backend/src/services/memory/task-history-seeder.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/task-history-seeder.js +89 -0
- package/dist/backend/backend/src/services/memory/task-history-seeder.js.map +1 -0
- package/dist/backend/backend/src/services/memory/task-history.subscriber.d.ts +76 -0
- package/dist/backend/backend/src/services/memory/task-history.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/task-history.subscriber.js +199 -0
- package/dist/backend/backend/src/services/memory/task-history.subscriber.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 +25 -5
- package/dist/backend/backend/src/services/messaging/queue-processor.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/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/reconciler/reconcile-rules.d.ts +39 -18
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +60 -32
- 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 +134 -0
- 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 +416 -13
- 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.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.js +30 -4
- package/dist/backend/backend/src/services/session/session-handoff.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/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 +21 -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 +120 -46
- 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 +49 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +33 -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 +160 -8
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.js +55 -2
- package/dist/backend/backend/src/services/v3/cascade-request-status.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 +9 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +28 -3
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +5 -2
- 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.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +57 -15
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +39 -0
- 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 +81 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +17 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +22 -3
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- 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/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/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 +12 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts +10 -13
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.js +4 -1
- package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
- package/dist/backend/backend/src/types/memory.types.d.ts +94 -1
- 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/v2/work-item.types.d.ts +23 -0
- 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.map +1 -1
- 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/backend/config/constants.d.ts +2 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +2 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +1 -0
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +13 -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/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +22 -11
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +5 -0
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +4 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js +12 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +22 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +81 -3
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +25 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.js +43 -0
- package/dist/cli/backend/src/services/memory/project-memory.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/task-pool/task-pool.service.d.ts +33 -2
- 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 +160 -8
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- 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 +1 -1
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.js +12 -0
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/cli/backend/src/types/memory.types.d.ts +94 -1
- 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/v2/work-item.types.d.ts +23 -0
- 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.map +1 -1
- package/dist/cli/cli/src/commands/start.js +73 -12
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/config/constants.d.ts +2 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +2 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +1 -0
- package/dist/cli/config/index.d.ts.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 +1 -1
- package/frontend/dist/assets/index-698305f3.js +0 -5228
|
@@ -1,340 +1,92 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Chat Service
|
|
2
|
+
* Chat Service — facade over ChatV2Service.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Phase 6 of the unified-chat-message-store spec
|
|
5
|
+
* (`specs/2026-05-14-unified-chat-message-store.md`):
|
|
6
|
+
* the legacy JSON-file storage at `~/.crewly/chat/` is retired.
|
|
7
|
+
* All chat persistence and read paths now flow through the canonical
|
|
8
|
+
* `ChatV2Service` (SQLite at `~/.crewly/chat.db`). This file remains
|
|
9
|
+
* temporarily as a deprecation shim so the many legacy callers
|
|
10
|
+
* (`chat.controller.ts`, `chat.gateway.ts`, `slack-orchestrator-bridge.ts`,
|
|
11
|
+
* `notify-reconciliation.service.ts`, `message-replay.service.ts`,
|
|
12
|
+
* `index.ts`) continue to compile and run while they are migrated to
|
|
13
|
+
* call ChatV2Service directly. Each facade method translates between
|
|
14
|
+
* the legacy `ChatMessage` / `ChatConversation` DTOs and chat-v2's
|
|
15
|
+
* `ChatMessageDTO` / `ChatChannelDTO` so existing event subscribers
|
|
16
|
+
* (chat.gateway.ts) see the same shapes they always have.
|
|
7
17
|
*
|
|
8
18
|
* @module services/chat/chat.service
|
|
9
19
|
*/
|
|
10
20
|
import { EventEmitter } from 'events';
|
|
11
21
|
import { ChatMessage, ChatConversation, ChatSender, ChatChannelType, SendMessageInput, SendMessageResult, ChatMessageFilter, ConversationFilter } from '../../types/chat.types.js';
|
|
12
|
-
/**
|
|
13
|
-
* Error thrown when a conversation is not found
|
|
14
|
-
*/
|
|
15
22
|
export declare class ConversationNotFoundError extends Error {
|
|
16
23
|
readonly conversationId: string;
|
|
17
24
|
constructor(conversationId: string);
|
|
18
25
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Error thrown when message validation fails
|
|
21
|
-
*/
|
|
22
26
|
export declare class MessageValidationError extends Error {
|
|
23
27
|
constructor(message: string);
|
|
24
28
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Configuration options for the ChatService
|
|
27
|
-
*/
|
|
28
29
|
export interface ChatServiceOptions {
|
|
29
|
-
/**
|
|
30
|
+
/** @deprecated Legacy filesystem path; ignored — storage is now SQLite. */
|
|
30
31
|
chatDir?: string;
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* Handles:
|
|
36
|
-
* - Message persistence to ~/.crewly/chat/
|
|
37
|
-
* - Conversation management
|
|
38
|
-
* - Message formatting (raw terminal → clean chat)
|
|
39
|
-
* - WebSocket event emission for real-time updates
|
|
34
|
+
* Deprecated façade over ChatV2Service.
|
|
40
35
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
36
|
+
* Preserves the public surface of the original `ChatService` so the
|
|
37
|
+
* remaining legacy callers compile unchanged. Internally every method
|
|
38
|
+
* delegates to `ChatV2Service`. The original ~/.crewly/chat/*.json
|
|
39
|
+
* storage layer has been removed.
|
|
45
40
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* });
|
|
50
|
-
*
|
|
51
|
-
* // Get messages
|
|
52
|
-
* const messages = await chatService.getMessages({
|
|
53
|
-
* conversationId: result.conversation.id,
|
|
54
|
-
* });
|
|
55
|
-
* ```
|
|
41
|
+
* New code MUST NOT depend on this class; call `getChatV2Service()`
|
|
42
|
+
* directly. Phase 6c of the spec deletes this file once all callers
|
|
43
|
+
* are migrated.
|
|
56
44
|
*/
|
|
57
45
|
export declare class ChatService extends EventEmitter {
|
|
58
|
-
private
|
|
59
|
-
private
|
|
60
|
-
|
|
61
|
-
private messages;
|
|
62
|
-
private initialized;
|
|
63
|
-
/** Per-conversation save serialization to prevent concurrent write corruption */
|
|
64
|
-
private savePromises;
|
|
65
|
-
/**
|
|
66
|
-
* Create a new ChatService instance
|
|
67
|
-
*
|
|
68
|
-
* @param options - Configuration options
|
|
69
|
-
*/
|
|
70
|
-
constructor(options?: ChatServiceOptions);
|
|
71
|
-
/**
|
|
72
|
-
* Initialize the chat service
|
|
73
|
-
*
|
|
74
|
-
* Creates the chat directory if it doesn't exist and loads
|
|
75
|
-
* existing conversations from disk.
|
|
76
|
-
*/
|
|
46
|
+
private logger;
|
|
47
|
+
private chatV2;
|
|
48
|
+
constructor(_options?: ChatServiceOptions);
|
|
77
49
|
initialize(): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Check if the service is initialized
|
|
80
|
-
*
|
|
81
|
-
* @returns True if initialized
|
|
82
|
-
*/
|
|
83
50
|
isInitialized(): boolean;
|
|
84
51
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* @throws Error if not initialized and auto-initialize fails
|
|
88
|
-
*/
|
|
89
|
-
private ensureInitialized;
|
|
90
|
-
/**
|
|
91
|
-
* Send a message (from user to orchestrator)
|
|
92
|
-
*
|
|
93
|
-
* @param input - Message input
|
|
94
|
-
* @returns The sent message and conversation
|
|
95
|
-
* @throws MessageValidationError if input is invalid
|
|
96
|
-
*
|
|
97
|
-
* @example
|
|
98
|
-
* ```typescript
|
|
99
|
-
* const result = await chatService.sendMessage({
|
|
100
|
-
* content: 'Start the project analysis',
|
|
101
|
-
* });
|
|
102
|
-
* console.log(result.message.id);
|
|
103
|
-
* ```
|
|
52
|
+
* Send a user message. Idempotency via legacy callers' own
|
|
53
|
+
* metadata.clientMessageId when present.
|
|
104
54
|
*/
|
|
105
55
|
sendMessage(input: SendMessageInput): Promise<SendMessageResult>;
|
|
106
56
|
/**
|
|
107
|
-
* Add
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* @param conversationId - Conversation to add the message to
|
|
113
|
-
* @param rawOutput - Raw terminal output
|
|
114
|
-
* @param sender - Sender information
|
|
115
|
-
* @param metadata - Optional metadata
|
|
116
|
-
* @returns The created message
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* const message = await chatService.addAgentMessage(
|
|
121
|
-
* 'conv-123',
|
|
122
|
-
* '[RESPONSE]Task completed successfully[/RESPONSE]',
|
|
123
|
-
* { type: 'orchestrator', name: 'Orchestrator' }
|
|
124
|
-
* );
|
|
125
|
-
* ```
|
|
57
|
+
* Add an agent reply extracted from raw terminal output. The legacy
|
|
58
|
+
* regex extraction (`[RESPONSE]` / `[CHAT_RESPONSE]` markers) is gone
|
|
59
|
+
* — callers should pass already-clean content. Kept for source
|
|
60
|
+
* compatibility with `chat.gateway.processTerminalOutput`, which has
|
|
61
|
+
* no production callers post Phase 4 discovery.
|
|
126
62
|
*/
|
|
127
63
|
addAgentMessage(conversationId: string, rawOutput: string, sender: ChatSender, metadata?: Record<string, unknown>): Promise<ChatMessage>;
|
|
128
64
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* Unlike `addAgentMessage`, this method skips `extractResponseFromOutput()`
|
|
132
|
-
* and takes already-cleaned content directly. Used by the unified [NOTIFY]
|
|
133
|
-
* marker handler where content is extracted from JSON payload.
|
|
134
|
-
*
|
|
135
|
-
* Emits the `'message'` event that QueueProcessor's `waitForResponse()` depends on.
|
|
136
|
-
*
|
|
137
|
-
* @param conversationId - Conversation to add the message to
|
|
138
|
-
* @param content - Pre-extracted markdown content
|
|
139
|
-
* @param sender - Sender information
|
|
140
|
-
* @param metadata - Optional metadata
|
|
141
|
-
* @returns The created message
|
|
142
|
-
*
|
|
143
|
-
* @example
|
|
144
|
-
* ```typescript
|
|
145
|
-
* const message = await chatService.addDirectMessage(
|
|
146
|
-
* 'conv-123',
|
|
147
|
-
* '## Status Update\n\nEmily is working...',
|
|
148
|
-
* { type: 'orchestrator', name: 'Orchestrator' }
|
|
149
|
-
* );
|
|
150
|
-
* ```
|
|
65
|
+
* Persist a pre-extracted markdown reply. Primary call site is the
|
|
66
|
+
* PTY `[NOTIFY]` path in `chat.gateway.processNotifyMessage`.
|
|
151
67
|
*/
|
|
152
68
|
addDirectMessage(conversationId: string, content: string, sender: ChatSender, metadata?: Record<string, unknown>): Promise<ChatMessage>;
|
|
153
69
|
/**
|
|
154
|
-
* Add a system
|
|
155
|
-
*
|
|
156
|
-
* @param conversationId - Conversation to add the message to
|
|
157
|
-
* @param content - Message content
|
|
158
|
-
* @param metadata - Optional metadata
|
|
159
|
-
* @returns The created message
|
|
70
|
+
* Add a server-side system note (progress markers, errors, etc.).
|
|
160
71
|
*/
|
|
161
72
|
addSystemMessage(conversationId: string, content: string, metadata?: Record<string, unknown>): Promise<ChatMessage>;
|
|
162
|
-
|
|
163
|
-
* Get messages for a conversation
|
|
164
|
-
*
|
|
165
|
-
* @param filter - Message filter options
|
|
166
|
-
* @returns Array of messages matching the filter
|
|
167
|
-
*
|
|
168
|
-
* @example
|
|
169
|
-
* ```typescript
|
|
170
|
-
* const messages = await chatService.getMessages({
|
|
171
|
-
* conversationId: 'conv-123',
|
|
172
|
-
* limit: 50,
|
|
173
|
-
* senderType: 'user',
|
|
174
|
-
* });
|
|
175
|
-
* ```
|
|
176
|
-
*/
|
|
73
|
+
private recordViaFacade;
|
|
177
74
|
getMessages(filter: ChatMessageFilter): Promise<ChatMessage[]>;
|
|
178
|
-
/**
|
|
179
|
-
* Get the total count of messages in a conversation, applying the same
|
|
180
|
-
* filters as getMessages (senderType, contentType, after, before).
|
|
181
|
-
*
|
|
182
|
-
* @param filter - Message filter options
|
|
183
|
-
* @returns Total number of messages matching the filter
|
|
184
|
-
*/
|
|
185
75
|
getMessageCount(filter: ChatMessageFilter): Promise<number>;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
*
|
|
189
|
-
* @param conversationId - Conversation ID
|
|
190
|
-
* @param messageId - Message ID
|
|
191
|
-
* @returns The message or null if not found
|
|
192
|
-
*/
|
|
193
|
-
getMessage(conversationId: string, messageId: string): Promise<ChatMessage | null>;
|
|
194
|
-
/**
|
|
195
|
-
* Update metadata on an existing message (partial merge).
|
|
196
|
-
*
|
|
197
|
-
* Merges the provided metadata fields into the message's existing metadata
|
|
198
|
-
* and persists the change to disk. Used by the NOTIFY reconciliation system
|
|
199
|
-
* to track Slack delivery status on chat messages.
|
|
200
|
-
*
|
|
201
|
-
* @param conversationId - Conversation the message belongs to
|
|
202
|
-
* @param messageId - ID of the message to update
|
|
203
|
-
* @param metadataPatch - Partial metadata to merge into existing metadata
|
|
204
|
-
* @returns The updated message, or null if message not found
|
|
205
|
-
*/
|
|
206
|
-
updateMessageMetadata(conversationId: string, messageId: string, metadataPatch: Record<string, unknown>): Promise<ChatMessage | null>;
|
|
207
|
-
/**
|
|
208
|
-
* Find all messages with pending Slack delivery within a time window.
|
|
209
|
-
*
|
|
210
|
-
* Scans all conversations for messages where `slackDeliveryStatus === 'pending'`
|
|
211
|
-
* and `slackChannelId` is present, filtering out messages older than `maxAgeMs`.
|
|
212
|
-
* Used by NotifyReconciliationService to find messages that need retry.
|
|
213
|
-
*
|
|
214
|
-
* @param maxAgeMs - Maximum message age in milliseconds
|
|
215
|
-
* @returns Array of messages with pending Slack delivery
|
|
216
|
-
*/
|
|
76
|
+
getMessage(_conversationId: string, _messageId: string): Promise<ChatMessage | null>;
|
|
77
|
+
updateMessageMetadata(_conversationId: string, messageId: string, metadataPatch: Record<string, unknown>): Promise<ChatMessage | null>;
|
|
217
78
|
getMessagesWithPendingSlackDelivery(maxAgeMs: number): Promise<ChatMessage[]>;
|
|
218
|
-
|
|
219
|
-
* Get all conversations
|
|
220
|
-
*
|
|
221
|
-
* @param filter - Optional filter options
|
|
222
|
-
* @returns Array of conversations
|
|
223
|
-
*
|
|
224
|
-
* @example
|
|
225
|
-
* ```typescript
|
|
226
|
-
* const conversations = await chatService.getConversations({
|
|
227
|
-
* includeArchived: false,
|
|
228
|
-
* search: 'project',
|
|
229
|
-
* });
|
|
230
|
-
* ```
|
|
231
|
-
*/
|
|
232
|
-
getConversations(filter?: ConversationFilter): Promise<ChatConversation[]>;
|
|
233
|
-
/**
|
|
234
|
-
* Get a single conversation by ID
|
|
235
|
-
*
|
|
236
|
-
* @param id - Conversation ID
|
|
237
|
-
* @returns The conversation or null if not found
|
|
238
|
-
*/
|
|
79
|
+
getConversations(_filter?: ConversationFilter): Promise<ChatConversation[]>;
|
|
239
80
|
getConversation(id: string): Promise<ChatConversation | null>;
|
|
240
|
-
|
|
241
|
-
* Create a new conversation
|
|
242
|
-
*
|
|
243
|
-
* @param title - Optional title for the conversation
|
|
244
|
-
* @returns The created conversation
|
|
245
|
-
*
|
|
246
|
-
* @example
|
|
247
|
-
* ```typescript
|
|
248
|
-
* const conversation = await chatService.createNewConversation('Project Discussion');
|
|
249
|
-
* ```
|
|
250
|
-
*/
|
|
251
|
-
createNewConversation(title?: string, idOverride?: string, channelType?: ChatChannelType): Promise<ChatConversation>;
|
|
252
|
-
/**
|
|
253
|
-
* Update a conversation's title
|
|
254
|
-
*
|
|
255
|
-
* @param id - Conversation ID
|
|
256
|
-
* @param title - New title
|
|
257
|
-
* @returns The updated conversation
|
|
258
|
-
* @throws ConversationNotFoundError if conversation doesn't exist
|
|
259
|
-
*/
|
|
81
|
+
createNewConversation(title?: string, idOverride?: string, _channelType?: ChatChannelType): Promise<ChatConversation>;
|
|
260
82
|
updateConversationTitle(id: string, title: string): Promise<ChatConversation>;
|
|
261
|
-
/**
|
|
262
|
-
* Archive a conversation
|
|
263
|
-
*
|
|
264
|
-
* @param id - Conversation ID
|
|
265
|
-
* @throws ConversationNotFoundError if conversation doesn't exist
|
|
266
|
-
*/
|
|
267
83
|
archiveConversation(id: string): Promise<void>;
|
|
268
|
-
/**
|
|
269
|
-
* Unarchive a conversation
|
|
270
|
-
*
|
|
271
|
-
* @param id - Conversation ID
|
|
272
|
-
* @throws ConversationNotFoundError if conversation doesn't exist
|
|
273
|
-
*/
|
|
274
84
|
unarchiveConversation(id: string): Promise<void>;
|
|
275
|
-
/**
|
|
276
|
-
* Delete a conversation and all its messages
|
|
277
|
-
*
|
|
278
|
-
* @param id - Conversation ID
|
|
279
|
-
*/
|
|
280
85
|
deleteConversation(id: string): Promise<void>;
|
|
281
|
-
/**
|
|
282
|
-
* Clear all messages from a conversation
|
|
283
|
-
*
|
|
284
|
-
* @param id - Conversation ID
|
|
285
|
-
*/
|
|
286
86
|
clearConversation(id: string): Promise<void>;
|
|
287
|
-
/**
|
|
288
|
-
* Get the current/active conversation (most recently updated non-archived)
|
|
289
|
-
*
|
|
290
|
-
* @returns The most recent active conversation or null
|
|
291
|
-
*/
|
|
292
87
|
getCurrentConversation(): Promise<ChatConversation | null>;
|
|
293
|
-
/**
|
|
294
|
-
* Emit typing indicator event
|
|
295
|
-
*
|
|
296
|
-
* @param conversationId - Conversation ID
|
|
297
|
-
* @param sender - Sender information
|
|
298
|
-
* @param isTyping - Whether the sender is typing
|
|
299
|
-
*/
|
|
300
88
|
emitTypingIndicator(conversationId: string, sender: ChatSender, isTyping: boolean): void;
|
|
301
|
-
/**
|
|
302
|
-
* Emit a transient progress update to the frontend for a conversation.
|
|
303
|
-
*
|
|
304
|
-
* Unlike addSystemMessage, this does NOT persist the message to disk.
|
|
305
|
-
* It creates a temporary system chat message and emits it via the
|
|
306
|
-
* 'chat_message' WebSocket event so the UI can display a progress
|
|
307
|
-
* indicator during long-running orchestrator operations.
|
|
308
|
-
*
|
|
309
|
-
* @param conversationId - Conversation to emit progress for
|
|
310
|
-
* @param text - Progress text to display (e.g. "Processing... (still working)")
|
|
311
|
-
*/
|
|
312
89
|
emitProgress(conversationId: string, text: string): void;
|
|
313
|
-
/**
|
|
314
|
-
* Emit a chat message event
|
|
315
|
-
*
|
|
316
|
-
* @param message - The message to emit
|
|
317
|
-
*/
|
|
318
|
-
private emitChatMessageEvent;
|
|
319
|
-
/**
|
|
320
|
-
* Strip sensitive tokens from a text string before broadcasting.
|
|
321
|
-
* Uses the same JWT + API key patterns as chat-sanitizer.service.ts.
|
|
322
|
-
*
|
|
323
|
-
* @param text - Raw text that may contain tokens
|
|
324
|
-
* @returns Text with sensitive data replaced by '***'
|
|
325
|
-
*/
|
|
326
|
-
private sanitizeContent;
|
|
327
|
-
/**
|
|
328
|
-
* Emit a conversation updated event
|
|
329
|
-
*
|
|
330
|
-
* @param conversation - The updated conversation
|
|
331
|
-
*/
|
|
332
|
-
private emitConversationUpdatedEvent;
|
|
333
|
-
/**
|
|
334
|
-
* Get statistics about chat usage
|
|
335
|
-
*
|
|
336
|
-
* @returns Statistics object
|
|
337
|
-
*/
|
|
338
90
|
getStatistics(): Promise<{
|
|
339
91
|
totalConversations: number;
|
|
340
92
|
activeConversations: number;
|
|
@@ -342,51 +94,16 @@ export declare class ChatService extends EventEmitter {
|
|
|
342
94
|
totalMessages: number;
|
|
343
95
|
}>;
|
|
344
96
|
/**
|
|
345
|
-
*
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* Save a conversation and its messages to disk using atomic write (write-to-tmp + rename).
|
|
350
|
-
* Serialized per conversation to prevent concurrent writes from corrupting the file.
|
|
351
|
-
*
|
|
352
|
-
* @param conversation - Conversation to save
|
|
353
|
-
*/
|
|
354
|
-
private saveConversation;
|
|
355
|
-
/**
|
|
356
|
-
* Perform the actual atomic file write for a conversation.
|
|
357
|
-
* Writes to a temporary file first, then renames to the final path to prevent corruption.
|
|
358
|
-
*
|
|
359
|
-
* @param conversation - Conversation to save
|
|
360
|
-
*/
|
|
361
|
-
private doSaveConversation;
|
|
362
|
-
/**
|
|
363
|
-
* Save a message to the in-memory store.
|
|
364
|
-
*
|
|
365
|
-
* Only updates the in-memory messages array. Disk persistence is handled
|
|
366
|
-
* by the caller (typically via updateConversationWithMessage which calls
|
|
367
|
-
* saveConversation). For code paths that skip updateConversationWithMessage
|
|
368
|
-
* (e.g. addSystemMessage), the caller is responsible for triggering
|
|
369
|
-
* saveConversation separately.
|
|
370
|
-
*
|
|
371
|
-
* @param message - Message to save
|
|
97
|
+
* Generate a conversationId for a brand-new sendMessage call that
|
|
98
|
+
* didn't supply one. Web-chat-style id; Slack callers always pass
|
|
99
|
+
* their own slack-CHANNEL-TS identifier.
|
|
372
100
|
*/
|
|
373
|
-
private
|
|
101
|
+
private synthesizeConversationId;
|
|
374
102
|
/**
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
* @param conversationId - Conversation ID
|
|
378
|
-
* @param message - The added message
|
|
103
|
+
* @deprecated Will be removed when the façade is retired.
|
|
379
104
|
*/
|
|
380
|
-
|
|
105
|
+
ensureInitialized(): Promise<void>;
|
|
381
106
|
}
|
|
382
|
-
|
|
383
|
-
* Get the singleton ChatService instance
|
|
384
|
-
*
|
|
385
|
-
* @returns The ChatService instance
|
|
386
|
-
*/
|
|
387
|
-
export declare function getChatService(): ChatService;
|
|
388
|
-
/**
|
|
389
|
-
* Reset the singleton instance (for testing)
|
|
390
|
-
*/
|
|
107
|
+
export declare function getChatService(options?: ChatServiceOptions): ChatService;
|
|
391
108
|
export declare function resetChatService(): void;
|
|
392
109
|
//# sourceMappingURL=chat.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat/chat.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/chat/chat.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAKnB,MAAM,2BAA2B,CAAC;AA2DnC,qBAAa,yBAA0B,SAAQ,KAAK;aACtB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAInD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAMD,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAgB;gBAElB,QAAQ,CAAC,EAAE,kBAAkB;IAUnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,aAAa,IAAI,OAAO;IAQxB;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6CtE;;;;;;OAMG;IACG,eAAe,CACnB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAWvB;;;OAGG;IACG,gBAAgB,CACpB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAMvB;;OAEG;IACG,gBAAgB,CACpB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;YAUT,eAAe;IAqCvB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAyB9D,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3D,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAOpF,qBAAqB,CACzB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAKxB,mCAAmC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI7E,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAO3E,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAS7D,qBAAqB,CACzB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IAUtB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK7E,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWhE,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAOxF,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAkBlD,aAAa,IAAI,OAAO,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAcF;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC;AAQD,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAKxE;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|