@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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List all HotMesh applications from the global registry.
|
|
3
|
+
* Keys follow the pattern `hmsh:a:{appId}`. Non-expired only.
|
|
4
|
+
*/
|
|
5
|
+
export declare const LIST_APPS = "\n SELECT DISTINCT key FROM hotmesh_applications\n WHERE key LIKE 'hmsh:a:%'\n AND (expiry IS NULL OR expiry > NOW())\n ORDER BY key";
|
|
6
|
+
/**
|
|
7
|
+
* Count pending (unprocessed) stream messages across both tables.
|
|
8
|
+
* expired_at IS NULL = message has not been consumed yet.
|
|
9
|
+
* $1 = stream_name filter (NULL = all streams).
|
|
10
|
+
*/
|
|
11
|
+
export declare const COUNT_PENDING: (schema: string) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Count processed stream messages within a time interval.
|
|
14
|
+
* $1 = interval, $2 = stream_name filter (NULL = all streams).
|
|
15
|
+
*/
|
|
16
|
+
export declare const COUNT_PROCESSED_SINCE: (schema: string) => string;
|
|
17
|
+
/**
|
|
18
|
+
* Volume breakdown by stream_name within a time interval.
|
|
19
|
+
* $1 = interval, $2 = stream_name filter (NULL = all streams).
|
|
20
|
+
*/
|
|
21
|
+
export declare const VOLUME_BY_STREAM: (schema: string) => string;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Application discovery ──────────────────────────────────────────────────
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.VOLUME_BY_STREAM = exports.COUNT_PROCESSED_SINCE = exports.COUNT_PENDING = exports.LIST_APPS = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* List all HotMesh applications from the global registry.
|
|
7
|
+
* Keys follow the pattern `hmsh:a:{appId}`. Non-expired only.
|
|
8
|
+
*/
|
|
9
|
+
exports.LIST_APPS = `
|
|
10
|
+
SELECT DISTINCT key FROM hotmesh_applications
|
|
11
|
+
WHERE key LIKE 'hmsh:a:%'
|
|
12
|
+
AND (expiry IS NULL OR expiry > NOW())
|
|
13
|
+
ORDER BY key`;
|
|
14
|
+
// ─── Stream statistics ──────────────────────────────────────────────────────
|
|
15
|
+
//
|
|
16
|
+
// HotMesh v0.11.0 split the single `streams` table into `engine_streams`
|
|
17
|
+
// (internal engine orchestration) and `worker_streams` (worker task messages).
|
|
18
|
+
// All queries now UNION both tables for aggregate statistics.
|
|
19
|
+
/**
|
|
20
|
+
* Count pending (unprocessed) stream messages across both tables.
|
|
21
|
+
* expired_at IS NULL = message has not been consumed yet.
|
|
22
|
+
* $1 = stream_name filter (NULL = all streams).
|
|
23
|
+
*/
|
|
24
|
+
const COUNT_PENDING = (schema) => `
|
|
25
|
+
SELECT COUNT(*)::int AS count FROM (
|
|
26
|
+
SELECT stream_name FROM "${schema}".engine_streams
|
|
27
|
+
WHERE expired_at IS NULL
|
|
28
|
+
AND ($1::text IS NULL OR stream_name = $1)
|
|
29
|
+
UNION ALL
|
|
30
|
+
SELECT stream_name FROM "${schema}".worker_streams
|
|
31
|
+
WHERE expired_at IS NULL
|
|
32
|
+
AND ($1::text IS NULL OR stream_name = $1)
|
|
33
|
+
) combined`;
|
|
34
|
+
exports.COUNT_PENDING = COUNT_PENDING;
|
|
35
|
+
/**
|
|
36
|
+
* Count processed stream messages within a time interval.
|
|
37
|
+
* $1 = interval, $2 = stream_name filter (NULL = all streams).
|
|
38
|
+
*/
|
|
39
|
+
const COUNT_PROCESSED_SINCE = (schema) => `
|
|
40
|
+
SELECT COUNT(*)::int AS count FROM (
|
|
41
|
+
SELECT stream_name FROM "${schema}".engine_streams
|
|
42
|
+
WHERE expired_at IS NOT NULL
|
|
43
|
+
AND expired_at > NOW() - $1::interval
|
|
44
|
+
AND ($2::text IS NULL OR stream_name = $2)
|
|
45
|
+
UNION ALL
|
|
46
|
+
SELECT stream_name FROM "${schema}".worker_streams
|
|
47
|
+
WHERE expired_at IS NOT NULL
|
|
48
|
+
AND expired_at > NOW() - $1::interval
|
|
49
|
+
AND ($2::text IS NULL OR stream_name = $2)
|
|
50
|
+
) combined`;
|
|
51
|
+
exports.COUNT_PROCESSED_SINCE = COUNT_PROCESSED_SINCE;
|
|
52
|
+
/**
|
|
53
|
+
* Volume breakdown by stream_name within a time interval.
|
|
54
|
+
* $1 = interval, $2 = stream_name filter (NULL = all streams).
|
|
55
|
+
*/
|
|
56
|
+
const VOLUME_BY_STREAM = (schema) => `
|
|
57
|
+
SELECT stream_type, stream_name, COUNT(*)::int AS count FROM (
|
|
58
|
+
SELECT 'engine' AS stream_type, stream_name FROM "${schema}".engine_streams
|
|
59
|
+
WHERE expired_at IS NOT NULL
|
|
60
|
+
AND expired_at > NOW() - $1::interval
|
|
61
|
+
AND ($2::text IS NULL OR stream_name = $2)
|
|
62
|
+
UNION ALL
|
|
63
|
+
SELECT 'worker' AS stream_type, stream_name FROM "${schema}".worker_streams
|
|
64
|
+
WHERE expired_at IS NOT NULL
|
|
65
|
+
AND expired_at > NOW() - $1::interval
|
|
66
|
+
AND ($2::text IS NULL OR stream_name = $2)
|
|
67
|
+
) combined
|
|
68
|
+
GROUP BY stream_type, stream_name
|
|
69
|
+
ORDER BY stream_type, count DESC`;
|
|
70
|
+
exports.VOLUME_BY_STREAM = VOLUME_BY_STREAM;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Type definitions for the control plane service. */
|
|
2
|
+
export interface ControlPlaneApp {
|
|
3
|
+
appId: string;
|
|
4
|
+
}
|
|
5
|
+
export interface StreamStats {
|
|
6
|
+
pending: number;
|
|
7
|
+
processed: number;
|
|
8
|
+
byStream: Array<{
|
|
9
|
+
stream_type: 'engine' | 'worker';
|
|
10
|
+
stream_name: string;
|
|
11
|
+
count: number;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { LTWorkflowConfig } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Singleton registry for workflow cron schedules.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same pattern as maintenanceRegistry:
|
|
6
|
+
* - connect() — load configs with cron_schedule, start Virtual.cron for each
|
|
7
|
+
* - disconnect() — interrupt all crons
|
|
8
|
+
* - restartCron() — stop + start a single cron after config change
|
|
9
|
+
* - clear() — reset for tests
|
|
10
|
+
*/
|
|
11
|
+
declare class LTCronRegistry {
|
|
12
|
+
private activeCrons;
|
|
13
|
+
private connected;
|
|
14
|
+
private systemPrincipal;
|
|
15
|
+
/**
|
|
16
|
+
* Load all workflow configs with a cron_schedule and start Virtual.cron for each.
|
|
17
|
+
* Call after workers and migrations are ready.
|
|
18
|
+
*/
|
|
19
|
+
connect(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Start a single Virtual.cron for a workflow config.
|
|
22
|
+
*/
|
|
23
|
+
startCron(config: LTWorkflowConfig): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Stop a single cron for a workflow type.
|
|
26
|
+
*/
|
|
27
|
+
stopCron(workflowType: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Restart a cron after a config change.
|
|
30
|
+
* Stops the old cron (if any) and starts a new one if cron_schedule is set.
|
|
31
|
+
*/
|
|
32
|
+
restartCron(config: LTWorkflowConfig): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Stop all active crons. Call during graceful shutdown.
|
|
35
|
+
*/
|
|
36
|
+
disconnect(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Reset state. Used in tests.
|
|
39
|
+
*/
|
|
40
|
+
clear(): void;
|
|
41
|
+
get hasActiveCrons(): boolean;
|
|
42
|
+
get activeWorkflowTypes(): string[];
|
|
43
|
+
}
|
|
44
|
+
/** Singleton cron registry */
|
|
45
|
+
export declare const cronRegistry: LTCronRegistry;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.cronRegistry = void 0;
|
|
37
|
+
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
38
|
+
const pg_1 = require("pg");
|
|
39
|
+
const config_1 = require("../../modules/config");
|
|
40
|
+
const defaults_1 = require("../../modules/defaults");
|
|
41
|
+
const logger_1 = require("../logger");
|
|
42
|
+
const configService = __importStar(require("../config"));
|
|
43
|
+
const principal_1 = require("../iam/principal");
|
|
44
|
+
const CRON_TOPIC_PREFIX = 'lt.cron';
|
|
45
|
+
const CRON_ID_PREFIX = 'lt-cron';
|
|
46
|
+
/**
|
|
47
|
+
* Singleton registry for workflow cron schedules.
|
|
48
|
+
*
|
|
49
|
+
* Follows the same pattern as maintenanceRegistry:
|
|
50
|
+
* - connect() — load configs with cron_schedule, start Virtual.cron for each
|
|
51
|
+
* - disconnect() — interrupt all crons
|
|
52
|
+
* - restartCron() — stop + start a single cron after config change
|
|
53
|
+
* - clear() — reset for tests
|
|
54
|
+
*/
|
|
55
|
+
class LTCronRegistry {
|
|
56
|
+
constructor() {
|
|
57
|
+
this.activeCrons = new Map(); // workflowType -> cronId
|
|
58
|
+
this.connected = false;
|
|
59
|
+
this.systemPrincipal = null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Load all workflow configs with a cron_schedule and start Virtual.cron for each.
|
|
63
|
+
* Call after workers and migrations are ready.
|
|
64
|
+
*/
|
|
65
|
+
async connect() {
|
|
66
|
+
if (this.connected)
|
|
67
|
+
return;
|
|
68
|
+
// Resolve the real system bot principal (ensured at startup)
|
|
69
|
+
this.systemPrincipal = await (0, principal_1.resolvePrincipal)('lt-system');
|
|
70
|
+
const configs = await configService.listWorkflowConfigs();
|
|
71
|
+
const cronConfigs = configs.filter((c) => c.cron_schedule && c.invocable && c.task_queue);
|
|
72
|
+
for (const config of cronConfigs) {
|
|
73
|
+
await this.startCron(config);
|
|
74
|
+
}
|
|
75
|
+
this.connected = true;
|
|
76
|
+
if (cronConfigs.length > 0) {
|
|
77
|
+
logger_1.loggerRegistry.info(`[lt-cron] started ${cronConfigs.length} cron(s): ${cronConfigs.map((c) => c.workflow_type).join(', ')}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Start a single Virtual.cron for a workflow config.
|
|
82
|
+
*/
|
|
83
|
+
async startCron(config) {
|
|
84
|
+
if (!config.cron_schedule || !config.task_queue)
|
|
85
|
+
return;
|
|
86
|
+
const connection = { class: pg_1.Client, options: config_1.postgres_options };
|
|
87
|
+
const topic = `${CRON_TOPIC_PREFIX}.${config.workflow_type}`;
|
|
88
|
+
const cronId = `${CRON_ID_PREFIX}-${config.workflow_type}`;
|
|
89
|
+
const defaultEnvelope = config.envelope_schema
|
|
90
|
+
? { ...config.envelope_schema }
|
|
91
|
+
: { data: {}, metadata: {} };
|
|
92
|
+
// Ensure metadata.source identifies the cron
|
|
93
|
+
if (!defaultEnvelope.metadata)
|
|
94
|
+
defaultEnvelope.metadata = {};
|
|
95
|
+
defaultEnvelope.metadata.source = 'cron';
|
|
96
|
+
// Resolve executing principal: per-config execute_as, or system bot fallback
|
|
97
|
+
if (!defaultEnvelope.lt)
|
|
98
|
+
defaultEnvelope.lt = {};
|
|
99
|
+
if (!defaultEnvelope.lt.principal) {
|
|
100
|
+
let cronPrincipal = this.systemPrincipal;
|
|
101
|
+
if (config.execute_as) {
|
|
102
|
+
const botPrincipal = await (0, principal_1.resolvePrincipal)(config.execute_as);
|
|
103
|
+
if (botPrincipal)
|
|
104
|
+
cronPrincipal = botPrincipal;
|
|
105
|
+
}
|
|
106
|
+
if (cronPrincipal) {
|
|
107
|
+
defaultEnvelope.lt.userId = cronPrincipal.id;
|
|
108
|
+
defaultEnvelope.lt.principal = cronPrincipal;
|
|
109
|
+
}
|
|
110
|
+
defaultEnvelope.lt.scopes = ['workflow:cron'];
|
|
111
|
+
}
|
|
112
|
+
const workflowType = config.workflow_type;
|
|
113
|
+
const taskQueue = config.task_queue;
|
|
114
|
+
await hotmesh_1.Virtual.cron({
|
|
115
|
+
topic,
|
|
116
|
+
connection,
|
|
117
|
+
callback: async () => {
|
|
118
|
+
try {
|
|
119
|
+
const client = new hotmesh_1.Durable.Client({ connection });
|
|
120
|
+
const workflowId = `${workflowType}-cron-${hotmesh_1.Durable.guid()}`;
|
|
121
|
+
logger_1.loggerRegistry.info(`[lt-cron] invoking ${workflowType} (${workflowId})`);
|
|
122
|
+
await client.workflow.start({
|
|
123
|
+
args: [defaultEnvelope],
|
|
124
|
+
taskQueue,
|
|
125
|
+
workflowName: workflowType,
|
|
126
|
+
workflowId,
|
|
127
|
+
expire: defaults_1.JOB_EXPIRE_SECS,
|
|
128
|
+
entity: workflowType,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
logger_1.loggerRegistry.error(`[lt-cron] ${workflowType} failed: ${err?.message}`);
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
args: [],
|
|
136
|
+
options: {
|
|
137
|
+
id: cronId,
|
|
138
|
+
interval: config.cron_schedule,
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
this.activeCrons.set(config.workflow_type, cronId);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Stop a single cron for a workflow type.
|
|
145
|
+
*/
|
|
146
|
+
async stopCron(workflowType) {
|
|
147
|
+
const cronId = this.activeCrons.get(workflowType);
|
|
148
|
+
if (!cronId)
|
|
149
|
+
return;
|
|
150
|
+
const connection = { class: pg_1.Client, options: config_1.postgres_options };
|
|
151
|
+
const topic = `${CRON_TOPIC_PREFIX}.${workflowType}`;
|
|
152
|
+
try {
|
|
153
|
+
await hotmesh_1.Virtual.interrupt({
|
|
154
|
+
topic,
|
|
155
|
+
connection,
|
|
156
|
+
options: { id: cronId },
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
logger_1.loggerRegistry.warn(`[lt-cron] interrupt failed for ${workflowType}: ${err?.message}`);
|
|
161
|
+
}
|
|
162
|
+
this.activeCrons.delete(workflowType);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Restart a cron after a config change.
|
|
166
|
+
* Stops the old cron (if any) and starts a new one if cron_schedule is set.
|
|
167
|
+
*/
|
|
168
|
+
async restartCron(config) {
|
|
169
|
+
await this.stopCron(config.workflow_type);
|
|
170
|
+
if (config.cron_schedule && config.invocable && config.task_queue) {
|
|
171
|
+
await this.startCron(config);
|
|
172
|
+
logger_1.loggerRegistry.info(`[lt-cron] restarted ${config.workflow_type} (${config.cron_schedule})`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Stop all active crons. Call during graceful shutdown.
|
|
177
|
+
*/
|
|
178
|
+
async disconnect() {
|
|
179
|
+
for (const workflowType of [...this.activeCrons.keys()]) {
|
|
180
|
+
await this.stopCron(workflowType);
|
|
181
|
+
}
|
|
182
|
+
this.connected = false;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Reset state. Used in tests.
|
|
186
|
+
*/
|
|
187
|
+
clear() {
|
|
188
|
+
this.activeCrons.clear();
|
|
189
|
+
this.connected = false;
|
|
190
|
+
}
|
|
191
|
+
get hasActiveCrons() {
|
|
192
|
+
return this.activeCrons.size > 0;
|
|
193
|
+
}
|
|
194
|
+
get activeWorkflowTypes() {
|
|
195
|
+
return [...this.activeCrons.keys()];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/** Singleton cron registry */
|
|
199
|
+
exports.cronRegistry = new LTCronRegistry();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPool = getPool;
|
|
4
|
+
exports.closePool = closePool;
|
|
5
|
+
const pg_1 = require("pg");
|
|
6
|
+
const config_1 = require("../../modules/config");
|
|
7
|
+
let pool = null;
|
|
8
|
+
function getPool() {
|
|
9
|
+
if (!pool) {
|
|
10
|
+
pool = new pg_1.Pool(config_1.postgres_options);
|
|
11
|
+
}
|
|
12
|
+
return pool;
|
|
13
|
+
}
|
|
14
|
+
async function closePool() {
|
|
15
|
+
if (pool) {
|
|
16
|
+
await pool.end();
|
|
17
|
+
pool = null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function migrate(): Promise<void>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.migrate = migrate;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const index_1 = require("./index");
|
|
40
|
+
const logger_1 = require("../logger");
|
|
41
|
+
const SCHEMAS_DIR = path.join(__dirname, 'schemas');
|
|
42
|
+
async function migrate() {
|
|
43
|
+
const pool = (0, index_1.getPool)();
|
|
44
|
+
// ensure migration tracking table
|
|
45
|
+
await pool.query(`
|
|
46
|
+
CREATE TABLE IF NOT EXISTS lt_migrations (
|
|
47
|
+
id SERIAL PRIMARY KEY,
|
|
48
|
+
name TEXT NOT NULL UNIQUE,
|
|
49
|
+
applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
50
|
+
);
|
|
51
|
+
`);
|
|
52
|
+
// find and sort migration files
|
|
53
|
+
const files = fs.readdirSync(SCHEMAS_DIR)
|
|
54
|
+
.filter(f => f.endsWith('.sql'))
|
|
55
|
+
.sort();
|
|
56
|
+
for (const file of files) {
|
|
57
|
+
const { rows } = await pool.query('SELECT 1 FROM lt_migrations WHERE name = $1', [file]);
|
|
58
|
+
if (rows.length === 0) {
|
|
59
|
+
const sql = fs.readFileSync(path.join(SCHEMAS_DIR, file), 'utf-8');
|
|
60
|
+
await pool.query(sql);
|
|
61
|
+
await pool.query('INSERT INTO lt_migrations (name) VALUES ($1)', [file]);
|
|
62
|
+
logger_1.loggerRegistry.info(`[migrate] applied: ${file}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// run directly: npx ts-node services/db/migrate.ts
|
|
67
|
+
if (require.main === module) {
|
|
68
|
+
require('dotenv').config();
|
|
69
|
+
migrate()
|
|
70
|
+
.then(() => {
|
|
71
|
+
logger_1.loggerRegistry.info('[migrate] done');
|
|
72
|
+
return (0, index_1.closePool)();
|
|
73
|
+
})
|
|
74
|
+
.catch((err) => {
|
|
75
|
+
logger_1.loggerRegistry.error(`[migrate] failed: ${err}`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { PruneOptions, PruneResult } from '@hotmeshio/hotmesh/build/types/dba';
|
|
2
|
+
/**
|
|
3
|
+
* Deploy the server-side prune() Postgres function and run
|
|
4
|
+
* any schema migrations (e.g. adding the `pruned_at` column).
|
|
5
|
+
* Idempotent — safe to call on every startup.
|
|
6
|
+
*/
|
|
7
|
+
export declare function deploy(): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Prune expired jobs, streams, and/or execution artifacts.
|
|
10
|
+
*
|
|
11
|
+
* - `jobs` — hard-delete expired job rows older than `expire`
|
|
12
|
+
* - `streams` — hard-delete expired stream messages (engine + worker) older than `expire`
|
|
13
|
+
* - `attributes` — strip execution artifacts from completed jobs
|
|
14
|
+
* (preserves jdata, udata, jmark for execution export)
|
|
15
|
+
* - `entities` — allowlist: only prune these entity types
|
|
16
|
+
* - `pruneTransient` — also delete jobs where entity IS NULL
|
|
17
|
+
* - `keepHmark` — preserve hmark rows during stripping
|
|
18
|
+
*/
|
|
19
|
+
export declare function prune(options: {
|
|
20
|
+
expire?: string;
|
|
21
|
+
jobs?: boolean;
|
|
22
|
+
streams?: boolean;
|
|
23
|
+
attributes?: boolean;
|
|
24
|
+
entities?: string[];
|
|
25
|
+
pruneTransient?: boolean;
|
|
26
|
+
keepHmark?: boolean;
|
|
27
|
+
}): Promise<PruneResult>;
|
|
28
|
+
export type { PruneOptions, PruneResult };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deploy = deploy;
|
|
4
|
+
exports.prune = prune;
|
|
5
|
+
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
6
|
+
const pg_1 = require("pg");
|
|
7
|
+
const config_1 = require("../modules/config");
|
|
8
|
+
const APP_ID = 'durable';
|
|
9
|
+
/**
|
|
10
|
+
* Deploy the server-side prune() Postgres function and run
|
|
11
|
+
* any schema migrations (e.g. adding the `pruned_at` column).
|
|
12
|
+
* Idempotent — safe to call on every startup.
|
|
13
|
+
*/
|
|
14
|
+
async function deploy() {
|
|
15
|
+
const connection = { class: pg_1.Client, options: config_1.postgres_options };
|
|
16
|
+
await hotmesh_1.DBA.deploy(connection, APP_ID);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Prune expired jobs, streams, and/or execution artifacts.
|
|
20
|
+
*
|
|
21
|
+
* - `jobs` — hard-delete expired job rows older than `expire`
|
|
22
|
+
* - `streams` — hard-delete expired stream messages (engine + worker) older than `expire`
|
|
23
|
+
* - `attributes` — strip execution artifacts from completed jobs
|
|
24
|
+
* (preserves jdata, udata, jmark for execution export)
|
|
25
|
+
* - `entities` — allowlist: only prune these entity types
|
|
26
|
+
* - `pruneTransient` — also delete jobs where entity IS NULL
|
|
27
|
+
* - `keepHmark` — preserve hmark rows during stripping
|
|
28
|
+
*/
|
|
29
|
+
async function prune(options) {
|
|
30
|
+
const connection = { class: pg_1.Client, options: config_1.postgres_options };
|
|
31
|
+
return hotmesh_1.DBA.prune({ appId: APP_ID, connection, ...options });
|
|
32
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { LTEscalationRecord } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Bulk claim escalations for a user.
|
|
4
|
+
* Items already claimed by another active user are skipped.
|
|
5
|
+
*/
|
|
6
|
+
export declare function bulkClaimEscalations(ids: string[], userId: string, durationMinutes?: number): Promise<{
|
|
7
|
+
claimed: number;
|
|
8
|
+
skipped: number;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Bulk assign escalations to a specific user (admin action).
|
|
12
|
+
* Items already claimed by another active user are skipped.
|
|
13
|
+
*/
|
|
14
|
+
export declare function bulkAssignEscalations(ids: string[], targetUserId: string, durationMinutes?: number): Promise<{
|
|
15
|
+
assigned: number;
|
|
16
|
+
skipped: number;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Bulk reassign escalations to a different role.
|
|
20
|
+
* Clears assignment on all affected rows.
|
|
21
|
+
*/
|
|
22
|
+
export declare function bulkEscalateToRole(ids: string[], targetRole: string): Promise<number>;
|
|
23
|
+
/**
|
|
24
|
+
* Bulk resolve escalations for AI triage.
|
|
25
|
+
* Returns full records so the caller can start triage workflows.
|
|
26
|
+
*/
|
|
27
|
+
export declare function bulkResolveForTriage(ids: string[], hint?: string): Promise<LTEscalationRecord[]>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bulkClaimEscalations = bulkClaimEscalations;
|
|
4
|
+
exports.bulkAssignEscalations = bulkAssignEscalations;
|
|
5
|
+
exports.bulkEscalateToRole = bulkEscalateToRole;
|
|
6
|
+
exports.bulkResolveForTriage = bulkResolveForTriage;
|
|
7
|
+
const db_1 = require("../db");
|
|
8
|
+
const sql_1 = require("./sql");
|
|
9
|
+
/**
|
|
10
|
+
* Bulk claim escalations for a user.
|
|
11
|
+
* Items already claimed by another active user are skipped.
|
|
12
|
+
*/
|
|
13
|
+
async function bulkClaimEscalations(ids, userId, durationMinutes = 30) {
|
|
14
|
+
if (ids.length === 0)
|
|
15
|
+
return { claimed: 0, skipped: 0 };
|
|
16
|
+
const pool = (0, db_1.getPool)();
|
|
17
|
+
const { rowCount } = await pool.query(sql_1.BULK_CLAIM, [userId, durationMinutes, ids]);
|
|
18
|
+
const claimed = rowCount ?? 0;
|
|
19
|
+
return { claimed, skipped: ids.length - claimed };
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Bulk assign escalations to a specific user (admin action).
|
|
23
|
+
* Items already claimed by another active user are skipped.
|
|
24
|
+
*/
|
|
25
|
+
async function bulkAssignEscalations(ids, targetUserId, durationMinutes = 30) {
|
|
26
|
+
if (ids.length === 0)
|
|
27
|
+
return { assigned: 0, skipped: 0 };
|
|
28
|
+
const pool = (0, db_1.getPool)();
|
|
29
|
+
const { rowCount } = await pool.query(sql_1.BULK_ASSIGN, [targetUserId, durationMinutes, ids]);
|
|
30
|
+
const assigned = rowCount ?? 0;
|
|
31
|
+
return { assigned, skipped: ids.length - assigned };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Bulk reassign escalations to a different role.
|
|
35
|
+
* Clears assignment on all affected rows.
|
|
36
|
+
*/
|
|
37
|
+
async function bulkEscalateToRole(ids, targetRole) {
|
|
38
|
+
if (ids.length === 0)
|
|
39
|
+
return 0;
|
|
40
|
+
const pool = (0, db_1.getPool)();
|
|
41
|
+
const { rowCount } = await pool.query(sql_1.BULK_ESCALATE_TO_ROLE, [targetRole, ids]);
|
|
42
|
+
return rowCount ?? 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Bulk resolve escalations for AI triage.
|
|
46
|
+
* Returns full records so the caller can start triage workflows.
|
|
47
|
+
*/
|
|
48
|
+
async function bulkResolveForTriage(ids, hint) {
|
|
49
|
+
if (ids.length === 0)
|
|
50
|
+
return [];
|
|
51
|
+
const pool = (0, db_1.getPool)();
|
|
52
|
+
const resolverPayload = JSON.stringify({
|
|
53
|
+
_lt: { needsTriage: true, ...(hint ? { hint } : {}) },
|
|
54
|
+
});
|
|
55
|
+
const { rows } = await pool.query(sql_1.BULK_RESOLVE_FOR_TRIAGE, [resolverPayload, ids]);
|
|
56
|
+
return rows;
|
|
57
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { LTEscalationRecord } from '../../types';
|
|
2
|
+
import type { CreateEscalationInput, ClaimResult } from './types';
|
|
3
|
+
export declare function createEscalation(input: CreateEscalationInput): Promise<LTEscalationRecord>;
|
|
4
|
+
/**
|
|
5
|
+
* Atomic claim operation. Does NOT change status — "claimed" is implicit
|
|
6
|
+
* via assigned_to + assigned_until > NOW().
|
|
7
|
+
*
|
|
8
|
+
* Conditions:
|
|
9
|
+
* - status = 'pending' (not resolved/cancelled)
|
|
10
|
+
* - Either: unassigned, expired claim, or same user (extension)
|
|
11
|
+
*
|
|
12
|
+
* Uses a CTE to capture the previous state so callers can detect extensions.
|
|
13
|
+
*/
|
|
14
|
+
export declare function claimEscalation(id: string, userId: string, durationMinutes?: number): Promise<ClaimResult | null>;
|
|
15
|
+
export declare function resolveEscalation(id: string, resolverPayload: Record<string, any>): Promise<LTEscalationRecord | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Bulk update priority for a set of escalations.
|
|
18
|
+
* Only updates pending escalations.
|
|
19
|
+
*/
|
|
20
|
+
export declare function updateEscalationsPriority(ids: string[], priority: 1 | 2 | 3 | 4): Promise<number>;
|
|
21
|
+
/**
|
|
22
|
+
* Get the distinct roles for a set of escalation IDs.
|
|
23
|
+
* Used for permission validation before bulk operations.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getEscalationRoles(ids: string[]): Promise<string[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Release a single escalation claim back to the available pool.
|
|
28
|
+
* Only the assigned user (or superadmin via route) may release.
|
|
29
|
+
*/
|
|
30
|
+
export declare function releaseEscalation(id: string, userId: string): Promise<LTEscalationRecord | null>;
|
|
31
|
+
export declare function releaseExpiredClaims(): Promise<number>;
|
|
32
|
+
/**
|
|
33
|
+
* Reassign an escalation to a different role.
|
|
34
|
+
* Clears the current assignment so it becomes available to the new role.
|
|
35
|
+
*/
|
|
36
|
+
export declare function escalateToRole(id: string, targetRole: string): Promise<LTEscalationRecord | null>;
|
|
37
|
+
export declare function getEscalation(id: string): Promise<LTEscalationRecord | null>;
|
|
38
|
+
export declare function getEscalationsByTaskId(taskId: string): Promise<LTEscalationRecord[]>;
|
|
39
|
+
export declare function getEscalationsByWorkflowId(workflowId: string): Promise<LTEscalationRecord[]>;
|
|
40
|
+
export declare function updateEscalationMetadata(id: string, patch: Record<string, any>): Promise<LTEscalationRecord | null>;
|
|
41
|
+
export declare function enrichEscalationRouting(id: string, metadataPatch: Record<string, any>, workflowFields: {
|
|
42
|
+
workflowType?: string;
|
|
43
|
+
workflowId?: string;
|
|
44
|
+
taskQueue?: string;
|
|
45
|
+
taskId?: string;
|
|
46
|
+
}): Promise<LTEscalationRecord | null>;
|
|
47
|
+
export declare function getEscalationsByOriginId(originId: string): Promise<LTEscalationRecord[]>;
|