crewly 1.20.182 → 1.20.184
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 +4 -0
- package/config/skills/agent/core/report-status/execute.sh +4 -2
- package/dist/backend/backend/src/constants.d.ts +79 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +79 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js +22 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +25 -24
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts +25 -0
- package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/request/open-items.controller.js +68 -0
- package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts +2 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/request/request.routes.js +6 -0
- package/dist/backend/backend/src/controllers/request/request.routes.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 +15 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +57 -1
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/scripts/open-items-backfill.d.ts +16 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.js +112 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.js.map +1 -0
- 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 +4 -2
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +11 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +20 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +8 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +12 -2
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +2 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.js +6 -3
- package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +6 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts +66 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.js +208 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts +114 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.js +394 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts +70 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.js +147 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +332 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.js +785 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts +44 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js +172 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +3 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +7 -4
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts +110 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js +229 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.d.ts +108 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.js +145 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.d.ts +86 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.js +130 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.js.map +1 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +33 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js +49 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +2 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +10 -4
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +4 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +16 -0
- 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 +31 -8
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js +2 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +61 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +15 -1
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.js +5 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/backend/backend/src/types/decision.types.d.ts +15 -1
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +2 -0
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -0
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts +73 -0
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/open-item.types.js +14 -0
- package/dist/backend/backend/src/types/v2/open-item.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts +22 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +10 -5
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +79 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +79 -0
- package/dist/cli/backend/src/constants.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 +4 -2
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +11 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +20 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +8 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +12 -2
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts +2 -1
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/message-queue.service.js +6 -3
- package/dist/cli/backend/src/services/messaging/message-queue.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js +6 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts +66 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.js +208 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.js.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts +114 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.js +394 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.js.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +3 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +7 -4
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-status-routing.d.ts +108 -0
- package/dist/cli/backend/src/services/orc/orc-status-routing.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-status-routing.js +145 -0
- package/dist/cli/backend/src/services/orc/orc-status-routing.js.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.d.ts +86 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.js +130 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.js.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +198 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.js +288 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +16 -0
- 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 +31 -8
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +61 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.js +15 -1
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.js +5 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +15 -1
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.d.ts +2 -0
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.js +1 -0
- package/dist/cli/backend/src/types/v2/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts +73 -0
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/open-item.types.js +14 -0
- package/dist/cli/backend/src/types/v2/open-item.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts +22 -1
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.js +10 -5
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
- package/frontend/dist/assets/{index-9c91de50.js → index-a6cb8533.js} +265 -265
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -600,7 +600,16 @@ export class CrewlyServer {
|
|
|
600
600
|
},
|
|
601
601
|
});
|
|
602
602
|
getChatV2Service().on('chat_message', (dto) => {
|
|
603
|
-
|
|
603
|
+
// Open items read the same message after the review recorded it, so
|
|
604
|
+
// the two never write the ticket at once (specs/2026-10-01-reply-open-items.md).
|
|
605
|
+
void ticketReview
|
|
606
|
+
.onChatMessage(dto)
|
|
607
|
+
.catch(() => undefined)
|
|
608
|
+
.then(async () => {
|
|
609
|
+
const { OpenItemsService } = await import('./services/open-items/open-items.service.js');
|
|
610
|
+
await OpenItemsService.getInstance()?.onAgentMessage(dto);
|
|
611
|
+
})
|
|
612
|
+
.catch(() => undefined);
|
|
604
613
|
});
|
|
605
614
|
const reviewSweep = setInterval(() => {
|
|
606
615
|
void ticketReview.sweep().catch((sweepErr) => {
|
|
@@ -1135,6 +1144,15 @@ export class CrewlyServer {
|
|
|
1135
1144
|
if (event.type === 'agent:busy' && event.sessionName) {
|
|
1136
1145
|
getSlackAutoWorkingService()?.noteBusy(event.sessionName);
|
|
1137
1146
|
}
|
|
1147
|
+
// Work an agent promised the owner may now be ready to deliver
|
|
1148
|
+
// (specs/2026-10-01-reply-open-items.md).
|
|
1149
|
+
const finished = event;
|
|
1150
|
+
if ((finished.type === 'task:verified' || finished.type === 'task:done') && finished.workItemId) {
|
|
1151
|
+
const workItemId = finished.workItemId;
|
|
1152
|
+
void import('./services/open-items/open-items.service.js')
|
|
1153
|
+
.then(({ OpenItemsService }) => OpenItemsService.getInstance()?.onWorkItemSettled(workItemId))
|
|
1154
|
+
.catch(() => undefined);
|
|
1155
|
+
}
|
|
1138
1156
|
if (event.type === 'agent:idle' && event.sessionName) {
|
|
1139
1157
|
try {
|
|
1140
1158
|
const waitingThreads = this.threadStatusQueueService.getByStatus('replied_waiting_actions');
|
|
@@ -4665,6 +4683,44 @@ export class CrewlyServer {
|
|
|
4665
4683
|
// owner agrees to a runtime's first-run Terms from a Slack card.
|
|
4666
4684
|
const { startRuntimeTerms } = await import('./services/runtime-terms/runtime-terms.wiring.js');
|
|
4667
4685
|
startRuntimeTerms({ crewlyHome: this.config.crewlyHome, decisions, machineName: () => os.hostname().replace(/\.local$/, '') });
|
|
4686
|
+
// Open items (specs/2026-10-01-reply-open-items.md): commitments and
|
|
4687
|
+
// questions in agents' replies to the owner are tracked until done.
|
|
4688
|
+
const { startOpenItems } = await import('./services/open-items/open-items.wiring.js');
|
|
4689
|
+
startOpenItems({
|
|
4690
|
+
getTeams: () => this.storageService.getTeams(),
|
|
4691
|
+
sendToAgent: async (session, text) => {
|
|
4692
|
+
let exists = false;
|
|
4693
|
+
try {
|
|
4694
|
+
exists = getSessionBackendSync()?.sessionExists(session) ?? false;
|
|
4695
|
+
}
|
|
4696
|
+
catch {
|
|
4697
|
+
exists = false;
|
|
4698
|
+
}
|
|
4699
|
+
if (!exists) {
|
|
4700
|
+
const { activateAgentBySession } = await import('./controllers/team/team.controller.js');
|
|
4701
|
+
await activateAgentBySession(this.apiController, session).catch(() => undefined);
|
|
4702
|
+
}
|
|
4703
|
+
const result = await this.apiController.agentRegistrationService.sendMessageToAgent(session, text);
|
|
4704
|
+
return result.success;
|
|
4705
|
+
},
|
|
4706
|
+
recordChatNote: (chatChannelId, threadId, text) => {
|
|
4707
|
+
try {
|
|
4708
|
+
getChatV2Service().recordTurn({
|
|
4709
|
+
channelId: chatChannelId,
|
|
4710
|
+
senderType: 'system',
|
|
4711
|
+
senderId: 'crewly',
|
|
4712
|
+
content: text,
|
|
4713
|
+
...(threadId ? { threadId } : {}),
|
|
4714
|
+
metadata: { source: 'system' },
|
|
4715
|
+
});
|
|
4716
|
+
return true;
|
|
4717
|
+
}
|
|
4718
|
+
catch {
|
|
4719
|
+
return false;
|
|
4720
|
+
}
|
|
4721
|
+
},
|
|
4722
|
+
});
|
|
4723
|
+
this.logger.info('Open items started');
|
|
4668
4724
|
}
|
|
4669
4725
|
catch (error) {
|
|
4670
4726
|
this.logger.warn('Decision cards not started', { error: error instanceof Error ? error.message : String(error) });
|