@ajna-inc/workflow 0.5.38 → 0.6.1
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/.npmvc/attestations.jsonld +32 -0
- package/LICENSE +202 -0
- package/build/WorkflowEvents.d.mts +40 -0
- package/build/WorkflowEvents.d.mts.map +1 -0
- package/build/WorkflowEvents.mjs +11 -0
- package/build/WorkflowEvents.mjs.map +1 -0
- package/build/WorkflowModule.d.mts +17 -0
- package/build/WorkflowModule.d.mts.map +1 -0
- package/build/WorkflowModule.mjs +446 -0
- package/build/WorkflowModule.mjs.map +1 -0
- package/build/WorkflowModuleConfig.d.mts +39 -0
- package/build/WorkflowModuleConfig.d.mts.map +1 -0
- package/build/WorkflowModuleConfig.mjs +19 -0
- package/build/WorkflowModuleConfig.mjs.map +1 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +14 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +11 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
- package/build/_virtual/rolldown_runtime.mjs +41 -0
- package/build/actions/ActionRegistry.d.mts +64 -0
- package/build/actions/ActionRegistry.d.mts.map +1 -0
- package/build/actions/ActionRegistry.mjs +304 -0
- package/build/actions/ActionRegistry.mjs.map +1 -0
- package/build/api/WorkflowApi.d.mts +99 -0
- package/build/api/WorkflowApi.d.mts.map +1 -0
- package/build/api/WorkflowApi.mjs +228 -0
- package/build/api/WorkflowApi.mjs.map +1 -0
- package/build/engine/AttributePlanner.d.mts +12 -0
- package/build/engine/AttributePlanner.d.mts.map +1 -0
- package/build/engine/AttributePlanner.mjs +58 -0
- package/build/engine/AttributePlanner.mjs.map +1 -0
- package/build/engine/GuardEvaluator.d.mts +16 -0
- package/build/engine/GuardEvaluator.d.mts.map +1 -0
- package/build/engine/GuardEvaluator.mjs +38 -0
- package/build/engine/GuardEvaluator.mjs.map +1 -0
- package/build/index.d.mts +46 -0
- package/build/index.mjs +53 -0
- package/build/index.mjs.map +1 -0
- package/build/model/TemplateValidation.d.mts +8 -0
- package/build/model/TemplateValidation.d.mts.map +1 -0
- package/build/model/TemplateValidation.mjs +278 -0
- package/build/model/TemplateValidation.mjs.map +1 -0
- package/build/model/types.d.mts +120 -0
- package/build/model/types.d.mts.map +1 -0
- package/build/model/types.mjs +11 -0
- package/build/model/types.mjs.map +1 -0
- package/build/protocol/WorkflowMessageTypes.d.mts +19 -0
- package/build/protocol/WorkflowMessageTypes.d.mts.map +1 -0
- package/build/protocol/WorkflowMessageTypes.mjs +20 -0
- package/build/protocol/WorkflowMessageTypes.mjs.map +1 -0
- package/build/protocol/handlers/AdvanceHandler.d.mts +16 -0
- package/build/protocol/handlers/AdvanceHandler.d.mts.map +1 -0
- package/build/protocol/handlers/AdvanceHandler.mjs +148 -0
- package/build/protocol/handlers/AdvanceHandler.mjs.map +1 -0
- package/build/protocol/handlers/CancelHandler.d.mts +16 -0
- package/build/protocol/handlers/CancelHandler.d.mts.map +1 -0
- package/build/protocol/handlers/CancelHandler.mjs +103 -0
- package/build/protocol/handlers/CancelHandler.mjs.map +1 -0
- package/build/protocol/handlers/CompleteHandler.d.mts +16 -0
- package/build/protocol/handlers/CompleteHandler.d.mts.map +1 -0
- package/build/protocol/handlers/CompleteHandler.mjs +103 -0
- package/build/protocol/handlers/CompleteHandler.mjs.map +1 -0
- package/build/protocol/handlers/DiscoverHandler.d.mts +15 -0
- package/build/protocol/handlers/DiscoverHandler.d.mts.map +1 -0
- package/build/protocol/handlers/DiscoverHandler.mjs +73 -0
- package/build/protocol/handlers/DiscoverHandler.mjs.map +1 -0
- package/build/protocol/handlers/FetchTemplateHandler.d.mts +16 -0
- package/build/protocol/handlers/FetchTemplateHandler.d.mts.map +1 -0
- package/build/protocol/handlers/FetchTemplateHandler.mjs +64 -0
- package/build/protocol/handlers/FetchTemplateHandler.mjs.map +1 -0
- package/build/protocol/handlers/PauseHandler.d.mts +16 -0
- package/build/protocol/handlers/PauseHandler.d.mts.map +1 -0
- package/build/protocol/handlers/PauseHandler.mjs +103 -0
- package/build/protocol/handlers/PauseHandler.mjs.map +1 -0
- package/build/protocol/handlers/ProblemReportHandler.d.mts +11 -0
- package/build/protocol/handlers/ProblemReportHandler.d.mts.map +1 -0
- package/build/protocol/handlers/ProblemReportHandler.mjs +26 -0
- package/build/protocol/handlers/ProblemReportHandler.mjs.map +1 -0
- package/build/protocol/handlers/PublishTemplateHandler.d.mts +15 -0
- package/build/protocol/handlers/PublishTemplateHandler.d.mts.map +1 -0
- package/build/protocol/handlers/PublishTemplateHandler.mjs +47 -0
- package/build/protocol/handlers/PublishTemplateHandler.mjs.map +1 -0
- package/build/protocol/handlers/ResumeHandler.d.mts +16 -0
- package/build/protocol/handlers/ResumeHandler.d.mts.map +1 -0
- package/build/protocol/handlers/ResumeHandler.mjs +103 -0
- package/build/protocol/handlers/ResumeHandler.mjs.map +1 -0
- package/build/protocol/handlers/StartHandler.d.mts +16 -0
- package/build/protocol/handlers/StartHandler.d.mts.map +1 -0
- package/build/protocol/handlers/StartHandler.mjs +238 -0
- package/build/protocol/handlers/StartHandler.mjs.map +1 -0
- package/build/protocol/handlers/StatusHandler.d.mts +16 -0
- package/build/protocol/handlers/StatusHandler.d.mts.map +1 -0
- package/build/protocol/handlers/StatusHandler.mjs +169 -0
- package/build/protocol/handlers/StatusHandler.mjs.map +1 -0
- package/build/protocol/handlers/TemplateHandler.d.mts +14 -0
- package/build/protocol/handlers/TemplateHandler.d.mts.map +1 -0
- package/build/protocol/handlers/TemplateHandler.mjs +66 -0
- package/build/protocol/handlers/TemplateHandler.mjs.map +1 -0
- package/build/protocol/messages/AdvanceMessage.d.mts +22 -0
- package/build/protocol/messages/AdvanceMessage.d.mts.map +1 -0
- package/build/protocol/messages/AdvanceMessage.mjs +25 -0
- package/build/protocol/messages/AdvanceMessage.mjs.map +1 -0
- package/build/protocol/messages/CancelMessage.d.mts +20 -0
- package/build/protocol/messages/CancelMessage.d.mts.map +1 -0
- package/build/protocol/messages/CancelMessage.mjs +25 -0
- package/build/protocol/messages/CancelMessage.mjs.map +1 -0
- package/build/protocol/messages/CompleteMessage.d.mts +20 -0
- package/build/protocol/messages/CompleteMessage.d.mts.map +1 -0
- package/build/protocol/messages/CompleteMessage.mjs +25 -0
- package/build/protocol/messages/CompleteMessage.mjs.map +1 -0
- package/build/protocol/messages/DiscoverMessage.d.mts +29 -0
- package/build/protocol/messages/DiscoverMessage.d.mts.map +1 -0
- package/build/protocol/messages/DiscoverMessage.mjs +25 -0
- package/build/protocol/messages/DiscoverMessage.mjs.map +1 -0
- package/build/protocol/messages/FetchTemplateMessage.d.mts +21 -0
- package/build/protocol/messages/FetchTemplateMessage.d.mts.map +1 -0
- package/build/protocol/messages/FetchTemplateMessage.mjs +31 -0
- package/build/protocol/messages/FetchTemplateMessage.mjs.map +1 -0
- package/build/protocol/messages/PauseMessage.d.mts +20 -0
- package/build/protocol/messages/PauseMessage.d.mts.map +1 -0
- package/build/protocol/messages/PauseMessage.mjs +25 -0
- package/build/protocol/messages/PauseMessage.mjs.map +1 -0
- package/build/protocol/messages/ProblemReportMessage.d.mts +21 -0
- package/build/protocol/messages/ProblemReportMessage.d.mts.map +1 -0
- package/build/protocol/messages/ProblemReportMessage.mjs +25 -0
- package/build/protocol/messages/ProblemReportMessage.mjs.map +1 -0
- package/build/protocol/messages/PublishTemplateMessage.d.mts +23 -0
- package/build/protocol/messages/PublishTemplateMessage.d.mts.map +1 -0
- package/build/protocol/messages/PublishTemplateMessage.mjs +24 -0
- package/build/protocol/messages/PublishTemplateMessage.mjs.map +1 -0
- package/build/protocol/messages/ResumeMessage.d.mts +20 -0
- package/build/protocol/messages/ResumeMessage.d.mts.map +1 -0
- package/build/protocol/messages/ResumeMessage.mjs +25 -0
- package/build/protocol/messages/ResumeMessage.mjs.map +1 -0
- package/build/protocol/messages/StartMessage.d.mts +27 -0
- package/build/protocol/messages/StartMessage.d.mts.map +1 -0
- package/build/protocol/messages/StartMessage.mjs +25 -0
- package/build/protocol/messages/StartMessage.mjs.map +1 -0
- package/build/protocol/messages/StatusMessage.d.mts +35 -0
- package/build/protocol/messages/StatusMessage.d.mts.map +1 -0
- package/build/protocol/messages/StatusMessage.mjs +25 -0
- package/build/protocol/messages/StatusMessage.mjs.map +1 -0
- package/build/protocol/messages/StatusRequestMessage.d.mts +29 -0
- package/build/protocol/messages/StatusRequestMessage.d.mts.map +1 -0
- package/build/protocol/messages/StatusRequestMessage.mjs +25 -0
- package/build/protocol/messages/StatusRequestMessage.mjs.map +1 -0
- package/build/protocol/messages/TemplateMessage.d.mts +20 -0
- package/build/protocol/messages/TemplateMessage.d.mts.map +1 -0
- package/build/protocol/messages/TemplateMessage.mjs +25 -0
- package/build/protocol/messages/TemplateMessage.mjs.map +1 -0
- package/build/protocol/messages/WorkflowsMessage.d.mts +28 -0
- package/build/protocol/messages/WorkflowsMessage.d.mts.map +1 -0
- package/build/protocol/messages/WorkflowsMessage.mjs +25 -0
- package/build/protocol/messages/WorkflowsMessage.mjs.map +1 -0
- package/build/queue/CommandQueue.d.mts +22 -0
- package/build/queue/CommandQueue.d.mts.map +1 -0
- package/build/queue/CommandQueue.mjs +6 -0
- package/build/queue/CommandQueue.mjs.map +1 -0
- package/build/queue/PersistentCommandQueue.d.mts +56 -0
- package/build/queue/PersistentCommandQueue.d.mts.map +1 -0
- package/build/queue/PersistentCommandQueue.mjs +273 -0
- package/build/queue/PersistentCommandQueue.mjs.map +1 -0
- package/build/repository/WorkflowCommandRecord.d.mts +50 -0
- package/build/repository/WorkflowCommandRecord.d.mts.map +1 -0
- package/build/repository/WorkflowCommandRecord.mjs +48 -0
- package/build/repository/WorkflowCommandRecord.mjs.map +1 -0
- package/build/repository/WorkflowCommandRepository.d.mts +59 -0
- package/build/repository/WorkflowCommandRepository.d.mts.map +1 -0
- package/build/repository/WorkflowCommandRepository.mjs +136 -0
- package/build/repository/WorkflowCommandRepository.mjs.map +1 -0
- package/build/repository/WorkflowInstanceRecord.d.mts +65 -0
- package/build/repository/WorkflowInstanceRecord.d.mts.map +1 -0
- package/build/repository/WorkflowInstanceRecord.mjs +44 -0
- package/build/repository/WorkflowInstanceRecord.mjs.map +1 -0
- package/build/repository/WorkflowInstanceRepository.d.mts +15 -0
- package/build/repository/WorkflowInstanceRepository.d.mts.map +1 -0
- package/build/repository/WorkflowInstanceRepository.mjs +48 -0
- package/build/repository/WorkflowInstanceRepository.mjs.map +1 -0
- package/build/repository/WorkflowTemplateRecord.d.mts +27 -0
- package/build/repository/WorkflowTemplateRecord.d.mts.map +1 -0
- package/build/repository/WorkflowTemplateRecord.mjs +29 -0
- package/build/repository/WorkflowTemplateRecord.mjs.map +1 -0
- package/build/repository/WorkflowTemplateRepository.d.mts +11 -0
- package/build/repository/WorkflowTemplateRepository.d.mts.map +1 -0
- package/build/repository/WorkflowTemplateRepository.mjs +43 -0
- package/build/repository/WorkflowTemplateRepository.mjs.map +1 -0
- package/build/services/WorkflowService.d.mts +107 -0
- package/build/services/WorkflowService.d.mts.map +1 -0
- package/build/services/WorkflowService.mjs +582 -0
- package/build/services/WorkflowService.mjs.map +1 -0
- package/build/ui/UiFilter.mjs +85 -0
- package/build/ui/UiFilter.mjs.map +1 -0
- package/package.json +27 -33
- package/build/WorkflowEvents.d.ts +0 -35
- package/build/WorkflowEvents.js +0 -10
- package/build/WorkflowEvents.js.map +0 -1
- package/build/WorkflowModule.d.ts +0 -13
- package/build/WorkflowModule.js +0 -647
- package/build/WorkflowModule.js.map +0 -1
- package/build/WorkflowModuleConfig.d.ts +0 -35
- package/build/WorkflowModuleConfig.js +0 -19
- package/build/WorkflowModuleConfig.js.map +0 -1
- package/build/actions/ActionRegistry.d.ts +0 -59
- package/build/actions/ActionRegistry.js +0 -367
- package/build/actions/ActionRegistry.js.map +0 -1
- package/build/api/WorkflowApi.d.ts +0 -94
- package/build/api/WorkflowApi.js +0 -241
- package/build/api/WorkflowApi.js.map +0 -1
- package/build/engine/AttributePlanner.d.ts +0 -7
- package/build/engine/AttributePlanner.js +0 -81
- package/build/engine/AttributePlanner.js.map +0 -1
- package/build/engine/GuardEvaluator.d.ts +0 -11
- package/build/engine/GuardEvaluator.js +0 -40
- package/build/engine/GuardEvaluator.js.map +0 -1
- package/build/index.d.ts +0 -45
- package/build/index.js +0 -69
- package/build/index.js.map +0 -1
- package/build/model/TemplateValidation.d.ts +0 -3
- package/build/model/TemplateValidation.js +0 -231
- package/build/model/TemplateValidation.js.map +0 -1
- package/build/model/types.d.ts +0 -116
- package/build/model/types.js +0 -15
- package/build/model/types.js.map +0 -1
- package/build/protocol/WorkflowMessageTypes.d.ts +0 -15
- package/build/protocol/WorkflowMessageTypes.js +0 -22
- package/build/protocol/WorkflowMessageTypes.js.map +0 -1
- package/build/protocol/handlers/AdvanceHandler.d.ts +0 -12
- package/build/protocol/handlers/AdvanceHandler.js +0 -149
- package/build/protocol/handlers/AdvanceHandler.js.map +0 -1
- package/build/protocol/handlers/CancelHandler.d.ts +0 -12
- package/build/protocol/handlers/CancelHandler.js +0 -124
- package/build/protocol/handlers/CancelHandler.js.map +0 -1
- package/build/protocol/handlers/CompleteHandler.d.ts +0 -12
- package/build/protocol/handlers/CompleteHandler.js +0 -125
- package/build/protocol/handlers/CompleteHandler.js.map +0 -1
- package/build/protocol/handlers/DiscoverHandler.d.ts +0 -11
- package/build/protocol/handlers/DiscoverHandler.js +0 -71
- package/build/protocol/handlers/DiscoverHandler.js.map +0 -1
- package/build/protocol/handlers/FetchTemplateHandler.d.ts +0 -12
- package/build/protocol/handlers/FetchTemplateHandler.js +0 -71
- package/build/protocol/handlers/FetchTemplateHandler.js.map +0 -1
- package/build/protocol/handlers/PauseHandler.d.ts +0 -12
- package/build/protocol/handlers/PauseHandler.js +0 -124
- package/build/protocol/handlers/PauseHandler.js.map +0 -1
- package/build/protocol/handlers/ProblemReportHandler.d.ts +0 -6
- package/build/protocol/handlers/ProblemReportHandler.js +0 -28
- package/build/protocol/handlers/ProblemReportHandler.js.map +0 -1
- package/build/protocol/handlers/PublishTemplateHandler.d.ts +0 -11
- package/build/protocol/handlers/PublishTemplateHandler.js +0 -53
- package/build/protocol/handlers/PublishTemplateHandler.js.map +0 -1
- package/build/protocol/handlers/ResumeHandler.d.ts +0 -12
- package/build/protocol/handlers/ResumeHandler.js +0 -124
- package/build/protocol/handlers/ResumeHandler.js.map +0 -1
- package/build/protocol/handlers/StartHandler.d.ts +0 -12
- package/build/protocol/handlers/StartHandler.js +0 -274
- package/build/protocol/handlers/StartHandler.js.map +0 -1
- package/build/protocol/handlers/StatusHandler.d.ts +0 -12
- package/build/protocol/handlers/StatusHandler.js +0 -202
- package/build/protocol/handlers/StatusHandler.js.map +0 -1
- package/build/protocol/handlers/TemplateHandler.d.ts +0 -9
- package/build/protocol/handlers/TemplateHandler.js +0 -83
- package/build/protocol/handlers/TemplateHandler.js.map +0 -1
- package/build/protocol/messages/AdvanceMessage.d.ts +0 -16
- package/build/protocol/messages/AdvanceMessage.js +0 -33
- package/build/protocol/messages/AdvanceMessage.js.map +0 -1
- package/build/protocol/messages/CancelMessage.d.ts +0 -14
- package/build/protocol/messages/CancelMessage.js +0 -33
- package/build/protocol/messages/CancelMessage.js.map +0 -1
- package/build/protocol/messages/CompleteMessage.d.ts +0 -14
- package/build/protocol/messages/CompleteMessage.js +0 -33
- package/build/protocol/messages/CompleteMessage.js.map +0 -1
- package/build/protocol/messages/DiscoverMessage.d.ts +0 -23
- package/build/protocol/messages/DiscoverMessage.js +0 -33
- package/build/protocol/messages/DiscoverMessage.js.map +0 -1
- package/build/protocol/messages/FetchTemplateMessage.d.ts +0 -15
- package/build/protocol/messages/FetchTemplateMessage.js +0 -33
- package/build/protocol/messages/FetchTemplateMessage.js.map +0 -1
- package/build/protocol/messages/PauseMessage.d.ts +0 -14
- package/build/protocol/messages/PauseMessage.js +0 -33
- package/build/protocol/messages/PauseMessage.js.map +0 -1
- package/build/protocol/messages/ProblemReportMessage.d.ts +0 -15
- package/build/protocol/messages/ProblemReportMessage.js +0 -33
- package/build/protocol/messages/ProblemReportMessage.js.map +0 -1
- package/build/protocol/messages/PublishTemplateMessage.d.ts +0 -17
- package/build/protocol/messages/PublishTemplateMessage.js +0 -31
- package/build/protocol/messages/PublishTemplateMessage.js.map +0 -1
- package/build/protocol/messages/ResumeMessage.d.ts +0 -14
- package/build/protocol/messages/ResumeMessage.js +0 -33
- package/build/protocol/messages/ResumeMessage.js.map +0 -1
- package/build/protocol/messages/StartMessage.d.ts +0 -21
- package/build/protocol/messages/StartMessage.js +0 -33
- package/build/protocol/messages/StartMessage.js.map +0 -1
- package/build/protocol/messages/StatusMessage.d.ts +0 -29
- package/build/protocol/messages/StatusMessage.js +0 -33
- package/build/protocol/messages/StatusMessage.js.map +0 -1
- package/build/protocol/messages/StatusRequestMessage.d.ts +0 -23
- package/build/protocol/messages/StatusRequestMessage.js +0 -33
- package/build/protocol/messages/StatusRequestMessage.js.map +0 -1
- package/build/protocol/messages/TemplateMessage.d.ts +0 -14
- package/build/protocol/messages/TemplateMessage.js +0 -33
- package/build/protocol/messages/TemplateMessage.js.map +0 -1
- package/build/protocol/messages/WorkflowsMessage.d.ts +0 -22
- package/build/protocol/messages/WorkflowsMessage.js +0 -33
- package/build/protocol/messages/WorkflowsMessage.js.map +0 -1
- package/build/queue/CommandQueue.d.ts +0 -18
- package/build/queue/CommandQueue.js +0 -8
- package/build/queue/CommandQueue.js.map +0 -1
- package/build/queue/PersistentCommandQueue.d.ts +0 -51
- package/build/queue/PersistentCommandQueue.js +0 -348
- package/build/queue/PersistentCommandQueue.js.map +0 -1
- package/build/repository/WorkflowCommandRecord.d.ts +0 -46
- package/build/repository/WorkflowCommandRecord.js +0 -52
- package/build/repository/WorkflowCommandRecord.js.map +0 -1
- package/build/repository/WorkflowCommandRepository.d.ts +0 -55
- package/build/repository/WorkflowCommandRepository.js +0 -149
- package/build/repository/WorkflowCommandRepository.js.map +0 -1
- package/build/repository/WorkflowInstanceRecord.d.ts +0 -61
- package/build/repository/WorkflowInstanceRecord.js +0 -43
- package/build/repository/WorkflowInstanceRecord.js.map +0 -1
- package/build/repository/WorkflowInstanceRepository.d.ts +0 -10
- package/build/repository/WorkflowInstanceRepository.js +0 -52
- package/build/repository/WorkflowInstanceRepository.js.map +0 -1
- package/build/repository/WorkflowTemplateRecord.d.ts +0 -23
- package/build/repository/WorkflowTemplateRecord.js +0 -28
- package/build/repository/WorkflowTemplateRecord.js.map +0 -1
- package/build/repository/WorkflowTemplateRepository.d.ts +0 -6
- package/build/repository/WorkflowTemplateRepository.js +0 -56
- package/build/repository/WorkflowTemplateRepository.js.map +0 -1
- package/build/services/WorkflowService.d.ts +0 -102
- package/build/services/WorkflowService.js +0 -712
- package/build/services/WorkflowService.js.map +0 -1
- package/build/ui/UiFilter.d.ts +0 -5
- package/build/ui/UiFilter.js +0 -104
- package/build/ui/UiFilter.js.map +0 -1
- package/build/ui/UiTypes.d.ts +0 -28
- package/build/ui/UiTypes.js +0 -3
- package/build/ui/UiTypes.js.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { WorkflowModuleConfig } from "../../WorkflowModuleConfig.mjs";
|
|
2
|
+
import { CommandQueueService } from "../../queue/CommandQueue.mjs";
|
|
3
|
+
import { __decorateMetadata, init_decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
4
|
+
import { __decorate, init_decorate } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
5
|
+
import { WorkflowInstanceRepository } from "../../repository/WorkflowInstanceRepository.mjs";
|
|
6
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
7
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
8
|
+
import { StatusMessage } from "../messages/StatusMessage.mjs";
|
|
9
|
+
import { PauseMessage } from "../messages/PauseMessage.mjs";
|
|
10
|
+
import { AgentConfig, injectable } from "@credo-ts/core";
|
|
11
|
+
import { DidCommOutboundMessageContext } from "@credo-ts/didcomm";
|
|
12
|
+
|
|
13
|
+
//#region src/protocol/handlers/PauseHandler.ts
|
|
14
|
+
init_decorateMetadata();
|
|
15
|
+
init_decorate();
|
|
16
|
+
var _ref;
|
|
17
|
+
let PauseHandler = class PauseHandler$1 {
|
|
18
|
+
constructor(service) {
|
|
19
|
+
this.service = service;
|
|
20
|
+
this.supportedMessages = [PauseMessage];
|
|
21
|
+
}
|
|
22
|
+
async handle(messageContext) {
|
|
23
|
+
const dm = messageContext.agentContext.dependencyManager;
|
|
24
|
+
const logger = dm.resolve(AgentConfig).logger;
|
|
25
|
+
const config = dm.resolve(WorkflowModuleConfig);
|
|
26
|
+
const instId = messageContext.message.body?.instance_id;
|
|
27
|
+
const thid = messageContext.message.threadId || messageContext.message.id;
|
|
28
|
+
logger.info("[Workflow] pause received", {
|
|
29
|
+
instance_id: instId,
|
|
30
|
+
thid
|
|
31
|
+
});
|
|
32
|
+
try {
|
|
33
|
+
const _id = messageContext.message.body?.instance_id;
|
|
34
|
+
if (_id && thid && _id !== thid) throw Object.assign(/* @__PURE__ */ new Error("threadId does not match instance_id"), { code: "correlation_mismatch" });
|
|
35
|
+
} catch (_e) {}
|
|
36
|
+
try {
|
|
37
|
+
const inboundConnId = messageContext.connection?.id;
|
|
38
|
+
const instIdBody = messageContext.message.body?.instance_id;
|
|
39
|
+
if (!inboundConnId || !instIdBody) throw Object.assign(/* @__PURE__ */ new Error("missing inbound connection"), { code: "forbidden" });
|
|
40
|
+
const instRec = await messageContext.agentContext.dependencyManager.resolve(WorkflowInstanceRepository).getByInstanceId(messageContext.agentContext, instIdBody);
|
|
41
|
+
if (!instRec) throw Object.assign(/* @__PURE__ */ new Error("instance not found"), { code: "invalid_event" });
|
|
42
|
+
if (instRec.connectionId && instRec.connectionId !== inboundConnId) throw Object.assign(/* @__PURE__ */ new Error("connection mismatch"), { code: "forbidden" });
|
|
43
|
+
const queue = dm.resolve(CommandQueueService);
|
|
44
|
+
if (queue && typeof queue.enqueue === "function" && typeof queue.isReady === "function") {
|
|
45
|
+
if (await queue.isReady()) {
|
|
46
|
+
await queue.enqueue(messageContext.agentContext, {
|
|
47
|
+
cmd: "pause",
|
|
48
|
+
thid: instIdBody,
|
|
49
|
+
connectionId: inboundConnId,
|
|
50
|
+
payload: messageContext.message.body,
|
|
51
|
+
contextCorrelationId: messageContext.agentContext.contextCorrelationId
|
|
52
|
+
});
|
|
53
|
+
return new DidCommOutboundMessageContext(new StatusMessage({
|
|
54
|
+
thid,
|
|
55
|
+
body: await this.service.status(messageContext.agentContext, { instance_id: instIdBody }, instRec)
|
|
56
|
+
}), {
|
|
57
|
+
agentContext: messageContext.agentContext,
|
|
58
|
+
inboundMessageContext: messageContext,
|
|
59
|
+
connection: messageContext.connection
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
logger.warn("[Workflow] Queue not available for pause, processing synchronously");
|
|
64
|
+
const updated = await this.service.pause(messageContext.agentContext, messageContext.message.body, instRec);
|
|
65
|
+
return new DidCommOutboundMessageContext(new StatusMessage({
|
|
66
|
+
thid,
|
|
67
|
+
body: await this.service.status(messageContext.agentContext, { instance_id: instId }, updated)
|
|
68
|
+
}), {
|
|
69
|
+
agentContext: messageContext.agentContext,
|
|
70
|
+
inboundMessageContext: messageContext,
|
|
71
|
+
connection: messageContext.connection
|
|
72
|
+
});
|
|
73
|
+
} catch (e) {
|
|
74
|
+
if (e?.code === "invalid_event") {
|
|
75
|
+
logger.info("[Workflow] pause ignored (no local instance)", { instance_id: instId });
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (config.enableProblemReport && messageContext.connection) {
|
|
79
|
+
const code = e.code;
|
|
80
|
+
const normalize = (c) => c === "queue_unavailable" ? "temporary_unavailable" : c || "action_error";
|
|
81
|
+
const body = {
|
|
82
|
+
code: normalize(code),
|
|
83
|
+
comment: e.message
|
|
84
|
+
};
|
|
85
|
+
if (code === "queue_unavailable") body.args = { subcode: "queue_unavailable" };
|
|
86
|
+
return new DidCommOutboundMessageContext(new ProblemReportMessage({
|
|
87
|
+
thid: messageContext.message.threadId || messageContext.message.id,
|
|
88
|
+
body
|
|
89
|
+
}), {
|
|
90
|
+
agentContext: messageContext.agentContext,
|
|
91
|
+
inboundMessageContext: messageContext,
|
|
92
|
+
connection: messageContext.connection
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
throw e;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
PauseHandler = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref = typeof WorkflowService !== "undefined" && WorkflowService) === "function" ? _ref : Object])], PauseHandler);
|
|
100
|
+
|
|
101
|
+
//#endregion
|
|
102
|
+
export { PauseHandler };
|
|
103
|
+
//# sourceMappingURL=PauseHandler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PauseHandler.mjs","names":["PauseHandler","service: WorkflowService","body: { code: string; comment: string; args?: Record<string, unknown> }"],"sources":["../../../src/protocol/handlers/PauseHandler.ts"],"sourcesContent":["import type { DidCommMessageHandler, DidCommMessageHandlerInboundMessage } from '@credo-ts/didcomm'\n\nimport { AgentConfig, injectable } from '@credo-ts/core'\n\nimport { DidCommOutboundMessageContext } from '@credo-ts/didcomm'\n\nimport { WorkflowModuleConfig } from '../../WorkflowModuleConfig'\nimport { CommandQueueService } from '../../queue/CommandQueue'\nimport { WorkflowService } from '../../services/WorkflowService'\nimport { PauseMessage } from '../messages/PauseMessage'\nimport { ProblemReportMessage } from '../messages/ProblemReportMessage'\nimport { StatusMessage } from '../messages/StatusMessage'\nimport { WorkflowInstanceRepository } from '../../repository/WorkflowInstanceRepository'\n\n@injectable()\nexport class PauseHandler implements DidCommMessageHandler {\n public supportedMessages = [PauseMessage]\n public constructor(private readonly service: WorkflowService) {}\n public async handle(messageContext: DidCommMessageHandlerInboundMessage<PauseHandler>) {\n const dm = messageContext.agentContext.dependencyManager\n const logger = dm.resolve(AgentConfig).logger\n const config = dm.resolve(WorkflowModuleConfig)\n const instId = messageContext.message.body?.instance_id\n const thid = messageContext.message.threadId || messageContext.message.id\n logger.info('[Workflow] pause received', { instance_id: instId, thid })\n // Strict correlation: thid MUST equal instance_id\n try {\n const _id = messageContext.message.body?.instance_id\n if (_id && thid && _id !== thid) {\n throw Object.assign(new Error('threadId does not match instance_id'), { code: 'correlation_mismatch' })\n }\n } catch (_e) {\n void 0\n }\n try {\n // Enforce inbound connection matches instance binding\n const inboundConnId = messageContext.connection?.id\n const instIdBody = messageContext.message.body?.instance_id\n if (!inboundConnId || !instIdBody) {\n throw Object.assign(new Error('missing inbound connection'), { code: 'forbidden' })\n }\n const repo = messageContext.agentContext.dependencyManager.resolve(WorkflowInstanceRepository)\n const instRec = await repo.getByInstanceId(messageContext.agentContext, instIdBody)\n if (!instRec) {\n throw Object.assign(new Error('instance not found'), { code: 'invalid_event' })\n }\n if (instRec.connectionId && instRec.connectionId !== inboundConnId) {\n throw Object.assign(new Error('connection mismatch'), { code: 'forbidden' })\n }\n\n // Enqueue command for async processing (always async now)\n const queue = dm.resolve(CommandQueueService) as unknown as {\n enqueue?: (ctx: unknown, job: unknown) => Promise<void>\n isReady?: () => Promise<boolean>\n }\n\n if (queue && typeof queue.enqueue === 'function' && typeof queue.isReady === 'function') {\n const ready = await queue.isReady()\n if (ready) {\n await queue.enqueue(messageContext.agentContext, {\n cmd: 'pause',\n thid: instIdBody,\n connectionId: inboundConnId,\n payload: messageContext.message.body,\n contextCorrelationId: messageContext.agentContext.contextCorrelationId,\n })\n\n // Immediate response with CURRENT state\n const status = await this.service.status(messageContext.agentContext, { instance_id: instIdBody }, instRec)\n const reply = new StatusMessage({ thid, body: status })\n return new DidCommOutboundMessageContext(reply, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n }\n }\n\n // Fallback: queue not available, process synchronously\n logger.warn('[Workflow] Queue not available for pause, processing synchronously')\n const updated = await this.service.pause(messageContext.agentContext, messageContext.message.body, instRec)\n const status = await this.service.status(messageContext.agentContext, { instance_id: instId }, updated)\n const reply = new StatusMessage({ thid, body: status })\n return new DidCommOutboundMessageContext(reply, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n } catch (e) {\n if ((e as { code?: string })?.code === 'invalid_event') {\n logger.info('[Workflow] pause ignored (no local instance)', { instance_id: instId })\n return undefined\n }\n if (config.enableProblemReport && messageContext.connection) {\n const code = (e as { code?: string }).code\n const normalize = (c?: string) => (c === 'queue_unavailable' ? 'temporary_unavailable' : c || 'action_error')\n const body: { code: string; comment: string; args?: Record<string, unknown> } = {\n code: normalize(code),\n comment: (e as Error).message,\n }\n if (code === 'queue_unavailable') body.args = { subcode: 'queue_unavailable' }\n const pr = new ProblemReportMessage({\n thid: messageContext.message.threadId || messageContext.message.id,\n body,\n })\n return new DidCommOutboundMessageContext(pr, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n }\n throw e\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
2
|
+
import { DidCommMessageHandler, DidCommMessageHandlerInboundMessage } from "@credo-ts/didcomm";
|
|
3
|
+
|
|
4
|
+
//#region src/protocol/handlers/ProblemReportHandler.d.ts
|
|
5
|
+
declare class ProblemReportHandler implements DidCommMessageHandler {
|
|
6
|
+
supportedMessages: (typeof ProblemReportMessage)[];
|
|
7
|
+
handle(messageContext: DidCommMessageHandlerInboundMessage<ProblemReportHandler>): Promise<undefined>;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { ProblemReportHandler };
|
|
11
|
+
//# sourceMappingURL=ProblemReportHandler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProblemReportHandler.d.mts","names":[],"sources":["../../../src/protocol/handlers/ProblemReportHandler.ts"],"sourcesContent":[],"mappings":";;;;cAOa,oBAAA,YAAgC;6BACnB;EADb,MAAA,CAAA,cAAA,EAEyB,mCAFJ,CAEwC,oBAFxC,CAAA,CAAA,EAE6D,OAF7D,CAAA,SAAA,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __decorate, init_decorate } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
2
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
3
|
+
import { AgentConfig, injectable } from "@credo-ts/core";
|
|
4
|
+
|
|
5
|
+
//#region src/protocol/handlers/ProblemReportHandler.ts
|
|
6
|
+
init_decorate();
|
|
7
|
+
let ProblemReportHandler = class ProblemReportHandler$1 {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.supportedMessages = [ProblemReportMessage];
|
|
10
|
+
}
|
|
11
|
+
async handle(messageContext) {
|
|
12
|
+
const logger = messageContext.agentContext.dependencyManager.resolve(AgentConfig).logger;
|
|
13
|
+
const body = messageContext.message.body;
|
|
14
|
+
const thid = messageContext.message.threadId || messageContext.message.id;
|
|
15
|
+
logger.warn("[Workflow] problem-report received", {
|
|
16
|
+
thid,
|
|
17
|
+
code: body?.code,
|
|
18
|
+
comment: body?.comment
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
ProblemReportHandler = __decorate([injectable()], ProblemReportHandler);
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { ProblemReportHandler };
|
|
26
|
+
//# sourceMappingURL=ProblemReportHandler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProblemReportHandler.mjs","names":["ProblemReportHandler"],"sources":["../../../src/protocol/handlers/ProblemReportHandler.ts"],"sourcesContent":["import type { DidCommMessageHandler, DidCommMessageHandlerInboundMessage } from '@credo-ts/didcomm'\n\nimport { AgentConfig, injectable } from '@credo-ts/core'\n\nimport { ProblemReportMessage } from '../messages/ProblemReportMessage'\n\n@injectable()\nexport class ProblemReportHandler implements DidCommMessageHandler {\n public supportedMessages = [ProblemReportMessage]\n public async handle(messageContext: DidCommMessageHandlerInboundMessage<ProblemReportHandler>) {\n const logger = messageContext.agentContext.dependencyManager.resolve(AgentConfig).logger\n const body = messageContext.message.body\n const thid = messageContext.message.threadId || messageContext.message.id\n logger.warn('[Workflow] problem-report received', { thid, code: body?.code, comment: body?.comment })\n return undefined\n }\n}\n"],"mappings":";;;;;;AAOO,iCAAMA,uBAAsD;;OAC1D,oBAAoB,CAAC,qBAAqB;;CACjD,MAAa,OAAO,gBAA2E;EAC7F,MAAM,SAAS,eAAe,aAAa,kBAAkB,QAAQ,YAAY,CAAC;EAClF,MAAM,OAAO,eAAe,QAAQ;EACpC,MAAM,OAAO,eAAe,QAAQ,YAAY,eAAe,QAAQ;AACvE,SAAO,KAAK,sCAAsC;GAAE;GAAM,MAAM,MAAM;GAAM,SAAS,MAAM;GAAS,CAAC;;;mCAPxG,YAAY"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
2
|
+
import { PublishTemplateMessage } from "../messages/PublishTemplateMessage.mjs";
|
|
3
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
4
|
+
import { DidCommMessageHandler, DidCommMessageHandlerInboundMessage, DidCommOutboundMessageContext } from "@credo-ts/didcomm";
|
|
5
|
+
|
|
6
|
+
//#region src/protocol/handlers/PublishTemplateHandler.d.ts
|
|
7
|
+
declare class PublishTemplateHandler implements DidCommMessageHandler {
|
|
8
|
+
private readonly service;
|
|
9
|
+
supportedMessages: (typeof PublishTemplateMessage)[];
|
|
10
|
+
constructor(service: WorkflowService);
|
|
11
|
+
handle(messageContext: DidCommMessageHandlerInboundMessage<PublishTemplateHandler>): Promise<DidCommOutboundMessageContext<ProblemReportMessage> | undefined>;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { PublishTemplateHandler };
|
|
15
|
+
//# sourceMappingURL=PublishTemplateHandler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublishTemplateHandler.d.mts","names":[],"sources":["../../../src/protocol/handlers/PublishTemplateHandler.ts"],"sourcesContent":[],"mappings":";;;;;;cAYa,sBAAA,YAAkC;EAAlC,iBAAA,OAAA;EACa,iBAAA,EAAA,CAAA,OAAA,sBAAA,CAAA,EAAA;EACqB,WAAA,CAAA,OAAA,EAAA,eAAA;EAC2B,MAAA,CAAA,cAAA,EAApC,mCAAoC,CAAA,sBAAA,CAAA,CAAA,EAAuB,OAAvB,CAAuB,6BAAvB,CAAuB,oBAAvB,CAAA,GAAA,SAAA,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { WorkflowModuleConfig } from "../../WorkflowModuleConfig.mjs";
|
|
2
|
+
import { __decorateMetadata, init_decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
3
|
+
import { __decorate, init_decorate } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
4
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
5
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
6
|
+
import { PublishTemplateMessage } from "../messages/PublishTemplateMessage.mjs";
|
|
7
|
+
import { AgentConfig, injectable } from "@credo-ts/core";
|
|
8
|
+
import { DidCommOutboundMessageContext } from "@credo-ts/didcomm";
|
|
9
|
+
|
|
10
|
+
//#region src/protocol/handlers/PublishTemplateHandler.ts
|
|
11
|
+
init_decorateMetadata();
|
|
12
|
+
init_decorate();
|
|
13
|
+
var _ref;
|
|
14
|
+
let PublishTemplateHandler = class PublishTemplateHandler$1 {
|
|
15
|
+
constructor(service) {
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.supportedMessages = [PublishTemplateMessage];
|
|
18
|
+
}
|
|
19
|
+
async handle(messageContext) {
|
|
20
|
+
const dm = messageContext.agentContext.dependencyManager;
|
|
21
|
+
const logger = dm.resolve(AgentConfig).logger;
|
|
22
|
+
const config = dm.resolve(WorkflowModuleConfig);
|
|
23
|
+
logger.info("[Workflow] publish-template received");
|
|
24
|
+
try {
|
|
25
|
+
await this.service.publishTemplate(messageContext.agentContext, messageContext.message.body.template);
|
|
26
|
+
return;
|
|
27
|
+
} catch (e) {
|
|
28
|
+
if (config.enableProblemReport && messageContext.connection) return new DidCommOutboundMessageContext(new ProblemReportMessage({
|
|
29
|
+
thid: messageContext.message.threadId || messageContext.message.id,
|
|
30
|
+
body: {
|
|
31
|
+
code: e.code || "action_error",
|
|
32
|
+
comment: e.message
|
|
33
|
+
}
|
|
34
|
+
}), {
|
|
35
|
+
agentContext: messageContext.agentContext,
|
|
36
|
+
inboundMessageContext: messageContext,
|
|
37
|
+
connection: messageContext.connection
|
|
38
|
+
});
|
|
39
|
+
throw e;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
PublishTemplateHandler = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref = typeof WorkflowService !== "undefined" && WorkflowService) === "function" ? _ref : Object])], PublishTemplateHandler);
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { PublishTemplateHandler };
|
|
47
|
+
//# sourceMappingURL=PublishTemplateHandler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublishTemplateHandler.mjs","names":["PublishTemplateHandler","service: WorkflowService"],"sources":["../../../src/protocol/handlers/PublishTemplateHandler.ts"],"sourcesContent":["import type { DidCommMessageHandler, DidCommMessageHandlerInboundMessage } from '@credo-ts/didcomm'\n\nimport { AgentConfig, injectable } from '@credo-ts/core'\n\nimport { DidCommOutboundMessageContext } from '@credo-ts/didcomm'\n\nimport { WorkflowModuleConfig } from '../../WorkflowModuleConfig'\nimport { WorkflowService } from '../../services/WorkflowService'\nimport { ProblemReportMessage } from '../messages/ProblemReportMessage'\nimport { PublishTemplateMessage } from '../messages/PublishTemplateMessage'\n\n@injectable()\nexport class PublishTemplateHandler implements DidCommMessageHandler {\n public supportedMessages = [PublishTemplateMessage]\n public constructor(private readonly service: WorkflowService) {}\n public async handle(messageContext: DidCommMessageHandlerInboundMessage<PublishTemplateHandler>) {\n const dm = messageContext.agentContext.dependencyManager\n const logger = dm.resolve(AgentConfig).logger\n const config = dm.resolve(WorkflowModuleConfig)\n logger.info('[Workflow] publish-template received')\n try {\n await this.service.publishTemplate(messageContext.agentContext, messageContext.message.body.template)\n return\n } catch (e) {\n if (config.enableProblemReport && messageContext.connection) {\n const pr = new ProblemReportMessage({\n thid: messageContext.message.threadId || messageContext.message.id,\n body: { code: (e as { code?: string }).code || 'action_error', comment: (e as Error).message },\n })\n return new DidCommOutboundMessageContext(pr, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n }\n throw e\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAYO,mCAAMA,yBAAwD;CAEnE,AAAO,YAAY,AAAiBC,SAA0B;EAA1B;OAD7B,oBAAoB,CAAC,uBAAuB;;CAEnD,MAAa,OAAO,gBAA6E;EAC/F,MAAM,KAAK,eAAe,aAAa;EACvC,MAAM,SAAS,GAAG,QAAQ,YAAY,CAAC;EACvC,MAAM,SAAS,GAAG,QAAQ,qBAAqB;AAC/C,SAAO,KAAK,uCAAuC;AACnD,MAAI;AACF,SAAM,KAAK,QAAQ,gBAAgB,eAAe,cAAc,eAAe,QAAQ,KAAK,SAAS;AACrG;WACO,GAAG;AACV,OAAI,OAAO,uBAAuB,eAAe,WAK/C,QAAO,IAAI,8BAJA,IAAI,qBAAqB;IAClC,MAAM,eAAe,QAAQ,YAAY,eAAe,QAAQ;IAChE,MAAM;KAAE,MAAO,EAAwB,QAAQ;KAAgB,SAAU,EAAY;KAAS;IAC/F,CAAC,EAC2C;IAC3C,cAAc,eAAe;IAC7B,uBAAuB;IACvB,YAAY,eAAe;IAC5B,CAAC;AAEJ,SAAM;;;;qCAxBX,YAAY"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
2
|
+
import { StatusMessage } from "../messages/StatusMessage.mjs";
|
|
3
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
4
|
+
import { ResumeMessage } from "../messages/ResumeMessage.mjs";
|
|
5
|
+
import { DidCommMessageHandler, DidCommMessageHandlerInboundMessage, DidCommOutboundMessageContext } from "@credo-ts/didcomm";
|
|
6
|
+
|
|
7
|
+
//#region src/protocol/handlers/ResumeHandler.d.ts
|
|
8
|
+
declare class ResumeHandler implements DidCommMessageHandler {
|
|
9
|
+
private readonly service;
|
|
10
|
+
supportedMessages: (typeof ResumeMessage)[];
|
|
11
|
+
constructor(service: WorkflowService);
|
|
12
|
+
handle(messageContext: DidCommMessageHandlerInboundMessage<ResumeHandler>): Promise<DidCommOutboundMessageContext<ProblemReportMessage> | DidCommOutboundMessageContext<StatusMessage> | undefined>;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ResumeHandler };
|
|
16
|
+
//# sourceMappingURL=ResumeHandler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResumeHandler.d.mts","names":[],"sources":["../../../src/protocol/handlers/ResumeHandler.ts"],"sourcesContent":[],"mappings":";;;;;;;cAea,aAAA,YAAyB;EAAzB,iBAAc,OAAA;EACD,iBAAA,EAAA,CAAA,OAAA,aAAA,CAAA,EAAA;EACqB,WAAA,CAAA,OAAA,EAAA,eAAA;EAC2B,MAAA,CAAA,cAAA,EAApC,mCAAoC,CAAA,aAAA,CAAA,CAAA,EAAc,OAAd,CAAc,6BAAd,CAAc,oBAAd,CAAA,GAAc,6BAAd,CAAc,aAAd,CAAA,GAAA,SAAA,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { WorkflowModuleConfig } from "../../WorkflowModuleConfig.mjs";
|
|
2
|
+
import { CommandQueueService } from "../../queue/CommandQueue.mjs";
|
|
3
|
+
import { __decorateMetadata, init_decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
4
|
+
import { __decorate, init_decorate } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
5
|
+
import { WorkflowInstanceRepository } from "../../repository/WorkflowInstanceRepository.mjs";
|
|
6
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
7
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
8
|
+
import { StatusMessage } from "../messages/StatusMessage.mjs";
|
|
9
|
+
import { ResumeMessage } from "../messages/ResumeMessage.mjs";
|
|
10
|
+
import { AgentConfig, injectable } from "@credo-ts/core";
|
|
11
|
+
import { DidCommOutboundMessageContext } from "@credo-ts/didcomm";
|
|
12
|
+
|
|
13
|
+
//#region src/protocol/handlers/ResumeHandler.ts
|
|
14
|
+
init_decorateMetadata();
|
|
15
|
+
init_decorate();
|
|
16
|
+
var _ref;
|
|
17
|
+
let ResumeHandler = class ResumeHandler$1 {
|
|
18
|
+
constructor(service) {
|
|
19
|
+
this.service = service;
|
|
20
|
+
this.supportedMessages = [ResumeMessage];
|
|
21
|
+
}
|
|
22
|
+
async handle(messageContext) {
|
|
23
|
+
const dm = messageContext.agentContext.dependencyManager;
|
|
24
|
+
const logger = dm.resolve(AgentConfig).logger;
|
|
25
|
+
const config = dm.resolve(WorkflowModuleConfig);
|
|
26
|
+
const instId = messageContext.message.body?.instance_id;
|
|
27
|
+
const thid = messageContext.message.threadId || messageContext.message.id;
|
|
28
|
+
logger.info("[Workflow] resume received", {
|
|
29
|
+
instance_id: instId,
|
|
30
|
+
thid
|
|
31
|
+
});
|
|
32
|
+
try {
|
|
33
|
+
const _id = messageContext.message.body?.instance_id;
|
|
34
|
+
if (_id && thid && _id !== thid) throw Object.assign(/* @__PURE__ */ new Error("threadId does not match instance_id"), { code: "correlation_mismatch" });
|
|
35
|
+
} catch (_e) {}
|
|
36
|
+
try {
|
|
37
|
+
const inboundConnId = messageContext.connection?.id;
|
|
38
|
+
const instIdBody = messageContext.message.body?.instance_id;
|
|
39
|
+
if (!inboundConnId || !instIdBody) throw Object.assign(/* @__PURE__ */ new Error("missing inbound connection"), { code: "forbidden" });
|
|
40
|
+
const instRec = await messageContext.agentContext.dependencyManager.resolve(WorkflowInstanceRepository).getByInstanceId(messageContext.agentContext, instIdBody);
|
|
41
|
+
if (!instRec) throw Object.assign(/* @__PURE__ */ new Error("instance not found"), { code: "invalid_event" });
|
|
42
|
+
if (instRec.connectionId && instRec.connectionId !== inboundConnId) throw Object.assign(/* @__PURE__ */ new Error("connection mismatch"), { code: "forbidden" });
|
|
43
|
+
const queue = dm.resolve(CommandQueueService);
|
|
44
|
+
if (queue && typeof queue.enqueue === "function" && typeof queue.isReady === "function") {
|
|
45
|
+
if (await queue.isReady()) {
|
|
46
|
+
await queue.enqueue(messageContext.agentContext, {
|
|
47
|
+
cmd: "resume",
|
|
48
|
+
thid: instIdBody,
|
|
49
|
+
connectionId: inboundConnId,
|
|
50
|
+
payload: messageContext.message.body,
|
|
51
|
+
contextCorrelationId: messageContext.agentContext.contextCorrelationId
|
|
52
|
+
});
|
|
53
|
+
return new DidCommOutboundMessageContext(new StatusMessage({
|
|
54
|
+
thid,
|
|
55
|
+
body: await this.service.status(messageContext.agentContext, { instance_id: instIdBody }, instRec)
|
|
56
|
+
}), {
|
|
57
|
+
agentContext: messageContext.agentContext,
|
|
58
|
+
inboundMessageContext: messageContext,
|
|
59
|
+
connection: messageContext.connection
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
logger.warn("[Workflow] Queue not available for resume, processing synchronously");
|
|
64
|
+
const updated = await this.service.resume(messageContext.agentContext, messageContext.message.body, instRec);
|
|
65
|
+
return new DidCommOutboundMessageContext(new StatusMessage({
|
|
66
|
+
thid,
|
|
67
|
+
body: await this.service.status(messageContext.agentContext, { instance_id: instId }, updated)
|
|
68
|
+
}), {
|
|
69
|
+
agentContext: messageContext.agentContext,
|
|
70
|
+
inboundMessageContext: messageContext,
|
|
71
|
+
connection: messageContext.connection
|
|
72
|
+
});
|
|
73
|
+
} catch (e) {
|
|
74
|
+
if (e?.code === "invalid_event") {
|
|
75
|
+
logger.info("[Workflow] resume ignored (no local instance)", { instance_id: instId });
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (config.enableProblemReport && messageContext.connection) {
|
|
79
|
+
const code = e.code;
|
|
80
|
+
const normalize = (c) => c === "queue_unavailable" ? "temporary_unavailable" : c || "action_error";
|
|
81
|
+
const body = {
|
|
82
|
+
code: normalize(code),
|
|
83
|
+
comment: e.message
|
|
84
|
+
};
|
|
85
|
+
if (code === "queue_unavailable") body.args = { subcode: "queue_unavailable" };
|
|
86
|
+
return new DidCommOutboundMessageContext(new ProblemReportMessage({
|
|
87
|
+
thid: messageContext.message.threadId || messageContext.message.id,
|
|
88
|
+
body
|
|
89
|
+
}), {
|
|
90
|
+
agentContext: messageContext.agentContext,
|
|
91
|
+
inboundMessageContext: messageContext,
|
|
92
|
+
connection: messageContext.connection
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
throw e;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
ResumeHandler = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref = typeof WorkflowService !== "undefined" && WorkflowService) === "function" ? _ref : Object])], ResumeHandler);
|
|
100
|
+
|
|
101
|
+
//#endregion
|
|
102
|
+
export { ResumeHandler };
|
|
103
|
+
//# sourceMappingURL=ResumeHandler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResumeHandler.mjs","names":["ResumeHandler","service: WorkflowService","body: { code: string; comment: string; args?: Record<string, unknown> }"],"sources":["../../../src/protocol/handlers/ResumeHandler.ts"],"sourcesContent":["import type { DidCommMessageHandler, DidCommMessageHandlerInboundMessage } from '@credo-ts/didcomm'\n\nimport { AgentConfig, injectable } from '@credo-ts/core'\n\nimport { DidCommOutboundMessageContext } from '@credo-ts/didcomm'\n\nimport { WorkflowModuleConfig } from '../../WorkflowModuleConfig'\nimport { CommandQueueService } from '../../queue/CommandQueue'\nimport { WorkflowService } from '../../services/WorkflowService'\nimport { ProblemReportMessage } from '../messages/ProblemReportMessage'\nimport { ResumeMessage } from '../messages/ResumeMessage'\nimport { StatusMessage } from '../messages/StatusMessage'\nimport { WorkflowInstanceRepository } from '../../repository/WorkflowInstanceRepository'\n\n@injectable()\nexport class ResumeHandler implements DidCommMessageHandler {\n public supportedMessages = [ResumeMessage]\n public constructor(private readonly service: WorkflowService) {}\n public async handle(messageContext: DidCommMessageHandlerInboundMessage<ResumeHandler>) {\n const dm = messageContext.agentContext.dependencyManager\n const logger = dm.resolve(AgentConfig).logger\n const config = dm.resolve(WorkflowModuleConfig)\n const instId = messageContext.message.body?.instance_id\n const thid = messageContext.message.threadId || messageContext.message.id\n logger.info('[Workflow] resume received', { instance_id: instId, thid })\n // Strict correlation: thid MUST equal instance_id\n try {\n const _id = messageContext.message.body?.instance_id\n if (_id && thid && _id !== thid) {\n throw Object.assign(new Error('threadId does not match instance_id'), { code: 'correlation_mismatch' })\n }\n } catch (_e) {\n void 0\n }\n try {\n // Enforce inbound connection matches instance binding\n const inboundConnId = messageContext.connection?.id\n const instIdBody = messageContext.message.body?.instance_id\n if (!inboundConnId || !instIdBody) {\n throw Object.assign(new Error('missing inbound connection'), { code: 'forbidden' })\n }\n const repo = messageContext.agentContext.dependencyManager.resolve(WorkflowInstanceRepository)\n const instRec = await repo.getByInstanceId(messageContext.agentContext, instIdBody)\n if (!instRec) {\n throw Object.assign(new Error('instance not found'), { code: 'invalid_event' })\n }\n if (instRec.connectionId && instRec.connectionId !== inboundConnId) {\n throw Object.assign(new Error('connection mismatch'), { code: 'forbidden' })\n }\n\n // Enqueue command for async processing (always async now)\n const queue = dm.resolve(CommandQueueService) as unknown as {\n enqueue?: (ctx: unknown, job: unknown) => Promise<void>\n isReady?: () => Promise<boolean>\n }\n\n if (queue && typeof queue.enqueue === 'function' && typeof queue.isReady === 'function') {\n const ready = await queue.isReady()\n if (ready) {\n await queue.enqueue(messageContext.agentContext, {\n cmd: 'resume',\n thid: instIdBody,\n connectionId: inboundConnId,\n payload: messageContext.message.body,\n contextCorrelationId: messageContext.agentContext.contextCorrelationId,\n })\n\n // Immediate response with CURRENT state\n const status = await this.service.status(messageContext.agentContext, { instance_id: instIdBody }, instRec)\n const reply = new StatusMessage({ thid, body: status })\n return new DidCommOutboundMessageContext(reply, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n }\n }\n\n // Fallback: queue not available, process synchronously\n logger.warn('[Workflow] Queue not available for resume, processing synchronously')\n const updated = await this.service.resume(messageContext.agentContext, messageContext.message.body, instRec)\n const status = await this.service.status(messageContext.agentContext, { instance_id: instId }, updated)\n const reply = new StatusMessage({ thid, body: status })\n return new DidCommOutboundMessageContext(reply, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n } catch (e) {\n if ((e as { code?: string })?.code === 'invalid_event') {\n logger.info('[Workflow] resume ignored (no local instance)', { instance_id: instId })\n return undefined\n }\n if (config.enableProblemReport && messageContext.connection) {\n const code = (e as { code?: string }).code\n const normalize = (c?: string) => (c === 'queue_unavailable' ? 'temporary_unavailable' : c || 'action_error')\n const body: { code: string; comment: string; args?: Record<string, unknown> } = {\n code: normalize(code),\n comment: (e as Error).message,\n }\n if (code === 'queue_unavailable') body.args = { subcode: 'queue_unavailable' }\n const pr = new ProblemReportMessage({\n thid: messageContext.message.threadId || messageContext.message.id,\n body,\n })\n return new DidCommOutboundMessageContext(pr, {\n agentContext: messageContext.agentContext,\n inboundMessageContext: messageContext,\n connection: messageContext.connection,\n })\n }\n throw e\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
2
|
+
import { StartMessage } from "../messages/StartMessage.mjs";
|
|
3
|
+
import { StatusMessage } from "../messages/StatusMessage.mjs";
|
|
4
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
5
|
+
import { DidCommMessageHandler, DidCommMessageHandlerInboundMessage, DidCommOutboundMessageContext } from "@credo-ts/didcomm";
|
|
6
|
+
|
|
7
|
+
//#region src/protocol/handlers/StartHandler.d.ts
|
|
8
|
+
declare class StartHandler implements DidCommMessageHandler {
|
|
9
|
+
private readonly service;
|
|
10
|
+
supportedMessages: (typeof StartMessage)[];
|
|
11
|
+
constructor(service: WorkflowService);
|
|
12
|
+
handle(messageContext: DidCommMessageHandlerInboundMessage<StartHandler>): Promise<DidCommOutboundMessageContext<ProblemReportMessage> | DidCommOutboundMessageContext<StatusMessage>>;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { StartHandler };
|
|
16
|
+
//# sourceMappingURL=StartHandler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartHandler.d.mts","names":[],"sources":["../../../src/protocol/handlers/StartHandler.ts"],"sourcesContent":[],"mappings":";;;;;;;cAkBa,YAAA,YAAwB;EAAxB,iBAAa,OAAA;EACA,iBAAA,EAAA,CAAA,OAAA,YAAA,CAAA,EAAA;EACqB,WAAA,CAAA,OAAA,EAAA,eAAA;EAC2B,MAAA,CAAA,cAAA,EAApC,mCAAoC,CAAA,YAAA,CAAA,CAAA,EAAa,OAAb,CAAa,6BAAb,CAAa,oBAAb,CAAA,GAAa,6BAAb,CAAa,aAAb,CAAA,CAAA"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { WorkflowModuleConfig } from "../../WorkflowModuleConfig.mjs";
|
|
2
|
+
import { CommandQueueService } from "../../queue/CommandQueue.mjs";
|
|
3
|
+
import { __decorateMetadata, init_decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
4
|
+
import { __decorate, init_decorate } from "../../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
5
|
+
import { WorkflowInstanceRepository } from "../../repository/WorkflowInstanceRepository.mjs";
|
|
6
|
+
import { WorkflowTemplateRepository } from "../../repository/WorkflowTemplateRepository.mjs";
|
|
7
|
+
import { StartMessage } from "../messages/StartMessage.mjs";
|
|
8
|
+
import { FetchTemplateMessage, init_FetchTemplateMessage } from "../messages/FetchTemplateMessage.mjs";
|
|
9
|
+
import "../messages/DiscoverMessage.mjs";
|
|
10
|
+
import { WorkflowService } from "../../services/WorkflowService.mjs";
|
|
11
|
+
import { ProblemReportMessage } from "../messages/ProblemReportMessage.mjs";
|
|
12
|
+
import { StatusMessage } from "../messages/StatusMessage.mjs";
|
|
13
|
+
import { AgentConfig, injectable } from "@credo-ts/core";
|
|
14
|
+
import { DidCommMessageSender, DidCommOutboundMessageContext, ReturnRouteTypes } from "@credo-ts/didcomm";
|
|
15
|
+
|
|
16
|
+
//#region src/protocol/handlers/StartHandler.ts
|
|
17
|
+
init_FetchTemplateMessage();
|
|
18
|
+
init_decorateMetadata();
|
|
19
|
+
init_decorate();
|
|
20
|
+
var _ref;
|
|
21
|
+
let StartHandler = class StartHandler$1 {
|
|
22
|
+
constructor(service) {
|
|
23
|
+
this.service = service;
|
|
24
|
+
this.supportedMessages = [StartMessage];
|
|
25
|
+
}
|
|
26
|
+
async handle(messageContext) {
|
|
27
|
+
const dm = messageContext.agentContext.dependencyManager;
|
|
28
|
+
const logger = dm.resolve(AgentConfig).logger;
|
|
29
|
+
const config = dm.resolve(WorkflowModuleConfig);
|
|
30
|
+
const thid = messageContext.message.threadId || messageContext.message.id;
|
|
31
|
+
const iid = messageContext.message.body?.instance_id;
|
|
32
|
+
logger.info("[Workflow] start received", {
|
|
33
|
+
template_id: messageContext.message.body?.template_id,
|
|
34
|
+
instance_id: iid,
|
|
35
|
+
thid
|
|
36
|
+
});
|
|
37
|
+
try {
|
|
38
|
+
const _id = messageContext.message.body?.instance_id;
|
|
39
|
+
if (_id && thid && _id !== thid) {
|
|
40
|
+
try {
|
|
41
|
+
logger.warn("[Workflow] start correlation mismatch (thid != instance_id)", {
|
|
42
|
+
thid,
|
|
43
|
+
instance_id: _id
|
|
44
|
+
});
|
|
45
|
+
} catch {}
|
|
46
|
+
throw Object.assign(/* @__PURE__ */ new Error("threadId does not match instance_id"), { code: "correlation_mismatch" });
|
|
47
|
+
}
|
|
48
|
+
} catch (_e) {}
|
|
49
|
+
const startBody = { ...messageContext.message.body };
|
|
50
|
+
const connectionId = messageContext.connection?.id;
|
|
51
|
+
if (connectionId) {
|
|
52
|
+
startBody.connection_id = connectionId;
|
|
53
|
+
try {
|
|
54
|
+
logger.info("[Workflow] start binding to inbound connection", {
|
|
55
|
+
thid,
|
|
56
|
+
connectionId
|
|
57
|
+
});
|
|
58
|
+
} catch {}
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const maybeRepo = dm.resolve(WorkflowTemplateRepository);
|
|
62
|
+
if (!!maybeRepo?.findByTemplateIdAndVersion) {
|
|
63
|
+
const templateRepo = maybeRepo;
|
|
64
|
+
const templateId = startBody.template_id;
|
|
65
|
+
const templateVersion = startBody.template_version;
|
|
66
|
+
if (!await templateRepo.findByTemplateIdAndVersion(messageContext.agentContext, templateId, templateVersion)) {
|
|
67
|
+
const allowDiscover = messageContext.message.body?.allow_discover ?? true;
|
|
68
|
+
const conn = messageContext.connection;
|
|
69
|
+
if (allowDiscover && config.enableAutoDiscoverOnStart && conn) try {
|
|
70
|
+
logger.info("[Workflow] start: template missing locally, attempting fetch-template", {
|
|
71
|
+
thid,
|
|
72
|
+
template_id: templateId,
|
|
73
|
+
template_version: templateVersion
|
|
74
|
+
});
|
|
75
|
+
const sender = dm.resolve(DidCommMessageSender);
|
|
76
|
+
const fetch = new FetchTemplateMessage({
|
|
77
|
+
thid,
|
|
78
|
+
body: {
|
|
79
|
+
template_id: templateId,
|
|
80
|
+
template_version: templateVersion,
|
|
81
|
+
prefer_hash: messageContext.message.body?.template_hash
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
try {
|
|
85
|
+
fetch.setReturnRouting(ReturnRouteTypes.thread, thid);
|
|
86
|
+
} catch {}
|
|
87
|
+
await sender.sendMessage(new DidCommOutboundMessageContext(fetch, {
|
|
88
|
+
agentContext: messageContext.agentContext,
|
|
89
|
+
connection: conn
|
|
90
|
+
}));
|
|
91
|
+
try {
|
|
92
|
+
logger.info("[Workflow] start: fetch-template sent", { thid });
|
|
93
|
+
} catch {}
|
|
94
|
+
} catch (_discoverErr) {
|
|
95
|
+
try {
|
|
96
|
+
logger.warn("[Workflow] start: fetch-template send failed", {
|
|
97
|
+
thid,
|
|
98
|
+
error: _discoverErr.message
|
|
99
|
+
});
|
|
100
|
+
} catch {}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const queue = dm.resolve(CommandQueueService);
|
|
105
|
+
if (queue && typeof queue.enqueue === "function" && typeof queue.isReady === "function") {
|
|
106
|
+
const ready = await queue.isReady();
|
|
107
|
+
try {
|
|
108
|
+
logger.info("[Workflow] start: queue resolved", {
|
|
109
|
+
thid,
|
|
110
|
+
ready
|
|
111
|
+
});
|
|
112
|
+
} catch {}
|
|
113
|
+
if (ready) {
|
|
114
|
+
const instanceId = startBody.instance_id || thid;
|
|
115
|
+
startBody.instance_id = instanceId;
|
|
116
|
+
await queue.enqueue(messageContext.agentContext, {
|
|
117
|
+
cmd: "start",
|
|
118
|
+
thid: instanceId,
|
|
119
|
+
connectionId,
|
|
120
|
+
payload: startBody,
|
|
121
|
+
contextCorrelationId: messageContext.agentContext.contextCorrelationId
|
|
122
|
+
});
|
|
123
|
+
try {
|
|
124
|
+
logger.info("[Workflow] start: enqueued command", {
|
|
125
|
+
thid: instanceId,
|
|
126
|
+
connectionId
|
|
127
|
+
});
|
|
128
|
+
} catch {}
|
|
129
|
+
const repo = dm.resolve(WorkflowInstanceRepository);
|
|
130
|
+
let inst;
|
|
131
|
+
try {
|
|
132
|
+
inst = await repo.getByInstanceId(messageContext.agentContext, instanceId);
|
|
133
|
+
} catch {
|
|
134
|
+
try {
|
|
135
|
+
logger.debug?.("[Workflow] start: instance not yet created, will be created by worker", { thid: instanceId });
|
|
136
|
+
} catch {}
|
|
137
|
+
}
|
|
138
|
+
return new DidCommOutboundMessageContext(new StatusMessage({
|
|
139
|
+
thid,
|
|
140
|
+
body: inst ? await this.service.status(messageContext.agentContext, { instance_id: instanceId }, inst) : {
|
|
141
|
+
instance_id: instanceId,
|
|
142
|
+
state: "pending",
|
|
143
|
+
allowed_events: [],
|
|
144
|
+
action_menu: [],
|
|
145
|
+
artifacts: {}
|
|
146
|
+
}
|
|
147
|
+
}), {
|
|
148
|
+
agentContext: messageContext.agentContext,
|
|
149
|
+
inboundMessageContext: messageContext,
|
|
150
|
+
connection: messageContext.connection
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
logger.warn("[Workflow] Queue not available for start, processing synchronously");
|
|
155
|
+
const rec = await this.service.start(messageContext.agentContext, startBody);
|
|
156
|
+
return new DidCommOutboundMessageContext(new StatusMessage({
|
|
157
|
+
thid,
|
|
158
|
+
body: await this.service.status(messageContext.agentContext, { instance_id: rec.instanceId }, rec)
|
|
159
|
+
}), {
|
|
160
|
+
agentContext: messageContext.agentContext,
|
|
161
|
+
inboundMessageContext: messageContext,
|
|
162
|
+
connection: messageContext.connection
|
|
163
|
+
});
|
|
164
|
+
} catch (e) {
|
|
165
|
+
if (config.enableProblemReport && messageContext.connection) {
|
|
166
|
+
const errCode = e.code;
|
|
167
|
+
const allowDiscover = messageContext.message.body?.allow_discover ?? true;
|
|
168
|
+
const conn = messageContext.connection;
|
|
169
|
+
const th = messageContext.message.threadId || messageContext.message.id;
|
|
170
|
+
if (errCode === "invalid_template" && allowDiscover && config.enableAutoDiscoverOnStart && conn) try {
|
|
171
|
+
logger.info("[Workflow] start error: invalid_template, attempting fetch-template and deferring", {
|
|
172
|
+
thid: th,
|
|
173
|
+
template_id: messageContext.message.body?.template_id,
|
|
174
|
+
template_version: messageContext.message.body?.template_version
|
|
175
|
+
});
|
|
176
|
+
const sender = messageContext.agentContext.dependencyManager.resolve(DidCommMessageSender);
|
|
177
|
+
const wantedId = messageContext.message.body?.template_id;
|
|
178
|
+
const wantedVersion = messageContext.message.body?.template_version;
|
|
179
|
+
const fetch = new FetchTemplateMessage({
|
|
180
|
+
thid: th,
|
|
181
|
+
body: {
|
|
182
|
+
template_id: wantedId,
|
|
183
|
+
template_version: wantedVersion,
|
|
184
|
+
prefer_hash: messageContext.message.body?.template_hash
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
try {
|
|
188
|
+
fetch.setReturnRouting(ReturnRouteTypes.thread, th);
|
|
189
|
+
} catch {}
|
|
190
|
+
await sender.sendMessage(new DidCommOutboundMessageContext(fetch, {
|
|
191
|
+
agentContext: messageContext.agentContext,
|
|
192
|
+
connection: conn
|
|
193
|
+
}));
|
|
194
|
+
throw new Error("template not found - fetch-template sent, please retry start after template is received");
|
|
195
|
+
} catch (discoverErr) {
|
|
196
|
+
return new DidCommOutboundMessageContext(new ProblemReportMessage({
|
|
197
|
+
thid: th,
|
|
198
|
+
body: {
|
|
199
|
+
code: "not_found_remote_template",
|
|
200
|
+
comment: discoverErr.message
|
|
201
|
+
}
|
|
202
|
+
}), {
|
|
203
|
+
agentContext: messageContext.agentContext,
|
|
204
|
+
inboundMessageContext: messageContext,
|
|
205
|
+
connection: messageContext.connection
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
try {
|
|
209
|
+
logger.warn("[Workflow] start failed, sending problem-report", {
|
|
210
|
+
thid,
|
|
211
|
+
code: errCode || "action_error",
|
|
212
|
+
error: e.message
|
|
213
|
+
});
|
|
214
|
+
} catch {}
|
|
215
|
+
const normalize = (c) => c === "queue_unavailable" ? "temporary_unavailable" : c === "template_not_found" ? "not_found_remote_template" : c || "action_error";
|
|
216
|
+
const body = {
|
|
217
|
+
code: normalize(errCode),
|
|
218
|
+
comment: e.message
|
|
219
|
+
};
|
|
220
|
+
if (errCode === "queue_unavailable") body.args = { subcode: "queue_unavailable" };
|
|
221
|
+
return new DidCommOutboundMessageContext(new ProblemReportMessage({
|
|
222
|
+
thid,
|
|
223
|
+
body
|
|
224
|
+
}), {
|
|
225
|
+
agentContext: messageContext.agentContext,
|
|
226
|
+
inboundMessageContext: messageContext,
|
|
227
|
+
connection: messageContext.connection
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
throw e;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
StartHandler = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref = typeof WorkflowService !== "undefined" && WorkflowService) === "function" ? _ref : Object])], StartHandler);
|
|
235
|
+
|
|
236
|
+
//#endregion
|
|
237
|
+
export { StartHandler };
|
|
238
|
+
//# sourceMappingURL=StartHandler.mjs.map
|