crewly 1.20.325 → 1.20.326

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 (76) 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/slack/slack-directory.service.d.ts +6 -0
  32. package/dist/backend/backend/src/services/slack/slack-directory.service.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/slack/slack-directory.service.js +2 -0
  34. package/dist/backend/backend/src/services/slack/slack-directory.service.js.map +1 -1
  35. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  36. package/dist/backend/backend/src/services/slack/slack-initializer.js +8 -0
  37. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  38. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +13 -0
  39. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +12 -0
  41. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
  42. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +21 -0
  43. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  44. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +62 -2
  45. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  46. package/dist/backend/backend/src/services/slack/slack.service.d.ts +3 -1
  47. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/slack/slack.service.js +24 -0
  49. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  50. package/dist/backend/backend/src/types/slack.types.d.ts +14 -0
  51. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  52. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  53. package/dist/backend/build-info.json +2 -2
  54. package/dist/cli/backend/src/constants.d.ts +4 -0
  55. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  56. package/dist/cli/backend/src/constants.js +4 -0
  57. package/dist/cli/backend/src/constants.js.map +1 -1
  58. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  59. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  60. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  61. package/dist/cli/backend/src/services/slack/slack-directory.service.d.ts +6 -0
  62. package/dist/cli/backend/src/services/slack/slack-directory.service.d.ts.map +1 -1
  63. package/dist/cli/backend/src/services/slack/slack-directory.service.js +2 -0
  64. package/dist/cli/backend/src/services/slack/slack-directory.service.js.map +1 -1
  65. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +21 -0
  66. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  67. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +62 -2
  68. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  69. package/dist/cli/backend/src/services/slack/slack.service.d.ts +3 -1
  70. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  71. package/dist/cli/backend/src/services/slack/slack.service.js +24 -0
  72. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  73. package/dist/cli/backend/src/types/slack.types.d.ts +14 -0
  74. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  75. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  76. 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;IACrE,iDAAiD;IACjD,UAAU,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChD,iHAAiH;IACjH,UAAU,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,iHAAiH;IACjH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/I;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACvF,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC3G,uFAAuF;IACvF,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACzE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACzD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,2FAA2F;IAC3F,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAUD,UAAU,SAAU,SAAQ,cAAc;IACxC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;IAAE,GAAG,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,CA4BxG;AAED;;GAEG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,kBAAkB;IAErD;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CA6HvH"}
@@ -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":"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"}
1
+ {"version":3,"file":"crewly-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/channels/crewly-channel.service.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -27,6 +27,10 @@ export interface DirectoryEntry {
27
27
  team: string | null;
28
28
  /** Device name of the Crewly instance running it; 'this machine' for local agents. */
29
29
  machine: string | null;
30
+ /** Cloud instance id of the machine running it (agents of this account); room-join requests target it. */
31
+ instanceId?: string | null;
32
+ /** True when Cloud names this agent its team's leader (Cloud directory `leader`, when sent). */
33
+ isLeader?: boolean;
30
34
  /** Where the entry came from. */
31
35
  source: 'this-machine' | 'this-account' | 'channel';
32
36
  /** True when the colleague is a member of the requested channel. */
@@ -43,6 +47,8 @@ export interface CloudDirectoryInstance {
43
47
  teamId: string;
44
48
  name: string;
45
49
  channelId: string | null;
50
+ /** Session of the team's leader, when Cloud sends it */
51
+ leader?: string | null;
46
52
  agents: Array<{
47
53
  agentSession: string;
48
54
  displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"slack-directory.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-directory.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iFAAiF;IACjF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,sFAAsF;IACtF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iCAAiC;IACjC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAC;IACnB,uGAAuG;IACvG,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;CACjC;AAED,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,KAAK,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,SAAS,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KAC5G,CAAC,CAAC;CACJ;AAED,oBAAoB;AACpB,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,sDAAsD;IACtD,mBAAmB,EAAE,MAAM,OAAO,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,CAAC;IACpE,oFAAoF;IACpF,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACpE,0CAA0C;IAC1C,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC9E,kGAAkG;IAClG,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,6BAA6B;AAC7B,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgE;gBAEzD,IAAI,EAAE,kBAAkB;IAIrD;;;;;;;OAOG;IACG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqEzD;;;;;OAKG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpD,4DAA4D;IAC5D,UAAU,IAAI,IAAI;CAGnB;AAID,yCAAyC;AACzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED,wDAAwD;AACxD,wBAAgB,wBAAwB,IAAI,qBAAqB,GAAG,IAAI,CAEvE"}
1
+ {"version":3,"file":"slack-directory.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-directory.service.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,8 @@ export class SlackDirectoryService {
64
64
  agentSession: a.agentSession,
65
65
  team: team.name,
66
66
  machine: local ? 'this machine' : inst.deviceName,
67
+ instanceId: inst.instanceId,
68
+ ...(team.leader && team.leader === a.agentSession ? { isLeader: true } : {}),
67
69
  source: local ? 'this-machine' : 'this-account',
68
70
  inChannel: !!channelId && team.channelId === channelId,
69
71
  kind: 'agent',