crewly 1.20.155 → 1.20.156

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 (117) hide show
  1. package/config/skills/agent/core/attach-file/SKILL.md +1 -1
  2. package/config/skills/agent/core/attach-file/execute.sh +1 -1
  3. package/config/skills/agent/core/reply-channel/SKILL.md +4 -1
  4. package/config/skills/agent/core/reply-chat/SKILL.md +17 -0
  5. package/config/skills/agent/core/reply-chat/execute.sh +6 -1
  6. package/config/skills/agent/core/slack-post/SKILL.md +1 -1
  7. package/dist/backend/backend/src/constants.d.ts +100 -0
  8. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  9. package/dist/backend/backend/src/constants.js +111 -0
  10. package/dist/backend/backend/src/constants.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts +18 -0
  12. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  13. package/dist/backend/backend/src/controllers/chat/chat.controller.js +42 -6
  14. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/slack/slack.controller.js +6 -1
  17. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  18. package/dist/backend/backend/src/index.d.ts.map +1 -1
  19. package/dist/backend/backend/src/index.js +7 -0
  20. package/dist/backend/backend/src/index.js.map +1 -1
  21. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +1 -0
  22. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  23. package/dist/backend/backend/src/services/agent/agent-registration.service.js +18 -4
  24. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  25. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts +13 -0
  26. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +16 -0
  28. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  29. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -1
  30. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +46 -3
  32. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +17 -4
  35. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts +93 -6
  37. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +169 -15
  39. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +2 -2
  41. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +15 -2
  43. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -1
  46. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  47. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +40 -0
  48. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +86 -9
  50. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  51. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +1 -1
  52. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +33 -4
  54. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +227 -0
  56. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -0
  57. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +455 -0
  58. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -0
  59. package/dist/backend/backend/src/services/slack/slack-thread-key.d.ts +66 -0
  60. package/dist/backend/backend/src/services/slack/slack-thread-key.d.ts.map +1 -0
  61. package/dist/backend/backend/src/services/slack/slack-thread-key.js +109 -0
  62. package/dist/backend/backend/src/services/slack/slack-thread-key.js.map +1 -0
  63. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +89 -13
  64. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +224 -50
  66. package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  67. package/dist/backend/backend/src/types/slack.types.d.ts +43 -0
  68. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  69. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  70. package/dist/backend/build-info.json +2 -2
  71. package/dist/cli/backend/src/constants.d.ts +100 -0
  72. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  73. package/dist/cli/backend/src/constants.js +111 -0
  74. package/dist/cli/backend/src/constants.js.map +1 -1
  75. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +1 -0
  76. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  77. package/dist/cli/backend/src/services/agent/agent-registration.service.js +18 -4
  78. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  79. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts +13 -0
  80. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  81. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +16 -0
  82. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  83. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -1
  84. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  85. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +46 -3
  86. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  87. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  88. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +17 -4
  89. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  90. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts +93 -6
  91. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  92. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +169 -15
  93. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  94. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +40 -0
  95. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  96. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +86 -9
  97. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  98. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +1 -1
  99. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  100. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +33 -4
  101. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  102. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +227 -0
  103. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -0
  104. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +455 -0
  105. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -0
  106. package/dist/cli/backend/src/services/slack/slack-thread-key.d.ts +66 -0
  107. package/dist/cli/backend/src/services/slack/slack-thread-key.d.ts.map +1 -0
  108. package/dist/cli/backend/src/services/slack/slack-thread-key.js +109 -0
  109. package/dist/cli/backend/src/services/slack/slack-thread-key.js.map +1 -0
  110. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +89 -13
  111. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
  112. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +224 -50
  113. package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
  114. package/dist/cli/backend/src/types/slack.types.d.ts +43 -0
  115. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  116. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  117. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-thread-context.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-thread-context.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Stable Slack thread keys — `<slack channel id>:<thread root ts>`.
