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.
Files changed (186) hide show
  1. package/config/domain-sops/EXAMPLE.sop.md +21 -0
  2. package/config/overlays/can-decide.md +5 -0
  3. package/config/overlays/can-delegate.md +5 -0
  4. package/config/overlays/can-user-reply.md +5 -0
  5. package/config/overlays/can-verify.md +5 -0
  6. package/config/risk-policies/EXAMPLE.policy.md +22 -0
  7. package/config/roles/developer/fragments/role-boundary.md +30 -0
  8. package/config/roles/orchestrator/fragments/role-boundary.md +25 -0
  9. package/config/roles/orchestrator/prompt.md +40 -6
  10. package/config/roles/team-leader/fragments/role-boundary.md +22 -0
  11. package/config/skills/agent/core/get-my-tasks/execute.sh +16 -0
  12. package/config/skills/agent/core/save-working-state/execute.sh +19 -0
  13. package/config/skills/agent/core/update-user-profile/execute.sh +13 -0
  14. package/dist/backend/backend/src/constants.d.ts +1 -49
  15. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  16. package/dist/backend/backend/src/constants.js +0 -49
  17. package/dist/backend/backend/src/constants.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +12 -16
  19. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  20. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +53 -88
  21. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  22. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +1 -2
  23. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/cloud/index.d.ts +0 -1
  25. package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/cloud/index.js +0 -1
  27. package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -1
  28. package/dist/backend/backend/src/controllers/memory/index.d.ts +1 -1
  29. package/dist/backend/backend/src/controllers/memory/index.d.ts.map +1 -1
  30. package/dist/backend/backend/src/controllers/memory/index.js +1 -1
  31. package/dist/backend/backend/src/controllers/memory/index.js.map +1 -1
  32. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts +35 -0
  33. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/memory/memory.controller.js +61 -1
  35. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  36. package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts +2 -0
  37. package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts.map +1 -1
  38. package/dist/backend/backend/src/controllers/memory/memory.routes.js +5 -1
  39. package/dist/backend/backend/src/controllers/memory/memory.routes.js.map +1 -1
  40. package/dist/backend/backend/src/controllers/system/cron-task.controller.d.ts +1 -0
  41. package/dist/backend/backend/src/controllers/system/cron-task.controller.d.ts.map +1 -1
  42. package/dist/backend/backend/src/controllers/system/cron-task.controller.js +12 -6
  43. package/dist/backend/backend/src/controllers/system/cron-task.controller.js.map +1 -1
  44. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +24 -0
  45. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  46. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +107 -0
  47. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  48. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  49. package/dist/backend/backend/src/controllers/team/team.controller.js +49 -0
  50. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  51. package/dist/backend/backend/src/index.d.ts.map +1 -1
  52. package/dist/backend/backend/src/index.js +24 -0
  53. package/dist/backend/backend/src/index.js.map +1 -1
  54. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  55. package/dist/backend/backend/src/routes/api.routes.js +1 -3
  56. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  57. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  58. package/dist/backend/backend/src/routes/modules/task-management.routes.js +5 -0
  59. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  60. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +24 -0
  61. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/agent/agent-registration.service.js +96 -2
  63. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  64. package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts +33 -0
  65. package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts.map +1 -0
  66. package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.js +70 -0
  67. package/dist/backend/backend/src/services/ai/prompt-modules/capability-overlay.module.js.map +1 -0
  68. package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts +35 -0
  69. package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.js +50 -0
  71. package/dist/backend/backend/src/services/ai/prompt-modules/domain-sop.module.js.map +1 -0
  72. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
  73. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  74. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
  75. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  76. package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts +46 -0
  77. package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts.map +1 -0
  78. package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.js +44 -0
  79. package/dist/backend/backend/src/services/ai/prompt-modules/markdown-file-module.js.map +1 -0
  80. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +13 -3
  82. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js +2 -11
  85. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  86. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +10 -2
  88. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  89. package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts +35 -0
  90. package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts.map +1 -0
  91. package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.js +50 -0
  92. package/dist/backend/backend/src/services/ai/prompt-modules/risk-policy.module.js.map +1 -0
  93. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +67 -0
  94. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -0
  95. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +172 -0
  96. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -0
  97. package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts +5 -1
  98. package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts.map +1 -1
  99. package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.js +18 -2
  100. package/dist/backend/backend/src/services/ai/prompt-modules/user-profile-reference.module.js.map +1 -1
  101. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +1 -1
  102. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  103. package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts +0 -1
  104. package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts.map +1 -1
  105. package/dist/backend/backend/src/services/cloud/cloud-initializer.js +0 -9
  106. package/dist/backend/backend/src/services/cloud/cloud-initializer.js.map +1 -1
  107. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  108. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +1 -0
  110. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  111. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +22 -0
  112. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/memory/agent-memory.service.js +103 -6
  114. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
  115. package/dist/backend/backend/src/services/memory/index.d.ts +2 -1
  116. package/dist/backend/backend/src/services/memory/index.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/memory/index.js +1 -0
  118. package/dist/backend/backend/src/services/memory/index.js.map +1 -1
  119. package/dist/backend/backend/src/services/memory/memory.service.d.ts +43 -0
  120. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/memory/memory.service.js +96 -0
  122. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  123. package/dist/backend/backend/src/services/memory/user-profile.service.d.ts +77 -0
  124. package/dist/backend/backend/src/services/memory/user-profile.service.d.ts.map +1 -0
  125. package/dist/backend/backend/src/services/memory/user-profile.service.js +171 -0
  126. package/dist/backend/backend/src/services/memory/user-profile.service.js.map +1 -0
  127. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +8 -3
  128. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  129. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +41 -16
  130. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  131. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +58 -2
  132. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  133. package/dist/backend/backend/src/services/project/task-tracking.service.js +189 -1
  134. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  135. package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts +4 -1
  136. package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -1
  137. package/dist/backend/backend/src/services/slack/cross-machine-message.service.js +36 -14
  138. package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
  139. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  140. package/dist/backend/backend/src/services/workflow/cron-task.service.js +12 -0
  141. package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
  142. package/dist/backend/backend/src/types/event-bus.types.d.ts +1 -1
  143. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  144. package/dist/backend/backend/src/types/event-bus.types.js +14 -0
  145. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  146. package/dist/backend/backend/src/types/memory.types.d.ts +53 -0
  147. package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
  148. package/dist/backend/backend/src/types/memory.types.js.map +1 -1
  149. package/dist/backend/backend/src/types/task-tracking.types.d.ts +24 -1
  150. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  151. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  152. package/dist/cli/backend/src/constants.d.ts +1 -49
  153. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  154. package/dist/cli/backend/src/constants.js +0 -49
  155. package/dist/cli/backend/src/constants.js.map +1 -1
  156. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +157 -0
  157. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -0
  158. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +37 -0
  159. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -0
  160. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +22 -0
  161. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  162. package/dist/cli/backend/src/services/memory/agent-memory.service.js +103 -6
  163. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
  164. package/dist/cli/backend/src/services/memory/goal-tracking.service.d.ts +239 -0
  165. package/dist/cli/backend/src/services/memory/goal-tracking.service.d.ts.map +1 -0
  166. package/dist/cli/backend/src/services/memory/goal-tracking.service.js +353 -0
  167. package/dist/cli/backend/src/services/memory/goal-tracking.service.js.map +1 -0
  168. package/dist/cli/backend/src/services/memory/memory.service.d.ts +43 -0
  169. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  170. package/dist/cli/backend/src/services/memory/memory.service.js +96 -0
  171. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  172. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +171 -0
  173. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
  174. package/dist/cli/backend/src/services/project/task-tracking.service.js +725 -0
  175. package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -0
  176. package/dist/cli/backend/src/types/memory.types.d.ts +53 -0
  177. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
  178. package/dist/cli/backend/src/types/memory.types.js.map +1 -1
  179. package/dist/cli/backend/src/types/task-tracking.types.d.ts +206 -0
  180. package/dist/cli/backend/src/types/task-tracking.types.d.ts.map +1 -0
  181. package/dist/cli/backend/src/types/task-tracking.types.js +5 -0
  182. package/dist/cli/backend/src/types/task-tracking.types.js.map +1 -0
  183. package/frontend/dist/assets/index-512efc8e.js +4921 -0
  184. package/frontend/dist/index.html +1 -1
  185. package/package.json +1 -1
  186. 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] prefix
171
- * rather than a bare conversationId to avoid false positives from short
172
- * or common IDs appearing in unrelated output.
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;IA6bzB;;;;;;;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;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;;;;;;;;;;OAaG;YACW,gBAAgB;CA0G/B"}
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] prefix
679
- * rather than a bare conversationId to avoid false positives from short
680
- * or common IDs appearing in unrelated output.
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
- return output.includes(`[CHAT:${conversationId}]`)
688
- || output.includes(`[GCHAT:${conversationId}]`)
689
- || output.includes(`[CHAT:${conversationId} `)
690
- || output.includes(`[GCHAT:${conversationId} `);
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] or [GCHAT:conversationId]
732
- // appears in the PTY output. Using the full prefix avoids false positives from
733
- // short or common conversationIds that might appear in unrelated output.
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":"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"}
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":"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"}
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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"}