crewly 1.20.228 → 1.20.229

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 (53) hide show
  1. package/config/skills/agent/core/app-comments/SKILL.md +39 -5
  2. package/config/skills/agent/core/app-comments/execute.sh +9 -4
  3. package/config/skills/agent/core/app-comments/execute.test.sh +9 -0
  4. package/dist/backend/backend/src/constants.d.ts +29 -0
  5. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  6. package/dist/backend/backend/src/constants.js +29 -0
  7. package/dist/backend/backend/src/constants.js.map +1 -1
  8. package/dist/backend/backend/src/services/apps/app-roster.service.d.ts +86 -0
  9. package/dist/backend/backend/src/services/apps/app-roster.service.d.ts.map +1 -0
  10. package/dist/backend/backend/src/services/apps/app-roster.service.js +119 -0
  11. package/dist/backend/backend/src/services/apps/app-roster.service.js.map +1 -0
  12. package/dist/backend/backend/src/services/apps/app-wake-message.d.ts +24 -1
  13. package/dist/backend/backend/src/services/apps/app-wake-message.d.ts.map +1 -1
  14. package/dist/backend/backend/src/services/apps/app-wake-message.js +62 -5
  15. package/dist/backend/backend/src/services/apps/app-wake-message.js.map +1 -1
  16. package/dist/backend/backend/src/services/apps/app-wake.service.d.ts +56 -0
  17. package/dist/backend/backend/src/services/apps/app-wake.service.d.ts.map +1 -1
  18. package/dist/backend/backend/src/services/apps/app-wake.service.js +211 -8
  19. package/dist/backend/backend/src/services/apps/app-wake.service.js.map +1 -1
  20. package/dist/backend/backend/src/services/apps/apps-registry.service.d.ts +20 -0
  21. package/dist/backend/backend/src/services/apps/apps-registry.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/apps/apps-registry.service.js +24 -0
  23. package/dist/backend/backend/src/services/apps/apps-registry.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/apps/apps.service.d.ts +42 -0
  25. package/dist/backend/backend/src/services/apps/apps.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/apps/apps.service.js +52 -5
  27. package/dist/backend/backend/src/services/apps/apps.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/apps/apps.wiring.d.ts +7 -0
  29. package/dist/backend/backend/src/services/apps/apps.wiring.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/apps/apps.wiring.js +9 -1
  31. package/dist/backend/backend/src/services/apps/apps.wiring.js.map +1 -1
  32. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +5 -3
  33. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +48 -22
  35. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +1 -1
  37. package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +9 -4
  39. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  40. package/dist/backend/build-info.json +2 -2
  41. package/dist/cli/backend/src/constants.d.ts +29 -0
  42. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  43. package/dist/cli/backend/src/constants.js +29 -0
  44. package/dist/cli/backend/src/constants.js.map +1 -1
  45. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +5 -3
  46. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  47. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +48 -22
  48. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  49. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +1 -1
  50. package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
  51. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +9 -4
  52. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  53. package/package.json +1 -1
