crewly 1.20.162 → 1.20.164
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/roles/orchestrator/prompt.md +2 -0
- package/config/roles/team-leader/prompt.md +2 -0
- package/config/roles/team-leader/tl-addon.md +2 -0
- package/config/skills/agent/core/project-tickets/SKILL.md +4 -0
- package/config/skills/orchestrator/set-team-lead/SKILL.md +58 -0
- package/config/skills/orchestrator/set-team-lead/execute.sh +46 -0
- package/config/skills/orchestrator/set-team-lead/execute.test.sh +77 -0
- package/dist/backend/backend/src/constants.d.ts +31 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +39 -2
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +6 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts +15 -0
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +110 -15
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js +3 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +9 -15
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
- package/dist/backend/backend/src/models/Team.js +5 -9
- package/dist/backend/backend/src/models/Team.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +20 -28
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +26 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +43 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +18 -6
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +21 -23
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/huddle-leader.d.ts +23 -0
- package/dist/backend/backend/src/services/chat-v2/huddle-leader.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/huddle-leader.js +37 -0
- package/dist/backend/backend/src/services/chat-v2/huddle-leader.js.map +1 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +3 -0
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +28 -7
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +51 -14
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.d.ts +70 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js +64 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts +24 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +38 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts +14 -2
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js +33 -3
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +13 -2
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +43 -12
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +2 -2
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +10 -1
- 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 +19 -8
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js +4 -3
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts +4 -3
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js +6 -7
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-owner.resolver.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-owner.resolver.js +2 -1
- package/dist/backend/backend/src/services/wiki/wiki-owner.resolver.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +3 -2
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/utils/defaultPrompts.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/defaultPrompts.js +8 -0
- package/dist/backend/backend/src/utils/defaultPrompts.js.map +1 -1
- package/dist/backend/backend/src/utils/member-default-model.utils.d.ts +5 -5
- package/dist/backend/backend/src/utils/member-default-model.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/member-default-model.utils.js +4 -4
- package/dist/backend/backend/src/utils/member-default-model.utils.js.map +1 -1
- package/dist/backend/backend/src/utils/team.utils.d.ts +129 -18
- package/dist/backend/backend/src/utils/team.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/team.utils.js +240 -28
- package/dist/backend/backend/src/utils/team.utils.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +31 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +39 -2
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
- package/dist/cli/backend/src/models/Team.js +5 -9
- package/dist/cli/backend/src/models/Team.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +20 -28
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +18 -6
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js +21 -23
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +3 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +10 -1
- 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 +19 -8
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +3 -2
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/utils/member-default-model.utils.d.ts +5 -5
- package/dist/cli/backend/src/utils/member-default-model.utils.d.ts.map +1 -1
- package/dist/cli/backend/src/utils/member-default-model.utils.js +4 -4
- package/dist/cli/backend/src/utils/member-default-model.utils.js.map +1 -1
- package/dist/cli/backend/src/utils/team.utils.d.ts +129 -18
- package/dist/cli/backend/src/utils/team.utils.d.ts.map +1 -1
- package/dist/cli/backend/src/utils/team.utils.js +240 -28
- package/dist/cli/backend/src/utils/team.utils.js.map +1 -1
- package/frontend/dist/assets/{index-64c8a616.js → index-9153caca.js} +263 -263
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Team.d.ts","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Team.d.ts","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIrD,qBAAa,SAAU,YAAW,IAAI;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;gBAEN,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAe/B,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOxC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK5C,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAYlE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IASlE,MAAM,IAAI,IAAI;IAiBd,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;CA+DvC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RUNTIME_TYPES } from '../constants.js';
|
|
2
|
+
import { normalizeTeamLeaderIds } from '../utils/team.utils.js';
|
|
2
3
|
export class TeamModel {
|
|
3
4
|
id;
|
|
4
5
|
name;
|
|
@@ -89,15 +90,10 @@ export class TeamModel {
|
|
|
89
90
|
else {
|
|
90
91
|
migratedData.projectIds = data.projectIds || [];
|
|
91
92
|
}
|
|
92
|
-
// Migration:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
else if (migratedData.leaderId && !migratedData.leaderIds) {
|
|
98
|
-
// Legacy data: only has leaderId, migrate to leaderIds
|
|
99
|
-
migratedData.leaderIds = [migratedData.leaderId];
|
|
100
|
-
}
|
|
93
|
+
// Migration: store the team-lead rule's answer (utils/team.utils) —
|
|
94
|
+
// explicit leaderIds (or legacy leaderId), else the team-leader /
|
|
95
|
+
// tech-lead members — and keep leaderId = leaderIds[0]. Idempotent.
|
|
96
|
+
normalizeTeamLeaderIds(migratedData);
|
|
101
97
|
// Migrate legacy status fields for team members
|
|
102
98
|
if (migratedData.members) {
|
|
103
99
|
migratedData.members = migratedData.members.map((member) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Team.js","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Team.js","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AAM5G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACN,gBAAgB,EAMhB,WAAW,EAWX,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import { extractSlackThreadKeys, formatSlackThreadKey } from '../slack/slack-thr
|
|
|
16
16
|
import { delay } from '../../utils/async.utils.js';
|
|
17
17
|
import { buildRuntimeModelFlags } from '../../utils/runtime-model-flags.utils.js';
|
|
18
18
|
import { effectiveMemberModelId } from '../../utils/member-default-model.utils.js';
|
|
19
|
+
import { canMemberDelegate, getLeadSubordinates } from '../../utils/team.utils.js';
|
|
19
20
|
import { stripToolCallMarkup } from '../../utils/tool-call-markup.utils.js';
|
|
20
21
|
import { appendIncompleteNotice } from '../../utils/incomplete-turn.utils.js';
|
|
21
22
|
import { filterAgentTurnReply } from '../../utils/agent-reply-filter.utils.js';
|
|
@@ -1989,7 +1990,7 @@ export class AgentRegistrationService {
|
|
|
1989
1990
|
});
|
|
1990
1991
|
}
|
|
1991
1992
|
// Architecture Upgrade Phase 6: set up standing task event subscriptions
|
|
1992
|
-
this.setupStandingSubscriptions(sessionName, member
|
|
1993
|
+
this.setupStandingSubscriptions(sessionName, canMemberDelegate(team, member) ? 'team-lead' : 'executor', team.id);
|
|
1993
1994
|
return true;
|
|
1994
1995
|
}
|
|
1995
1996
|
}
|
|
@@ -2195,23 +2196,16 @@ export class AgentRegistrationService {
|
|
|
2195
2196
|
+ 'This session has browser automation enabled via the Playwright MCP server. '
|
|
2196
2197
|
+ 'Browser skills (e.g. remote-browser) are the preferred way to perform browser tasks. '
|
|
2197
2198
|
+ 'Bash skills in the Crewly skills directory are available for team communication and status reporting.';
|
|
2198
|
-
// Inject Team Lead addon for members
|
|
2199
|
-
|
|
2199
|
+
// Inject Team Lead addon for members that may delegate (a lead by the
|
|
2200
|
+
// team-lead rule, or canDelegate=true) and have members to direct.
|
|
2201
|
+
if (foundMember && foundTeam && canMemberDelegate(foundTeam, foundMember)) {
|
|
2200
2202
|
try {
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
.
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
return {
|
|
2208
|
-
name: subMember.name,
|
|
2209
|
-
sessionName: subMember.sessionName || '',
|
|
2210
|
-
role: subMember.role || 'developer',
|
|
2211
|
-
memberId: subMember.id || subId,
|
|
2212
|
-
};
|
|
2213
|
-
})
|
|
2214
|
-
.filter((s) => s !== null);
|
|
2203
|
+
const subordinates = getLeadSubordinates(foundTeam, foundMember).map((subMember) => ({
|
|
2204
|
+
name: subMember.name,
|
|
2205
|
+
sessionName: subMember.sessionName || subMember.agentId || '',
|
|
2206
|
+
role: subMember.role || 'developer',
|
|
2207
|
+
memberId: subMember.id,
|
|
2208
|
+
}));
|
|
2215
2209
|
if (subordinates.length > 0) {
|
|
2216
2210
|
const tlConfig = {
|
|
2217
2211
|
name: sessionName,
|
|
@@ -2355,19 +2349,17 @@ export class AgentRegistrationService {
|
|
|
2355
2349
|
// Pre-compute the subordinate roster — used by both the helper
|
|
2356
2350
|
// path (passed via runtime.subordinates) and the orchestrator
|
|
2357
2351
|
// fallback path below.
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
return {
|
|
2352
|
+
// A lead by the team-lead rule with no explicit reports directs the
|
|
2353
|
+
// rest of the team (utils/team.utils getLeadSubordinates).
|
|
2354
|
+
const subordinateMembers = foundMember && foundTeam ? getLeadSubordinates(foundTeam, foundMember) : [];
|
|
2355
|
+
const subordinates = subordinateMembers.length > 0
|
|
2356
|
+
? subordinateMembers.map((subMember) => ({
|
|
2364
2357
|
name: subMember.name,
|
|
2365
|
-
sessionName: subMember.sessionName || '',
|
|
2358
|
+
sessionName: subMember.sessionName || subMember.agentId || '',
|
|
2366
2359
|
role: subMember.role || 'developer',
|
|
2367
|
-
memberId: subMember.id
|
|
2368
|
-
}
|
|
2369
|
-
|
|
2370
|
-
.filter((s) => s !== null);
|
|
2360
|
+
memberId: subMember.id,
|
|
2361
|
+
}))
|
|
2362
|
+
: undefined;
|
|
2371
2363
|
const teamNormsPath = foundTeam?.id
|
|
2372
2364
|
? path.join(os.homedir(), CREWLY_CONSTANTS.PATHS.CREWLY_HOME, 'teams', foundTeam.id, 'norms')
|
|
2373
2365
|
: undefined;
|