@hotmeshio/long-tail 0.1.4 → 0.1.5
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 +1 -1
- 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 +3 -3
- 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 +87 -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 +2 -1
- package/build/routes/mcp.js +3 -2
- 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/crud.js +1 -1
- package/build/routes/yaml-workflows/deployment.js +25 -0
- 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.js +4 -5
- 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 +1 -0
- package/build/services/insight/index.js +4 -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 +1 -1
- package/build/services/mcp/client/connection.js +2 -2
- 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/tools.js +17 -4
- package/build/services/mcp/db.js +1 -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 +6 -0
- package/build/services/mcp/sql.js +34 -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.js +1 -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/pipeline/analyze.js +1 -1
- package/build/services/yaml-workflow/pipeline/build/dag.js +10 -5
- 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/validate.js +2 -2
- package/build/services/yaml-workflow/workers/callbacks.js +1 -1
- package/build/services/yaml-workflow/workers/events.js +2 -2
- package/build/services/yaml-workflow/workers/register.js +8 -8
- 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 +5 -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/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 +19 -8
- 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 +28 -28
- 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 +4 -2
- 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 +221 -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 +1954 -322
- package/build/system/seed/server-definitions.js +65 -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/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/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 +94 -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/user.d.ts +2 -0
- 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-CTyAMUJR.js +2 -0
- package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js.map +1 -0
- package/dashboard/dist/assets/BotPicker-C51nKFEu.js +2 -0
- package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-C51nKFEu.js.map} +1 -1
- package/dashboard/dist/assets/CollapsibleSection-BSyfd8uL.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-BSyfd8uL.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-CBdhia5T.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CBdhia5T.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-dGlewBCS.js +2 -0
- package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-dGlewBCS.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-CoBNFSAu.js +2 -0
- package/dashboard/dist/assets/{CredentialsPage-Ikzsot0w.js.map → CredentialsPage-CoBNFSAu.js.map} +1 -1
- package/dashboard/dist/assets/CustomDurationPicker-BataWFj8.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-BataWFj8.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-B3uf5CCo.js +2 -0
- package/dashboard/dist/assets/DataTable-B3uf5CCo.js.map +1 -0
- package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js +2 -0
- package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js.map +1 -0
- package/dashboard/dist/assets/EmptyState-BChBJNGS.js +2 -0
- package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BChBJNGS.js.map} +1 -1
- package/dashboard/dist/assets/EscalationsOverview-CxUv8xjG.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-CxUv8xjG.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-CVt8B0BZ.js +2 -0
- package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-CVt8B0BZ.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-CShf0oe7.js +2 -0
- package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CShf0oe7.js.map} +1 -1
- package/dashboard/dist/assets/McpOverview-CbaZRnJl.js +2 -0
- package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CbaZRnJl.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js.map +1 -0
- package/dashboard/dist/assets/Modal-CI5RBPOQ.js +2 -0
- package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-CI5RBPOQ.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js.map +1 -0
- package/dashboard/dist/assets/PageHeader-SMD9qtOO.js +2 -0
- package/dashboard/dist/assets/PageHeader-SMD9qtOO.js.map +1 -0
- package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-CQ0EsLTA.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-CQ0EsLTA.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js +2 -0
- package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js.map +1 -0
- package/dashboard/dist/assets/RefreshButton-BcQDObrv.js +2 -0
- package/dashboard/dist/assets/RefreshButton-BcQDObrv.js.map +1 -0
- package/dashboard/dist/assets/RolePill-Crj4TH5p.js +2 -0
- package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-Crj4TH5p.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-C_RInUwS.js +2 -0
- package/dashboard/dist/assets/RolesPage-C_RInUwS.js.map +1 -0
- package/dashboard/dist/assets/RowActions-Cp5HyK_w.js +2 -0
- package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-Cp5HyK_w.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js +2 -0
- package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js.map +1 -0
- package/dashboard/dist/assets/StatCard-BKZLSgNV.js +2 -0
- package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-BKZLSgNV.js.map} +1 -1
- package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js +2 -0
- package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js.map +1 -0
- package/dashboard/dist/assets/StickyPagination-CTosgiU2.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CTosgiU2.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js.map +1 -0
- package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-BtJbZTT0.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BtJbZTT0.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-DtFLUEhg.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-DtFLUEhg.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js +2 -0
- package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js.map +1 -0
- package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js +2 -0
- package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js.map +1 -0
- package/dashboard/dist/assets/UserName-DU9qeg13.js +2 -0
- package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-DU9qeg13.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js +2 -0
- package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js.map +1 -0
- package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-CPuvA4t3.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-CPuvA4t3.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js.map +1 -0
- package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-BPiZXf2h.js} +2 -2
- package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-BPiZXf2h.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-DTY_OKRh.js +2 -0
- package/dashboard/dist/assets/escalation-DTY_OKRh.js.map +1 -0
- package/dashboard/dist/assets/escalation-columns-C91fHSkp.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-C91fHSkp.js.map} +1 -1
- package/dashboard/dist/assets/helpers-DBUZ9pnG.js +2 -0
- package/dashboard/dist/assets/helpers-DBUZ9pnG.js.map +1 -0
- package/dashboard/dist/assets/index-BOeA-gfK.js +17 -0
- package/dashboard/dist/assets/{index-X85K5bHC.js.map → index-BOeA-gfK.js.map} +1 -1
- package/dashboard/dist/assets/index-BZ6K_kmL.js +3 -0
- package/dashboard/dist/assets/index-BZ6K_kmL.js.map +1 -0
- package/dashboard/dist/assets/index-Bpm0yeoi.js +2 -0
- package/dashboard/dist/assets/index-Bpm0yeoi.js.map +1 -0
- package/dashboard/dist/assets/index-BtOwLI0K.js +2 -0
- package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BtOwLI0K.js.map} +1 -1
- package/dashboard/dist/assets/index-CBF3ZvRZ.js +6 -0
- package/dashboard/dist/assets/index-CBF3ZvRZ.js.map +1 -0
- package/dashboard/dist/assets/index-CDWOfCmi.js +2 -0
- package/dashboard/dist/assets/index-CDWOfCmi.js.map +1 -0
- package/dashboard/dist/assets/index-Ce6sL__n.js +2 -0
- package/dashboard/dist/assets/index-Ce6sL__n.js.map +1 -0
- package/dashboard/dist/assets/index-DSzSoku1.js +283 -0
- package/dashboard/dist/assets/index-DSzSoku1.js.map +1 -0
- package/dashboard/dist/assets/index-D_qEAYrg.js +2 -0
- package/dashboard/dist/assets/index-D_qEAYrg.js.map +1 -0
- package/dashboard/dist/assets/index-gCy9XX3W.css +1 -0
- package/dashboard/dist/assets/mcp-BzVpaaKF.js +2 -0
- package/dashboard/dist/assets/{mcp-blCW6IL7.js.map → mcp-BzVpaaKF.js.map} +1 -1
- package/dashboard/dist/assets/mcp-query-wTuxTTCV.js +2 -0
- package/dashboard/dist/assets/mcp-query-wTuxTTCV.js.map +1 -0
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DmXYJD19.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DmXYJD19.js.map} +1 -1
- package/dashboard/dist/assets/namespaces-DoGa7jc7.js +2 -0
- package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-DoGa7jc7.js.map} +1 -1
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-wCdQ2Z7k.js} +2 -2
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-wCdQ2Z7k.js.map} +1 -1
- package/dashboard/dist/assets/settings-DDe_L7JT.js +2 -0
- package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-DDe_L7JT.js.map} +1 -1
- package/dashboard/dist/assets/tasks-3Hih8Bt7.js +2 -0
- package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-3Hih8Bt7.js.map} +1 -1
- 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/{useNatsEvents-Xr43X1fG.js → useNatsEvents-DeGKHFTX.js} +2 -2
- package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js.map → useNatsEvents-DeGKHFTX.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-B5dHec6Y.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js.map → useYamlActivityEvents-B5dHec6Y.js.map} +1 -1
- package/dashboard/dist/assets/{users-tMvNyOo8.js → users-BTagPmGW.js} +2 -2
- package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-BTagPmGW.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-ZTAKVwGc.js → vendor-icons-DCLlGYO9.js} +112 -57
- package/dashboard/dist/assets/vendor-icons-DCLlGYO9.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-B20dR3NE.js} +2 -2
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-B20dR3NE.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-CaLPMQha.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 +195 -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 +264 -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 +715 -0
- package/docs/oauth-and-delegation.md +469 -0
- package/docs/telemetry.md +144 -0
- package/docs/workflows.md +695 -0
- package/lib/db/schemas/015_knowledge.sql +23 -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/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-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-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/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/build/{services → lib}/db/migrate.d.ts +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
- /package/{services → lib}/db/README.md +0 -0
- /package/{services → lib}/db/schemas/001_schema.sql +0 -0
- /package/{services → lib}/db/schemas/002_seed.sql +0 -0
- /package/{services → lib}/db/schemas/003_workflow_discovery.sql +0 -0
- /package/{services → lib}/db/schemas/004_query_router.sql +0 -0
- /package/{services → lib}/db/schemas/005_triage_router.sql +0 -0
- /package/{services → lib}/db/schemas/006_oauth.sql +0 -0
- /package/{services → lib}/db/schemas/007_security.sql +0 -0
- /package/{services → lib}/db/schemas/008_bot_accounts.sql +0 -0
- /package/{services → lib}/db/schemas/009_audit_trail.sql +0 -0
- /package/{services → lib}/db/schemas/010_credential_providers.sql +0 -0
- /package/{services → lib}/db/schemas/011_system_workflow_configs.sql +0 -0
- /package/{services → lib}/db/schemas/012_drop_modality.sql +0 -0
- /package/{services → lib}/db/schemas/013_execute_as.sql +0 -0
- /package/{services → lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
package/build/start/workers.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Client as Postgres } from 'pg';
|
|
2
1
|
import type { LTStartConfig } from '../types/startup';
|
|
3
2
|
type WorkerEntry = {
|
|
4
3
|
taskQueue: string;
|
|
@@ -8,7 +7,7 @@ type WorkerEntry = {
|
|
|
8
7
|
* Build the connection descriptor used by HotMesh / Durable.
|
|
9
8
|
*/
|
|
10
9
|
export declare function buildConnection(): {
|
|
11
|
-
class: typeof
|
|
10
|
+
class: typeof import("pg").Client;
|
|
12
11
|
options: {
|
|
13
12
|
host: string;
|
|
14
13
|
port: number;
|
package/build/start/workers.js
CHANGED
|
@@ -36,24 +36,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.buildConnection = buildConnection;
|
|
37
37
|
exports.collectWorkers = collectWorkers;
|
|
38
38
|
exports.startWorkers = startWorkers;
|
|
39
|
-
const pg_1 = require("pg");
|
|
40
39
|
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
41
|
-
const
|
|
40
|
+
const db_1 = require("../lib/db");
|
|
42
41
|
const interceptor_1 = require("../services/interceptor");
|
|
43
42
|
const registry_1 = require("../services/workers/registry");
|
|
44
|
-
const logger_1 = require("../
|
|
45
|
-
const telemetry_1 = require("../
|
|
46
|
-
const events_1 = require("../
|
|
43
|
+
const logger_1 = require("../lib/logger");
|
|
44
|
+
const telemetry_1 = require("../lib/telemetry");
|
|
45
|
+
const events_1 = require("../lib/events");
|
|
47
46
|
const maintenance_1 = require("../services/maintenance");
|
|
48
47
|
const cron_1 = require("../services/cron");
|
|
49
48
|
const mcp_1 = require("../services/mcp");
|
|
50
49
|
const yamlWorkflowWorkers = __importStar(require("../services/yaml-workflow/workers"));
|
|
51
|
-
const migrate_1 = require("../
|
|
50
|
+
const migrate_1 = require("../lib/db/migrate");
|
|
52
51
|
/**
|
|
53
52
|
* Build the connection descriptor used by HotMesh / Durable.
|
|
54
53
|
*/
|
|
55
54
|
function buildConnection() {
|
|
56
|
-
return
|
|
55
|
+
return (0, db_1.getConnection)();
|
|
57
56
|
}
|
|
58
57
|
/**
|
|
59
58
|
* Collect all workers: system, optional examples, and user-provided.
|
|
@@ -92,10 +91,12 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
92
91
|
});
|
|
93
92
|
// Start each worker
|
|
94
93
|
for (const w of workers) {
|
|
94
|
+
const label = `${w.taskQueue}::${w.workflow.name}`;
|
|
95
95
|
const worker = await hotmesh_1.Durable.Worker.create({
|
|
96
96
|
connection,
|
|
97
97
|
taskQueue: w.taskQueue,
|
|
98
98
|
workflow: w.workflow,
|
|
99
|
+
guid: `${label}-${hotmesh_1.Durable.guid()}`,
|
|
99
100
|
});
|
|
100
101
|
await worker.run();
|
|
101
102
|
(0, registry_1.registerWorker)(w.workflow.name, w.taskQueue);
|
|
@@ -37,7 +37,7 @@ exports.executeTask = executeTask;
|
|
|
37
37
|
exports.checkAvailability = checkAvailability;
|
|
38
38
|
const child_process_1 = require("child_process");
|
|
39
39
|
const util_1 = require("util");
|
|
40
|
-
const logger_1 = require("../../
|
|
40
|
+
const logger_1 = require("../../lib/logger");
|
|
41
41
|
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
42
42
|
/** Maximum execution time for a Claude Code task (5 minutes) */
|
|
43
43
|
const MAX_TIMEOUT_MS = 300_000;
|
|
@@ -38,7 +38,7 @@ exports.readFile = readFile;
|
|
|
38
38
|
exports.listFiles = listFiles;
|
|
39
39
|
exports.deleteFile = deleteFile;
|
|
40
40
|
const path = __importStar(require("path"));
|
|
41
|
-
const storage_1 = require("../../
|
|
41
|
+
const storage_1 = require("../../lib/storage");
|
|
42
42
|
const MIME_MAP = {
|
|
43
43
|
'.json': 'application/json', '.txt': 'text/plain', '.html': 'text/html',
|
|
44
44
|
'.csv': 'text/csv', '.xml': 'application/xml', '.png': 'image/png',
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export declare function storeKnowledge(args: {
|
|
2
|
+
domain: string;
|
|
3
|
+
key: string;
|
|
4
|
+
data: Record<string, any>;
|
|
5
|
+
tags?: string[];
|
|
6
|
+
}): Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
domain: string;
|
|
9
|
+
key: string;
|
|
10
|
+
created: boolean;
|
|
11
|
+
updated_at: string;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function getKnowledge(args: {
|
|
14
|
+
domain: string;
|
|
15
|
+
key: string;
|
|
16
|
+
}): Promise<Record<string, any>>;
|
|
17
|
+
export declare function searchKnowledge(args: {
|
|
18
|
+
domain: string;
|
|
19
|
+
query: Record<string, any>;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
limit?: number;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
entries: Record<string, any>[];
|
|
24
|
+
total: number;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function listKnowledge(args: {
|
|
27
|
+
domain: string;
|
|
28
|
+
tags?: string[];
|
|
29
|
+
limit?: number;
|
|
30
|
+
offset?: number;
|
|
31
|
+
}): Promise<{
|
|
32
|
+
entries: Record<string, any>[];
|
|
33
|
+
total: number;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function deleteKnowledge(args: {
|
|
36
|
+
domain: string;
|
|
37
|
+
key: string;
|
|
38
|
+
}): Promise<{
|
|
39
|
+
deleted: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
export declare function listDomains(): Promise<{
|
|
42
|
+
domains: Array<{
|
|
43
|
+
domain: string;
|
|
44
|
+
count: number;
|
|
45
|
+
latest: string;
|
|
46
|
+
}>;
|
|
47
|
+
}>;
|
|
48
|
+
export declare function appendKnowledge(args: {
|
|
49
|
+
domain: string;
|
|
50
|
+
key: string;
|
|
51
|
+
path: string;
|
|
52
|
+
value: any;
|
|
53
|
+
}): Promise<{
|
|
54
|
+
id: string;
|
|
55
|
+
domain: string;
|
|
56
|
+
key: string;
|
|
57
|
+
updated_at: string;
|
|
58
|
+
}>;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storeKnowledge = storeKnowledge;
|
|
4
|
+
exports.getKnowledge = getKnowledge;
|
|
5
|
+
exports.searchKnowledge = searchKnowledge;
|
|
6
|
+
exports.listKnowledge = listKnowledge;
|
|
7
|
+
exports.deleteKnowledge = deleteKnowledge;
|
|
8
|
+
exports.listDomains = listDomains;
|
|
9
|
+
exports.appendKnowledge = appendKnowledge;
|
|
10
|
+
const db_1 = require("../../lib/db");
|
|
11
|
+
const sql_1 = require("./sql");
|
|
12
|
+
async function withClient(fn) {
|
|
13
|
+
const { class: PgClient, options } = (0, db_1.getConnection)();
|
|
14
|
+
const client = new PgClient(options);
|
|
15
|
+
await client.connect();
|
|
16
|
+
try {
|
|
17
|
+
return await fn(client);
|
|
18
|
+
}
|
|
19
|
+
finally {
|
|
20
|
+
await client.end();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async function storeKnowledge(args) {
|
|
24
|
+
return withClient(async (client) => {
|
|
25
|
+
const { rows } = await client.query(sql_1.UPSERT_KNOWLEDGE, [args.domain, args.key, JSON.stringify(args.data), args.tags || []]);
|
|
26
|
+
return { ...rows[0], updated_at: rows[0].updated_at.toISOString() };
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async function getKnowledge(args) {
|
|
30
|
+
return withClient(async (client) => {
|
|
31
|
+
const { rows } = await client.query(sql_1.GET_KNOWLEDGE, [args.domain, args.key]);
|
|
32
|
+
if (!rows.length)
|
|
33
|
+
return { found: false, domain: args.domain, key: args.key };
|
|
34
|
+
const row = rows[0];
|
|
35
|
+
return {
|
|
36
|
+
id: row.id,
|
|
37
|
+
domain: row.domain,
|
|
38
|
+
key: row.key,
|
|
39
|
+
data: row.data,
|
|
40
|
+
tags: row.tags,
|
|
41
|
+
created_at: row.created_at.toISOString(),
|
|
42
|
+
updated_at: row.updated_at.toISOString(),
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async function searchKnowledge(args) {
|
|
47
|
+
return withClient(async (client) => {
|
|
48
|
+
const limit = Math.min(args.limit || 50, 200);
|
|
49
|
+
const params = [args.domain, JSON.stringify(args.query), limit];
|
|
50
|
+
let tagClause = '';
|
|
51
|
+
if (args.tags?.length) {
|
|
52
|
+
tagClause = ' AND tags && $4';
|
|
53
|
+
params.push(args.tags);
|
|
54
|
+
}
|
|
55
|
+
const countResult = await client.query(`SELECT COUNT(*)::int AS total FROM lt_knowledge
|
|
56
|
+
WHERE domain = $1 AND data @> $2::jsonb${tagClause}`, tagClause ? [args.domain, JSON.stringify(args.query), ...(args.tags ? [args.tags] : [])]
|
|
57
|
+
: [args.domain, JSON.stringify(args.query)]);
|
|
58
|
+
const { rows } = await client.query(`SELECT id, domain, key, data, tags, created_at, updated_at
|
|
59
|
+
FROM lt_knowledge
|
|
60
|
+
WHERE domain = $1 AND data @> $2::jsonb${tagClause}
|
|
61
|
+
ORDER BY updated_at DESC LIMIT $3`, params);
|
|
62
|
+
return {
|
|
63
|
+
entries: rows.map((r) => ({
|
|
64
|
+
id: r.id, domain: r.domain, key: r.key, data: r.data, tags: r.tags,
|
|
65
|
+
created_at: r.created_at.toISOString(), updated_at: r.updated_at.toISOString(),
|
|
66
|
+
})),
|
|
67
|
+
total: countResult.rows[0].total,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async function listKnowledge(args) {
|
|
72
|
+
return withClient(async (client) => {
|
|
73
|
+
const limit = Math.min(args.limit || 50, 200);
|
|
74
|
+
const offset = args.offset || 0;
|
|
75
|
+
const params = [args.domain];
|
|
76
|
+
let tagClause = '';
|
|
77
|
+
if (args.tags?.length) {
|
|
78
|
+
tagClause = ' AND tags && $2';
|
|
79
|
+
params.push(args.tags);
|
|
80
|
+
}
|
|
81
|
+
const countResult = await client.query(`SELECT COUNT(*)::int AS total FROM lt_knowledge WHERE domain = $1${tagClause}`, params);
|
|
82
|
+
const queryParams = [...params, limit, offset];
|
|
83
|
+
const limitIdx = params.length + 1;
|
|
84
|
+
const offsetIdx = params.length + 2;
|
|
85
|
+
const { rows } = await client.query(`SELECT id, domain, key, data, tags, created_at, updated_at
|
|
86
|
+
FROM lt_knowledge WHERE domain = $1${tagClause}
|
|
87
|
+
ORDER BY updated_at DESC LIMIT $${limitIdx} OFFSET $${offsetIdx}`, queryParams);
|
|
88
|
+
return {
|
|
89
|
+
entries: rows.map((r) => ({
|
|
90
|
+
id: r.id, domain: r.domain, key: r.key, data: r.data, tags: r.tags,
|
|
91
|
+
created_at: r.created_at.toISOString(), updated_at: r.updated_at.toISOString(),
|
|
92
|
+
})),
|
|
93
|
+
total: countResult.rows[0].total,
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
async function deleteKnowledge(args) {
|
|
98
|
+
return withClient(async (client) => {
|
|
99
|
+
const { rowCount } = await client.query(sql_1.DELETE_KNOWLEDGE, [args.domain, args.key]);
|
|
100
|
+
return { deleted: (rowCount ?? 0) > 0 };
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
async function listDomains() {
|
|
104
|
+
return withClient(async (client) => {
|
|
105
|
+
const { rows } = await client.query(sql_1.LIST_DOMAINS);
|
|
106
|
+
return {
|
|
107
|
+
domains: rows.map((r) => ({
|
|
108
|
+
domain: r.domain,
|
|
109
|
+
count: r.count,
|
|
110
|
+
latest: r.latest.toISOString(),
|
|
111
|
+
})),
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
async function appendKnowledge(args) {
|
|
116
|
+
return withClient(async (client) => {
|
|
117
|
+
const pathParts = args.path.split('.');
|
|
118
|
+
const pathArray = pathParts;
|
|
119
|
+
const valueJson = JSON.stringify(args.value);
|
|
120
|
+
// Build the initial data object for INSERT (nested path support)
|
|
121
|
+
let initData = { [pathParts[pathParts.length - 1]]: [args.value] };
|
|
122
|
+
for (let i = pathParts.length - 2; i >= 0; i--) {
|
|
123
|
+
initData = { [pathParts[i]]: initData };
|
|
124
|
+
}
|
|
125
|
+
const { rows } = await client.query(sql_1.APPEND_KNOWLEDGE, [args.domain, args.key, JSON.stringify(initData), pathArray, valueJson]);
|
|
126
|
+
return { ...rows[0], updated_at: rows[0].updated_at.toISOString() };
|
|
127
|
+
});
|
|
128
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const UPSERT_KNOWLEDGE = "\n INSERT INTO lt_knowledge (domain, key, data, tags)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (domain, key) DO UPDATE SET\n data = lt_knowledge.data || EXCLUDED.data,\n tags = ARRAY(SELECT DISTINCT unnest(lt_knowledge.tags || EXCLUDED.tags))\n RETURNING id, domain, key, (xmax = 0) AS created, updated_at";
|
|
2
|
+
export declare const GET_KNOWLEDGE = "\n SELECT id, domain, key, data, tags, created_at, updated_at\n FROM lt_knowledge WHERE domain = $1 AND key = $2";
|
|
3
|
+
export declare const SEARCH_KNOWLEDGE = "\n SELECT id, domain, key, data, tags, created_at, updated_at\n FROM lt_knowledge\n WHERE domain = $1 AND data @> $2::jsonb";
|
|
4
|
+
export declare const COUNT_KNOWLEDGE_SEARCH = "\n SELECT COUNT(*)::int AS total FROM lt_knowledge\n WHERE domain = $1 AND data @> $2::jsonb";
|
|
5
|
+
export declare const LIST_KNOWLEDGE = "\n SELECT id, domain, key, data, tags, created_at, updated_at\n FROM lt_knowledge WHERE domain = $1";
|
|
6
|
+
export declare const COUNT_KNOWLEDGE_LIST = "\n SELECT COUNT(*)::int AS total FROM lt_knowledge WHERE domain = $1";
|
|
7
|
+
export declare const DELETE_KNOWLEDGE = "\n DELETE FROM lt_knowledge WHERE domain = $1 AND key = $2";
|
|
8
|
+
export declare const LIST_DOMAINS = "\n SELECT domain, COUNT(*)::int AS count, MAX(updated_at) AS latest\n FROM lt_knowledge GROUP BY domain ORDER BY latest DESC";
|
|
9
|
+
export declare const APPEND_KNOWLEDGE = "\n INSERT INTO lt_knowledge (domain, key, data)\n VALUES ($1, $2, $3::jsonb)\n ON CONFLICT (domain, key) DO UPDATE SET\n data = CASE\n WHEN lt_knowledge.data #> $4::text[] IS NULL\n THEN jsonb_set(lt_knowledge.data, $4::text[], jsonb_build_array($5::jsonb))\n ELSE jsonb_set(lt_knowledge.data, $4::text[], (lt_knowledge.data #> $4::text[]) || jsonb_build_array($5::jsonb))\n END\n RETURNING id, domain, key, updated_at";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Knowledge CRUD ─────────────────────────────────────────────────────────
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.APPEND_KNOWLEDGE = exports.LIST_DOMAINS = exports.DELETE_KNOWLEDGE = exports.COUNT_KNOWLEDGE_LIST = exports.LIST_KNOWLEDGE = exports.COUNT_KNOWLEDGE_SEARCH = exports.SEARCH_KNOWLEDGE = exports.GET_KNOWLEDGE = exports.UPSERT_KNOWLEDGE = void 0;
|
|
5
|
+
exports.UPSERT_KNOWLEDGE = `
|
|
6
|
+
INSERT INTO lt_knowledge (domain, key, data, tags)
|
|
7
|
+
VALUES ($1, $2, $3, $4)
|
|
8
|
+
ON CONFLICT (domain, key) DO UPDATE SET
|
|
9
|
+
data = lt_knowledge.data || EXCLUDED.data,
|
|
10
|
+
tags = ARRAY(SELECT DISTINCT unnest(lt_knowledge.tags || EXCLUDED.tags))
|
|
11
|
+
RETURNING id, domain, key, (xmax = 0) AS created, updated_at`;
|
|
12
|
+
exports.GET_KNOWLEDGE = `
|
|
13
|
+
SELECT id, domain, key, data, tags, created_at, updated_at
|
|
14
|
+
FROM lt_knowledge WHERE domain = $1 AND key = $2`;
|
|
15
|
+
exports.SEARCH_KNOWLEDGE = `
|
|
16
|
+
SELECT id, domain, key, data, tags, created_at, updated_at
|
|
17
|
+
FROM lt_knowledge
|
|
18
|
+
WHERE domain = $1 AND data @> $2::jsonb`;
|
|
19
|
+
exports.COUNT_KNOWLEDGE_SEARCH = `
|
|
20
|
+
SELECT COUNT(*)::int AS total FROM lt_knowledge
|
|
21
|
+
WHERE domain = $1 AND data @> $2::jsonb`;
|
|
22
|
+
exports.LIST_KNOWLEDGE = `
|
|
23
|
+
SELECT id, domain, key, data, tags, created_at, updated_at
|
|
24
|
+
FROM lt_knowledge WHERE domain = $1`;
|
|
25
|
+
exports.COUNT_KNOWLEDGE_LIST = `
|
|
26
|
+
SELECT COUNT(*)::int AS total FROM lt_knowledge WHERE domain = $1`;
|
|
27
|
+
exports.DELETE_KNOWLEDGE = `
|
|
28
|
+
DELETE FROM lt_knowledge WHERE domain = $1 AND key = $2`;
|
|
29
|
+
exports.LIST_DOMAINS = `
|
|
30
|
+
SELECT domain, COUNT(*)::int AS count, MAX(updated_at) AS latest
|
|
31
|
+
FROM lt_knowledge GROUP BY domain ORDER BY latest DESC`;
|
|
32
|
+
exports.APPEND_KNOWLEDGE = `
|
|
33
|
+
INSERT INTO lt_knowledge (domain, key, data)
|
|
34
|
+
VALUES ($1, $2, $3::jsonb)
|
|
35
|
+
ON CONFLICT (domain, key) DO UPDATE SET
|
|
36
|
+
data = CASE
|
|
37
|
+
WHEN lt_knowledge.data #> $4::text[] IS NULL
|
|
38
|
+
THEN jsonb_set(lt_knowledge.data, $4::text[], jsonb_build_array($5::jsonb))
|
|
39
|
+
ELSE jsonb_set(lt_knowledge.data, $4::text[], (lt_knowledge.data #> $4::text[]) || jsonb_build_array($5::jsonb))
|
|
40
|
+
END
|
|
41
|
+
RETURNING id, domain, key, updated_at`;
|
|
@@ -37,7 +37,7 @@ exports.getUpstreamTasks = getUpstreamTasks;
|
|
|
37
37
|
exports.getEscalationHistory = getEscalationHistory;
|
|
38
38
|
exports.notifyEngineering = notifyEngineering;
|
|
39
39
|
exports.getToolTags = getToolTags;
|
|
40
|
-
const logger_1 = require("../../../
|
|
40
|
+
const logger_1 = require("../../../lib/logger");
|
|
41
41
|
const ltconfig_1 = require("../../../modules/ltconfig");
|
|
42
42
|
const taskService = __importStar(require("../../../services/task"));
|
|
43
43
|
const escalationService = __importStar(require("../../../services/escalation"));
|
|
@@ -1,25 +1,13 @@
|
|
|
1
|
+
import { extractWorkflowInputs } from '../../workflows/shared/discovery';
|
|
1
2
|
import type { WorkflowCandidate } from '../../../types/discovery';
|
|
2
|
-
/**
|
|
3
|
-
* Search for active compiled YAML workflows matching a text query.
|
|
4
|
-
* Uses PostgreSQL FTS + tag overlap for ranked matching.
|
|
5
|
-
*/
|
|
6
3
|
export declare function findTriageWorkflows(prompt: string): Promise<{
|
|
7
4
|
inventory: string;
|
|
8
5
|
toolIds: string[];
|
|
9
6
|
candidates: WorkflowCandidate[];
|
|
10
7
|
}>;
|
|
11
|
-
/**
|
|
12
|
-
* LLM-as-judge: does a compiled workflow match the triage context?
|
|
13
|
-
*/
|
|
14
8
|
export declare function evaluateTriageMatch(prompt: string, candidates: WorkflowCandidate[]): Promise<{
|
|
15
9
|
matched: boolean;
|
|
16
10
|
workflowName: string | null;
|
|
17
11
|
confidence: number;
|
|
18
12
|
}>;
|
|
19
|
-
|
|
20
|
-
* Extract structured inputs from the triage context using a workflow's input schema.
|
|
21
|
-
*/
|
|
22
|
-
export declare function extractTriageInputs(prompt: string, inputSchema: Record<string, unknown>, workflowName: string): Promise<{
|
|
23
|
-
inputs: Record<string, any> | null;
|
|
24
|
-
extracted: boolean;
|
|
25
|
-
}>;
|
|
13
|
+
export { extractWorkflowInputs as extractTriageInputs };
|
|
@@ -1,170 +1,14 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractTriageInputs = void 0;
|
|
36
4
|
exports.findTriageWorkflows = findTriageWorkflows;
|
|
37
5
|
exports.evaluateTriageMatch = evaluateTriageMatch;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const defaults_1 = require("../../../modules/defaults");
|
|
41
|
-
const prompts_1 = require("../../workflows/mcp-query/prompts");
|
|
42
|
-
const logger_1 = require("../../../services/logger");
|
|
43
|
-
const yamlDb = __importStar(require("../../../services/yaml-workflow/db"));
|
|
6
|
+
const discovery_1 = require("../../workflows/shared/discovery");
|
|
7
|
+
Object.defineProperty(exports, "extractTriageInputs", { enumerable: true, get: function () { return discovery_1.extractWorkflowInputs; } });
|
|
44
8
|
const cache_1 = require("./cache");
|
|
45
|
-
/**
|
|
46
|
-
* Search for active compiled YAML workflows matching a text query.
|
|
47
|
-
* Uses PostgreSQL FTS + tag overlap for ranked matching.
|
|
48
|
-
*/
|
|
49
9
|
async function findTriageWorkflows(prompt) {
|
|
50
|
-
|
|
51
|
-
const keywords = prompt
|
|
52
|
-
.toLowerCase()
|
|
53
|
-
.replace(/[^a-z0-9\s-]/g, ' ')
|
|
54
|
-
.split(/\s+/)
|
|
55
|
-
.filter((w) => w.length > 2 && !defaults_1.STOP_WORDS.has(w));
|
|
56
|
-
logger_1.loggerRegistry.debug(`[mcpTriage:findTriageWorkflows] keywords: [${keywords.join(',')}]`);
|
|
57
|
-
let workflows;
|
|
58
|
-
try {
|
|
59
|
-
workflows = await yamlDb.discoverWorkflows(prompt, keywords, undefined, 5);
|
|
60
|
-
logger_1.loggerRegistry.info(`[mcpTriage:findTriageWorkflows] ${workflows.length} candidate(s) found`);
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
logger_1.loggerRegistry.warn(`[mcpTriage:findTriageWorkflows] discovery failed: ${err.message}`);
|
|
64
|
-
return { inventory: '', toolIds: [], candidates: [] };
|
|
65
|
-
}
|
|
66
|
-
if (workflows.length === 0) {
|
|
67
|
-
logger_1.loggerRegistry.debug(`[mcpTriage:findTriageWorkflows] no candidates found`);
|
|
68
|
-
return { inventory: '', toolIds: [], candidates: [] };
|
|
69
|
-
}
|
|
70
|
-
const toolIds = [];
|
|
71
|
-
const inventoryLines = [];
|
|
72
|
-
const candidates = [];
|
|
73
|
-
for (const wf of workflows) {
|
|
74
|
-
const qualifiedName = `yaml__${wf.name.replace(/[^a-zA-Z0-9]/g, '_')}`;
|
|
75
|
-
cache_1.yamlWorkflowMap.set(qualifiedName, wf.name);
|
|
76
|
-
cache_1.toolDefCache.set(qualifiedName, {
|
|
77
|
-
type: 'function',
|
|
78
|
-
function: {
|
|
79
|
-
name: qualifiedName,
|
|
80
|
-
description: `[COMPILED WORKFLOW] ${wf.description || wf.name} — deterministic, no LLM needed. ` +
|
|
81
|
-
`Tags: ${wf.tags.join(', ')}`,
|
|
82
|
-
parameters: (wf.input_schema || { type: 'object', properties: {} }),
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
toolIds.push(qualifiedName);
|
|
86
|
-
const activityCount = wf.activity_manifest.filter((a) => a.type === 'worker').length;
|
|
87
|
-
inventoryLines.push(`★ ${wf.name} [compiled, ${activityCount} steps, tags: ${wf.tags.join(', ')}]: ${wf.description || 'deterministic workflow'}`);
|
|
88
|
-
candidates.push({
|
|
89
|
-
name: wf.name,
|
|
90
|
-
description: wf.description,
|
|
91
|
-
original_prompt: wf.original_prompt,
|
|
92
|
-
category: wf.category,
|
|
93
|
-
tags: wf.tags,
|
|
94
|
-
input_schema: wf.input_schema,
|
|
95
|
-
tool_names: wf.activity_manifest
|
|
96
|
-
.filter((a) => a.type === 'worker' && a.mcp_tool_name)
|
|
97
|
-
.map((a) => a.mcp_tool_name),
|
|
98
|
-
fts_rank: wf.fts_rank || 0,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
return { inventory: inventoryLines.join('\n'), toolIds, candidates };
|
|
10
|
+
return (0, discovery_1.findCompiledWorkflows)(prompt, { yamlWorkflowMap: cache_1.yamlWorkflowMap, toolDefCache: cache_1.toolDefCache }, 'mcpTriage');
|
|
102
11
|
}
|
|
103
|
-
// ── Compiled workflow matching (reused by mcpTriageRouter) ────
|
|
104
|
-
/**
|
|
105
|
-
* LLM-as-judge: does a compiled workflow match the triage context?
|
|
106
|
-
*/
|
|
107
12
|
async function evaluateTriageMatch(prompt, candidates) {
|
|
108
|
-
|
|
109
|
-
if (candidates.length === 0) {
|
|
110
|
-
return { matched: false, workflowName: null, confidence: 0 };
|
|
111
|
-
}
|
|
112
|
-
const candidateText = candidates.map((c, i) => `${i + 1}. **${c.name}** (category: ${c.category || 'general'})\n` +
|
|
113
|
-
` Description: ${c.description || 'N/A'}\n` +
|
|
114
|
-
` Original prompt: "${c.original_prompt || 'N/A'}"\n` +
|
|
115
|
-
` Tools: ${c.tool_names.join(', ')}\n` +
|
|
116
|
-
` Input: ${JSON.stringify(c.input_schema).slice(0, 300)}`).join('\n\n');
|
|
117
|
-
try {
|
|
118
|
-
const response = await (0, llm_1.callLLM)({
|
|
119
|
-
model: defaults_1.LLM_MODEL_SECONDARY,
|
|
120
|
-
max_tokens: 200,
|
|
121
|
-
temperature: 0,
|
|
122
|
-
messages: [
|
|
123
|
-
{ role: 'system', content: prompts_1.WORKFLOW_MATCH_PROMPT },
|
|
124
|
-
{ role: 'user', content: `## User Request\n${prompt}\n\n## Candidate Workflows\n${candidateText}` },
|
|
125
|
-
],
|
|
126
|
-
});
|
|
127
|
-
const raw = response.content || '{}';
|
|
128
|
-
const cleaned = raw.replace(/^```(?:json)?\s*/m, '').replace(/\s*```$/m, '').trim();
|
|
129
|
-
const result = JSON.parse(cleaned);
|
|
130
|
-
if (result.match && result.confidence >= 0.7) {
|
|
131
|
-
return { matched: true, workflowName: result.workflow_name, confidence: result.confidence };
|
|
132
|
-
}
|
|
133
|
-
return { matched: false, workflowName: null, confidence: result.confidence || 0 };
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
return { matched: false, workflowName: null, confidence: 0 };
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Extract structured inputs from the triage context using a workflow's input schema.
|
|
141
|
-
*/
|
|
142
|
-
async function extractTriageInputs(prompt, inputSchema, workflowName) {
|
|
143
|
-
try {
|
|
144
|
-
const response = await (0, llm_1.callLLM)({
|
|
145
|
-
model: defaults_1.LLM_MODEL_SECONDARY,
|
|
146
|
-
max_tokens: 500,
|
|
147
|
-
temperature: 0,
|
|
148
|
-
messages: [
|
|
149
|
-
{ role: 'system', content: prompts_1.EXTRACT_INPUTS_PROMPT },
|
|
150
|
-
{
|
|
151
|
-
role: 'user',
|
|
152
|
-
content: `## User Request\n${prompt}\n\n` +
|
|
153
|
-
`## Workflow: ${workflowName}\n` +
|
|
154
|
-
`## Input Schema\n${JSON.stringify(inputSchema, null, 2)}`,
|
|
155
|
-
},
|
|
156
|
-
],
|
|
157
|
-
});
|
|
158
|
-
const raw = response.content || '{}';
|
|
159
|
-
const cleaned = raw.replace(/^```(?:json)?\s*/m, '').replace(/\s*```$/m, '').trim();
|
|
160
|
-
const result = JSON.parse(cleaned);
|
|
161
|
-
if (result._extraction_failed) {
|
|
162
|
-
return { inputs: null, extracted: false };
|
|
163
|
-
}
|
|
164
|
-
delete result._extraction_failed;
|
|
165
|
-
return { inputs: result, extracted: true };
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
return { inputs: null, extracted: false };
|
|
169
|
-
}
|
|
13
|
+
return (0, discovery_1.evaluateWorkflowMatch)(prompt, candidates, 'mcpTriage');
|
|
170
14
|
}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
/**
|
|
3
|
-
* Call the LLM with messages and optional tool IDs.
|
|
4
|
-
*
|
|
5
|
-
* Uses the primary model for better tool-calling reliability.
|
|
6
|
-
* Tool IDs are resolved from the module-level toolDefCache so that only
|
|
7
|
-
* lightweight string arrays flow through the durable pipe.
|
|
8
|
-
*/
|
|
1
|
+
import type { LLMResponse } from '../../../services/llm';
|
|
9
2
|
export declare function callTriageLLM(messages: any[], toolIds?: string[]): Promise<LLMResponse>;
|
|
@@ -1,34 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.callTriageLLM = callTriageLLM;
|
|
4
|
-
const
|
|
5
|
-
const defaults_1 = require("../../../modules/defaults");
|
|
6
|
-
const logger_1 = require("../../../services/logger");
|
|
4
|
+
const llm_caller_1 = require("../../workflows/shared/llm-caller");
|
|
7
5
|
const cache_1 = require("./cache");
|
|
8
|
-
/**
|
|
9
|
-
* Call the LLM with messages and optional tool IDs.
|
|
10
|
-
*
|
|
11
|
-
* Uses the primary model for better tool-calling reliability.
|
|
12
|
-
* Tool IDs are resolved from the module-level toolDefCache so that only
|
|
13
|
-
* lightweight string arrays flow through the durable pipe.
|
|
14
|
-
*/
|
|
15
6
|
async function callTriageLLM(messages, toolIds) {
|
|
16
|
-
|
|
17
|
-
if (toolIds?.length) {
|
|
18
|
-
tools = toolIds
|
|
19
|
-
.map((id) => cache_1.toolDefCache.get(id))
|
|
20
|
-
.filter((t) => !!t);
|
|
21
|
-
}
|
|
22
|
-
const t0 = Date.now();
|
|
23
|
-
logger_1.loggerRegistry.debug(`[mcpTriage:callLLM] ${tools?.length || 0} tools, ${messages.length} messages`);
|
|
24
|
-
const response = await (0, llm_1.callLLM)({
|
|
25
|
-
model: defaults_1.LLM_MODEL_PRIMARY,
|
|
26
|
-
messages,
|
|
27
|
-
temperature: 0,
|
|
28
|
-
...(tools?.length ? { tools } : {}),
|
|
29
|
-
...(!tools?.length ? { max_tokens: defaults_1.LLM_MAX_TOKENS_DEFAULT } : {}),
|
|
30
|
-
});
|
|
31
|
-
const usage = response.usage;
|
|
32
|
-
logger_1.loggerRegistry.info(`[mcpTriage:callLLM] ${Date.now() - t0}ms | in=${usage?.prompt_tokens} out=${usage?.completion_tokens} total=${usage?.total_tokens} | tool_calls=${response.tool_calls?.length || 0}`);
|
|
33
|
-
return response;
|
|
7
|
+
return (0, llm_caller_1.callWorkflowLLM)(messages, toolIds, cache_1.toolDefCache, 'mcpTriage');
|
|
34
8
|
}
|
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
/** Base tags always included — triage always needs DB
|
|
1
|
+
/** Base tags always included — triage always needs DB + compiled workflows */
|
|
2
2
|
export declare const BASE_TAGS: string[];
|
|
3
|
-
/**
|
|
4
|
-
* Single activity that discovers, caches, and returns a lightweight summary.
|
|
5
|
-
*
|
|
6
|
-
* Full ChatCompletionTool definitions are cached in module-level toolDefCache
|
|
7
|
-
* so they never flow through the durable pipe. Only tool IDs (qualified name
|
|
8
|
-
* strings) and a compact inventory string are returned.
|
|
9
|
-
*
|
|
10
|
-
* Includes strategy advisor section for overlapping server categories.
|
|
11
|
-
*
|
|
12
|
-
* @param tags - MCP server tags to scope by (merged with BASE_TAGS).
|
|
13
|
-
* Pass undefined/empty to load all servers.
|
|
14
|
-
*/
|
|
15
3
|
export declare function loadTriageTools(tags?: string[]): Promise<{
|
|
16
4
|
toolIds: string[];
|
|
17
5
|
inventory: string;
|
|
18
6
|
strategy: string;
|
|
19
7
|
}>;
|
|
20
|
-
/**
|
|
21
|
-
* Call any tool by its qualified name — handles both YAML workflows
|
|
22
|
-
* (yaml__* prefix) and raw MCP tools (server_slug__tool_name).
|
|
23
|
-
*/
|
|
24
8
|
export declare function callTriageTool(qualifiedName: string, args: Record<string, any>): Promise<any>;
|