@@ -0,0 +1,119 @@
1
+ /**
2
+ * AppRosterService — tells Crewly Cloud which agents this instance runs, so
3
+ * the owner can @mention them in a Crewly App comment (crewly-services
4
+ * apps/SPEC.md §12.1).
5
+ *
6
+ * - The roster is every member of a team that is neither archived nor paused
7
+ * (a paused team is hidden from other agents), plus the orchestrator as
8
+ * "Orc". Session, display name and team name only.
9
+ * - `pushIfChanged()` sends `PUT /roster` when the list changed since the
10
+ * last successful push, or when the last push is older than
11
+ * ROSTER.REFRESH_MS (Cloud stops offering a roster it has not heard from
12
+ * for 14 days). It is cheap to call often: the app poller calls it every
13
+ * tick, and a publish calls it once.
14
+ * - Pushes are serialised; a failure is logged and retried on the next call.
15
+ *
16
+ * @module services/apps/app-roster.service
17
+ */
18
+ import { createHash } from 'crypto';
19
+ import { CREWLY_APPS_CONSTANTS, ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
20
+ import { LoggerService } from '../core/logger.service.js';
21
+ const C = CREWLY_APPS_CONSTANTS;
22
+ const SESSION_RE = /^[A-Za-z0-9_.@:-]{1,128}$/;
23
+ /**
24
+ * The agents of an instance, as the owner sees them in the @ list.
25
+ *
26
+ * @param teams - Teams on this instance
27
+ * @returns Members of active, unpaused teams (de-duplicated by session), then the orchestrator
28
+ */
29
+ export function buildRoster(teams) {
30
+ const out = [];
31
+ const seen = new Set();
32
+ for (const t of teams) {
33
+ if (!t || t.archived || t.paused)
34
+ continue;
35
+ for (const m of t.members ?? []) {
36
+ const session = m.sessionName || m.agentId || '';
37
+ if (!SESSION_RE.test(session) || seen.has(session) || session === ORCHESTRATOR_SESSION_NAME)
38
+ continue;
39
+ seen.add(session);
40
+ const name = (m.name ?? '').replace(/\s+/g, ' ').trim().slice(0, C.ROSTER.MAX_NAME_CHARS) || session;
41
+ const team = (t.name ?? '').replace(/\s+/g, ' ').trim().slice(0, C.ROSTER.MAX_TEAM_CHARS) || null;
42
+ out.push({ session, name, team });
43
+ if (out.length >= C.ROSTER.MAX_AGENTS - 1)
44
+ break;
45
+ }
46
+ if (out.length >= C.ROSTER.MAX_AGENTS - 1)
47
+ break;
48
+ }
49
+ out.push({ session: ORCHESTRATOR_SESSION_NAME, name: 'Orc', team: null });
50
+ return out;
51
+ }
52
+ /**
53
+ * Whether a session is one of this instance's mentionable agents.
54
+ *
55
+ * @param teams - Teams on this instance
56
+ * @param session - Agent session
57
+ * @returns True for a member of an active, unpaused team, or the orchestrator
58
+ */
59
+ export function isRosterAgent(teams, session) {
60
+ return buildRoster(teams).some((a) => a.session === session);
61
+ }
62
+ const hashOf = (agents) => createHash('sha256').update(JSON.stringify(agents.map((a) => [a.session, a.name, a.team]))).digest('hex');
63
+ /**
64
+ * Pushes this instance's roster to Crewly Cloud when it changes.
65
+ */
66
+ export class AppRosterService {
67
+ deps;
68
+ now;
69
+ logger;
70
+ lastHash = null;
71
+ lastPushAt = 0;
72
+ running = null;
73
+ constructor(deps) {
74
+ this.deps = deps;
75
+ this.now = deps.now ?? (() => Date.now());
76
+ this.logger = deps.logger ?? LoggerService.getInstance().createComponentLogger('AppRoster');
77
+ }
78
+ /**
79
+ * Push the roster when it changed or the last push is getting old.
80
+ *
81
+ * @returns Whether a push was sent and accepted
82
+ */
83
+ pushIfChanged() {
84
+ if (this.running)
85
+ return this.running;
86
+ this.running = this.run().finally(() => {
87
+ this.running = null;
88
+ });
89
+ return this.running;
90
+ }
91
+ async run() {
92
+ if (!this.deps.client.isAvailable())
93
+ return false;
94
+ let agents;
95
+ try {
96
+ agents = buildRoster(await this.deps.getTeams());
97
+ }
98
+ catch (err) {
99
+ this.logger.warn('Could not read teams for the app roster', { error: err instanceof Error ? err.message : String(err) });
100
+ return false;
101
+ }
102
+ const hash = hashOf(agents);
103
+ if (hash === this.lastHash && this.now() - this.lastPushAt < C.ROSTER.REFRESH_MS)
104
+ return false;
105
+ try {
106
+ await this.deps.client.request('PUT', '/roster', { body: { agents }, timeoutMs: C.POLL_REQUEST_TIMEOUT_MS });
107
+ if (hash !== this.lastHash)
108
+ this.logger.info('Pushed the agent roster for app comment @mentions', { agents: agents.length });
109
+ this.lastHash = hash;
110
+ this.lastPushAt = this.now();
111
+ return true;
112
+ }
113
+ catch (err) {
114
+ this.logger.warn('Pushing the agent roster failed; will retry', { error: err instanceof Error ? err.message : String(err) });
115
+ return false;
116
+ }
117
+ }
118
+ }
119
+ //# sourceMappingURL=app-roster.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-roster.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-roster.service.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,9 @@
11
11
  * Owner comments (crewly#1056) name the element they point at (summary,
12
12
  * selector, text, data-crewly-id, page, version) so the agent can find it in
13
13
  * its source; the comment text and the anchor are cleaned and labelled
14
- * untrusted like the rest.
14
+ * untrusted like the rest. A comment can @mention agents (crewly-services
15
+ * apps/SPEC.md §12.1): a mentioned agent gets its own message ("The owner
16
+ * mentioned you…"), and the publisher's message names who was mentioned.
15
17
  *
16
18
  * @module services/apps/app-wake-message
17
19
  */
@@ -31,6 +33,12 @@ export interface AppCommentAnchor {
31
33
  page?: string;
32
34
  quote?: string;
33
35
  }
36
+ /** An agent the owner @mentioned (names come from Cloud's roster). */
37
+ export interface AppCommentMention {
38
+ session?: string;
39
+ name?: string;
40
+ instanceId?: string;
41
+ }
34
42
  /** A comment thread as Cloud attaches it to a comment change. */
35
43
  export interface AppCommentThread {
36
44
  id?: string;
@@ -38,6 +46,7 @@ export interface AppCommentThread {
38
46
  version?: number | null;
39
47
  anchor?: AppCommentAnchor;
40
48
  body?: string;
49
+ mentions?: AppCommentMention[];
41
50
  replies?: Array<{
42
51
  id?: string;
43
52
  body?: string;
@@ -45,6 +54,7 @@ export interface AppCommentThread {
45
54
  kind?: string;
46
55
  name?: string;
47
56
  };
57
+ mentions?: AppCommentMention[];
48
58
  }>;
49
59
  status?: string;
50
60
  }
@@ -66,6 +76,7 @@ export interface AppChange {
66
76
  id?: string;
67
77
  op?: string;
68
78
  replyId?: string;
79
+ mentions?: AppCommentMention[];
69
80
  thread?: AppCommentThread | null;
70
81
  };
71
82
  actor?: AppChangeActor;
@@ -77,6 +88,10 @@ export interface WakeMessageInput {
77
88
  appName: string;
78
89
  /** Whether the recipient is the agent that published the app */
79
90
  isPublisher: boolean;
91
+ /** The recipient was @mentioned in (some of) the comments */
92
+ mentioned?: boolean;
93
+ /** Mentioned agents no longer on this machine (the recipient is the orchestrator) */
94
+ goneMentions?: string[];
80
95
  dataChanges: AppChange[];
81
96
  events: AppChange[];
82
97
  /** Anonymous submissions from public visitors (P3) */
@@ -180,6 +195,14 @@ export declare function anchorSummary(a: AppCommentAnchor | undefined): string;
180
195
  * @returns `data-crewly-id "x", selector …, text "…", page index.html, app version 4`
181
196
  */
182
197
  export declare function anchorDetails(a: AppCommentAnchor | undefined, version?: number | null): string;
198
+ /**
199
+ * The agents a comment change @mentions: the change's own list (app feed),
200
+ * else the reply's or the comment's from the thread (mention inbox).
201
+ *
202
+ * @param c - A comment change
203
+ * @returns Mentions (possibly empty)
204
+ */
205
+ export declare function mentionsOf(c: AppChange): AppCommentMention[];
183
206
  /**
184
207
  * One owner comment event, readable: who did what on which element, then the
185
208
  * text quoted underneath.
@@ -1 +1 @@
1
- {"version":3,"file":"app-wake-message.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-wake-message.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake-message.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,9 @@
11
11
  * Owner comments (crewly#1056) name the element they point at (summary,
12
12
  * selector, text, data-crewly-id, page, version) so the agent can find it in
13
13
  * its source; the comment text and the anchor are cleaned and labelled
14
- * untrusted like the rest.
14
+ * untrusted like the rest. A comment can @mention agents (crewly-services
15
+ * apps/SPEC.md §12.1): a mentioned agent gets its own message ("The owner
16
+ * mentioned you…"), and the publisher's message names who was mentioned.
15
17
  *
16
18
  * @module services/apps/app-wake-message
17
19
  */
@@ -238,6 +240,36 @@ export function anchorDetails(a, version) {
238
240
  return parts.join(', ');
239
241
  }
240
242
  const COMMENT_ID_RE = C.COMMENTS.ID_PATTERN;
243
+ /**
244
+ * The agents a comment change @mentions: the change's own list (app feed),
245
+ * else the reply's or the comment's from the thread (mention inbox).
246
+ *
247
+ * @param c - A comment change
248
+ * @returns Mentions (possibly empty)
249
+ */
250
+ export function mentionsOf(c) {
251
+ const info = c.comment ?? {};
252
+ if (Array.isArray(info.mentions))
253
+ return info.mentions;
254
+ const t = info.thread;
255
+ if (!t)
256
+ return [];
257
+ if (info.op === 'reply') {
258
+ const mentions = (t.replies ?? []).find((x) => x.id === info.replyId)?.mentions;
259
+ return Array.isArray(mentions) ? mentions : [];
260
+ }
261
+ if (info.op === 'add')
262
+ return Array.isArray(t.mentions) ? t.mentions : [];
263
+ return [];
264
+ }
265
+ /** ` (mentioned: @Atlas, @Nova)` for a comment change, or ''. */
266
+ function mentionNote(c) {
267
+ const names = mentionsOf(c)
268
+ .map((m) => inline(m.name || m.session || '', 40))
269
+ .filter(Boolean)
270
+ .slice(0, 10);
271
+ return names.length ? ` (mentioned: ${names.map((n) => `@${n}`).join(', ')})` : '';
272
+ }
241
273
  function commentBodyBlock(text) {
242
274
  let s = sanitizeAppText(text);
243
275
  if (s.length > C.COMMENTS.MAX_WAKE_BODY_CHARS)
@@ -259,15 +291,18 @@ export function describeCommentChange(c) {
259
291
  const where = t ? anchorSummary(t.anchor) : 'an element';
260
292
  if (!t)
261
293
  return [` Owner ${info.op === 'reply' ? 'replied on' : info.op === 'reopen' ? 'reopened' : 'commented on'} comment ${id} (the thread no longer exists).`];
294
+ const mentioned = mentionNote(c);
262
295
  if (info.op === 'reply') {
263
296
  const reply = (t.replies ?? []).find((r) => r.id === info.replyId);
264
- return [` Owner replied on ${num} (${where}; comment id ${id}):`, commentBodyBlock(reply?.body)];
297
+ const details = anchorDetails(t.anchor, t.version);
298
+ // A mentioned agent may not have seen the thread: give it the element too.
299
+ return [` Owner replied on ${num} (${where}; comment id ${id}${mentioned && details ? `; ${details}` : ''})${mentioned}:`, commentBodyBlock(reply?.body)];
265
300
  }
266
301
  if (info.op === 'reopen') {
267
302
  return [` Owner reopened ${num} on ${where} (comment id ${id}): it is not done yet. The original comment:`, commentBodyBlock(t.body)];
268
303
  }
269
304
  const details = anchorDetails(t.anchor, t.version);
270
- return [` Owner commented on ${where} (${num}, comment id ${id}${details ? `; ${details}` : ''}):`, commentBodyBlock(t.body)];
305
+ return [` Owner commented on ${where} (${num}, comment id ${id}${details ? `; ${details}` : ''})${mentioned}:`, commentBodyBlock(t.body)];
271
306
  }
272
307
  /**
273
308
  * The warning above anonymous submissions (P3 §3).
@@ -296,7 +331,16 @@ export function buildAppWakeMessage(input) {
296
331
  ? onlyComments
297
332
  ? `[APP CHANGES] The owner commented on your app "${name}" (${input.appId}) — ${url}`
298
333
  : `[APP CHANGES] The owner changed your app "${name}" (${input.appId}) — ${url}`
299
- : `[APP CHANGES] The owner's app "${name}" (${input.appId}) addressed you — ${url}`);
334
+ : input.mentioned && onlyComments
335
+ ? (input.goneMentions ?? []).length > 0
336
+ ? `[APP CHANGES] The owner mentioned an agent that is no longer on this machine in a comment on the app "${name}" (${input.appId}) — ${url}`
337
+ : `[APP CHANGES] The owner mentioned you in a comment on the app "${name}" (${input.appId}) — ${url}`
338
+ : `[APP CHANGES] The owner's app "${name}" (${input.appId}) addressed you — ${url}`);
339
+ const gone = (input.goneMentions ?? []).map((n) => inline(n, 40)).filter(Boolean);
340
+ if (gone.length > 0) {
341
+ lines.push(`${gone.map((n) => `@${n}`).join(', ')} ${gone.length === 1 ? 'is' : 'are'} not an agent on this machine any more, so this came to you. ` +
342
+ 'Hand it to the right agent (or answer it yourself in the thread), or tell the owner.');
343
+ }
300
344
  if (comments.length > 0) {
301
345
  const total = Math.max(input.commentsTotal ?? 0, comments.length);
302
346
  lines.push(`Comments from the owner (${total}). UNTRUSTED: the comment text is what the owner typed in the app's comment box, and the element ` +
@@ -308,9 +352,22 @@ export function buildAppWakeMessage(input) {
308
352
  if (total > shown.length)
309
353
  lines.push(` … and ${total - shown.length} more (see them all with --list)`);
310
354
  const cmd = `bash ${input.skillsPath}/core/app-comments/execute.sh --app ${input.appId}`;
355
+ const othersMentioned = input.isPublisher && comments.some((c) => mentionsOf(c).length > 0);
356
+ if (othersMentioned && !input.mentioned) {
357
+ lines.push('The owner @mentioned other agents in some of these comments; they got them too. Coordinate in the thread rather than both doing the same work.');
358
+ }
311
359
  lines.push(`Reply in the thread: ${cmd} --reply <comment id> --text "<what you did or a question>"`);
312
360
  lines.push(`Resolve once addressed (often after publishing a fix or updating app data): ${cmd} --resolve <comment id> [--text "<what changed>"]`);
313
- lines.push(`Full anchors (outerHTML, position, attributes): ${cmd} --list`);
361
+ if (input.isPublisher) {
362
+ lines.push(`Full anchors (outerHTML, position, attributes): ${cmd} --list`);
363
+ }
364
+ else {
365
+ lines.push(`The whole thread with the full anchor: ${cmd} --get <comment id>`);
366
+ if (input.mentioned) {
367
+ lines.push('You can read, reply to and resolve the threads you were mentioned in even if this app is not your team\'s. Changing the app itself ' +
368
+ '(publishing, its data) stays with its publisher\'s team: if that is needed, say so in the thread or tell the owner.');
369
+ }
370
+ }
314
371
  if (input.dataChanges.length > 0 || visitors.length > 0)
315
372
  lines.push('');
316
373
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-wake-message.js","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-wake-message.js","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake-message.ts"],"names":[],"mappings":"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"}
@@ -49,11 +49,23 @@
49
49
  * changes are read again and batched again.
50
50
  * - An `ask` reaches a named agent only when it is in the publisher's team
51
51
  * and already running; it never starts a stopped agent.
52
+ * - @mentions (crewly-services apps/SPEC.md §12.1): every pass also reads
53
+ * this instance's mention inbox (`GET /mentions`, any app of the account,
54
+ * wherever it was published; bounded by POLL_APP_DEADLINE_MS like an app
55
+ * poll) and wakes each mentioned agent that runs here (starting it like
56
+ * the publisher; the orchestrator for "@Orc"), with the same untrusted
57
+ * marking and anchor, through the same batches, delivery timeout, retries,
58
+ * watchdog and owner-priority tag. The publisher still gets the comment
59
+ * from the app feed, noting who was mentioned, unless it was mentioned
60
+ * itself (then the mention is the one message). A mention of an agent that
61
+ * is gone from this machine goes to the orchestrator. The roster Cloud
62
+ * offers the owner is pushed first (`AppRosterService`, only when changed).
52
63
  *
53
64
  * @module services/apps/app-wake.service
54
65
  */
55
66
  import { type ComponentLogger } from '../core/logger.service.js';
56
67
  import type { AppsRegistryService } from './apps-registry.service.js';
68
+ import { type AppCommentThread } from './app-wake-message.js';
57
69
  /** The Apps API slice the poller needs. */
58
70
  export interface AppWakeClient {
59
71
  isAvailable(): boolean;
@@ -62,6 +74,19 @@ export interface AppWakeClient {
62
74
  timeoutMs?: number;
63
75
  }): Promise<T>;
64
76
  }
77
+ /** One entry of this instance's mention inbox (`GET /mentions`). */
78
+ export interface MentionItem {
79
+ seq: number;
80
+ appId: string;
81
+ appName?: string | null;
82
+ session: string;
83
+ name?: string;
84
+ op: 'add' | 'reply' | string;
85
+ commentId: string;
86
+ replyId?: string | null;
87
+ at?: string;
88
+ thread: AppCommentThread | null;
89
+ }
65
90
  /** How a wake is delivered. */
66
91
  export interface WakeDeliveryOptions {
67
92
  /** Start the agent when its session is down (only for the app's publisher) */
@@ -81,6 +106,14 @@ export interface AppWakeServiceDeps {
81
106
  resolveAgent?: (name: string, publisher: string) => Promise<string | null>;
82
107
  /** Whether an agent's session is running now */
83
108
  isRunning?: (session: string) => boolean;
109
+ /** Whether a session is one of this instance's mentionable agents (roster) */
110
+ isLocalAgent?: (session: string) => Promise<boolean>;
111
+ /** This instance's Cloud id (to tell its mentions from another machine's) */
112
+ instanceId?: () => Promise<string | null>;
113
+ /** Pushes this instance's agent roster to Cloud when it changed */
114
+ roster?: {
115
+ pushIfChanged(): Promise<boolean>;
116
+ };
84
117
  /** Agent skills root, for the command named in the message */
85
118
  skillsPath: string;
86
119
  now?: () => number;
@@ -121,6 +154,13 @@ export declare class AppWakeService {
121
154
  /** Visitor-wake cap state per app (the registry holds the persisted copy) */
122
155
  private readonly visitorWakes;
123
156
  private readonly visitorDirty;
157
+ /** Highest mention-inbox seq read, and seqs above the safe cursor already delivered */
158
+ private mentionFetched;
159
+ private mentionDelivered;
160
+ private mentionBackoff;
161
+ private myInstance;
162
+ /** Current mention-inbox read; one that missed its deadline discards its result */
163
+ private mentionToken;
124
164
  constructor(deps: AppWakeServiceDeps);
125
165
  /** Start polling (first tick after one interval). */
126
166
  start(): void;
@@ -163,6 +203,22 @@ export declare class AppWakeService {
163
203
  */
164
204
  private maybeOpenSkippedNotice;
165
205
  private newBatch;
206
+ private instance;
207
+ /**
208
+ * Whether a comment change @mentions `session` on this instance (an agent
209
+ * with the same session on another machine is someone else).
210
+ */
211
+ private mentionsHere;
212
+ private pollMentionsSafely;
213
+ /**
214
+ * Mention-inbox backoff state (tests).
215
+ *
216
+ * @returns Failures in a row and when it is next due, or null when healthy
217
+ */
218
+ mentionsBackoff(): AppBackoff | null;
219
+ private pollMentions;
220
+ private persistMentionProgress;
221
+ private handleMention;
166
222
  private recipientFor;
167
223
  private handle;
168
224
  private arm;
@@ -1 +1 @@
1
- {"version":3,"file":"app-wake.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAGH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAsC,MAAM,4BAA4B,CAAC;AAK1G,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,WAAW,IAAI,OAAO,CAAC;IACvB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1I;AAED,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8FAA8F;IAC9F,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,gCAAgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,uFAAuF;IACvF,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,wFAAwF;IACxF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3E,gDAAgD;IAChD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAiED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,eAAO,MAAM,aAAa,mBAAuB,CAAC;AAElD;;GAEG;AACH,qBAAa,cAAc;IA0Bb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAzBjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,mGAAmG;IACnG,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAErB,IAAI,EAAE,kBAAkB;IAKrD,qDAAqD;IACrD,KAAK,IAAI,IAAI;IAMb,gHAAgH;IAChH,IAAI,IAAI,IAAI;IAWZ;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAK5C,OAAO,CAAC,QAAQ;IAchB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBb,OAAO;YAmBP,OAAO;IAyBrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;YASN,OAAO;IA4BrB;;;;OAIG;YACW,eAAe;IAe7B,OAAO,CAAC,KAAK;IAIb;;;OAGG;IACH,OAAO,CAAC,YAAY;YAgBN,mBAAmB;IAQjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,QAAQ;YA0BF,YAAY;YAWZ,MAAM;IAiEpB,OAAO,CAAC,GAAG;IAUX,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,wEAAwE;IACxE,OAAO,CAAC,MAAM,CAAC,KAAK;IAiBpB;;;;;;OAMG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC1C,0FAA0F;YAC5E,KAAK;IAcnB;;;;;;OAMG;YACW,IAAI;YAoFJ,SAAS;IAiCvB,uEAAuE;IACvE,OAAO,CAAC,SAAS;IAUjB;;;;;;OAMG;IACH,QAAQ,IAAI,IAAI;IAgChB,0DAA0D;IAC1D,WAAW,IAAI,MAAM,EAAE;CAGxB"}
1
+ {"version":3,"file":"app-wake.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/apps/app-wake.service.ts"],"names":[],"mappings":"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"}