@hotmeshio/long-tail 0.1.0
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/LICENSE +202 -0
- package/README.md +262 -0
- package/build/examples/external-mcp-server/server.d.ts +17 -0
- package/build/examples/external-mcp-server/server.js +116 -0
- package/build/examples/index.d.ts +2 -0
- package/build/examples/index.js +7 -0
- package/build/examples/seed.d.ts +5 -0
- package/build/examples/seed.js +221 -0
- package/build/examples/types/envelopes.d.ts +34 -0
- package/build/examples/types/envelopes.js +8 -0
- package/build/examples/types/index.d.ts +10 -0
- package/build/examples/types/index.js +9 -0
- package/build/examples/types/resolvers.d.ts +27 -0
- package/build/examples/types/resolvers.js +9 -0
- package/build/examples/workers.d.ts +10 -0
- package/build/examples/workers.js +49 -0
- package/build/examples/workflows/basic-echo/activities.d.ts +20 -0
- package/build/examples/workflows/basic-echo/activities.js +55 -0
- package/build/examples/workflows/basic-echo/index.d.ts +14 -0
- package/build/examples/workflows/basic-echo/index.js +66 -0
- package/build/examples/workflows/kitchen-sink/activities.d.ts +40 -0
- package/build/examples/workflows/kitchen-sink/activities.js +46 -0
- package/build/examples/workflows/kitchen-sink/index.d.ts +22 -0
- package/build/examples/workflows/kitchen-sink/index.js +123 -0
- package/build/examples/workflows/review-content/activities.d.ts +10 -0
- package/build/examples/workflows/review-content/activities.js +44 -0
- package/build/examples/workflows/review-content/index.d.ts +10 -0
- package/build/examples/workflows/review-content/index.js +95 -0
- package/build/examples/workflows/review-content/types.d.ts +28 -0
- package/build/examples/workflows/review-content/types.js +2 -0
- package/build/index.d.ts +37 -0
- package/build/index.js +151 -0
- package/build/modules/auth.d.ts +58 -0
- package/build/modules/auth.js +163 -0
- package/build/modules/config.d.ts +19 -0
- package/build/modules/config.js +26 -0
- package/build/modules/defaults.d.ts +58 -0
- package/build/modules/defaults.js +95 -0
- package/build/modules/ltconfig.d.ts +21 -0
- package/build/modules/ltconfig.js +110 -0
- package/build/modules/maintenance.d.ts +18 -0
- package/build/modules/maintenance.js +47 -0
- package/build/routes/auth.d.ts +2 -0
- package/build/routes/auth.js +48 -0
- package/build/routes/bot-accounts.d.ts +2 -0
- package/build/routes/bot-accounts.js +280 -0
- package/build/routes/controlplane.d.ts +2 -0
- package/build/routes/controlplane.js +144 -0
- package/build/routes/dba.d.ts +2 -0
- package/build/routes/dba.js +86 -0
- package/build/routes/delegation.d.ts +2 -0
- package/build/routes/delegation.js +81 -0
- package/build/routes/escalations/bulk.d.ts +2 -0
- package/build/routes/escalations/bulk.js +324 -0
- package/build/routes/escalations/helpers.d.ts +5 -0
- package/build/routes/escalations/helpers.js +48 -0
- package/build/routes/escalations/index.d.ts +2 -0
- package/build/routes/escalations/index.js +20 -0
- package/build/routes/escalations/list.d.ts +2 -0
- package/build/routes/escalations/list.js +140 -0
- package/build/routes/escalations/resolve.d.ts +2 -0
- package/build/routes/escalations/resolve.js +240 -0
- package/build/routes/escalations/single.d.ts +2 -0
- package/build/routes/escalations/single.js +195 -0
- package/build/routes/exports.d.ts +2 -0
- package/build/routes/exports.js +163 -0
- package/build/routes/files.d.ts +2 -0
- package/build/routes/files.js +47 -0
- package/build/routes/index.d.ts +2 -0
- package/build/routes/index.js +52 -0
- package/build/routes/insight.d.ts +2 -0
- package/build/routes/insight.js +58 -0
- package/build/routes/maintenance.d.ts +2 -0
- package/build/routes/maintenance.js +38 -0
- package/build/routes/mcp-runs.d.ts +2 -0
- package/build/routes/mcp-runs.js +85 -0
- package/build/routes/mcp.d.ts +2 -0
- package/build/routes/mcp.js +264 -0
- package/build/routes/namespaces.d.ts +2 -0
- package/build/routes/namespaces.js +71 -0
- package/build/routes/oauth.d.ts +7 -0
- package/build/routes/oauth.js +217 -0
- package/build/routes/resolve.d.ts +9 -0
- package/build/routes/resolve.js +19 -0
- package/build/routes/roles.d.ts +2 -0
- package/build/routes/roles.js +195 -0
- package/build/routes/settings.d.ts +2 -0
- package/build/routes/settings.js +35 -0
- package/build/routes/tasks.d.ts +2 -0
- package/build/routes/tasks.js +133 -0
- package/build/routes/users.d.ts +2 -0
- package/build/routes/users.js +206 -0
- package/build/routes/workflows/config.d.ts +2 -0
- package/build/routes/workflows/config.js +123 -0
- package/build/routes/workflows/discovery.d.ts +2 -0
- package/build/routes/workflows/discovery.js +146 -0
- package/build/routes/workflows/index.d.ts +2 -0
- package/build/routes/workflows/index.js +18 -0
- package/build/routes/workflows/invocation.d.ts +2 -0
- package/build/routes/workflows/invocation.js +162 -0
- package/build/routes/yaml-workflows/crud.d.ts +2 -0
- package/build/routes/yaml-workflows/crud.js +276 -0
- package/build/routes/yaml-workflows/deployment.d.ts +2 -0
- package/build/routes/yaml-workflows/deployment.js +179 -0
- package/build/routes/yaml-workflows/helpers.d.ts +2 -0
- package/build/routes/yaml-workflows/helpers.js +8 -0
- package/build/routes/yaml-workflows/index.d.ts +2 -0
- package/build/routes/yaml-workflows/index.js +21 -0
- package/build/routes/yaml-workflows/versions.d.ts +2 -0
- package/build/routes/yaml-workflows/versions.js +116 -0
- package/build/scripts/process-helpers.d.ts +11 -0
- package/build/scripts/process-helpers.js +59 -0
- package/build/scripts/process.d.ts +18 -0
- package/build/scripts/process.js +191 -0
- package/build/scripts/token.d.ts +13 -0
- package/build/scripts/token.js +42 -0
- package/build/services/auth/bot-api-key.d.ts +32 -0
- package/build/services/auth/bot-api-key.js +112 -0
- package/build/services/auth/delegation.d.ts +20 -0
- package/build/services/auth/delegation.js +53 -0
- package/build/services/auth/service-token.d.ts +23 -0
- package/build/services/auth/service-token.js +105 -0
- package/build/services/config/cache.d.ts +2 -0
- package/build/services/config/cache.js +24 -0
- package/build/services/config/index.d.ts +4 -0
- package/build/services/config/index.js +13 -0
- package/build/services/config/provider.d.ts +2 -0
- package/build/services/config/provider.js +30 -0
- package/build/services/config/read.d.ts +3 -0
- package/build/services/config/read.js +68 -0
- package/build/services/config/sql.d.ts +14 -0
- package/build/services/config/sql.js +58 -0
- package/build/services/config/write.d.ts +5 -0
- package/build/services/config/write.js +61 -0
- package/build/services/controlplane/index.d.ts +47 -0
- package/build/services/controlplane/index.js +124 -0
- package/build/services/controlplane/quorum-bridge.d.ts +15 -0
- package/build/services/controlplane/quorum-bridge.js +62 -0
- package/build/services/controlplane/sql.d.ts +21 -0
- package/build/services/controlplane/sql.js +70 -0
- package/build/services/controlplane/types.d.ts +13 -0
- package/build/services/controlplane/types.js +3 -0
- package/build/services/cron/index.d.ts +46 -0
- package/build/services/cron/index.js +199 -0
- package/build/services/db/index.d.ts +3 -0
- package/build/services/db/index.js +19 -0
- package/build/services/db/migrate.d.ts +1 -0
- package/build/services/db/migrate.js +78 -0
- package/build/services/dba.d.ts +28 -0
- package/build/services/dba.js +32 -0
- package/build/services/escalation/bulk.d.ts +27 -0
- package/build/services/escalation/bulk.js +57 -0
- package/build/services/escalation/crud.d.ts +47 -0
- package/build/services/escalation/crud.js +150 -0
- package/build/services/escalation/index.d.ts +4 -0
- package/build/services/escalation/index.js +20 -0
- package/build/services/escalation/queries.d.ts +37 -0
- package/build/services/escalation/queries.js +163 -0
- package/build/services/escalation/sql.d.ts +21 -0
- package/build/services/escalation/sql.js +135 -0
- package/build/services/escalation/types.d.ts +43 -0
- package/build/services/escalation/types.js +13 -0
- package/build/services/escalation-strategy/default.d.ts +12 -0
- package/build/services/escalation-strategy/default.js +17 -0
- package/build/services/escalation-strategy/index.d.ts +21 -0
- package/build/services/escalation-strategy/index.js +32 -0
- package/build/services/escalation-strategy/mcp.d.ts +13 -0
- package/build/services/escalation-strategy/mcp.js +51 -0
- package/build/services/events/index.d.ts +37 -0
- package/build/services/events/index.js +64 -0
- package/build/services/events/memory.d.ts +27 -0
- package/build/services/events/memory.js +40 -0
- package/build/services/events/nats.d.ts +29 -0
- package/build/services/events/nats.js +50 -0
- package/build/services/events/publish.d.ts +72 -0
- package/build/services/events/publish.js +106 -0
- package/build/services/events/socketio.d.ts +33 -0
- package/build/services/events/socketio.js +70 -0
- package/build/services/export/client.d.ts +2 -0
- package/build/services/export/client.js +16 -0
- package/build/services/export/index.d.ts +39 -0
- package/build/services/export/index.js +158 -0
- package/build/services/export/post-process.d.ts +16 -0
- package/build/services/export/post-process.js +133 -0
- package/build/services/export/types.d.ts +25 -0
- package/build/services/export/types.js +2 -0
- package/build/services/hotmesh-utils.d.ts +61 -0
- package/build/services/hotmesh-utils.js +204 -0
- package/build/services/iam/activity.d.ts +52 -0
- package/build/services/iam/activity.js +59 -0
- package/build/services/iam/bots.d.ts +83 -0
- package/build/services/iam/bots.js +157 -0
- package/build/services/iam/context.d.ts +14 -0
- package/build/services/iam/context.js +61 -0
- package/build/services/iam/credentials.d.ts +42 -0
- package/build/services/iam/credentials.js +86 -0
- package/build/services/iam/envelope.d.ts +10 -0
- package/build/services/iam/envelope.js +32 -0
- package/build/services/iam/ephemeral.d.ts +50 -0
- package/build/services/iam/ephemeral.js +131 -0
- package/build/services/iam/index.d.ts +19 -0
- package/build/services/iam/index.js +37 -0
- package/build/services/iam/principal.d.ts +12 -0
- package/build/services/iam/principal.js +53 -0
- package/build/services/iam/resolve.d.ts +48 -0
- package/build/services/iam/resolve.js +89 -0
- package/build/services/insight/index.d.ts +30 -0
- package/build/services/insight/index.js +81 -0
- package/build/services/insight/prompts.d.ts +4 -0
- package/build/services/insight/prompts.js +15 -0
- package/build/services/interceptor/activities/config.d.ts +21 -0
- package/build/services/interceptor/activities/config.js +26 -0
- package/build/services/interceptor/activities/escalation.d.ts +58 -0
- package/build/services/interceptor/activities/escalation.js +110 -0
- package/build/services/interceptor/activities/index.d.ts +4 -0
- package/build/services/interceptor/activities/index.js +23 -0
- package/build/services/interceptor/activities/task.d.ts +65 -0
- package/build/services/interceptor/activities/task.js +168 -0
- package/build/services/interceptor/activities/workflow.d.ts +26 -0
- package/build/services/interceptor/activities/workflow.js +41 -0
- package/build/services/interceptor/activity-interceptor.d.ts +32 -0
- package/build/services/interceptor/activity-interceptor.js +86 -0
- package/build/services/interceptor/completion.d.ts +16 -0
- package/build/services/interceptor/completion.js +149 -0
- package/build/services/interceptor/context.d.ts +11 -0
- package/build/services/interceptor/context.js +20 -0
- package/build/services/interceptor/escalation.d.ts +26 -0
- package/build/services/interceptor/escalation.js +150 -0
- package/build/services/interceptor/index.d.ts +45 -0
- package/build/services/interceptor/index.js +160 -0
- package/build/services/interceptor/lifecycle.d.ts +44 -0
- package/build/services/interceptor/lifecycle.js +174 -0
- package/build/services/interceptor/state.d.ts +22 -0
- package/build/services/interceptor/state.js +36 -0
- package/build/services/interceptor/types.d.ts +43 -0
- package/build/services/interceptor/types.js +3 -0
- package/build/services/llm/detect.d.ts +16 -0
- package/build/services/llm/detect.js +33 -0
- package/build/services/llm/index.d.ts +34 -0
- package/build/services/llm/index.js +106 -0
- package/build/services/llm/providers/anthropic.d.ts +11 -0
- package/build/services/llm/providers/anthropic.js +85 -0
- package/build/services/llm/providers/openai.d.ts +9 -0
- package/build/services/llm/providers/openai.js +46 -0
- package/build/services/llm/translate.d.ts +66 -0
- package/build/services/llm/translate.js +192 -0
- package/build/services/llm/types.d.ts +64 -0
- package/build/services/llm/types.js +8 -0
- package/build/services/logger/index.d.ts +32 -0
- package/build/services/logger/index.js +69 -0
- package/build/services/logger/pino.d.ts +24 -0
- package/build/services/logger/pino.js +59 -0
- package/build/services/maintenance/index.d.ts +43 -0
- package/build/services/maintenance/index.js +183 -0
- package/build/services/mcp/adapter.d.ts +23 -0
- package/build/services/mcp/adapter.js +119 -0
- package/build/services/mcp/client/connection.d.ts +46 -0
- package/build/services/mcp/client/connection.js +280 -0
- package/build/services/mcp/client/index.d.ts +2 -0
- package/build/services/mcp/client/index.js +16 -0
- package/build/services/mcp/client/tools.d.ts +22 -0
- package/build/services/mcp/client/tools.js +118 -0
- package/build/services/mcp/db-server/index.d.ts +25 -0
- package/build/services/mcp/db-server/index.js +49 -0
- package/build/services/mcp/db-server/schemas.d.ts +52 -0
- package/build/services/mcp/db-server/schemas.js +34 -0
- package/build/services/mcp/db-server/tools.d.ts +5 -0
- package/build/services/mcp/db-server/tools.js +224 -0
- package/build/services/mcp/db.d.ts +26 -0
- package/build/services/mcp/db.js +141 -0
- package/build/services/mcp/index.d.ts +25 -0
- package/build/services/mcp/index.js +47 -0
- package/build/services/mcp/playwright-server/index.d.ts +14 -0
- package/build/services/mcp/playwright-server/index.js +25 -0
- package/build/services/mcp/playwright-server/lifecycle.d.ts +7 -0
- package/build/services/mcp/playwright-server/lifecycle.js +63 -0
- package/build/services/mcp/playwright-server/schemas.d.ts +81 -0
- package/build/services/mcp/playwright-server/schemas.js +48 -0
- package/build/services/mcp/playwright-server/tools.d.ts +2 -0
- package/build/services/mcp/playwright-server/tools.js +224 -0
- package/build/services/mcp/server.d.ts +26 -0
- package/build/services/mcp/server.js +286 -0
- package/build/services/mcp/sql.d.ts +12 -0
- package/build/services/mcp/sql.js +59 -0
- package/build/services/mcp/types.d.ts +17 -0
- package/build/services/mcp/types.js +3 -0
- package/build/services/mcp/vision-server.d.ts +15 -0
- package/build/services/mcp/vision-server.js +214 -0
- package/build/services/mcp/workflow-compiler-server.d.ts +15 -0
- package/build/services/mcp/workflow-compiler-server.js +206 -0
- package/build/services/mcp/workflow-server.d.ts +24 -0
- package/build/services/mcp/workflow-server.js +230 -0
- package/build/services/mcp-runs/enrichment.d.ts +12 -0
- package/build/services/mcp-runs/enrichment.js +39 -0
- package/build/services/mcp-runs/events.d.ts +6 -0
- package/build/services/mcp-runs/events.js +126 -0
- package/build/services/mcp-runs/execution-builder.d.ts +12 -0
- package/build/services/mcp-runs/execution-builder.js +100 -0
- package/build/services/mcp-runs/index.d.ts +4 -0
- package/build/services/mcp-runs/index.js +8 -0
- package/build/services/mcp-runs/queries.d.ts +28 -0
- package/build/services/mcp-runs/queries.js +71 -0
- package/build/services/mcp-runs/sql.d.ts +4 -0
- package/build/services/mcp-runs/sql.js +17 -0
- package/build/services/mcp-runs/types.d.ts +65 -0
- package/build/services/mcp-runs/types.js +2 -0
- package/build/services/namespace/index.d.ts +17 -0
- package/build/services/namespace/index.js +41 -0
- package/build/services/namespace/sql.d.ts +4 -0
- package/build/services/namespace/sql.js +23 -0
- package/build/services/namespace/types.d.ts +11 -0
- package/build/services/namespace/types.js +3 -0
- package/build/services/oauth/crypto.d.ts +19 -0
- package/build/services/oauth/crypto.js +95 -0
- package/build/services/oauth/db.d.ts +20 -0
- package/build/services/oauth/db.js +140 -0
- package/build/services/oauth/index.d.ts +12 -0
- package/build/services/oauth/index.js +77 -0
- package/build/services/oauth/providers/anthropic.d.ts +3 -0
- package/build/services/oauth/providers/anthropic.js +111 -0
- package/build/services/oauth/providers/github.d.ts +3 -0
- package/build/services/oauth/providers/github.js +46 -0
- package/build/services/oauth/providers/google.d.ts +3 -0
- package/build/services/oauth/providers/google.js +44 -0
- package/build/services/oauth/providers/index.d.ts +2 -0
- package/build/services/oauth/providers/index.js +7 -0
- package/build/services/oauth/providers/microsoft.d.ts +3 -0
- package/build/services/oauth/providers/microsoft.js +46 -0
- package/build/services/oauth/providers/mock.d.ts +3 -0
- package/build/services/oauth/providers/mock.js +76 -0
- package/build/services/oauth/providers/registry.d.ts +8 -0
- package/build/services/oauth/providers/registry.js +46 -0
- package/build/services/oauth/providers/types.d.ts +13 -0
- package/build/services/oauth/providers/types.js +2 -0
- package/build/services/oauth/state.d.ts +30 -0
- package/build/services/oauth/state.js +83 -0
- package/build/services/orchestrator/index.d.ts +23 -0
- package/build/services/orchestrator/index.js +156 -0
- package/build/services/orchestrator/types.d.ts +15 -0
- package/build/services/orchestrator/types.js +3 -0
- package/build/services/role/index.d.ts +47 -0
- package/build/services/role/index.js +136 -0
- package/build/services/role/sql.d.ts +14 -0
- package/build/services/role/sql.js +80 -0
- package/build/services/role/types.d.ts +11 -0
- package/build/services/role/types.js +3 -0
- package/build/services/storage/index.d.ts +12 -0
- package/build/services/storage/index.js +31 -0
- package/build/services/storage/local.d.ts +26 -0
- package/build/services/storage/local.js +129 -0
- package/build/services/storage/s3.d.ts +31 -0
- package/build/services/storage/s3.js +180 -0
- package/build/services/storage/types.d.ts +41 -0
- package/build/services/storage/types.js +2 -0
- package/build/services/task/crud.d.ts +21 -0
- package/build/services/task/crud.js +123 -0
- package/build/services/task/index.d.ts +4 -0
- package/build/services/task/index.js +20 -0
- package/build/services/task/process.d.ts +14 -0
- package/build/services/task/process.js +98 -0
- package/build/services/task/resolve.d.ts +12 -0
- package/build/services/task/resolve.js +49 -0
- package/build/services/task/sql.d.ts +19 -0
- package/build/services/task/sql.js +92 -0
- package/build/services/task/types.d.ts +56 -0
- package/build/services/task/types.js +9 -0
- package/build/services/telemetry/honeycomb.d.ts +53 -0
- package/build/services/telemetry/honeycomb.js +79 -0
- package/build/services/telemetry/index.d.ts +46 -0
- package/build/services/telemetry/index.js +68 -0
- package/build/services/user/auth.d.ts +7 -0
- package/build/services/user/auth.js +26 -0
- package/build/services/user/crud.d.ts +19 -0
- package/build/services/user/crud.js +151 -0
- package/build/services/user/index.d.ts +5 -0
- package/build/services/user/index.js +26 -0
- package/build/services/user/rbac.d.ts +15 -0
- package/build/services/user/rbac.js +32 -0
- package/build/services/user/roles.d.ts +7 -0
- package/build/services/user/roles.js +42 -0
- package/build/services/user/sql.d.ts +22 -0
- package/build/services/user/sql.js +45 -0
- package/build/services/user/types.d.ts +23 -0
- package/build/services/user/types.js +4 -0
- package/build/services/workers/registry.d.ts +10 -0
- package/build/services/workers/registry.js +26 -0
- package/build/services/workflow-invocation.d.ts +46 -0
- package/build/services/workflow-invocation.js +184 -0
- package/build/services/yaml-workflow/db-utils.d.ts +25 -0
- package/build/services/yaml-workflow/db-utils.js +93 -0
- package/build/services/yaml-workflow/db.d.ts +27 -0
- package/build/services/yaml-workflow/db.js +196 -0
- package/build/services/yaml-workflow/deployer-helpers.d.ts +13 -0
- package/build/services/yaml-workflow/deployer-helpers.js +133 -0
- package/build/services/yaml-workflow/deployer.d.ts +54 -0
- package/build/services/yaml-workflow/deployer.js +203 -0
- package/build/services/yaml-workflow/generator.d.ts +21 -0
- package/build/services/yaml-workflow/generator.js +117 -0
- package/build/services/yaml-workflow/index.d.ts +4 -0
- package/build/services/yaml-workflow/index.js +20 -0
- package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +48 -0
- package/build/services/yaml-workflow/input-analyzer-helpers.js +183 -0
- package/build/services/yaml-workflow/input-analyzer.d.ts +30 -0
- package/build/services/yaml-workflow/input-analyzer.js +109 -0
- package/build/services/yaml-workflow/pattern-detector/array-source.d.ts +22 -0
- package/build/services/yaml-workflow/pattern-detector/array-source.js +120 -0
- package/build/services/yaml-workflow/pattern-detector/collapse.d.ts +27 -0
- package/build/services/yaml-workflow/pattern-detector/collapse.js +92 -0
- package/build/services/yaml-workflow/pattern-detector/index.d.ts +18 -0
- package/build/services/yaml-workflow/pattern-detector/index.js +22 -0
- package/build/services/yaml-workflow/pattern-detector/run-detection.d.ts +28 -0
- package/build/services/yaml-workflow/pattern-detector/run-detection.js +81 -0
- package/build/services/yaml-workflow/pattern-detector/types.d.ts +29 -0
- package/build/services/yaml-workflow/pattern-detector/types.js +8 -0
- package/build/services/yaml-workflow/pipeline/analyze.d.ts +11 -0
- package/build/services/yaml-workflow/pipeline/analyze.js +64 -0
- package/build/services/yaml-workflow/pipeline/build/dag.d.ts +25 -0
- package/build/services/yaml-workflow/pipeline/build/dag.js +254 -0
- package/build/services/yaml-workflow/pipeline/build/index.d.ts +20 -0
- package/build/services/yaml-workflow/pipeline/build/index.js +115 -0
- package/build/services/yaml-workflow/pipeline/build/iteration.d.ts +25 -0
- package/build/services/yaml-workflow/pipeline/build/iteration.js +231 -0
- package/build/services/yaml-workflow/pipeline/build/metadata.d.ts +15 -0
- package/build/services/yaml-workflow/pipeline/build/metadata.js +126 -0
- package/build/services/yaml-workflow/pipeline/build/transform.d.ts +17 -0
- package/build/services/yaml-workflow/pipeline/build/transform.js +94 -0
- package/build/services/yaml-workflow/pipeline/build/utils.d.ts +22 -0
- package/build/services/yaml-workflow/pipeline/build/utils.js +129 -0
- package/build/services/yaml-workflow/pipeline/build/wiring.d.ts +9 -0
- package/build/services/yaml-workflow/pipeline/build/wiring.js +148 -0
- package/build/services/yaml-workflow/pipeline/compile/index.d.ts +17 -0
- package/build/services/yaml-workflow/pipeline/compile/index.js +64 -0
- package/build/services/yaml-workflow/pipeline/compile/llm-call.d.ts +14 -0
- package/build/services/yaml-workflow/pipeline/compile/llm-call.js +153 -0
- package/build/services/yaml-workflow/pipeline/compile/parse-plan.d.ts +12 -0
- package/build/services/yaml-workflow/pipeline/compile/parse-plan.js +88 -0
- package/build/services/yaml-workflow/pipeline/compile/summarize.d.ts +39 -0
- package/build/services/yaml-workflow/pipeline/compile/summarize.js +174 -0
- package/build/services/yaml-workflow/pipeline/extract-helpers.d.ts +42 -0
- package/build/services/yaml-workflow/pipeline/extract-helpers.js +88 -0
- package/build/services/yaml-workflow/pipeline/extract.d.ts +24 -0
- package/build/services/yaml-workflow/pipeline/extract.js +235 -0
- package/build/services/yaml-workflow/pipeline/prompts.d.ts +15 -0
- package/build/services/yaml-workflow/pipeline/prompts.js +254 -0
- package/build/services/yaml-workflow/pipeline/validate.d.ts +12 -0
- package/build/services/yaml-workflow/pipeline/validate.js +111 -0
- package/build/services/yaml-workflow/sql.d.ts +19 -0
- package/build/services/yaml-workflow/sql.js +83 -0
- package/build/services/yaml-workflow/types.d.ts +223 -0
- package/build/services/yaml-workflow/types.js +8 -0
- package/build/services/yaml-workflow/workers/callbacks.d.ts +17 -0
- package/build/services/yaml-workflow/workers/callbacks.js +194 -0
- package/build/services/yaml-workflow/workers/events.d.ts +7 -0
- package/build/services/yaml-workflow/workers/events.js +49 -0
- package/build/services/yaml-workflow/workers/index.d.ts +4 -0
- package/build/services/yaml-workflow/workers/index.js +15 -0
- package/build/services/yaml-workflow/workers/register.d.ts +15 -0
- package/build/services/yaml-workflow/workers/register.js +233 -0
- package/build/services/yaml-workflow/workers/scope.d.ts +13 -0
- package/build/services/yaml-workflow/workers/scope.js +37 -0
- package/build/start/adapters.d.ts +6 -0
- package/build/start/adapters.js +80 -0
- package/build/start/config.d.ts +10 -0
- package/build/start/config.js +88 -0
- package/build/start/index.d.ts +21 -0
- package/build/start/index.js +87 -0
- package/build/start/server.d.ts +6 -0
- package/build/start/server.js +46 -0
- package/build/start/workers.d.ts +32 -0
- package/build/start/workers.js +144 -0
- package/build/system/activities/claude-code.d.ts +56 -0
- package/build/system/activities/claude-code.js +258 -0
- package/build/system/activities/file-storage.d.ts +31 -0
- package/build/system/activities/file-storage.js +71 -0
- package/build/system/activities/http.d.ts +27 -0
- package/build/system/activities/http.js +56 -0
- package/build/system/activities/oauth.d.ts +39 -0
- package/build/system/activities/oauth.js +33 -0
- package/build/system/activities/triage/cache.d.ts +7 -0
- package/build/system/activities/triage/cache.js +10 -0
- package/build/system/activities/triage/context.d.ts +21 -0
- package/build/system/activities/triage/context.js +92 -0
- package/build/system/activities/triage/discovery.d.ts +25 -0
- package/build/system/activities/triage/discovery.js +170 -0
- package/build/system/activities/triage/index.d.ts +5 -0
- package/build/system/activities/triage/index.js +22 -0
- package/build/system/activities/triage/llm.d.ts +9 -0
- package/build/system/activities/triage/llm.js +34 -0
- package/build/system/activities/triage/tools.d.ts +24 -0
- package/build/system/activities/triage/tools.js +178 -0
- package/build/system/index.d.ts +16 -0
- package/build/system/index.js +100 -0
- package/build/system/mcp-servers/claude-code.d.ts +17 -0
- package/build/system/mcp-servers/claude-code.js +110 -0
- package/build/system/mcp-servers/db-query/index.d.ts +25 -0
- package/build/system/mcp-servers/db-query/index.js +49 -0
- package/build/system/mcp-servers/db-query/schemas.d.ts +52 -0
- package/build/system/mcp-servers/db-query/schemas.js +34 -0
- package/build/system/mcp-servers/db-query/tools.d.ts +5 -0
- package/build/system/mcp-servers/db-query/tools.js +224 -0
- package/build/system/mcp-servers/document-vision.d.ts +15 -0
- package/build/system/mcp-servers/document-vision.js +228 -0
- package/build/system/mcp-servers/file-storage.d.ts +4 -0
- package/build/system/mcp-servers/file-storage.js +101 -0
- package/build/system/mcp-servers/http-fetch.d.ts +4 -0
- package/build/system/mcp-servers/http-fetch.js +100 -0
- package/build/system/mcp-servers/human-queue.d.ts +26 -0
- package/build/system/mcp-servers/human-queue.js +287 -0
- package/build/system/mcp-servers/oauth.d.ts +11 -0
- package/build/system/mcp-servers/oauth.js +100 -0
- package/build/system/mcp-servers/playwright/browser-lifecycle.d.ts +26 -0
- package/build/system/mcp-servers/playwright/browser-lifecycle.js +125 -0
- package/build/system/mcp-servers/playwright/index.d.ts +25 -0
- package/build/system/mcp-servers/playwright/index.js +42 -0
- package/build/system/mcp-servers/playwright/schemas.d.ts +383 -0
- package/build/system/mcp-servers/playwright/schemas.js +87 -0
- package/build/system/mcp-servers/playwright/tools-atomic.d.ts +2 -0
- package/build/system/mcp-servers/playwright/tools-atomic.js +9 -0
- package/build/system/mcp-servers/playwright/tools-navigation.d.ts +2 -0
- package/build/system/mcp-servers/playwright/tools-navigation.js +140 -0
- package/build/system/mcp-servers/playwright/tools-page-interaction.d.ts +2 -0
- package/build/system/mcp-servers/playwright/tools-page-interaction.js +162 -0
- package/build/system/mcp-servers/playwright/tools-run-script.d.ts +2 -0
- package/build/system/mcp-servers/playwright/tools-run-script.js +190 -0
- package/build/system/mcp-servers/playwright/types.d.ts +8 -0
- package/build/system/mcp-servers/playwright/types.js +30 -0
- package/build/system/mcp-servers/playwright-cli/helpers.d.ts +11 -0
- package/build/system/mcp-servers/playwright-cli/helpers.js +20 -0
- package/build/system/mcp-servers/playwright-cli/index.d.ts +4 -0
- package/build/system/mcp-servers/playwright-cli/index.js +15 -0
- package/build/system/mcp-servers/playwright-cli/schemas.d.ts +219 -0
- package/build/system/mcp-servers/playwright-cli/schemas.js +75 -0
- package/build/system/mcp-servers/playwright-cli/tools-auth.d.ts +2 -0
- package/build/system/mcp-servers/playwright-cli/tools-auth.js +183 -0
- package/build/system/mcp-servers/playwright-cli/tools-capture.d.ts +2 -0
- package/build/system/mcp-servers/playwright-cli/tools-capture.js +267 -0
- package/build/system/mcp-servers/prompts.d.ts +4 -0
- package/build/system/mcp-servers/prompts.js +10 -0
- package/build/system/mcp-servers/workflow-compiler.d.ts +15 -0
- package/build/system/mcp-servers/workflow-compiler.js +230 -0
- package/build/system/mcp-servers/workflow.d.ts +24 -0
- package/build/system/mcp-servers/workflow.js +231 -0
- package/build/system/seed/index.d.ts +7 -0
- package/build/system/seed/index.js +36 -0
- package/build/system/seed/server-definitions.d.ts +1460 -0
- package/build/system/seed/server-definitions.js +160 -0
- package/build/system/seed/tool-manifests-browser.d.ts +577 -0
- package/build/system/seed/tool-manifests-browser.js +158 -0
- package/build/system/seed/tool-manifests-data.d.ts +322 -0
- package/build/system/seed/tool-manifests-data.js +173 -0
- package/build/system/seed/tool-manifests-escalation.d.ts +173 -0
- package/build/system/seed/tool-manifests-escalation.js +76 -0
- package/build/system/seed/tool-manifests-workflows.d.ts +211 -0
- package/build/system/seed/tool-manifests-workflows.js +136 -0
- package/build/system/workflows/mcp-deterministic/activities.d.ts +6 -0
- package/build/system/workflows/mcp-deterministic/activities.js +56 -0
- package/build/system/workflows/mcp-deterministic/index.d.ts +9 -0
- package/build/system/workflows/mcp-deterministic/index.js +72 -0
- package/build/system/workflows/mcp-query/activities/caches.d.ts +7 -0
- package/build/system/workflows/mcp-query/activities/caches.js +10 -0
- package/build/system/workflows/mcp-query/activities/discovery.d.ts +31 -0
- package/build/system/workflows/mcp-query/activities/discovery.js +172 -0
- package/build/system/workflows/mcp-query/activities/index.d.ts +4 -0
- package/build/system/workflows/mcp-query/activities/index.js +13 -0
- package/build/system/workflows/mcp-query/activities/llm.d.ts +8 -0
- package/build/system/workflows/mcp-query/activities/llm.js +33 -0
- package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +5 -0
- package/build/system/workflows/mcp-query/activities/tool-executor.js +112 -0
- package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +14 -0
- package/build/system/workflows/mcp-query/activities/tool-loader.js +93 -0
- package/build/system/workflows/mcp-query/index.d.ts +14 -0
- package/build/system/workflows/mcp-query/index.js +227 -0
- package/build/system/workflows/mcp-query/prompts.d.ts +4 -0
- package/build/system/workflows/mcp-query/prompts.js +101 -0
- package/build/system/workflows/mcp-query/strategy-advisors.d.ts +14 -0
- package/build/system/workflows/mcp-query/strategy-advisors.js +109 -0
- package/build/system/workflows/mcp-query/types.d.ts +10 -0
- package/build/system/workflows/mcp-query/types.js +3 -0
- package/build/system/workflows/mcp-query-router/activities.d.ts +6 -0
- package/build/system/workflows/mcp-query-router/activities.js +12 -0
- package/build/system/workflows/mcp-query-router/index.d.ts +13 -0
- package/build/system/workflows/mcp-query-router/index.js +107 -0
- package/build/system/workflows/mcp-query-router/prompts.d.ts +1 -0
- package/build/system/workflows/mcp-query-router/prompts.js +8 -0
- package/build/system/workflows/mcp-triage/index.d.ts +31 -0
- package/build/system/workflows/mcp-triage/index.js +222 -0
- package/build/system/workflows/mcp-triage/prompts.d.ts +7 -0
- package/build/system/workflows/mcp-triage/prompts.js +159 -0
- package/build/system/workflows/mcp-triage/response-builders.d.ts +17 -0
- package/build/system/workflows/mcp-triage/response-builders.js +96 -0
- package/build/system/workflows/mcp-triage/response.d.ts +8 -0
- package/build/system/workflows/mcp-triage/response.js +157 -0
- package/build/system/workflows/mcp-triage/types.d.ts +20 -0
- package/build/system/workflows/mcp-triage/types.js +3 -0
- package/build/system/workflows/mcp-triage-deterministic/activities.d.ts +4 -0
- package/build/system/workflows/mcp-triage-deterministic/activities.js +8 -0
- package/build/system/workflows/mcp-triage-deterministic/index.d.ts +12 -0
- package/build/system/workflows/mcp-triage-deterministic/index.js +83 -0
- package/build/system/workflows/mcp-triage-router/activities.d.ts +9 -0
- package/build/system/workflows/mcp-triage-router/activities.js +15 -0
- package/build/system/workflows/mcp-triage-router/index.d.ts +13 -0
- package/build/system/workflows/mcp-triage-router/index.js +122 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/types/auth.d.ts +34 -0
- package/build/types/auth.js +2 -0
- package/build/types/config.d.ts +48 -0
- package/build/types/config.js +2 -0
- package/build/types/delegation.d.ts +41 -0
- package/build/types/delegation.js +2 -0
- package/build/types/discovery.d.ts +12 -0
- package/build/types/discovery.js +3 -0
- package/build/types/envelope.d.ts +53 -0
- package/build/types/envelope.js +2 -0
- package/build/types/escalation-strategy.d.ts +37 -0
- package/build/types/escalation-strategy.js +2 -0
- package/build/types/escalation.d.ts +39 -0
- package/build/types/escalation.js +21 -0
- package/build/types/events.d.ts +65 -0
- package/build/types/events.js +2 -0
- package/build/types/export.d.ts +78 -0
- package/build/types/export.js +11 -0
- package/build/types/index.d.ts +21 -0
- package/build/types/index.js +6 -0
- package/build/types/logger.d.ts +26 -0
- package/build/types/logger.js +2 -0
- package/build/types/maintenance.d.ts +24 -0
- package/build/types/maintenance.js +2 -0
- package/build/types/mcp.d.ts +80 -0
- package/build/types/mcp.js +2 -0
- package/build/types/oauth.d.ts +74 -0
- package/build/types/oauth.js +2 -0
- package/build/types/startup.d.ts +110 -0
- package/build/types/startup.js +2 -0
- package/build/types/task.d.ts +39 -0
- package/build/types/task.js +2 -0
- package/build/types/telemetry.d.ts +32 -0
- package/build/types/telemetry.js +2 -0
- package/build/types/tool-context.d.ts +68 -0
- package/build/types/tool-context.js +14 -0
- package/build/types/user.d.ts +18 -0
- package/build/types/user.js +2 -0
- package/build/types/workflow.d.ts +35 -0
- package/build/types/workflow.js +2 -0
- package/build/types/yaml-workflow.d.ts +101 -0
- package/build/types/yaml-workflow.js +5 -0
- package/build/vitest.config.d.ts +2 -0
- package/build/vitest.config.js +32 -0
- package/build/vitest.integration.config.d.ts +2 -0
- package/build/vitest.integration.config.js +25 -0
- package/build/workers/index.d.ts +6 -0
- package/build/workers/index.js +20 -0
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +2 -0
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +1 -0
- package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +2 -0
- package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js.map +1 -0
- package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +2 -0
- package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js.map +1 -0
- package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +2 -0
- package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js.map +1 -0
- package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +2 -0
- package/dashboard/dist/assets/CopyableId-CBdxWfp8.js.map +1 -0
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js.map +1 -0
- package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +2 -0
- package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js.map +1 -0
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js +2 -0
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +1 -0
- package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +2 -0
- package/dashboard/dist/assets/EmptyState-2CmV-IaS.js.map +1 -0
- package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +2 -0
- package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js.map +1 -0
- package/dashboard/dist/assets/EventTable-B01oJf6Y.js +2 -0
- package/dashboard/dist/assets/EventTable-B01oJf6Y.js.map +1 -0
- package/dashboard/dist/assets/Field-DuFBAYhu.js +2 -0
- package/dashboard/dist/assets/Field-DuFBAYhu.js.map +1 -0
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js.map +1 -0
- package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +2 -0
- package/dashboard/dist/assets/McpOverview-JkvRcX2e.js.map +1 -0
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +2 -0
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +1 -0
- package/dashboard/dist/assets/Modal-B4rbIVAn.js +2 -0
- package/dashboard/dist/assets/Modal-B4rbIVAn.js.map +1 -0
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +1 -0
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js +2 -0
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js.map +1 -0
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +2 -0
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +1 -0
- package/dashboard/dist/assets/RolePill-BTPa8L-P.js +2 -0
- package/dashboard/dist/assets/RolePill-BTPa8L-P.js.map +1 -0
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js +2 -0
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +1 -0
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js.map +1 -0
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +4 -0
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +1 -0
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js.map +1 -0
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +2 -0
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +1 -0
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js.map +1 -0
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +1 -0
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +2 -0
- package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js.map +1 -0
- package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +2 -0
- package/dashboard/dist/assets/TasksListPage-C_QF23c1.js.map +1 -0
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +2 -0
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +1 -0
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +2 -0
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +1 -0
- package/dashboard/dist/assets/UserName-DaP4YAKr.js +2 -0
- package/dashboard/dist/assets/UserName-DaP4YAKr.js.map +1 -0
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +5 -0
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +1 -0
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +2 -0
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +1 -0
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +2 -0
- package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js.map +1 -0
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +3 -0
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +1 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +1 -0
- package/dashboard/dist/assets/bots-BkKVMbUW.js +2 -0
- package/dashboard/dist/assets/bots-BkKVMbUW.js.map +1 -0
- package/dashboard/dist/assets/constants-CgaZfe5d.js +2 -0
- package/dashboard/dist/assets/constants-CgaZfe5d.js.map +1 -0
- package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +2 -0
- package/dashboard/dist/assets/escalation-columns-D6aqStaY.js.map +1 -0
- package/dashboard/dist/assets/escalation-qalymbKB.js +2 -0
- package/dashboard/dist/assets/escalation-qalymbKB.js.map +1 -0
- package/dashboard/dist/assets/format-gXZXQ-HJ.js +2 -0
- package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +1 -0
- package/dashboard/dist/assets/helpers-0gSleuzT.js +2 -0
- package/dashboard/dist/assets/helpers-0gSleuzT.js.map +1 -0
- package/dashboard/dist/assets/index-BWvMHed7.js +6 -0
- package/dashboard/dist/assets/index-BWvMHed7.js.map +1 -0
- package/dashboard/dist/assets/index-BaszoPO_.css +1 -0
- package/dashboard/dist/assets/index-Cn2jyj9A.js +2 -0
- package/dashboard/dist/assets/index-Cn2jyj9A.js.map +1 -0
- package/dashboard/dist/assets/index-D8VH6K8B.js +54 -0
- package/dashboard/dist/assets/index-D8VH6K8B.js.map +1 -0
- package/dashboard/dist/assets/index-D9SYwJsi.js +3 -0
- package/dashboard/dist/assets/index-D9SYwJsi.js.map +1 -0
- package/dashboard/dist/assets/index-DTPzZr_X.js +2 -0
- package/dashboard/dist/assets/index-DTPzZr_X.js.map +1 -0
- package/dashboard/dist/assets/index-D_6AB5BE.js +2 -0
- package/dashboard/dist/assets/index-D_6AB5BE.js.map +1 -0
- package/dashboard/dist/assets/index-S9Ks2Lj2.js +2 -0
- package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +1 -0
- package/dashboard/dist/assets/index-X85K5bHC.js +17 -0
- package/dashboard/dist/assets/index-X85K5bHC.js.map +1 -0
- package/dashboard/dist/assets/index-rjmgHlSH.js +2 -0
- package/dashboard/dist/assets/index-rjmgHlSH.js.map +1 -0
- package/dashboard/dist/assets/mcp-blCW6IL7.js +2 -0
- package/dashboard/dist/assets/mcp-blCW6IL7.js.map +1 -0
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +2 -0
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +1 -0
- package/dashboard/dist/assets/mcp-runs-ChPbpvXK.js +2 -0
- package/dashboard/dist/assets/mcp-runs-ChPbpvXK.js.map +1 -0
- package/dashboard/dist/assets/namespaces-BgbaC3ow.js +2 -0
- package/dashboard/dist/assets/namespaces-BgbaC3ow.js.map +1 -0
- package/dashboard/dist/assets/roles-ZNrqqnQl.js +2 -0
- package/dashboard/dist/assets/roles-ZNrqqnQl.js.map +1 -0
- package/dashboard/dist/assets/settings-eBRSE0mQ.js +2 -0
- package/dashboard/dist/assets/settings-eBRSE0mQ.js.map +1 -0
- package/dashboard/dist/assets/tasks-tRqClPns.js +2 -0
- package/dashboard/dist/assets/tasks-tRqClPns.js.map +1 -0
- package/dashboard/dist/assets/useFilterParams-BaXUAkYK.js +2 -0
- package/dashboard/dist/assets/useFilterParams-BaXUAkYK.js.map +1 -0
- package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js +2 -0
- package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js.map +1 -0
- package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js +2 -0
- package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js.map +1 -0
- package/dashboard/dist/assets/users-tMvNyOo8.js +2 -0
- package/dashboard/dist/assets/users-tMvNyOo8.js.map +1 -0
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js +292 -0
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +1 -0
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +22 -0
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +1 -0
- package/dashboard/dist/assets/workflows-Cc4VHcrp.js +2 -0
- package/dashboard/dist/assets/workflows-Cc4VHcrp.js.map +1 -0
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +1 -0
- package/dashboard/dist/index.html +20 -0
- package/dashboard/dist/logo512.png +0 -0
- package/package.json +96 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listProcesses = listProcesses;
|
|
4
|
+
exports.getProcessStats = getProcessStats;
|
|
5
|
+
exports.getProcessTasks = getProcessTasks;
|
|
6
|
+
const db_1 = require("../db");
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
const sql_1 = require("./sql");
|
|
9
|
+
async function listProcesses(filters) {
|
|
10
|
+
const pool = (0, db_1.getPool)();
|
|
11
|
+
const limit = filters.limit || 50;
|
|
12
|
+
const offset = filters.offset || 0;
|
|
13
|
+
// Build WHERE conditions that restrict which origin_ids are included
|
|
14
|
+
const conditions = ['origin_id IS NOT NULL'];
|
|
15
|
+
const filterParams = [];
|
|
16
|
+
let idx = 1;
|
|
17
|
+
if (filters.workflow_type) {
|
|
18
|
+
conditions.push(`origin_id IN (
|
|
19
|
+
SELECT origin_id FROM lt_tasks
|
|
20
|
+
WHERE origin_id IS NOT NULL AND workflow_type = $${idx++}
|
|
21
|
+
)`);
|
|
22
|
+
filterParams.push(filters.workflow_type);
|
|
23
|
+
}
|
|
24
|
+
if (filters.search) {
|
|
25
|
+
const pattern = `%${filters.search}%`;
|
|
26
|
+
conditions.push(`origin_id IN (
|
|
27
|
+
SELECT DISTINCT origin_id FROM lt_tasks
|
|
28
|
+
WHERE origin_id IS NOT NULL
|
|
29
|
+
AND (origin_id ILIKE $${idx} OR workflow_id ILIKE $${idx} OR trace_id ILIKE $${idx})
|
|
30
|
+
)`);
|
|
31
|
+
filterParams.push(pattern);
|
|
32
|
+
idx++;
|
|
33
|
+
}
|
|
34
|
+
const where = `WHERE ${conditions.join(' AND ')}`;
|
|
35
|
+
// Status filter uses HAVING on aggregated counts
|
|
36
|
+
let having = '';
|
|
37
|
+
if (filters.status === 'completed') {
|
|
38
|
+
having = 'HAVING COUNT(*) = COUNT(*) FILTER (WHERE status = \'completed\')';
|
|
39
|
+
}
|
|
40
|
+
else if (filters.status === 'escalated') {
|
|
41
|
+
having = 'HAVING COUNT(*) FILTER (WHERE status = \'needs_intervention\') > 0';
|
|
42
|
+
}
|
|
43
|
+
else if (filters.status === 'active') {
|
|
44
|
+
having = `HAVING COUNT(*) > COUNT(*) FILTER (WHERE status = 'completed')
|
|
45
|
+
AND COUNT(*) FILTER (WHERE status = 'needs_intervention') = 0`;
|
|
46
|
+
}
|
|
47
|
+
// Count query — wrap in subquery because of HAVING
|
|
48
|
+
const countSql = having
|
|
49
|
+
? `SELECT COUNT(*) FROM (
|
|
50
|
+
SELECT origin_id FROM lt_tasks ${where}
|
|
51
|
+
GROUP BY origin_id ${having}
|
|
52
|
+
) sub`
|
|
53
|
+
: `SELECT COUNT(DISTINCT origin_id) FROM lt_tasks ${where}`;
|
|
54
|
+
const dataSql = `SELECT
|
|
55
|
+
origin_id,
|
|
56
|
+
COUNT(*)::int AS task_count,
|
|
57
|
+
COUNT(*) FILTER (WHERE status = 'completed')::int AS completed,
|
|
58
|
+
COUNT(*) FILTER (WHERE status = 'needs_intervention')::int AS escalated,
|
|
59
|
+
array_agg(DISTINCT workflow_type) AS workflow_types,
|
|
60
|
+
MIN(created_at) AS started_at,
|
|
61
|
+
MAX(COALESCE(completed_at, created_at)) AS last_activity
|
|
62
|
+
FROM lt_tasks
|
|
63
|
+
${where}
|
|
64
|
+
GROUP BY origin_id
|
|
65
|
+
${having}
|
|
66
|
+
ORDER BY MAX(created_at) DESC
|
|
67
|
+
LIMIT $${idx++} OFFSET $${idx++}`;
|
|
68
|
+
const dataParams = [...filterParams, limit, offset];
|
|
69
|
+
const [countResult, dataResult] = await Promise.all([
|
|
70
|
+
pool.query(countSql, filterParams),
|
|
71
|
+
pool.query(dataSql, dataParams),
|
|
72
|
+
]);
|
|
73
|
+
return {
|
|
74
|
+
processes: dataResult.rows,
|
|
75
|
+
total: parseInt(countResult.rows[0].count, 10),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function getProcessStats(period) {
|
|
79
|
+
const pool = (0, db_1.getPool)();
|
|
80
|
+
const interval = types_1.VALID_PERIODS[period ?? '24h'] ?? '24 hours';
|
|
81
|
+
// Aggregate process summaries within the time window
|
|
82
|
+
const { rows } = await pool.query((0, sql_1.processStatsTotals)(interval));
|
|
83
|
+
const totals = rows[0];
|
|
84
|
+
// By workflow type (most active types in the period)
|
|
85
|
+
const { rows: byType } = await pool.query((0, sql_1.processStatsByType)(interval));
|
|
86
|
+
return {
|
|
87
|
+
total: totals.total,
|
|
88
|
+
active: totals.active,
|
|
89
|
+
completed: totals.completed,
|
|
90
|
+
escalated: totals.escalated,
|
|
91
|
+
by_workflow_type: byType,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async function getProcessTasks(originId) {
|
|
95
|
+
const pool = (0, db_1.getPool)();
|
|
96
|
+
const { rows } = await pool.query(sql_1.GET_PROCESS_TASKS, [originId]);
|
|
97
|
+
return rows;
|
|
98
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResolvedHandle } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a workflowId to the (taskQueue, workflowName) pair that
|
|
4
|
+
* HotMesh needs to get a workflow handle.
|
|
5
|
+
*
|
|
6
|
+
* 1. Look up lt_tasks by workflow_id — returns workflow_type and task_queue.
|
|
7
|
+
* 2. If no task record (e.g., orchestrators/containers), fall back to
|
|
8
|
+
* durable.jobs (entity) + lt_config_workflows (task_queue).
|
|
9
|
+
* 3. If task_queue is null (pre-migration record), fall back to lt_config_workflows.
|
|
10
|
+
* 4. Throws if the workflow cannot be resolved.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveWorkflowHandle(workflowId: string): Promise<ResolvedHandle>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveWorkflowHandle = resolveWorkflowHandle;
|
|
4
|
+
const db_1 = require("../db");
|
|
5
|
+
const registry_1 = require("../workers/registry");
|
|
6
|
+
const sql_1 = require("./sql");
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a workflowId to the (taskQueue, workflowName) pair that
|
|
9
|
+
* HotMesh needs to get a workflow handle.
|
|
10
|
+
*
|
|
11
|
+
* 1. Look up lt_tasks by workflow_id — returns workflow_type and task_queue.
|
|
12
|
+
* 2. If no task record (e.g., orchestrators/containers), fall back to
|
|
13
|
+
* durable.jobs (entity) + lt_config_workflows (task_queue).
|
|
14
|
+
* 3. If task_queue is null (pre-migration record), fall back to lt_config_workflows.
|
|
15
|
+
* 4. Throws if the workflow cannot be resolved.
|
|
16
|
+
*/
|
|
17
|
+
async function resolveWorkflowHandle(workflowId) {
|
|
18
|
+
const pool = (0, db_1.getPool)();
|
|
19
|
+
// 1. Try lt_tasks first (leaf workflows)
|
|
20
|
+
const { rows } = await pool.query(sql_1.RESOLVE_TASK_BY_WORKFLOW_ID, [workflowId]);
|
|
21
|
+
if (rows.length > 0) {
|
|
22
|
+
const { workflow_type, task_queue } = rows[0];
|
|
23
|
+
if (task_queue) {
|
|
24
|
+
return { taskQueue: task_queue, workflowName: workflow_type };
|
|
25
|
+
}
|
|
26
|
+
// Fallback: resolve task_queue from config (pre-migration records)
|
|
27
|
+
const { rows: configRows } = await pool.query(sql_1.RESOLVE_CONFIG_TASK_QUEUE, [workflow_type]);
|
|
28
|
+
if (configRows.length > 0 && configRows[0].task_queue) {
|
|
29
|
+
return { taskQueue: configRows[0].task_queue, workflowName: workflow_type };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// 2. Fall back to durable.jobs — handles orchestrators/containers that
|
|
33
|
+
// have no lt_tasks record but do have a job with an entity tag.
|
|
34
|
+
const { rows: jobRows } = await pool.query(sql_1.RESOLVE_JOB_ENTITY, [`hmsh:durable:j:${workflowId}`]);
|
|
35
|
+
if (jobRows.length > 0 && jobRows[0].entity) {
|
|
36
|
+
const entity = jobRows[0].entity;
|
|
37
|
+
// 2a. Try lt_config_workflows for task_queue
|
|
38
|
+
const { rows: configRows } = await pool.query(sql_1.RESOLVE_CONFIG_TASK_QUEUE, [entity]);
|
|
39
|
+
if (configRows.length > 0 && configRows[0].task_queue) {
|
|
40
|
+
return { taskQueue: configRows[0].task_queue, workflowName: entity };
|
|
41
|
+
}
|
|
42
|
+
// 2b. Fall back to in-memory worker registry (unregistered durable workers)
|
|
43
|
+
const worker = (0, registry_1.getRegisteredWorkers)().get(entity);
|
|
44
|
+
if (worker) {
|
|
45
|
+
return { taskQueue: worker.taskQueue, workflowName: entity };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
throw new Error(`Cannot resolve workflow "${workflowId}" — no task record or job entity found`);
|
|
49
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const CREATE_TASK = "\n INSERT INTO lt_tasks\n (workflow_id, workflow_type, lt_type, task_queue, signal_id,\n parent_workflow_id, origin_id, parent_id, envelope, metadata, priority,\n trace_id, span_id, initiated_by, principal_type, executing_as)\n VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16)\n RETURNING *";
|
|
2
|
+
export declare const APPEND_MILESTONES = "\n UPDATE lt_tasks\n SET milestones = milestones || $1::jsonb\n WHERE id = $2\n RETURNING *";
|
|
3
|
+
export declare const GET_TASK = "SELECT * FROM lt_tasks WHERE id = $1";
|
|
4
|
+
export declare const GET_TASK_BY_SIGNAL_ID = "SELECT * FROM lt_tasks WHERE signal_id = $1";
|
|
5
|
+
export declare const GET_TASK_BY_WORKFLOW_ID = "SELECT * FROM lt_tasks WHERE workflow_id = $1 ORDER BY created_at DESC LIMIT 1";
|
|
6
|
+
export declare const RESOLVE_TASK_BY_WORKFLOW_ID = "SELECT workflow_type, task_queue FROM lt_tasks WHERE workflow_id = $1 ORDER BY created_at DESC LIMIT 1";
|
|
7
|
+
export declare const RESOLVE_CONFIG_TASK_QUEUE = "SELECT task_queue FROM lt_config_workflows WHERE workflow_type = $1";
|
|
8
|
+
export declare const RESOLVE_JOB_ENTITY = "SELECT entity FROM durable.jobs WHERE key = $1 LIMIT 1";
|
|
9
|
+
export declare const GET_PROCESS_TASKS = "SELECT * FROM lt_tasks WHERE origin_id = $1 ORDER BY created_at ASC";
|
|
10
|
+
/**
|
|
11
|
+
* Build the process-stats totals CTE query for a given interval.
|
|
12
|
+
* The interval value MUST come from the VALID_PERIODS whitelist.
|
|
13
|
+
*/
|
|
14
|
+
export declare function processStatsTotals(interval: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Build the process-stats-by-type CTE query for a given interval.
|
|
17
|
+
* The interval value MUST come from the VALID_PERIODS whitelist.
|
|
18
|
+
*/
|
|
19
|
+
export declare function processStatsByType(interval: string): string;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Task service — externalized SQL
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GET_PROCESS_TASKS = exports.RESOLVE_JOB_ENTITY = exports.RESOLVE_CONFIG_TASK_QUEUE = exports.RESOLVE_TASK_BY_WORKFLOW_ID = exports.GET_TASK_BY_WORKFLOW_ID = exports.GET_TASK_BY_SIGNAL_ID = exports.GET_TASK = exports.APPEND_MILESTONES = exports.CREATE_TASK = void 0;
|
|
7
|
+
exports.processStatsTotals = processStatsTotals;
|
|
8
|
+
exports.processStatsByType = processStatsByType;
|
|
9
|
+
// ---- crud.ts queries ------------------------------------------------------
|
|
10
|
+
exports.CREATE_TASK = `
|
|
11
|
+
INSERT INTO lt_tasks
|
|
12
|
+
(workflow_id, workflow_type, lt_type, task_queue, signal_id,
|
|
13
|
+
parent_workflow_id, origin_id, parent_id, envelope, metadata, priority,
|
|
14
|
+
trace_id, span_id, initiated_by, principal_type, executing_as)
|
|
15
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16)
|
|
16
|
+
RETURNING *`;
|
|
17
|
+
exports.APPEND_MILESTONES = `
|
|
18
|
+
UPDATE lt_tasks
|
|
19
|
+
SET milestones = milestones || $1::jsonb
|
|
20
|
+
WHERE id = $2
|
|
21
|
+
RETURNING *`;
|
|
22
|
+
exports.GET_TASK = `SELECT * FROM lt_tasks WHERE id = $1`;
|
|
23
|
+
exports.GET_TASK_BY_SIGNAL_ID = `SELECT * FROM lt_tasks WHERE signal_id = $1`;
|
|
24
|
+
exports.GET_TASK_BY_WORKFLOW_ID = `SELECT * FROM lt_tasks WHERE workflow_id = $1 ORDER BY created_at DESC LIMIT 1`;
|
|
25
|
+
// ---- resolve.ts queries ---------------------------------------------------
|
|
26
|
+
exports.RESOLVE_TASK_BY_WORKFLOW_ID = `SELECT workflow_type, task_queue FROM lt_tasks WHERE workflow_id = $1 ORDER BY created_at DESC LIMIT 1`;
|
|
27
|
+
exports.RESOLVE_CONFIG_TASK_QUEUE = `SELECT task_queue FROM lt_config_workflows WHERE workflow_type = $1`;
|
|
28
|
+
exports.RESOLVE_JOB_ENTITY = `SELECT entity FROM durable.jobs WHERE key = $1 LIMIT 1`;
|
|
29
|
+
// ---- process.ts queries ---------------------------------------------------
|
|
30
|
+
exports.GET_PROCESS_TASKS = `SELECT * FROM lt_tasks WHERE origin_id = $1 ORDER BY created_at ASC`;
|
|
31
|
+
/**
|
|
32
|
+
* Build the process-stats totals CTE query for a given interval.
|
|
33
|
+
* The interval value MUST come from the VALID_PERIODS whitelist.
|
|
34
|
+
*/
|
|
35
|
+
function processStatsTotals(interval) {
|
|
36
|
+
return `
|
|
37
|
+
WITH process_stats AS (
|
|
38
|
+
SELECT
|
|
39
|
+
origin_id,
|
|
40
|
+
COUNT(*)::int AS task_count,
|
|
41
|
+
COUNT(*) FILTER (WHERE status = 'completed')::int AS completed_count,
|
|
42
|
+
COUNT(*) FILTER (WHERE status = 'needs_intervention')::int AS escalated_count
|
|
43
|
+
FROM lt_tasks
|
|
44
|
+
WHERE origin_id IS NOT NULL
|
|
45
|
+
AND created_at > NOW() - INTERVAL '${interval}'
|
|
46
|
+
GROUP BY origin_id
|
|
47
|
+
)
|
|
48
|
+
SELECT
|
|
49
|
+
COUNT(*)::int AS total,
|
|
50
|
+
COUNT(*) FILTER (WHERE completed_count = task_count AND task_count > 0)::int AS completed,
|
|
51
|
+
COUNT(*) FILTER (WHERE escalated_count > 0)::int AS escalated,
|
|
52
|
+
COUNT(*) FILTER (
|
|
53
|
+
WHERE completed_count < task_count
|
|
54
|
+
AND escalated_count = 0
|
|
55
|
+
)::int AS active
|
|
56
|
+
FROM process_stats`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Build the process-stats-by-type CTE query for a given interval.
|
|
60
|
+
* The interval value MUST come from the VALID_PERIODS whitelist.
|
|
61
|
+
*/
|
|
62
|
+
function processStatsByType(interval) {
|
|
63
|
+
return `
|
|
64
|
+
WITH task_window AS (
|
|
65
|
+
SELECT
|
|
66
|
+
origin_id,
|
|
67
|
+
workflow_type,
|
|
68
|
+
status
|
|
69
|
+
FROM lt_tasks
|
|
70
|
+
WHERE origin_id IS NOT NULL
|
|
71
|
+
AND created_at > NOW() - INTERVAL '${interval}'
|
|
72
|
+
),
|
|
73
|
+
per_origin AS (
|
|
74
|
+
SELECT
|
|
75
|
+
origin_id,
|
|
76
|
+
COUNT(*)::int AS task_count,
|
|
77
|
+
COUNT(*) FILTER (WHERE status = 'completed')::int AS completed_count,
|
|
78
|
+
COUNT(*) FILTER (WHERE status = 'needs_intervention')::int AS escalated_count,
|
|
79
|
+
(array_agg(DISTINCT workflow_type))[1] AS primary_workflow_type
|
|
80
|
+
FROM task_window
|
|
81
|
+
GROUP BY origin_id
|
|
82
|
+
)
|
|
83
|
+
SELECT
|
|
84
|
+
primary_workflow_type AS workflow_type,
|
|
85
|
+
COUNT(*)::int AS total,
|
|
86
|
+
COUNT(*) FILTER (WHERE completed_count < task_count AND escalated_count = 0)::int AS active,
|
|
87
|
+
COUNT(*) FILTER (WHERE completed_count = task_count AND task_count > 0)::int AS completed,
|
|
88
|
+
COUNT(*) FILTER (WHERE escalated_count > 0)::int AS escalated
|
|
89
|
+
FROM per_origin
|
|
90
|
+
GROUP BY primary_workflow_type
|
|
91
|
+
ORDER BY COUNT(*) DESC`;
|
|
92
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { LTTaskStatus, LTMilestone } from '../../types';
|
|
2
|
+
export interface ResolvedHandle {
|
|
3
|
+
taskQueue: string;
|
|
4
|
+
workflowName: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CreateTaskInput {
|
|
7
|
+
workflow_id: string;
|
|
8
|
+
workflow_type: string;
|
|
9
|
+
lt_type: string;
|
|
10
|
+
task_queue?: string;
|
|
11
|
+
signal_id: string;
|
|
12
|
+
parent_workflow_id: string;
|
|
13
|
+
origin_id?: string;
|
|
14
|
+
parent_id?: string;
|
|
15
|
+
envelope: string;
|
|
16
|
+
metadata?: Record<string, any>;
|
|
17
|
+
priority?: number;
|
|
18
|
+
trace_id?: string;
|
|
19
|
+
span_id?: string;
|
|
20
|
+
/** User or bot ID that initiated this task (for audit trail). */
|
|
21
|
+
initiated_by?: string;
|
|
22
|
+
/** Principal type: 'user' or 'bot'. */
|
|
23
|
+
principal_type?: string;
|
|
24
|
+
/** Executing principal (bot external_id) when proxy invocation is used. */
|
|
25
|
+
executing_as?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface UpdateTaskInput {
|
|
28
|
+
status?: LTTaskStatus;
|
|
29
|
+
completed_at?: Date;
|
|
30
|
+
error?: string;
|
|
31
|
+
milestones?: LTMilestone[];
|
|
32
|
+
data?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ProcessSummary {
|
|
35
|
+
origin_id: string;
|
|
36
|
+
task_count: number;
|
|
37
|
+
completed: number;
|
|
38
|
+
escalated: number;
|
|
39
|
+
workflow_types: string[];
|
|
40
|
+
started_at: string;
|
|
41
|
+
last_activity: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ProcessStats {
|
|
44
|
+
total: number;
|
|
45
|
+
active: number;
|
|
46
|
+
completed: number;
|
|
47
|
+
escalated: number;
|
|
48
|
+
by_workflow_type: {
|
|
49
|
+
workflow_type: string;
|
|
50
|
+
total: number;
|
|
51
|
+
active: number;
|
|
52
|
+
completed: number;
|
|
53
|
+
escalated: number;
|
|
54
|
+
}[];
|
|
55
|
+
}
|
|
56
|
+
export declare const VALID_PERIODS: Record<string, string>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { LTTelemetryAdapter } from '../../types/telemetry';
|
|
2
|
+
export interface HoneycombOptions {
|
|
3
|
+
/** Honeycomb API key (defaults to HONEYCOMB_API_KEY env var) */
|
|
4
|
+
apiKey?: string;
|
|
5
|
+
/** Service name reported to Honeycomb (defaults to 'long-tail') */
|
|
6
|
+
serviceName?: string;
|
|
7
|
+
/** Honeycomb OTLP endpoint (defaults to https://api.honeycomb.io) */
|
|
8
|
+
endpoint?: string;
|
|
9
|
+
/**
|
|
10
|
+
* URL template for deep-linking to traces in Honeycomb UI.
|
|
11
|
+
* Use `{traceId}` as a placeholder, e.g.:
|
|
12
|
+
* `https://ui.honeycomb.io/my-team/environments/prod/trace?trace_id={traceId}`
|
|
13
|
+
*/
|
|
14
|
+
traceUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Honeycomb telemetry adapter.
|
|
18
|
+
*
|
|
19
|
+
* Configures the OpenTelemetry Node.js SDK with an OTLP exporter
|
|
20
|
+
* pointed at Honeycomb. Once connected, all spans created by HotMesh
|
|
21
|
+
* (workflow executions, activity calls, stream routing) are
|
|
22
|
+
* automatically exported to Honeycomb.
|
|
23
|
+
*
|
|
24
|
+
* HotMesh uses `@opentelemetry/api` internally to create spans. This
|
|
25
|
+
* adapter provides the TracerProvider + exporter that captures them.
|
|
26
|
+
*
|
|
27
|
+
* Usage:
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import { telemetryRegistry } from './services/telemetry';
|
|
30
|
+
* import { HoneycombTelemetryAdapter } from './services/telemetry/honeycomb';
|
|
31
|
+
*
|
|
32
|
+
* telemetryRegistry.register(new HoneycombTelemetryAdapter({
|
|
33
|
+
* apiKey: process.env.HONEYCOMB_API_KEY,
|
|
34
|
+
* serviceName: 'my-app',
|
|
35
|
+
* }));
|
|
36
|
+
* await telemetryRegistry.connect(); // before starting workers
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class HoneycombTelemetryAdapter implements LTTelemetryAdapter {
|
|
40
|
+
private sdk;
|
|
41
|
+
private readonly apiKey;
|
|
42
|
+
private readonly serviceName;
|
|
43
|
+
private readonly endpoint;
|
|
44
|
+
readonly traceUrl?: string;
|
|
45
|
+
constructor(options?: HoneycombOptions);
|
|
46
|
+
/**
|
|
47
|
+
* Auto-derive the Honeycomb trace URL from standard env vars.
|
|
48
|
+
* Returns undefined if HONEYCOMB_TEAM or HONEYCOMB_ENVIRONMENT are not set.
|
|
49
|
+
*/
|
|
50
|
+
private static deriveTraceUrl;
|
|
51
|
+
connect(): Promise<void>;
|
|
52
|
+
disconnect(): Promise<void>;
|
|
53
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HoneycombTelemetryAdapter = void 0;
|
|
4
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
5
|
+
const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-proto");
|
|
6
|
+
const resources_1 = require("@opentelemetry/resources");
|
|
7
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
8
|
+
const logger_1 = require("../logger");
|
|
9
|
+
/**
|
|
10
|
+
* Honeycomb telemetry adapter.
|
|
11
|
+
*
|
|
12
|
+
* Configures the OpenTelemetry Node.js SDK with an OTLP exporter
|
|
13
|
+
* pointed at Honeycomb. Once connected, all spans created by HotMesh
|
|
14
|
+
* (workflow executions, activity calls, stream routing) are
|
|
15
|
+
* automatically exported to Honeycomb.
|
|
16
|
+
*
|
|
17
|
+
* HotMesh uses `@opentelemetry/api` internally to create spans. This
|
|
18
|
+
* adapter provides the TracerProvider + exporter that captures them.
|
|
19
|
+
*
|
|
20
|
+
* Usage:
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { telemetryRegistry } from './services/telemetry';
|
|
23
|
+
* import { HoneycombTelemetryAdapter } from './services/telemetry/honeycomb';
|
|
24
|
+
*
|
|
25
|
+
* telemetryRegistry.register(new HoneycombTelemetryAdapter({
|
|
26
|
+
* apiKey: process.env.HONEYCOMB_API_KEY,
|
|
27
|
+
* serviceName: 'my-app',
|
|
28
|
+
* }));
|
|
29
|
+
* await telemetryRegistry.connect(); // before starting workers
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
class HoneycombTelemetryAdapter {
|
|
33
|
+
constructor(options) {
|
|
34
|
+
this.sdk = null;
|
|
35
|
+
this.apiKey = options?.apiKey || process.env.HONEYCOMB_API_KEY || '';
|
|
36
|
+
this.serviceName = options?.serviceName || 'long-tail';
|
|
37
|
+
this.endpoint = options?.endpoint || 'https://api.honeycomb.io';
|
|
38
|
+
this.traceUrl = options?.traceUrl || HoneycombTelemetryAdapter.deriveTraceUrl(this.serviceName);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Auto-derive the Honeycomb trace URL from standard env vars.
|
|
42
|
+
* Returns undefined if HONEYCOMB_TEAM or HONEYCOMB_ENVIRONMENT are not set.
|
|
43
|
+
*/
|
|
44
|
+
static deriveTraceUrl(dataset) {
|
|
45
|
+
const team = process.env.HONEYCOMB_TEAM;
|
|
46
|
+
const env = process.env.HONEYCOMB_ENVIRONMENT;
|
|
47
|
+
if (!team || !env)
|
|
48
|
+
return undefined;
|
|
49
|
+
return `https://ui.honeycomb.io/${team}/environments/${env}/datasets/${dataset}/trace?trace_id={traceId}`;
|
|
50
|
+
}
|
|
51
|
+
async connect() {
|
|
52
|
+
if (!this.apiKey) {
|
|
53
|
+
logger_1.loggerRegistry.warn('[telemetry] HONEYCOMB_API_KEY not set — skipping Honeycomb telemetry');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const exporter = new exporter_trace_otlp_proto_1.OTLPTraceExporter({
|
|
57
|
+
url: `${this.endpoint}/v1/traces`,
|
|
58
|
+
headers: {
|
|
59
|
+
'x-honeycomb-team': this.apiKey,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
this.sdk = new sdk_node_1.NodeSDK({
|
|
63
|
+
resource: (0, resources_1.resourceFromAttributes)({
|
|
64
|
+
[semantic_conventions_1.ATTR_SERVICE_NAME]: this.serviceName,
|
|
65
|
+
}),
|
|
66
|
+
traceExporter: exporter,
|
|
67
|
+
});
|
|
68
|
+
this.sdk.start();
|
|
69
|
+
logger_1.loggerRegistry.info(`[telemetry] Honeycomb connected (service: ${this.serviceName})`);
|
|
70
|
+
}
|
|
71
|
+
async disconnect() {
|
|
72
|
+
if (!this.sdk)
|
|
73
|
+
return;
|
|
74
|
+
await this.sdk.shutdown();
|
|
75
|
+
this.sdk = null;
|
|
76
|
+
logger_1.loggerRegistry.info('[telemetry] Honeycomb disconnected');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.HoneycombTelemetryAdapter = HoneycombTelemetryAdapter;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { LTTelemetryAdapter } from '../../types/telemetry';
|
|
2
|
+
/**
|
|
3
|
+
* Singleton registry for the telemetry adapter.
|
|
4
|
+
*
|
|
5
|
+
* Unlike the event registry (which fans out to multiple adapters),
|
|
6
|
+
* telemetry uses a single adapter because OTEL only supports one
|
|
7
|
+
* global TracerProvider at a time.
|
|
8
|
+
*
|
|
9
|
+
* The adapter must be registered and connected BEFORE HotMesh
|
|
10
|
+
* workers start so that spans are captured from the first workflow.
|
|
11
|
+
*/
|
|
12
|
+
declare class LTTelemetryRegistry {
|
|
13
|
+
private adapter;
|
|
14
|
+
private connected;
|
|
15
|
+
/**
|
|
16
|
+
* Register a telemetry adapter. Call before connect().
|
|
17
|
+
* Replaces any previously registered adapter.
|
|
18
|
+
*/
|
|
19
|
+
register(adapter: LTTelemetryAdapter): void;
|
|
20
|
+
/**
|
|
21
|
+
* Connect the registered adapter (initializes OTEL SDK).
|
|
22
|
+
* Must be called before HotMesh workers start.
|
|
23
|
+
*/
|
|
24
|
+
connect(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Disconnect the adapter (flush + shutdown OTEL SDK).
|
|
27
|
+
* Call during graceful shutdown.
|
|
28
|
+
*/
|
|
29
|
+
disconnect(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Remove the adapter and reset state. Used in tests.
|
|
32
|
+
*/
|
|
33
|
+
clear(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Check if an adapter is registered.
|
|
36
|
+
*/
|
|
37
|
+
get hasAdapter(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Trace URL template from the registered adapter (if any).
|
|
40
|
+
* Contains `{traceId}` placeholder for substitution.
|
|
41
|
+
*/
|
|
42
|
+
get traceUrl(): string | undefined;
|
|
43
|
+
}
|
|
44
|
+
/** Singleton telemetry registry */
|
|
45
|
+
export declare const telemetryRegistry: LTTelemetryRegistry;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.telemetryRegistry = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Singleton registry for the telemetry adapter.
|
|
6
|
+
*
|
|
7
|
+
* Unlike the event registry (which fans out to multiple adapters),
|
|
8
|
+
* telemetry uses a single adapter because OTEL only supports one
|
|
9
|
+
* global TracerProvider at a time.
|
|
10
|
+
*
|
|
11
|
+
* The adapter must be registered and connected BEFORE HotMesh
|
|
12
|
+
* workers start so that spans are captured from the first workflow.
|
|
13
|
+
*/
|
|
14
|
+
class LTTelemetryRegistry {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.adapter = null;
|
|
17
|
+
this.connected = false;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Register a telemetry adapter. Call before connect().
|
|
21
|
+
* Replaces any previously registered adapter.
|
|
22
|
+
*/
|
|
23
|
+
register(adapter) {
|
|
24
|
+
this.adapter = adapter;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Connect the registered adapter (initializes OTEL SDK).
|
|
28
|
+
* Must be called before HotMesh workers start.
|
|
29
|
+
*/
|
|
30
|
+
async connect() {
|
|
31
|
+
if (this.connected || !this.adapter)
|
|
32
|
+
return;
|
|
33
|
+
await this.adapter.connect();
|
|
34
|
+
this.connected = true;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Disconnect the adapter (flush + shutdown OTEL SDK).
|
|
38
|
+
* Call during graceful shutdown.
|
|
39
|
+
*/
|
|
40
|
+
async disconnect() {
|
|
41
|
+
if (!this.adapter)
|
|
42
|
+
return;
|
|
43
|
+
await this.adapter.disconnect();
|
|
44
|
+
this.connected = false;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Remove the adapter and reset state. Used in tests.
|
|
48
|
+
*/
|
|
49
|
+
clear() {
|
|
50
|
+
this.adapter = null;
|
|
51
|
+
this.connected = false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if an adapter is registered.
|
|
55
|
+
*/
|
|
56
|
+
get hasAdapter() {
|
|
57
|
+
return this.adapter !== null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Trace URL template from the registered adapter (if any).
|
|
61
|
+
* Contains `{traceId}` placeholder for substitution.
|
|
62
|
+
*/
|
|
63
|
+
get traceUrl() {
|
|
64
|
+
return this.adapter?.traceUrl;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Singleton telemetry registry */
|
|
68
|
+
exports.telemetryRegistry = new LTTelemetryRegistry();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LTUserRecord } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Verify a user's password. Returns the full user record (with roles)
|
|
4
|
+
* on success, or null if the external_id doesn't exist, the user has
|
|
5
|
+
* no password set, or the password doesn't match.
|
|
6
|
+
*/
|
|
7
|
+
export declare function verifyPassword(externalId: string, password: string): Promise<LTUserRecord | null>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.verifyPassword = verifyPassword;
|
|
7
|
+
const bcryptjs_1 = __importDefault(require("bcryptjs"));
|
|
8
|
+
const db_1 = require("../db");
|
|
9
|
+
const crud_1 = require("./crud");
|
|
10
|
+
const sql_1 = require("./sql");
|
|
11
|
+
// ─── Password authentication ────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Verify a user's password. Returns the full user record (with roles)
|
|
14
|
+
* on success, or null if the external_id doesn't exist, the user has
|
|
15
|
+
* no password set, or the password doesn't match.
|
|
16
|
+
*/
|
|
17
|
+
async function verifyPassword(externalId, password) {
|
|
18
|
+
const pool = (0, db_1.getPool)();
|
|
19
|
+
const { rows } = await pool.query(sql_1.GET_USER_BY_EXTERNAL_ID, [externalId]);
|
|
20
|
+
if (!rows[0] || !rows[0].password_hash)
|
|
21
|
+
return null;
|
|
22
|
+
const valid = await bcryptjs_1.default.compare(password, rows[0].password_hash);
|
|
23
|
+
if (!valid)
|
|
24
|
+
return null;
|
|
25
|
+
return (0, crud_1.attachRoles)(rows[0]);
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LTUserRecord, LTRoleType, LTUserStatus } from '../../types';
|
|
2
|
+
import type { CreateUserInput, UpdateUserInput } from './types';
|
|
3
|
+
export declare function attachRoles(user: any): Promise<LTUserRecord>;
|
|
4
|
+
export declare function createUser(input: CreateUserInput): Promise<LTUserRecord>;
|
|
5
|
+
export declare function getUser(id: string): Promise<LTUserRecord | null>;
|
|
6
|
+
export declare function getUserByExternalId(externalId: string): Promise<LTUserRecord | null>;
|
|
7
|
+
export declare function getUserByEmail(email: string): Promise<LTUserRecord | null>;
|
|
8
|
+
export declare function updateUser(id: string, input: UpdateUserInput): Promise<LTUserRecord | null>;
|
|
9
|
+
export declare function deleteUser(id: string): Promise<boolean>;
|
|
10
|
+
export declare function listUsers(filters: {
|
|
11
|
+
role?: string;
|
|
12
|
+
roleType?: LTRoleType;
|
|
13
|
+
status?: LTUserStatus;
|
|
14
|
+
limit?: number;
|
|
15
|
+
offset?: number;
|
|
16
|
+
}): Promise<{
|
|
17
|
+
users: LTUserRecord[];
|
|
18
|
+
total: number;
|
|
19
|
+
}>;
|