crewly 1.20.147 → 1.20.149

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 (126) hide show
  1. package/config/constants.ts +43 -0
  2. package/config/roles/developer/prompt.md +2 -1
  3. package/config/roles/orchestrator/prompt.md +3 -2
  4. package/config/roles/product-manager/prompt.md +2 -1
  5. package/config/roles/team-leader/tl-addon.md +11 -2
  6. package/config/skills/team-leader/set-member-model/SKILL.md +60 -0
  7. package/config/skills/team-leader/set-member-model/execute.sh +55 -0
  8. package/config/skills/team-leader/set-member-model/execute.test.sh +76 -0
  9. package/dist/backend/backend/src/constants.d.ts +75 -0
  10. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  11. package/dist/backend/backend/src/constants.js +58 -1
  12. package/dist/backend/backend/src/constants.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +21 -0
  15. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  16. package/dist/backend/backend/src/index.d.ts +11 -0
  17. package/dist/backend/backend/src/index.d.ts.map +1 -1
  18. package/dist/backend/backend/src/index.js +86 -11
  19. package/dist/backend/backend/src/index.js.map +1 -1
  20. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +9 -6
  21. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/agent/agent-registration.service.js +22 -16
  23. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +248 -0
  25. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -0
  26. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +572 -0
  27. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -0
  28. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +8 -0
  29. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +12 -1
  31. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  32. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.d.ts +200 -0
  33. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.d.ts.map +1 -0
  34. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.js +485 -0
  35. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.js.map +1 -0
  36. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.d.ts +163 -0
  37. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.d.ts.map +1 -0
  38. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.js +176 -0
  39. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.js.map +1 -0
  40. package/dist/backend/backend/src/services/cloud/cloud-login-runner.d.ts +106 -0
  41. package/dist/backend/backend/src/services/cloud/cloud-login-runner.d.ts.map +1 -0
  42. package/dist/backend/backend/src/services/cloud/cloud-login-runner.js +238 -0
  43. package/dist/backend/backend/src/services/cloud/cloud-login-runner.js.map +1 -0
  44. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +16 -1
  45. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +38 -0
  47. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +14 -0
  49. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  51. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +10 -0
  52. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +41 -3
  54. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/session/session-state-persistence.d.ts +9 -0
  56. package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/session/session-state-persistence.js +20 -0
  58. package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -1
  59. package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts.map +1 -1
  60. package/dist/backend/backend/src/services/skill/skill-permission.service.js +1 -0
  61. package/dist/backend/backend/src/services/skill/skill-permission.service.js.map +1 -1
  62. package/dist/backend/backend/src/services/slack/slack-owner-direct-dm.d.ts +55 -0
  63. package/dist/backend/backend/src/services/slack/slack-owner-direct-dm.d.ts.map +1 -0
  64. package/dist/backend/backend/src/services/slack/slack-owner-direct-dm.js +114 -0
  65. package/dist/backend/backend/src/services/slack/slack-owner-direct-dm.js.map +1 -0
  66. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +25 -1
  67. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +82 -2
  69. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
  70. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +27 -0
  71. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +48 -2
  73. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  74. package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
  75. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  76. package/dist/backend/backend/src/types/settings.types.js +4 -0
  77. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  78. package/dist/backend/backend/src/utils/member-default-model.utils.d.ts +66 -0
  79. package/dist/backend/backend/src/utils/member-default-model.utils.d.ts.map +1 -0
  80. package/dist/backend/backend/src/utils/member-default-model.utils.js +95 -0
  81. package/dist/backend/backend/src/utils/member-default-model.utils.js.map +1 -0
  82. package/dist/backend/backend/src/utils/trigger-workitem-dedupe.utils.d.ts +53 -0
  83. package/dist/backend/backend/src/utils/trigger-workitem-dedupe.utils.d.ts.map +1 -0
  84. package/dist/backend/backend/src/utils/trigger-workitem-dedupe.utils.js +75 -0
  85. package/dist/backend/backend/src/utils/trigger-workitem-dedupe.utils.js.map +1 -0
  86. package/dist/backend/build-info.json +2 -2
  87. package/dist/backend/config/constants.d.ts +42 -0
  88. package/dist/backend/config/constants.d.ts.map +1 -1
  89. package/dist/backend/config/constants.js +42 -0
  90. package/dist/backend/config/constants.js.map +1 -1
  91. package/dist/cli/backend/src/constants.d.ts +75 -0
  92. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  93. package/dist/cli/backend/src/constants.js +58 -1
  94. package/dist/cli/backend/src/constants.js.map +1 -1
  95. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +9 -6
  96. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  97. package/dist/cli/backend/src/services/agent/agent-registration.service.js +22 -16
  98. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  99. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +8 -0
  100. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  101. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +12 -1
  102. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  103. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts +16 -1
  104. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  105. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js +38 -0
  106. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  107. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +14 -0
  108. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  109. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  110. package/dist/cli/backend/src/services/session/session-state-persistence.d.ts +9 -0
  111. package/dist/cli/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
  112. package/dist/cli/backend/src/services/session/session-state-persistence.js +20 -0
  113. package/dist/cli/backend/src/services/session/session-state-persistence.js.map +1 -1
  114. package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
  115. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  116. package/dist/cli/backend/src/types/settings.types.js +4 -0
  117. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  118. package/dist/cli/backend/src/utils/member-default-model.utils.d.ts +66 -0
  119. package/dist/cli/backend/src/utils/member-default-model.utils.d.ts.map +1 -0
  120. package/dist/cli/backend/src/utils/member-default-model.utils.js +95 -0
  121. package/dist/cli/backend/src/utils/member-default-model.utils.js.map +1 -0
  122. package/dist/cli/config/constants.d.ts +42 -0
  123. package/dist/cli/config/constants.d.ts.map +1 -1
  124. package/dist/cli/config/constants.js +42 -0
  125. package/dist/cli/config/constants.js.map +1 -1
  126. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session-state-persistence.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-state-persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-state-persistence.js","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-state-persistence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-permission.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/skill/skill-permission.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,KAAK,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC;AAElE,UAAU,iBAAiB;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoCD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO;WAIO,WAAW,IAAI,sBAAsB;WAOrC,aAAa,IAAI,IAAI;IAInC;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,gBAAgB;IAiDhF;;;;;;OAMG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE;IAcjF;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