3
+ *
4
+ * An agent that is handed messages from two Slack threads of one DM has to
5
+ * be able to say which thread each answer belongs to. Before this key the
6
+ * reply path could only guess, and it guessed "the thread the owner wrote in
7
+ * last": an answer owed in thread A was posted in thread B together with the
8
+ * answer for B (2026-09-28, Ella: EFT form + HSA screenshots). The key is
9
+ * shown to the agent as `[SLACK-THREAD:<key>]` on every delivered Slack
10
+ * message, and every reply tool accepts it back.
11
+ *
12
+ * @module services/slack/slack-thread-key
13
+ */
14
+ /** One Slack thread: conversation + root ts. */
15
+ export interface SlackThreadKeyParts {
16
+ /** Slack conversation id (`C…`, `D…`, `G…`) */
17
+ slackChannelId: string;
18
+ /** Thread root ts (a top-level message's own ts) */
19
+ threadTs: string;
20
+ }
21
+ /**
22
+ * Build the key for a Slack thread.
23
+ *
24
+ * @param slackChannelId - Slack conversation id
25
+ * @param threadTs - Thread root ts (the message's own ts when top-level)
26
+ * @returns `<channel>:<ts>`
27
+ *
28
+ * @example
29
+ * formatSlackThreadKey('D0C31U6JWBF', '1790392986.498639') // 'D0C31U6JWBF:1790392986.498639'
30
+ */
31
+ export declare function formatSlackThreadKey(slackChannelId: string, threadTs: string): string;
32
+ /**
33
+ * Parse a key. Tolerates the whole tag being passed (`[SLACK-THREAD:…]`) —
34
+ * an agent copying from its prompt may take the brackets along.
35
+ *
36
+ * @param raw - Key, tag, or anything else
37
+ * @returns The parts, or null when `raw` is not a Slack thread key
38
+ */
39
+ export declare function parseSlackThreadKey(raw: unknown): SlackThreadKeyParts | null;
40
+ /**
41
+ * The tag an agent sees on a delivered Slack message.
42
+ *
43
+ * @param slackChannelId - Slack conversation id
44
+ * @param threadTs - Thread root ts
45
+ * @returns `[SLACK-THREAD:<channel>:<ts>]`
46
+ */
47
+ export declare function slackThreadTag(slackChannelId: string, threadTs: string): string;
48
+ /**
49
+ * Every distinct valid thread key tagged in a text, in order of appearance.
50
+ *
51
+ * @param text - Any text (a delivered prompt, a reply)
52
+ * @returns Parsed keys, de-duplicated
53
+ */
54
+ export declare function extractSlackThreadKeys(text: string): SlackThreadKeyParts[];
55
+ /**
56
+ * The thread a chat-v2 message's metadata names, when it names exactly one.
57
+ *
58
+ * Reads the agent-reply field ({@link SLACK_THREAD_KEY_CONSTANTS.METADATA_KEY})
59
+ * first, then the inbound Slack correlation fields (`slackChannelId` +
60
+ * `slackThreadTs`) every bridged Slack turn carries.
61
+ *
62
+ * @param metadata - chat-v2 message metadata
63
+ * @returns The thread, or null
64
+ */
65
+ export declare function slackThreadOfMetadata(metadata: Record<string, unknown> | undefined | null): SlackThreadKeyParts | null;
66
+ //# sourceMappingURL=slack-thread-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-thread-key.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-thread-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAeD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAO5E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAY1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAQtH"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Stable Slack thread keys — `<slack channel id>:<thread root ts>`.
3
+ *
4
+ * An agent that is handed messages from two Slack threads of one DM has to
5
+ * be able to say which thread each answer belongs to. Before this key the
6
+ * reply path could only guess, and it guessed "the thread the owner wrote in
7
+ * last": an answer owed in thread A was posted in thread B together with the
8
+ * answer for B (2026-09-28, Ella: EFT form + HSA screenshots). The key is
9
+ * shown to the agent as `[SLACK-THREAD:<key>]` on every delivered Slack
10
+ * message, and every reply tool accepts it back.
11
+ *
12
+ * @module services/slack/slack-thread-key
13
+ */
14
+ import { SLACK_THREAD_KEY_CONSTANTS } from '../../constants.js';
15
+ /** `C0ABC:1790392986.498639` — conversation id, a colon, a Slack ts. */
16
+ const KEY_PATTERN = /^([CDG][A-Z0-9]+):(\d{6,}\.\d{1,})$/;
17
+ /**
18
+ * `[SLACK-THREAD:<key>]` anywhere in a text. Built on use, not at load:
19
+ * suites that partially mock the constants module import this file too.
20
+ *
21
+ * @returns A fresh global regex
22
+ */
23
+ function tagPattern() {
24
+ return new RegExp(`\\[${SLACK_THREAD_KEY_CONSTANTS.TAG}:([^\\]\\s]+)\\]`, 'g');
25
+ }
26
+ /**
27
+ * Build the key for a Slack thread.
28
+ *
29
+ * @param slackChannelId - Slack conversation id
30
+ * @param threadTs - Thread root ts (the message's own ts when top-level)
31
+ * @returns `<channel>:<ts>`
32
+ *
33
+ * @example
34
+ * formatSlackThreadKey('D0C31U6JWBF', '1790392986.498639') // 'D0C31U6JWBF:1790392986.498639'
35
+ */
36
+ export function formatSlackThreadKey(slackChannelId, threadTs) {
37
+ return `${slackChannelId}:${threadTs}`;
38
+ }
39
+ /**
40
+ * Parse a key. Tolerates the whole tag being passed (`[SLACK-THREAD:…]`) —
41
+ * an agent copying from its prompt may take the brackets along.
42
+ *
43
+ * @param raw - Key, tag, or anything else
44
+ * @returns The parts, or null when `raw` is not a Slack thread key
45
+ */
46
+ export function parseSlackThreadKey(raw) {
47
+ if (typeof raw !== 'string')
48
+ return null;
49
+ let s = raw.trim();
50
+ const tagPrefix = `[${SLACK_THREAD_KEY_CONSTANTS.TAG}:`;
51
+ if (s.startsWith(tagPrefix) && s.endsWith(']'))
52
+ s = s.slice(tagPrefix.length, -1);
53
+ const m = KEY_PATTERN.exec(s);
54
+ return m ? { slackChannelId: m[1], threadTs: m[2] } : null;
55
+ }
56
+ /**
57
+ * The tag an agent sees on a delivered Slack message.
58
+ *
59
+ * @param slackChannelId - Slack conversation id
60
+ * @param threadTs - Thread root ts
61
+ * @returns `[SLACK-THREAD:<channel>:<ts>]`
62
+ */
63
+ export function slackThreadTag(slackChannelId, threadTs) {
64
+ return `[${SLACK_THREAD_KEY_CONSTANTS.TAG}:${formatSlackThreadKey(slackChannelId, threadTs)}]`;
65
+ }
66
+ /**
67
+ * Every distinct valid thread key tagged in a text, in order of appearance.
68
+ *
69
+ * @param text - Any text (a delivered prompt, a reply)
70
+ * @returns Parsed keys, de-duplicated
71
+ */
72
+ export function extractSlackThreadKeys(text) {
73
+ const out = [];
74
+ const seen = new Set();
75
+ for (const m of text.matchAll(tagPattern())) {
76
+ const parts = parseSlackThreadKey(m[1]);
77
+ if (!parts)
78
+ continue;
79
+ const k = formatSlackThreadKey(parts.slackChannelId, parts.threadTs);
80
+ if (seen.has(k))
81
+ continue;
82
+ seen.add(k);
83
+ out.push(parts);
84
+ }
85
+ return out;
86
+ }
87
+ /**
88
+ * The thread a chat-v2 message's metadata names, when it names exactly one.
89
+ *
90
+ * Reads the agent-reply field ({@link SLACK_THREAD_KEY_CONSTANTS.METADATA_KEY})
91
+ * first, then the inbound Slack correlation fields (`slackChannelId` +
92
+ * `slackThreadTs`) every bridged Slack turn carries.
93
+ *
94
+ * @param metadata - chat-v2 message metadata
95
+ * @returns The thread, or null
96
+ */
97
+ export function slackThreadOfMetadata(metadata) {
98
+ if (!metadata)
99
+ return null;
100
+ const explicit = parseSlackThreadKey(metadata[SLACK_THREAD_KEY_CONSTANTS.METADATA_KEY]);
101
+ if (explicit)
102
+ return explicit;
103
+ const ch = metadata.slackChannelId;
104
+ const ts = metadata.slackThreadTs;
105
+ if (typeof ch === 'string' && ch && typeof ts === 'string' && ts)
106
+ return { slackChannelId: ch, threadTs: ts };
107
+ return null;
108
+ }
109
+ //# sourceMappingURL=slack-thread-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-thread-key.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-thread-key.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,8 @@ export interface TypingPlaceholder {
66
66
  phase: TypingPhase;
