crewly 1.20.325 → 1.20.327

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 (80) hide show
  1. package/config/roles/orchestrator/prompt.md +1 -0
  2. package/config/skills/orchestrator/create-channel/SKILL.md +42 -0
  3. package/config/skills/orchestrator/create-channel/execute.sh +62 -0
  4. package/config/skills/orchestrator/create-channel/execute.test.sh +29 -0
  5. package/dist/backend/backend/src/constants.d.ts +4 -0
  6. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  7. package/dist/backend/backend/src/constants.js +4 -0
  8. package/dist/backend/backend/src/constants.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/channels/channels.routes.d.ts +6 -2
  10. package/dist/backend/backend/src/controllers/channels/channels.routes.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/channels/channels.routes.js +37 -6
  12. package/dist/backend/backend/src/controllers/channels/channels.routes.js.map +1 -1
  13. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts +23 -0
  14. package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -1
  15. package/dist/backend/backend/src/middleware/caller-identity.middleware.js +31 -1
  16. package/dist/backend/backend/src/middleware/caller-identity.middleware.js.map +1 -1
  17. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  18. package/dist/backend/backend/src/routes/api.routes.js +43 -1
  19. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  20. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  21. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  22. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  23. package/dist/backend/backend/src/services/channels/crewly-channel-compose.service.d.ts +134 -0
  24. package/dist/backend/backend/src/services/channels/crewly-channel-compose.service.d.ts.map +1 -0
  25. package/dist/backend/backend/src/services/channels/crewly-channel-compose.service.js +222 -0
  26. package/dist/backend/backend/src/services/channels/crewly-channel-compose.service.js.map +1 -0
  27. package/dist/backend/backend/src/services/channels/crewly-channel.service.d.ts +3 -0
  28. package/dist/backend/backend/src/services/channels/crewly-channel.service.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/channels/crewly-channel.service.js +17 -4
  30. package/dist/backend/backend/src/services/channels/crewly-channel.service.js.map +1 -1
  31. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +1 -1
  32. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/slack/slack-directory.service.d.ts +6 -0
  34. package/dist/backend/backend/src/services/slack/slack-directory.service.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/slack/slack-directory.service.js +2 -0
  36. package/dist/backend/backend/src/services/slack/slack-directory.service.js.map +1 -1
  37. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/slack/slack-initializer.js +8 -0
  39. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  40. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +13 -0
  41. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +12 -0
  43. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +34 -0
  45. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +89 -8
  47. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/slack/slack.service.d.ts +3 -1
  49. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/slack/slack.service.js +24 -0
  51. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  52. package/dist/backend/backend/src/types/slack.types.d.ts +14 -0
  53. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  54. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  55. package/dist/backend/build-info.json +2 -2
  56. package/dist/cli/backend/src/constants.d.ts +4 -0
  57. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  58. package/dist/cli/backend/src/constants.js +4 -0
  59. package/dist/cli/backend/src/constants.js.map +1 -1
  60. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  61. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  62. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  63. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +1 -1
  64. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  65. package/dist/cli/backend/src/services/slack/slack-directory.service.d.ts +6 -0
  66. package/dist/cli/backend/src/services/slack/slack-directory.service.d.ts.map +1 -1
  67. package/dist/cli/backend/src/services/slack/slack-directory.service.js +2 -0
  68. package/dist/cli/backend/src/services/slack/slack-directory.service.js.map +1 -1
  69. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +34 -0
  70. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  71. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +89 -8
  72. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  73. package/dist/cli/backend/src/services/slack/slack.service.d.ts +3 -1
  74. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  75. package/dist/cli/backend/src/services/slack/slack.service.js +24 -0
  76. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  77. package/dist/cli/backend/src/types/slack.types.d.ts +14 -0
  78. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  79. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  80. package/package.json +1 -1
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Crewly Channel Compose Service
3
+ *
4
+ * "Make a channel with Owen and the Lead of the growth team" — the
5
+ * orchestrator's one-call version of create-channel / add-members that also
6
+ * reaches agents on OTHER machines.
7
+ *
8
+ * 2026-10-13 incident: the owner DM'd the Air orchestrator from the phone to
9
+ * "create a channel and add Owen (Mac) and the growth team's Lead (Air)". The
10
+ * orc had no way to do it, queued a work item nobody could claim and showed
11
+ * "Still working… queued 1" forever. Channels were owner-only and could only
12
+ * hold local agents.
13
+ *
14
+ * What this does:
15
+ * 1. Resolves each requested name (display name, session, or "<team> Lead")
16
+ * to a local agent or — through Cloud's colleague directory — to an agent
17
+ * on another machine. Names nobody matches, or that match several agents,
18
+ * are REPORTED, never guessed.
19
+ * 2. Creates the Slack channel (or extends an existing one) with the local
20
+ * members.
21
+ * 3. For each other machine, asks Cloud to have it join that existing Slack
22
+ * channel with its agents (`POST …/rooms/join`); the machine links the
23
+ * room itself (see SlackTeamChannelService.joinRoomFromCloud).
24
+ *
25
+ * Agents without a Slack app of their own post through the master app with a
26
+ * username override, so being in the room needs no per-agent bot.
27
+ *
28
+ * @module services/channels/crewly-channel-compose.service
29
+ */
30
+ import { type CrewlyChannelAgent, type CrewlyChannelService } from './crewly-channel.service.js';
31
+ /** An agent on another machine, from Cloud's directory. */
32
+ export interface RemoteColleague {
33
+ agentSession: string;
34
+ name: string;
35
+ instanceId: string;
36
+ machine: string | null;
37
+ team: string | null;
38
+ isLeader?: boolean;
39
+ }
40
+ /** Constructor dependencies. */
41
+ export interface ChannelComposeDeps {
42
+ channels: Pick<CrewlyChannelService, 'create' | 'get' | 'addMember'>;
43
+ /** Every agent of every team on this machine. */
44
+ listAgents: () => Promise<CrewlyChannelAgent[]>;
45
+ /** Agents on other machines of this account; null when the directory is unavailable (not signed in to Cloud). */
46
+ listRemote: () => Promise<RemoteColleague[] | null>;
47
+ /** Ask Cloud to have a machine join a Slack channel with these sessions; undefined when Cloud is unreachable. */
48
+ requestRoomJoin?: (body: {
49
+ slackChannelId: string;
50
+ slackChannelName: string;
51
+ targetInstanceId: string;
52
+ sessions: string[];
53
+ }) => Promise<void>;
54
+ }
55
+ /** One resolved request term. */
56
+ export interface ResolvedMember {
57
+ term: string;
58
+ kind: 'local' | 'remote';
59
+ name: string;
60
+ session: string;
61
+ team: string | null;
62
+ machine: string | null;
63
+ instanceId?: string;
64
+ }
65
+ /** Outcome of {@link ChannelComposeService.compose}. */
66
+ export interface ComposeResult {
67
+ channel: {
68
+ id: string;
69
+ name: string;
70
+ slackChannelId: string | null;
71
+ created: boolean;
72
+ };
73
+ added: Array<{
74
+ term: string;
75
+ name: string;
76
+ session: string;
77
+ team: string | null;
78
+ machine: string | null;
79
+ }>;
80
+ /** Asked of another machine but not confirmed by it yet (the join is asynchronous). */
81
+ requested: Array<{
82
+ term: string;
83
+ name: string;
84
+ machine: string | null;
85
+ }>;
86
+ notFound: string[];
87
+ ambiguous: Array<{
88
+ term: string;
89
+ candidates: string[];
90
+ }>;
91
+ failed: Array<{
92
+ term: string;
93
+ name: string;
94
+ reason: string;
95
+ }>;
96
+ /** True when Cloud's directory could not be read (remote names could not be looked up). */
97
+ directoryUnavailable: boolean;
98
+ }
99
+ interface Candidate extends ResolvedMember {
100
+ isLead: boolean;
101
+ }
102
+ /**
103
+ * Resolve one requested name against local and remote agents.
104
+ *
105
+ * @param term - What the owner said
106
+ * @param all - Every candidate
107
+ * @returns The hit, an ambiguity, or not found
108
+ */
109
+ export declare function resolveName(term: string, all: Candidate[]): {
110
+ hit?: Candidate;
111
+ ambiguous?: Candidate[];
112
+ };
113
+ /**
114
+ * The orchestrator-facing channel composer.
115
+ */
116
+ export declare class ChannelComposeService {
117
+ private readonly deps;
118
+ constructor(deps: ChannelComposeDeps);
119
+ /**
120
+ * Create a channel (or extend one) with the named agents, wherever they run.
121
+ *
122
+ * @param input - `channel` extends an existing channel; otherwise `name` creates one (an existing channel of that name is extended)
123
+ * @returns What happened to each requested name
124
+ * @throws CrewlyChannelError 400 when nothing was asked or none of the names could be placed
125
+ */
126
+ compose(input: {
127
+ name?: string;
128
+ channel?: string;
129
+ purpose?: string;
130
+ members: string[];
131
+ }): Promise<ComposeResult>;
132
+ }
133
+ export {};
134
+ //# sourceMappingURL=crewly-channel-compose.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewly-channel-compose.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel-compose.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Crewly Channel Compose Service
3
+ *
4
+ * "Make a channel with Owen and the Lead of the growth team" — the
5
+ * orchestrator's one-call version of create-channel / add-members that also
6
+ * reaches agents on OTHER machines.
7
+ *
8
+ * 2026-10-13 incident: the owner DM'd the Air orchestrator from the phone to
9
+ * "create a channel and add Owen (Mac) and the growth team's Lead (Air)". The
10
+ * orc had no way to do it, queued a work item nobody could claim and showed
11
+ * "Still working… queued 1" forever. Channels were owner-only and could only
12
+ * hold local agents.
13
+ *
14
+ * What this does:
15
+ * 1. Resolves each requested name (display name, session, or "<team> Lead")
16
+ * to a local agent or — through Cloud's colleague directory — to an agent
17
+ * on another machine. Names nobody matches, or that match several agents,
18
+ * are REPORTED, never guessed.
19
+ * 2. Creates the Slack channel (or extends an existing one) with the local
20
+ * members.
21
+ * 3. For each other machine, asks Cloud to have it join that existing Slack
22
+ * channel with its agents (`POST …/rooms/join`); the machine links the
23
+ * room itself (see SlackTeamChannelService.joinRoomFromCloud).
24
+ *
25
+ * Agents without a Slack app of their own post through the master app with a
26
+ * username override, so being in the room needs no per-agent bot.
27
+ *
28
+ * @module services/channels/crewly-channel-compose.service
29
+ */
30
+ import { CrewlyChannelError, } from './crewly-channel.service.js';
31
+ /** Lowercase, trim, drop a leading `@`. */
32
+ function norm(s) {
33
+ return s.trim().replace(/^@/, '').trim().toLowerCase();
34
+ }
35
+ /** Words that mean "the leader" in a request such as "Growth Team Lead". */
36
+ const LEAD_WORDS = new Set(['lead', 'leader', 'team lead', 'team leader', 'tl', '']);
37
+ /**
38
+ * Resolve one requested name against local and remote agents.
39
+ *
40
+ * @param term - What the owner said
41
+ * @param all - Every candidate
42
+ * @returns The hit, an ambiguity, or not found
43
+ */
44
+ export function resolveName(term, all) {
45
+ const t = norm(term);
46
+ if (!t)
47
+ return {};
48
+ const pick = (found) => found.length === 1 ? { hit: found[0] } : found.length > 1 ? { ambiguous: found } : null;
49
+ const exact = pick(all.filter((c) => norm(c.name) === t || norm(c.session) === t));
50
+ if (exact)
51
+ return exact;
52
+ // "<team name> Lead" / "<team name>'s lead" / "<team name> <member name>".
53
+ const teams = [...new Set(all.map((c) => c.team).filter((x) => !!x))].sort((a, b) => b.length - a.length);
54
+ for (const team of teams) {
55
+ const tn = norm(team);
56
+ if (!tn || !t.includes(tn))
57
+ continue;
58
+ const rest = t.replace(tn, ' ').replace(/['’]s\b/g, ' ').replace(/\s+/g, ' ').trim();
59
+ const inTeam = all.filter((c) => c.team === team);
60
+ const byLead = LEAD_WORDS.has(rest) ? inTeam.filter((c) => c.isLead) : [];
61
+ const byName = inTeam.filter((c) => norm(c.name) === rest);
62
+ const found = pick(byLead.length > 0 ? byLead : byName);
63
+ if (found)
64
+ return found;
65
+ }
66
+ // A name inside the request, or the request inside a name ("Owen" ↔ "Owen Chen").
67
+ const loose = pick(all.filter((c) => {
68
+ const n = norm(c.name);
69
+ return n.length >= 3 && (n.includes(t) || t.includes(n)) && t.length >= 3;
70
+ }));
71
+ return loose ?? {};
72
+ }
73
+ /**
74
+ * The orchestrator-facing channel composer.
75
+ */
76
+ export class ChannelComposeService {
77
+ deps;
78
+ constructor(deps) {
79
+ this.deps = deps;
80
+ }
81
+ /**
82
+ * Create a channel (or extend one) with the named agents, wherever they run.
83
+ *
84
+ * @param input - `channel` extends an existing channel; otherwise `name` creates one (an existing channel of that name is extended)
85
+ * @returns What happened to each requested name
86
+ * @throws CrewlyChannelError 400 when nothing was asked or none of the names could be placed
87
+ */
88
+ async compose(input) {
89
+ const terms = [...new Set((input.members ?? []).map((m) => (typeof m === 'string' ? m.trim() : '')).filter(Boolean))];
90
+ if (terms.length === 0)
91
+ throw new CrewlyChannelError('members is required (names or sessions)', 400, 'validation_error');
92
+ if (!input.channel && !input.name?.trim())
93
+ throw new CrewlyChannelError('name (new channel) or channel (existing) is required', 400, 'validation_error');
94
+ const local = await this.deps.listAgents();
95
+ const remote = await this.deps.listRemote();
96
+ const localSessions = new Set(local.map((a) => a.sessionName));
97
+ const candidates = [
98
+ ...local.map((a) => ({
99
+ term: '',
100
+ kind: 'local',
101
+ name: a.name,
102
+ session: a.sessionName,
103
+ team: a.teamName,
104
+ machine: 'this machine',
105
+ isLead: !!a.isLead,
106
+ })),
107
+ ...(remote ?? [])
108
+ .filter((r) => !localSessions.has(r.agentSession))
109
+ .map((r) => ({
110
+ term: '',
111
+ kind: 'remote',
112
+ name: r.name,
113
+ session: r.agentSession,
114
+ team: r.team,
115
+ machine: r.machine,
116
+ instanceId: r.instanceId,
117
+ isLead: !!r.isLeader,
118
+ })),
119
+ ];
120
+ const result = {
121
+ channel: { id: '', name: input.name ?? input.channel ?? '', slackChannelId: null, created: false },
122
+ added: [],
123
+ requested: [],
124
+ notFound: [],
125
+ ambiguous: [],
126
+ failed: [],
127
+ directoryUnavailable: remote === null,
128
+ };
129
+ const resolved = [];
130
+ for (const term of terms) {
131
+ const r = resolveName(term, candidates);
132
+ if (r.hit)
133
+ resolved.push({ ...r.hit, term });
134
+ else if (r.ambiguous) {
135
+ result.ambiguous.push({ term, candidates: r.ambiguous.map((c) => `${c.name} (${c.team ?? '?'}, ${c.machine ?? '?'})`) });
136
+ }
137
+ else
138
+ result.notFound.push(term);
139
+ }
140
+ if (resolved.length === 0) {
141
+ throw new CrewlyChannelError(`None of the requested agents could be placed (not found: ${result.notFound.join(', ') || 'none'}; ambiguous: ${result.ambiguous.map((a) => a.term).join(', ') || 'none'})`, 400, 'validation_error');
142
+ }
143
+ const localHits = resolved.filter((m) => m.kind === 'local');
144
+ const remoteHits = resolved.filter((m) => m.kind === 'remote');
145
+ // Create or extend.
146
+ let channel;
147
+ if (input.channel) {
148
+ channel = await this.deps.channels.get(input.channel);
149
+ }
150
+ else {
151
+ try {
152
+ channel = await this.deps.channels.create({
153
+ name: input.name,
154
+ purpose: input.purpose,
155
+ memberSessions: localHits.map((m) => m.session),
156
+ allowNoLocalMembers: true,
157
+ });
158
+ result.channel.created = true;
159
+ for (const m of localHits)
160
+ result.added.push(placed(m));
161
+ }
162
+ catch (err) {
163
+ if (!(err instanceof CrewlyChannelError) || err.code !== 'conflict')
164
+ throw err;
165
+ channel = await this.deps.channels.get(input.name);
166
+ }
167
+ }
168
+ result.channel.id = channel.id;
169
+ result.channel.name = channel.name;
170
+ result.channel.slackChannelId = channel.slack?.channelId ?? null;
171
+ if (!result.channel.created) {
172
+ for (const m of localHits) {
173
+ try {
174
+ await this.deps.channels.addMember(channel.id, m.session);
175
+ result.added.push(placed(m));
176
+ }
177
+ catch (err) {
178
+ result.failed.push({ term: m.term, name: m.name, reason: err instanceof Error ? err.message : String(err) });
179
+ }
180
+ }
181
+ }
182
+ // Other machines join the same Slack channel through Cloud.
183
+ const byInstance = new Map();
184
+ for (const m of remoteHits) {
185
+ if (!m.instanceId)
186
+ continue;
187
+ byInstance.set(m.instanceId, [...(byInstance.get(m.instanceId) ?? []), m]);
188
+ }
189
+ for (const [instanceId, members] of byInstance) {
190
+ const fail = (reason) => {
191
+ for (const m of members)
192
+ result.failed.push({ term: m.term, name: m.name, reason });
193
+ };
194
+ if (!channel.slack) {
195
+ fail('the channel is not a Slack channel (Slack is not connected here), so other machines cannot join it');
196
+ continue;
197
+ }
198
+ if (!this.deps.requestRoomJoin) {
199
+ fail('not connected to Crewly Cloud');
200
+ continue;
201
+ }
202
+ try {
203
+ await this.deps.requestRoomJoin({
204
+ slackChannelId: channel.slack.channelId,
205
+ slackChannelName: channel.slack.channelName,
206
+ targetInstanceId: instanceId,
207
+ sessions: members.map((m) => m.session),
208
+ });
209
+ for (const m of members)
210
+ result.requested.push({ term: m.term, name: m.name, machine: m.machine });
211
+ }
212
+ catch (err) {
213
+ fail(`Cloud refused the join request: ${err instanceof Error ? err.message : String(err)}`);
214
+ }
215
+ }
216
+ return result;
217
+ }
218
+ }
219
+ function placed(m) {
220
+ return { term: m.term, name: m.name, session: m.session, team: m.team, machine: m.machine };
221
+ }
222
+ //# sourceMappingURL=crewly-channel-compose.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewly-channel-compose.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel-compose.service.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,8 @@ export interface CrewlyChannelAgent {
43
43
  name: string;
44
44
  teamId: string;
45
45
  teamName: string;
46
+ /** True for the team's leader (resolves "<team> Lead" in channel requests). */
47
+ isLead?: boolean;
46
48
  }
47
49
  /** Constructor dependencies. */
48
50
  export interface CrewlyChannelServiceDeps {
@@ -158,6 +160,7 @@ export declare class CrewlyChannelService {
158
160
  name: string;
159
161
  purpose?: string;
160
162
  memberSessions: string[];
163
+ allowNoLocalMembers?: boolean;
161
164
  }): Promise<CrewlyChannelDTO>;
162
165
  /**
163
166
  * Rename a channel. A linked Slack channel is renamed first; Crewly then
@@ -1 +1 @@
1
- {"version":3,"file":"crewly-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAEL,KAAK,gBAAgB,EAItB,MAAM,qCAAqC,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,aAAa,EACX,cAAc,GACd,kBAAkB,GAClB,qBAAqB,GACrB,yBAAyB,GACzB,+BAA+B,GAC/B,wBAAwB,GACxB,0BAA0B,CAC7B,GACC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAE7C,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACzC,eAAe,CACb,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACnE,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,qDAAqD;AACrD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,uBAAuB,EACrB,aAAa,GACb,cAAc,GACd,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,YAAY,GACZ,aAAa,GACb,oBAAoB,CACvB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IAC7C,iDAAiD;IACjD,UAAU,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChD,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,0BAA0B,GAAG,IAAI,CAAC;IACxD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,oDAAoD;AACpD,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa;gBAFnF,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa;CAKtF;AAED,uDAAuD;AACvD,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAMD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,SAAS,CAA+C;IAChE,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,IAAI,EAAE,wBAAwB;IAM1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,0BAA0B;IAC1B,IAAI,IAAI,IAAI;IAMZ;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BvC;;;;;;;;;OASG;IACG,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2C/D;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAWzC;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWrG;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKjD;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAS5C;;;;;;;;OAQG;IACG,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6C5G;;;;;;;;OAQG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBrE;;;;;;OAMG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAczF;;;;;;OAMG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAU5F;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAkBvC,UAAU;IAYxB;;;;;OAKG;YACW,SAAS;IAqCvB,4DAA4D;IAC5D,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;YAQT,eAAe;IAY7B,OAAO,CAAC,cAAc;YAKR,UAAU;IAKxB,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,MAAM;YAIA,IAAI;YAoBJ,IAAI;CAKnB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAYnE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhE;AAaD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAElF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,IAAI,CAErE"}
1
+ {"version":3,"file":"crewly-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAEL,KAAK,gBAAgB,EAItB,MAAM,qCAAqC,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,aAAa,EACX,cAAc,GACd,kBAAkB,GAClB,qBAAqB,GACrB,yBAAyB,GACzB,+BAA+B,GAC/B,wBAAwB,GACxB,0BAA0B,CAC7B,GACC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAE7C,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACzC,eAAe,CACb,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACnE,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,qDAAqD;AACrD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,uBAAuB,EACrB,aAAa,GACb,cAAc,GACd,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,YAAY,GACZ,aAAa,GACb,oBAAoB,CACvB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IAC7C,iDAAiD;IACjD,UAAU,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChD,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,0BAA0B,GAAG,IAAI,CAAC;IACxD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,oDAAoD;AACpD,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa;gBAFnF,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa;CAKtF;AAED,uDAAuD;AACvD,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAMD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,SAAS,CAA+C;IAChE,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,IAAI,EAAE,wBAAwB;IAM1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,0BAA0B;IAC1B,IAAI,IAAI,IAAI;IAMZ;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BvC;;;;;;;;;OASG;IACG,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2C/D;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAWzC;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWrG;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKjD;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAS5C;;;;;;;;OAQG;IACG,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkD3I;;;;;;;;OAQG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBrE;;;;;;OAMG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAczF;;;;;;OAMG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAU5F;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAkBvC,UAAU;IAYxB;;;;;OAKG;YACW,SAAS;IAqCvB,4DAA4D;IAC5D,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;YAQT,eAAe;IAY7B,OAAO,CAAC,cAAc;YAKR,UAAU;IAKxB,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,MAAM;YAIA,IAAI;YAoBJ,IAAI;CAKnB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAoBnE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhE;AAaD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAElF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,IAAI,CAErE"}
@@ -28,7 +28,7 @@ import { getCrewlyHomePath } from '../core/crewly-home.utils.js';
28
28
  import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
29
29
  import { LoggerService } from '../core/logger.service.js';
30
30
  import { OWNER_EVIDENCE_METADATA } from '../../constants.js';
31
- import { isAdhocMapping, slackChannelNameFor, teamChannelMembers, } from '../slack/slack-team-channel.service.js';
31
+ import { isAdhocMapping, slackChannelNameFor, teamChannelLeader, teamChannelMembers, } from '../slack/slack-team-channel.service.js';
32
32
  import { isCrewlyChannelRecord, } from '../../types/crewly-channel.types.js';
33
33
  /** Error with an HTTP status for the REST layer. */
34
34
  export class CrewlyChannelError extends Error {
@@ -258,7 +258,12 @@ export class CrewlyChannelService {
258
258
  async create(input) {
259
259
  const name = this.normaliseName(input.name);
260
260
  const purpose = this.validatePurpose(input.purpose);
261
- const members = await this.validateMembers(input.memberSessions, { min: 1 });
261
+ // allowNoLocalMembers: the orchestrator may open a channel for agents that all
262
+ // run on other machines (they join through Cloud); Slack must be connected then.
263
+ const members = await this.validateMembers(input.memberSessions, { min: input.allowNoLocalMembers ? 0 : 1 });
264
+ if (members.length === 0 && !this.deps.getRooms()?.isConnected()) {
265
+ throw new CrewlyChannelError('A channel with no agents on this machine needs Slack to be connected', 400, 'validation_error');
266
+ }
262
267
  await this.reconcile();
263
268
  this.assertNameFree(name);
264
269
  const store = await this.load();
@@ -584,11 +589,19 @@ export function agentsFromTeams(teams) {
584
589
  for (const team of teams) {
585
590
  if (team.archived)
586
591
  continue;
587
- for (const m of teamChannelMembers(team)) {
592
+ const members = teamChannelMembers(team);
593
+ const leader = teamChannelLeader(team, members);
594
+ for (const m of members) {
588
595
  if (seen.has(m.sessionName))
589
596
  continue;
590
597
  seen.add(m.sessionName);
591
- out.push({ sessionName: m.sessionName, name: m.name, teamId: team.id, teamName: team.name });
598
+ out.push({
599
+ sessionName: m.sessionName,
600
+ name: m.name,
601
+ teamId: team.id,
602
+ teamName: team.name,
603
+ ...(leader && leader.sessionName === m.sessionName ? { isLead: true } : {}),
604
+ });
592
605
  }
593
606
  }
594
607
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"crewly-channel.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crewly-channel.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel.service.ts"],"names":[],"mappings":"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"}
@@ -253,7 +253,7 @@ export function defaultFormatPrompt(args) {
253
253
  ? `Dispatching this channel's message: the message @-ed nobody and no agent in the channel is awake right now, so you (the channel lead) were woken to decide who should answer. If it should be you: **first** run \`${workingCmd}\`, then reply with the \`reply-channel\` skill (${cmd}). If another member should answer: use reply-channel to post one short line @-ing them (e.g. "@name this one is yours"); they will be woken and take over; do not answer for them. If it is not for anyone, do nothing.`
254
254
  : mode === 'optional'
255
255
  ? `Reply to this channel: this message did not @ you; it was forwarded so you can decide whether to reply${args.soleResponder ? '' : ' (every awake agent in the channel receives it and decides for itself)'}. If you are the channel lead (team leader), you answer questions about the team itself (who is responsible, who the members are, what they are working on), based on the member list below and your team context — do not say "no record". If it relates to your work and you have the context or knowledge, and decide to reply: run \`${workingCmd}\` **first** so they see you have picked it up, then reply with the \`reply-channel\` skill (${cmd}). If it is people in the channel talking among themselves, or has nothing to do with you, do nothing — do not reply, do not send --working, and do not start an investigation over it.${args.roomPresence ? wakeColleague : ''}`
256
- : `Reply to this channel: use the \`reply-channel\` skill (${cmd}) — run the command as given${identity ? ', and keep the leading CREWLY_SESSION_NAME=… — it tells the system it is you replying' : ''}; if reply-channel errors, run the same command again, or fall back to \`reply\` above; do not use any other way to reply (other ways do not reach this thread and the sender will not see them). Your reply is posted to the same Slack thread under your name; later follow-ups in this thread are forwarded straight to you, with no need to be @-ed again. To hand off to a colleague (an agent on this or another machine), write @name in your reply — it becomes a real Slack mention and reaches them. Discussions among several agents must converge: each person speaks at most two rounds in the same thread; the team leader (or the first speaker if there is none) summarizes after two rounds and clearly writes "Conclusion"; once the conclusion is posted, nobody else replies unless they clearly disagree and say why. Do not thank each other or restate each other's points out of politeness.`;
256
+ : `Reply to this channel: use the \`reply-channel\` skill (${cmd}) — run the command as given${identity ? ', and keep the leading CREWLY_SESSION_NAME=… — it tells the system it is you replying' : ''}; if reply-channel errors, run the same command again, or fall back to \`reply\` above; do not use any other way to reply (other ways do not reach this thread and the sender will not see them). Your reply is posted to the same Slack thread under your name; later follow-ups in this thread are forwarded straight to you, with no need to be @-ed again. To hand off to a colleague (an agent on this or another machine), write @name in your reply (e.g. "@Owen can you check this?"), or start the reply with their name — it reaches them even when Slack shows it as plain text because they have no Slack app of their own; a name only mentioned mid-sentence does not. Discussions among several agents must converge: each person speaks at most two rounds in the same thread; the team leader (or the first speaker if there is none) summarizes after two rounds and clearly writes "Conclusion"; once the conclusion is posted, nobody else replies unless they clearly disagree and say why. Do not thank each other or restate each other's points out of politeness.`;
257
257
  }
258
258
  else if (args.slackDmChannelId && mode === 'required') {
259
259
  const threadKey = parseSlackThreadKey(args.slackThreadKey) ? args.slackThreadKey : undefined;