crewly 1.20.86 → 1.20.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/skills/agent/core/reply-channel/SKILL.md +49 -0
- package/config/skills/agent/core/reply-channel/execute.sh +61 -0
- package/dist/backend/backend/src/constants.d.ts +2 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +2 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +85 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +76 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +105 -9
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +9 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +32 -0
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +28 -1
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +3 -2
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +141 -5
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +388 -95
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +16 -1
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/types/slack.types.d.ts +57 -0
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +2 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +2 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +76 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +105 -9
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +3 -2
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +141 -5
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +388 -95
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +16 -1
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/types/slack.types.d.ts +57 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/slack.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ export interface TeamChannelStorageApi {
|
|
|
66
66
|
onStorageEvent(listener: (event: StorageEvent) => Promise<void> | void): () => void;
|
|
67
67
|
}
|
|
68
68
|
/** Dispatcher slice — resolved lazily because it is built after the bridge. */
|
|
69
|
-
export type TeamChannelDispatcherApi = Pick<ChatV2DispatcherService, 'dispatchMessage'
|
|
69
|
+
export type TeamChannelDispatcherApi = Pick<ChatV2DispatcherService, 'dispatchMessage'> & Partial<Pick<ChatV2DispatcherService, 'planHuddleTargets'>>;
|
|
70
70
|
/** Constructor dependencies. */
|
|
71
71
|
export interface SlackTeamChannelServiceDeps {
|
|
72
72
|
slack: TeamChannelSlackApi;
|
|
@@ -93,9 +93,35 @@ export interface SlackTeamChannelServiceDeps {
|
|
|
93
93
|
* join it, so the owner is invited right after creation.
|
|
94
94
|
*/
|
|
95
95
|
getOwnerUserId?: () => string | null;
|
|
96
|
+
/** This machine's Cloud instance id — to tell whether Cloud picked this machine to wake someone. */
|
|
97
|
+
resolveInstanceId?: () => Promise<string | null>;
|
|
98
|
+
/** An ad-hoc room gained a member: tell Cloud soon, not at the next 5-minute heartbeat. */
|
|
99
|
+
onRoomsChanged?: () => void;
|
|
100
|
+
/** Ask Cloud to deliver a room message to an agent on another machine. */
|
|
101
|
+
handoffViaCloud?: (body: {
|
|
102
|
+
agentSession: string;
|
|
103
|
+
event: {
|
|
104
|
+
channel: string;
|
|
105
|
+
ts: string;
|
|
106
|
+
thread_ts?: string;
|
|
107
|
+
text?: string;
|
|
108
|
+
user?: string;
|
|
109
|
+
};
|
|
110
|
+
}) => Promise<void>;
|
|
96
111
|
/** Clock override for tests. */
|
|
97
112
|
now?: () => Date;
|
|
98
113
|
}
|
|
114
|
+
/** Result of {@link SlackTeamChannelService.handoffForAgent}. */
|
|
115
|
+
export type HandoffResult = {
|
|
116
|
+
ok: true;
|
|
117
|
+
agentSession: string;
|
|
118
|
+
displayName: string;
|
|
119
|
+
via: 'here' | 'cloud';
|
|
120
|
+
} | {
|
|
121
|
+
ok: false;
|
|
122
|
+
reason: string;
|
|
123
|
+
candidates?: string[];
|
|
124
|
+
};
|
|
99
125
|
/** Settings half of the store, exposed over REST. */
|
|
100
126
|
export interface SlackTeamChannelSettings {
|
|
101
127
|
autoCreate: boolean;
|
|
@@ -235,6 +261,8 @@ export declare class SlackTeamChannelService {
|
|
|
235
261
|
private unsubscribeIdentity;
|
|
236
262
|
/** Slack `channel:ts` of messages already routed → the persisted turn. */
|
|
237
263
|
private readonly seenInbound;
|
|
264
|
+
/** The last room presence Cloud sent per Slack channel — names for a hand-off. */
|
|
265
|
+
private readonly lastRooms;
|
|
238
266
|
private readonly onChatMessage;
|
|
239
267
|
private started;
|
|
240
268
|
/** Per-team serialisation so two team-saved events cannot create two channels. */
|
|
@@ -439,12 +467,91 @@ export declare class SlackTeamChannelService {
|
|
|
439
467
|
* @returns The routing result, or null when the channel is not mapped
|
|
440
468
|
*/
|
|
441
469
|
routeInbound(message: SlackIncomingMessage): Promise<RouteInboundResult | null>;
|
|
470
|
+
/**
|
|
471
|
+
* Who in this room is awake, from this machine's point of view.
|
|
472
|
+
*
|
|
473
|
+
* Local members are judged by what is running here now; members on other
|
|
474
|
+
* machines by what Cloud last heard from them. Cloud names the one machine
|
|
475
|
+
* that wakes someone when nobody is awake. One case it cannot see: it may
|
|
476
|
+
* believe an agent of ours is awake when that agent has just stopped.
|
|
477
|
+
* Then nobody would be woken anywhere — every other machine thinks we have
|
|
478
|
+
* it — so this machine, the only one that knows better, wakes the router.
|
|
479
|
+
*
|
|
480
|
+
* @param message - Inbound message (carries Cloud's presence, when any)
|
|
481
|
+
* @param mapping - Its channel mapping
|
|
482
|
+
* @param teamMembers - Team channel members, or null for an ad-hoc room
|
|
483
|
+
* @returns State for the dispatcher and a line for the prompt; null without an awake check
|
|
484
|
+
*/
|
|
485
|
+
private roomStateFor;
|
|
486
|
+
/**
|
|
487
|
+
* Hand a room message to one agent, wherever it runs.
|
|
488
|
+
*
|
|
489
|
+
* Used by the room's router — the orchestrator of a private room, woken
|
|
490
|
+
* because nobody in it was awake. Its own bot is usually not in the room,
|
|
491
|
+
* so it cannot @ the agent there the way a member would. An agent on this
|
|
492
|
+
* machine gets the message delivered again as if @'d (👀 and a "waking
|
|
493
|
+
* up…" placeholder from its own bot); one on another machine gets it
|
|
494
|
+
* through Cloud, which does the same over there.
|
|
495
|
+
*
|
|
496
|
+
* @param input - Chat channel, the message to pass on, and who should answer it
|
|
497
|
+
* @returns Who it went to, or why it could not
|
|
498
|
+
*/
|
|
499
|
+
handoffForAgent(input: {
|
|
500
|
+
chatChannelId: string;
|
|
501
|
+
messageId?: string;
|
|
502
|
+
threadId?: string;
|
|
503
|
+
name: string;
|
|
504
|
+
}): Promise<HandoffResult>;
|
|
505
|
+
/**
|
|
506
|
+
* The ad-hoc rooms this machine's agents are in, for the Cloud heartbeat —
|
|
507
|
+
* Cloud builds each room's cross-machine roster from these.
|
|
508
|
+
*
|
|
509
|
+
* @returns Slack channel → local member sessions
|
|
510
|
+
*/
|
|
511
|
+
listRooms(): Promise<Array<{
|
|
512
|
+
channelId: string;
|
|
513
|
+
agents: string[];
|
|
514
|
+
}>>;
|
|
515
|
+
/**
|
|
516
|
+
* The local agent whose own app delivered this copy, if any.
|
|
517
|
+
*
|
|
518
|
+
* A direct message is never a room: an agent's DM is handled by the DM
|
|
519
|
+
* service, and anything that falls through from there belongs to the
|
|
520
|
+
* orchestrator path, not to an ad-hoc huddle.
|
|
521
|
+
*
|
|
522
|
+
* @param message - The inbound message
|
|
523
|
+
* @returns The agent's session name, or null
|
|
524
|
+
*/
|
|
525
|
+
private localReceivingAgent;
|
|
526
|
+
/**
|
|
527
|
+
* Put 👀 on the message — one per agent that will receive it.
|
|
528
|
+
*
|
|
529
|
+
* It used to be a single reaction meaning "Crewly got this". The owner
|
|
530
|
+
* reads it as "how many agents saw this", and with several agents in a
|
|
531
|
+
* room that is the more useful answer: three agents who will each weigh a
|
|
532
|
+
* message should show three eyes, and an agent that was not handed the
|
|
533
|
+
* message should show none, so the count is honest rather than "everyone
|
|
534
|
+
* in the channel". Each agent reacts with its own bot.
|
|
535
|
+
*
|
|
536
|
+
* When nobody in particular receives it, or no receiving agent has a bot
|
|
537
|
+
* of its own, one reaction still goes on so the owner can see the message
|
|
538
|
+
* arrived — the 2026-09-21 lesson: no eyes reads as nothing arrived.
|
|
539
|
+
*
|
|
540
|
+
* @param message - The inbound message
|
|
541
|
+
* @param mapping - Its channel mapping
|
|
542
|
+
* @param mentions - Agents @'d in it
|
|
543
|
+
* @param planned - Who will receive it, from the dispatcher; null when unknown
|
|
544
|
+
*/
|
|
545
|
+
private acknowledgeSeen;
|
|
442
546
|
/**
|
|
443
547
|
* Any Slack channel becomes routable the moment a local agent's bot is
|
|
444
|
-
* @'d in it
|
|
445
|
-
*
|
|
446
|
-
*
|
|
447
|
-
*
|
|
548
|
+
* @'d in it, or a message reaches us through a local agent's own app
|
|
549
|
+
* (Slack only delivers to apps that are members, so that proves the bot
|
|
550
|
+
* is in the channel). The owner invited agents from different teams into
|
|
551
|
+
* a private channel, say: a huddle is created for the channel with those
|
|
552
|
+
* agents as members and mapped under the synthetic team id
|
|
553
|
+
* `adhoc:<channel>`. Anything else is left to the caller (orchestrator
|
|
554
|
+
* path).
|
|
448
555
|
*
|
|
449
556
|
* @param message - The inbound message
|
|
450
557
|
* @returns The new mapping, or null when no local agent was @'d
|
|
@@ -474,6 +581,35 @@ export declare class SlackTeamChannelService {
|
|
|
474
581
|
* `slackThreadTs`; failing that, the latest Slack-origin root in the
|
|
475
582
|
* huddle; failing that, the channel top level.
|
|
476
583
|
*/
|
|
584
|
+
/**
|
|
585
|
+
* Show "<agent> is working on it…" in the thread, at the agent's request.
|
|
586
|
+
*
|
|
587
|
+
* Agents that must answer get this placeholder the moment the message
|
|
588
|
+
* arrives. Agents that were only *told* — a message nobody addressed to
|
|
589
|
+
* them, passed along so they can judge whether it concerns them — get none,
|
|
590
|
+
* because a placeholder promises a reply and most of them will not send
|
|
591
|
+
* one. When one of them does decide to answer, it calls this, so the owner
|
|
592
|
+
* sees who has taken the message on: two agents deciding to answer show two
|
|
593
|
+
* placeholders, which is exactly the signal the owner asked for.
|
|
594
|
+
*
|
|
595
|
+
* The key matches the one the reply is mirrored under, so the agent's
|
|
596
|
+
* actual answer replaces the placeholder rather than landing beside it.
|
|
597
|
+
*
|
|
598
|
+
* @param input - Chat channel and thread the agent is answering in
|
|
599
|
+
* @returns Whether a placeholder is now showing, or why not
|
|
600
|
+
*/
|
|
601
|
+
beginWorkingForAgent(input: {
|
|
602
|
+
chatChannelId: string;
|
|
603
|
+
agentSession: string;
|
|
604
|
+
threadId?: string;
|
|
605
|
+
}): Promise<{
|
|
606
|
+
ok: true;
|
|
607
|
+
slackChannelId: string;
|
|
608
|
+
threadTs?: string;
|
|
609
|
+
} | {
|
|
610
|
+
ok: false;
|
|
611
|
+
reason: string;
|
|
612
|
+
}>;
|
|
477
613
|
/**
|
|
478
614
|
* Put a file into the Slack channel an agent is replying in.
|
|
479
615
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-team-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EACV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"slack-team-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"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"}
|