67
67
  /** The person's message this placeholder answers (gets ✅ when the agent settles without replying) */
68
68
  sourceTs?: string;
69
+ /** When it was posted (ms) — the order replies are owed in */
70
+ postedAt?: number;
69
71
  }
70
72
  /** Identifies one pending reply: this agent, in this Slack conversation/thread. */
71
73
  export interface TypingKeyParts {
@@ -85,6 +87,14 @@ export interface SlackTypingPlaceholderDeps {
85
87
  * "working on it" stayed after the 17:40 restart, 2026-09-25).
86
88
  */
87
89
  storePath?: string;
90
+ /**
91
+ * Whether the agent is in the middle of a turn right now. Consulted when a
92
+ * placeholder that was too young to take down at turn end is looked at
93
+ * again; without it the second look takes it down unconditionally.
94
+ */
95
+ isAgentMidTurn?: (agentSession: string) => boolean;
96
+ /** Override for {@link SLACK_TYPING_CONSTANTS.REPLACE_BY_EDIT} (tests). */
97
+ replaceByEdit?: boolean;
88
98
  }
89
99
  /**
90
100
  * Posts, resolves, and expires typing placeholders.
@@ -101,6 +111,15 @@ export declare class SlackTypingPlaceholderService {
101
111
  private readonly expired;
102
112
  /** Placeholders being posted right now (two copies of one message must not post two). */
