@hotmeshio/long-tail 0.1.3 → 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 +118 -173
- 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 +12 -10
- package/build/index.js +15 -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/register-tool.d.ts +11 -0
- package/build/services/mcp/register-tool.js +15 -0
- 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
|
@@ -146,7 +146,7 @@ async function callCompilationLLM(steps, originalPrompt, naiveInputs, patternAnn
|
|
|
146
146
|
return (0, parse_plan_1.parsePlan)(raw, steps.length);
|
|
147
147
|
}
|
|
148
148
|
catch (err) {
|
|
149
|
-
const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('
|
|
149
|
+
const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../../lib/logger')));
|
|
150
150
|
loggerRegistry.warn(`[yaml-workflow] LLM compilation failed, using mechanical fallback: ${err}`);
|
|
151
151
|
return null;
|
|
152
152
|
}
|
|
@@ -108,8 +108,10 @@ function extractStepSequence(events) {
|
|
|
108
108
|
const actualArgs = (0, extract_helpers_1.extractToolArgs)(attrs);
|
|
109
109
|
const args = Object.keys(actualArgs).length > 0 ? actualArgs : pendingLlmCall.arguments;
|
|
110
110
|
const result = attrs.result;
|
|
111
|
-
// Skip failed steps
|
|
112
|
-
|
|
111
|
+
// Skip failed steps — detect both object errors and string error messages
|
|
112
|
+
// (e.g., Playwright timeout errors return as plain error strings)
|
|
113
|
+
if (result && ((typeof result === 'object' && (result.error || result.code === 'TIMEOUT')) ||
|
|
114
|
+
(typeof result === 'string' && /error|timeout|failed|ECONNREFUSED/i.test(result)))) {
|
|
113
115
|
pendingLlmCall = pendingQueue.shift() || null;
|
|
114
116
|
continue;
|
|
115
117
|
}
|
|
@@ -122,7 +124,7 @@ function extractStepSequence(events) {
|
|
|
122
124
|
mcpServerId: serverSlug,
|
|
123
125
|
});
|
|
124
126
|
// Detect escalate_and_wait → waitFor pattern: emit a signal step
|
|
125
|
-
if (result?.type === 'waitFor' && result?.signalId) {
|
|
127
|
+
if (typeof result === 'object' && result?.type === 'waitFor' && result?.signalId) {
|
|
126
128
|
const signalId = result.signalId;
|
|
127
129
|
const signalData = signaledEvents.get(signalId) || {};
|
|
128
130
|
const formSchema = args.form_schema;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { analyze } from './analyze';
|
|
2
|
+
export { extract, extractStepSequence, resolveServerIds } from './extract';
|
|
3
|
+
export { validate } from './validate';
|
|
4
|
+
export { parseMcpActivityType, extractToolArgs, extractLlmMessages, buildDefaultPrompt, } from './extract-helpers';
|
|
5
|
+
export { COMPILATION_PROMPT, buildRecompilationHint, VALIDATION_PROMPT, EXTRACT_DEFAULT_SYSTEM_PROMPT, EXTRACT_DEFAULT_USER_TEMPLATE, } from './prompts';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXTRACT_DEFAULT_USER_TEMPLATE = exports.EXTRACT_DEFAULT_SYSTEM_PROMPT = exports.VALIDATION_PROMPT = exports.buildRecompilationHint = exports.COMPILATION_PROMPT = exports.buildDefaultPrompt = exports.extractLlmMessages = exports.extractToolArgs = exports.parseMcpActivityType = exports.validate = exports.resolveServerIds = exports.extractStepSequence = exports.extract = exports.analyze = void 0;
|
|
4
|
+
var analyze_1 = require("./analyze");
|
|
5
|
+
Object.defineProperty(exports, "analyze", { enumerable: true, get: function () { return analyze_1.analyze; } });
|
|
6
|
+
var extract_1 = require("./extract");
|
|
7
|
+
Object.defineProperty(exports, "extract", { enumerable: true, get: function () { return extract_1.extract; } });
|
|
8
|
+
Object.defineProperty(exports, "extractStepSequence", { enumerable: true, get: function () { return extract_1.extractStepSequence; } });
|
|
9
|
+
Object.defineProperty(exports, "resolveServerIds", { enumerable: true, get: function () { return extract_1.resolveServerIds; } });
|
|
10
|
+
var validate_1 = require("./validate");
|
|
11
|
+
Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_1.validate; } });
|
|
12
|
+
var extract_helpers_1 = require("./extract-helpers");
|
|
13
|
+
Object.defineProperty(exports, "parseMcpActivityType", { enumerable: true, get: function () { return extract_helpers_1.parseMcpActivityType; } });
|
|
14
|
+
Object.defineProperty(exports, "extractToolArgs", { enumerable: true, get: function () { return extract_helpers_1.extractToolArgs; } });
|
|
15
|
+
Object.defineProperty(exports, "extractLlmMessages", { enumerable: true, get: function () { return extract_helpers_1.extractLlmMessages; } });
|
|
16
|
+
Object.defineProperty(exports, "buildDefaultPrompt", { enumerable: true, get: function () { return extract_helpers_1.buildDefaultPrompt; } });
|
|
17
|
+
var prompts_1 = require("./prompts");
|
|
18
|
+
Object.defineProperty(exports, "COMPILATION_PROMPT", { enumerable: true, get: function () { return prompts_1.COMPILATION_PROMPT; } });
|
|
19
|
+
Object.defineProperty(exports, "buildRecompilationHint", { enumerable: true, get: function () { return prompts_1.buildRecompilationHint; } });
|
|
20
|
+
Object.defineProperty(exports, "VALIDATION_PROMPT", { enumerable: true, get: function () { return prompts_1.VALIDATION_PROMPT; } });
|
|
21
|
+
Object.defineProperty(exports, "EXTRACT_DEFAULT_SYSTEM_PROMPT", { enumerable: true, get: function () { return prompts_1.EXTRACT_DEFAULT_SYSTEM_PROMPT; } });
|
|
22
|
+
Object.defineProperty(exports, "EXTRACT_DEFAULT_USER_TEMPLATE", { enumerable: true, get: function () { return prompts_1.EXTRACT_DEFAULT_USER_TEMPLATE; } });
|
|
@@ -99,12 +99,12 @@ async function validate(ctx) {
|
|
|
99
99
|
const parsed = JSON.parse(cleaned);
|
|
100
100
|
if (Array.isArray(parsed.issues) && parsed.issues.length > 0) {
|
|
101
101
|
ctx.validationIssues = parsed.issues;
|
|
102
|
-
const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('
|
|
102
|
+
const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../lib/logger')));
|
|
103
103
|
loggerRegistry.warn(`[yaml-workflow] Validation issues found: ${parsed.issues.join('; ')}`);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
catch (err) {
|
|
107
|
-
const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('
|
|
107
|
+
const { loggerRegistry } = await Promise.resolve().then(() => __importStar(require('../../../lib/logger')));
|
|
108
108
|
loggerRegistry.info(`[yaml-workflow] Validation skipped: ${err}`);
|
|
109
109
|
}
|
|
110
110
|
return ctx;
|
|
@@ -4,7 +4,7 @@ exports.compactForLlm = compactForLlm;
|
|
|
4
4
|
exports.buildLlmCallback = buildLlmCallback;
|
|
5
5
|
exports.buildTransformCallback = buildTransformCallback;
|
|
6
6
|
const defaults_1 = require("../../../modules/defaults");
|
|
7
|
-
const logger_1 = require("
|
|
7
|
+
const logger_1 = require("../../../lib/logger");
|
|
8
8
|
const llm_1 = require("../../llm");
|
|
9
9
|
/** Call the LLM with messages and optional format options. */
|
|
10
10
|
async function callWorkerLLM(messages, options) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.wrapWithEvents = wrapWithEvents;
|
|
4
|
-
const logger_1 = require("
|
|
5
|
-
const publish_1 = require("
|
|
4
|
+
const logger_1 = require("../../../lib/logger");
|
|
5
|
+
const publish_1 = require("../../../lib/events/publish");
|
|
6
6
|
/**
|
|
7
7
|
* Wrap a worker callback with activity lifecycle event publishing.
|
|
8
8
|
* Publishes activity.started before and activity.completed/failed after.
|
|
@@ -36,9 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.registerWorkersForWorkflow = registerWorkersForWorkflow;
|
|
37
37
|
exports.registerAllActiveWorkers = registerAllActiveWorkers;
|
|
38
38
|
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const logger_1 = require("../../logger");
|
|
39
|
+
const db_1 = require("../../../lib/db");
|
|
40
|
+
const logger_1 = require("../../../lib/logger");
|
|
42
41
|
const ephemeral_1 = require("../../iam/ephemeral");
|
|
43
42
|
const mcpClient = __importStar(require("../../mcp/client"));
|
|
44
43
|
const yamlDb = __importStar(require("../db"));
|
|
@@ -94,7 +93,7 @@ async function registerWorkersForWorkflow(workflow) {
|
|
|
94
93
|
workerConfigs.push({
|
|
95
94
|
topic: activity.topic,
|
|
96
95
|
workflowName: activity.workflow_name,
|
|
97
|
-
connection:
|
|
96
|
+
connection: (0, db_1.getConnection)(),
|
|
98
97
|
callback: wrap((0, callbacks_1.buildTransformCallback)(activity)),
|
|
99
98
|
});
|
|
100
99
|
}
|
|
@@ -103,7 +102,7 @@ async function registerWorkersForWorkflow(workflow) {
|
|
|
103
102
|
workerConfigs.push({
|
|
104
103
|
topic: activity.topic,
|
|
105
104
|
workflowName: activity.workflow_name,
|
|
106
|
-
connection:
|
|
105
|
+
connection: (0, db_1.getConnection)(),
|
|
107
106
|
callback: wrap((0, callbacks_1.buildLlmCallback)(activity)),
|
|
108
107
|
});
|
|
109
108
|
}
|
|
@@ -116,7 +115,7 @@ async function registerWorkersForWorkflow(workflow) {
|
|
|
116
115
|
workerConfigs.push({
|
|
117
116
|
topic: activity.topic,
|
|
118
117
|
workflowName: activity.workflow_name,
|
|
119
|
-
connection:
|
|
118
|
+
connection: (0, db_1.getConnection)(),
|
|
120
119
|
callback: wrap(async (data) => {
|
|
121
120
|
const args = (data.data || {});
|
|
122
121
|
let mergedArgs = toolArgs ? { ...toolArgs, ...args } : args;
|
|
@@ -143,7 +142,7 @@ async function registerWorkersForWorkflow(workflow) {
|
|
|
143
142
|
workerConfigs.push({
|
|
144
143
|
topic: activity.topic,
|
|
145
144
|
workflowName: activity.workflow_name,
|
|
146
|
-
connection:
|
|
145
|
+
connection: (0, db_1.getConnection)(),
|
|
147
146
|
callback: wrap(async (data) => {
|
|
148
147
|
const args = (data.data || {});
|
|
149
148
|
const mergedArgs = storedArgs ? { ...storedArgs } : {};
|
|
@@ -184,8 +183,9 @@ async function registerWorkersForWorkflow(workflow) {
|
|
|
184
183
|
return;
|
|
185
184
|
await hotmesh_1.HotMesh.init({
|
|
186
185
|
appId: workflow.app_id,
|
|
186
|
+
guid: `compiled::${workflow.graph_topic}-${hotmesh_1.HotMesh.guid()}`,
|
|
187
187
|
engine: {
|
|
188
|
-
connection:
|
|
188
|
+
connection: (0, db_1.getConnection)(),
|
|
189
189
|
},
|
|
190
190
|
workers: workerConfigs,
|
|
191
191
|
});
|
package/build/start/adapters.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerAdapters = registerAdapters;
|
|
4
|
-
const logger_1 = require("../
|
|
5
|
-
const pino_1 = require("../
|
|
6
|
-
const telemetry_1 = require("../
|
|
7
|
-
const honeycomb_1 = require("../
|
|
8
|
-
const events_1 = require("../
|
|
9
|
-
const nats_1 = require("../
|
|
10
|
-
const socketio_1 = require("../
|
|
4
|
+
const logger_1 = require("../lib/logger");
|
|
5
|
+
const pino_1 = require("../lib/logger/pino");
|
|
6
|
+
const telemetry_1 = require("../lib/telemetry");
|
|
7
|
+
const honeycomb_1 = require("../lib/telemetry/honeycomb");
|
|
8
|
+
const events_1 = require("../lib/events");
|
|
9
|
+
const nats_1 = require("../lib/events/nats");
|
|
10
|
+
const socketio_1 = require("../lib/events/socketio");
|
|
11
11
|
const maintenance_1 = require("../services/maintenance");
|
|
12
12
|
const maintenance_2 = require("../modules/maintenance");
|
|
13
13
|
const mcp_1 = require("../services/mcp");
|
package/build/start/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.start = start;
|
|
4
4
|
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
5
|
-
const logger_1 = require("../
|
|
6
|
-
const telemetry_1 = require("../
|
|
7
|
-
const events_1 = require("../
|
|
5
|
+
const logger_1 = require("../lib/logger");
|
|
6
|
+
const telemetry_1 = require("../lib/telemetry");
|
|
7
|
+
const events_1 = require("../lib/events");
|
|
8
8
|
const maintenance_1 = require("../services/maintenance");
|
|
9
9
|
const cron_1 = require("../services/cron");
|
|
10
10
|
const mcp_1 = require("../services/mcp");
|
|
@@ -13,7 +13,7 @@ const config_1 = require("./config");
|
|
|
13
13
|
const adapters_1 = require("./adapters");
|
|
14
14
|
const workers_1 = require("./workers");
|
|
15
15
|
const server_1 = require("./server");
|
|
16
|
-
const socketio_1 = require("../
|
|
16
|
+
const socketio_1 = require("../lib/events/socketio");
|
|
17
17
|
/**
|
|
18
18
|
* Start Long Tail with a declarative configuration.
|
|
19
19
|
*
|
package/build/start/server.js
CHANGED
|
@@ -8,7 +8,7 @@ const fs_1 = require("fs");
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const express_1 = __importDefault(require("express"));
|
|
10
10
|
const config_1 = require("../modules/config");
|
|
11
|
-
const logger_1 = require("../
|
|
11
|
+
const logger_1 = require("../lib/logger");
|
|
12
12
|
const routes_1 = __importDefault(require("../routes"));
|
|
13
13
|
/**
|
|
14
14
|
* Create and start the embedded Express server with health check,
|
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 };
|