1
+ {"version":3,"file":"skill-permission.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/skill/skill-permission.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,KAAK,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC;AAElE,UAAU,iBAAiB;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqCD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO;WAIO,WAAW,IAAI,sBAAsB;WAOrC,aAAa,IAAI,IAAI;IAInC;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,gBAAgB;IAiDhF;;;;;;OAMG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE;IAcjF;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -33,6 +33,7 @@ const DIRECTED_BLOCKED = new Set([
33
33
  'stop-agent',
34
34
  'handle-failure',
35
35
  'aggregate-results',
36
+ 'set-member-model',
36
37
  ]);
37
38
  /** Skills blocked for "bounded" agents — they can delegate within scope but not deploy to prod. */
38
39
  const BOUNDED_BLOCKED = new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"skill-permission.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/skill/skill-permission.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-permission.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/skill/skill-permission.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Owner DM straight through the Slack Web API — for when Cloud is gone.
3
+ *
4
+ * Inbound Slack reaches a machine only through Crewly Cloud → relay, but
5
+ * outbound works with the bot tokens the machine already holds. When Cloud
6
+ * is unreachable this is the one way left to reach the owner, and — since
7
+ * their replies will not be relayed — the one way to read what they answer:
8
+ * `conversations.history` on the same DM with the same token.
9
+ *
10
+ * Tokens never appear in logs or errors.
11
+ *
12
+ * @module services/slack/slack-owner-direct-dm
13
+ */
14
+ /** `fetch` signature (injectable for tests). */
15
+ export type SlackFetch = (input: string, init?: RequestInit) => Promise<Response>;
16
+ /** A message the owner wrote in the DM. */
17
+ export interface OwnerDmReply {
18
+ /** Slack ts */
19
+ ts: string;
20
+ /** Text with Slack's `&amp;` / `&lt;` / `&gt;` decoded */
21
+ text: string;
22
+ }
23
+ /** A posted message. */
24
+ export interface PostedDm {
25
+ channelId: string;
26
+ ts: string;
27
+ }
28
+ /** The owner DM operations the disconnect notice needs. */
29
+ export interface OwnerDirectDm {
30
+ /** Post into the owner's DM; returns where it landed */
31
+ send(text: string): Promise<PostedDm>;
32
+ /** Replace a message posted earlier with {@link send} */
33
+ update(channelId: string, ts: string, text: string): Promise<void>;
34
+ /** The owner's messages in that DM after `afterTs`, oldest first */
35
+ readOwnerReplies(channelId: string, afterTs: string): Promise<OwnerDmReply[]>;
36
+ }
37
+ /**
38
+ * Undo {@link escapeSlack} (and strip Slack's `<url|label>` link wrapping).
39
+ *
40
+ * @param text - Slack message text
41
+ * @returns Plain text
42
+ */
43
+ export declare function decodeSlackText(text: string): string;
44
+ /**
45
+ * Build the owner DM on a bot token.
46
+ *
47
+ * @param options - Bot token, owner's Slack user id and fetch (tests)
48
+ * @returns The DM operations
49
+ */
50
+ export declare function createOwnerDirectDm(options: {
51
+ botToken: string;
52
+ ownerUserId: string;
53
+ fetchImpl?: SlackFetch;
54
+ }): OwnerDirectDm;
55
+ //# sourceMappingURL=slack-owner-direct-dm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-owner-direct-dm.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-owner-direct-dm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElF,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC5B,eAAe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;CACb;AAED,wBAAwB;AACxB,MAAM,WAAW,QAAQ;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACX;AAED,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC7B,wDAAwD;IACxD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,yDAAyD;IACzD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,oEAAoE;IACpE,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC9E;AAYD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,aAAa,CAqE7H"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Owner DM straight through the Slack Web API — for when Cloud is gone.
3
+ *
4
+ * Inbound Slack reaches a machine only through Crewly Cloud → relay, but
5
+ * outbound works with the bot tokens the machine already holds. When Cloud
6
+ * is unreachable this is the one way left to reach the owner, and — since
7
+ * their replies will not be relayed — the one way to read what they answer:
8
+ * `conversations.history` on the same DM with the same token.
9
+ *
10
+ * Tokens never appear in logs or errors.
11
+ *
12
+ * @module services/slack/slack-owner-direct-dm
13
+ */
14
+ import { CLOUD_DISCONNECT_NOTICE_CONSTANTS } from '../../../../config/constants.js';
15
+ const C = CLOUD_DISCONNECT_NOTICE_CONSTANTS;
16
+ /**
17
+ * Escape the three characters Slack reserves in message text.
18
+ *
19
+ * @param text - Plain text
20
+ * @returns Escaped text
21
+ */
22
+ function escapeSlack(text) {
23
+ return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
24
+ }
25
+ /**
26
+ * Undo {@link escapeSlack} (and strip Slack's `<url|label>` link wrapping).
27
+ *
28
+ * @param text - Slack message text
29
+ * @returns Plain text
30
+ */
31
+ export function decodeSlackText(text) {
32
+ return text
33
+ .replace(/<([^|>]+)\|[^>]*>/g, '$1')
34
+ .replace(/<([^>]+)>/g, '$1')
35
+ .replace(/&lt;/g, '<')
36
+ .replace(/&gt;/g, '>')
37
+ .replace(/&amp;/g, '&');
38
+ }
39
+ /**
40
+ * Build the owner DM on a bot token.
41
+ *
42
+ * @param options - Bot token, owner's Slack user id and fetch (tests)
43
+ * @returns The DM operations
44
+ */
45
+ export function createOwnerDirectDm(options) {
46
+ const { botToken, ownerUserId } = options;
47
+ const fetchImpl = options.fetchImpl ?? fetch;
48
+ const call = async (method, body, httpMethod = 'POST') => {
49
+ let url = `${C.SLACK_API_BASE}/${method}`;
50
+ const init = {
51
+ method: httpMethod,
52
+ headers: {
53
+ Authorization: `Bearer ${botToken}`,
54
+ ...(httpMethod === 'POST' ? { 'Content-Type': 'application/json; charset=utf-8' } : {}),
55
+ },
56
+ signal: AbortSignal.timeout(C.SLACK_REQUEST_TIMEOUT_MS),
57
+ };
58
+ if (httpMethod === 'GET') {
59
+ const qs = new URLSearchParams(Object.entries(body).map(([k, v]) => [k, String(v)]));
60
+ url = `${url}?${qs.toString()}`;
61
+ }
62
+ else {
63
+ init.body = JSON.stringify(body);
64
+ }
65
+ let response;
66
+ try {
67
+ response = await fetchImpl(url, init);
68
+ }
69
+ catch (error) {
70
+ throw new Error(`Slack ${method} unreachable: ${error instanceof Error ? error.message : String(error)}`);
71
+ }
72
+ const data = (await response.json().catch(() => ({})));
73
+ if (!response.ok || !data.ok)
74
+ throw new Error(`Slack ${method} failed: ${data.error ?? `HTTP ${response.status}`}`);
75
+ return data;
76
+ };
77
+ let dmChannel = null;
78
+ const openDm = async () => {
79
+ if (dmChannel)
80
+ return dmChannel;
81
+ const res = await call('conversations.open', { users: ownerUserId });
82
+ const id = res.channel?.id;
83
+ if (!id)
84
+ throw new Error('Slack conversations.open returned no channel');
85
+ dmChannel = id;
86
+ return id;
87
+ };
88
+ return {
89
+ async send(text) {
90
+ const channelId = await openDm();
91
+ const res = await call('chat.postMessage', {
92
+ channel: channelId,
93
+ text: escapeSlack(text),
94
+ unfurl_links: false,
95
+ unfurl_media: false,
96
+ });
97
+ if (!res.ts)
98
+ throw new Error('Slack chat.postMessage returned no ts');
99
+ return { channelId: res.channel ?? channelId, ts: res.ts };
100
+ },
101
+ async update(channelId, ts, text) {
102
+ await call('chat.update', { channel: channelId, ts, text: escapeSlack(text) });
103
+ },
104
+ async readOwnerReplies(channelId, afterTs) {
105
+ const res = await call('conversations.history', { channel: channelId, oldest: afterTs, inclusive: false, limit: 50 }, 'GET');
106
+ return (res.messages ?? [])
107
+ .filter((m) => m.user === ownerUserId && !m.bot_id && !m.subtype && typeof m.ts === 'string' && typeof m.text === 'string')
108
+ .filter((m) => Number(m.ts) > Number(afterTs))
109
+ .sort((a, b) => Number(a.ts) - Number(b.ts))
110
+ .map((m) => ({ ts: m.ts, text: decodeSlackText(m.text).trim() }));
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=slack-owner-direct-dm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-owner-direct-dm.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-owner-direct-dm.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  *
11
11
  * @module services/v3/tl-auto-verify.service
12
12
  */
13
+ import { type WorkItem } from '../../types/v2/work-item.types.js';
13
14
  interface TeamMemberInfo {
14
15
  id: string;
15
16
  sessionName: string;
@@ -28,15 +29,25 @@ export declare class TLAutoVerifyService {
28
29
  private readonly logger;
29
30
  private eventBusService;
30
31
  private teamsProvider;
32
+ private poolItemsProvider;
33
+ private verifyDeferMs;
31
34
  private constructor();
32
35
  static getInstance(): TLAutoVerifyService;
33
36
  static resetInstance(): void;
34
37
  /**
35
38
  * Initialize with EventBus and team data source.
39
+ *
40
+ * @param eventBusService - Bus whose `event_published` signal is watched
41
+ * @param teamsProvider - Team source (defaults to GET /api/teams)
42
+ * @param options - `poolItemsProvider` reads the task pool (defaults to
43
+ * TaskPoolService); `verifyDeferMs` overrides the wait for a Verify item
36
44
  */
37
45
  initialize(eventBusService: {
38
46
  on: (event: string, handler: (...args: unknown[]) => void) => void;
39
- }, teamsProvider?: () => Promise<TeamInfo[]>): void;
47
+ }, teamsProvider?: () => Promise<TeamInfo[]>, options?: {
48
+ poolItemsProvider?: () => Promise<WorkItem[]>;
49
+ verifyDeferMs?: number;
50
+ }): void;
40
51
  /**
41
52
  * Start listening for task completion events.
42
53
  */
@@ -50,6 +61,19 @@ export declare class TLAutoVerifyService {
50
61
  * @param taskId - The task ID (if available)
51
62
  */
52
63
  private onWorkerTaskCompleted;
64
+ /**
65
+ * Whether the bridge has created — or is about to create — a `Verify:` work
66
+ * item for this completion. With a task id that is `<id>:verify:<id>`;
67
+ * without one, any open Verify item whose source the worker ran. When the
68
+ * worker's item has just reached `done_by_worker` and its Verify item is
69
+ * not there yet, wait {@link VERIFY_ITEM_DEFER_MS} once and look again.
70
+ * Pool read failures count as "no Verify item" so the TL still hears.
71
+ *
72
+ * @param workerSessionName - Worker whose task completed
73
+ * @param taskId - Completed task / WorkItem id, when known
74
+ * @returns True when a Verify item covers the task
75
+ */
76
+ private hasVerifyItem;
53
77
  /**
54
78
  * Deliver the verify instruction to the TL.
55
79
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tl-auto-verify.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/tl-auto-verify.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAqBD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,aAAa,CAA4C;IAEjE,OAAO;WAIO,WAAW,IAAI,mBAAmB;WAOlC,aAAa,IAAI,IAAI;IAInC;;OAEG;IACH,UAAU,CACR,eAAe,EAAE;QAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;KAAE,EACvF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,GACxC,IAAI;IAKP;;OAEG;IACH,KAAK,IAAI,IAAI;IA2Bb;;;;;;;OAOG;YACW,qBAAqB;IAoDnC;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IA4CjC;;;;;;OAMG;YACW,uBAAuB;CA0CtC"}
1
+ {"version":3,"file":"tl-auto-verify.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/tl-auto-verify.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAM/F,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AA+BD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,aAAa,CAAwB;IAE7C,OAAO;WAIO,WAAW,IAAI,mBAAmB;WAOlC,aAAa,IAAI,IAAI;IAInC;;;;;;;OAOG;IACH,UAAU,CACR,eAAe,EAAE;QAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;KAAE,EACvF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,EACzC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO,GACtF,IAAI;IAOP;;OAEG;IACH,KAAK,IAAI,IAAI;IA4Bb;;;;;;;OAOG;YACW,qBAAqB;IAgEnC;;;;;;;;;;;OAWG;YACW,aAAa;IAqC3B;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IA4CjC;;;;;;OAMG;YACW,uBAAuB;CA0CtC"}
@@ -13,6 +13,7 @@
13
13
  import { LoggerService } from '../core/logger.service.js';
14
14
  import { ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
15
15
  import { getLocalApiBaseUrl } from '../../utils/local-api-url.utils.js';
16
+ import { TERMINAL_WORK_ITEM_STATUSES } from '../../types/v2/work-item.types.js';
16
17
  // ---------------------------------------------------------------------------
17
18
  // Constants
18
19
  // ---------------------------------------------------------------------------
@@ -21,6 +22,14 @@ const SERVICE_NAME = 'TLAutoVerify';
21
22
  /** Loopback API base (same one workitem-dispatch.subscriber.ts uses). */
22
23
  /** Timeout for the direct terminal write to the TL session. */
23
24
  const TL_WRITE_TIMEOUT_MS = 5_000;
25
+ /**
26
+ * When the worker's task was just reported done, the bridge's `Verify:` item
27
+ * may not exist yet (it is created from the same completion). Wait this long
28
+ * once before deciding the task has no Verify item.
29
+ */
30
+ const VERIFY_ITEM_DEFER_MS = 3_000;
31
+ /** Marker in the bridge's deterministic verification ids (`<id>:verify:<id>`). */
32
+ const VERIFY_ID_MARKER = ':verify:';
24
33
  // ---------------------------------------------------------------------------
25
34
  // Service
26
35
  // ---------------------------------------------------------------------------
@@ -29,6 +38,8 @@ export class TLAutoVerifyService {
29
38
  logger;
30
39
  eventBusService = null;
31
40
  teamsProvider = null;
41
+ poolItemsProvider = null;
42
+ verifyDeferMs = VERIFY_ITEM_DEFER_MS;
32
43
  constructor() {
33
44
  this.logger = LoggerService.getInstance().createComponentLogger('TLAutoVerify');
34
45
  }
@@ -43,10 +54,18 @@ export class TLAutoVerifyService {
43
54
  }
44
55
  /**
45
56
  * Initialize with EventBus and team data source.
57
+ *
58
+ * @param eventBusService - Bus whose `event_published` signal is watched
59
+ * @param teamsProvider - Team source (defaults to GET /api/teams)
60
+ * @param options - `poolItemsProvider` reads the task pool (defaults to
61
+ * TaskPoolService); `verifyDeferMs` overrides the wait for a Verify item
46
62
  */
47
- initialize(eventBusService, teamsProvider) {
63
+ initialize(eventBusService, teamsProvider, options = {}) {
48
64
  this.eventBusService = eventBusService;
49
65
  this.teamsProvider = teamsProvider ?? null;
66
+ this.poolItemsProvider = options.poolItemsProvider ?? null;
67
+ if (typeof options.verifyDeferMs === 'number')
68
+ this.verifyDeferMs = options.verifyDeferMs;
50
69
  }
51
70
  /**
52
71
  * Start listening for task completion events.
@@ -61,7 +80,7 @@ export class TLAutoVerifyService {
61
80
  if (!event?.eventType || !event?.sessionName)
62
81
  return;
63
82
  if (event.eventType === 'task:done' || event.eventType === 'task:completed') {
64
- this.onWorkerTaskCompleted(event.sessionName, event.teamId, event.taskId).catch((err) => {
83
+ this.onWorkerTaskCompleted(event.sessionName, event.teamId, event.taskId ?? event.workItemId).catch((err) => {
65
84
  this.logger.debug('Auto-verify trigger failed (non-fatal)', {
66
85
  error: err instanceof Error ? err.message : String(err),
67
86
  });
@@ -85,6 +104,17 @@ export class TLAutoVerifyService {
85
104
  this.logger.debug('No TL found for worker — skipping auto-verify', { workerSessionName });
86
105
  return;
87
106
  }
107
+ // The bridge already gives the reviewer a `Verify:` work item for work the
108
+ // worker reported done; an [AUTO-VERIFY] message on top wakes the TL a
109
+ // second time for the same deliverable. Only tasks without one get it.
110
+ if (await this.hasVerifyItem(workerSessionName, taskId)) {
111
+ this.logger.debug('Skipping [AUTO-VERIFY] — a Verify work item covers this task', {
112
+ workerSessionName,
113
+ taskId,
114
+ tlSession: tlInfo.tlSessionName,
115
+ });
116
+ return;
117
+ }
88
118
  try {
89
119
  const verifyInstruction = [
90
120
  `[AUTO-VERIFY] Worker ${workerSessionName} has completed a task.`,
@@ -118,6 +148,56 @@ export class TLAutoVerifyService {
118
148
  });
119
149
  }
120
150
  }
151
+ /**
152
+ * Whether the bridge has created — or is about to create — a `Verify:` work
153
+ * item for this completion. With a task id that is `<id>:verify:<id>`;
154
+ * without one, any open Verify item whose source the worker ran. When the
155
+ * worker's item has just reached `done_by_worker` and its Verify item is
156
+ * not there yet, wait {@link VERIFY_ITEM_DEFER_MS} once and look again.
157
+ * Pool read failures count as "no Verify item" so the TL still hears.
158
+ *
159
+ * @param workerSessionName - Worker whose task completed
160
+ * @param taskId - Completed task / WorkItem id, when known
161
+ * @returns True when a Verify item covers the task
162
+ */
163
+ async hasVerifyItem(workerSessionName, taskId) {
164
+ const read = async () => {
165
+ try {
166
+ if (this.poolItemsProvider)
167
+ return await this.poolItemsProvider();
168
+ const { TaskPoolService } = await import('../task-pool/task-pool.service.js');
169
+ return await TaskPoolService.getInstance().getAllItems();
170
+ }
171
+ catch {
172
+ return [];
173
+ }
174
+ };
175
+ const covered = (items) => {
176
+ if (taskId)
177
+ return items.some((wi) => wi.id === `${taskId}${VERIFY_ID_MARKER}${taskId}`);
178
+ const byId = new Map(items.map((wi) => [wi.id, wi]));
179
+ return items.some((wi) => {
180
+ if (!wi.id.includes(VERIFY_ID_MARKER) || TERMINAL_WORK_ITEM_STATUSES.has(wi.status))
181
+ return false;
182
+ const sourceId = wi.id.slice(0, wi.id.indexOf(VERIFY_ID_MARKER));
183
+ return byId.get(sourceId)?.target === workerSessionName;
184
+ });
185
+ };
186
+ const pending = (items) => {
187
+ const ids = new Set(items.map((wi) => wi.id));
188
+ return items.some((wi) => wi.status === 'done_by_worker' &&
189
+ (taskId ? wi.id === taskId : wi.target === workerSessionName) &&
190
+ !ids.has(`${wi.id}${VERIFY_ID_MARKER}${wi.id}`));
191
+ };
192
+ let items = await read();
193
+ if (covered(items))
194
+ return true;
195
+ if (!pending(items))
196
+ return false;
197
+ await new Promise((resolve) => setTimeout(resolve, this.verifyDeferMs));
198
+ items = await read();
199
+ return covered(items);
200
+ }
121
201
  /**
122
202
  * Deliver the verify instruction to the TL.
123
203
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tl-auto-verify.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/tl-auto-verify.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tl-auto-verify.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/tl-auto-verify.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAiB,MAAM,mCAAmC,CAAC;AAqB/F,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,yEAAyE;AACzE,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,yEAAyE;AAEzE,+DAA+D;AAC/D,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAKpC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,QAAQ,GAA+B,IAAI,CAAC;IAC1C,MAAM,CAAkB;IACjC,eAAe,GAAkF,IAAI,CAAC;IACtG,aAAa,GAAuC,IAAI,CAAC;IACzD,iBAAiB,GAAuC,IAAI,CAAC;IAC7D,aAAa,GAAG,oBAAoB,CAAC;IAE7C;QACE,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAClF,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,aAAa;QACzB,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CACR,eAAuF,EACvF,aAAyC,EACzC,UAAqF,EAAE;QAEvF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;QAC3D,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;YAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAgB,EAAE,EAAE;YAC9D,MAAM,KAAK,GAAG,OAMb,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,WAAW;gBAAE,OAAO;YAErD,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBAC5E,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;wBAC1D,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACzG,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,qBAAqB,CACjC,iBAAyB,EACzB,MAAe,EACf,MAAe;QAEf,gCAAgC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,EAAE;gBAChF,iBAAiB;gBACjB,MAAM;gBACN,SAAS,EAAE,MAAM,CAAC,aAAa;aAChC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG;gBACxB,wBAAwB,iBAAiB,wBAAwB;gBACjE,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClC,EAAE;gBACF,4DAA4D;gBAC5D,SAAS;gBACT,4DAA4D,IAAI,CAAC,SAAS,CAAC;oBACzE,MAAM,EAAE,MAAM,IAAI,iBAAiB;oBACnC,QAAQ,EAAE,iBAAiB;oBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;iBAC3B,CAAC,GAAG;gBACL,KAAK;gBACL,EAAE;gBACF,+DAA+D;gBAC/D,iEAAiE;aAClE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACjD,MAAM,CAAC,aAAa,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,CACP,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBAC3C,aAAa,EAAE,iBAAiB;gBAChC,SAAS,EAAE,MAAM,CAAC,aAAa;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM;gBACN,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;gBACnE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,aAAa,CAAC,iBAAyB,EAAE,MAAe;QACpE,MAAM,IAAI,GAAG,KAAK,IAAyB,EAAE;YAC3C,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,iBAAiB;oBAAE,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAClE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;gBAC9E,OAAO,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAW,EAAE;YAC7C,IAAI,MAAM;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAC,CAAC;YACzF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACvB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAClG,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAW,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,MAAM,KAAK,gBAAgB;gBAC9B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAiB,CAAC;gBAC7D,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,gBAAgB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAClD,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAClC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACxE,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,mBAAmB,CAC/B,aAAqB,EACrB,iBAAyB,EACzB,iBAAyB,EACzB,MAAe;QAEf,IAAI,aAAa,KAAK,yBAAyB,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,MAAM,KAAK,CAAC,IAAI,CACd,GAAG,kBAAkB,EAAE,iBAAiB,kBAAkB,CAAC,aAAa,CAAC,QAAQ,EACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,EAC5C;oBACE,OAAO,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;oBAC5C,OAAO,EAAE,mBAAmB;iBAC7B,CACF,CAAC;gBACF,OAAO,aAAa,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAI,GAA0C,EAAE,QAAQ,EAAE,MAAM,CAAC;gBAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sEAAsE,EAAE;oBACvF,SAAS,EAAE,aAAa;oBACxB,MAAM,EAAE,MAAM,IAAI,aAAa;oBAC/B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,SAAS,CAAC,OAAO,CAAC;YAChB,OAAO,EAAE,iBAAiB;YAC1B,cAAc,EAAE,eAAe,MAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1E,MAAM,EAAE,cAAc;YACtB,cAAc,EAAE;gBACd,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,iBAAiB;gBAChC,SAAS,EAAE,aAAa;gBACxB,MAAM;aACP;SACF,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,uBAAuB,CACnC,iBAAyB,EACzB,MAAe;QAEf,IAAI,KAAK,GAAe,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,kBAAkB,EAAE,YAAY,CAAC,CAAC;gBACtE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,SAAS;YACjC,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;gBAAE,SAAS;YAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,gCAAgC;YAChC,IAAI,CAAC,MAAM,CAAC,cAAc;gBAAE,SAAS;YAErC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE;gBAAE,SAAS;YAElB,OAAO;gBACL,aAAa,EAAE,EAAE,CAAC,WAAW;gBAC7B,UAAU,EAAE,EAAE,CAAC,EAAE;gBACjB,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC"}
@@ -33,6 +33,11 @@
33
33
  */
34
34
  import type { TeamBudgetGateService } from '../budget/team-budget-gate.service.js';
35
35
  import type { WorkItem } from '../../types/v2/work-item.types.js';
36
+ import { type PrepareForTaskResult } from '../agent/fresh-task-conversation.service.js';
37
+ /** Starts a fresh conversation before a new task (see FreshTaskConversationService). */
38
+ type TaskConversationPreparer = {
39
+ prepareForTask: (sessionName: string, workItem: Pick<WorkItem, 'id'>) => Promise<PrepareForTaskResult>;
40
+ };
36
41
  /** Loopback API used by {@link tl-auto-verify.service.ts} et al. */
37
42
  /**
38
43
  * SLA tracker WIs use a deterministic id pattern `request:<rid>:respond_to_user`
@@ -85,6 +90,12 @@ export declare class WorkItemDispatchSubscriber {
85
90
  * bypasses the check so tests / CLI never touch the team store.
86
91
  */
87
92
  private teamBudgetGate;
93
+ /**
94
+ * Fresh-conversation preparer consulted right before a brief is written.
95
+ * Defaults to the {@link FreshTaskConversationService} singleton; tests
96
+ * inject a stub via {@link setTaskConversationPreparer}.
97
+ */
98
+ private taskConversationPreparer;
88
99
  private constructor();
89
100
  /**
90
101
  * Wire (or disable with `null`) the team budget gate used by
@@ -93,6 +104,21 @@ export declare class WorkItemDispatchSubscriber {
93
104
  * @param gate - Gate implementation, or null to bypass budget checks
94
105
  */
95
106
  setTeamBudgetGate(gate: Pick<TeamBudgetGateService, 'checkForSession'> | null): void;
107
+ /**
108
+ * Override the fresh-conversation preparer (tests), or `null` to restore
109
+ * the default singleton.
110
+ *
111
+ * @param preparer - Preparer implementation
112
+ */
113
+ setTaskConversationPreparer(preparer: TaskConversationPreparer | null): void;
114
+ /**
115
+ * Give the target a fresh conversation when this is a new task (Claude
116
+ * Code members only; the service decides). Never throws.
117
+ *
118
+ * @param workItem - WI about to be written (target set)
119
+ * @returns The note to put in front of the brief, or null
120
+ */
121
+ private prepareConversation;
96
122
  static getInstance(): WorkItemDispatchSubscriber;
97
123
  static resetInstance(): void;
98
124
  /**
@@ -186,4 +212,5 @@ export declare class WorkItemDispatchSubscriber {
186
212
  private buildBatchDispatchMessage;
187
213
  private buildDispatchMessage;
188
214
  }
215
+ export {};
189
216
  //# sourceMappingURL=workitem-dispatch.subscriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workitem-dispatch.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/workitem-dispatch.subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAUlE,oEAAoE;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,QAAiC,CAAC;AASrE;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAuF;IAE9G;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA+D;IAErF,OAAO;IAIP;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,GAAG,IAAI,GAAG,IAAI;WAItE,WAAW,IAAI,0BAA0B;WAOzC,aAAa,IAAI,IAAI;IAInC;;;;OAIG;IACH,UAAU,CACR,eAAe,EAAE;QAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;KAAE,GACtF,IAAI;IAIP;;;OAGG;IACH,KAAK,IAAI,IAAI;IAyCb;;;;;;;;OAQG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAwDtD;;;;;;;;;;;;;OAaG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtD;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyC1E;;;;OAIG;YACW,iBAAiB;IAY/B;;;;;OAKG;YACW,kBAAkB;IAoChC;;;;;;;;;;;;;;;OAeG;IACH;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,oBAAoB;CAc7B"}
1
+ {"version":3,"file":"workitem-dispatch.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/workitem-dispatch.subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,6CAA6C,CAAC;AASrD,wFAAwF;AACxF,KAAK,wBAAwB,GAAG;IAC9B,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACxG,CAAC;AAEF,oEAAoE;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,QAAiC,CAAC;AASrE;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAuF;IAE9G;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA+D;IAErF;;;;OAIG;IACH,OAAO,CAAC,wBAAwB,CAAyC;IAEzE,OAAO;IAIP;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,GAAG,IAAI,GAAG,IAAI;IAIpF;;;;;OAKG;IACH,2BAA2B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI;IAI5E;;;;;;OAMG;YACW,mBAAmB;WAcnB,WAAW,IAAI,0BAA0B;WAOzC,aAAa,IAAI,IAAI;IAInC;;;;OAIG;IACH,UAAU,CACR,eAAe,EAAE;QAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;KAAE,GACtF,IAAI;IAIP;;;OAGG;IACH,KAAK,IAAI,IAAI;IAyCb;;;;;;;;OAQG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA2DtD;;;;;;;;;;;;;OAaG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtD;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C1E;;;;OAIG;YACW,iBAAiB;IAY/B;;;;;OAKG;YACW,kBAAkB;IAoChC;;;;;;;;;;;;;;;OAeG;IACH;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,oBAAoB;CAe7B"}