103
113
  private readonly inFlight;
114
+ /**
115
+ * One operation at a time per thread. An interim note (take the
116
+ * placeholder down, put a fresh one back) racing the final answer let the
117
+ * answer find nothing to replace and then the fresh placeholder appear
118
+ * under it, where it stayed (2026-09-28).
119
+ */
120
+ private readonly locks;
121
+ /** Agents with a turn-end second look already scheduled. */
122
+ private readonly recheckScheduled;
104
123
  /**
105
124
  * @param deps - Slack slice plus optional timer overrides for tests
106
125
  */
@@ -115,6 +134,14 @@ export declare class SlackTypingPlaceholderService {
115
134
  * @returns The placeholder, or null when Slack is disconnected or the post failed
116
135
  */
117
136
  begin(key: TypingKeyParts, identity: TypingIdentity, phase?: TypingPhase, sourceTs?: string): Promise<TypingPlaceholder | null>;
137
+ /**
138
+ * Run `fn` after every earlier operation on the same thread has finished.
139
+ *
140
+ * @param k - Thread key
141
+ * @param fn - The operation
142
+ * @returns Its result
143
+ */
144
+ private withLock;
118
145
  /**
119
146
  * Move a pending placeholder to another phase (e.g. the agent finished
120
147
  * waking and now holds the message → "is working on it…"). No-op when nothing
@@ -142,29 +169,67 @@ export declare class SlackTypingPlaceholderService {
142
169
  */
143
170
  take(key: TypingKeyParts): TypingPlaceholder | null;
144
171
  /**
145
- * Post the reply as a new message and remove the placeholder.
172
+ * Every placeholder outstanding in one thread (pending and timed out),
173
+ * oldest first, no longer tracked. Timers are cancelled.
174
+ *
175
+ * @param key - Agent + conversation (+ thread)
176
+ * @returns The placeholders, oldest first
177
+ */
178
+ private takeAll;
179
+ /**
180
+ * Take one placeholder off Slack: deleted, or — where this bot cannot
181
+ * delete — edited to the settled note so it no longer reads as pending.
182
+ *
183
+ * @param placeholder - The placeholder
184
+ */
185
+ private remove;
186
+ /**
187
+ * The answer for a thread arrived: it takes the place of the thread's
188
+ * placeholder, and no other placeholder is left in that thread.
146
189
  *
147
- * The reply used to be edited into the placeholder. Slack does not notify
148
- * anyone of an edit — no unread mark, no badge, no push — so once
149
- * "working on it…" placeholders became common the owner could no longer
150
- * tell that an answer had arrived (2026-09-23). A new message notifies
151
- * like any other. The placeholder is deleted after the reply is up, so
152
- * the thread never goes without either.
190
+ * With REPLACE_BY_EDIT (default) the OLDEST placeholder in the thread is
191
+ * edited into the answer and every other one there is deleted — one
192
+ * answer covering two messages sent back to back leaves nothing behind
193
+ * (2026-09-28). Otherwise (the 2026-09-23 behaviour: an edit raises no
194
+ * notification) the answer is posted as a new message and the
195
+ * placeholders are deleted after it, so the thread never goes without
196
+ * either. A failed edit falls back to posting.
153
197
  *
154
- * Without a way to delete (older wiring), the placeholder is edited into
155
- * the reply as before.
198
+ * Waits for a placeholder still being posted in that thread, and for any
199
+ * other operation there, so a placeholder can never go up after the
200
+ * answer that should have replaced it.
156
201
  *
157
202
  * @param key - Agent + conversation (+ thread)
158
203
  * @param text - The reply
159
204
  * @param identity - The agent's bot token
160
- * @returns 'replaced' when a placeholder gave way to a new message, 'edited' when it was edited in place, 'posted' when there was none
205
+ * @param opts - `reopen`: the reply is an interim note — put a fresh placeholder back under it, in the same step
206
+ * @returns 'edited' when a placeholder became the reply, 'replaced' when the reply was posted and a placeholder removed, 'posted' when there was none
161
207
  */
162
- resolve(key: TypingKeyParts, text: string, identity: TypingIdentity): Promise<'replaced' | 'edited' | 'posted'>;
208
+ resolve(key: TypingKeyParts, text: string, identity: TypingIdentity, opts?: {
209
+ reopen?: TypingPhase;
210
+ }): Promise<'replaced' | 'edited' | 'posted'>;
211
+ /**
212
+ * The agent answered in this thread some other way (a file, a post with
213
+ * its own thread): take every placeholder in the thread down.
214
+ *
215
+ * @param key - Agent + conversation (+ thread)
216
+ * @returns How many were taken down
217
+ */
218
+ dropThread(key: TypingKeyParts): Promise<number>;
219
+ /**
220
+ * Whether a placeholder (pending or timed out) is outstanding in this thread.
221
+ *
222
+ * @param key - Agent + conversation (+ thread)
223
+ * @returns True when the agent owes an answer there
224
+ */
225
+ owes(key: TypingKeyParts): boolean;
163
226
  /**
164
227
  * The conversation an agent still owes an answer in, on one Slack channel
165
- * or DM: its pending (or timed-out) placeholder, newest first. An agent that
228
+ * or DM: its pending (or timed-out) placeholder, OLDEST first. An agent that
166
229
  * answers with the `slack-post` skill instead of its reply skill names no
167
- * thread; this is where that answer belongs.
230
+ * thread; this is where that answer belongs. Oldest, because answers come
231
+ * in the order questions were asked: newest-first put the answer owed in
232
+ * an earlier thread under the latest question (2026-09-28).
168
233
  *
169
234
  * @param agentSession - The agent
170
235
  * @param slackChannelId - Channel or DM it is posting to
@@ -185,6 +250,17 @@ export declare class SlackTypingPlaceholderService {
185
250
  * @returns How many placeholders were removed
186
251
  */
187
252
  settleTurnWithoutReply(agentSession: string, now?: number): Promise<number>;
253
+ /**
254
+ * A placeholder too young to take down when the turn ended (it may belong
255
+ * to a message delivered just before the idle signal) gets a second look
256
+ * once it is old enough: gone then unless the agent is mid-turn — in which
257
+ * case that turn's own end settles it. Without this it waited for the
258
+ * agent's next turn, which might be hours away (2026-09-28).
259
+ *
260
+ * @param agentSession - Agent whose turn ended
261
+ * @param at - When (epoch ms) the youngest skipped placeholder is old enough, margin included
262
+ */
263
+ private scheduleSettleRecheck;
188
264
  /** Save outstanding placeholders (pending + timed out) so a restart can still take them down. */
189
265
  private persist;
190
266
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"slack-typing-placeholder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-typing-placeholder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}