@hotmeshio/long-tail 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -5
- package/build/examples/seed.js +1 -1
- package/build/examples/workflows/basic-echo/activities.d.ts +2 -2
- package/build/examples/workflows/basic-echo/activities.js +7 -7
- package/build/examples/workflows/basic-echo/index.js +1 -1
- package/build/examples/workflows/kitchen-sink/index.js +2 -2
- package/build/index.d.ts +11 -10
- package/build/index.js +13 -12
- package/build/lib/db/index.d.ts +18 -0
- package/build/{services → lib}/db/index.js +9 -0
- package/build/{services → lib}/db/migrate.js +4 -7
- package/{services → build/lib}/db/schemas/001_schema.sql +3 -0
- package/{services → build/lib}/db/schemas/011_system_workflow_configs.sql +7 -0
- package/build/lib/db/schemas/015_knowledge.sql +23 -0
- package/build/lib/db/schemas/016_streamable_http.sql +7 -0
- package/build/{services → lib}/telemetry/honeycomb.d.ts +2 -2
- package/build/{services → lib}/telemetry/honeycomb.js +2 -2
- package/build/modules/defaults.d.ts +2 -0
- package/build/modules/defaults.js +3 -1
- package/build/routes/controlplane.js +1 -1
- package/build/routes/dba.js +4 -0
- package/build/routes/docs.d.ts +2 -0
- package/build/routes/docs.js +105 -0
- package/build/routes/escalations/bulk.js +120 -202
- package/build/routes/escalations/resolve.js +1 -1
- package/build/routes/escalations/single.js +1 -1
- package/build/routes/files.js +1 -1
- package/build/routes/index.js +2 -0
- package/build/routes/insight.js +65 -1
- package/build/routes/mcp.js +26 -3
- package/build/routes/oauth.js +1 -1
- package/build/routes/settings.js +4 -4
- package/build/routes/workflows/discovery.js +3 -3
- package/build/routes/workflows/invocation.js +1 -1
- package/build/routes/yaml-workflows/cron.d.ts +2 -0
- package/build/routes/yaml-workflows/cron.js +117 -0
- package/build/routes/yaml-workflows/crud.js +39 -1
- package/build/routes/yaml-workflows/deployment.js +9 -9
- package/build/routes/yaml-workflows/index.js +4 -1
- package/build/services/auth/bot-api-key.js +1 -1
- package/build/services/auth/index.d.ts +4 -0
- package/build/services/auth/index.js +17 -0
- package/build/services/auth/service-token.js +1 -1
- package/build/services/config/provider.js +1 -1
- package/build/services/config/read.js +1 -1
- package/build/services/config/write.js +1 -1
- package/build/services/controlplane/index.js +3 -4
- package/build/services/controlplane/quorum-bridge.js +2 -2
- package/build/services/cron/index.d.ts +17 -0
- package/build/services/cron/index.js +98 -6
- package/build/services/dba.d.ts +4 -0
- package/build/services/dba.js +3 -6
- package/build/services/escalation/bulk.js +1 -1
- package/build/services/escalation/crud.js +1 -1
- package/build/services/escalation/queries.js +1 -1
- package/build/services/export/client.js +2 -5
- package/build/services/export/index.js +14 -2
- package/build/services/hotmesh-utils.js +1 -1
- package/build/services/iam/bots.js +6 -12
- package/build/services/iam/context.d.ts +1 -1
- package/build/services/iam/context.js +5 -5
- package/build/services/iam/credentials.js +1 -1
- package/build/services/iam/ephemeral.js +8 -15
- package/build/services/iam/principal.js +3 -10
- package/build/services/iam/resolve.js +1 -1
- package/build/services/iam/sql.d.ts +10 -0
- package/build/services/iam/sql.js +42 -0
- package/build/services/insight/index.d.ts +12 -0
- package/build/services/insight/index.js +34 -6
- package/build/services/interceptor/activities/escalation.js +1 -1
- package/build/services/interceptor/activities/task.js +9 -6
- package/build/services/interceptor/activities/workflow.js +4 -5
- package/build/services/interceptor/activity-interceptor.d.ts +1 -1
- package/build/services/interceptor/activity-interceptor.js +5 -5
- package/build/services/interceptor/completion.js +1 -1
- package/build/services/interceptor/escalation.js +1 -1
- package/build/services/interceptor/index.js +4 -4
- package/build/services/interceptor/lifecycle.js +1 -1
- package/build/services/maintenance/index.js +4 -5
- package/build/services/mcp/adapter.js +1 -16
- package/build/services/mcp/client/connection.d.ts +10 -1
- package/build/services/mcp/client/connection.js +51 -3
- package/build/services/mcp/client/tools.js +1 -1
- package/build/services/mcp/db-server/index.js +1 -1
- package/build/services/mcp/db-server/schemas.d.ts +2 -2
- package/build/services/mcp/db-server/tools.js +17 -4
- package/build/services/mcp/db.d.ts +1 -1
- package/build/services/mcp/db.js +11 -1
- package/build/services/mcp/playwright-server/index.js +1 -1
- package/build/services/mcp/playwright-server/lifecycle.js +1 -1
- package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
- package/build/services/mcp/playwright-server/tools.js +1 -1
- package/build/services/mcp/server.js +1 -1
- package/build/services/mcp/sql.d.ts +7 -1
- package/build/services/mcp/sql.js +36 -3
- package/build/services/mcp/types.d.ts +3 -1
- package/build/services/mcp/workflow-compiler-server.js +1 -1
- package/build/services/mcp/workflow-server.js +1 -1
- package/build/services/mcp-runs/execution-builder.js +8 -6
- package/build/services/mcp-runs/queries.js +2 -2
- package/build/services/mcp-runs/sql.d.ts +4 -1
- package/build/services/mcp-runs/sql.js +23 -2
- package/build/services/namespace/index.js +1 -1
- package/build/services/oauth/db.js +9 -37
- package/build/services/oauth/index.js +1 -1
- package/build/services/oauth/providers/registry.js +1 -1
- package/build/services/oauth/sql.d.ts +7 -0
- package/build/services/oauth/sql.js +32 -0
- package/build/services/orchestrator/index.js +3 -3
- package/build/services/role/index.js +1 -1
- package/build/services/task/crud.js +1 -1
- package/build/services/task/process.js +1 -1
- package/build/services/task/resolve.js +1 -1
- package/build/services/user/auth.js +1 -1
- package/build/services/user/crud.js +1 -1
- package/build/services/user/rbac.js +1 -1
- package/build/services/user/roles.js +1 -1
- package/build/services/user/sql.d.ts +2 -0
- package/build/services/user/sql.js +3 -1
- package/build/services/yaml-workflow/db-utils.js +1 -1
- package/build/services/yaml-workflow/db.d.ts +3 -0
- package/build/services/yaml-workflow/db.js +25 -1
- package/build/services/yaml-workflow/deployer-helpers.js +1 -1
- package/build/services/yaml-workflow/deployer.js +4 -4
- package/build/services/yaml-workflow/generator.js +1 -1
- package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
- package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
- package/build/services/yaml-workflow/input-analyzer.js +16 -3
- package/build/services/yaml-workflow/invoke.d.ts +19 -0
- package/build/services/yaml-workflow/invoke.js +80 -0
- package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
- package/build/services/yaml-workflow/pipeline/build/dag.js +11 -6
- package/build/services/yaml-workflow/pipeline/build/wiring.d.ts +1 -1
- package/build/services/yaml-workflow/pipeline/build/wiring.js +89 -2
- package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
- package/build/services/yaml-workflow/pipeline/extract.js +5 -3
- package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
- package/build/services/yaml-workflow/pipeline/index.js +22 -0
- package/build/services/yaml-workflow/pipeline/prompts.d.ts +1 -1
- package/build/services/yaml-workflow/pipeline/prompts.js +44 -1
- package/build/services/yaml-workflow/pipeline/validate.js +2 -2
- package/build/services/yaml-workflow/sql.d.ts +3 -0
- package/build/services/yaml-workflow/sql.js +16 -1
- package/build/services/yaml-workflow/types.d.ts +13 -1
- package/build/services/yaml-workflow/workers/callbacks.js +10 -2
- package/build/services/yaml-workflow/workers/events.js +2 -2
- package/build/services/yaml-workflow/workers/register.js +37 -9
- package/build/start/adapters.js +7 -7
- package/build/start/index.js +4 -4
- package/build/start/server.js +1 -1
- package/build/start/workers.d.ts +1 -2
- package/build/start/workers.js +8 -7
- package/build/system/activities/claude-code.js +1 -1
- package/build/system/activities/file-storage.js +1 -1
- package/build/system/activities/knowledge.d.ts +58 -0
- package/build/system/activities/knowledge.js +128 -0
- package/build/system/activities/sql.d.ts +9 -0
- package/build/system/activities/sql.js +41 -0
- package/build/system/activities/triage/context.js +1 -1
- package/build/system/activities/triage/discovery.d.ts +2 -14
- package/build/system/activities/triage/discovery.js +5 -161
- package/build/system/activities/triage/llm.d.ts +1 -8
- package/build/system/activities/triage/llm.js +2 -28
- package/build/system/activities/triage/tools.d.ts +1 -17
- package/build/system/activities/triage/tools.js +8 -167
- package/build/system/index.js +11 -4
- package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
- package/build/system/mcp-servers/admin/escalations.js +149 -0
- package/build/system/mcp-servers/admin/index.d.ts +31 -0
- package/build/system/mcp-servers/admin/index.js +80 -0
- package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
- package/build/system/mcp-servers/admin/maintenance.js +58 -0
- package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
- package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
- package/build/system/mcp-servers/admin/schemas.js +177 -0
- package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
- package/build/system/mcp-servers/admin/tasks.js +112 -0
- package/build/system/mcp-servers/admin/users.d.ts +5 -0
- package/build/system/mcp-servers/admin/users.js +167 -0
- package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
- package/build/system/mcp-servers/admin/workflow-config.js +118 -0
- package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
- package/build/system/mcp-servers/admin/workflows.js +138 -0
- package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
- package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
- package/build/system/mcp-servers/claude-code.js +1 -1
- package/build/system/mcp-servers/db-query/index.js +1 -1
- package/build/system/mcp-servers/db-query/schemas.d.ts +2 -2
- package/build/system/mcp-servers/db-query/tools.js +17 -4
- package/build/system/mcp-servers/docs.d.ts +5 -0
- package/build/system/mcp-servers/docs.js +147 -0
- package/build/system/mcp-servers/file-storage.js +1 -1
- package/build/system/mcp-servers/http-fetch.js +1 -1
- package/build/system/mcp-servers/human-queue.js +1 -1
- package/build/system/mcp-servers/knowledge.d.ts +4 -0
- package/build/system/mcp-servers/knowledge.js +137 -0
- package/build/system/mcp-servers/oauth.js +1 -1
- package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
- package/build/system/mcp-servers/playwright/index.js +1 -1
- package/build/system/mcp-servers/playwright/schemas.d.ts +21 -10
- package/build/system/mcp-servers/playwright/schemas.js +3 -0
- package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
- package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
- package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
- package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
- package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
- package/build/system/mcp-servers/playwright-cli/index.js +1 -1
- package/build/system/mcp-servers/playwright-cli/schemas.d.ts +10 -10
- package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
- package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
- package/build/system/mcp-servers/playwright-cli/tools-capture.js +9 -3
- package/build/system/mcp-servers/translation.d.ts +14 -0
- package/build/system/mcp-servers/translation.js +130 -0
- package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
- package/build/system/mcp-servers/vision-prompts.js +9 -0
- package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
- package/build/system/mcp-servers/vision.js +258 -0
- package/build/system/mcp-servers/workflow-compiler.js +1 -1
- package/build/system/mcp-servers/workflow.js +1 -1
- package/build/system/seed/index.js +13 -2
- package/build/system/seed/server-definitions.d.ts +1961 -322
- package/build/system/seed/server-definitions.js +68 -34
- package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
- package/build/system/seed/tool-manifests-admin.js +45 -0
- package/build/system/seed/tool-manifests-browser.d.ts +1 -1
- package/build/system/seed/tool-manifests-browser.js +3 -3
- package/build/system/seed/tool-manifests-data.d.ts +62 -21
- package/build/system/seed/tool-manifests-data.js +55 -17
- package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
- package/build/system/seed/tool-manifests-knowledge.js +94 -0
- package/build/system/seed/tool-manifests-workflows.d.ts +7 -0
- package/build/system/seed/tool-manifests-workflows.js +10 -3
- package/build/system/workflows/mcp-deterministic/index.js +1 -1
- package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
- package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
- package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
- package/build/system/workflows/mcp-query/activities/llm.js +2 -27
- package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
- package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
- package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
- package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
- package/build/system/workflows/mcp-query/index.js +55 -5
- package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
- package/build/system/workflows/mcp-query/prompts.js +5 -32
- package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
- package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
- package/build/system/workflows/mcp-query/types.d.ts +2 -10
- package/build/system/workflows/mcp-query/types.js +0 -1
- package/build/system/workflows/mcp-query-router/index.js +1 -1
- package/build/system/workflows/mcp-triage/index.d.ts +2 -2
- package/build/system/workflows/mcp-triage/index.js +39 -7
- package/build/system/workflows/mcp-triage/prompts.js +7 -14
- package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
- package/build/system/workflows/mcp-triage-router/index.js +1 -1
- package/build/system/workflows/mcp-workflow-builder/activities/caches.d.ts +5 -0
- package/build/system/workflows/mcp-workflow-builder/activities/caches.js +8 -0
- package/build/system/workflows/mcp-workflow-builder/activities/index.d.ts +2 -0
- package/build/system/workflows/mcp-workflow-builder/activities/index.js +7 -0
- package/build/system/workflows/mcp-workflow-builder/activities/llm.d.ts +2 -0
- package/build/system/workflows/mcp-workflow-builder/activities/llm.js +25 -0
- package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.d.ts +5 -0
- package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.js +8 -0
- package/build/system/workflows/mcp-workflow-builder/index.d.ts +16 -0
- package/build/system/workflows/mcp-workflow-builder/index.js +229 -0
- package/build/system/workflows/mcp-workflow-builder/prompts.d.ts +8 -0
- package/build/system/workflows/mcp-workflow-builder/prompts.js +247 -0
- package/build/system/workflows/shared/discovery.d.ts +35 -0
- package/build/system/workflows/shared/discovery.js +175 -0
- package/build/system/workflows/shared/index.d.ts +7 -0
- package/build/system/workflows/shared/index.js +18 -0
- package/build/system/workflows/shared/llm-caller.d.ts +8 -0
- package/build/system/workflows/shared/llm-caller.js +31 -0
- package/build/system/workflows/shared/prompts.d.ts +2 -0
- package/build/system/workflows/shared/prompts.js +32 -0
- package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
- package/build/system/workflows/shared/strategy-advisors.js +109 -0
- package/build/system/workflows/shared/tool-executor.d.ts +11 -0
- package/build/system/workflows/shared/tool-executor.js +111 -0
- package/build/system/workflows/shared/tool-loader.d.ts +19 -0
- package/build/system/workflows/shared/tool-loader.js +97 -0
- package/build/system/workflows/shared/types.d.ts +9 -0
- package/build/system/workflows/shared/types.js +2 -0
- package/build/system/workflows/tool-result-guard.d.ts +14 -0
- package/build/system/workflows/tool-result-guard.js +78 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/mcp.d.ts +4 -3
- package/build/types/user.d.ts +2 -0
- package/build/types/yaml-workflow.d.ts +6 -2
- package/build/vitest.config.d.ts +1 -1
- package/build/vitest.integration.config.d.ts +1 -1
- package/build/workers/index.js +2 -8
- package/dashboard/dist/assets/AdminDashboard-BXkKGkb5.js +2 -0
- package/dashboard/dist/assets/AdminDashboard-BXkKGkb5.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DcH592mc.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DcH592mc.js.map +1 -0
- package/dashboard/dist/assets/BotPicker-A6LtzyuO.js +2 -0
- package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-A6LtzyuO.js.map} +1 -1
- package/dashboard/dist/assets/CollapsibleSection-C7nL2_mv.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-C7nL2_mv.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-CWFwJrSl.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CWFwJrSl.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-DbZ5c3jh.js +2 -0
- package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-DbZ5c3jh.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-ClWkmLPu.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-ClWkmLPu.js.map +1 -0
- package/dashboard/dist/assets/CustomDurationPicker-CtH2hReF.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-CtH2hReF.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-CM5ZcpPi.js +2 -0
- package/dashboard/dist/assets/DataTable-CM5ZcpPi.js.map +1 -0
- package/dashboard/dist/assets/ElapsedCell-CwqavyeC.js +2 -0
- package/dashboard/dist/assets/ElapsedCell-CwqavyeC.js.map +1 -0
- package/dashboard/dist/assets/EmptyState-BBn78pmm.js +2 -0
- package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BBn78pmm.js.map} +1 -1
- package/dashboard/dist/assets/EscalationsOverview-BcJ2E3X7.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-BcJ2E3X7.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-C1en_KZ0.js +2 -0
- package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-C1en_KZ0.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-CZTlrLQT.js +2 -0
- package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CZTlrLQT.js.map} +1 -1
- package/dashboard/dist/assets/ListToolbar-Cdbsapig.js +2 -0
- package/dashboard/dist/assets/ListToolbar-Cdbsapig.js.map +1 -0
- package/dashboard/dist/assets/McpOverview-CSpEJxKa.js +2 -0
- package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CSpEJxKa.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-9xdxgG4d.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-9xdxgG4d.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-wWLqHsd4.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-wWLqHsd4.js.map +1 -0
- package/dashboard/dist/assets/Modal-kB_P7ZOr.js +2 -0
- package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-kB_P7ZOr.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js.map +1 -0
- package/dashboard/dist/assets/PageHeader-NkOeBR05.js +2 -0
- package/dashboard/dist/assets/PageHeader-NkOeBR05.js.map +1 -0
- package/dashboard/dist/assets/PageHeaderWithStats-ywNhrmFK.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-ywNhrmFK.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-B2MQbSxy.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-B2MQbSxy.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-B7z7IdqE.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-B7z7IdqE.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-C-uHadO6.js +2 -0
- package/dashboard/dist/assets/ProcessesListPage-C-uHadO6.js.map +1 -0
- package/dashboard/dist/assets/RolePill-C1dgC-fK.js +2 -0
- package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-C1dgC-fK.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-BSxrD1vm.js +2 -0
- package/dashboard/dist/assets/RolesPage-BSxrD1vm.js.map +1 -0
- package/dashboard/dist/assets/RowActions-lYaHGI-v.js +2 -0
- package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-lYaHGI-v.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js +2 -0
- package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js.map +1 -0
- package/dashboard/dist/assets/StatCard-v2TiITVr.js +2 -0
- package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-v2TiITVr.js.map} +1 -1
- package/dashboard/dist/assets/StatusBadge-DWlxevgG.js +2 -0
- package/dashboard/dist/assets/StatusBadge-DWlxevgG.js.map +1 -0
- package/dashboard/dist/assets/StepIndicator-CRM4ft28.js +2 -0
- package/dashboard/dist/assets/StepIndicator-CRM4ft28.js.map +1 -0
- package/dashboard/dist/assets/StickyPagination-CF0EToEU.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CF0EToEU.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-CNlj7fgg.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-CNlj7fgg.js.map +1 -0
- package/dashboard/dist/assets/TagInput-CH8qMGhC.js +2 -0
- package/dashboard/dist/assets/TagInput-CH8qMGhC.js.map +1 -0
- package/dashboard/dist/assets/TaskDetailPage-CdWo-6mu.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-CdWo-6mu.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-BPj4ogVG.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BPj4ogVG.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-CtRkMpKU.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-CtRkMpKU.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-Di1a3X5P.js +2 -0
- package/dashboard/dist/assets/TimeAgo-Di1a3X5P.js.map +1 -0
- package/dashboard/dist/assets/TimestampCell-CqrXql-S.js +2 -0
- package/dashboard/dist/assets/TimestampCell-CqrXql-S.js.map +1 -0
- package/dashboard/dist/assets/UserName-BUFYCnRa.js +2 -0
- package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-BUFYCnRa.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-25iusMml.js +2 -0
- package/dashboard/dist/assets/WorkflowExecutionPage-25iusMml.js.map +1 -0
- package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-BgxslssH.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-BgxslssH.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-Doe5L-Re.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-Doe5L-Re.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js.map +1 -0
- package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-Bi2_O1Ts.js} +2 -2
- package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-Bi2_O1Ts.js.map} +1 -1
- package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
- package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
- package/dashboard/dist/assets/escalation-Ck1KlLkT.js +2 -0
- package/dashboard/dist/assets/escalation-Ck1KlLkT.js.map +1 -0
- package/dashboard/dist/assets/escalation-columns-ohDsj2eJ.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-ohDsj2eJ.js.map} +1 -1
- package/dashboard/dist/assets/helpers-BoD2SgUY.js +2 -0
- package/dashboard/dist/assets/helpers-BoD2SgUY.js.map +1 -0
- package/dashboard/dist/assets/index-BEtLIsML.js +2 -0
- package/dashboard/dist/assets/index-BEtLIsML.js.map +1 -0
- package/dashboard/dist/assets/index-Bn2xHDr8.js +5 -0
- package/dashboard/dist/assets/index-Bn2xHDr8.js.map +1 -0
- package/dashboard/dist/assets/index-BpT-6WgJ.js +2 -0
- package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BpT-6WgJ.js.map} +1 -1
- package/dashboard/dist/assets/index-CZrJ09p-.js +2 -0
- package/dashboard/dist/assets/index-CZrJ09p-.js.map +1 -0
- package/dashboard/dist/assets/index-D3NyVADW.js +2 -0
- package/dashboard/dist/assets/index-D3NyVADW.js.map +1 -0
- package/dashboard/dist/assets/index-D7zYZOnH.js +2 -0
- package/dashboard/dist/assets/index-D7zYZOnH.js.map +1 -0
- package/dashboard/dist/assets/index-DOkHXmyf.js +17 -0
- package/dashboard/dist/assets/index-DOkHXmyf.js.map +1 -0
- package/dashboard/dist/assets/index-DYyLF-Qb.js +281 -0
- package/dashboard/dist/assets/index-DYyLF-Qb.js.map +1 -0
- package/dashboard/dist/assets/index-Dk2Q51o0.js +2 -0
- package/dashboard/dist/assets/index-Dk2Q51o0.js.map +1 -0
- package/dashboard/dist/assets/index-FuohTtaM.js +6 -0
- package/dashboard/dist/assets/index-FuohTtaM.js.map +1 -0
- package/dashboard/dist/assets/index-PyCTS05D.css +1 -0
- package/dashboard/dist/assets/mcp-CJtYjA7A.js +2 -0
- package/dashboard/dist/assets/mcp-CJtYjA7A.js.map +1 -0
- package/dashboard/dist/assets/mcp-query-jQJQrs_7.js +2 -0
- package/dashboard/dist/assets/mcp-query-jQJQrs_7.js.map +1 -0
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DUWm9Z4V.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DUWm9Z4V.js.map} +1 -1
- package/dashboard/dist/assets/namespaces-BM5P2qmL.js +2 -0
- package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-BM5P2qmL.js.map} +1 -1
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-lv0shpjJ.js} +2 -2
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-lv0shpjJ.js.map} +1 -1
- package/dashboard/dist/assets/settings-Wlq92mRo.js +2 -0
- package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-Wlq92mRo.js.map} +1 -1
- package/dashboard/dist/assets/tasks-BFGm4PuE.js +2 -0
- package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-BFGm4PuE.js.map} +1 -1
- package/dashboard/dist/assets/useEventHooks-DIE6ue4x.js +2 -0
- package/dashboard/dist/assets/useEventHooks-DIE6ue4x.js.map +1 -0
- package/dashboard/dist/assets/useExpandedRows-Cg9iq6Vy.js +2 -0
- package/dashboard/dist/assets/useExpandedRows-Cg9iq6Vy.js.map +1 -0
- package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-DCwSO73t.js} +2 -2
- package/dashboard/dist/assets/useYamlActivityEvents-DCwSO73t.js.map +1 -0
- package/dashboard/dist/assets/{users-tMvNyOo8.js → users-tA5-K0wA.js} +2 -2
- package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-tA5-K0wA.js.map} +1 -1
- package/dashboard/dist/assets/vendor-icons-BiIug1SK.js +402 -0
- package/dashboard/dist/assets/vendor-icons-BiIug1SK.js.map +1 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-CfLc15Wr.js} +2 -2
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-CfLc15Wr.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js.map +1 -0
- package/dashboard/dist/index.html +5 -5
- package/docs/api/dba.md +81 -0
- package/docs/api/escalations.md +575 -0
- package/docs/api/exports.md +170 -0
- package/docs/api/maintenance.md +93 -0
- package/docs/api/mcp-runs.md +128 -0
- package/docs/api/mcp-servers.md +253 -0
- package/docs/api/namespaces.md +48 -0
- package/docs/api/roles.md +390 -0
- package/docs/api/service-accounts.md +188 -0
- package/docs/api/settings.md +33 -0
- package/docs/api/tasks.md +167 -0
- package/docs/api/users.md +180 -0
- package/docs/api/workflows.md +616 -0
- package/docs/api/yaml-workflows.md +312 -0
- package/docs/architecture.md +221 -0
- package/docs/auth.md +181 -0
- package/docs/cloud.md +272 -0
- package/docs/compilation.md +136 -0
- package/docs/contributing.md +56 -0
- package/docs/dashboard.md +145 -0
- package/docs/data.md +478 -0
- package/docs/escalation-strategies.md +263 -0
- package/docs/events.md +251 -0
- package/docs/iam.md +222 -0
- package/docs/img/01-login.png +0 -0
- package/docs/img/02-dashboard-home.png +0 -0
- package/docs/img/03-processes-list.png +0 -0
- package/docs/img/04-escalations-list.png +0 -0
- package/docs/img/05-mcp-servers.png +0 -0
- package/docs/img/06-mcp-pipelines.png +0 -0
- package/docs/img/07-workflows-list.png +0 -0
- package/docs/img/compilation/01-query-submit.png +0 -0
- package/docs/img/compilation/02-mcp-servers.png +0 -0
- package/docs/img/compilation/03-query-completed.png +0 -0
- package/docs/img/compilation/04-wizard-original.png +0 -0
- package/docs/img/compilation/05-wizard-timeline.png +0 -0
- package/docs/img/compilation/06-wizard-profile.png +0 -0
- package/docs/img/compilation/07-wizard-deploy.png +0 -0
- package/docs/img/compilation/08-wizard-test-modal.png +0 -0
- package/docs/img/compilation/09-wizard-test-compare.png +0 -0
- package/docs/img/compilation/10-wizard-verify.png +0 -0
- package/docs/logging.md +110 -0
- package/docs/maintenance.md +221 -0
- package/docs/mcp.md +985 -0
- package/docs/oauth-and-delegation.md +469 -0
- package/docs/telemetry.md +144 -0
- package/docs/workflows.md +695 -0
- package/package.json +8 -9
- package/build/services/db/index.d.ts +0 -3
- package/build/services/mcp/vision-server.d.ts +0 -15
- package/build/services/mcp/vision-server.js +0 -214
- package/build/system/mcp-servers/document-vision.js +0 -228
- package/build/system/mcp-servers/prompts.d.ts +0 -4
- package/build/system/mcp-servers/prompts.js +0 -10
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
- package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
- package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
- package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js.map +0 -1
- package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
- package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
- package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
- package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
- package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
- package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
- package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
- package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
- package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
- package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
- package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
- package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
- package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
- package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
- package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
- package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
- package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
- package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
- package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
- package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
- package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
- package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
- package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
- package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
- package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
- package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
- package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
- package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
- package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
- package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
- package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
- package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
- package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
- package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
- package/dashboard/dist/assets/index-X85K5bHC.js.map +0 -1
- package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
- package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
- package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
- package/dashboard/dist/assets/mcp-blCW6IL7.js.map +0 -1
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
- package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
- package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
- package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
- package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js +0 -2
- package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js.map +0 -1
- package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js +0 -292
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
- package/services/db/README.md +0 -8
- /package/build/{services → lib}/db/migrate.d.ts +0 -0
- /package/{services → build/lib}/db/schemas/002_seed.sql +0 -0
- /package/{services → build/lib}/db/schemas/003_workflow_discovery.sql +0 -0
- /package/{services → build/lib}/db/schemas/004_query_router.sql +0 -0
- /package/{services → build/lib}/db/schemas/005_triage_router.sql +0 -0
- /package/{services → build/lib}/db/schemas/006_oauth.sql +0 -0
- /package/{services → build/lib}/db/schemas/007_security.sql +0 -0
- /package/{services → build/lib}/db/schemas/008_bot_accounts.sql +0 -0
- /package/{services → build/lib}/db/schemas/009_audit_trail.sql +0 -0
- /package/{services → build/lib}/db/schemas/010_credential_providers.sql +0 -0
- /package/{services → build/lib}/db/schemas/012_drop_modality.sql +0 -0
- /package/{services → build/lib}/db/schemas/013_execute_as.sql +0 -0
- /package/{services → build/lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
- /package/build/{services → lib}/events/index.d.ts +0 -0
- /package/build/{services → lib}/events/index.js +0 -0
- /package/build/{services → lib}/events/memory.d.ts +0 -0
- /package/build/{services → lib}/events/memory.js +0 -0
- /package/build/{services → lib}/events/nats.d.ts +0 -0
- /package/build/{services → lib}/events/nats.js +0 -0
- /package/build/{services → lib}/events/publish.d.ts +0 -0
- /package/build/{services → lib}/events/publish.js +0 -0
- /package/build/{services → lib}/events/socketio.d.ts +0 -0
- /package/build/{services → lib}/events/socketio.js +0 -0
- /package/build/{services → lib}/logger/index.d.ts +0 -0
- /package/build/{services → lib}/logger/index.js +0 -0
- /package/build/{services → lib}/logger/pino.d.ts +0 -0
- /package/build/{services → lib}/logger/pino.js +0 -0
- /package/build/{services → lib}/storage/index.d.ts +0 -0
- /package/build/{services → lib}/storage/index.js +0 -0
- /package/build/{services → lib}/storage/local.d.ts +0 -0
- /package/build/{services → lib}/storage/local.js +0 -0
- /package/build/{services → lib}/storage/s3.d.ts +0 -0
- /package/build/{services → lib}/storage/s3.js +0 -0
- /package/build/{services → lib}/storage/types.d.ts +0 -0
- /package/build/{services → lib}/storage/types.js +0 -0
- /package/build/{services → lib}/telemetry/index.d.ts +0 -0
- /package/build/{services → lib}/telemetry/index.js +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Long Tail
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Turn your PostgreSQL database into a workflow engine with identity-aware durable execution, human-in-the-loop escalation, and MCP tool orchestration.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npm install @hotmeshio/long-tail
|
|
@@ -82,9 +82,39 @@ curl -X PUT http://localhost:3000/api/workflows/reviewContent/config \
|
|
|
82
82
|
|
|
83
83
|
De-certifying removes the interceptor. The workflow continues as a standard durable workflow — same code, different guarantees.
|
|
84
84
|
|
|
85
|
-
## Register
|
|
85
|
+
## Register MCP Servers
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
Long Tail connects to any MCP server — an npm package, a remote service, or one you write yourself. Registered tools become durable activities and are available to the Pipeline Designer.
|
|
88
|
+
|
|
89
|
+
**Use an existing package** — no code, just register:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
curl -X POST http://localhost:3000/api/mcp/servers \
|
|
93
|
+
-H 'Content-Type: application/json' \
|
|
94
|
+
-d '{
|
|
95
|
+
"name": "filesystem",
|
|
96
|
+
"transport_type": "stdio",
|
|
97
|
+
"transport_config": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"] },
|
|
98
|
+
"tags": ["files", "storage"],
|
|
99
|
+
"auto_connect": true
|
|
100
|
+
}'
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Connect a remote server** — point at a URL:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
curl -X POST http://localhost:3000/api/mcp/servers \
|
|
107
|
+
-H 'Content-Type: application/json' \
|
|
108
|
+
-d '{
|
|
109
|
+
"name": "my-python-server",
|
|
110
|
+
"transport_type": "sse",
|
|
111
|
+
"transport_config": { "url": "http://python-service:8000/mcp" },
|
|
112
|
+
"tags": ["ml", "classification"],
|
|
113
|
+
"compile_hints": "Returns confidence scores. Use threshold 0.85 for auto-approve."
|
|
114
|
+
}'
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Write your own** and register it in-process:
|
|
88
118
|
|
|
89
119
|
```typescript
|
|
90
120
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
@@ -106,8 +136,6 @@ export function createImageToolsServer(): McpServer {
|
|
|
106
136
|
}
|
|
107
137
|
```
|
|
108
138
|
|
|
109
|
-
Register it at startup and it appears in the dashboard:
|
|
110
|
-
|
|
111
139
|
```typescript
|
|
112
140
|
const lt = await start({
|
|
113
141
|
// ...
|
|
@@ -117,6 +145,8 @@ const lt = await start({
|
|
|
117
145
|
});
|
|
118
146
|
```
|
|
119
147
|
|
|
148
|
+
All three paths produce the same outcome: tools callable as durable activities. Tags enable discovery. Compile hints guide the compiler when tools are compiled into deterministic pipelines. See the [MCP guide](docs/mcp.md) for the full registration lifecycle.
|
|
149
|
+
|
|
120
150
|
## Ask It Anything
|
|
121
151
|
|
|
122
152
|
Once your tools are registered, the Pipeline Designer orchestrates them. Describe what you need in plain language:
|
package/build/examples/seed.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.seedExamples = seedExamples;
|
|
4
4
|
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
5
5
|
const defaults_1 = require("../modules/defaults");
|
|
6
|
-
const logger_1 = require("../
|
|
6
|
+
const logger_1 = require("../lib/logger");
|
|
7
7
|
const user_1 = require("../services/user");
|
|
8
8
|
const roles_1 = require("../services/user/roles");
|
|
9
9
|
const role_1 = require("../services/role");
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* 1. `getActivityIdentity()` — recommended: one-call access to principal + credential exchange
|
|
8
8
|
* 2. `getToolContext()` — lower-level access to ToolContext (principal, scopes, trace)
|
|
9
|
-
* 3. `Durable.activity.getContext()` — raw HotMesh API for
|
|
9
|
+
* 3. `Durable.activity.getContext()` — raw HotMesh API for headers
|
|
10
10
|
*
|
|
11
|
-
* All work across process boundaries because
|
|
11
|
+
* All work across process boundaries because headers travels
|
|
12
12
|
* with the activity call via HotMesh's schema pipeline.
|
|
13
13
|
*/
|
|
14
14
|
export declare function echo(input: {
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* 1. `getActivityIdentity()` — recommended: one-call access to principal + credential exchange
|
|
9
9
|
* 2. `getToolContext()` — lower-level access to ToolContext (principal, scopes, trace)
|
|
10
|
-
* 3. `Durable.activity.getContext()` — raw HotMesh API for
|
|
10
|
+
* 3. `Durable.activity.getContext()` — raw HotMesh API for headers
|
|
11
11
|
*
|
|
12
|
-
* All work across process boundaries because
|
|
12
|
+
* All work across process boundaries because headers travels
|
|
13
13
|
* with the activity call via HotMesh's schema pipeline.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -20,11 +20,11 @@ async function echo(input) {
|
|
|
20
20
|
// Recommended: getActivityIdentity() — principal + getCredential() in one call
|
|
21
21
|
// const identity = getActivityIdentity();
|
|
22
22
|
// const token = await identity.getCredential('anthropic'); // credential exchange
|
|
23
|
-
// Primary: getToolContext() reads from
|
|
23
|
+
// Primary: getToolContext() reads from headers (injected by activity interceptor)
|
|
24
24
|
const ctx = (0, context_1.getToolContext)();
|
|
25
|
-
// Direct access: Durable.activity.getContext() shows the raw
|
|
25
|
+
// Direct access: Durable.activity.getContext() shows the raw headers
|
|
26
26
|
const activityCtx = hotmesh_1.Durable.activity.getContext();
|
|
27
|
-
const rawPrincipal = activityCtx?.
|
|
27
|
+
const rawPrincipal = activityCtx?.headers?.principal;
|
|
28
28
|
const identity = ctx
|
|
29
29
|
? {
|
|
30
30
|
source: 'getActivityIdentity',
|
|
@@ -40,12 +40,12 @@ async function echo(input) {
|
|
|
40
40
|
}
|
|
41
41
|
: rawPrincipal
|
|
42
42
|
? {
|
|
43
|
-
source: '
|
|
43
|
+
source: 'headers',
|
|
44
44
|
principal: rawPrincipal,
|
|
45
45
|
}
|
|
46
46
|
: {
|
|
47
47
|
source: 'unavailable',
|
|
48
|
-
note: 'no principal in envelope or
|
|
48
|
+
note: 'no principal in envelope or headers',
|
|
49
49
|
};
|
|
50
50
|
return {
|
|
51
51
|
message: input.message,
|
|
@@ -53,7 +53,7 @@ const { echo } = hotmesh_1.Durable.workflow.proxyActivities({
|
|
|
53
53
|
});
|
|
54
54
|
async function basicEcho(envelope) {
|
|
55
55
|
const { message = 'Hello, Long Tail!', sleepSeconds = 1 } = envelope.data;
|
|
56
|
-
await hotmesh_1.Durable.workflow.
|
|
56
|
+
await hotmesh_1.Durable.workflow.sleep(`${sleepSeconds} seconds`);
|
|
57
57
|
const echoResult = await echo({ message });
|
|
58
58
|
return {
|
|
59
59
|
type: 'return',
|
|
@@ -58,7 +58,7 @@ const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
|
58
58
|
const activities = __importStar(require("./activities"));
|
|
59
59
|
const { greet, fetchData, transformData, notifyComplete } = hotmesh_1.Durable.workflow.proxyActivities({
|
|
60
60
|
activities,
|
|
61
|
-
|
|
61
|
+
retry: {
|
|
62
62
|
maximumAttempts: 3,
|
|
63
63
|
backoffCoefficient: 2,
|
|
64
64
|
maximumInterval: '10 seconds',
|
|
@@ -74,7 +74,7 @@ async function kitchenSink(envelope) {
|
|
|
74
74
|
// ── 2. Durable sleep ──────────────────────────────────────────────────
|
|
75
75
|
// Survives crashes. If the process restarts during the sleep, it resumes
|
|
76
76
|
// where it left off — no drift, no double-execution.
|
|
77
|
-
await hotmesh_1.Durable.workflow.
|
|
77
|
+
await hotmesh_1.Durable.workflow.sleep('2 seconds');
|
|
78
78
|
// ── 3. Parallel activities ────────────────────────────────────────────
|
|
79
79
|
// Promise.all works naturally. Both activities run concurrently and each
|
|
80
80
|
// is independently checkpointed.
|
package/build/index.d.ts
CHANGED
|
@@ -10,15 +10,15 @@ export * as EscalationService from './services/escalation';
|
|
|
10
10
|
export * as ConfigService from './services/config';
|
|
11
11
|
export * as UserService from './services/user';
|
|
12
12
|
export { ltConfig } from './modules/ltconfig';
|
|
13
|
-
export { eventRegistry } from './
|
|
14
|
-
export { NatsEventAdapter } from './
|
|
15
|
-
export { InMemoryEventAdapter } from './
|
|
16
|
-
export { SocketIOEventAdapter } from './
|
|
17
|
-
export { publishMilestoneEvent, publishTaskEvent, publishEscalationEvent, publishWorkflowEvent } from './
|
|
18
|
-
export { telemetryRegistry } from './
|
|
19
|
-
export { HoneycombTelemetryAdapter } from './
|
|
20
|
-
export { loggerRegistry } from './
|
|
21
|
-
export { PinoLoggerAdapter } from './
|
|
13
|
+
export { eventRegistry } from './lib/events';
|
|
14
|
+
export { NatsEventAdapter } from './lib/events/nats';
|
|
15
|
+
export { InMemoryEventAdapter } from './lib/events/memory';
|
|
16
|
+
export { SocketIOEventAdapter } from './lib/events/socketio';
|
|
17
|
+
export { publishMilestoneEvent, publishTaskEvent, publishEscalationEvent, publishWorkflowEvent } from './lib/events/publish';
|
|
18
|
+
export { telemetryRegistry } from './lib/telemetry';
|
|
19
|
+
export { HoneycombTelemetryAdapter } from './lib/telemetry/honeycomb';
|
|
20
|
+
export { loggerRegistry } from './lib/logger';
|
|
21
|
+
export { PinoLoggerAdapter } from './lib/logger/pino';
|
|
22
22
|
export { maintenanceRegistry } from './services/maintenance';
|
|
23
23
|
export { defaultMaintenanceConfig } from './modules/maintenance';
|
|
24
24
|
export { mcpRegistry } from './services/mcp';
|
|
@@ -26,7 +26,8 @@ export { BuiltInMcpAdapter } from './services/mcp/adapter';
|
|
|
26
26
|
export * as McpService from './services/mcp/db';
|
|
27
27
|
export * as McpClient from './services/mcp/client';
|
|
28
28
|
export * as McpServer from './services/mcp/server';
|
|
29
|
-
export * as
|
|
29
|
+
export * as McpTranslationServer from './system/mcp-servers/translation';
|
|
30
|
+
export * as McpVisionServer from './system/mcp-servers/vision';
|
|
30
31
|
export { escalationStrategyRegistry } from './services/escalation-strategy';
|
|
31
32
|
export { DefaultEscalationStrategy } from './services/escalation-strategy/default';
|
|
32
33
|
export { McpEscalationStrategy } from './services/escalation-strategy/mcp';
|
package/build/index.js
CHANGED
|
@@ -36,9 +36,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
};
|
|
37
37
|
})();
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.seedSystemMcpServers = exports.builtinMcpServerFactories = exports.getSystemWorkers = exports.registerMcpTool = exports.getToolContext = exports.getActivityIdentity = exports.seedExamples = exports.exampleWorkers = exports.McpEscalationStrategy = exports.DefaultEscalationStrategy = exports.escalationStrategyRegistry = exports.McpVisionServer = exports.McpServer = exports.McpClient = exports.McpService = exports.BuiltInMcpAdapter = exports.mcpRegistry = exports.defaultMaintenanceConfig = exports.maintenanceRegistry = exports.PinoLoggerAdapter = exports.loggerRegistry = exports.HoneycombTelemetryAdapter = exports.telemetryRegistry = exports.publishWorkflowEvent = exports.publishEscalationEvent = exports.publishTaskEvent = exports.publishMilestoneEvent = exports.SocketIOEventAdapter = exports.InMemoryEventAdapter = exports.NatsEventAdapter = exports.eventRegistry = exports.ltConfig = exports.UserService = exports.ConfigService = exports.EscalationService = exports.TaskService = exports.signToken = exports.requireAdmin = exports.requireAuth = exports.createAuthMiddleware = exports.JwtAuthAdapter = exports.executeLT = exports.createLTActivityInterceptor = exports.createLTInterceptor = exports.registerLT = exports.start = void 0;
|
|
39
|
+
exports.seedSystemMcpServers = exports.builtinMcpServerFactories = exports.getSystemWorkers = exports.registerMcpTool = exports.getToolContext = exports.getActivityIdentity = exports.seedExamples = exports.exampleWorkers = exports.McpEscalationStrategy = exports.DefaultEscalationStrategy = exports.escalationStrategyRegistry = exports.McpVisionServer = exports.McpTranslationServer = exports.McpServer = exports.McpClient = exports.McpService = exports.BuiltInMcpAdapter = exports.mcpRegistry = exports.defaultMaintenanceConfig = exports.maintenanceRegistry = exports.PinoLoggerAdapter = exports.loggerRegistry = exports.HoneycombTelemetryAdapter = exports.telemetryRegistry = exports.publishWorkflowEvent = exports.publishEscalationEvent = exports.publishTaskEvent = exports.publishMilestoneEvent = exports.SocketIOEventAdapter = exports.InMemoryEventAdapter = exports.NatsEventAdapter = exports.eventRegistry = exports.ltConfig = exports.UserService = exports.ConfigService = exports.EscalationService = exports.TaskService = exports.signToken = exports.requireAdmin = exports.requireAuth = exports.createAuthMiddleware = exports.JwtAuthAdapter = exports.executeLT = exports.createLTActivityInterceptor = exports.createLTInterceptor = exports.registerLT = exports.start = void 0;
|
|
40
40
|
const config_1 = require("./modules/config");
|
|
41
|
-
const logger_1 = require("./
|
|
41
|
+
const logger_1 = require("./lib/logger");
|
|
42
42
|
const start_1 = require("./start");
|
|
43
43
|
// ─── Package Exports ─────────────────────────────────────────────────────────
|
|
44
44
|
var start_2 = require("./start");
|
|
@@ -63,26 +63,26 @@ exports.ConfigService = __importStar(require("./services/config"));
|
|
|
63
63
|
exports.UserService = __importStar(require("./services/user"));
|
|
64
64
|
var ltconfig_1 = require("./modules/ltconfig");
|
|
65
65
|
Object.defineProperty(exports, "ltConfig", { enumerable: true, get: function () { return ltconfig_1.ltConfig; } });
|
|
66
|
-
var events_1 = require("./
|
|
66
|
+
var events_1 = require("./lib/events");
|
|
67
67
|
Object.defineProperty(exports, "eventRegistry", { enumerable: true, get: function () { return events_1.eventRegistry; } });
|
|
68
|
-
var nats_1 = require("./
|
|
68
|
+
var nats_1 = require("./lib/events/nats");
|
|
69
69
|
Object.defineProperty(exports, "NatsEventAdapter", { enumerable: true, get: function () { return nats_1.NatsEventAdapter; } });
|
|
70
|
-
var memory_1 = require("./
|
|
70
|
+
var memory_1 = require("./lib/events/memory");
|
|
71
71
|
Object.defineProperty(exports, "InMemoryEventAdapter", { enumerable: true, get: function () { return memory_1.InMemoryEventAdapter; } });
|
|
72
|
-
var socketio_1 = require("./
|
|
72
|
+
var socketio_1 = require("./lib/events/socketio");
|
|
73
73
|
Object.defineProperty(exports, "SocketIOEventAdapter", { enumerable: true, get: function () { return socketio_1.SocketIOEventAdapter; } });
|
|
74
|
-
var publish_1 = require("./
|
|
74
|
+
var publish_1 = require("./lib/events/publish");
|
|
75
75
|
Object.defineProperty(exports, "publishMilestoneEvent", { enumerable: true, get: function () { return publish_1.publishMilestoneEvent; } });
|
|
76
76
|
Object.defineProperty(exports, "publishTaskEvent", { enumerable: true, get: function () { return publish_1.publishTaskEvent; } });
|
|
77
77
|
Object.defineProperty(exports, "publishEscalationEvent", { enumerable: true, get: function () { return publish_1.publishEscalationEvent; } });
|
|
78
78
|
Object.defineProperty(exports, "publishWorkflowEvent", { enumerable: true, get: function () { return publish_1.publishWorkflowEvent; } });
|
|
79
|
-
var telemetry_1 = require("./
|
|
79
|
+
var telemetry_1 = require("./lib/telemetry");
|
|
80
80
|
Object.defineProperty(exports, "telemetryRegistry", { enumerable: true, get: function () { return telemetry_1.telemetryRegistry; } });
|
|
81
|
-
var honeycomb_1 = require("./
|
|
81
|
+
var honeycomb_1 = require("./lib/telemetry/honeycomb");
|
|
82
82
|
Object.defineProperty(exports, "HoneycombTelemetryAdapter", { enumerable: true, get: function () { return honeycomb_1.HoneycombTelemetryAdapter; } });
|
|
83
|
-
var logger_2 = require("./
|
|
83
|
+
var logger_2 = require("./lib/logger");
|
|
84
84
|
Object.defineProperty(exports, "loggerRegistry", { enumerable: true, get: function () { return logger_2.loggerRegistry; } });
|
|
85
|
-
var pino_1 = require("./
|
|
85
|
+
var pino_1 = require("./lib/logger/pino");
|
|
86
86
|
Object.defineProperty(exports, "PinoLoggerAdapter", { enumerable: true, get: function () { return pino_1.PinoLoggerAdapter; } });
|
|
87
87
|
var maintenance_1 = require("./services/maintenance");
|
|
88
88
|
Object.defineProperty(exports, "maintenanceRegistry", { enumerable: true, get: function () { return maintenance_1.maintenanceRegistry; } });
|
|
@@ -95,7 +95,8 @@ Object.defineProperty(exports, "BuiltInMcpAdapter", { enumerable: true, get: fun
|
|
|
95
95
|
exports.McpService = __importStar(require("./services/mcp/db"));
|
|
96
96
|
exports.McpClient = __importStar(require("./services/mcp/client"));
|
|
97
97
|
exports.McpServer = __importStar(require("./services/mcp/server"));
|
|
98
|
-
exports.
|
|
98
|
+
exports.McpTranslationServer = __importStar(require("./system/mcp-servers/translation"));
|
|
99
|
+
exports.McpVisionServer = __importStar(require("./system/mcp-servers/vision"));
|
|
99
100
|
var escalation_strategy_1 = require("./services/escalation-strategy");
|
|
100
101
|
Object.defineProperty(exports, "escalationStrategyRegistry", { enumerable: true, get: function () { return escalation_strategy_1.escalationStrategyRegistry; } });
|
|
101
102
|
var default_1 = require("./services/escalation-strategy/default");
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Client, Pool } from 'pg';
|
|
2
|
+
export declare function getPool(): Pool;
|
|
3
|
+
export declare function closePool(): Promise<void>;
|
|
4
|
+
/**
|
|
5
|
+
* HotMesh connection descriptor: `{ class: Client, options: postgres_options }`.
|
|
6
|
+
* Use this everywhere HotMesh / Durable APIs need a connection config
|
|
7
|
+
* instead of importing `pg` and `postgres_options` directly.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getConnection(): {
|
|
10
|
+
class: typeof Client;
|
|
11
|
+
options: {
|
|
12
|
+
host: string;
|
|
13
|
+
port: number;
|
|
14
|
+
user: string;
|
|
15
|
+
password: string;
|
|
16
|
+
database: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPool = getPool;
|
|
4
4
|
exports.closePool = closePool;
|
|
5
|
+
exports.getConnection = getConnection;
|
|
5
6
|
const pg_1 = require("pg");
|
|
6
7
|
const config_1 = require("../../modules/config");
|
|
7
8
|
let pool = null;
|
|
@@ -17,3 +18,11 @@ async function closePool() {
|
|
|
17
18
|
pool = null;
|
|
18
19
|
}
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* HotMesh connection descriptor: `{ class: Client, options: postgres_options }`.
|
|
23
|
+
* Use this everywhere HotMesh / Durable APIs need a connection config
|
|
24
|
+
* instead of importing `pg` and `postgres_options` directly.
|
|
25
|
+
*/
|
|
26
|
+
function getConnection() {
|
|
27
|
+
return { class: pg_1.Client, options: config_1.postgres_options };
|
|
28
|
+
}
|
|
@@ -38,12 +38,9 @@ const fs = __importStar(require("fs"));
|
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const index_1 = require("./index");
|
|
40
40
|
const logger_1 = require("../logger");
|
|
41
|
-
//
|
|
42
|
-
// In
|
|
43
|
-
const
|
|
44
|
-
const SCHEMAS_DIR = fs.existsSync(devPath)
|
|
45
|
-
? devPath
|
|
46
|
-
: path.join(__dirname, '..', '..', '..', 'services', 'db', 'schemas');
|
|
41
|
+
// Both dev (lib/db/) and build (build/lib/db/) have schemas/ as a sibling.
|
|
42
|
+
// In dev it exists naturally; in build it's copied by the build script.
|
|
43
|
+
const SCHEMAS_DIR = path.join(__dirname, 'schemas');
|
|
47
44
|
async function migrate() {
|
|
48
45
|
const pool = (0, index_1.getPool)();
|
|
49
46
|
// ensure migration tracking table
|
|
@@ -68,7 +65,7 @@ async function migrate() {
|
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
|
-
// run directly: npx ts-node
|
|
68
|
+
// run directly: npx ts-node lib/db/migrate.ts
|
|
72
69
|
if (require.main === module) {
|
|
73
70
|
require('dotenv').config();
|
|
74
71
|
migrate()
|
|
@@ -258,6 +258,9 @@ CREATE TABLE IF NOT EXISTS lt_yaml_workflows (
|
|
|
258
258
|
tags TEXT[] NOT NULL DEFAULT '{}',
|
|
259
259
|
input_field_meta JSONB NOT NULL DEFAULT '[]'::JSONB,
|
|
260
260
|
metadata JSONB,
|
|
261
|
+
cron_schedule TEXT,
|
|
262
|
+
cron_envelope JSONB,
|
|
263
|
+
execute_as TEXT,
|
|
261
264
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
262
265
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
263
266
|
);
|
|
@@ -10,6 +10,9 @@ VALUES
|
|
|
10
10
|
'{}'),
|
|
11
11
|
('mcpTriage', 'long-tail-system', 'engineer', false,
|
|
12
12
|
'Dynamic MCP triage — LLM agentic loop for escalation remediation',
|
|
13
|
+
'{}'),
|
|
14
|
+
('mcpWorkflowBuilder', 'long-tail-system', 'engineer', false,
|
|
15
|
+
'Direct pipeline builder — LLM constructs DAG from tool schemas',
|
|
13
16
|
'{}')
|
|
14
17
|
ON CONFLICT (workflow_type) DO NOTHING;
|
|
15
18
|
|
|
@@ -21,3 +24,7 @@ ON CONFLICT (workflow_type, role) DO NOTHING;
|
|
|
21
24
|
INSERT INTO lt_config_roles (workflow_type, role)
|
|
22
25
|
SELECT 'mcpTriage', unnest(ARRAY['reviewer', 'engineer', 'admin'])
|
|
23
26
|
ON CONFLICT (workflow_type, role) DO NOTHING;
|
|
27
|
+
|
|
28
|
+
INSERT INTO lt_config_roles (workflow_type, role)
|
|
29
|
+
SELECT 'mcpWorkflowBuilder', unnest(ARRAY['reviewer', 'engineer', 'admin'])
|
|
30
|
+
ON CONFLICT (workflow_type, role) DO NOTHING;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- Long Tail Knowledge Store
|
|
2
|
+
-- Persistent JSONB memory for autonomous agents. Each entry lives in a domain
|
|
3
|
+
-- (lightweight namespace) and is keyed by a human-readable string.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS lt_knowledge (
|
|
6
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
7
|
+
domain TEXT NOT NULL,
|
|
8
|
+
key TEXT NOT NULL,
|
|
9
|
+
data JSONB NOT NULL DEFAULT '{}',
|
|
10
|
+
tags TEXT[] NOT NULL DEFAULT '{}',
|
|
11
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
12
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
13
|
+
UNIQUE(domain, key)
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_lt_knowledge_domain ON lt_knowledge (domain);
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_lt_knowledge_tags ON lt_knowledge USING GIN (tags);
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_lt_knowledge_data ON lt_knowledge USING GIN (data);
|
|
19
|
+
|
|
20
|
+
DROP TRIGGER IF EXISTS lt_knowledge_updated_at ON lt_knowledge;
|
|
21
|
+
CREATE TRIGGER lt_knowledge_updated_at
|
|
22
|
+
BEFORE UPDATE ON lt_knowledge
|
|
23
|
+
FOR EACH ROW EXECUTE FUNCTION lt_set_updated_at();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-- Allow 'streamable-http' as a transport type for MCP servers
|
|
2
|
+
ALTER TABLE lt_mcp_servers
|
|
3
|
+
DROP CONSTRAINT IF EXISTS lt_mcp_servers_transport_type_check;
|
|
4
|
+
|
|
5
|
+
ALTER TABLE lt_mcp_servers
|
|
6
|
+
ADD CONSTRAINT lt_mcp_servers_transport_type_check
|
|
7
|
+
CHECK (transport_type IN ('stdio', 'sse', 'streamable-http'));
|
|
@@ -26,8 +26,8 @@ export interface HoneycombOptions {
|
|
|
26
26
|
*
|
|
27
27
|
* Usage:
|
|
28
28
|
* ```typescript
|
|
29
|
-
* import { telemetryRegistry } from './
|
|
30
|
-
* import { HoneycombTelemetryAdapter } from './
|
|
29
|
+
* import { telemetryRegistry } from './lib/telemetry';
|
|
30
|
+
* import { HoneycombTelemetryAdapter } from './lib/telemetry/honeycomb';
|
|
31
31
|
*
|
|
32
32
|
* telemetryRegistry.register(new HoneycombTelemetryAdapter({
|
|
33
33
|
* apiKey: process.env.HONEYCOMB_API_KEY,
|
|
@@ -19,8 +19,8 @@ const logger_1 = require("../logger");
|
|
|
19
19
|
*
|
|
20
20
|
* Usage:
|
|
21
21
|
* ```typescript
|
|
22
|
-
* import { telemetryRegistry } from './
|
|
23
|
-
* import { HoneycombTelemetryAdapter } from './
|
|
22
|
+
* import { telemetryRegistry } from './lib/telemetry';
|
|
23
|
+
* import { HoneycombTelemetryAdapter } from './lib/telemetry/honeycomb';
|
|
24
24
|
*
|
|
25
25
|
* telemetryRegistry.register(new HoneycombTelemetryAdapter({
|
|
26
26
|
* apiKey: process.env.HONEYCOMB_API_KEY,
|
|
@@ -23,6 +23,8 @@ export declare const LLM_MAX_TOKENS_VISION: number;
|
|
|
23
23
|
export declare const LLM_MAX_ARRAY_ITEMS: number;
|
|
24
24
|
/** Hard character cap on serialized input payloads sent to the LLM. */
|
|
25
25
|
export declare const LLM_MAX_INPUT_CHARS: number;
|
|
26
|
+
/** Max characters for a single tool result before truncation in the agentic loop. */
|
|
27
|
+
export declare const TOOL_RESULT_MAX_CHARS: number;
|
|
26
28
|
/** Max agentic loop iterations for MCP triage workflows. */
|
|
27
29
|
export declare const TOOL_ROUNDS_TRIAGE: number;
|
|
28
30
|
/** Max agentic loop iterations for mcpQuery (higher — includes recall + discover + persist phases). */
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Grouped by domain so related knobs live together.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.YAML_LINE_WIDTH = exports.STOP_WORDS = exports.CLAIM_DURATION_OPTIONS = exports.YAML_VERSION_LIMIT = exports.YAML_LIST_LIMIT = exports.QUERY_LIMIT_MAX = exports.QUERY_LIMIT_DEFAULT = exports.CONFIG_CACHE_TTL_MS = exports.MCP_TOOL_TIMEOUT_MS = exports.WORKFLOW_SYNC_TIMEOUT_MS = exports.JOB_EXPIRE_SECS = exports.WORKFLOW_EXPIRE_SECS = exports.TOOL_ARG_LIMIT_CAP = exports.TOOL_ROUNDS_MCP_QUERY = exports.TOOL_ROUNDS_TRIAGE = exports.LLM_MAX_INPUT_CHARS = exports.LLM_MAX_ARRAY_ITEMS = exports.LLM_MAX_TOKENS_VISION = exports.LLM_MAX_TOKENS_JSON = exports.LLM_MAX_TOKENS_DEFAULT = exports.LLM_BASE_URL = exports.LLM_MODEL_SECONDARY = exports.LLM_MODEL_PRIMARY = void 0;
|
|
12
|
+
exports.YAML_LINE_WIDTH = exports.STOP_WORDS = exports.CLAIM_DURATION_OPTIONS = exports.YAML_VERSION_LIMIT = exports.YAML_LIST_LIMIT = exports.QUERY_LIMIT_MAX = exports.QUERY_LIMIT_DEFAULT = exports.CONFIG_CACHE_TTL_MS = exports.MCP_TOOL_TIMEOUT_MS = exports.WORKFLOW_SYNC_TIMEOUT_MS = exports.JOB_EXPIRE_SECS = exports.WORKFLOW_EXPIRE_SECS = exports.TOOL_ARG_LIMIT_CAP = exports.TOOL_ROUNDS_MCP_QUERY = exports.TOOL_ROUNDS_TRIAGE = exports.TOOL_RESULT_MAX_CHARS = exports.LLM_MAX_INPUT_CHARS = exports.LLM_MAX_ARRAY_ITEMS = exports.LLM_MAX_TOKENS_VISION = exports.LLM_MAX_TOKENS_JSON = exports.LLM_MAX_TOKENS_DEFAULT = exports.LLM_BASE_URL = exports.LLM_MODEL_SECONDARY = exports.LLM_MODEL_PRIMARY = void 0;
|
|
13
13
|
function envInt(key, fallback) {
|
|
14
14
|
const v = process.env[key];
|
|
15
15
|
if (v === undefined || v === '')
|
|
@@ -37,6 +37,8 @@ exports.LLM_MAX_TOKENS_VISION = envInt('LT_LLM_MAX_TOKENS_VISION', 2000);
|
|
|
37
37
|
exports.LLM_MAX_ARRAY_ITEMS = envInt('LT_LLM_MAX_ARRAY_ITEMS', 25);
|
|
38
38
|
/** Hard character cap on serialized input payloads sent to the LLM. */
|
|
39
39
|
exports.LLM_MAX_INPUT_CHARS = envInt('LT_LLM_MAX_INPUT_CHARS', 12_000);
|
|
40
|
+
/** Max characters for a single tool result before truncation in the agentic loop. */
|
|
41
|
+
exports.TOOL_RESULT_MAX_CHARS = envInt('LT_TOOL_RESULT_MAX_CHARS', 50_000);
|
|
40
42
|
// ── Tool execution ───────────────────────────────────────────────────
|
|
41
43
|
/** Max agentic loop iterations for MCP triage workflows. */
|
|
42
44
|
exports.TOOL_ROUNDS_TRIAGE = envInt('LT_TOOL_ROUNDS_TRIAGE', 10);
|
|
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
const express_1 = require("express");
|
|
37
37
|
const auth_1 = require("../modules/auth");
|
|
38
38
|
const controlplane = __importStar(require("../services/controlplane"));
|
|
39
|
-
const events_1 = require("../
|
|
39
|
+
const events_1 = require("../lib/events");
|
|
40
40
|
const router = (0, express_1.Router)();
|
|
41
41
|
/**
|
|
42
42
|
* GET /api/controlplane/apps
|
package/build/routes/dba.js
CHANGED
|
@@ -58,6 +58,10 @@ router.post('/prune', auth_1.requireAdmin, async (req, res) => {
|
|
|
58
58
|
expire: req.body.expire,
|
|
59
59
|
jobs: req.body.jobs,
|
|
60
60
|
streams: req.body.streams,
|
|
61
|
+
engineStreams: req.body.engineStreams,
|
|
62
|
+
engineStreamsExpire: req.body.engineStreamsExpire,
|
|
63
|
+
workerStreams: req.body.workerStreams,
|
|
64
|
+
workerStreamsExpire: req.body.workerStreamsExpire,
|
|
61
65
|
attributes: req.body.attributes,
|
|
62
66
|
entities: req.body.entities,
|
|
63
67
|
pruneTransient: req.body.pruneTransient,
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const express_1 = require("express");
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const router = (0, express_1.Router)();
|
|
40
|
+
function projectRoot() {
|
|
41
|
+
const candidates = [
|
|
42
|
+
path.join(__dirname, '..'),
|
|
43
|
+
path.join(__dirname, '..', '..'),
|
|
44
|
+
];
|
|
45
|
+
for (const dir of candidates) {
|
|
46
|
+
if (fs.existsSync(path.join(dir, 'docs')))
|
|
47
|
+
return dir;
|
|
48
|
+
}
|
|
49
|
+
return candidates[0];
|
|
50
|
+
}
|
|
51
|
+
function listDocs(dir, prefix = '') {
|
|
52
|
+
if (!fs.existsSync(dir))
|
|
53
|
+
return [];
|
|
54
|
+
const results = [];
|
|
55
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
56
|
+
const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
57
|
+
if (entry.isDirectory()) {
|
|
58
|
+
results.push(...listDocs(path.join(dir, entry.name), rel));
|
|
59
|
+
}
|
|
60
|
+
else if (entry.name.endsWith('.md')) {
|
|
61
|
+
const content = fs.readFileSync(path.join(dir, entry.name), 'utf-8');
|
|
62
|
+
const firstLine = content.split('\n').find(l => l.startsWith('# '));
|
|
63
|
+
const title = firstLine ? firstLine.replace(/^#\s+/, '') : entry.name;
|
|
64
|
+
results.push({ path: rel, title });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return results;
|
|
68
|
+
}
|
|
69
|
+
function resolveDocPath(docPath) {
|
|
70
|
+
const root = projectRoot();
|
|
71
|
+
// README.md lives at project root, everything else under docs/
|
|
72
|
+
if (docPath === 'README.md') {
|
|
73
|
+
const fp = path.join(root, 'README.md');
|
|
74
|
+
return fs.existsSync(fp) ? fp : null;
|
|
75
|
+
}
|
|
76
|
+
const fp = path.join(root, 'docs', docPath);
|
|
77
|
+
return fs.existsSync(fp) ? fp : null;
|
|
78
|
+
}
|
|
79
|
+
router.get('/', (_req, res) => {
|
|
80
|
+
const root = projectRoot();
|
|
81
|
+
const docs = [];
|
|
82
|
+
// README first
|
|
83
|
+
const readmePath = path.join(root, 'README.md');
|
|
84
|
+
if (fs.existsSync(readmePath)) {
|
|
85
|
+
docs.push({ path: 'README.md', title: 'Long Tail' });
|
|
86
|
+
}
|
|
87
|
+
docs.push(...listDocs(path.join(root, 'docs')));
|
|
88
|
+
res.json({ docs });
|
|
89
|
+
});
|
|
90
|
+
// Use query param for doc path to avoid Express wildcard issues
|
|
91
|
+
router.get('/read', (req, res) => {
|
|
92
|
+
const docPath = req.query.path;
|
|
93
|
+
if (!docPath || docPath.includes('..')) {
|
|
94
|
+
res.status(400).json({ error: 'Invalid path' });
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const filePath = resolveDocPath(docPath);
|
|
98
|
+
if (!filePath) {
|
|
99
|
+
res.status(404).json({ error: 'Document not found' });
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
103
|
+
res.json({ path: docPath, content });
|
|
104
|
+
});
|
|
105
|
+
exports.default = router;
|