@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,446 @@
|
|
|
1
|
+
import { __require, __toCommonJS } from "./_virtual/rolldown_runtime.mjs";
|
|
2
|
+
import { WorkflowModuleConfig } from "./WorkflowModuleConfig.mjs";
|
|
3
|
+
import { CommandQueueService } from "./queue/CommandQueue.mjs";
|
|
4
|
+
import { WorkflowCommandRepository } from "./repository/WorkflowCommandRepository.mjs";
|
|
5
|
+
import { PersistentCommandQueue } from "./queue/PersistentCommandQueue.mjs";
|
|
6
|
+
import { WorkflowInstanceRepository } from "./repository/WorkflowInstanceRepository.mjs";
|
|
7
|
+
import { WorkflowTemplateRepository } from "./repository/WorkflowTemplateRepository.mjs";
|
|
8
|
+
import { FetchTemplateMessage_exports, init_FetchTemplateMessage } from "./protocol/messages/FetchTemplateMessage.mjs";
|
|
9
|
+
import { WorkflowService } from "./services/WorkflowService.mjs";
|
|
10
|
+
import { WorkflowApi } from "./api/WorkflowApi.mjs";
|
|
11
|
+
import { AdvanceHandler } from "./protocol/handlers/AdvanceHandler.mjs";
|
|
12
|
+
import { CancelHandler } from "./protocol/handlers/CancelHandler.mjs";
|
|
13
|
+
import { CompleteHandler } from "./protocol/handlers/CompleteHandler.mjs";
|
|
14
|
+
import { DiscoverHandler } from "./protocol/handlers/DiscoverHandler.mjs";
|
|
15
|
+
import { FetchTemplateHandler } from "./protocol/handlers/FetchTemplateHandler.mjs";
|
|
16
|
+
import { TemplateHandler } from "./protocol/handlers/TemplateHandler.mjs";
|
|
17
|
+
import { PauseHandler } from "./protocol/handlers/PauseHandler.mjs";
|
|
18
|
+
import { ProblemReportHandler } from "./protocol/handlers/ProblemReportHandler.mjs";
|
|
19
|
+
import { PublishTemplateHandler } from "./protocol/handlers/PublishTemplateHandler.mjs";
|
|
20
|
+
import { ResumeHandler } from "./protocol/handlers/ResumeHandler.mjs";
|
|
21
|
+
import { StartHandler } from "./protocol/handlers/StartHandler.mjs";
|
|
22
|
+
import { StatusHandler } from "./protocol/handlers/StatusHandler.mjs";
|
|
23
|
+
import { AgentConfig, EventEmitter, InjectionSymbols } from "@credo-ts/core";
|
|
24
|
+
import { DidCommConnectionService, DidCommCredentialEventTypes, DidCommCredentialState, DidCommFeatureRegistry, DidCommMessageHandlerRegistry, DidCommMessageSender, DidCommOutboundMessageContext, DidCommProofEventTypes, DidCommProofState, DidCommProtocol, ReturnRouteTypes } from "@credo-ts/didcomm";
|
|
25
|
+
|
|
26
|
+
//#region src/WorkflowModule.ts
|
|
27
|
+
const WORKFLOW_PROTOCOL_URI = "https://didcomm.org/workflow/1.0";
|
|
28
|
+
const WORKFLOW_ROLES = ["processor", "coordinator"];
|
|
29
|
+
var WorkflowModule = class {
|
|
30
|
+
constructor(options) {
|
|
31
|
+
this.api = WorkflowApi;
|
|
32
|
+
this.config = new WorkflowModuleConfig(options);
|
|
33
|
+
}
|
|
34
|
+
register(dependencyManager) {
|
|
35
|
+
dependencyManager.resolve(AgentConfig).logger.info("Registering WorkflowModule");
|
|
36
|
+
dependencyManager.registerInstance(WorkflowModuleConfig, this.config);
|
|
37
|
+
dependencyManager.registerSingleton(WorkflowTemplateRepository);
|
|
38
|
+
dependencyManager.registerSingleton(WorkflowInstanceRepository);
|
|
39
|
+
dependencyManager.registerSingleton(WorkflowCommandRepository);
|
|
40
|
+
dependencyManager.registerSingleton(WorkflowService);
|
|
41
|
+
dependencyManager.registerSingleton(PublishTemplateHandler);
|
|
42
|
+
dependencyManager.registerSingleton(StartHandler);
|
|
43
|
+
dependencyManager.registerSingleton(AdvanceHandler);
|
|
44
|
+
dependencyManager.registerSingleton(StatusHandler);
|
|
45
|
+
dependencyManager.registerSingleton(ProblemReportHandler);
|
|
46
|
+
dependencyManager.registerSingleton(PauseHandler);
|
|
47
|
+
dependencyManager.registerSingleton(ResumeHandler);
|
|
48
|
+
dependencyManager.registerSingleton(CancelHandler);
|
|
49
|
+
dependencyManager.registerSingleton(CompleteHandler);
|
|
50
|
+
dependencyManager.registerSingleton(DiscoverHandler);
|
|
51
|
+
dependencyManager.registerSingleton(FetchTemplateHandler);
|
|
52
|
+
dependencyManager.registerSingleton(TemplateHandler);
|
|
53
|
+
}
|
|
54
|
+
async initialize(agentContext) {
|
|
55
|
+
const dm = agentContext.dependencyManager;
|
|
56
|
+
const logger = dm.resolve(AgentConfig).logger;
|
|
57
|
+
const features = dm.resolve(DidCommFeatureRegistry);
|
|
58
|
+
const handlers = dm.resolve(DidCommMessageHandlerRegistry);
|
|
59
|
+
logger.info("Initializing WorkflowModule - registering workflow/1.0 protocol");
|
|
60
|
+
try {
|
|
61
|
+
features.register(new DidCommProtocol({
|
|
62
|
+
id: WORKFLOW_PROTOCOL_URI,
|
|
63
|
+
roles: [...WORKFLOW_ROLES]
|
|
64
|
+
}));
|
|
65
|
+
} catch (_e) {}
|
|
66
|
+
handlers.registerMessageHandler(dm.resolve(PublishTemplateHandler));
|
|
67
|
+
handlers.registerMessageHandler(dm.resolve(StartHandler));
|
|
68
|
+
handlers.registerMessageHandler(dm.resolve(AdvanceHandler));
|
|
69
|
+
handlers.registerMessageHandler(dm.resolve(StatusHandler));
|
|
70
|
+
handlers.registerMessageHandler(dm.resolve(ProblemReportHandler));
|
|
71
|
+
handlers.registerMessageHandler(dm.resolve(PauseHandler));
|
|
72
|
+
handlers.registerMessageHandler(dm.resolve(ResumeHandler));
|
|
73
|
+
handlers.registerMessageHandler(dm.resolve(CancelHandler));
|
|
74
|
+
handlers.registerMessageHandler(dm.resolve(CompleteHandler));
|
|
75
|
+
handlers.registerMessageHandler(dm.resolve(DiscoverHandler));
|
|
76
|
+
handlers.registerMessageHandler(dm.resolve(FetchTemplateHandler));
|
|
77
|
+
handlers.registerMessageHandler(dm.resolve(TemplateHandler));
|
|
78
|
+
const events = dm.resolve(EventEmitter);
|
|
79
|
+
const service = dm.resolve(WorkflowService);
|
|
80
|
+
const contextProvider = dm.resolve(InjectionSymbols.AgentContextProvider);
|
|
81
|
+
const rootContextId = agentContext.contextCorrelationId;
|
|
82
|
+
const resolveEventContext = async (metadata) => {
|
|
83
|
+
const correlationId = metadata?.contextCorrelationId;
|
|
84
|
+
if (!correlationId || correlationId === rootContextId) return {
|
|
85
|
+
context: agentContext,
|
|
86
|
+
release: async () => {}
|
|
87
|
+
};
|
|
88
|
+
try {
|
|
89
|
+
const scopedContext = await contextProvider.getAgentContextForContextCorrelationId(correlationId);
|
|
90
|
+
return {
|
|
91
|
+
context: scopedContext,
|
|
92
|
+
release: async () => {
|
|
93
|
+
try {
|
|
94
|
+
await contextProvider.endSessionForAgentContext(scopedContext);
|
|
95
|
+
} catch (error) {
|
|
96
|
+
logger.debug("WorkflowModule - failed to end tenant session after event", {
|
|
97
|
+
contextCorrelationId: correlationId,
|
|
98
|
+
error: error.message
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
} catch (error) {
|
|
104
|
+
logger.debug("WorkflowModule - unable to resolve context for event", {
|
|
105
|
+
contextCorrelationId: correlationId,
|
|
106
|
+
error: error.message
|
|
107
|
+
});
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
events.on(DidCommCredentialEventTypes.DidCommCredentialStateChanged, async (e) => {
|
|
112
|
+
const rec = e.payload.credentialExchangeRecord;
|
|
113
|
+
const connId = rec.connectionId;
|
|
114
|
+
if (!connId) return;
|
|
115
|
+
const scoped = await resolveEventContext(e.metadata);
|
|
116
|
+
if (!scoped) return;
|
|
117
|
+
try {
|
|
118
|
+
if (rec.state === DidCommCredentialState.ProposalReceived) await service.autoAdvanceByConnection(scoped.context, connId, "proposal_received");
|
|
119
|
+
else if (rec.state === DidCommCredentialState.OfferReceived) await service.autoAdvanceByConnection(scoped.context, connId, "offer_received");
|
|
120
|
+
else if (rec.state === DidCommCredentialState.RequestReceived) await service.autoAdvanceByConnection(scoped.context, connId, "request_received");
|
|
121
|
+
else if (rec.state === DidCommCredentialState.Done) await service.autoAdvanceByConnection(scoped.context, connId, "issued_ack");
|
|
122
|
+
} finally {
|
|
123
|
+
await scoped.release();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
events.on(DidCommProofEventTypes.ProofStateChanged, async (e) => {
|
|
127
|
+
const rec = e.payload.proofRecord;
|
|
128
|
+
const connId = rec.connectionId;
|
|
129
|
+
if (!connId) return;
|
|
130
|
+
const scoped = await resolveEventContext(e.metadata);
|
|
131
|
+
if (!scoped) return;
|
|
132
|
+
try {
|
|
133
|
+
if (rec.state === DidCommProofState.PresentationReceived) await service.autoAdvanceByConnection(scoped.context, connId, "presentation_received");
|
|
134
|
+
else if (rec.state === DidCommProofState.Done) await service.autoAdvanceByConnection(scoped.context, connId, "verified_ack");
|
|
135
|
+
} finally {
|
|
136
|
+
await scoped.release();
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
try {
|
|
140
|
+
let createPaymentsV1Actions;
|
|
141
|
+
try {
|
|
142
|
+
({createPaymentsV1Actions} = __require("@credo-ts/payments"));
|
|
143
|
+
} catch {}
|
|
144
|
+
if (!createPaymentsV1Actions) try {
|
|
145
|
+
({createPaymentsV1Actions} = __require("@credo-ts/payments/workflow/PaymentsV1Actions"));
|
|
146
|
+
} catch {}
|
|
147
|
+
if (!createPaymentsV1Actions) try {
|
|
148
|
+
({createPaymentsV1Actions} = __require("@credo-ts/payments/workflow/PaymentsV1Actions"));
|
|
149
|
+
} catch {}
|
|
150
|
+
if (!createPaymentsV1Actions) try {
|
|
151
|
+
({createPaymentsV1Actions} = __require("@ajna-inc/payments"));
|
|
152
|
+
} catch {}
|
|
153
|
+
if (!createPaymentsV1Actions) try {
|
|
154
|
+
({createPaymentsV1Actions} = __require("@ajna-inc/payments/workflow/PaymentsV1Actions"));
|
|
155
|
+
} catch {}
|
|
156
|
+
if (createPaymentsV1Actions) {
|
|
157
|
+
const actions = createPaymentsV1Actions();
|
|
158
|
+
try {
|
|
159
|
+
const svcAny = service;
|
|
160
|
+
if (typeof svcAny.registerActions === "function") svcAny.registerActions(actions);
|
|
161
|
+
else if (svcAny.actions && typeof svcAny.actions.register === "function") for (const a of actions) svcAny.actions.register(a);
|
|
162
|
+
else throw new Error("no action registry available");
|
|
163
|
+
logger.info("WorkflowModule - registered PaymentsV1 actions");
|
|
164
|
+
} catch (_e) {}
|
|
165
|
+
}
|
|
166
|
+
} catch {}
|
|
167
|
+
if (this.config.enablePaymentsEventMapping) try {
|
|
168
|
+
let PaymentsEventTypes;
|
|
169
|
+
try {
|
|
170
|
+
({PaymentsEventTypes} = __require("@credo-ts/payments"));
|
|
171
|
+
} catch {}
|
|
172
|
+
if (!PaymentsEventTypes) try {
|
|
173
|
+
({PaymentsEventTypes} = __require("@credo-ts/payments/events/PaymentEvents"));
|
|
174
|
+
} catch {}
|
|
175
|
+
if (!PaymentsEventTypes) try {
|
|
176
|
+
({PaymentsEventTypes} = __require("@credo-ts/payments/events/PaymentEvents"));
|
|
177
|
+
} catch {}
|
|
178
|
+
if (!PaymentsEventTypes) throw new Error("payments not available");
|
|
179
|
+
const adv = async (threadId, event, metadata) => {
|
|
180
|
+
const scoped = await resolveEventContext(metadata);
|
|
181
|
+
if (!scoped) return;
|
|
182
|
+
try {
|
|
183
|
+
await service.advance(scoped.context, {
|
|
184
|
+
instance_id: threadId,
|
|
185
|
+
event,
|
|
186
|
+
idempotency_key: `auto:payments:${event}:${threadId}`
|
|
187
|
+
});
|
|
188
|
+
} catch (e) {
|
|
189
|
+
logger.debug(`[Workflow] payments event advance error: ${e.message}`);
|
|
190
|
+
} finally {
|
|
191
|
+
await scoped.release();
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
const on = (evt, cb) => events.on?.(evt, cb);
|
|
195
|
+
if (PaymentsEventTypes.IntroResponded) on(PaymentsEventTypes.IntroResponded, async (e) => {
|
|
196
|
+
const th = e?.payload?.threadId;
|
|
197
|
+
if (th) await adv(th, "payments.methods_received", e?.metadata);
|
|
198
|
+
});
|
|
199
|
+
if (PaymentsEventTypes.HandshakeAccepted) on(PaymentsEventTypes.HandshakeAccepted, async (e) => {
|
|
200
|
+
const th = e?.payload?.threadId;
|
|
201
|
+
if (th) await adv(th, "payments.handshake_accepted", e?.metadata);
|
|
202
|
+
});
|
|
203
|
+
if (PaymentsEventTypes.ComplianceRequired) on(PaymentsEventTypes.ComplianceRequired, async (e) => {
|
|
204
|
+
const th = e?.payload?.threadId;
|
|
205
|
+
if (th) await adv(th, "payments.compliance_required", e?.metadata);
|
|
206
|
+
});
|
|
207
|
+
if (PaymentsEventTypes.ComplianceSatisfied) on(PaymentsEventTypes.ComplianceSatisfied, async (e) => {
|
|
208
|
+
const th = e?.payload?.threadId;
|
|
209
|
+
if (th) await adv(th, "payments.compliance_satisfied", e?.metadata);
|
|
210
|
+
});
|
|
211
|
+
if (PaymentsEventTypes.ComplianceRejected) on(PaymentsEventTypes.ComplianceRejected, async (e) => {
|
|
212
|
+
const th = e?.payload?.threadId;
|
|
213
|
+
if (th) await adv(th, "payments.compliance_rejected", e?.metadata);
|
|
214
|
+
});
|
|
215
|
+
if (PaymentsEventTypes.SettlementUpdated) on(PaymentsEventTypes.SettlementUpdated, async (e) => {
|
|
216
|
+
const p = e?.payload;
|
|
217
|
+
const th = p?.threadId;
|
|
218
|
+
const status = p?.status;
|
|
219
|
+
if (!status) return;
|
|
220
|
+
const ev = {
|
|
221
|
+
received: "payments.receipt_received",
|
|
222
|
+
pending: "payments.settlement_pending",
|
|
223
|
+
settled: "payments.settled",
|
|
224
|
+
failed: "payments.failed"
|
|
225
|
+
}[status];
|
|
226
|
+
if (ev && th) await adv(th, ev, e?.metadata);
|
|
227
|
+
});
|
|
228
|
+
logger.info("WorkflowModule - registered Payments event listeners");
|
|
229
|
+
} catch {}
|
|
230
|
+
try {
|
|
231
|
+
let createPoeV1Actions;
|
|
232
|
+
try {
|
|
233
|
+
({createPoeV1Actions} = __require("@ajna-inc/poe"));
|
|
234
|
+
} catch {}
|
|
235
|
+
if (!createPoeV1Actions) try {
|
|
236
|
+
({createPoeV1Actions} = __require("@ajna-inc/poe/workflow/PoeV1Actions"));
|
|
237
|
+
} catch {}
|
|
238
|
+
if (createPoeV1Actions) {
|
|
239
|
+
const actions = createPoeV1Actions();
|
|
240
|
+
try {
|
|
241
|
+
const svcAny = service;
|
|
242
|
+
if (typeof svcAny.registerActions === "function") svcAny.registerActions(actions);
|
|
243
|
+
else if (svcAny.actions && typeof svcAny.actions.register === "function") for (const a of actions) svcAny.actions.register(a);
|
|
244
|
+
else throw new Error("no action registry available");
|
|
245
|
+
logger.info("WorkflowModule - registered PoeV1 actions");
|
|
246
|
+
} catch (_e) {}
|
|
247
|
+
}
|
|
248
|
+
} catch {}
|
|
249
|
+
if (this.config.enablePoeEventMapping) try {
|
|
250
|
+
let PoeEventTypes;
|
|
251
|
+
let PoeState;
|
|
252
|
+
try {
|
|
253
|
+
({PoeEventTypes, PoeState} = __require("@ajna-inc/poe"));
|
|
254
|
+
} catch {}
|
|
255
|
+
if (!PoeEventTypes || !PoeState) throw new Error("poe not available");
|
|
256
|
+
const on = (evt, cb) => events.on?.(evt, cb);
|
|
257
|
+
if (PoeEventTypes.PoeStateChanged) on(PoeEventTypes.PoeStateChanged, async (e) => {
|
|
258
|
+
const poeRecord = e?.payload?.poeRecord;
|
|
259
|
+
const connectionId = poeRecord?.connectionId;
|
|
260
|
+
if (!connectionId) return;
|
|
261
|
+
const scoped = await resolveEventContext(e?.metadata);
|
|
262
|
+
if (!scoped) return;
|
|
263
|
+
try {
|
|
264
|
+
let workflowEvent;
|
|
265
|
+
switch (poeRecord.state) {
|
|
266
|
+
case PoeState?.RequestReceived:
|
|
267
|
+
workflowEvent = "poe.request_received";
|
|
268
|
+
break;
|
|
269
|
+
case PoeState?.SubmitReceived:
|
|
270
|
+
workflowEvent = poeRecord.verificationResult?.verified ? "poe.verified" : "poe.verification_failed";
|
|
271
|
+
break;
|
|
272
|
+
case PoeState?.ProposalReceived:
|
|
273
|
+
workflowEvent = "poe.proposal_received";
|
|
274
|
+
break;
|
|
275
|
+
case PoeState?.Accepted:
|
|
276
|
+
workflowEvent = "poe.accepted";
|
|
277
|
+
break;
|
|
278
|
+
case PoeState?.Declined:
|
|
279
|
+
workflowEvent = "poe.declined";
|
|
280
|
+
break;
|
|
281
|
+
case PoeState?.Complete:
|
|
282
|
+
workflowEvent = "poe.completed";
|
|
283
|
+
break;
|
|
284
|
+
case PoeState?.Problem:
|
|
285
|
+
workflowEvent = "poe.problem";
|
|
286
|
+
break;
|
|
287
|
+
case PoeState?.ChallengeReceived:
|
|
288
|
+
workflowEvent = "poe.challenge_received";
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
if (workflowEvent) await service.autoAdvanceByConnection(scoped.context, connectionId, workflowEvent);
|
|
292
|
+
} catch (err) {
|
|
293
|
+
logger.debug(`[Workflow] POE event advance error: ${err.message}`);
|
|
294
|
+
} finally {
|
|
295
|
+
await scoped.release();
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
logger.info("WorkflowModule - registered POE event listeners");
|
|
299
|
+
} catch {}
|
|
300
|
+
logger.info("WorkflowModule - initializing persistent command queue");
|
|
301
|
+
const queue = new PersistentCommandQueue(dm.resolve(WorkflowCommandRepository), contextProvider, agentContext, {
|
|
302
|
+
pollIntervalMs: this.config.asyncQueue?.pollIntervalMs,
|
|
303
|
+
concurrency: this.config.asyncQueue?.concurrency,
|
|
304
|
+
processingTimeoutMs: this.config.asyncQueue?.processingTimeoutMs,
|
|
305
|
+
staleCheckIntervalMs: this.config.asyncQueue?.staleCheckIntervalMs,
|
|
306
|
+
cleanupIntervalMs: this.config.asyncQueue?.cleanupIntervalMs,
|
|
307
|
+
commandRetentionMs: this.config.asyncQueue?.commandRetentionMs,
|
|
308
|
+
failedRetentionMs: this.config.asyncQueue?.failedRetentionMs,
|
|
309
|
+
maxAttempts: this.config.asyncQueue?.maxAttempts
|
|
310
|
+
});
|
|
311
|
+
try {
|
|
312
|
+
const g = globalThis;
|
|
313
|
+
g.__WF_QUEUES = g.__WF_QUEUES || /* @__PURE__ */ new Set();
|
|
314
|
+
g.__WF_QUEUES.add(queue);
|
|
315
|
+
} catch {}
|
|
316
|
+
try {
|
|
317
|
+
dm.registerInstance?.(CommandQueueService, queue);
|
|
318
|
+
} catch {}
|
|
319
|
+
await queue.startWorker(async (job) => {
|
|
320
|
+
const metadata = { contextCorrelationId: job.contextCorrelationId };
|
|
321
|
+
const scoped = await (async () => {
|
|
322
|
+
const correlationId = metadata.contextCorrelationId;
|
|
323
|
+
if (!correlationId || correlationId === rootContextId) return {
|
|
324
|
+
context: agentContext,
|
|
325
|
+
release: async () => {}
|
|
326
|
+
};
|
|
327
|
+
try {
|
|
328
|
+
const scopedContext = await contextProvider.getAgentContextForContextCorrelationId(correlationId);
|
|
329
|
+
return {
|
|
330
|
+
context: scopedContext,
|
|
331
|
+
release: async () => {
|
|
332
|
+
try {
|
|
333
|
+
await contextProvider.endSessionForAgentContext(scopedContext);
|
|
334
|
+
} catch (error) {
|
|
335
|
+
logger.debug("WorkflowModule - failed to end tenant session after queue job", {
|
|
336
|
+
contextCorrelationId: correlationId,
|
|
337
|
+
error: error.message
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
} catch (error) {
|
|
343
|
+
logger.debug("WorkflowModule - unable to resolve context for queue job", { error: error.message });
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
})();
|
|
347
|
+
if (!scoped) return;
|
|
348
|
+
try {
|
|
349
|
+
const ctx = scoped.context;
|
|
350
|
+
try {
|
|
351
|
+
logger.info("[WorkflowWorker] handling job", {
|
|
352
|
+
cmd: job.cmd,
|
|
353
|
+
thid: job.thid,
|
|
354
|
+
connectionId: job.connectionId,
|
|
355
|
+
contextCorrelationId: job.contextCorrelationId
|
|
356
|
+
});
|
|
357
|
+
} catch {}
|
|
358
|
+
switch (job.cmd) {
|
|
359
|
+
case "start":
|
|
360
|
+
try {
|
|
361
|
+
const templateRepo = dm.resolve(WorkflowTemplateRepository);
|
|
362
|
+
const p = job.payload || {};
|
|
363
|
+
if (!(p.template_id ? await templateRepo.findByTemplateIdAndVersion(ctx, p.template_id, p.template_version) : null)) {
|
|
364
|
+
if ((p.allow_discover ?? true) && this.config.enableAutoDiscoverOnStart && job.connectionId) try {
|
|
365
|
+
const sender = dm.resolve(DidCommMessageSender);
|
|
366
|
+
const connection = await dm.resolve(DidCommConnectionService).getById(ctx, job.connectionId);
|
|
367
|
+
const { FetchTemplateMessage } = (init_FetchTemplateMessage(), __toCommonJS(FetchTemplateMessage_exports));
|
|
368
|
+
const fetch = new FetchTemplateMessage({
|
|
369
|
+
thid: job.thid,
|
|
370
|
+
body: {
|
|
371
|
+
template_id: p.template_id,
|
|
372
|
+
template_version: p.template_version,
|
|
373
|
+
prefer_hash: p.template_hash
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
try {
|
|
377
|
+
fetch.setReturnRouting(ReturnRouteTypes.thread, job.thid);
|
|
378
|
+
} catch {}
|
|
379
|
+
const outbound = new DidCommOutboundMessageContext(fetch, {
|
|
380
|
+
agentContext: ctx,
|
|
381
|
+
connection
|
|
382
|
+
});
|
|
383
|
+
await sender.sendMessage(outbound);
|
|
384
|
+
try {
|
|
385
|
+
logger.info("[WorkflowWorker] fetch-template sent from worker", {
|
|
386
|
+
thid: job.thid,
|
|
387
|
+
template_id: p.template_id,
|
|
388
|
+
template_version: p.template_version
|
|
389
|
+
});
|
|
390
|
+
} catch {}
|
|
391
|
+
} catch (e) {
|
|
392
|
+
logger.debug("WorkflowModule - fetch-template send failed in worker", { error: e.message });
|
|
393
|
+
}
|
|
394
|
+
const err = /* @__PURE__ */ new Error("template not found for start");
|
|
395
|
+
err.code = "invalid_template";
|
|
396
|
+
throw err;
|
|
397
|
+
}
|
|
398
|
+
} catch (precheckErr) {
|
|
399
|
+
throw precheckErr;
|
|
400
|
+
}
|
|
401
|
+
await service.start(ctx, job.payload);
|
|
402
|
+
try {
|
|
403
|
+
logger.info("[WorkflowWorker] start completed", { thid: job.thid });
|
|
404
|
+
} catch {}
|
|
405
|
+
break;
|
|
406
|
+
case "advance":
|
|
407
|
+
await service.advance(ctx, job.payload);
|
|
408
|
+
try {
|
|
409
|
+
logger.info("[WorkflowWorker] advance completed", { thid: job.thid });
|
|
410
|
+
} catch {}
|
|
411
|
+
break;
|
|
412
|
+
case "pause":
|
|
413
|
+
await service.pause(ctx, job.payload);
|
|
414
|
+
try {
|
|
415
|
+
logger.info("[WorkflowWorker] pause completed", { thid: job.thid });
|
|
416
|
+
} catch {}
|
|
417
|
+
break;
|
|
418
|
+
case "resume":
|
|
419
|
+
await service.resume(ctx, job.payload);
|
|
420
|
+
try {
|
|
421
|
+
logger.info("[WorkflowWorker] resume completed", { thid: job.thid });
|
|
422
|
+
} catch {}
|
|
423
|
+
break;
|
|
424
|
+
case "cancel":
|
|
425
|
+
await service.cancel(ctx, job.payload);
|
|
426
|
+
try {
|
|
427
|
+
logger.info("[WorkflowWorker] cancel completed", { thid: job.thid });
|
|
428
|
+
} catch {}
|
|
429
|
+
break;
|
|
430
|
+
case "complete":
|
|
431
|
+
await service.complete(ctx, job.payload);
|
|
432
|
+
try {
|
|
433
|
+
logger.info("[WorkflowWorker] complete completed", { thid: job.thid });
|
|
434
|
+
} catch {}
|
|
435
|
+
break;
|
|
436
|
+
}
|
|
437
|
+
} finally {
|
|
438
|
+
await scoped.release();
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
//#endregion
|
|
445
|
+
export { WORKFLOW_PROTOCOL_URI, WORKFLOW_ROLES, WorkflowModule };
|
|
446
|
+
//# sourceMappingURL=WorkflowModule.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowModule.mjs","names":["createPaymentsV1Actions:\n | undefined\n | (() => Array<{ typeUri: string; execute: (...args: unknown[]) => Promise<unknown> }>)","PaymentsEventTypes: Partial<Record<PaymentEvtKeys, string>> | undefined","createPoeV1Actions:\n | undefined\n | (() => Array<{ typeUri: string; execute: (...args: unknown[]) => Promise<unknown> }>)","PoeEventTypes: Partial<Record<PoeEvtKeys, string>> | undefined","PoeState: { [key: string]: string } | undefined","workflowEvent: string | undefined","g: any","metadata: EventMetadata"],"sources":["../src/WorkflowModule.ts"],"sourcesContent":["import type { WorkflowModuleConfigOptions } from './WorkflowModuleConfig'\nimport type { AgentContext, DependencyManager, Module, AgentContextProvider, EventMetadata } from '@credo-ts/core'\nimport type { DidCommCredentialStateChangedEvent, DidCommProofStateChangedEvent } from '@credo-ts/didcomm'\n\nimport { AgentConfig, EventEmitter, InjectionSymbols } from '@credo-ts/core'\n\nimport { DidCommCredentialEventTypes, DidCommProofEventTypes, DidCommProtocol } from '@credo-ts/didcomm'\n\nimport { DidCommCredentialState, DidCommProofState } from '@credo-ts/didcomm'\n\nimport { DidCommFeatureRegistry, DidCommMessageHandlerRegistry, DidCommMessageSender, DidCommOutboundMessageContext, ReturnRouteTypes } from '@credo-ts/didcomm'\n\nimport { WorkflowModuleConfig } from './WorkflowModuleConfig'\nimport { CommandQueueService } from './queue/CommandQueue'\nimport { PersistentCommandQueue } from './queue/PersistentCommandQueue'\nimport { WorkflowApi } from './api/WorkflowApi'\nimport { WorkflowCommandRepository } from './repository/WorkflowCommandRepository'\nimport { AdvanceHandler } from './protocol/handlers/AdvanceHandler'\nimport { CancelHandler } from './protocol/handlers/CancelHandler'\nimport { CompleteHandler } from './protocol/handlers/CompleteHandler'\nimport { DiscoverHandler } from './protocol/handlers/DiscoverHandler'\nimport { FetchTemplateHandler } from './protocol/handlers/FetchTemplateHandler'\nimport { TemplateHandler } from './protocol/handlers/TemplateHandler'\nimport { PauseHandler } from './protocol/handlers/PauseHandler'\nimport { ProblemReportHandler } from './protocol/handlers/ProblemReportHandler'\nimport { PublishTemplateHandler } from './protocol/handlers/PublishTemplateHandler'\nimport { ResumeHandler } from './protocol/handlers/ResumeHandler'\nimport { StartHandler } from './protocol/handlers/StartHandler'\nimport { StatusHandler } from './protocol/handlers/StatusHandler'\nimport { WorkflowInstanceRepository } from './repository/WorkflowInstanceRepository'\nimport { WorkflowTemplateRepository } from './repository/WorkflowTemplateRepository'\nimport { WorkflowService } from './services/WorkflowService'\nimport { DidCommConnectionService } from '@credo-ts/didcomm'\n\nexport const WORKFLOW_PROTOCOL_URI = 'https://didcomm.org/workflow/1.0'\nexport const WORKFLOW_ROLES = ['processor', 'coordinator'] as const\n\nexport class WorkflowModule implements Module {\n public readonly api = WorkflowApi\n public readonly config: WorkflowModuleConfig\n\n public constructor(options?: WorkflowModuleConfigOptions) {\n this.config = new WorkflowModuleConfig(options)\n }\n\n public register(dependencyManager: DependencyManager) {\n dependencyManager.resolve(AgentConfig).logger.info('Registering WorkflowModule')\n dependencyManager.registerInstance(WorkflowModuleConfig, this.config)\n\n dependencyManager.registerSingleton(WorkflowTemplateRepository)\n dependencyManager.registerSingleton(WorkflowInstanceRepository)\n dependencyManager.registerSingleton(WorkflowCommandRepository)\n dependencyManager.registerSingleton(WorkflowService)\n // IMPORTANT: Do not register WorkflowApi as a singleton here.\n // The DependencyManager will register `module.api` (WorkflowApi) as context-scoped\n // via `registerModules`, ensuring a fresh API instance per AgentContext (tenant-safe).\n\n dependencyManager.registerSingleton(PublishTemplateHandler)\n dependencyManager.registerSingleton(StartHandler)\n dependencyManager.registerSingleton(AdvanceHandler)\n dependencyManager.registerSingleton(StatusHandler)\n dependencyManager.registerSingleton(ProblemReportHandler)\n dependencyManager.registerSingleton(PauseHandler)\n dependencyManager.registerSingleton(ResumeHandler)\n dependencyManager.registerSingleton(CancelHandler)\n dependencyManager.registerSingleton(CompleteHandler)\n dependencyManager.registerSingleton(DiscoverHandler)\n dependencyManager.registerSingleton(FetchTemplateHandler)\n dependencyManager.registerSingleton(TemplateHandler)\n }\n\n public async initialize(agentContext: AgentContext): Promise<void> {\n const dm = agentContext.dependencyManager\n const logger = dm.resolve(AgentConfig).logger\n const features = dm.resolve(DidCommFeatureRegistry)\n const handlers = dm.resolve(DidCommMessageHandlerRegistry)\n logger.info('Initializing WorkflowModule - registering workflow/1.0 protocol')\n try {\n features.register(new DidCommProtocol({ id: WORKFLOW_PROTOCOL_URI, roles: [...WORKFLOW_ROLES] }))\n } catch (_e) {\n void 0\n }\n handlers.registerMessageHandler(dm.resolve(PublishTemplateHandler))\n handlers.registerMessageHandler(dm.resolve(StartHandler))\n handlers.registerMessageHandler(dm.resolve(AdvanceHandler))\n handlers.registerMessageHandler(dm.resolve(StatusHandler))\n handlers.registerMessageHandler(dm.resolve(ProblemReportHandler))\n handlers.registerMessageHandler(dm.resolve(PauseHandler))\n handlers.registerMessageHandler(dm.resolve(ResumeHandler))\n handlers.registerMessageHandler(dm.resolve(CancelHandler))\n handlers.registerMessageHandler(dm.resolve(CompleteHandler))\n // discovery/fetch extension\n handlers.registerMessageHandler(dm.resolve(DiscoverHandler))\n handlers.registerMessageHandler(dm.resolve(FetchTemplateHandler))\n handlers.registerMessageHandler(dm.resolve(TemplateHandler))\n // Inbound mapping: credentials/proofs → workflow events\n const events = dm.resolve(EventEmitter)\n const service = dm.resolve(WorkflowService)\n const contextProvider = dm.resolve<AgentContextProvider>(InjectionSymbols.AgentContextProvider)\n const rootContextId = agentContext.contextCorrelationId\n\n const resolveEventContext = async (\n metadata: EventMetadata | undefined\n ): Promise<{ context: AgentContext; release: () => Promise<void> } | null> => {\n const correlationId = metadata?.contextCorrelationId\n if (!correlationId || correlationId === rootContextId) {\n return { context: agentContext, release: async () => {} }\n }\n\n try {\n const scopedContext = await contextProvider.getAgentContextForContextCorrelationId(correlationId)\n return {\n context: scopedContext,\n release: async () => {\n try {\n await contextProvider.endSessionForAgentContext(scopedContext)\n } catch (error) {\n logger.debug('WorkflowModule - failed to end tenant session after event', {\n contextCorrelationId: correlationId,\n error: (error as Error).message,\n })\n }\n },\n }\n } catch (error) {\n logger.debug('WorkflowModule - unable to resolve context for event', {\n contextCorrelationId: correlationId,\n error: (error as Error).message,\n })\n return null\n }\n }\n\n events.on<DidCommCredentialStateChangedEvent>(DidCommCredentialEventTypes.DidCommCredentialStateChanged, async (e) => {\n const rec = e.payload.credentialExchangeRecord\n const connId = rec.connectionId\n if (!connId) return\n const scoped = await resolveEventContext(e.metadata)\n if (!scoped) return\n try {\n if (rec.state === DidCommCredentialState.ProposalReceived) {\n await service.autoAdvanceByConnection(scoped.context, connId, 'proposal_received')\n } else if (rec.state === DidCommCredentialState.OfferReceived) {\n await service.autoAdvanceByConnection(scoped.context, connId, 'offer_received')\n } else if (rec.state === DidCommCredentialState.RequestReceived) {\n await service.autoAdvanceByConnection(scoped.context, connId, 'request_received')\n } else if (rec.state === DidCommCredentialState.Done) {\n await service.autoAdvanceByConnection(scoped.context, connId, 'issued_ack')\n }\n } finally {\n await scoped.release()\n }\n })\n events.on<DidCommProofStateChangedEvent>(DidCommProofEventTypes.ProofStateChanged, async (e) => {\n const rec = e.payload.proofRecord\n const connId = rec.connectionId\n if (!connId) return\n const scoped = await resolveEventContext(e.metadata)\n if (!scoped) return\n try {\n if (rec.state === DidCommProofState.PresentationReceived) {\n await service.autoAdvanceByConnection(scoped.context, connId, 'presentation_received')\n } else if (rec.state === DidCommProofState.Done) {\n await service.autoAdvanceByConnection(scoped.context, connId, 'verified_ack')\n }\n } finally {\n await scoped.release()\n }\n })\n\n // Optional: register payments v1 actions when payments module is available\n try {\n let createPaymentsV1Actions:\n | undefined\n | (() => Array<{ typeUri: string; execute: (...args: unknown[]) => Promise<unknown> }>)\n try {\n ;({ createPaymentsV1Actions } = require('@credo-ts/payments'))\n } catch {\n /* optional dependency */\n }\n if (!createPaymentsV1Actions) {\n try {\n ;({ createPaymentsV1Actions } = require('@credo-ts/payments/workflow/PaymentsV1Actions'))\n } catch {\n /* optional dependency */\n }\n }\n if (!createPaymentsV1Actions) {\n try {\n ;({ createPaymentsV1Actions } = require('@credo-ts/payments/workflow/PaymentsV1Actions'))\n } catch {\n /* optional dependency */\n }\n }\n // Try @ajna-inc/payments (static require for React Native compatibility)\n if (!createPaymentsV1Actions) {\n try {\n ;({ createPaymentsV1Actions } = require('@ajna-inc/payments'))\n } catch {\n /* optional dependency */\n }\n }\n if (!createPaymentsV1Actions) {\n try {\n ;({ createPaymentsV1Actions } = require('@ajna-inc/payments/workflow/PaymentsV1Actions'))\n } catch {\n /* optional dependency */\n }\n }\n if (createPaymentsV1Actions) {\n const actions = createPaymentsV1Actions()\n try {\n // Prefer explicit API if available\n const svcAny = service as unknown as {\n registerActions?: (actions: unknown[]) => void\n actions?: { register: (h: unknown) => void }\n }\n if (typeof svcAny.registerActions === 'function') {\n svcAny.registerActions(actions)\n } else if (svcAny.actions && typeof svcAny.actions.register === 'function') {\n for (const a of actions) svcAny.actions.register(a)\n } else {\n throw new Error('no action registry available')\n }\n logger.info('WorkflowModule - registered PaymentsV1 actions')\n } catch (_e) {\n // swallow\n }\n }\n } catch {\n /* optional dependency */\n }\n\n // Optional: map payments events → workflow events (guarded if payments not installed)\n if (this.config.enablePaymentsEventMapping)\n try {\n type PaymentEvtKeys =\n | 'IntroResponded'\n | 'HandshakeAccepted'\n | 'ComplianceRequired'\n | 'ComplianceSatisfied'\n | 'ComplianceRejected'\n | 'SettlementUpdated'\n let PaymentsEventTypes: Partial<Record<PaymentEvtKeys, string>> | undefined\n try {\n ;({ PaymentsEventTypes } = require('@credo-ts/payments'))\n } catch {\n /* optional dependency */\n }\n if (!PaymentsEventTypes) {\n try {\n ;({ PaymentsEventTypes } = require('@credo-ts/payments/events/PaymentEvents'))\n } catch {\n /* optional dependency */\n }\n }\n if (!PaymentsEventTypes) {\n try {\n ;({ PaymentsEventTypes } = require('@credo-ts/payments/events/PaymentEvents'))\n } catch {\n /* optional dependency */\n }\n }\n if (!PaymentsEventTypes) throw new Error('payments not available')\n\n const adv = async (threadId: string, event: string, metadata?: EventMetadata) => {\n const scoped = await resolveEventContext(metadata)\n if (!scoped) return\n try {\n await service.advance(scoped.context, {\n instance_id: threadId,\n event,\n idempotency_key: `auto:payments:${event}:${threadId}`,\n })\n } catch (e) {\n logger.debug(`[Workflow] payments event advance error: ${(e as Error).message}`)\n } finally {\n await scoped.release()\n }\n }\n type PaymentListener = (e: {\n payload?: { threadId?: string; status?: string }\n metadata?: EventMetadata\n }) => void\n const on = (evt: string, cb: PaymentListener) =>\n (events as unknown as { on?: (evt: string, cb: PaymentListener) => void }).on?.(evt, cb)\n if (PaymentsEventTypes.IntroResponded)\n on(PaymentsEventTypes.IntroResponded, async (e) => {\n const th = e?.payload?.threadId\n if (th) await adv(th, 'payments.methods_received', e?.metadata)\n })\n if (PaymentsEventTypes.HandshakeAccepted)\n on(PaymentsEventTypes.HandshakeAccepted, async (e) => {\n const th = e?.payload?.threadId\n if (th) await adv(th, 'payments.handshake_accepted', e?.metadata)\n })\n if (PaymentsEventTypes.ComplianceRequired)\n on(PaymentsEventTypes.ComplianceRequired, async (e) => {\n const th = e?.payload?.threadId\n if (th) await adv(th, 'payments.compliance_required', e?.metadata)\n })\n if (PaymentsEventTypes.ComplianceSatisfied)\n on(PaymentsEventTypes.ComplianceSatisfied, async (e) => {\n const th = e?.payload?.threadId\n if (th) await adv(th, 'payments.compliance_satisfied', e?.metadata)\n })\n if (PaymentsEventTypes.ComplianceRejected)\n on(PaymentsEventTypes.ComplianceRejected, async (e) => {\n const th = e?.payload?.threadId\n if (th) await adv(th, 'payments.compliance_rejected', e?.metadata)\n })\n if (PaymentsEventTypes.SettlementUpdated)\n on(PaymentsEventTypes.SettlementUpdated, async (e) => {\n const p = e?.payload\n const th = p?.threadId\n const status = p?.status\n if (!status) return\n const map: Record<string, string> = {\n received: 'payments.receipt_received',\n pending: 'payments.settlement_pending',\n settled: 'payments.settled',\n failed: 'payments.failed',\n }\n const ev = map[status]\n if (ev && th) await adv(th, ev, e?.metadata)\n })\n logger.info('WorkflowModule - registered Payments event listeners')\n } catch {\n /* optional dependency */\n }\n\n // Optional: register POE v1 actions when POE module is available\n try {\n let createPoeV1Actions:\n | undefined\n | (() => Array<{ typeUri: string; execute: (...args: unknown[]) => Promise<unknown> }>)\n try {\n ;({ createPoeV1Actions } = require('@ajna-inc/poe'))\n } catch {\n /* optional dependency */\n }\n if (!createPoeV1Actions) {\n try {\n ;({ createPoeV1Actions } = require('@ajna-inc/poe/workflow/PoeV1Actions'))\n } catch {\n /* optional dependency */\n }\n }\n if (createPoeV1Actions) {\n const actions = createPoeV1Actions()\n try {\n const svcAny = service as unknown as {\n registerActions?: (actions: unknown[]) => void\n actions?: { register: (h: unknown) => void }\n }\n if (typeof svcAny.registerActions === 'function') {\n svcAny.registerActions(actions)\n } else if (svcAny.actions && typeof svcAny.actions.register === 'function') {\n for (const a of actions) svcAny.actions.register(a)\n } else {\n throw new Error('no action registry available')\n }\n logger.info('WorkflowModule - registered PoeV1 actions')\n } catch (_e) {\n // swallow\n }\n }\n } catch {\n /* optional dependency */\n }\n\n // Optional: map POE events → workflow events (guarded if POE not installed)\n if (this.config.enablePoeEventMapping)\n try {\n type PoeEvtKeys = 'PoeStateChanged'\n let PoeEventTypes: Partial<Record<PoeEvtKeys, string>> | undefined\n let PoeState: { [key: string]: string } | undefined\n try {\n ;({ PoeEventTypes, PoeState } = require('@ajna-inc/poe'))\n } catch {\n /* optional dependency */\n }\n if (!PoeEventTypes || !PoeState) throw new Error('poe not available')\n\n type PoeListener = (e: {\n payload?: {\n poeRecord?: {\n id?: string\n connectionId?: string\n sessionId?: string\n state?: string\n programId?: string\n verificationResult?: { verified?: boolean; errors?: string[] }\n finalProof?: { result?: unknown }\n }\n previousState?: string\n }\n metadata?: EventMetadata\n }) => void\n const on = (evt: string, cb: PoeListener) =>\n (events as unknown as { on?: (evt: string, cb: PoeListener) => void }).on?.(evt, cb)\n\n if (PoeEventTypes.PoeStateChanged)\n on(PoeEventTypes.PoeStateChanged, async (e) => {\n const poeRecord = e?.payload?.poeRecord\n const connectionId = poeRecord?.connectionId\n if (!connectionId) return\n\n const scoped = await resolveEventContext(e?.metadata)\n if (!scoped) return\n try {\n let workflowEvent: string | undefined\n\n switch (poeRecord.state) {\n case PoeState?.RequestReceived:\n workflowEvent = 'poe.request_received'\n break\n case PoeState?.SubmitReceived:\n workflowEvent = poeRecord.verificationResult?.verified\n ? 'poe.verified'\n : 'poe.verification_failed'\n break\n case PoeState?.ProposalReceived:\n workflowEvent = 'poe.proposal_received'\n break\n case PoeState?.Accepted:\n workflowEvent = 'poe.accepted'\n break\n case PoeState?.Declined:\n workflowEvent = 'poe.declined'\n break\n case PoeState?.Complete:\n workflowEvent = 'poe.completed'\n break\n case PoeState?.Problem:\n workflowEvent = 'poe.problem'\n break\n case PoeState?.ChallengeReceived:\n workflowEvent = 'poe.challenge_received'\n break\n }\n\n if (workflowEvent) {\n await service.autoAdvanceByConnection(\n scoped.context,\n connectionId,\n workflowEvent\n )\n }\n } catch (err) {\n logger.debug(`[Workflow] POE event advance error: ${(err as Error).message}`)\n } finally {\n await scoped.release()\n }\n })\n logger.info('WorkflowModule - registered POE event listeners')\n } catch {\n /* optional dependency */\n }\n\n // Initialize persistent command queue (always enabled, no Redis needed)\n logger.info('WorkflowModule - initializing persistent command queue')\n const commandRepo = dm.resolve(WorkflowCommandRepository)\n const queue = new PersistentCommandQueue(commandRepo, contextProvider, agentContext, {\n pollIntervalMs: this.config.asyncQueue?.pollIntervalMs,\n concurrency: this.config.asyncQueue?.concurrency,\n processingTimeoutMs: this.config.asyncQueue?.processingTimeoutMs,\n staleCheckIntervalMs: this.config.asyncQueue?.staleCheckIntervalMs,\n cleanupIntervalMs: this.config.asyncQueue?.cleanupIntervalMs,\n commandRetentionMs: this.config.asyncQueue?.commandRetentionMs,\n failedRetentionMs: this.config.asyncQueue?.failedRetentionMs,\n maxAttempts: this.config.asyncQueue?.maxAttempts,\n })\n\n // Test-time helper: register queue instance globally for best-effort shutdown in afterAll\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const g: any = globalThis as unknown\n g.__WF_QUEUES = g.__WF_QUEUES || new Set()\n g.__WF_QUEUES.add(queue)\n } catch {\n /* noop */\n }\n\n // In tests or minimal environments, dependencyManager may not expose registerInstance\n try {\n const anyDm = dm as unknown as { registerInstance?: (ctor: unknown, instance: unknown) => void }\n anyDm.registerInstance?.(CommandQueueService, queue)\n } catch {\n // no-op if DI container doesn't support instance registration in this context\n }\n\n // Start worker: processes commands and sends follow-up status messages\n await queue.startWorker(async (job) => {\n // Context resolution handled inside PersistentCommandQueue\n // Worker receives job with already-resolved context\n\n // This worker callback is called from PersistentCommandQueue.processCommand\n // which already resolves the context, so we need to get it here\n const metadata: EventMetadata = { contextCorrelationId: job.contextCorrelationId }\n const scoped = await (async () => {\n const correlationId = metadata.contextCorrelationId\n if (!correlationId || correlationId === rootContextId) {\n return { context: agentContext, release: async () => {} }\n }\n try {\n const scopedContext = await contextProvider.getAgentContextForContextCorrelationId(correlationId)\n return {\n context: scopedContext,\n release: async () => {\n try {\n await contextProvider.endSessionForAgentContext(scopedContext)\n } catch (error) {\n logger.debug('WorkflowModule - failed to end tenant session after queue job', {\n contextCorrelationId: correlationId,\n error: (error as Error).message,\n })\n }\n },\n }\n } catch (error) {\n logger.debug('WorkflowModule - unable to resolve context for queue job', {\n error: (error as Error).message,\n })\n return null\n }\n })()\n if (!scoped) return\n try {\n const ctx = scoped.context\n try {\n logger.info('[WorkflowWorker] handling job', {\n cmd: (job as { cmd?: string }).cmd,\n thid: (job as { thid?: string }).thid,\n connectionId: (job as { connectionId?: string }).connectionId,\n contextCorrelationId: (job as { contextCorrelationId?: string }).contextCorrelationId,\n })\n } catch {}\n switch (job.cmd) {\n case 'start': {\n // Ensure template exists before starting. If missing, attempt auto-discover and defer.\n try {\n const templateRepo = dm.resolve(WorkflowTemplateRepository)\n const p = (job.payload || {}) as unknown as {\n template_id?: string\n template_version?: string\n template_hash?: string\n allow_discover?: boolean\n }\n const templateRec = p.template_id\n ? await templateRepo.findByTemplateIdAndVersion(ctx, p.template_id, p.template_version)\n : null\n if (!templateRec) {\n const allowDiscover = p.allow_discover ?? true\n if (allowDiscover && this.config.enableAutoDiscoverOnStart && job.connectionId) {\n try {\n const sender = dm.resolve(DidCommMessageSender)\n const connectionSvc = dm.resolve(DidCommConnectionService)\n const connection = await connectionSvc.getById(ctx, job.connectionId)\n const { FetchTemplateMessage } = require('./protocol/messages/FetchTemplateMessage')\n const fetch = new FetchTemplateMessage({\n thid: job.thid,\n body: {\n template_id: p.template_id,\n template_version: p.template_version,\n prefer_hash: p.template_hash,\n },\n })\n try {\n fetch.setReturnRouting(ReturnRouteTypes.thread, job.thid)\n } catch {}\n const outbound = new DidCommOutboundMessageContext(fetch, { agentContext: ctx, connection })\n await sender.sendMessage(outbound)\n try {\n logger.info('[WorkflowWorker] fetch-template sent from worker', {\n thid: job.thid,\n template_id: p.template_id,\n template_version: p.template_version,\n })\n } catch {}\n } catch (e) {\n logger.debug('WorkflowModule - fetch-template send failed in worker', {\n error: (e as Error).message,\n })\n }\n }\n // Defer start by signaling invalid_template so queue will retry later\n const err = new Error('template not found for start') as Error & { code?: string }\n err.code = 'invalid_template'\n throw err\n }\n } catch (precheckErr) {\n // Rethrow to queue-level handler for unified deferral behavior\n throw precheckErr\n }\n await service.start(ctx, job.payload as never)\n try { logger.info('[WorkflowWorker] start completed', { thid: job.thid }) } catch {}\n break\n }\n case 'advance':\n await service.advance(ctx, job.payload as never)\n try { logger.info('[WorkflowWorker] advance completed', { thid: job.thid }) } catch {}\n break\n case 'pause':\n await service.pause(ctx, job.payload as never)\n try { logger.info('[WorkflowWorker] pause completed', { thid: job.thid }) } catch {}\n break\n case 'resume':\n await service.resume(ctx, job.payload as never)\n try { logger.info('[WorkflowWorker] resume completed', { thid: job.thid }) } catch {}\n break\n case 'cancel':\n await service.cancel(ctx, job.payload as never)\n try { logger.info('[WorkflowWorker] cancel completed', { thid: job.thid }) } catch {}\n break\n case 'complete':\n await service.complete(ctx, job.payload as never)\n try { logger.info('[WorkflowWorker] complete completed', { thid: job.thid }) } catch {}\n break\n }\n\n // Note: Per Workflow 1.0 spec §11.6 and §3.4, status is provided on-demand (pull-based).\n // The spec defines status as a request/response pattern where Coordinators explicitly\n // request status via StatusRequestMessage, and Processors respond with StatusMessage.\n //\n // Unsolicited push notifications are not part of the base protocol and cause issues:\n // - Tenant context mismatches in multi-tenant deployments\n // - Receivers interpret unsolicited StatusMessage as a request (same @type)\n // - HTTP transport timeouts (fire-and-forget over request/response transport)\n //\n // For real-time UI updates, use the existing WebSocket event system which emits\n // WorkflowInstanceStateChanged events to connected clients.\n } finally {\n await scoped.release()\n }\n })\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/WorkflowModuleConfig.d.ts
|
|
2
|
+
type GuardEngine = 'jmespath' | 'cel' | 'js';
|
|
3
|
+
interface WorkflowModuleConfigOptions {
|
|
4
|
+
guardEngine?: GuardEngine;
|
|
5
|
+
autoReturnExistingOnSingleton?: boolean;
|
|
6
|
+
actionTimeoutMs?: number;
|
|
7
|
+
enableProblemReport?: boolean;
|
|
8
|
+
enablePaymentsEventMapping?: boolean;
|
|
9
|
+
enablePoeEventMapping?: boolean;
|
|
10
|
+
enableAutoDiscoverOnStart?: boolean;
|
|
11
|
+
discoveryTimeoutMs?: number;
|
|
12
|
+
idempotencyHistoryLimit?: number;
|
|
13
|
+
asyncQueue?: {
|
|
14
|
+
pollIntervalMs?: number;
|
|
15
|
+
concurrency?: number;
|
|
16
|
+
processingTimeoutMs?: number;
|
|
17
|
+
staleCheckIntervalMs?: number;
|
|
18
|
+
cleanupIntervalMs?: number;
|
|
19
|
+
commandRetentionMs?: number;
|
|
20
|
+
failedRetentionMs?: number;
|
|
21
|
+
maxAttempts?: number;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
declare class WorkflowModuleConfig {
|
|
25
|
+
readonly guardEngine: GuardEngine;
|
|
26
|
+
readonly autoReturnExistingOnSingleton: boolean;
|
|
27
|
+
readonly actionTimeoutMs: number;
|
|
28
|
+
readonly enableProblemReport: boolean;
|
|
29
|
+
readonly enablePaymentsEventMapping: boolean;
|
|
30
|
+
readonly enablePoeEventMapping: boolean;
|
|
31
|
+
readonly enableAutoDiscoverOnStart: boolean;
|
|
32
|
+
readonly discoveryTimeoutMs: number;
|
|
33
|
+
readonly idempotencyHistoryLimit: number;
|
|
34
|
+
readonly asyncQueue?: NonNullable<WorkflowModuleConfigOptions['asyncQueue']>;
|
|
35
|
+
constructor(options?: WorkflowModuleConfigOptions);
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { GuardEngine, WorkflowModuleConfig, WorkflowModuleConfigOptions };
|
|
39
|
+
//# sourceMappingURL=WorkflowModuleConfig.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowModuleConfig.d.mts","names":[],"sources":["../src/WorkflowModuleConfig.ts"],"sourcesContent":[],"mappings":";KAAY,WAAA;AAAA,UAEK,2BAAA,CAFM;EAEN,WAAA,CAAA,EACD,WADC;EAuBJ,6BAAoB,CAAA,EAAA,OAAA;EACF,eAAA,CAAA,EAAA,MAAA;EASY,mBAAA,CAAA,EAAA,OAAA;EAAZ,0BAAA,CAAA,EAAA,OAAA;EAEA,qBAAA,CAAA,EAAA,OAAA;EAA2B,yBAAA,CAAA,EAAA,OAAA;;;;;;;;;;;;;;cAZ7C,oBAAA;wBACkB;;;;;;;;;wBASA,YAAY;wBAEZ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/WorkflowModuleConfig.ts
|
|
2
|
+
var WorkflowModuleConfig = class {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.guardEngine = options?.guardEngine ?? "jmespath";
|
|
5
|
+
this.autoReturnExistingOnSingleton = options?.autoReturnExistingOnSingleton ?? true;
|
|
6
|
+
this.actionTimeoutMs = options?.actionTimeoutMs ?? 15e3;
|
|
7
|
+
this.enableProblemReport = options?.enableProblemReport ?? true;
|
|
8
|
+
this.enablePaymentsEventMapping = options?.enablePaymentsEventMapping ?? true;
|
|
9
|
+
this.enablePoeEventMapping = options?.enablePoeEventMapping ?? true;
|
|
10
|
+
this.enableAutoDiscoverOnStart = options?.enableAutoDiscoverOnStart ?? true;
|
|
11
|
+
this.discoveryTimeoutMs = options?.discoveryTimeoutMs ?? 5e3;
|
|
12
|
+
this.idempotencyHistoryLimit = options?.idempotencyHistoryLimit ?? 100;
|
|
13
|
+
this.asyncQueue = options?.asyncQueue;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { WorkflowModuleConfig };
|
|
19
|
+
//# sourceMappingURL=WorkflowModuleConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowModuleConfig.mjs","names":[],"sources":["../src/WorkflowModuleConfig.ts"],"sourcesContent":["export type GuardEngine = 'jmespath' | 'cel' | 'js'\n\nexport interface WorkflowModuleConfigOptions {\n guardEngine?: GuardEngine\n autoReturnExistingOnSingleton?: boolean\n actionTimeoutMs?: number\n enableProblemReport?: boolean\n enablePaymentsEventMapping?: boolean\n enablePoeEventMapping?: boolean\n enableAutoDiscoverOnStart?: boolean\n discoveryTimeoutMs?: number\n idempotencyHistoryLimit?: number\n // Disable async queue for mobile/React Native environments\n asyncQueue?: {\n pollIntervalMs?: number\n concurrency?: number\n processingTimeoutMs?: number\n staleCheckIntervalMs?: number\n cleanupIntervalMs?: number\n commandRetentionMs?: number\n failedRetentionMs?: number\n maxAttempts?: number\n }\n}\n\nexport class WorkflowModuleConfig {\n public readonly guardEngine: GuardEngine\n public readonly autoReturnExistingOnSingleton: boolean\n public readonly actionTimeoutMs: number\n public readonly enableProblemReport: boolean\n public readonly enablePaymentsEventMapping: boolean\n public readonly enablePoeEventMapping: boolean\n public readonly enableAutoDiscoverOnStart: boolean\n public readonly discoveryTimeoutMs: number\n public readonly idempotencyHistoryLimit: number\n public readonly asyncQueue?: NonNullable<WorkflowModuleConfigOptions['asyncQueue']>\n\n public constructor(options?: WorkflowModuleConfigOptions) {\n this.guardEngine = options?.guardEngine ?? 'jmespath'\n this.autoReturnExistingOnSingleton = options?.autoReturnExistingOnSingleton ?? true\n this.actionTimeoutMs = options?.actionTimeoutMs ?? 15000\n this.enableProblemReport = options?.enableProblemReport ?? true\n this.enablePaymentsEventMapping = options?.enablePaymentsEventMapping ?? true\n this.enablePoeEventMapping = options?.enablePoeEventMapping ?? true\n this.enableAutoDiscoverOnStart = options?.enableAutoDiscoverOnStart ?? true\n this.discoveryTimeoutMs = options?.discoveryTimeoutMs ?? 5000\n this.idempotencyHistoryLimit = options?.idempotencyHistoryLimit ?? 100\n this.asyncQueue = options?.asyncQueue\n }\n}\n"],"mappings":";AAyBA,IAAa,uBAAb,MAAkC;CAYhC,AAAO,YAAY,SAAuC;AACxD,OAAK,cAAc,SAAS,eAAe;AAC3C,OAAK,gCAAgC,SAAS,iCAAiC;AAC/E,OAAK,kBAAkB,SAAS,mBAAmB;AACnD,OAAK,sBAAsB,SAAS,uBAAuB;AAC3D,OAAK,6BAA6B,SAAS,8BAA8B;AACzE,OAAK,wBAAwB,SAAS,yBAAyB;AAC/D,OAAK,4BAA4B,SAAS,6BAA6B;AACvE,OAAK,qBAAqB,SAAS,sBAAsB;AACzD,OAAK,0BAA0B,SAAS,2BAA2B;AACnE,OAAK,aAAa,SAAS"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { __esmMin } from "../../rolldown_runtime.mjs";
|
|
2
|
+
|
|
3
|
+
//#region \0@oxc-project+runtime@0.99.0/helpers/decorate.js
|
|
4
|
+
function __decorate(decorators, target, key, desc) {
|
|
5
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9
|
+
}
|
|
10
|
+
var init_decorate = __esmMin(() => {});
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
init_decorate();
|
|
14
|
+
export { __decorate, init_decorate };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __esmMin } from "../../rolldown_runtime.mjs";
|
|
2
|
+
|
|
3
|
+
//#region \0@oxc-project+runtime@0.99.0/helpers/decorateMetadata.js
|
|
4
|
+
function __decorateMetadata(k, v) {
|
|
5
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
6
|
+
}
|
|
7
|
+
var init_decorateMetadata = __esmMin(() => {});
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
init_decorateMetadata();
|
|
11
|
+
export { __decorateMetadata, init_decorateMetadata };
|