crewly 1.4.83 → 1.5.1
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/domain-sops/EXAMPLE.sop.md +21 -0
- package/config/overlays/can-decide.md +5 -0
- package/config/overlays/can-delegate.md +5 -0
- package/config/overlays/can-user-reply.md +5 -0
- package/config/overlays/can-verify.md +5 -0
- package/config/risk-policies/EXAMPLE.policy.md +22 -0
- package/config/roles/developer/fragments/role-boundary.md +30 -0
- package/config/roles/orchestrator/fragments/role-boundary.md +25 -0
- package/config/roles/orchestrator/prompt.md +40 -6
- package/config/roles/team-leader/fragments/role-boundary.md +22 -0
- package/config/skills/agent/core/get-my-tasks/execute.sh +16 -0
- package/config/skills/agent/core/save-working-state/execute.sh +19 -0
- package/config/skills/agent/core/update-user-profile/execute.sh +13 -0
- package/dist/backend/backend/src/constants.d.ts +1 -49
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +0 -49
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +12 -16
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +53 -88
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +1 -2
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/index.d.ts +0 -1
- package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/index.js +0 -1
- package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/index.d.ts +1 -1
- package/dist/backend/backend/src/controllers/memory/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/index.js +1 -1
- package/dist/backend/backend/src/controllers/memory/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts +35 -0
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js +61 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts +2 -0
- package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.js +5 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/cron-task.controller.d.ts +1 -0
- package/dist/backend/backend/src/controllers/system/cron-task.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/cron-task.controller.js +12 -6
- package/dist/backend/backend/src/controllers/system/cron-task.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +24 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +107 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.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/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +24 -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 +1 -3
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.js +5 -0
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +24 -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 +96 -2
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts +33 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.js +70 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts +35 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.js +50 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts +46 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.js +44 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +13 -3
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js +2 -11
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +10 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts +35 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.js +50 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +67 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +172 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts +5 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.js +18 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-initializer.js +0 -9
- package/dist/backend/backend/src/services/cloud/cloud-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +1 -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 +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +22 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.js +103 -6
- package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/index.d.ts +2 -1
- package/dist/backend/backend/src/services/memory/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/index.js +1 -0
- package/dist/backend/backend/src/services/memory/index.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +43 -0
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +96 -0
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/user-profile.service.d.ts +77 -0
- package/dist/backend/backend/src/services/memory/user-profile.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/user-profile.service.js +171 -0
- package/dist/backend/backend/src/services/memory/user-profile.service.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +8 -3
- 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 +41 -16
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +58 -2
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.js +189 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts +4 -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 +36 -14
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.js +12 -0
- package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +14 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/memory.types.d.ts +53 -0
- package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/memory.types.js.map +1 -1
- package/dist/backend/backend/src/types/task-tracking.types.d.ts +24 -1
- package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +1 -49
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +0 -49
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +157 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +37 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +22 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.js +103 -6
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/goal-tracking.service.d.ts +239 -0
- package/dist/cli/backend/src/services/memory/goal-tracking.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/goal-tracking.service.js +353 -0
- package/dist/cli/backend/src/services/memory/goal-tracking.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +43 -0
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +96 -0
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +171 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.js +725 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -0
- package/dist/cli/backend/src/types/memory.types.d.ts +53 -0
- package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/memory.types.js.map +1 -1
- package/dist/cli/backend/src/types/task-tracking.types.d.ts +206 -0
- package/dist/cli/backend/src/types/task-tracking.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/task-tracking.types.js +5 -0
- package/dist/cli/backend/src/types/task-tracking.types.js.map +1 -0
- package/frontend/dist/assets/index-512efc8e.js +4921 -0
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/frontend/dist/assets/index-27a2c65e.js +0 -5215
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared User Profile Service
|
|
3
|
+
*
|
|
4
|
+
* Manages a single user profile stored at ~/.crewly/user-profile.json that
|
|
5
|
+
* ALL agents can read. The orchestrator is the primary writer, but any agent
|
|
6
|
+
* may update it. This eliminates per-agent preference fragmentation by
|
|
7
|
+
* providing a single source of truth for user preferences.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Read-through cache with configurable TTL (30s default)
|
|
11
|
+
* - Deep merge for preferences, append-only for notes and prohibitions
|
|
12
|
+
* - Prompt-injectable context generation for agent system prompts
|
|
13
|
+
*
|
|
14
|
+
* @module services/memory/user-profile.service
|
|
15
|
+
*/
|
|
16
|
+
import type { SharedUserProfile } from '../../types/memory.types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Service for managing the shared user profile.
|
|
19
|
+
* All agents read from this; orchestrator is the primary writer.
|
|
20
|
+
* Stored at ~/.crewly/user-profile.json
|
|
21
|
+
*/
|
|
22
|
+
export declare class UserProfileService {
|
|
23
|
+
private static instance;
|
|
24
|
+
private logger;
|
|
25
|
+
private profilePath;
|
|
26
|
+
private cache;
|
|
27
|
+
private cacheTime;
|
|
28
|
+
/** Cache time-to-live in milliseconds */
|
|
29
|
+
static CACHE_TTL_MS: number;
|
|
30
|
+
/**
|
|
31
|
+
* Create a new UserProfileService instance.
|
|
32
|
+
*
|
|
33
|
+
* @param crewlyHome - Override for the user home directory (defaults to $HOME)
|
|
34
|
+
*/
|
|
35
|
+
constructor(crewlyHome?: string);
|
|
36
|
+
/**
|
|
37
|
+
* Get or create the singleton instance.
|
|
38
|
+
*
|
|
39
|
+
* @param crewlyHome - Override for the user home directory
|
|
40
|
+
* @returns The singleton UserProfileService instance
|
|
41
|
+
*/
|
|
42
|
+
static getInstance(crewlyHome?: string): UserProfileService;
|
|
43
|
+
/**
|
|
44
|
+
* Clear the singleton instance. Used for testing.
|
|
45
|
+
*/
|
|
46
|
+
static clearInstance(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get the current user profile. Returns empty profile if none exists.
|
|
49
|
+
* Results are cached for CACHE_TTL_MS milliseconds.
|
|
50
|
+
*
|
|
51
|
+
* @returns The current shared user profile, or an empty object if not yet created
|
|
52
|
+
*/
|
|
53
|
+
getProfile(): Promise<SharedUserProfile>;
|
|
54
|
+
/**
|
|
55
|
+
* Update the user profile with partial updates (deep merge).
|
|
56
|
+
*
|
|
57
|
+
* Merge strategy:
|
|
58
|
+
* - Top-level scalar fields are overwritten
|
|
59
|
+
* - `preferences` object is shallow-merged (existing keys preserved, new keys added)
|
|
60
|
+
* - `notes` array is appended (duplicates filtered)
|
|
61
|
+
* - `prohibitions` array is appended (deduplicated via Set)
|
|
62
|
+
* - `updatedAt` and `updatedBy` are always set
|
|
63
|
+
*
|
|
64
|
+
* @param updates - Partial profile fields to merge
|
|
65
|
+
* @param updatedBy - Identifier of who is updating (agentId or 'user')
|
|
66
|
+
* @returns The merged profile after saving
|
|
67
|
+
*/
|
|
68
|
+
updateProfile(updates: Partial<SharedUserProfile>, updatedBy: string): Promise<SharedUserProfile>;
|
|
69
|
+
/**
|
|
70
|
+
* Generate a formatted markdown string for prompt injection.
|
|
71
|
+
* Returns null if the profile is empty or contains only metadata fields.
|
|
72
|
+
*
|
|
73
|
+
* @returns Formatted markdown string with user profile context, or null if empty
|
|
74
|
+
*/
|
|
75
|
+
generateProfileContext(): Promise<string | null>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=user-profile.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-profile.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/user-profile.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmC;IAC1D,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAK;IAEtB,yCAAyC;IACzC,MAAM,CAAC,YAAY,SAAS;IAE5B;;;;OAIG;gBACS,UAAU,CAAC,EAAE,MAAM;IAM/B;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAO3D;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAmB9C;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqCvG;;;;;OAKG;IACG,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA6BvD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared User Profile Service
|
|
3
|
+
*
|
|
4
|
+
* Manages a single user profile stored at ~/.crewly/user-profile.json that
|
|
5
|
+
* ALL agents can read. The orchestrator is the primary writer, but any agent
|
|
6
|
+
* may update it. This eliminates per-agent preference fragmentation by
|
|
7
|
+
* providing a single source of truth for user preferences.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Read-through cache with configurable TTL (30s default)
|
|
11
|
+
* - Deep merge for preferences, append-only for notes and prohibitions
|
|
12
|
+
* - Prompt-injectable context generation for agent system prompts
|
|
13
|
+
*
|
|
14
|
+
* @module services/memory/user-profile.service
|
|
15
|
+
*/
|
|
16
|
+
import * as fs from 'fs';
|
|
17
|
+
import * as path from 'path';
|
|
18
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
19
|
+
/**
|
|
20
|
+
* Service for managing the shared user profile.
|
|
21
|
+
* All agents read from this; orchestrator is the primary writer.
|
|
22
|
+
* Stored at ~/.crewly/user-profile.json
|
|
23
|
+
*/
|
|
24
|
+
export class UserProfileService {
|
|
25
|
+
static instance = null;
|
|
26
|
+
logger;
|
|
27
|
+
profilePath;
|
|
28
|
+
cache = null;
|
|
29
|
+
cacheTime = 0;
|
|
30
|
+
/** Cache time-to-live in milliseconds */
|
|
31
|
+
static CACHE_TTL_MS = 30000;
|
|
32
|
+
/**
|
|
33
|
+
* Create a new UserProfileService instance.
|
|
34
|
+
*
|
|
35
|
+
* @param crewlyHome - Override for the user home directory (defaults to $HOME)
|
|
36
|
+
*/
|
|
37
|
+
constructor(crewlyHome) {
|
|
38
|
+
this.logger = LoggerService.getInstance().createComponentLogger('UserProfileService');
|
|
39
|
+
const home = crewlyHome || process.env.HOME || process.env.USERPROFILE || '/tmp';
|
|
40
|
+
this.profilePath = path.join(home, '.crewly', 'user-profile.json');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get or create the singleton instance.
|
|
44
|
+
*
|
|
45
|
+
* @param crewlyHome - Override for the user home directory
|
|
46
|
+
* @returns The singleton UserProfileService instance
|
|
47
|
+
*/
|
|
48
|
+
static getInstance(crewlyHome) {
|
|
49
|
+
if (!UserProfileService.instance) {
|
|
50
|
+
UserProfileService.instance = new UserProfileService(crewlyHome);
|
|
51
|
+
}
|
|
52
|
+
return UserProfileService.instance;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Clear the singleton instance. Used for testing.
|
|
56
|
+
*/
|
|
57
|
+
static clearInstance() {
|
|
58
|
+
UserProfileService.instance = null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get the current user profile. Returns empty profile if none exists.
|
|
62
|
+
* Results are cached for CACHE_TTL_MS milliseconds.
|
|
63
|
+
*
|
|
64
|
+
* @returns The current shared user profile, or an empty object if not yet created
|
|
65
|
+
*/
|
|
66
|
+
async getProfile() {
|
|
67
|
+
if (this.cache && Date.now() - this.cacheTime < UserProfileService.CACHE_TTL_MS) {
|
|
68
|
+
return this.cache;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
if (fs.existsSync(this.profilePath)) {
|
|
72
|
+
const raw = fs.readFileSync(this.profilePath, 'utf-8');
|
|
73
|
+
this.cache = JSON.parse(raw);
|
|
74
|
+
this.cacheTime = Date.now();
|
|
75
|
+
return this.cache;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
this.logger.warn('Failed to read user profile', {
|
|
80
|
+
error: err instanceof Error ? err.message : String(err),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return {};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Update the user profile with partial updates (deep merge).
|
|
87
|
+
*
|
|
88
|
+
* Merge strategy:
|
|
89
|
+
* - Top-level scalar fields are overwritten
|
|
90
|
+
* - `preferences` object is shallow-merged (existing keys preserved, new keys added)
|
|
91
|
+
* - `notes` array is appended (duplicates filtered)
|
|
92
|
+
* - `prohibitions` array is appended (deduplicated via Set)
|
|
93
|
+
* - `updatedAt` and `updatedBy` are always set
|
|
94
|
+
*
|
|
95
|
+
* @param updates - Partial profile fields to merge
|
|
96
|
+
* @param updatedBy - Identifier of who is updating (agentId or 'user')
|
|
97
|
+
* @returns The merged profile after saving
|
|
98
|
+
*/
|
|
99
|
+
async updateProfile(updates, updatedBy) {
|
|
100
|
+
const current = await this.getProfile();
|
|
101
|
+
const merged = {
|
|
102
|
+
...current,
|
|
103
|
+
...updates,
|
|
104
|
+
updatedAt: new Date().toISOString(),
|
|
105
|
+
updatedBy,
|
|
106
|
+
};
|
|
107
|
+
// Deep merge preferences
|
|
108
|
+
if (updates.preferences && current.preferences) {
|
|
109
|
+
merged.preferences = { ...current.preferences, ...updates.preferences };
|
|
110
|
+
}
|
|
111
|
+
// Append notes rather than replace
|
|
112
|
+
if (updates.notes && current.notes) {
|
|
113
|
+
merged.notes = [...current.notes, ...updates.notes.filter(n => !current.notes.includes(n))];
|
|
114
|
+
}
|
|
115
|
+
// Append prohibitions rather than replace
|
|
116
|
+
if (updates.prohibitions && current.prohibitions) {
|
|
117
|
+
merged.prohibitions = [...new Set([...current.prohibitions, ...updates.prohibitions])];
|
|
118
|
+
}
|
|
119
|
+
// Ensure directory exists
|
|
120
|
+
const dir = path.dirname(this.profilePath);
|
|
121
|
+
if (!fs.existsSync(dir)) {
|
|
122
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
123
|
+
}
|
|
124
|
+
fs.writeFileSync(this.profilePath, JSON.stringify(merged, null, 2), 'utf-8');
|
|
125
|
+
this.cache = merged;
|
|
126
|
+
this.cacheTime = Date.now();
|
|
127
|
+
this.logger.info('User profile updated', { updatedBy, fields: Object.keys(updates) });
|
|
128
|
+
return merged;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate a formatted markdown string for prompt injection.
|
|
132
|
+
* Returns null if the profile is empty or contains only metadata fields.
|
|
133
|
+
*
|
|
134
|
+
* @returns Formatted markdown string with user profile context, or null if empty
|
|
135
|
+
*/
|
|
136
|
+
async generateProfileContext() {
|
|
137
|
+
const profile = await this.getProfile();
|
|
138
|
+
if (!profile || Object.keys(profile).filter(k => k !== 'updatedAt' && k !== 'updatedBy').length === 0) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const lines = ['## Shared User Profile'];
|
|
142
|
+
if (profile.language)
|
|
143
|
+
lines.push(`- **Language:** ${profile.language}`);
|
|
144
|
+
if (profile.reportingStyle)
|
|
145
|
+
lines.push(`- **Reporting Style:** ${profile.reportingStyle}`);
|
|
146
|
+
if (profile.riskTolerance)
|
|
147
|
+
lines.push(`- **Risk Tolerance:** ${profile.riskTolerance}`);
|
|
148
|
+
if (profile.timezone)
|
|
149
|
+
lines.push(`- **Timezone:** ${profile.timezone}`);
|
|
150
|
+
if (profile.domainContext)
|
|
151
|
+
lines.push(`- **Domain:** ${profile.domainContext}`);
|
|
152
|
+
if (profile.prohibitions?.length) {
|
|
153
|
+
lines.push('- **Do NOT:**');
|
|
154
|
+
for (const p of profile.prohibitions)
|
|
155
|
+
lines.push(` - ${p}`);
|
|
156
|
+
}
|
|
157
|
+
if (profile.preferences && Object.keys(profile.preferences).length > 0) {
|
|
158
|
+
lines.push('- **Preferences:**');
|
|
159
|
+
for (const [k, v] of Object.entries(profile.preferences)) {
|
|
160
|
+
lines.push(` - ${k}: ${v}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (profile.notes?.length) {
|
|
164
|
+
lines.push('- **Notes:**');
|
|
165
|
+
for (const n of profile.notes)
|
|
166
|
+
lines.push(` - ${n}`);
|
|
167
|
+
}
|
|
168
|
+
return lines.join('\n');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=user-profile.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-profile.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/user-profile.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,12 +167,17 @@ export declare class QueueProcessorService extends EventEmitter {
|
|
|
167
167
|
/**
|
|
168
168
|
* Check if a pending-ack message's fingerprint appears in PTY output.
|
|
169
169
|
*
|
|
170
|
-
* Matches the full [CHAT:conversationId] or [GCHAT:conversationId]
|
|
171
|
-
*
|
|
172
|
-
*
|
|
170
|
+
* Matches the full [CHAT:conversationId:fingerprint] or [GCHAT:conversationId:fingerprint]
|
|
171
|
+
* prefix. The fingerprint (last 8 chars of messageId) distinguishes between different
|
|
172
|
+
* messages in the same conversation/thread, preventing false-positive ack confirmations
|
|
173
|
+
* when a user sends multiple messages in quick succession.
|
|
174
|
+
*
|
|
175
|
+
* Falls back to conversationId-only matching for messages delivered before the
|
|
176
|
+
* fingerprint format was introduced (backward compat).
|
|
173
177
|
*
|
|
174
178
|
* @param output - Captured PTY output string
|
|
175
179
|
* @param conversationId - The conversation ID to search for
|
|
180
|
+
* @param messageId - The unique message ID (last 8 chars used as fingerprint)
|
|
176
181
|
* @returns true if the message fingerprint was found
|
|
177
182
|
*/
|
|
178
183
|
private isPendingAckInOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-processor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAoBjF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,eAAe,EAAE,OAAO,gCAAgC,EAAE,aAAa,CAAC;CACzE;AAED,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA8C;IACxE,gFAAgF;IAChF,OAAO,CAAC,oBAAoB,CAAS;IAErC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,wDAAwD;IACxD,OAAO,CAAC,iBAAiB,CAA+C;IAExE,8DAA8D;IAC9D,OAAO,CAAC,sBAAsB,CAA+C;IAE7E;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB,CAA2C;IAErE,yEAAyE;IACzE,OAAO,CAAC,iBAAiB,CAAyC;gBAGhE,YAAY,EAAE,mBAAmB,EACjC,cAAc,EAAE,qBAAqB,EACrC,wBAAwB,EAAE,wBAAwB;IASpD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAI7D;;;OAGG;IACH,KAAK,IAAI,IAAI;IAeb;;OAEG;IACH,IAAI,IAAI,IAAI;IAmBZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAIvB;IAEF;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;OAGG;YACW,WAAW;
|
|
1
|
+
{"version":3,"file":"queue-processor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAoBjF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,eAAe,EAAE,OAAO,gCAAgC,EAAE,aAAa,CAAC;CACzE;AAED,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA8C;IACxE,gFAAgF;IAChF,OAAO,CAAC,oBAAoB,CAAS;IAErC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,wDAAwD;IACxD,OAAO,CAAC,iBAAiB,CAA+C;IAExE,8DAA8D;IAC9D,OAAO,CAAC,sBAAsB,CAA+C;IAE7E;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB,CAA2C;IAErE,yEAAyE;IACzE,OAAO,CAAC,iBAAiB,CAAyC;gBAGhE,YAAY,EAAE,mBAAmB,EACjC,cAAc,EAAE,qBAAqB,EACrC,wBAAwB,EAAE,wBAAwB;IASpD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAI7D;;;OAGG;IACH,KAAK,IAAI,IAAI;IAeb;;OAEG;IACH,IAAI,IAAI,IAAI;IAmBZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAIvB;IAEF;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;OAGG;YACW,WAAW;IAkczB;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;OAIG;IACH,wBAAwB,IAAI,MAAM;IAIlC;;;;OAIG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;;;;;;;;;OAaG;YACW,gBAAgB;CA0G/B"}
|
|
@@ -348,8 +348,13 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
348
348
|
});
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
|
-
// Format message: system events use raw content, chat uses [CHAT:id] or [GCHAT:id] prefix
|
|
351
|
+
// Format message: system events use raw content, chat uses [CHAT:id] or [GCHAT:id] prefix.
|
|
352
|
+
// A short message fingerprint (last 8 chars of messageId) is embedded in the prefix
|
|
353
|
+
// so pending-ack verification can distinguish between different messages in the same
|
|
354
|
+
// conversation/thread. Without this, multiple messages sharing the same conversationId
|
|
355
|
+
// cause false-positive ack confirmations.
|
|
352
356
|
let deliveryContent;
|
|
357
|
+
const msgFingerprint = message.id.slice(-8);
|
|
353
358
|
if (isSystemEvent) {
|
|
354
359
|
const allContents = [message.content, ...batchedMessages.map(m => m.content)];
|
|
355
360
|
deliveryContent = allContents.join('\n');
|
|
@@ -358,10 +363,10 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
358
363
|
const prefix = CHAT_ROUTING_CONSTANTS.GOOGLE_CHAT_PREFIX;
|
|
359
364
|
const threadId = message.sourceMetadata?.threadId;
|
|
360
365
|
const threadSuffix = threadId ? ` thread=${threadId}` : '';
|
|
361
|
-
deliveryContent = `[${prefix}:${message.conversationId}${threadSuffix}] ${message.content}`;
|
|
366
|
+
deliveryContent = `[${prefix}:${message.conversationId}:${msgFingerprint}${threadSuffix}] ${message.content}`;
|
|
362
367
|
}
|
|
363
368
|
else {
|
|
364
|
-
deliveryContent = `[${CHAT_ROUTING_CONSTANTS.MESSAGE_PREFIX}:${message.conversationId}] ${message.content}`;
|
|
369
|
+
deliveryContent = `[${CHAT_ROUTING_CONSTANTS.MESSAGE_PREFIX}:${message.conversationId}:${msgFingerprint}] ${message.content}`;
|
|
365
370
|
}
|
|
366
371
|
// Inject [SLACK:channelId:threadTs] marker for Slack-sourced messages so
|
|
367
372
|
// crewly-agent runtimes can auto-fill reply_slack with the correct thread.
|
|
@@ -675,19 +680,39 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
675
680
|
/**
|
|
676
681
|
* Check if a pending-ack message's fingerprint appears in PTY output.
|
|
677
682
|
*
|
|
678
|
-
* Matches the full [CHAT:conversationId] or [GCHAT:conversationId]
|
|
679
|
-
*
|
|
680
|
-
*
|
|
683
|
+
* Matches the full [CHAT:conversationId:fingerprint] or [GCHAT:conversationId:fingerprint]
|
|
684
|
+
* prefix. The fingerprint (last 8 chars of messageId) distinguishes between different
|
|
685
|
+
* messages in the same conversation/thread, preventing false-positive ack confirmations
|
|
686
|
+
* when a user sends multiple messages in quick succession.
|
|
687
|
+
*
|
|
688
|
+
* Falls back to conversationId-only matching for messages delivered before the
|
|
689
|
+
* fingerprint format was introduced (backward compat).
|
|
681
690
|
*
|
|
682
691
|
* @param output - Captured PTY output string
|
|
683
692
|
* @param conversationId - The conversation ID to search for
|
|
693
|
+
* @param messageId - The unique message ID (last 8 chars used as fingerprint)
|
|
684
694
|
* @returns true if the message fingerprint was found
|
|
685
695
|
*/
|
|
686
|
-
isPendingAckInOutput(output, conversationId) {
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
696
|
+
isPendingAckInOutput(output, conversationId, messageId) {
|
|
697
|
+
// Primary check: match with message fingerprint for precise per-message ack
|
|
698
|
+
if (messageId) {
|
|
699
|
+
const fingerprint = messageId.slice(-8);
|
|
700
|
+
if (output.includes(`[CHAT:${conversationId}:${fingerprint}]`)
|
|
701
|
+
|| output.includes(`[GCHAT:${conversationId}:${fingerprint}]`)
|
|
702
|
+
|| output.includes(`[CHAT:${conversationId}:${fingerprint} `)
|
|
703
|
+
|| output.includes(`[GCHAT:${conversationId}:${fingerprint} `)) {
|
|
704
|
+
return true;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
// Fallback: conversationId-only matching for backward compatibility
|
|
708
|
+
// (messages delivered before fingerprint format was added)
|
|
709
|
+
if (!messageId) {
|
|
710
|
+
return output.includes(`[CHAT:${conversationId}]`)
|
|
711
|
+
|| output.includes(`[GCHAT:${conversationId}]`)
|
|
712
|
+
|| output.includes(`[CHAT:${conversationId} `)
|
|
713
|
+
|| output.includes(`[GCHAT:${conversationId} `);
|
|
714
|
+
}
|
|
715
|
+
return false;
|
|
691
716
|
}
|
|
692
717
|
/**
|
|
693
718
|
* #239: Flush pending-ack messages by verifying them against PTY output.
|
|
@@ -728,10 +753,10 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
728
753
|
this.pendingAckMessages.delete(entry.messageId);
|
|
729
754
|
continue;
|
|
730
755
|
}
|
|
731
|
-
// Check if the delivery prefix [CHAT:conversationId]
|
|
732
|
-
//
|
|
733
|
-
//
|
|
734
|
-
const wasProcessed = this.isPendingAckInOutput(ptyOutput, entry.conversationId);
|
|
756
|
+
// Check if the delivery prefix [CHAT:conversationId:fingerprint] appears in
|
|
757
|
+
// the PTY output. The fingerprint (from messageId) ensures we match THIS
|
|
758
|
+
// specific message, not a previous message in the same conversation thread.
|
|
759
|
+
const wasProcessed = this.isPendingAckInOutput(ptyOutput, entry.conversationId, entry.messageId);
|
|
735
760
|
if (wasProcessed) {
|
|
736
761
|
this.logger.info('Pending-ack message confirmed in PTY output', {
|
|
737
762
|
messageId: entry.messageId,
|
|
@@ -755,7 +780,7 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
755
780
|
}
|
|
756
781
|
// Redeliver: double-check PTY output right before sending to minimize duplicates
|
|
757
782
|
const freshOutput = await this.agentRegistrationService.captureAgentOutput(sessionName, scanLines);
|
|
758
|
-
if (this.isPendingAckInOutput(freshOutput, entry.conversationId)) {
|
|
783
|
+
if (this.isPendingAckInOutput(freshOutput, entry.conversationId, entry.messageId)) {
|
|
759
784
|
this.logger.info('Pending-ack message found on re-check, marking completed', {
|
|
760
785
|
messageId: entry.messageId,
|
|
761
786
|
conversationId: entry.conversationId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-processor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAmB,MAAM,2BAA2B,CAAC;AAI3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EACb,gCAAgC,EAChC,eAAe,GAGhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D;;;;;;;;;;;;;;GAcG;AACH,sFAAsF;AACtF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,YAAY;AAyB1C,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC7C,MAAM,CAAkB;IACxB,YAAY,CAAsB;IAClC,cAAc,CAAwB;IACtC,wBAAwB,CAA2B;IACnD,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAG,KAAK,CAAC;IACnB,kBAAkB,GAAyC,IAAI,CAAC;IACxE,gFAAgF;IACxE,oBAAoB,GAAG,KAAK,CAAC;IAErC;;;;;OAKG;IACK,mBAAmB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE7D,wDAAwD;IAChD,iBAAiB,GAA0C,IAAI,CAAC;IAExE,8DAA8D;IACtD,sBAAsB,GAA0C,IAAI,CAAC;IAE7E;;;;;;OAMG;IACK,kBAAkB,GAAiC,IAAI,GAAG,EAAE,CAAC;IAErE,yEAAyE;IACjE,iBAAiB,GAAoC,IAAI,CAAC;IAElE,YACE,YAAiC,EACjC,cAAqC,EACrC,wBAAkD;QAElD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,OAAiC;QACpD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAE5C,4CAA4C;QAC5C,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,iBAAiB,GAAG,GAAS,EAAE;QACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF;;;;OAIG;IACK,mBAAmB,CAAC,OAAe;QACzC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBAClD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,+EAA+E;QAC/E,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACpF,MAAM,WAAW,GAAG,gBAAgB,EAAE,WAAW,CAAC;QAClD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE;gBAC3E,WAAW,EAAE,WAAW,IAAI,SAAS;aACtC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,iEAAiE;YACjE,kEAAkE;YAClE,qEAAqE;YACrE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,WAAsC,CAAC;gBACnF,MAAM,EAAE,GAAgB,iBAAiB,IAAI,aAAa,CAAC,WAAW,CAAC;gBACvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CACnE,yBAAyB,EACzB,wBAAwB,CAAC,oBAAoB,EAC7C,EAAE,CACH,CAAC;gBACF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,yDAAyD;gBACzD,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,qBAAqB,GAAG,gCAAgC,CAAC,8BAA8B,GAAG,CAAC,CAAC;QAClG,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACzC,yBAAyB,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;QACvF,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACrC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,YAAY,CAAC;YAEtE,2EAA2E;YAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;gBAC7C,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,8EAA8E;YAC9E,sEAAsE;YACtE,oEAAoE;YACpE,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,WAAsC,CAAC;YACnF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mEAAmE,EAAE;oBACpF,SAAS,EAAE,OAAO,CAAC,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,WAAW,GAAgB,iBAAiB,IAAI,aAAa,CAAC,WAAW,CAAC;YAEhF,wEAAwE;YACxE,0EAA0E;YAC1E,0EAA0E;YAC1E,+EAA+E;YAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,WAAW,CAAC;YAC/M,MAAM,YAAY,GAAG,aAAa;gBAChC,CAAC,CAAC,wBAAwB,CAAC,oBAAoB;gBAC/C,CAAC,CAAC,aAAa;oBACb,CAAC,CAAC,wBAAwB,CAAC,oBAAoB;oBAC/C,CAAC,CAAC,wBAAwB,CAAC,mBAAmB,CAAC;YAEnD,6EAA6E;YAC7E,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,yBAAyB,CAAC;YAE1E,oEAAoE;YACpE,kEAAkE;YAClE,4EAA4E;YAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CACnE,cAAc,EACd,YAAY,EACZ,WAAW,CACZ,CAAC;YAEF,oEAAoE;YACpE,sEAAsE;YACtE,2EAA2E;YAC3E,IAAI,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAC3D,CAAC;YAED,yEAAyE;YACzE,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE;oBAC7E,SAAS,EAAE,OAAO,CAAC,EAAE;iBACtB,CAAC,CAAC;gBACH,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,sEAAsE;YACtE,2DAA2D;YAC3D,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,yEAAyE;gBACzE,yEAAyE;gBACzE,8EAA8E;gBAC9E,gFAAgF;gBAChF,MAAM,kBAAkB,GACtB,CAAC,aAAa,IAAI,wBAAwB,CAAC,0BAA0B,CAAC;oBACtE,CAAC,aAAa,IAAI,wBAAwB,CAAC,0BAA0B,CAAC,CAAC;gBACzE,IAAI,kBAAkB,EAAE,CAAC;oBACvB,iBAAiB,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE;wBAC/E,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,SAAS,EAAE,YAAY;wBACvB,aAAa;wBACb,aAAa;qBACd,CAAC,CAAC;oBACH,wEAAwE;oBACxE,qEAAqE;oBACrE,wDAAwD;oBACxD,qDAAqD;oBACrD,uEAAuE;gBACzE,CAAC;qBAAM,CAAC;oBACN,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;oBAC/C,MAAM,UAAU,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;oBAE/D,IAAI,cAAc,IAAI,UAAU,EAAE,CAAC;wBACjC,sDAAsD;wBACtD,MAAM,QAAQ,GAAG,oCAAoC,cAAc,cAAc,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,wBAAwB,CAAC,mBAAmB,GAAG,KAAK,CAAC,0DAA0D,CAAC;wBAC7N,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE;4BAC3E,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,UAAU,EAAE,cAAc;4BAC1B,UAAU;yBACX,CAAC,CAAC;wBAEH,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBACnD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAElD,8BAA8B;wBAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,YAAY,EAAE,CAAC;4BACpD,IAAI,CAAC;gCACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;gCACrC,MAAM,WAAW,CAAC,gBAAgB,CAChC,OAAO,CAAC,cAAc,EACtB,4BAA4B,QAAQ,0BAA0B,CAC/D,CAAC;4BACJ,CAAC;4BAAC,OAAO,MAAM,EAAE,CAAC;gCAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;oCAClE,KAAK,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;iCACjE,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBACD,aAAa,CAAC,iBAAiB,CAAC,CAAC;wBACjC,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;wBAChE,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,SAAS,EAAE,YAAY;wBACvB,UAAU,EAAE,cAAc,GAAG,CAAC;wBAC9B,UAAU;qBACX,CAAC,CAAC;oBAEH,2EAA2E;oBAC3E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAEnC,yEAAyE;oBACzE,wEAAwE;oBACxE,iCAAiC;oBACjC,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;oBAC7E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,aAAa,CAAC,iBAAiB,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,gEAAgE;YAChE,IAAI,eAAe,GAA6D,EAAE,CAAC;YACnF,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,aAAa,GAAG,uBAAuB,CAAC,sBAAsB,GAAG,CAAC,CAAC;gBACzE,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;gBAC3E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;wBACrD,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM;qBACtC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,0FAA0F;YAC1F,IAAI,eAAuB,CAAC;YAC5B,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9E,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,WAAW,EAAE,CAAC;gBAC1D,MAAM,MAAM,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,QAA8B,CAAC;gBACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,eAAe,GAAG,IAAI,MAAM,IAAI,OAAO,CAAC,cAAc,GAAG,YAAY,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,IAAI,sBAAsB,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9G,CAAC;YAED,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,yEAAyE;YACzE,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC;gBAClF,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,SAAmB,CAAC;gBAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,QAA8B,CAAC;gBACvE,MAAM,WAAW,GAAG,QAAQ;oBAC1B,CAAC,CAAC,UAAU,SAAS,IAAI,QAAQ,GAAG;oBACpC,CAAC,CAAC,UAAU,SAAS,GAAG,CAAC;gBAC3B,eAAe,GAAG,GAAG,eAAe,IAAI,WAAW,EAAE,CAAC;YACxD,CAAC;YAED,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,yBAAyB,CAAC;YAEzE,oDAAoD;YACpD,IAAI,mBAAmB,GAAG,WAAW,CAAC;YACtC,IAAI,aAAa,KAAK,yBAAyB,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;oBAC/F,IAAI,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;wBACtC,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,WAA0B,CAAC;oBACvE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;gBAC7C,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,2EAA2E;YAC3E,gFAAgF;YAChF,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE;oBAC5E,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;iBACpC,CAAC,CAAC;gBAEH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACxD,CAAC;gBACD,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAC3E,aAAa,EACb,eAAe,EACf,mBAAmB,CACpB,CAAC;YAEF,8CAA8C;YAC9C,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE/C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,IAAI,2CAA2C,CAAC;gBAErF,2EAA2E;gBAC3E,yEAAyE;gBACzE,oDAAoD;gBACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACtD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;gBAE/C,IAAI,WAAW,IAAI,cAAc,GAAG,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;oBAChF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;wBACpE,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,UAAU,EAAE,cAAc,GAAG,CAAC;wBAC9B,UAAU,EAAE,uBAAuB,CAAC,mBAAmB;qBACxD,CAAC,CAAC;oBAEH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnC,kDAAkD;oBAClD,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;wBACzC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACxC,CAAC;oBAED,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;oBAC7E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,aAAa,CAAC,iBAAiB,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBAC1C,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,KAAK,EAAE,QAAQ;iBAChB,CAAC,CAAC;gBAEH,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACnD,8CAA8C;gBAC9C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAElD,uEAAuE;gBACvE,4DAA4D;gBAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;wBACrC,MAAM,WAAW,CAAC,gBAAgB,CAChC,OAAO,CAAC,cAAc,EACtB,8CAA8C,QAAQ,qBAAqB,CAC5E,CAAC;oBACJ,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;4BACjE,KAAK,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;yBACjE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,OAAO;YACT,CAAC;YAED,sEAAsE;YACtE,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBACrD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,SAA+B,CAAC;oBACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,QAA8B,CAAC;oBACvE,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC/F,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;wBACrD,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,mEAAmE;YACnE,gEAAgE;YAChE,qDAAqD;YACrD,IAAI,iBAAiB,IAAI,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;oBACtC,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,eAAe;oBACf,aAAa;oBACb,WAAW,EAAE,mBAAmB;oBAChC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;oBACvB,UAAU,EAAE,CAAC;oBACb,eAAe,EAAE,OAAO;iBACzB,CAAC,CAAC;gBAEH,+EAA+E;gBAC/E,6EAA6E;gBAC7E,mDAAmD;gBACnD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;oBACzE,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;iBAC9C,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,mEAAmE;gBACnE,yDAAyD;gBACzD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChD,0DAA0D;gBAC1D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACxD,CAAC;gBAED,8EAA8E;gBAC9E,qFAAqF;gBACrF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;oBACtD,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC1D,CAAC,CAAC;YACL,CAAC;YAED,0EAA0E;YAC1E,iEAAiE;YACjE,0EAA0E;YAC1E,8DAA8D;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CACnD,aAAa,EACb,wBAAwB,CAAC,mBAAmB,EAC5C,mBAAmB,CACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBAC5C,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE;gBACrD,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5C,qEAAqE;YACrE,wDAAwD;YACxD,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACnC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QACzC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvD,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QACtB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACK,sBAAsB;QAC5B,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACxC,MAAM,KAAK,GAAG,wBAAwB,CAAC,kBAAkB,IAAI,OAAO,CAAC;QACrE,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,MAAM,KAAK,GAAG,wBAAwB,CAAC,kBAAkB,IAAI,OAAO,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,sEAAsE,CAAC,CAAC;gBACzG,IAAI,CAAC,cAAc,CAAC,UAAU,CAC5B,KAAK,CAAC,eAAe,EACrB,mGAAmG,CACpG,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnC,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,oBAAoB,CAAC,MAAc,EAAE,cAAsB;QACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,cAAc,GAAG,CAAC;eAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAc,GAAG,CAAC;eAC5C,MAAM,CAAC,QAAQ,CAAC,SAAS,cAAc,GAAG,CAAC;eAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAc,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,WAAwB;QAC1E,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE/C,MAAM,SAAS,GAAG,wBAAwB,CAAC,sBAAsB,IAAI,GAAG,CAAC;QACzE,MAAM,UAAU,GAAG,wBAAwB,CAAC,uBAAuB,IAAI,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,wBAAwB,CAAC,kBAAkB,IAAI,OAAO,CAAC;QAErE,iDAAiD;QACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CACtE,WAAW,EACX,SAAS,CACV,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;QAEtE,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,sCAAsC;YACtC,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW;gBAAE,SAAS;YAElD,iCAAiC;YACjC,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;oBACvE,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,WAAW;iBAC/B,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,wDAAwD,CAAC,CAAC;gBACxG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,+EAA+E;YAC/E,+EAA+E;YAC/E,yEAAyE;YACzE,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;YAEhF,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;oBAC9D,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;iBACrC,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,gEAAgE;YAChE,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4EAA4E,EAAE;oBAC9F,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,KAAK,CAAC,SAAS,EACf,gEAAgE,KAAK,CAAC,UAAU,sBAAsB,CACvG,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,UAAU,CAC5B,KAAK,CAAC,eAAe,EACrB,2FAA2F,CAC5F,CAAC;gBACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,iFAAiF;YACjF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CACxE,WAAW,EACX,SAAS,CACV,CAAC;YACF,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,EAAE;oBAC3E,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;iBACrC,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,wBAAwB;YACxB,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE;gBACjF,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU;aACX,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAC7E,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,WAAW,CAClB,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;oBAC7D,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,gBAAgB,CAAC,KAAK;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,2EAA2E;YAC3E,mEAAmE;QACrE,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"queue-processor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { InProgressTask, TaskTrackingData, TaskFileInfo } from '../../types/task-tracking.types.js';
|
|
2
|
+
import { InProgressTask, InProgressTaskStatus, TaskTrackingData, TaskFileInfo } from '../../types/task-tracking.types.js';
|
|
3
|
+
import type { OrgRole } from '../ai/prompt-modules/prompt-module.interface.js';
|
|
3
4
|
export declare class TaskTrackingService extends EventEmitter {
|
|
4
5
|
private readonly taskTrackingPath;
|
|
5
6
|
private readonly logger;
|
|
@@ -24,7 +25,62 @@ export declare class TaskTrackingService extends EventEmitter {
|
|
|
24
25
|
loadTaskData(): Promise<TaskTrackingData>;
|
|
25
26
|
saveTaskData(data: TaskTrackingData): Promise<void>;
|
|
26
27
|
assignTask(projectId: string, teamId: string, taskFilePath: string, taskName: string, targetRole: string, teamMemberId: string, sessionName: string): Promise<InProgressTask>;
|
|
27
|
-
updateTaskStatus(taskId: string, status: InProgressTask['status'], blockReason?: string): Promise<void>;
|
|
28
|
+
updateTaskStatus(taskId: string, status: InProgressTask['status'], blockReason?: string, requestorOrgRole?: OrgRole): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Emit task workflow events that drive the action trigger chain.
|
|
31
|
+
* Only emits for transitions that require a different actor to wake up.
|
|
32
|
+
*
|
|
33
|
+
* @param task - The updated task
|
|
34
|
+
* @param fromStatus - Previous status
|
|
35
|
+
* @param toStatus - New status
|
|
36
|
+
* @param data - Current task tracking data (for team:all_tasks_done check)
|
|
37
|
+
*/
|
|
38
|
+
private emitTaskWorkflowEvent;
|
|
39
|
+
/**
|
|
40
|
+
* Accept a task — transitions from 'assigned' to 'accepted'.
|
|
41
|
+
* Records the agent's structured understanding of the task.
|
|
42
|
+
*
|
|
43
|
+
* @param taskId - Task ID to accept
|
|
44
|
+
* @param sessionName - Session name of the accepting agent (must match assignee)
|
|
45
|
+
* @param understanding - Agent's structured understanding of the task scope
|
|
46
|
+
* @returns The updated task
|
|
47
|
+
* @throws If task not found, not in 'assigned' status, or session doesn't match
|
|
48
|
+
*/
|
|
49
|
+
acceptTask(taskId: string, sessionName: string, understanding: string): Promise<InProgressTask>;
|
|
50
|
+
/**
|
|
51
|
+
* Request clarification on a task — transitions to 'needs_clarification'.
|
|
52
|
+
* Signals that the agent needs more info before starting work.
|
|
53
|
+
*
|
|
54
|
+
* @param taskId - Task ID to request clarification for
|
|
55
|
+
* @param sessionName - Session name of the requesting agent (must match assignee)
|
|
56
|
+
* @param question - What the agent needs clarified
|
|
57
|
+
* @returns The updated task
|
|
58
|
+
* @throws If task not found, not in valid status, or session doesn't match
|
|
59
|
+
*/
|
|
60
|
+
requestClarification(taskId: string, sessionName: string, question: string): Promise<InProgressTask>;
|
|
61
|
+
/**
|
|
62
|
+
* Save working notes for a task — persists agent's current working state
|
|
63
|
+
* across session restarts. Not long-term memory; cleared on task completion.
|
|
64
|
+
*
|
|
65
|
+
* @param taskId - Task ID
|
|
66
|
+
* @param sessionName - Session name (must match assignee)
|
|
67
|
+
* @param notes - Working notes content
|
|
68
|
+
* @throws If task not found or session doesn't match assignee
|
|
69
|
+
*/
|
|
70
|
+
updateWorkingNotes(taskId: string, sessionName: string, notes: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Validate that a status transition is allowed based on the Task State Ownership Matrix.
|
|
73
|
+
* Enforces who can write which status and which transitions are legal.
|
|
74
|
+
*
|
|
75
|
+
* @param currentStatus - Current task status
|
|
76
|
+
* @param newStatus - Requested new status
|
|
77
|
+
* @param requestorOrgRole - Organizational role of the requestor
|
|
78
|
+
* @returns Validation result with optional reason for rejection
|
|
79
|
+
*/
|
|
80
|
+
validateStatusTransition(currentStatus: InProgressTaskStatus, newStatus: InProgressTaskStatus, requestorOrgRole: OrgRole): {
|
|
81
|
+
valid: boolean;
|
|
82
|
+
reason?: string;
|
|
83
|
+
};
|
|
28
84
|
removeTask(taskId: string): Promise<void>;
|
|
29
85
|
addTaskToQueue(taskInfo: {
|
|
30
86
|
projectId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-tracking.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project/task-tracking.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"task-tracking.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project/task-tracking.service.ts"],"names":[],"mappings":"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"}
|