@hexabot-ai/api 3.2.2-alpha.9 → 3.2.2-beta.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/dist/actions/actions.service.d.ts +1 -0
- package/dist/actions/actions.service.js +19 -1
- package/dist/actions/actions.service.js.map +1 -1
- package/dist/actions/types.d.ts +3 -1
- package/dist/app.controller.d.ts +1 -0
- package/dist/app.controller.js +1 -0
- package/dist/app.controller.js.map +1 -1
- package/dist/app.module.js +13 -1
- package/dist/app.module.js.map +1 -1
- package/dist/config/index.js +14 -2
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +9 -0
- package/dist/extensions/actions/ai/agent.action.d.ts +1 -1
- package/dist/extensions/actions/ai/agent.action.js +6 -3
- package/dist/extensions/actions/ai/agent.action.js.map +1 -1
- package/dist/extensions/actions/ai/ai-base.action.d.ts +1 -1
- package/dist/extensions/actions/ai/ai-base.action.js +18 -5
- package/dist/extensions/actions/ai/ai-base.action.js.map +1 -1
- package/dist/extensions/actions/ai/generate-object.base.action.d.ts +1 -1
- package/dist/extensions/actions/ai/generate-object.base.action.js +3 -2
- package/dist/extensions/actions/ai/generate-object.base.action.js.map +1 -1
- package/dist/extensions/actions/ai/generate-text.base.action.d.ts +1 -1
- package/dist/extensions/actions/ai/generate-text.base.action.js +3 -2
- package/dist/extensions/actions/ai/generate-text.base.action.js.map +1 -1
- package/dist/extensions/actions/ai/mcp.binding.js +2 -0
- package/dist/extensions/actions/ai/mcp.binding.js.map +1 -1
- package/dist/extensions/actions/ai/memory.binding.js +2 -0
- package/dist/extensions/actions/ai/memory.binding.js.map +1 -1
- package/dist/extensions/actions/ai/retrieve-content-rag.action.js +2 -0
- package/dist/extensions/actions/ai/retrieve-content-rag.action.js.map +1 -1
- package/dist/extensions/actions/messaging/list.action.d.ts +2 -2
- package/dist/extensions/actions/messaging/list.action.js +7 -0
- package/dist/extensions/actions/messaging/list.action.js.map +1 -1
- package/dist/extensions/actions/subscriber/update-labels.action.js +3 -0
- package/dist/extensions/actions/subscriber/update-labels.action.js.map +1 -1
- package/dist/extensions/actions/web/http-request.action.js +12 -1
- package/dist/extensions/actions/web/http-request.action.js.map +1 -1
- package/dist/extensions/actions/workflow/call-workflow.action.d.ts +19 -0
- package/dist/extensions/actions/workflow/call-workflow.action.js +83 -0
- package/dist/extensions/actions/workflow/call-workflow.action.js.map +1 -0
- package/dist/extensions/actions/workflow/i18n/en.translations.json +9 -0
- package/dist/extensions/actions/workflow/i18n/fr.translations.json +9 -0
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.js +1 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/controllers/mcp-token.controller.d.ts +47 -0
- package/dist/mcp/controllers/mcp-token.controller.js +70 -0
- package/dist/mcp/controllers/mcp-token.controller.js.map +1 -0
- package/dist/mcp/decorators/mcp-permission.decorator.d.ts +8 -0
- package/dist/mcp/decorators/mcp-permission.decorator.js +11 -0
- package/dist/mcp/decorators/mcp-permission.decorator.js.map +1 -0
- package/dist/mcp/dto/mcp-token.dto.d.ts +17 -0
- package/dist/mcp/dto/mcp-token.dto.js +40 -0
- package/dist/mcp/dto/mcp-token.dto.js.map +1 -0
- package/dist/mcp/entities/mcp-token.entity.d.ts +111 -0
- package/dist/mcp/entities/mcp-token.entity.js +69 -0
- package/dist/mcp/entities/mcp-token.entity.js.map +1 -0
- package/dist/mcp/guards/hexabot-mcp-token.guard.d.ts +9 -0
- package/dist/mcp/guards/hexabot-mcp-token.guard.js +49 -0
- package/dist/mcp/guards/hexabot-mcp-token.guard.js.map +1 -0
- package/dist/mcp/guards/mcp-permission.guard.d.ts +9 -0
- package/dist/mcp/guards/mcp-permission.guard.js +47 -0
- package/dist/mcp/guards/mcp-permission.guard.js.map +1 -0
- package/dist/mcp/mcp-api.module.d.ts +2 -0
- package/dist/mcp/mcp-api.module.js +65 -0
- package/dist/mcp/mcp-api.module.js.map +1 -0
- package/dist/mcp/repositories/mcp-token.repository.d.ts +8 -0
- package/dist/mcp/repositories/mcp-token.repository.js +41 -0
- package/dist/mcp/repositories/mcp-token.repository.js.map +1 -0
- package/dist/mcp/services/mcp-token.service.d.ts +24 -0
- package/dist/mcp/services/mcp-token.service.js +106 -0
- package/dist/mcp/services/mcp-token.service.js.map +1 -0
- package/dist/mcp/tools/catalog-mcp.tools.d.ts +63 -0
- package/dist/mcp/tools/catalog-mcp.tools.js +135 -0
- package/dist/mcp/tools/catalog-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/cms-mcp.tools.d.ts +128 -0
- package/dist/mcp/tools/cms-mcp.tools.js +242 -0
- package/dist/mcp/tools/cms-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/credential-mcp.tools.d.ts +19 -0
- package/dist/mcp/tools/credential-mcp.tools.js +82 -0
- package/dist/mcp/tools/credential-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/hexabot-mcp-tool.base.d.ts +22 -0
- package/dist/mcp/tools/hexabot-mcp-tool.base.js +48 -0
- package/dist/mcp/tools/hexabot-mcp-tool.base.js.map +1 -0
- package/dist/mcp/tools/hexabot-mcp.schemas.d.ts +41 -0
- package/dist/mcp/tools/hexabot-mcp.schemas.js +36 -0
- package/dist/mcp/tools/hexabot-mcp.schemas.js.map +1 -0
- package/dist/mcp/tools/hexabot-mcp.tools.d.ts +1 -0
- package/dist/mcp/tools/hexabot-mcp.tools.js +18 -0
- package/dist/mcp/tools/hexabot-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/hexabot-mcp.utils.d.ts +2 -0
- package/dist/mcp/tools/hexabot-mcp.utils.js +21 -0
- package/dist/mcp/tools/hexabot-mcp.utils.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +22 -0
- package/dist/mcp/tools/index.js +50 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/mcp-server-mcp.tools.d.ts +77 -0
- package/dist/mcp/tools/mcp-server-mcp.tools.js +130 -0
- package/dist/mcp/tools/mcp-server-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/memory-definition-mcp.tools.d.ts +57 -0
- package/dist/mcp/tools/memory-definition-mcp.tools.js +128 -0
- package/dist/mcp/tools/memory-definition-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/workflow-mcp.helper.d.ts +156 -0
- package/dist/mcp/tools/workflow-mcp.helper.js +128 -0
- package/dist/mcp/tools/workflow-mcp.helper.js.map +1 -0
- package/dist/mcp/tools/workflow-mcp.tools.d.ts +790 -0
- package/dist/mcp/tools/workflow-mcp.tools.js +227 -0
- package/dist/mcp/tools/workflow-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/workflow-run-mcp.tools.d.ts +349 -0
- package/dist/mcp/tools/workflow-run-mcp.tools.js +242 -0
- package/dist/mcp/tools/workflow-run-mcp.tools.js.map +1 -0
- package/dist/mcp/tools/workflow-version-mcp.tools.d.ts +238 -0
- package/dist/mcp/tools/workflow-version-mcp.tools.js +368 -0
- package/dist/mcp/tools/workflow-version-mcp.tools.js.map +1 -0
- package/dist/mcp/types.d.ts +7 -0
- package/dist/mcp/types.js +3 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/static/assets/{browser-ponyfill-Qk7qpw-i.js → browser-ponyfill-D1dKqhtP.js} +2 -2
- package/dist/static/assets/{cssMode-CdhvY6oD.js → cssMode-DplazEqd.js} +1 -1
- package/dist/static/assets/{freemarker2-BPoURZH1.js → freemarker2-oSA1bGAm.js} +1 -1
- package/dist/static/assets/{handlebars-C4oubER1.js → handlebars-CcC7EgN2.js} +1 -1
- package/dist/static/assets/{html-CDE5RgVN.js → html-CcFTB7eP.js} +1 -1
- package/dist/static/assets/{htmlMode-C8edIUUq.js → htmlMode-g5g2wCUD.js} +1 -1
- package/dist/static/assets/{index-C1NxBXuS.js → index-CMp45yDR.js} +2379 -2330
- package/dist/static/assets/{index-BI1BtkYv.css → index-D-b9KTZd.css} +1 -1
- package/dist/static/assets/{javascript-Wp5m7adK.js → javascript-Dv0J7ioP.js} +1 -1
- package/dist/static/assets/{jsonMode-0eww5Srr.js → jsonMode-CzBkKOe4.js} +1 -1
- package/dist/static/assets/{liquid-DTktXITv.js → liquid-CptRs_ZU.js} +1 -1
- package/dist/static/assets/{lspLanguageFeatures-BzIRlKhn.js → lspLanguageFeatures-DXNU_upS.js} +1 -1
- package/dist/static/assets/{mdx-D508emqD.js → mdx-af00eMTm.js} +1 -1
- package/dist/static/assets/{python-BfhIq2kX.js → python-CNcx7i3L.js} +1 -1
- package/dist/static/assets/{razor-C7F8fOds.js → razor-BL_MSmP7.js} +1 -1
- package/dist/static/assets/{tsMode-B8zPu6Wl.js → tsMode-BWD4nt2F.js} +1 -1
- package/dist/static/assets/{typescript-Dew3VavZ.js → typescript-BbKUic6G.js} +1 -1
- package/dist/static/assets/{xml-B_2tc6Mh.js → xml-DFx6l4N0.js} +1 -1
- package/dist/static/assets/{yaml-pHcw4KrS.js → yaml-BNuTzPxo.js} +1 -1
- package/dist/static/index.html +2 -2
- package/dist/static/locales/en/translation.json +89 -4
- package/dist/static/locales/fr/translation.json +90 -5
- package/dist/transfer/adapters/content-type-transfer.adapter.d.ts +14 -0
- package/dist/transfer/adapters/content-type-transfer.adapter.js +102 -0
- package/dist/transfer/adapters/content-type-transfer.adapter.js.map +1 -0
- package/dist/transfer/adapters/credential-transfer.adapter.d.ts +13 -0
- package/dist/transfer/adapters/credential-transfer.adapter.js +110 -0
- package/dist/transfer/adapters/credential-transfer.adapter.js.map +1 -0
- package/dist/transfer/adapters/label-transfer.adapter.d.ts +15 -0
- package/dist/transfer/adapters/label-transfer.adapter.js +189 -0
- package/dist/transfer/adapters/label-transfer.adapter.js.map +1 -0
- package/dist/transfer/adapters/mcp-server-transfer.adapter.d.ts +16 -0
- package/dist/transfer/adapters/mcp-server-transfer.adapter.js +169 -0
- package/dist/transfer/adapters/mcp-server-transfer.adapter.js.map +1 -0
- package/dist/transfer/adapters/memory-definition-transfer.adapter.d.ts +14 -0
- package/dist/transfer/adapters/memory-definition-transfer.adapter.js +111 -0
- package/dist/transfer/adapters/memory-definition-transfer.adapter.js.map +1 -0
- package/dist/transfer/index.d.ts +7 -0
- package/dist/transfer/index.js +24 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/transfer/workflow-transfer-adapter.registry.d.ts +27 -0
- package/dist/transfer/workflow-transfer-adapter.registry.js +164 -0
- package/dist/transfer/workflow-transfer-adapter.registry.js.map +1 -0
- package/dist/transfer/workflow-transfer-definition.service.d.ts +40 -0
- package/dist/transfer/workflow-transfer-definition.service.js +353 -0
- package/dist/transfer/workflow-transfer-definition.service.js.map +1 -0
- package/dist/transfer/workflow-transfer-resource-adapter.d.ts +33 -0
- package/dist/transfer/workflow-transfer-resource-adapter.js +81 -0
- package/dist/transfer/workflow-transfer-resource-adapter.js.map +1 -0
- package/dist/transfer/workflow-transfer.controller.d.ts +9 -0
- package/dist/transfer/workflow-transfer.controller.js +63 -0
- package/dist/transfer/workflow-transfer.controller.js.map +1 -0
- package/dist/transfer/workflow-transfer.module.d.ts +2 -0
- package/dist/transfer/workflow-transfer.module.js +47 -0
- package/dist/transfer/workflow-transfer.module.js.map +1 -0
- package/dist/transfer/workflow-transfer.service.d.ts +51 -0
- package/dist/transfer/workflow-transfer.service.js +509 -0
- package/dist/transfer/workflow-transfer.service.js.map +1 -0
- package/dist/transfer/workflow-transfer.types.d.ts +31 -0
- package/dist/transfer/workflow-transfer.types.js +35 -0
- package/dist/transfer/workflow-transfer.types.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/event-emitter.d.ts +12 -5
- package/dist/user/dto/user.dto.d.ts +1 -1
- package/dist/user/guards/ability.guard.js +12 -2
- package/dist/user/guards/ability.guard.js.map +1 -1
- package/dist/utils/test/fixtures/label-group.d.ts +1 -1
- package/dist/utils/test/fixtures/label.d.ts +1 -1
- package/dist/utils/test/fixtures/subscriber.d.ts +1 -1
- package/dist/utils/test/fixtures/workflow-run.js +4 -1
- package/dist/utils/test/fixtures/workflow-run.js.map +1 -1
- package/dist/utils/test/port.d.ts +8 -0
- package/dist/utils/test/port.js +34 -0
- package/dist/utils/test/port.js.map +1 -0
- package/dist/websocket/websocket.gateway.d.ts +2 -1
- package/dist/websocket/websocket.gateway.js.map +1 -1
- package/dist/workflow/contexts/workflow-runtime.context.d.ts +3 -1
- package/dist/workflow/contexts/workflow-runtime.context.js +5 -0
- package/dist/workflow/contexts/workflow-runtime.context.js.map +1 -1
- package/dist/workflow/controllers/workflow-run.controller.js +2 -0
- package/dist/workflow/controllers/workflow-run.controller.js.map +1 -1
- package/dist/workflow/dto/workflow-run.dto.d.ts +1 -0
- package/dist/workflow/dto/workflow-run.dto.js +11 -0
- package/dist/workflow/dto/workflow-run.dto.js.map +1 -1
- package/dist/workflow/entities/memory-record.entity.d.ts +2 -0
- package/dist/workflow/entities/workflow-run.entity.d.ts +62 -0
- package/dist/workflow/entities/workflow-run.entity.js +15 -1
- package/dist/workflow/entities/workflow-run.entity.js.map +1 -1
- package/dist/workflow/index.d.ts +7 -0
- package/dist/workflow/index.js +7 -0
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/repositories/workflow-run.repository.js +7 -1
- package/dist/workflow/repositories/workflow-run.repository.js.map +1 -1
- package/dist/workflow/resource-refs.d.ts +17 -0
- package/dist/workflow/resource-refs.js +15 -0
- package/dist/workflow/resource-refs.js.map +1 -0
- package/dist/workflow/services/agentic.service.d.ts +9 -2
- package/dist/workflow/services/agentic.service.js +142 -19
- package/dist/workflow/services/agentic.service.js.map +1 -1
- package/dist/workflow/services/workflow-run.service.d.ts +3 -0
- package/dist/workflow/services/workflow-run.service.js +75 -3
- package/dist/workflow/services/workflow-run.service.js.map +1 -1
- package/dist/workflow/services/workflow-version.service.d.ts +2 -0
- package/dist/workflow/services/workflow-version.service.js +19 -0
- package/dist/workflow/services/workflow-version.service.js.map +1 -1
- package/dist/workflow/services/workflow.service.d.ts +13 -9
- package/dist/workflow/services/workflow.service.js +64 -35
- package/dist/workflow/services/workflow.service.js.map +1 -1
- package/dist/workflow/types.d.ts +31 -0
- package/dist/workflow/types.js +2 -1
- package/dist/workflow/types.js.map +1 -1
- package/dist/workflow/workflow.module.js +3 -0
- package/dist/workflow/workflow.module.js.map +1 -1
- package/package.json +8 -6
- package/src/actions/actions.service.ts +34 -4
- package/src/actions/types.ts +6 -5
- package/src/app.controller.ts +1 -0
- package/src/app.module.ts +17 -1
- package/src/config/index.ts +17 -2
- package/src/config/types.ts +9 -0
- package/src/extensions/actions/ai/agent.action.ts +6 -1
- package/src/extensions/actions/ai/ai-base.action.ts +39 -5
- package/src/extensions/actions/ai/generate-object.base.action.ts +3 -0
- package/src/extensions/actions/ai/generate-text.base.action.ts +3 -0
- package/src/extensions/actions/ai/mcp.binding.ts +2 -0
- package/src/extensions/actions/ai/memory.binding.ts +2 -0
- package/src/extensions/actions/ai/retrieve-content-rag.action.ts +2 -0
- package/src/extensions/actions/messaging/list.action.ts +7 -0
- package/src/extensions/actions/subscriber/update-labels.action.ts +3 -0
- package/src/extensions/actions/web/http-request.action.ts +17 -1
- package/src/extensions/actions/workflow/call-workflow.action.ts +112 -0
- package/src/extensions/actions/workflow/i18n/en.translations.json +9 -0
- package/src/extensions/actions/workflow/i18n/fr.translations.json +9 -0
- package/src/extensions/index.ts +2 -0
- package/src/index.ts +2 -0
- package/src/mcp/README.md +277 -0
- package/src/mcp/controllers/mcp-token.controller.ts +64 -0
- package/src/mcp/decorators/mcp-permission.decorator.ts +23 -0
- package/src/mcp/dto/mcp-token.dto.ts +48 -0
- package/src/mcp/entities/mcp-token.entity.ts +60 -0
- package/src/mcp/guards/hexabot-mcp-token.guard.ts +55 -0
- package/src/mcp/guards/mcp-permission.guard.ts +61 -0
- package/src/mcp/mcp-api.module.ts +61 -0
- package/src/mcp/repositories/mcp-token.repository.ts +34 -0
- package/src/mcp/services/mcp-token.service.ts +138 -0
- package/src/mcp/tools/catalog-mcp.tools.ts +122 -0
- package/src/mcp/tools/cms-mcp.tools.ts +239 -0
- package/src/mcp/tools/credential-mcp.tools.ts +81 -0
- package/src/mcp/tools/hexabot-mcp-tool.base.ts +74 -0
- package/src/mcp/tools/hexabot-mcp.schemas.ts +55 -0
- package/src/mcp/tools/hexabot-mcp.tools.ts +7 -0
- package/src/mcp/tools/hexabot-mcp.utils.ts +29 -0
- package/src/mcp/tools/index.ts +51 -0
- package/src/mcp/tools/mcp-server-mcp.tools.ts +135 -0
- package/src/mcp/tools/memory-definition-mcp.tools.ts +125 -0
- package/src/mcp/tools/workflow-mcp.helper.ts +219 -0
- package/src/mcp/tools/workflow-mcp.tools.ts +271 -0
- package/src/mcp/tools/workflow-run-mcp.tools.ts +292 -0
- package/src/mcp/tools/workflow-version-mcp.tools.ts +459 -0
- package/src/mcp/types.ts +14 -0
- package/src/transfer/adapters/content-type-transfer.adapter.ts +154 -0
- package/src/transfer/adapters/credential-transfer.adapter.ts +158 -0
- package/src/transfer/adapters/label-transfer.adapter.ts +291 -0
- package/src/transfer/adapters/mcp-server-transfer.adapter.ts +255 -0
- package/src/transfer/adapters/memory-definition-transfer.adapter.ts +167 -0
- package/src/transfer/index.ts +19 -0
- package/src/transfer/workflow-transfer-adapter.registry.ts +250 -0
- package/src/transfer/workflow-transfer-definition.service.ts +587 -0
- package/src/transfer/workflow-transfer-resource-adapter.ts +132 -0
- package/src/transfer/workflow-transfer.controller.ts +86 -0
- package/src/transfer/workflow-transfer.module.ts +46 -0
- package/src/transfer/workflow-transfer.service.ts +858 -0
- package/src/transfer/workflow-transfer.types.ts +98 -0
- package/src/user/guards/ability.guard.ts +15 -3
- package/src/utils/test/fixtures/workflow-run.ts +4 -1
- package/src/utils/test/port.ts +48 -0
- package/src/websocket/websocket.gateway.ts +2 -1
- package/src/workflow/contexts/workflow-runtime.context.ts +12 -1
- package/src/workflow/controllers/workflow-run.controller.ts +2 -0
- package/src/workflow/dto/workflow-run.dto.ts +10 -0
- package/src/workflow/entities/workflow-run.entity.ts +22 -1
- package/src/workflow/index.ts +14 -0
- package/src/workflow/repositories/workflow-run.repository.ts +7 -1
- package/src/workflow/resource-refs.ts +44 -0
- package/src/workflow/services/agentic.service.ts +271 -30
- package/src/workflow/services/workflow-run.service.ts +120 -7
- package/src/workflow/services/workflow-version.service.ts +33 -0
- package/src/workflow/services/workflow.service.ts +86 -31
- package/src/workflow/types.ts +52 -0
- package/src/workflow/workflow.module.ts +3 -0
- package/types/event-emitter.d.ts +12 -5
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.WorkflowVersionService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const base_orm_service_1 = require("../../utils/generics/base-orm.service");
|
|
15
|
+
const workflow_version_entity_1 = require("../entities/workflow-version.entity");
|
|
15
16
|
const workflow_version_repository_1 = require("../repositories/workflow-version.repository");
|
|
16
17
|
const types_1 = require("../types");
|
|
17
18
|
const workflow_service_1 = require("./workflow.service");
|
|
@@ -39,6 +40,24 @@ let WorkflowVersionService = class WorkflowVersionService extends base_orm_servi
|
|
|
39
40
|
createdBy: params.createdBy,
|
|
40
41
|
});
|
|
41
42
|
}
|
|
43
|
+
async createSnapshotWithManager(manager, params) {
|
|
44
|
+
const latestVersion = await manager.findOne(workflow_version_entity_1.WorkflowVersionOrmEntity, {
|
|
45
|
+
where: { workflow: { id: params.workflow } },
|
|
46
|
+
order: { version: 'DESC' },
|
|
47
|
+
});
|
|
48
|
+
const nextVersion = latestVersion ? latestVersion.version + 1 : 1;
|
|
49
|
+
return await manager.save(workflow_version_entity_1.WorkflowVersionOrmEntity, manager.create(workflow_version_entity_1.WorkflowVersionOrmEntity, {
|
|
50
|
+
workflow: { id: params.workflow },
|
|
51
|
+
version: nextVersion,
|
|
52
|
+
definitionYml: params.definitionYml,
|
|
53
|
+
action: params.action,
|
|
54
|
+
message: params.message,
|
|
55
|
+
parentVersion: params.parentVersion
|
|
56
|
+
? { id: params.parentVersion }
|
|
57
|
+
: null,
|
|
58
|
+
createdBy: params.createdBy ? { id: params.createdBy } : null,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
42
61
|
async restoreVersion(workflowId, versionId, payload) {
|
|
43
62
|
const targetVersion = await this.findOne({
|
|
44
63
|
where: { id: versionId, workflow: { id: workflowId } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-version.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow-version.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,2CAA+D;
|
|
1
|
+
{"version":3,"file":"workflow-version.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow-version.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { WorkflowEventMap } from '@hexabot-ai/agentic';
|
|
1
|
+
import type { WorkflowEventMap } from '@hexabot-ai/agentic';
|
|
2
2
|
import { WorkflowFull, Workflow } from '@hexabot-ai/types';
|
|
3
|
-
import { FindOneOptions } from 'typeorm';
|
|
3
|
+
import { EntityManager, FindOneOptions } from 'typeorm';
|
|
4
4
|
import { UpdateOneOptions } from "../../utils/generics/base-orm.repository";
|
|
5
5
|
import { BaseOrmService } from "../../utils/generics/base-orm.service";
|
|
6
|
+
import { InferCreateDto } from "../../utils/types/dto.types";
|
|
6
7
|
import { SocketRequest, SocketResponse, WebsocketGateway } from "../../websocket";
|
|
7
8
|
import { WorkflowUpdateDto } from '../dto/workflow.dto';
|
|
8
9
|
import { WorkflowOrmEntity } from '../entities/workflow.entity';
|
|
@@ -15,6 +16,7 @@ export declare class WorkflowService extends BaseOrmService<WorkflowOrmEntity> {
|
|
|
15
16
|
private readonly MANUAL_INPUT_VALIDATION_ERROR;
|
|
16
17
|
constructor(repository: WorkflowRepository, gateway: WebsocketGateway, workflowRunService: WorkflowRunService);
|
|
17
18
|
pickWorkflow(): Promise<WorkflowFull | null>;
|
|
19
|
+
createWithManager(manager: EntityManager, payload: InferCreateDto<WorkflowOrmEntity>): Promise<WorkflowOrmEntity>;
|
|
18
20
|
updateOne(idOrOptions: string | FindOneOptions<WorkflowOrmEntity>, payload: WorkflowUpdateDto, options?: UpdateOneOptions): Promise<Workflow>;
|
|
19
21
|
validateManualInput(input: unknown, inputSchema: WorkflowOrmEntity['inputSchema']): Record<string, unknown>;
|
|
20
22
|
subscribe(req: SocketRequest, res: SocketResponse): Promise<{
|
|
@@ -22,11 +24,13 @@ export declare class WorkflowService extends BaseOrmService<WorkflowOrmEntity> {
|
|
|
22
24
|
subscribe: `Workflow_${string}`;
|
|
23
25
|
}>;
|
|
24
26
|
private sendWorkflowEvent;
|
|
25
|
-
sendWorkflowStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): void
|
|
26
|
-
sendWorkflowFinish(payload: WorkflowEventMap[keyof WorkflowEventMap]): void
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
sendWorkflowStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
28
|
+
sendWorkflowFinish(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
29
|
+
sendWorkflowSuspended(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
30
|
+
sendWorkflowFailure(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
31
|
+
sendWorkflowStepStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
32
|
+
sendWorkflowStepSuspended(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
33
|
+
sendWorkflowStepSuccess(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
34
|
+
sendWorkflowStepError(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
35
|
+
sendWorkflowStepCancelled(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
|
|
32
36
|
}
|
|
@@ -18,8 +18,8 @@ const event_emitter_1 = require("@nestjs/event-emitter");
|
|
|
18
18
|
const zod_1 = require("zod");
|
|
19
19
|
const base_orm_service_1 = require("../../utils/generics/base-orm.service");
|
|
20
20
|
const websocket_1 = require("../../websocket");
|
|
21
|
+
const workflow_entity_1 = require("../entities/workflow.entity");
|
|
21
22
|
const workflow_repository_1 = require("../repositories/workflow.repository");
|
|
22
|
-
const types_1 = require("../types");
|
|
23
23
|
const workflow_run_service_1 = require("./workflow-run.service");
|
|
24
24
|
let WorkflowService = class WorkflowService extends base_orm_service_1.BaseOrmService {
|
|
25
25
|
constructor(repository, gateway, workflowRunService) {
|
|
@@ -40,6 +40,10 @@ let WorkflowService = class WorkflowService extends base_orm_service_1.BaseOrmSe
|
|
|
40
40
|
});
|
|
41
41
|
return latest ?? null;
|
|
42
42
|
}
|
|
43
|
+
async createWithManager(manager, payload) {
|
|
44
|
+
const entity = manager.create(workflow_entity_1.WorkflowOrmEntity, this.repository.actionDtoToEntity(payload));
|
|
45
|
+
return await manager.save(workflow_entity_1.WorkflowOrmEntity, entity);
|
|
46
|
+
}
|
|
43
47
|
async updateOne(idOrOptions, payload, options) {
|
|
44
48
|
const workflow = await this.findOne(idOrOptions);
|
|
45
49
|
const { type, ...rest } = payload;
|
|
@@ -105,42 +109,55 @@ let WorkflowService = class WorkflowService extends base_orm_service_1.BaseOrmSe
|
|
|
105
109
|
this.logger.error('workflowRun context is required');
|
|
106
110
|
return;
|
|
107
111
|
}
|
|
108
|
-
const { initiatorId, workflowId, threadId } = workflowRun
|
|
112
|
+
const { initiatorId, workflowId, threadId } = workflowRun.context;
|
|
113
|
+
if (typeof initiatorId !== 'string' ||
|
|
114
|
+
!initiatorId ||
|
|
115
|
+
typeof workflowId !== 'string' ||
|
|
116
|
+
!workflowId) {
|
|
117
|
+
this.logger.error('workflowRun context requires initiatorId and workflowId');
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
109
120
|
const workflow = await this.findOne(workflowId);
|
|
110
|
-
|
|
111
|
-
workflow
|
|
112
|
-
|
|
113
|
-
if (canBroadcastEvents) {
|
|
114
|
-
this.gateway.broadcastWorkflowEvent({
|
|
115
|
-
...payload,
|
|
116
|
-
t,
|
|
117
|
-
workflowId,
|
|
118
|
-
initiatorId,
|
|
119
|
-
threadId: typeof threadId === 'string' ? threadId : undefined,
|
|
120
|
-
workflowEvent: workflowEvent.replace('hook:', ''),
|
|
121
|
-
});
|
|
121
|
+
if (!workflow?.type) {
|
|
122
|
+
this.logger.error('workflow is required');
|
|
123
|
+
return;
|
|
122
124
|
}
|
|
125
|
+
this.gateway.broadcastWorkflowEvent({
|
|
126
|
+
...payload,
|
|
127
|
+
t,
|
|
128
|
+
workflowRun,
|
|
129
|
+
workflowId,
|
|
130
|
+
initiatorId,
|
|
131
|
+
threadId: typeof threadId === 'string' ? threadId : undefined,
|
|
132
|
+
workflowEvent: workflowEvent.replace('hook:', ''),
|
|
133
|
+
});
|
|
123
134
|
}
|
|
124
|
-
sendWorkflowStart(payload) {
|
|
125
|
-
this.sendWorkflowEvent('hook:workflow:start', payload);
|
|
135
|
+
async sendWorkflowStart(payload) {
|
|
136
|
+
await this.sendWorkflowEvent('hook:workflow:start', payload);
|
|
126
137
|
}
|
|
127
|
-
sendWorkflowFinish(payload) {
|
|
128
|
-
this.sendWorkflowEvent('hook:workflow:finish', payload);
|
|
138
|
+
async sendWorkflowFinish(payload) {
|
|
139
|
+
await this.sendWorkflowEvent('hook:workflow:finish', payload);
|
|
129
140
|
}
|
|
130
|
-
|
|
131
|
-
this.sendWorkflowEvent('hook:workflow:
|
|
141
|
+
async sendWorkflowSuspended(payload) {
|
|
142
|
+
await this.sendWorkflowEvent('hook:workflow:suspended', payload);
|
|
132
143
|
}
|
|
133
|
-
|
|
134
|
-
this.sendWorkflowEvent('hook:
|
|
144
|
+
async sendWorkflowFailure(payload) {
|
|
145
|
+
await this.sendWorkflowEvent('hook:workflow:failure', payload);
|
|
135
146
|
}
|
|
136
|
-
|
|
137
|
-
this.sendWorkflowEvent('hook:step:
|
|
147
|
+
async sendWorkflowStepStart(payload) {
|
|
148
|
+
await this.sendWorkflowEvent('hook:step:start', payload);
|
|
138
149
|
}
|
|
139
|
-
|
|
140
|
-
this.sendWorkflowEvent('hook:step:
|
|
150
|
+
async sendWorkflowStepSuspended(payload) {
|
|
151
|
+
await this.sendWorkflowEvent('hook:step:suspended', payload);
|
|
141
152
|
}
|
|
142
|
-
|
|
143
|
-
this.sendWorkflowEvent('hook:step:
|
|
153
|
+
async sendWorkflowStepSuccess(payload) {
|
|
154
|
+
await this.sendWorkflowEvent('hook:step:success', payload);
|
|
155
|
+
}
|
|
156
|
+
async sendWorkflowStepError(payload) {
|
|
157
|
+
await this.sendWorkflowEvent('hook:step:error', payload);
|
|
158
|
+
}
|
|
159
|
+
async sendWorkflowStepCancelled(payload) {
|
|
160
|
+
await this.sendWorkflowEvent('hook:step:cancelled', payload);
|
|
144
161
|
}
|
|
145
162
|
};
|
|
146
163
|
exports.WorkflowService = WorkflowService;
|
|
@@ -158,44 +175,56 @@ __decorate([
|
|
|
158
175
|
(0, event_emitter_1.OnEvent)('hook:workflow:start'),
|
|
159
176
|
__metadata("design:type", Function),
|
|
160
177
|
__metadata("design:paramtypes", [Object]),
|
|
161
|
-
__metadata("design:returntype",
|
|
178
|
+
__metadata("design:returntype", Promise)
|
|
162
179
|
], WorkflowService.prototype, "sendWorkflowStart", null);
|
|
163
180
|
__decorate([
|
|
164
181
|
(0, event_emitter_1.OnEvent)('hook:workflow:finish'),
|
|
165
182
|
__metadata("design:type", Function),
|
|
166
183
|
__metadata("design:paramtypes", [Object]),
|
|
167
|
-
__metadata("design:returntype",
|
|
184
|
+
__metadata("design:returntype", Promise)
|
|
168
185
|
], WorkflowService.prototype, "sendWorkflowFinish", null);
|
|
186
|
+
__decorate([
|
|
187
|
+
(0, event_emitter_1.OnEvent)('hook:workflow:suspended'),
|
|
188
|
+
__metadata("design:type", Function),
|
|
189
|
+
__metadata("design:paramtypes", [Object]),
|
|
190
|
+
__metadata("design:returntype", Promise)
|
|
191
|
+
], WorkflowService.prototype, "sendWorkflowSuspended", null);
|
|
169
192
|
__decorate([
|
|
170
193
|
(0, event_emitter_1.OnEvent)('hook:workflow:failure'),
|
|
171
194
|
__metadata("design:type", Function),
|
|
172
195
|
__metadata("design:paramtypes", [Object]),
|
|
173
|
-
__metadata("design:returntype",
|
|
196
|
+
__metadata("design:returntype", Promise)
|
|
174
197
|
], WorkflowService.prototype, "sendWorkflowFailure", null);
|
|
175
198
|
__decorate([
|
|
176
199
|
(0, event_emitter_1.OnEvent)('hook:step:start'),
|
|
177
200
|
__metadata("design:type", Function),
|
|
178
201
|
__metadata("design:paramtypes", [Object]),
|
|
179
|
-
__metadata("design:returntype",
|
|
202
|
+
__metadata("design:returntype", Promise)
|
|
180
203
|
], WorkflowService.prototype, "sendWorkflowStepStart", null);
|
|
181
204
|
__decorate([
|
|
182
205
|
(0, event_emitter_1.OnEvent)('hook:step:suspended'),
|
|
183
206
|
__metadata("design:type", Function),
|
|
184
207
|
__metadata("design:paramtypes", [Object]),
|
|
185
|
-
__metadata("design:returntype",
|
|
208
|
+
__metadata("design:returntype", Promise)
|
|
186
209
|
], WorkflowService.prototype, "sendWorkflowStepSuspended", null);
|
|
187
210
|
__decorate([
|
|
188
211
|
(0, event_emitter_1.OnEvent)('hook:step:success'),
|
|
189
212
|
__metadata("design:type", Function),
|
|
190
213
|
__metadata("design:paramtypes", [Object]),
|
|
191
|
-
__metadata("design:returntype",
|
|
214
|
+
__metadata("design:returntype", Promise)
|
|
192
215
|
], WorkflowService.prototype, "sendWorkflowStepSuccess", null);
|
|
193
216
|
__decorate([
|
|
194
217
|
(0, event_emitter_1.OnEvent)('hook:step:error'),
|
|
195
218
|
__metadata("design:type", Function),
|
|
196
219
|
__metadata("design:paramtypes", [Object]),
|
|
197
|
-
__metadata("design:returntype",
|
|
220
|
+
__metadata("design:returntype", Promise)
|
|
198
221
|
], WorkflowService.prototype, "sendWorkflowStepError", null);
|
|
222
|
+
__decorate([
|
|
223
|
+
(0, event_emitter_1.OnEvent)('hook:step:cancelled'),
|
|
224
|
+
__metadata("design:type", Function),
|
|
225
|
+
__metadata("design:paramtypes", [Object]),
|
|
226
|
+
__metadata("design:returntype", Promise)
|
|
227
|
+
], WorkflowService.prototype, "sendWorkflowStepCancelled", null);
|
|
199
228
|
exports.WorkflowService = WorkflowService = __decorate([
|
|
200
229
|
(0, common_1.Injectable)(),
|
|
201
230
|
__metadata("design:paramtypes", [workflow_repository_1.WorkflowRepository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQA,2CAIwB;AACxB,yDAA8D;AAE9D,6BAAiC;AAGjC,4EAAmE;
|
|
1
|
+
{"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow.service.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow/types.d.ts
CHANGED
|
@@ -1,18 +1,49 @@
|
|
|
1
1
|
import { WorkflowResumeResult, WorkflowRunner, WorkflowSnapshot, WorkflowStartResult } from '@hexabot-ai/agentic';
|
|
2
2
|
import { DirectionType, McpServerTransport, MemoryScope, WorkflowType, WorkflowVersionAction, MemoryDefinition, WorkflowRunFull, WorkflowFull } from '@hexabot-ai/types';
|
|
3
|
+
import type { WorkflowRuntimeContext } from './contexts/workflow-runtime.context';
|
|
3
4
|
import { TriggerEventWrapper } from './lib/trigger-event-wrapper';
|
|
4
5
|
import { SchemaInstance } from './utils/schema-instance';
|
|
5
6
|
export { DirectionType, McpServerTransport, MemoryScope, WorkflowType, WorkflowVersionAction, };
|
|
6
7
|
export type MemoryValue = Record<string, unknown>;
|
|
7
8
|
export type WorkflowResult = WorkflowStartResult | WorkflowResumeResult;
|
|
9
|
+
export type CallWorkflowFinishedResult = {
|
|
10
|
+
status: 'finished';
|
|
11
|
+
workflow_id: string;
|
|
12
|
+
workflow_run_id: string;
|
|
13
|
+
output: Record<string, unknown>;
|
|
14
|
+
};
|
|
15
|
+
export type CallWorkflowSuspendedResult = {
|
|
16
|
+
status: 'suspended';
|
|
17
|
+
workflow_id: string;
|
|
18
|
+
workflow_run_id: string;
|
|
19
|
+
};
|
|
20
|
+
export type CallWorkflowFailedResult = {
|
|
21
|
+
status: 'failed';
|
|
22
|
+
workflow_id: string;
|
|
23
|
+
workflow_run_id: string;
|
|
24
|
+
error: string;
|
|
25
|
+
};
|
|
26
|
+
export type CallWorkflowResult = CallWorkflowFinishedResult | CallWorkflowSuspendedResult | CallWorkflowFailedResult;
|
|
27
|
+
export type CallWorkflowOptions = {
|
|
28
|
+
workflowId: string;
|
|
29
|
+
input?: Record<string, unknown>;
|
|
30
|
+
parentContext: WorkflowRuntimeContext;
|
|
31
|
+
};
|
|
32
|
+
export interface WorkflowCallService {
|
|
33
|
+
callWorkflow(options: CallWorkflowOptions): Promise<CallWorkflowResult>;
|
|
34
|
+
}
|
|
35
|
+
export declare const WORKFLOW_CALL_SERVICE: unique symbol;
|
|
8
36
|
export type RunWorkflowOptions = {
|
|
9
37
|
mode: 'start';
|
|
10
38
|
workflow: WorkflowFull;
|
|
11
39
|
event: TriggerEventWrapper;
|
|
40
|
+
parentRun?: WorkflowRunFull;
|
|
41
|
+
input?: Record<string, unknown>;
|
|
12
42
|
} | {
|
|
13
43
|
mode: 'resume';
|
|
14
44
|
run: WorkflowRunFull;
|
|
15
45
|
event: TriggerEventWrapper;
|
|
46
|
+
resumeData?: unknown;
|
|
16
47
|
};
|
|
17
48
|
export type MarkRunningInput = {
|
|
18
49
|
snapshot?: WorkflowSnapshot | null;
|
package/dist/workflow/types.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkflowVersionAction = exports.WorkflowType = exports.MemoryScope = exports.McpServerTransport = exports.DirectionType = void 0;
|
|
3
|
+
exports.WORKFLOW_CALL_SERVICE = exports.WorkflowVersionAction = exports.WorkflowType = exports.MemoryScope = exports.McpServerTransport = exports.DirectionType = void 0;
|
|
4
4
|
const types_1 = require("@hexabot-ai/types");
|
|
5
5
|
Object.defineProperty(exports, "DirectionType", { enumerable: true, get: function () { return types_1.DirectionType; } });
|
|
6
6
|
Object.defineProperty(exports, "McpServerTransport", { enumerable: true, get: function () { return types_1.McpServerTransport; } });
|
|
7
7
|
Object.defineProperty(exports, "MemoryScope", { enumerable: true, get: function () { return types_1.MemoryScope; } });
|
|
8
8
|
Object.defineProperty(exports, "WorkflowType", { enumerable: true, get: function () { return types_1.WorkflowType; } });
|
|
9
9
|
Object.defineProperty(exports, "WorkflowVersionAction", { enumerable: true, get: function () { return types_1.WorkflowVersionAction; } });
|
|
10
|
+
exports.WORKFLOW_CALL_SERVICE = Symbol('WORKFLOW_CALL_SERVICE');
|
|
10
11
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":";;;AAYA,6CAS2B;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":";;;AAYA,6CAS2B;AAOzB,8FAfA,qBAAa,OAeA;AACb,mGAfA,0BAAkB,OAeA;AAClB,4FAfA,mBAAW,OAeA;AACX,6FAfA,oBAAY,OAeA;AACZ,sGAfA,6BAAqB,OAeA;AAkDV,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
|
|
@@ -47,6 +47,7 @@ const workflow_run_service_1 = require("./services/workflow-run.service");
|
|
|
47
47
|
const workflow_scheduler_service_1 = require("./services/workflow-scheduler.service");
|
|
48
48
|
const workflow_version_service_1 = require("./services/workflow-version.service");
|
|
49
49
|
const workflow_service_1 = require("./services/workflow.service");
|
|
50
|
+
const types_1 = require("./types");
|
|
50
51
|
let WorkflowModule = class WorkflowModule {
|
|
51
52
|
};
|
|
52
53
|
exports.WorkflowModule = WorkflowModule;
|
|
@@ -97,6 +98,7 @@ exports.WorkflowModule = WorkflowModule = __decorate([
|
|
|
97
98
|
scheduled_workflow_context_1.ScheduledWorkflowContext,
|
|
98
99
|
workflow_context_factory_1.WorkflowContextFactory,
|
|
99
100
|
agentic_service_1.AgenticService,
|
|
101
|
+
{ provide: types_1.WORKFLOW_CALL_SERVICE, useExisting: agentic_service_1.AgenticService },
|
|
100
102
|
],
|
|
101
103
|
exports: [
|
|
102
104
|
workflow_repository_1.WorkflowRepository,
|
|
@@ -115,6 +117,7 @@ exports.WorkflowModule = WorkflowModule = __decorate([
|
|
|
115
117
|
mcp_client_pool_service_1.McpClientPoolService,
|
|
116
118
|
conversational_workflow_context_1.ConversationalWorkflowContext,
|
|
117
119
|
agentic_service_1.AgenticService,
|
|
120
|
+
types_1.WORKFLOW_CALL_SERVICE,
|
|
118
121
|
],
|
|
119
122
|
})
|
|
120
123
|
], WorkflowModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.module.js","sourceRoot":"","sources":["../../src/workflow/workflow.module.ts"],"names":[],"mappings":";;;;;;;;;AAMA,2CAAoD;AACpD,+CAAqD;AACrD,6CAAgD;AAEhD,qDAAgD;AAChD,kEAAgE;AAChE,kDAA6C;AAC7C,qDAAgD;AAEhD,gGAA2F;AAC3F,gFAA2E;AAC3E,sFAAiF;AACjF,kFAA6E;AAC7E,+EAA0E;AAC1E,6FAAwF;AACxF,mFAA8E;AAC9E,2FAAsF;AACtF,2EAAuE;AACvE,oEAAkE;AAClE,kFAAgF;AAChF,0EAAwE;AACxE,wEAAsE;AACtE,gFAA8E;AAC9E,gEAA+D;AAC/D,gFAA2E;AAC3E,8FAAyF;AACzF,sFAAiF;AACjF,oFAA+E;AAC/E,4FAAuF;AACvF,4EAAwE;AACxE,2EAAwE;AACxE,yDAAuD;AACvD,gEAA4D;AAC5D,gFAA0E;AAC1E,sEAAiE;AACjE,oFAA+E;AAC/E,4EAAuE;AACvE,8DAA0D;AAC1D,0EAAqE;AACrE,sFAAiF;AACjF,kFAA6E;AAC7E,kEAA8D;
|
|
1
|
+
{"version":3,"file":"workflow.module.js","sourceRoot":"","sources":["../../src/workflow/workflow.module.ts"],"names":[],"mappings":";;;;;;;;;AAMA,2CAAoD;AACpD,+CAAqD;AACrD,6CAAgD;AAEhD,qDAAgD;AAChD,kEAAgE;AAChE,kDAA6C;AAC7C,qDAAgD;AAEhD,gGAA2F;AAC3F,gFAA2E;AAC3E,sFAAiF;AACjF,kFAA6E;AAC7E,+EAA0E;AAC1E,6FAAwF;AACxF,mFAA8E;AAC9E,2FAAsF;AACtF,2EAAuE;AACvE,oEAAkE;AAClE,kFAAgF;AAChF,0EAAwE;AACxE,wEAAsE;AACtE,gFAA8E;AAC9E,gEAA+D;AAC/D,gFAA2E;AAC3E,8FAAyF;AACzF,sFAAiF;AACjF,oFAA+E;AAC/E,4FAAuF;AACvF,4EAAwE;AACxE,2EAAwE;AACxE,yDAAuD;AACvD,gEAA4D;AAC5D,gFAA0E;AAC1E,sEAAiE;AACjE,oFAA+E;AAC/E,4EAAuE;AACvE,8DAA0D;AAC1D,0EAAqE;AACrE,sFAAiF;AACjF,kFAA6E;AAC7E,kEAA8D;AAC9D,mCAAgD;AAsEzC,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IApE1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,mCAAiB;gBACjB,kDAAwB;gBACxB,0CAAoB;gBACpB,oDAAyB;gBACzB,4CAAqB;gBACrB,sCAAkB;gBAClB,+BAAe;aAChB,CAAC;YACF,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;YAC3B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,wBAAU;SACX;QACD,WAAW,EAAE;YACX,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,2CAAmB;SACpB;QACD,SAAS,EAAE;YACT,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,iDAAsB;YACtB,2CAAmB;YACnB,+CAAsB;YACtB,8BAAc;YACd,kCAAe;YACf,iDAAsB;YACtB,yCAAkB;YAClB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,qCAAgB;YAChB,8CAAoB;YACpB,4BAAiB;YACjB,qDAAwB;YACxB,+DAA6B;YAC7B,+CAAqB;YACrB,qDAAwB;YACxB,iDAAsB;YACtB,gCAAc;YACd,EAAE,OAAO,EAAE,6BAAqB,EAAE,WAAW,EAAE,gCAAc,EAAE;SAChE;QACD,OAAO,EAAE;YACP,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,iDAAsB;YACtB,2CAAmB;YACnB,kCAAe;YACf,iDAAsB;YACtB,yCAAkB;YAClB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,qCAAgB;YAChB,8CAAoB;YACpB,+DAA6B;YAC7B,gCAAc;YACd,6BAAqB;SACtB;KACF,CAAC;GACW,cAAc,CAAG"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hexabot-ai/api",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "3.2.2-
|
|
4
|
+
"version": "3.2.2-beta.1",
|
|
5
5
|
"description": "Hexabot is a solution for creating and managing chatbots across multiple channels, leveraging AI for advanced conversational capabilities. It provides a user-friendly interface for building, training, and deploying chatbots with integrated support for various messaging platforms.",
|
|
6
6
|
"author": "Hexastack",
|
|
7
7
|
"license": "FCL-1.0-ALv2",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"@keyv/redis": "^5.1.3",
|
|
32
32
|
"@llamaindex/openai": "0.4.22",
|
|
33
33
|
"@llamaindex/postgres": "0.0.65",
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
34
35
|
"@nestjs/axios": "^4.0.1",
|
|
35
36
|
"@nestjs/cache-manager": "^3.1.2",
|
|
36
37
|
"@nestjs/common": "^11.1.19",
|
|
@@ -46,13 +47,14 @@
|
|
|
46
47
|
"@nestjs/swagger": "^11.4.2",
|
|
47
48
|
"@nestjs/typeorm": "^11.0.1",
|
|
48
49
|
"@nestjs/websockets": "^11.1.19",
|
|
50
|
+
"@rekog/mcp-nest": "^1.9.9",
|
|
49
51
|
"@resvg/resvg-js": "^2.6.2",
|
|
50
52
|
"@socket.io/redis-adapter": "^8.3.0",
|
|
51
53
|
"ai": "^6.0.17",
|
|
52
54
|
"async-mutex": "^0.5.0",
|
|
53
55
|
"axios": "^1.15.2",
|
|
54
|
-
"better-sqlite3": "^12.9.0",
|
|
55
56
|
"bcryptjs": "^3.0.2",
|
|
57
|
+
"better-sqlite3": "^12.9.0",
|
|
56
58
|
"cache-manager": "^7.2.4",
|
|
57
59
|
"cacheable": "^2.1.0",
|
|
58
60
|
"class-transformer": "^0.5.1",
|
|
@@ -90,11 +92,11 @@
|
|
|
90
92
|
"typeorm": "^0.3.28",
|
|
91
93
|
"yaml": "^2.8.3",
|
|
92
94
|
"zod": "^4.3.6",
|
|
93
|
-
"@hexabot-ai/agentic": "3.1.2-
|
|
94
|
-
"@hexabot-ai/types": "3.0.2-
|
|
95
|
+
"@hexabot-ai/agentic": "3.1.2-beta.1",
|
|
96
|
+
"@hexabot-ai/types": "3.0.2-beta.1"
|
|
95
97
|
},
|
|
96
98
|
"devDependencies": {
|
|
97
|
-
"@compodoc/compodoc": "^1.1
|
|
99
|
+
"@compodoc/compodoc": "^1.2.1",
|
|
98
100
|
"@nestjs/cli": "^11.0.21",
|
|
99
101
|
"@nestjs/schematics": "^11.1.0",
|
|
100
102
|
"@nestjs/testing": "^11.1.19",
|
|
@@ -142,7 +144,7 @@
|
|
|
142
144
|
"tsconfig-paths": "^4.2.0",
|
|
143
145
|
"tsconfig-paths-jest": "^0.0.1",
|
|
144
146
|
"typescript": "^5.1.3",
|
|
145
|
-
"@hexabot-ai/frontend": "3.2.2-
|
|
147
|
+
"@hexabot-ai/frontend": "3.2.2-beta.1"
|
|
146
148
|
},
|
|
147
149
|
"optionalDependencies": {
|
|
148
150
|
"@css-inline/css-inline-linux-arm64-musl": "^0.14.1",
|
|
@@ -66,6 +66,12 @@ export class ActionService {
|
|
|
66
66
|
const name = action.getName();
|
|
67
67
|
const localizationOptions =
|
|
68
68
|
this.i18nService.getJsonSchemaLocalizationOptions(name, lang);
|
|
69
|
+
const inputSchema = toDraft07JsonSchema(
|
|
70
|
+
action.inputSchema,
|
|
71
|
+
localizationOptions,
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
this.applyActionSchemaContext(inputSchema, name, workflowType);
|
|
69
75
|
|
|
70
76
|
return {
|
|
71
77
|
name,
|
|
@@ -75,10 +81,7 @@ export class ActionService {
|
|
|
75
81
|
group: action.group,
|
|
76
82
|
workflowTypes: action.workflowTypes,
|
|
77
83
|
supportedBindings: action.supportedBindings ?? [],
|
|
78
|
-
inputSchema
|
|
79
|
-
action.inputSchema,
|
|
80
|
-
localizationOptions,
|
|
81
|
-
),
|
|
84
|
+
inputSchema,
|
|
82
85
|
outputSchema: toDraft07JsonSchema(
|
|
83
86
|
action.outputSchema,
|
|
84
87
|
localizationOptions,
|
|
@@ -91,6 +94,33 @@ export class ActionService {
|
|
|
91
94
|
});
|
|
92
95
|
}
|
|
93
96
|
|
|
97
|
+
private applyActionSchemaContext(
|
|
98
|
+
inputSchema: Record<string, any>,
|
|
99
|
+
actionName: string,
|
|
100
|
+
workflowType?: WorkflowType,
|
|
101
|
+
): void {
|
|
102
|
+
if (actionName !== 'call_workflow' || !workflowType) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const workflowIdSchema = inputSchema.properties?.workflow_id;
|
|
107
|
+
if (!workflowIdSchema || typeof workflowIdSchema !== 'object') {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// The same call_workflow action is available to every workflow type, but a
|
|
112
|
+
// specific workflow can only call another workflow with the same trigger
|
|
113
|
+
// type. The catalog endpoint has the active type, so it can scope the UI
|
|
114
|
+
// picker before the action is saved.
|
|
115
|
+
workflowIdSchema['ui:options'] = {
|
|
116
|
+
...(workflowIdSchema['ui:options'] ?? {}),
|
|
117
|
+
where: {
|
|
118
|
+
...(workflowIdSchema['ui:options']?.where ?? {}),
|
|
119
|
+
type: workflowType,
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
94
124
|
getRegistry(): Record<
|
|
95
125
|
ActionName,
|
|
96
126
|
BaseAction<any, any, BaseWorkflowContext, any>
|
package/src/actions/types.ts
CHANGED
|
@@ -56,8 +56,9 @@ export type ActionRegistry<
|
|
|
56
56
|
A extends Action<unknown, unknown, BaseWorkflowContext, unknown> = AnyAction,
|
|
57
57
|
> = Map<ActionName, A>;
|
|
58
58
|
|
|
59
|
-
export type ExecArgs<
|
|
60
|
-
I,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
export type ExecArgs<I, C extends BaseWorkflowContext, S = unknown> = Omit<
|
|
60
|
+
ActionExecutionArgs<I, C, S, RuntimeBindings>,
|
|
61
|
+
'signal'
|
|
62
|
+
> & {
|
|
63
|
+
signal?: AbortSignal;
|
|
64
|
+
};
|
package/src/app.controller.ts
CHANGED
package/src/app.module.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { existsSync } from 'fs';
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
8
9
|
import path, { join } from 'path';
|
|
9
10
|
|
|
10
11
|
import KeyvRedis from '@keyv/redis';
|
|
@@ -45,6 +46,7 @@ import { LoggerModule } from './logger/logger.module';
|
|
|
45
46
|
import { MailerModule } from './mailer/mailer.module';
|
|
46
47
|
import { MigrationModule } from './migration/migration.module';
|
|
47
48
|
import { SettingModule } from './setting/setting.module';
|
|
49
|
+
import { WorkflowTransferModule } from './transfer/workflow-transfer.module';
|
|
48
50
|
import { Ability } from './user/guards/ability.guard';
|
|
49
51
|
import { UserModule } from './user/user.module';
|
|
50
52
|
import { WebsocketModule } from './websocket/websocket.module';
|
|
@@ -57,6 +59,18 @@ const workspaceFrontendPath = join(__dirname, '..', '..', 'frontend', 'dist');
|
|
|
57
59
|
const frontendStaticPath = existsSync(compiledFrontendPath)
|
|
58
60
|
? compiledFrontendPath
|
|
59
61
|
: workspaceFrontendPath;
|
|
62
|
+
const requireModule = createRequire(__filename);
|
|
63
|
+
const getMcpModuleImports = (): ModuleImports => {
|
|
64
|
+
if (!config.mcp.enabled) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const { McpApiModule } = requireModule(
|
|
69
|
+
'./mcp/mcp-api.module',
|
|
70
|
+
) as typeof import('./mcp/mcp-api.module');
|
|
71
|
+
|
|
72
|
+
return [McpApiModule];
|
|
73
|
+
};
|
|
60
74
|
// I18N options
|
|
61
75
|
const i18nOptions: I18nOptions = {
|
|
62
76
|
fallbackLanguage: 'en',
|
|
@@ -68,7 +82,7 @@ const i18nOptions: I18nOptions = {
|
|
|
68
82
|
path.join(__dirname, '/extensions/helpers/'),
|
|
69
83
|
path.join(__dirname, '/extensions/channels/'),
|
|
70
84
|
],
|
|
71
|
-
watch:
|
|
85
|
+
watch: config.env.toLowerCase() !== 'test',
|
|
72
86
|
},
|
|
73
87
|
resolvers: [
|
|
74
88
|
{ use: QueryResolver, options: ['lang'] },
|
|
@@ -102,6 +116,7 @@ export const HEXABOT_MODULE_IMPORTS: ModuleImports = [
|
|
|
102
116
|
ActionsModule,
|
|
103
117
|
BindingsModule,
|
|
104
118
|
WorkflowModule,
|
|
119
|
+
WorkflowTransferModule,
|
|
105
120
|
HelperModule,
|
|
106
121
|
LoggerModule,
|
|
107
122
|
WebsocketModule,
|
|
@@ -123,6 +138,7 @@ export const HEXABOT_MODULE_IMPORTS: ModuleImports = [
|
|
|
123
138
|
ignoreErrors: false,
|
|
124
139
|
}),
|
|
125
140
|
I18nModule.forRoot(i18nOptions),
|
|
141
|
+
...getMcpModuleImports(),
|
|
126
142
|
CacheModule.registerAsync({
|
|
127
143
|
isGlobal: true,
|
|
128
144
|
useFactory: async () => ({
|
package/src/config/index.ts
CHANGED
|
@@ -82,23 +82,37 @@ const sessionLimitSubquery =
|
|
|
82
82
|
? true
|
|
83
83
|
: process.env.SESSION_LIMIT_SUBQUERY === 'true';
|
|
84
84
|
const sessionTtlSeconds = parseOptionalInt(process.env.SESSION_TTL_SECONDS);
|
|
85
|
+
const apiBaseUrl = process.env.API_ORIGIN || 'http://localhost:3000/api';
|
|
85
86
|
|
|
86
87
|
export const config: Config = {
|
|
87
88
|
i18n: {
|
|
88
89
|
translationFilename: process.env.I18N_TRANSLATION_FILENAME || 'messages',
|
|
89
90
|
},
|
|
90
91
|
appPath: process.cwd(),
|
|
91
|
-
apiBaseUrl
|
|
92
|
+
apiBaseUrl,
|
|
92
93
|
uiBaseUrl: process.env.FRONTEND_BASE_URL
|
|
93
94
|
? process.env.FRONTEND_BASE_URL
|
|
94
95
|
: 'http://localhost:3000', // default to local dev
|
|
95
96
|
ssoEnabled: process.env.SSO_ENABLED === 'true',
|
|
97
|
+
mcp: {
|
|
98
|
+
enabled: process.env.MCP_ENABLED === 'true',
|
|
99
|
+
serverName: process.env.MCP_SERVER_NAME || 'hexabot-api',
|
|
100
|
+
serverTitle: process.env.MCP_SERVER_TITLE || 'Hexabot API MCP Server',
|
|
101
|
+
serverVersion: process.env.MCP_SERVER_VERSION || '1.0.0',
|
|
102
|
+
serverDescription:
|
|
103
|
+
process.env.MCP_SERVER_DESCRIPTION ||
|
|
104
|
+
'Manage Hexabot workflows, runs, memory, credentials, actions, and CMS content.',
|
|
105
|
+
serverInstructions:
|
|
106
|
+
process.env.MCP_SERVER_INSTRUCTIONS ||
|
|
107
|
+
'Use these tools to inspect and manage Hexabot API resources. Credential values are never exposed.',
|
|
108
|
+
},
|
|
96
109
|
security: {
|
|
97
110
|
httpsEnabled: process.env.HTTPS_ENABLED === 'true',
|
|
98
111
|
trustProxy: process.env.HTTPS_ENABLED === 'true', // Nginx in use ?
|
|
99
112
|
cors: {
|
|
100
113
|
allRoutes: true,
|
|
101
|
-
headers:
|
|
114
|
+
headers:
|
|
115
|
+
'content-type,x-xsrf-token,x-csrf-token,authorization,mcp-session-id,last-event-id',
|
|
102
116
|
methods: ['GET', 'PATCH', 'POST', 'DELETE', 'OPTIONS', 'HEAD'],
|
|
103
117
|
allowOrigins: process.env.FRONTEND_ORIGIN
|
|
104
118
|
? process.env.FRONTEND_ORIGIN.split(',').map((origin) => origin.trim())
|
|
@@ -109,6 +123,7 @@ export const config: Config = {
|
|
|
109
123
|
csrfExclude: [
|
|
110
124
|
/^\/auth\/local$/, // login
|
|
111
125
|
/^\/auth\/logout$/, // logout
|
|
126
|
+
/^\/mcp$/, // MCP Streamable HTTP endpoint
|
|
112
127
|
/^\/webhook\//, // Any webhook channel
|
|
113
128
|
/^\/reset(\/[^\/]+)?$/, // Reset request / Change password
|
|
114
129
|
],
|