@hotmeshio/long-tail 0.1.4 → 0.1.6
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/README.md +35 -5
- package/build/examples/seed.js +1 -1
- package/build/examples/workflows/basic-echo/activities.d.ts +2 -2
- package/build/examples/workflows/basic-echo/activities.js +7 -7
- package/build/examples/workflows/basic-echo/index.js +1 -1
- package/build/examples/workflows/kitchen-sink/index.js +2 -2
- package/build/index.d.ts +11 -10
- package/build/index.js +13 -12
- package/build/lib/db/index.d.ts +18 -0
- package/build/{services → lib}/db/index.js +9 -0
- package/build/{services → lib}/db/migrate.js +4 -7
- package/{services → build/lib}/db/schemas/001_schema.sql +3 -0
- package/{services → build/lib}/db/schemas/011_system_workflow_configs.sql +7 -0
- package/build/lib/db/schemas/015_knowledge.sql +23 -0
- package/build/lib/db/schemas/016_streamable_http.sql +7 -0
- package/build/{services → lib}/telemetry/honeycomb.d.ts +2 -2
- package/build/{services → lib}/telemetry/honeycomb.js +2 -2
- package/build/modules/defaults.d.ts +2 -0
- package/build/modules/defaults.js +3 -1
- package/build/routes/controlplane.js +1 -1
- package/build/routes/dba.js +4 -0
- package/build/routes/docs.d.ts +2 -0
- package/build/routes/docs.js +105 -0
- package/build/routes/escalations/bulk.js +120 -202
- package/build/routes/escalations/resolve.js +1 -1
- package/build/routes/escalations/single.js +1 -1
- package/build/routes/files.js +1 -1
- package/build/routes/index.js +2 -0
- package/build/routes/insight.js +65 -1
- package/build/routes/mcp.js +26 -3
- package/build/routes/oauth.js +1 -1
- package/build/routes/settings.js +4 -4
- package/build/routes/workflows/discovery.js +3 -3
- package/build/routes/workflows/invocation.js +1 -1
- package/build/routes/yaml-workflows/cron.d.ts +2 -0
- package/build/routes/yaml-workflows/cron.js +117 -0
- package/build/routes/yaml-workflows/crud.js +39 -1
- package/build/routes/yaml-workflows/deployment.js +9 -9
- package/build/routes/yaml-workflows/index.js +4 -1
- package/build/services/auth/bot-api-key.js +1 -1
- package/build/services/auth/index.d.ts +4 -0
- package/build/services/auth/index.js +17 -0
- package/build/services/auth/service-token.js +1 -1
- package/build/services/config/provider.js +1 -1
- package/build/services/config/read.js +1 -1
- package/build/services/config/write.js +1 -1
- package/build/services/controlplane/index.js +3 -4
- package/build/services/controlplane/quorum-bridge.js +2 -2
- package/build/services/cron/index.d.ts +17 -0
- package/build/services/cron/index.js +98 -6
- package/build/services/dba.d.ts +4 -0
- package/build/services/dba.js +3 -6
- package/build/services/escalation/bulk.js +1 -1
- package/build/services/escalation/crud.js +1 -1
- package/build/services/escalation/queries.js +1 -1
- package/build/services/export/client.js +2 -5
- package/build/services/export/index.js +14 -2
- package/build/services/hotmesh-utils.js +1 -1
- package/build/services/iam/bots.js +6 -12
- package/build/services/iam/context.d.ts +1 -1
- package/build/services/iam/context.js +5 -5
- package/build/services/iam/credentials.js +1 -1
- package/build/services/iam/ephemeral.js +8 -15
- package/build/services/iam/principal.js +3 -10
- package/build/services/iam/resolve.js +1 -1
- package/build/services/iam/sql.d.ts +10 -0
- package/build/services/iam/sql.js +42 -0
- package/build/services/insight/index.d.ts +12 -0
- package/build/services/insight/index.js +34 -6
- package/build/services/interceptor/activities/escalation.js +1 -1
- package/build/services/interceptor/activities/task.js +9 -6
- package/build/services/interceptor/activities/workflow.js +4 -5
- package/build/services/interceptor/activity-interceptor.d.ts +1 -1
- package/build/services/interceptor/activity-interceptor.js +5 -5
- package/build/services/interceptor/completion.js +1 -1
- package/build/services/interceptor/escalation.js +1 -1
- package/build/services/interceptor/index.js +4 -4
- package/build/services/interceptor/lifecycle.js +1 -1
- package/build/services/maintenance/index.js +4 -5
- package/build/services/mcp/adapter.js +1 -16
- package/build/services/mcp/client/connection.d.ts +10 -1
- package/build/services/mcp/client/connection.js +51 -3
- package/build/services/mcp/client/tools.js +1 -1
- package/build/services/mcp/db-server/index.js +1 -1
- package/build/services/mcp/db-server/schemas.d.ts +2 -2
- package/build/services/mcp/db-server/tools.js +17 -4
- package/build/services/mcp/db.d.ts +1 -1
- package/build/services/mcp/db.js +11 -1
- package/build/services/mcp/playwright-server/index.js +1 -1
- package/build/services/mcp/playwright-server/lifecycle.js +1 -1
- package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
- package/build/services/mcp/playwright-server/tools.js +1 -1
- package/build/services/mcp/server.js +1 -1
- package/build/services/mcp/sql.d.ts +7 -1
- package/build/services/mcp/sql.js +36 -3
- package/build/services/mcp/types.d.ts +3 -1
- package/build/services/mcp/workflow-compiler-server.js +1 -1
- package/build/services/mcp/workflow-server.js +1 -1
- package/build/services/mcp-runs/execution-builder.js +8 -6
- package/build/services/mcp-runs/queries.js +2 -2
- package/build/services/mcp-runs/sql.d.ts +4 -1
- package/build/services/mcp-runs/sql.js +23 -2
- package/build/services/namespace/index.js +1 -1
- package/build/services/oauth/db.js +9 -37
- package/build/services/oauth/index.js +1 -1
- package/build/services/oauth/providers/registry.js +1 -1
- package/build/services/oauth/sql.d.ts +7 -0
- package/build/services/oauth/sql.js +32 -0
- package/build/services/orchestrator/index.js +3 -3
- package/build/services/role/index.js +1 -1
- package/build/services/task/crud.js +1 -1
- package/build/services/task/process.js +1 -1
- package/build/services/task/resolve.js +1 -1
- package/build/services/user/auth.js +1 -1
- package/build/services/user/crud.js +1 -1
- package/build/services/user/rbac.js +1 -1
- package/build/services/user/roles.js +1 -1
- package/build/services/user/sql.d.ts +2 -0
- package/build/services/user/sql.js +3 -1
- package/build/services/yaml-workflow/db-utils.js +1 -1
- package/build/services/yaml-workflow/db.d.ts +3 -0
- package/build/services/yaml-workflow/db.js +25 -1
- package/build/services/yaml-workflow/deployer-helpers.js +1 -1
- package/build/services/yaml-workflow/deployer.js +4 -4
- package/build/services/yaml-workflow/generator.js +1 -1
- package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
- package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
- package/build/services/yaml-workflow/input-analyzer.js +16 -3
- package/build/services/yaml-workflow/invoke.d.ts +19 -0
- package/build/services/yaml-workflow/invoke.js +80 -0
- package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
- package/build/services/yaml-workflow/pipeline/build/dag.js +11 -6
- package/build/services/yaml-workflow/pipeline/build/wiring.d.ts +1 -1
- package/build/services/yaml-workflow/pipeline/build/wiring.js +89 -2
- package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
- package/build/services/yaml-workflow/pipeline/extract.js +5 -3
- package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
- package/build/services/yaml-workflow/pipeline/index.js +22 -0
- package/build/services/yaml-workflow/pipeline/prompts.d.ts +1 -1
- package/build/services/yaml-workflow/pipeline/prompts.js +44 -1
- package/build/services/yaml-workflow/pipeline/validate.js +2 -2
- package/build/services/yaml-workflow/sql.d.ts +3 -0
- package/build/services/yaml-workflow/sql.js +16 -1
- package/build/services/yaml-workflow/types.d.ts +13 -1
- package/build/services/yaml-workflow/workers/callbacks.js +10 -2
- package/build/services/yaml-workflow/workers/events.js +2 -2
- package/build/services/yaml-workflow/workers/register.js +37 -9
- package/build/start/adapters.js +7 -7
- package/build/start/index.js +4 -4
- package/build/start/server.js +1 -1
- package/build/start/workers.d.ts +1 -2
- package/build/start/workers.js +8 -7
- package/build/system/activities/claude-code.js +1 -1
- package/build/system/activities/file-storage.js +1 -1
- package/build/system/activities/knowledge.d.ts +58 -0
- package/build/system/activities/knowledge.js +128 -0
- package/build/system/activities/sql.d.ts +9 -0
- package/build/system/activities/sql.js +41 -0
- package/build/system/activities/triage/context.js +1 -1
- package/build/system/activities/triage/discovery.d.ts +2 -14
- package/build/system/activities/triage/discovery.js +5 -161
- package/build/system/activities/triage/llm.d.ts +1 -8
- package/build/system/activities/triage/llm.js +2 -28
- package/build/system/activities/triage/tools.d.ts +1 -17
- package/build/system/activities/triage/tools.js +8 -167
- package/build/system/index.js +11 -4
- package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
- package/build/system/mcp-servers/admin/escalations.js +149 -0
- package/build/system/mcp-servers/admin/index.d.ts +31 -0
- package/build/system/mcp-servers/admin/index.js +80 -0
- package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
- package/build/system/mcp-servers/admin/maintenance.js +58 -0
- package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
- package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
- package/build/system/mcp-servers/admin/schemas.js +177 -0
- package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
- package/build/system/mcp-servers/admin/tasks.js +112 -0
- package/build/system/mcp-servers/admin/users.d.ts +5 -0
- package/build/system/mcp-servers/admin/users.js +167 -0
- package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
- package/build/system/mcp-servers/admin/workflow-config.js +118 -0
- package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
- package/build/system/mcp-servers/admin/workflows.js +138 -0
- package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
- package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
- package/build/system/mcp-servers/claude-code.js +1 -1
- package/build/system/mcp-servers/db-query/index.js +1 -1
- package/build/system/mcp-servers/db-query/schemas.d.ts +2 -2
- package/build/system/mcp-servers/db-query/tools.js +17 -4
- package/build/system/mcp-servers/docs.d.ts +5 -0
- package/build/system/mcp-servers/docs.js +147 -0
- package/build/system/mcp-servers/file-storage.js +1 -1
- package/build/system/mcp-servers/http-fetch.js +1 -1
- package/build/system/mcp-servers/human-queue.js +1 -1
- package/build/system/mcp-servers/knowledge.d.ts +4 -0
- package/build/system/mcp-servers/knowledge.js +137 -0
- package/build/system/mcp-servers/oauth.js +1 -1
- package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
- package/build/system/mcp-servers/playwright/index.js +1 -1
- package/build/system/mcp-servers/playwright/schemas.d.ts +21 -10
- package/build/system/mcp-servers/playwright/schemas.js +3 -0
- package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
- package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
- package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
- package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
- package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
- package/build/system/mcp-servers/playwright-cli/index.js +1 -1
- package/build/system/mcp-servers/playwright-cli/schemas.d.ts +10 -10
- package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
- package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
- package/build/system/mcp-servers/playwright-cli/tools-capture.js +9 -3
- package/build/system/mcp-servers/translation.d.ts +14 -0
- package/build/system/mcp-servers/translation.js +130 -0
- package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
- package/build/system/mcp-servers/vision-prompts.js +9 -0
- package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
- package/build/system/mcp-servers/vision.js +258 -0
- package/build/system/mcp-servers/workflow-compiler.js +1 -1
- package/build/system/mcp-servers/workflow.js +1 -1
- package/build/system/seed/index.js +13 -2
- package/build/system/seed/server-definitions.d.ts +1961 -322
- package/build/system/seed/server-definitions.js +68 -34
- package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
- package/build/system/seed/tool-manifests-admin.js +45 -0
- package/build/system/seed/tool-manifests-browser.d.ts +1 -1
- package/build/system/seed/tool-manifests-browser.js +3 -3
- package/build/system/seed/tool-manifests-data.d.ts +62 -21
- package/build/system/seed/tool-manifests-data.js +55 -17
- package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
- package/build/system/seed/tool-manifests-knowledge.js +94 -0
- package/build/system/seed/tool-manifests-workflows.d.ts +7 -0
- package/build/system/seed/tool-manifests-workflows.js +10 -3
- package/build/system/workflows/mcp-deterministic/index.js +1 -1
- package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
- package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
- package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
- package/build/system/workflows/mcp-query/activities/llm.js +2 -27
- package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
- package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
- package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
- package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
- package/build/system/workflows/mcp-query/index.js +55 -5
- package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
- package/build/system/workflows/mcp-query/prompts.js +5 -32
- package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
- package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
- package/build/system/workflows/mcp-query/types.d.ts +2 -10
- package/build/system/workflows/mcp-query/types.js +0 -1
- package/build/system/workflows/mcp-query-router/index.js +1 -1
- package/build/system/workflows/mcp-triage/index.d.ts +2 -2
- package/build/system/workflows/mcp-triage/index.js +39 -7
- package/build/system/workflows/mcp-triage/prompts.js +7 -14
- package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
- package/build/system/workflows/mcp-triage-router/index.js +1 -1
- package/build/system/workflows/mcp-workflow-builder/activities/caches.d.ts +5 -0
- package/build/system/workflows/mcp-workflow-builder/activities/caches.js +8 -0
- package/build/system/workflows/mcp-workflow-builder/activities/index.d.ts +2 -0
- package/build/system/workflows/mcp-workflow-builder/activities/index.js +7 -0
- package/build/system/workflows/mcp-workflow-builder/activities/llm.d.ts +2 -0
- package/build/system/workflows/mcp-workflow-builder/activities/llm.js +25 -0
- package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.d.ts +5 -0
- package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.js +8 -0
- package/build/system/workflows/mcp-workflow-builder/index.d.ts +16 -0
- package/build/system/workflows/mcp-workflow-builder/index.js +229 -0
- package/build/system/workflows/mcp-workflow-builder/prompts.d.ts +8 -0
- package/build/system/workflows/mcp-workflow-builder/prompts.js +247 -0
- package/build/system/workflows/shared/discovery.d.ts +35 -0
- package/build/system/workflows/shared/discovery.js +175 -0
- package/build/system/workflows/shared/index.d.ts +7 -0
- package/build/system/workflows/shared/index.js +18 -0
- package/build/system/workflows/shared/llm-caller.d.ts +8 -0
- package/build/system/workflows/shared/llm-caller.js +31 -0
- package/build/system/workflows/shared/prompts.d.ts +2 -0
- package/build/system/workflows/shared/prompts.js +32 -0
- package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
- package/build/system/workflows/shared/strategy-advisors.js +109 -0
- package/build/system/workflows/shared/tool-executor.d.ts +11 -0
- package/build/system/workflows/shared/tool-executor.js +111 -0
- package/build/system/workflows/shared/tool-loader.d.ts +19 -0
- package/build/system/workflows/shared/tool-loader.js +97 -0
- package/build/system/workflows/shared/types.d.ts +9 -0
- package/build/system/workflows/shared/types.js +2 -0
- package/build/system/workflows/tool-result-guard.d.ts +14 -0
- package/build/system/workflows/tool-result-guard.js +78 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/mcp.d.ts +4 -3
- package/build/types/user.d.ts +2 -0
- package/build/types/yaml-workflow.d.ts +6 -2
- package/build/vitest.config.d.ts +1 -1
- package/build/vitest.integration.config.d.ts +1 -1
- package/build/workers/index.js +2 -8
- package/dashboard/dist/assets/AdminDashboard-BXkKGkb5.js +2 -0
- package/dashboard/dist/assets/AdminDashboard-BXkKGkb5.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DcH592mc.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DcH592mc.js.map +1 -0
- package/dashboard/dist/assets/BotPicker-A6LtzyuO.js +2 -0
- package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-A6LtzyuO.js.map} +1 -1
- package/dashboard/dist/assets/CollapsibleSection-C7nL2_mv.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-C7nL2_mv.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-CWFwJrSl.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CWFwJrSl.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-DbZ5c3jh.js +2 -0
- package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-DbZ5c3jh.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-ClWkmLPu.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-ClWkmLPu.js.map +1 -0
- package/dashboard/dist/assets/CustomDurationPicker-CtH2hReF.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-CtH2hReF.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-CM5ZcpPi.js +2 -0
- package/dashboard/dist/assets/DataTable-CM5ZcpPi.js.map +1 -0
- package/dashboard/dist/assets/ElapsedCell-CwqavyeC.js +2 -0
- package/dashboard/dist/assets/ElapsedCell-CwqavyeC.js.map +1 -0
- package/dashboard/dist/assets/EmptyState-BBn78pmm.js +2 -0
- package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BBn78pmm.js.map} +1 -1
- package/dashboard/dist/assets/EscalationsOverview-BcJ2E3X7.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-BcJ2E3X7.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-C1en_KZ0.js +2 -0
- package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-C1en_KZ0.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-CZTlrLQT.js +2 -0
- package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CZTlrLQT.js.map} +1 -1
- package/dashboard/dist/assets/ListToolbar-Cdbsapig.js +2 -0
- package/dashboard/dist/assets/ListToolbar-Cdbsapig.js.map +1 -0
- package/dashboard/dist/assets/McpOverview-CSpEJxKa.js +2 -0
- package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CSpEJxKa.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-9xdxgG4d.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-9xdxgG4d.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-wWLqHsd4.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-wWLqHsd4.js.map +1 -0
- package/dashboard/dist/assets/Modal-kB_P7ZOr.js +2 -0
- package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-kB_P7ZOr.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js.map +1 -0
- package/dashboard/dist/assets/PageHeader-NkOeBR05.js +2 -0
- package/dashboard/dist/assets/PageHeader-NkOeBR05.js.map +1 -0
- package/dashboard/dist/assets/PageHeaderWithStats-ywNhrmFK.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-ywNhrmFK.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-B2MQbSxy.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-B2MQbSxy.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-B7z7IdqE.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-B7z7IdqE.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-C-uHadO6.js +2 -0
- package/dashboard/dist/assets/ProcessesListPage-C-uHadO6.js.map +1 -0
- package/dashboard/dist/assets/RolePill-C1dgC-fK.js +2 -0
- package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-C1dgC-fK.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-BSxrD1vm.js +2 -0
- package/dashboard/dist/assets/RolesPage-BSxrD1vm.js.map +1 -0
- package/dashboard/dist/assets/RowActions-lYaHGI-v.js +2 -0
- package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-lYaHGI-v.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js +2 -0
- package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js.map +1 -0
- package/dashboard/dist/assets/StatCard-v2TiITVr.js +2 -0
- package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-v2TiITVr.js.map} +1 -1
- package/dashboard/dist/assets/StatusBadge-DWlxevgG.js +2 -0
- package/dashboard/dist/assets/StatusBadge-DWlxevgG.js.map +1 -0
- package/dashboard/dist/assets/StepIndicator-CRM4ft28.js +2 -0
- package/dashboard/dist/assets/StepIndicator-CRM4ft28.js.map +1 -0
- package/dashboard/dist/assets/StickyPagination-CF0EToEU.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CF0EToEU.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-CNlj7fgg.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-CNlj7fgg.js.map +1 -0
- package/dashboard/dist/assets/TagInput-CH8qMGhC.js +2 -0
- package/dashboard/dist/assets/TagInput-CH8qMGhC.js.map +1 -0
- package/dashboard/dist/assets/TaskDetailPage-CdWo-6mu.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-CdWo-6mu.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-BPj4ogVG.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BPj4ogVG.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-CtRkMpKU.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-CtRkMpKU.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-Di1a3X5P.js +2 -0
- package/dashboard/dist/assets/TimeAgo-Di1a3X5P.js.map +1 -0
- package/dashboard/dist/assets/TimestampCell-CqrXql-S.js +2 -0
- package/dashboard/dist/assets/TimestampCell-CqrXql-S.js.map +1 -0
- package/dashboard/dist/assets/UserName-BUFYCnRa.js +2 -0
- package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-BUFYCnRa.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-25iusMml.js +2 -0
- package/dashboard/dist/assets/WorkflowExecutionPage-25iusMml.js.map +1 -0
- package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-BgxslssH.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-BgxslssH.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-Doe5L-Re.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-Doe5L-Re.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js.map +1 -0
- package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-Bi2_O1Ts.js} +2 -2
- package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-Bi2_O1Ts.js.map} +1 -1
- package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
- package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
- package/dashboard/dist/assets/escalation-Ck1KlLkT.js +2 -0
- package/dashboard/dist/assets/escalation-Ck1KlLkT.js.map +1 -0
- package/dashboard/dist/assets/escalation-columns-ohDsj2eJ.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-ohDsj2eJ.js.map} +1 -1
- package/dashboard/dist/assets/helpers-BoD2SgUY.js +2 -0
- package/dashboard/dist/assets/helpers-BoD2SgUY.js.map +1 -0
- package/dashboard/dist/assets/index-BEtLIsML.js +2 -0
- package/dashboard/dist/assets/index-BEtLIsML.js.map +1 -0
- package/dashboard/dist/assets/index-Bn2xHDr8.js +5 -0
- package/dashboard/dist/assets/index-Bn2xHDr8.js.map +1 -0
- package/dashboard/dist/assets/index-BpT-6WgJ.js +2 -0
- package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BpT-6WgJ.js.map} +1 -1
- package/dashboard/dist/assets/index-CZrJ09p-.js +2 -0
- package/dashboard/dist/assets/index-CZrJ09p-.js.map +1 -0
- package/dashboard/dist/assets/index-D3NyVADW.js +2 -0
- package/dashboard/dist/assets/index-D3NyVADW.js.map +1 -0
- package/dashboard/dist/assets/index-D7zYZOnH.js +2 -0
- package/dashboard/dist/assets/index-D7zYZOnH.js.map +1 -0
- package/dashboard/dist/assets/index-DOkHXmyf.js +17 -0
- package/dashboard/dist/assets/index-DOkHXmyf.js.map +1 -0
- package/dashboard/dist/assets/index-DYyLF-Qb.js +281 -0
- package/dashboard/dist/assets/index-DYyLF-Qb.js.map +1 -0
- package/dashboard/dist/assets/index-Dk2Q51o0.js +2 -0
- package/dashboard/dist/assets/index-Dk2Q51o0.js.map +1 -0
- package/dashboard/dist/assets/index-FuohTtaM.js +6 -0
- package/dashboard/dist/assets/index-FuohTtaM.js.map +1 -0
- package/dashboard/dist/assets/index-PyCTS05D.css +1 -0
- package/dashboard/dist/assets/mcp-CJtYjA7A.js +2 -0
- package/dashboard/dist/assets/mcp-CJtYjA7A.js.map +1 -0
- package/dashboard/dist/assets/mcp-query-jQJQrs_7.js +2 -0
- package/dashboard/dist/assets/mcp-query-jQJQrs_7.js.map +1 -0
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DUWm9Z4V.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DUWm9Z4V.js.map} +1 -1
- package/dashboard/dist/assets/namespaces-BM5P2qmL.js +2 -0
- package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-BM5P2qmL.js.map} +1 -1
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-lv0shpjJ.js} +2 -2
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-lv0shpjJ.js.map} +1 -1
- package/dashboard/dist/assets/settings-Wlq92mRo.js +2 -0
- package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-Wlq92mRo.js.map} +1 -1
- package/dashboard/dist/assets/tasks-BFGm4PuE.js +2 -0
- package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-BFGm4PuE.js.map} +1 -1
- package/dashboard/dist/assets/useEventHooks-DIE6ue4x.js +2 -0
- package/dashboard/dist/assets/useEventHooks-DIE6ue4x.js.map +1 -0
- package/dashboard/dist/assets/useExpandedRows-Cg9iq6Vy.js +2 -0
- package/dashboard/dist/assets/useExpandedRows-Cg9iq6Vy.js.map +1 -0
- package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-DCwSO73t.js} +2 -2
- package/dashboard/dist/assets/useYamlActivityEvents-DCwSO73t.js.map +1 -0
- package/dashboard/dist/assets/{users-tMvNyOo8.js → users-tA5-K0wA.js} +2 -2
- package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-tA5-K0wA.js.map} +1 -1
- package/dashboard/dist/assets/vendor-icons-BiIug1SK.js +402 -0
- package/dashboard/dist/assets/vendor-icons-BiIug1SK.js.map +1 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-CfLc15Wr.js} +2 -2
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-CfLc15Wr.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js.map +1 -0
- package/dashboard/dist/index.html +5 -5
- package/docs/api/dba.md +81 -0
- package/docs/api/escalations.md +575 -0
- package/docs/api/exports.md +170 -0
- package/docs/api/maintenance.md +93 -0
- package/docs/api/mcp-runs.md +128 -0
- package/docs/api/mcp-servers.md +253 -0
- package/docs/api/namespaces.md +48 -0
- package/docs/api/roles.md +390 -0
- package/docs/api/service-accounts.md +188 -0
- package/docs/api/settings.md +33 -0
- package/docs/api/tasks.md +167 -0
- package/docs/api/users.md +180 -0
- package/docs/api/workflows.md +616 -0
- package/docs/api/yaml-workflows.md +312 -0
- package/docs/architecture.md +221 -0
- package/docs/auth.md +181 -0
- package/docs/cloud.md +272 -0
- package/docs/compilation.md +136 -0
- package/docs/contributing.md +56 -0
- package/docs/dashboard.md +145 -0
- package/docs/data.md +478 -0
- package/docs/escalation-strategies.md +263 -0
- package/docs/events.md +251 -0
- package/docs/iam.md +222 -0
- package/docs/img/01-login.png +0 -0
- package/docs/img/02-dashboard-home.png +0 -0
- package/docs/img/03-processes-list.png +0 -0
- package/docs/img/04-escalations-list.png +0 -0
- package/docs/img/05-mcp-servers.png +0 -0
- package/docs/img/06-mcp-pipelines.png +0 -0
- package/docs/img/07-workflows-list.png +0 -0
- package/docs/img/compilation/01-query-submit.png +0 -0
- package/docs/img/compilation/02-mcp-servers.png +0 -0
- package/docs/img/compilation/03-query-completed.png +0 -0
- package/docs/img/compilation/04-wizard-original.png +0 -0
- package/docs/img/compilation/05-wizard-timeline.png +0 -0
- package/docs/img/compilation/06-wizard-profile.png +0 -0
- package/docs/img/compilation/07-wizard-deploy.png +0 -0
- package/docs/img/compilation/08-wizard-test-modal.png +0 -0
- package/docs/img/compilation/09-wizard-test-compare.png +0 -0
- package/docs/img/compilation/10-wizard-verify.png +0 -0
- package/docs/logging.md +110 -0
- package/docs/maintenance.md +221 -0
- package/docs/mcp.md +985 -0
- package/docs/oauth-and-delegation.md +469 -0
- package/docs/telemetry.md +144 -0
- package/docs/workflows.md +695 -0
- package/package.json +8 -9
- package/build/services/db/index.d.ts +0 -3
- package/build/services/mcp/vision-server.d.ts +0 -15
- package/build/services/mcp/vision-server.js +0 -214
- package/build/system/mcp-servers/document-vision.js +0 -228
- package/build/system/mcp-servers/prompts.d.ts +0 -4
- package/build/system/mcp-servers/prompts.js +0 -10
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
- package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
- package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
- package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js.map +0 -1
- package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
- package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
- package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
- package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
- package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
- package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
- package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
- package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
- package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
- package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
- package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
- package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
- package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
- package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
- package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
- package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
- package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
- package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
- package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
- package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
- package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
- package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
- package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
- package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
- package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
- package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
- package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
- package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
- package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
- package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
- package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
- package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
- package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
- package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
- package/dashboard/dist/assets/index-X85K5bHC.js.map +0 -1
- package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
- package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
- package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
- package/dashboard/dist/assets/mcp-blCW6IL7.js.map +0 -1
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
- package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
- package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
- package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
- package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js +0 -2
- package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js.map +0 -1
- package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js +0 -292
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
- package/services/db/README.md +0 -8
- /package/build/{services → lib}/db/migrate.d.ts +0 -0
- /package/{services → build/lib}/db/schemas/002_seed.sql +0 -0
- /package/{services → build/lib}/db/schemas/003_workflow_discovery.sql +0 -0
- /package/{services → build/lib}/db/schemas/004_query_router.sql +0 -0
- /package/{services → build/lib}/db/schemas/005_triage_router.sql +0 -0
- /package/{services → build/lib}/db/schemas/006_oauth.sql +0 -0
- /package/{services → build/lib}/db/schemas/007_security.sql +0 -0
- /package/{services → build/lib}/db/schemas/008_bot_accounts.sql +0 -0
- /package/{services → build/lib}/db/schemas/009_audit_trail.sql +0 -0
- /package/{services → build/lib}/db/schemas/010_credential_providers.sql +0 -0
- /package/{services → build/lib}/db/schemas/012_drop_modality.sql +0 -0
- /package/{services → build/lib}/db/schemas/013_execute_as.sql +0 -0
- /package/{services → build/lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
- /package/build/{services → lib}/events/index.d.ts +0 -0
- /package/build/{services → lib}/events/index.js +0 -0
- /package/build/{services → lib}/events/memory.d.ts +0 -0
- /package/build/{services → lib}/events/memory.js +0 -0
- /package/build/{services → lib}/events/nats.d.ts +0 -0
- /package/build/{services → lib}/events/nats.js +0 -0
- /package/build/{services → lib}/events/publish.d.ts +0 -0
- /package/build/{services → lib}/events/publish.js +0 -0
- /package/build/{services → lib}/events/socketio.d.ts +0 -0
- /package/build/{services → lib}/events/socketio.js +0 -0
- /package/build/{services → lib}/logger/index.d.ts +0 -0
- /package/build/{services → lib}/logger/index.js +0 -0
- /package/build/{services → lib}/logger/pino.d.ts +0 -0
- /package/build/{services → lib}/logger/pino.js +0 -0
- /package/build/{services → lib}/storage/index.d.ts +0 -0
- /package/build/{services → lib}/storage/index.js +0 -0
- /package/build/{services → lib}/storage/local.d.ts +0 -0
- /package/build/{services → lib}/storage/local.js +0 -0
- /package/build/{services → lib}/storage/s3.d.ts +0 -0
- /package/build/{services → lib}/storage/s3.js +0 -0
- /package/build/{services → lib}/storage/types.d.ts +0 -0
- /package/build/{services → lib}/storage/types.js +0 -0
- /package/build/{services → lib}/telemetry/index.d.ts +0 -0
- /package/build/{services → lib}/telemetry/index.js +0 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.mcpWorkflowBuilder = mcpWorkflowBuilder;
|
|
37
|
+
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
38
|
+
const activities = __importStar(require("./activities"));
|
|
39
|
+
const prompts_1 = require("./prompts");
|
|
40
|
+
const { loadBuilderTools, callBuilderLLM, } = hotmesh_1.Durable.workflow.proxyActivities({
|
|
41
|
+
activities,
|
|
42
|
+
retry: {
|
|
43
|
+
maximumAttempts: 3,
|
|
44
|
+
backoffCoefficient: 2,
|
|
45
|
+
maximumInterval: '10 seconds',
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const MAX_BUILD_ATTEMPTS = 3;
|
|
49
|
+
const MAX_CLARIFICATION_ROUNDS = 3;
|
|
50
|
+
/**
|
|
51
|
+
* Fix known @pipe anti-patterns in generated YAML.
|
|
52
|
+
*
|
|
53
|
+
* LLMs consistently produce two broken patterns:
|
|
54
|
+
* 1. ['{@date.toISOString}'] then [0, 10] then ['{@string.substring}']
|
|
55
|
+
* → should be ['{@date.toISOString}', 0, 10] then ['{@string.substring}']
|
|
56
|
+
* 2. Bare static rows like ['.png'] after sub-pipes
|
|
57
|
+
* → should be wrapped in '@pipe': [['.png']]
|
|
58
|
+
*
|
|
59
|
+
* This runs deterministically on the YAML string before deployment.
|
|
60
|
+
*/
|
|
61
|
+
function fixPipePatterns(yaml) {
|
|
62
|
+
// Fix pattern 1: function row followed by bare args row followed by another function
|
|
63
|
+
// ['{@date.toISOString}'] → ['{@date.toISOString}', 0, 10]
|
|
64
|
+
// [0, 10] ['{@string.substring}']
|
|
65
|
+
// ['{@string.substring}']
|
|
66
|
+
yaml = yaml.replace(/(\['\{@date\.toISOString\}'\])\s*\n(\s*)- \[0, 10\]\s*\n(\s*)- \['\{@string\.substring\}'\]/g, "['{@date.toISOString}', 0, 10]\n$2- ['{@string.substring}']");
|
|
67
|
+
// Fix field name mismatches the LLM consistently gets wrong
|
|
68
|
+
// Vision: image_path → image (the tool parameter name)
|
|
69
|
+
yaml = yaml.replace(/(\s+)image_path: /g, '$1image: ');
|
|
70
|
+
// Knowledge: content: '{...}' → data: '{...}' (store_knowledge field)
|
|
71
|
+
yaml = yaml.replace(/(\s+)content: '(\{[^}]+\.output\.data\.[^}]+\})'/g, "$1data: '$2'");
|
|
72
|
+
// Vision output: .analysis} → .description} (analyze_image returns description)
|
|
73
|
+
yaml = yaml.replace(/\.analysis\}/g, '.description}');
|
|
74
|
+
return yaml;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* MCP Workflow Builder — constructs HotMesh YAML DAGs directly.
|
|
78
|
+
*
|
|
79
|
+
* Unlike mcpQuery (which executes tools then compiles traces), this workflow
|
|
80
|
+
* reasons about tool schemas and builds the YAML declaratively. The LLM
|
|
81
|
+
* knows HotMesh's activity types, mapping syntax, and @pipe operators.
|
|
82
|
+
*
|
|
83
|
+
* Supports conversational clarification: when the prompt is ambiguous,
|
|
84
|
+
* the LLM returns questions instead of YAML. The user answers, and the
|
|
85
|
+
* exchange continues until the LLM has enough to build.
|
|
86
|
+
*
|
|
87
|
+
* Returns the generated YAML, input schema, and activity manifest —
|
|
88
|
+
* ready for deployment via the existing yaml-workflow infrastructure.
|
|
89
|
+
*/
|
|
90
|
+
async function mcpWorkflowBuilder(envelope) {
|
|
91
|
+
const prompt = (envelope.data?.prompt || envelope.data?.question);
|
|
92
|
+
const tags = envelope.data?.tags;
|
|
93
|
+
const feedback = envelope.data?.feedback;
|
|
94
|
+
const priorYaml = envelope.data?.prior_yaml;
|
|
95
|
+
const answers = envelope.data?.answers;
|
|
96
|
+
const priorQuestions = envelope.data?.prior_questions;
|
|
97
|
+
if (!prompt) {
|
|
98
|
+
return {
|
|
99
|
+
type: 'return',
|
|
100
|
+
data: {
|
|
101
|
+
title: 'No prompt provided',
|
|
102
|
+
summary: 'Describe the workflow you want to build.',
|
|
103
|
+
result: null,
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// 1. Discover available MCP tools
|
|
108
|
+
const raw = await loadBuilderTools(tags);
|
|
109
|
+
// 2. Build system prompt with HotMesh spec + tool inventory
|
|
110
|
+
const serverSection = [
|
|
111
|
+
raw.strategy ? `${raw.strategy}\n` : '',
|
|
112
|
+
`## Available MCP Servers & Tools\n\n${raw.inventory}`,
|
|
113
|
+
].filter(Boolean).join('\n');
|
|
114
|
+
const messages = [
|
|
115
|
+
{
|
|
116
|
+
role: 'system',
|
|
117
|
+
content: (0, prompts_1.BUILDER_SYSTEM_PROMPT)(serverSection),
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
// If refining a prior attempt, inject context
|
|
121
|
+
if (feedback && priorYaml) {
|
|
122
|
+
messages.push({
|
|
123
|
+
role: 'user',
|
|
124
|
+
content: `Build a workflow for: ${prompt}`,
|
|
125
|
+
});
|
|
126
|
+
messages.push({
|
|
127
|
+
role: 'assistant',
|
|
128
|
+
content: `Here is the prior YAML that needs fixing:\n\`\`\`yaml\n${priorYaml.slice(0, 3000)}\n\`\`\``,
|
|
129
|
+
});
|
|
130
|
+
messages.push({
|
|
131
|
+
role: 'user',
|
|
132
|
+
content: `${prompts_1.REFINE_PROMPT}\n\nExecution feedback:\n${feedback}`,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else if (answers && priorQuestions?.length) {
|
|
136
|
+
// Continuing a clarification conversation
|
|
137
|
+
messages.push({
|
|
138
|
+
role: 'user',
|
|
139
|
+
content: `Build a workflow for: ${prompt}`,
|
|
140
|
+
});
|
|
141
|
+
messages.push({
|
|
142
|
+
role: 'assistant',
|
|
143
|
+
content: JSON.stringify({ clarification_needed: true, questions: priorQuestions }),
|
|
144
|
+
});
|
|
145
|
+
messages.push({
|
|
146
|
+
role: 'user',
|
|
147
|
+
content: `Here are my answers:\n${answers}\n\nNow build the workflow YAML.`,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
messages.push({
|
|
152
|
+
role: 'user',
|
|
153
|
+
content: `Build a workflow for: ${prompt}`,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
// 3. Ask the LLM to construct the YAML (with retry on parse failure)
|
|
157
|
+
for (let attempt = 0; attempt < MAX_BUILD_ATTEMPTS; attempt++) {
|
|
158
|
+
const response = await callBuilderLLM(messages, undefined);
|
|
159
|
+
const content = response.content || '';
|
|
160
|
+
// Parse the JSON response
|
|
161
|
+
const cleaned = content
|
|
162
|
+
.replace(/^```(?:json)?\s*/m, '')
|
|
163
|
+
.replace(/\s*```$/m, '')
|
|
164
|
+
.trim();
|
|
165
|
+
try {
|
|
166
|
+
const result = JSON.parse(cleaned);
|
|
167
|
+
// Clarification response — LLM needs more info before building
|
|
168
|
+
if (result.clarification_needed && Array.isArray(result.questions)) {
|
|
169
|
+
return {
|
|
170
|
+
type: 'return',
|
|
171
|
+
data: {
|
|
172
|
+
title: 'Clarification Needed',
|
|
173
|
+
summary: 'The builder needs more information before constructing the workflow.',
|
|
174
|
+
clarification_needed: true,
|
|
175
|
+
questions: result.questions,
|
|
176
|
+
tools_identified: result.tools_identified || [],
|
|
177
|
+
},
|
|
178
|
+
milestones: [
|
|
179
|
+
{ name: 'workflow_builder', value: 'clarification' },
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
if (!result.yaml || !result.name) {
|
|
184
|
+
messages.push({ role: 'assistant', content });
|
|
185
|
+
messages.push({
|
|
186
|
+
role: 'user',
|
|
187
|
+
content: 'Response is missing required fields. Return a JSON object with: name, description, yaml, input_schema, activity_manifest, tags, sample_inputs. Or if you need more information, return { "clarification_needed": true, "questions": ["..."] }.',
|
|
188
|
+
});
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
// Fix known @pipe anti-patterns before returning
|
|
192
|
+
const fixedYaml = fixPipePatterns(result.yaml);
|
|
193
|
+
return {
|
|
194
|
+
type: 'return',
|
|
195
|
+
data: {
|
|
196
|
+
title: `Workflow: ${result.name}`,
|
|
197
|
+
summary: result.description || 'Workflow built successfully.',
|
|
198
|
+
name: result.name,
|
|
199
|
+
description: result.description,
|
|
200
|
+
yaml: fixedYaml,
|
|
201
|
+
input_schema: result.input_schema,
|
|
202
|
+
activity_manifest: result.activity_manifest,
|
|
203
|
+
tags: result.tags,
|
|
204
|
+
sample_inputs: result.sample_inputs,
|
|
205
|
+
build_attempts: attempt + 1,
|
|
206
|
+
},
|
|
207
|
+
milestones: [
|
|
208
|
+
{ name: 'workflow_builder', value: 'completed' },
|
|
209
|
+
{ name: 'build_attempts', value: String(attempt + 1) },
|
|
210
|
+
],
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
messages.push({ role: 'assistant', content });
|
|
215
|
+
messages.push({
|
|
216
|
+
role: 'user',
|
|
217
|
+
content: 'Invalid JSON. Return a single JSON object (no markdown fences) with: name, description, yaml, input_schema, activity_manifest, tags, sample_inputs.',
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
type: 'return',
|
|
223
|
+
data: {
|
|
224
|
+
title: 'Build Failed',
|
|
225
|
+
summary: 'Could not generate valid workflow YAML after multiple attempts.',
|
|
226
|
+
result: null,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Externalized prompts for the workflow builder.
|
|
3
|
+
*
|
|
4
|
+
* The system prompt teaches the LLM how to construct HotMesh YAML DAGs
|
|
5
|
+
* directly from tool schemas — no execution trace needed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function BUILDER_SYSTEM_PROMPT(toolInventory: string): string;
|
|
8
|
+
export declare const REFINE_PROMPT = "The workflow was tested and produced errors or incorrect results. Review the execution trace below and fix the YAML.\n\nCommon issues:\n- Missing .png extension on screenshot paths\n- Field name mismatch between output and input (e.g., producer outputs \"path\" but consumer expects \"image\")\n- Missing _scope or workflowName in input.maps\n- Wrong activity ID references in mappings\n- Missing job.maps on the final activity\n\nReturn the same JSON format as before with corrected yaml, activity_manifest, etc.";
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Externalized prompts for the workflow builder.
|
|
4
|
+
*
|
|
5
|
+
* The system prompt teaches the LLM how to construct HotMesh YAML DAGs
|
|
6
|
+
* directly from tool schemas — no execution trace needed.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.REFINE_PROMPT = void 0;
|
|
10
|
+
exports.BUILDER_SYSTEM_PROMPT = BUILDER_SYSTEM_PROMPT;
|
|
11
|
+
function BUILDER_SYSTEM_PROMPT(toolInventory) {
|
|
12
|
+
return `You are a HotMesh workflow builder. Given a natural language description and a set of available MCP tools, you construct a deterministic YAML DAG workflow.
|
|
13
|
+
|
|
14
|
+
You do NOT execute tools. You reason about their input/output schemas and build the YAML declaratively.
|
|
15
|
+
|
|
16
|
+
## HotMesh YAML Structure
|
|
17
|
+
|
|
18
|
+
A workflow is a YAML document with this shape:
|
|
19
|
+
|
|
20
|
+
\`\`\`yaml
|
|
21
|
+
app:
|
|
22
|
+
id: longtail
|
|
23
|
+
version: '1'
|
|
24
|
+
graphs:
|
|
25
|
+
- subscribes: <workflow-topic>
|
|
26
|
+
expire: 300
|
|
27
|
+
input:
|
|
28
|
+
schema:
|
|
29
|
+
type: object
|
|
30
|
+
properties:
|
|
31
|
+
<trigger inputs the user provides at runtime>
|
|
32
|
+
required: [<required input keys>]
|
|
33
|
+
output:
|
|
34
|
+
schema:
|
|
35
|
+
type: object
|
|
36
|
+
activities:
|
|
37
|
+
<activity definitions>
|
|
38
|
+
transitions:
|
|
39
|
+
<activity-id>:
|
|
40
|
+
- to: <next-activity-id>
|
|
41
|
+
\`\`\`
|
|
42
|
+
|
|
43
|
+
## Activity Types
|
|
44
|
+
|
|
45
|
+
### trigger
|
|
46
|
+
Entry point. Receives user input. Always the first activity.
|
|
47
|
+
\`\`\`yaml
|
|
48
|
+
my_trigger:
|
|
49
|
+
title: Trigger
|
|
50
|
+
type: trigger
|
|
51
|
+
output:
|
|
52
|
+
schema:
|
|
53
|
+
type: object
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
### worker
|
|
57
|
+
Executes an MCP tool. Receives data via input.maps, produces output.
|
|
58
|
+
\`\`\`yaml
|
|
59
|
+
my_worker:
|
|
60
|
+
title: Capture Page
|
|
61
|
+
type: worker
|
|
62
|
+
topic: <same as subscribes>
|
|
63
|
+
input:
|
|
64
|
+
schema:
|
|
65
|
+
type: object
|
|
66
|
+
maps:
|
|
67
|
+
url: '{my_trigger.output.data.url}'
|
|
68
|
+
screenshot_path:
|
|
69
|
+
'@pipe':
|
|
70
|
+
- ['{my_trigger.output.data.slug}', '.png']
|
|
71
|
+
- ['{@string.concat}']
|
|
72
|
+
workflowName: capture_page
|
|
73
|
+
output:
|
|
74
|
+
schema:
|
|
75
|
+
type: object
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
### hook
|
|
79
|
+
Durable pause point — used for human-in-the-loop signals and iteration anchors.
|
|
80
|
+
|
|
81
|
+
### cycle
|
|
82
|
+
Loop back to a hook ancestor for iteration patterns.
|
|
83
|
+
|
|
84
|
+
## Data Mapping Rules
|
|
85
|
+
|
|
86
|
+
### Simple reference (wire one activity's output to another's input):
|
|
87
|
+
\`\`\`yaml
|
|
88
|
+
field_name: '{sourceActivity.output.data.fieldName}'
|
|
89
|
+
\`\`\`
|
|
90
|
+
|
|
91
|
+
### @pipe (sequential transformation — array of arrays):
|
|
92
|
+
Each row's output becomes input to the next row's function.
|
|
93
|
+
\`\`\`yaml
|
|
94
|
+
field_name:
|
|
95
|
+
'@pipe':
|
|
96
|
+
- ['{source.output.data.value}', '-suffix']
|
|
97
|
+
- ['{@string.concat}']
|
|
98
|
+
- ['{@string.toLowerCase}']
|
|
99
|
+
\`\`\`
|
|
100
|
+
|
|
101
|
+
### Nested @pipe (fan-out/fan-in):
|
|
102
|
+
Sub-pipes must be ROW-LEVEL entries in the parent pipe array — each is a separate row, NOT an element inside another row's array. Sub-pipes resolve first, then their results become args to the final function row.
|
|
103
|
+
\`\`\`yaml
|
|
104
|
+
dated_key:
|
|
105
|
+
'@pipe':
|
|
106
|
+
- '@pipe':
|
|
107
|
+
- ['{my_trigger.output.data.slug}', '-']
|
|
108
|
+
- ['{@string.concat}']
|
|
109
|
+
- '@pipe':
|
|
110
|
+
- ['{@date.now}']
|
|
111
|
+
- ['{@date.toISOString}', 0, 10]
|
|
112
|
+
- ['{@string.substring}']
|
|
113
|
+
- ['{@string.concat}']
|
|
114
|
+
\`\`\`
|
|
115
|
+
This produces \`my-slug-2026-04-19\`. Row 1 sub-pipe: \`slug + "-"\`. Row 2 sub-pipe: today's date. Row 3: concat all results.
|
|
116
|
+
|
|
117
|
+
CRITICAL RULES for nested @pipe:
|
|
118
|
+
1. Never put a nested \`@pipe\` object INSIDE an array row. Each sub-pipe must be its own row in the parent.
|
|
119
|
+
2. Maximum nesting depth is 2 levels (parent @pipe containing sub-pipe rows). Never nest a @pipe inside a @pipe inside a @pipe.
|
|
120
|
+
3. For multi-part string building (e.g., domain/key/date.png), use a SINGLE flat @pipe with multiple sub-pipe rows — one per part — then a final \`['{@string.concat}']\` row. EVERY row must be either a sub-pipe object OR a function call array. Static values MUST be wrapped in a sub-pipe:
|
|
121
|
+
\`\`\`yaml
|
|
122
|
+
path:
|
|
123
|
+
'@pipe':
|
|
124
|
+
- '@pipe':
|
|
125
|
+
- ['{trigger.output.data.domain}', '/', '{trigger.output.data.key}', '/']
|
|
126
|
+
- ['{@string.concat}']
|
|
127
|
+
- '@pipe':
|
|
128
|
+
- ['{@date.now}']
|
|
129
|
+
- ['{@date.toISOString}', 0, 10]
|
|
130
|
+
- ['{@string.substring}']
|
|
131
|
+
- '@pipe':
|
|
132
|
+
- ['.png']
|
|
133
|
+
- ['{@string.concat}']
|
|
134
|
+
\`\`\`
|
|
135
|
+
This resolves: sub-pipe1 → "research/google/", sub-pipe2 → "2026-04-19", sub-pipe3 → ".png", then concat all → "research/google/2026-04-19.png".
|
|
136
|
+
|
|
137
|
+
IMPORTANT: A bare array like \`['.png']\` as a row after sub-pipes will CRASH — HotMesh interprets it as a function call. Always wrap static values in \`'@pipe': - [value]\`.
|
|
138
|
+
|
|
139
|
+
### Available @pipe operators (every JS method is exposed):
|
|
140
|
+
- **@string**: charAt, concat, includes, indexOf, replace, slice, split, startsWith, substring, toLowerCase, toUpperCase, trim
|
|
141
|
+
- **@date**: now, toISOString, toDateString, getFullYear, getMonth, getDate, getHours, getMinutes, getSeconds, fromISOString, parse (full JS Date API)
|
|
142
|
+
- **@math**: add, subtract, multiply, divide
|
|
143
|
+
- **@number**: gte, lte, gt, lt
|
|
144
|
+
- **@array**: get, length
|
|
145
|
+
- **@object**: get, keys, values
|
|
146
|
+
- **@conditional**: ternary, less_than, greater_than
|
|
147
|
+
- **@json**: parse, stringify
|
|
148
|
+
|
|
149
|
+
### Three mapping directions per activity:
|
|
150
|
+
- **input.maps**: Wire data INTO this activity from trigger or upstream activities
|
|
151
|
+
- **output.maps**: Transform this activity's own output before downstream consumption
|
|
152
|
+
- **job.maps**: Promote data to shared workflow state (use on LAST activity for workflow result)
|
|
153
|
+
|
|
154
|
+
## Construction Rules
|
|
155
|
+
|
|
156
|
+
1. **Trigger first**: Every workflow starts with a trigger activity
|
|
157
|
+
2. **Worker per tool**: Each MCP tool call is a worker activity
|
|
158
|
+
3. **workflowName**: Every worker MUST have \`workflowName: '<tool_name>'\` in its input.maps — this routes to the correct MCP tool handler
|
|
159
|
+
4. **_scope threading**: Every worker MUST have \`_scope: '{trigger.output.data._scope}'\` for IAM context
|
|
160
|
+
5. **Wire outputs forward**: Use \`{prevActivity.output.data.fieldName}\` to pass data between steps
|
|
161
|
+
6. **Use @pipe for transforms**: When a value needs runtime computation (date stamp, string concat, slugify), use @pipe — never hardcode computed values
|
|
162
|
+
7. **Simple fields stay simple**: If a field just passes a trigger value through (domain, key, url), use a plain reference like \`'{trigger.output.data.domain}'\` — NEVER wrap it in @pipe. Only use @pipe when actual transformation is needed.
|
|
163
|
+
8. **File extensions**: Screenshot paths MUST include .png extension. Use @pipe concat if deriving from a slug
|
|
164
|
+
8. **job.maps on last activity**: The final activity should have job.maps to promote output fields to the workflow result
|
|
165
|
+
9. **Linear transitions**: Chain activities with transitions unless iteration is needed
|
|
166
|
+
|
|
167
|
+
## Activity Manifest
|
|
168
|
+
|
|
169
|
+
Along with the YAML, produce an activity_manifest array describing each activity:
|
|
170
|
+
\`\`\`json
|
|
171
|
+
[
|
|
172
|
+
{
|
|
173
|
+
"activity_id": "my_trigger",
|
|
174
|
+
"title": "Trigger",
|
|
175
|
+
"type": "trigger",
|
|
176
|
+
"tool_source": "trigger",
|
|
177
|
+
"topic": "<workflow-topic>",
|
|
178
|
+
"input_mappings": {},
|
|
179
|
+
"output_fields": ["url", "slug"]
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"activity_id": "my_a1",
|
|
183
|
+
"title": "Capture Page",
|
|
184
|
+
"type": "worker",
|
|
185
|
+
"tool_source": "mcp",
|
|
186
|
+
"topic": "<workflow-topic>",
|
|
187
|
+
"workflow_name": "capture_page",
|
|
188
|
+
"mcp_server_id": "long-tail-playwright-cli",
|
|
189
|
+
"mcp_tool_name": "capture_page",
|
|
190
|
+
"tool_arguments": {},
|
|
191
|
+
"input_mappings": { "url": "{my_trigger.output.data.url}" },
|
|
192
|
+
"output_fields": ["page_id", "path", "url", "title"]
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
\`\`\`
|
|
196
|
+
|
|
197
|
+
## Clarification Protocol
|
|
198
|
+
|
|
199
|
+
If the user's description is ambiguous or missing critical details, ask clarifying questions BEFORE building. Return:
|
|
200
|
+
{
|
|
201
|
+
"clarification_needed": true,
|
|
202
|
+
"questions": [
|
|
203
|
+
"Which tools should capture the screenshot — capture_page (simple URL+screenshot) or login_and_capture (authenticated)?",
|
|
204
|
+
"What fields should the user provide at runtime? (e.g., URL, domain, key)",
|
|
205
|
+
"Should the analysis description be stored as-is or with additional metadata?"
|
|
206
|
+
],
|
|
207
|
+
"tools_identified": ["capture_page", "analyze_image", "store_knowledge"]
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
Ask for clarification when:
|
|
211
|
+
- The prompt doesn't specify which tools to use and multiple options exist
|
|
212
|
+
- Input/output expectations are unclear (what does the user provide vs what is derived?)
|
|
213
|
+
- The data flow between steps is ambiguous (e.g., should the screenshot path be user-provided or auto-derived?)
|
|
214
|
+
- File naming conventions aren't specified (date-stamped? slugified?)
|
|
215
|
+
|
|
216
|
+
Do NOT ask for clarification when:
|
|
217
|
+
- The prompt is specific enough to build (mentions tools, inputs, and expected behavior)
|
|
218
|
+
- The user has already answered prior questions (answers are provided)
|
|
219
|
+
- Only one reasonable tool choice exists for each step
|
|
220
|
+
|
|
221
|
+
When the user provides answers to your questions, build the workflow immediately.
|
|
222
|
+
|
|
223
|
+
## Output Format
|
|
224
|
+
|
|
225
|
+
Return a JSON object (no markdown fences):
|
|
226
|
+
{
|
|
227
|
+
"name": "kebab-case-workflow-name",
|
|
228
|
+
"description": "What this workflow does",
|
|
229
|
+
"yaml": "<the complete YAML string>",
|
|
230
|
+
"input_schema": { <JSON Schema for trigger inputs> },
|
|
231
|
+
"activity_manifest": [ <manifest entries> ],
|
|
232
|
+
"tags": ["relevant", "tags"],
|
|
233
|
+
"sample_inputs": { <example trigger values for testing> }
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
${toolInventory}`;
|
|
237
|
+
}
|
|
238
|
+
exports.REFINE_PROMPT = `The workflow was tested and produced errors or incorrect results. Review the execution trace below and fix the YAML.
|
|
239
|
+
|
|
240
|
+
Common issues:
|
|
241
|
+
- Missing .png extension on screenshot paths
|
|
242
|
+
- Field name mismatch between output and input (e.g., producer outputs "path" but consumer expects "image")
|
|
243
|
+
- Missing _scope or workflowName in input.maps
|
|
244
|
+
- Wrong activity ID references in mappings
|
|
245
|
+
- Missing job.maps on the final activity
|
|
246
|
+
|
|
247
|
+
Return the same JSON format as before with corrected yaml, activity_manifest, etc.`;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../../../services/llm';
|
|
2
|
+
import type { WorkflowCandidate } from '../../../types/discovery';
|
|
3
|
+
/**
|
|
4
|
+
* Ranked discovery of compiled YAML workflows via FTS + tag overlap.
|
|
5
|
+
*
|
|
6
|
+
* Callers pass their own module-level caches so each pipeline keeps
|
|
7
|
+
* isolated cache instances.
|
|
8
|
+
*/
|
|
9
|
+
export declare function findCompiledWorkflows(prompt: string, caches: {
|
|
10
|
+
yamlWorkflowMap: Map<string, string>;
|
|
11
|
+
toolDefCache: Map<string, ToolDefinition>;
|
|
12
|
+
}, logPrefix?: string): Promise<{
|
|
13
|
+
inventory: string;
|
|
14
|
+
toolIds: string[];
|
|
15
|
+
candidates: WorkflowCandidate[];
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* LLM-as-judge: does a compiled workflow match the user's intent?
|
|
19
|
+
* One cheap call (secondary model, ~200 tokens) to potentially skip
|
|
20
|
+
* the entire agentic loop.
|
|
21
|
+
*/
|
|
22
|
+
export declare function evaluateWorkflowMatch(prompt: string, candidates: WorkflowCandidate[], logPrefix?: string): Promise<{
|
|
23
|
+
matched: boolean;
|
|
24
|
+
workflowName: string | null;
|
|
25
|
+
confidence: number;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Extract structured inputs from the user's prompt using the matched
|
|
29
|
+
* workflow's input_schema. Acts as a second confirmation gate — if the
|
|
30
|
+
* LLM can't map the prompt to the schema, the match is rejected.
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractWorkflowInputs(prompt: string, inputSchema: Record<string, unknown>, workflowName: string): Promise<{
|
|
33
|
+
inputs: Record<string, any> | null;
|
|
34
|
+
extracted: boolean;
|
|
35
|
+
}>;
|