@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,13 @@
|
|
|
1
|
+
import type { LTOAuthProviderConfig, LTOAuthUserInfo } from '../../../types/oauth';
|
|
2
|
+
export interface OAuthTokens {
|
|
3
|
+
accessToken: string;
|
|
4
|
+
refreshToken: string | null;
|
|
5
|
+
accessTokenExpiresAt: Date | null;
|
|
6
|
+
}
|
|
7
|
+
export interface ProviderHandler {
|
|
8
|
+
config: LTOAuthProviderConfig;
|
|
9
|
+
createAuthorizationURL(state: string, codeVerifier: string): URL;
|
|
10
|
+
validateAuthorizationCode(code: string, codeVerifier: string): Promise<OAuthTokens>;
|
|
11
|
+
refreshAccessToken(refreshToken: string): Promise<OAuthTokens>;
|
|
12
|
+
fetchUserInfo(accessToken: string): Promise<LTOAuthUserInfo>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
interface OAuthState {
|
|
2
|
+
codeVerifier: string;
|
|
3
|
+
provider: string;
|
|
4
|
+
returnTo: string;
|
|
5
|
+
createdAt: number;
|
|
6
|
+
/** When true, this flow connects a credential provider for an existing user (not login). */
|
|
7
|
+
connectOnly?: boolean;
|
|
8
|
+
/** User ID for connect-only flows. */
|
|
9
|
+
userId?: string;
|
|
10
|
+
/** Credential label for connect-only flows (allows multiple per provider). */
|
|
11
|
+
label?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create an OAuth state parameter + PKCE code verifier.
|
|
15
|
+
* The state is stored in memory and expires after 5 minutes.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createOAuthState(provider: string, returnTo?: string, options?: {
|
|
18
|
+
connectOnly?: boolean;
|
|
19
|
+
userId?: string;
|
|
20
|
+
label?: string;
|
|
21
|
+
}): {
|
|
22
|
+
state: string;
|
|
23
|
+
codeVerifier: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Consume an OAuth state parameter (one-time use).
|
|
27
|
+
* Returns null if state is unknown, expired, or already consumed.
|
|
28
|
+
*/
|
|
29
|
+
export declare function consumeOAuthState(state: string): OAuthState | null;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
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.createOAuthState = createOAuthState;
|
|
37
|
+
exports.consumeOAuthState = consumeOAuthState;
|
|
38
|
+
const crypto = __importStar(require("crypto"));
|
|
39
|
+
const stateStore = new Map();
|
|
40
|
+
const STATE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
41
|
+
/**
|
|
42
|
+
* Create an OAuth state parameter + PKCE code verifier.
|
|
43
|
+
* The state is stored in memory and expires after 5 minutes.
|
|
44
|
+
*/
|
|
45
|
+
function createOAuthState(provider, returnTo = '/', options) {
|
|
46
|
+
const state = crypto.randomBytes(32).toString('hex');
|
|
47
|
+
const codeVerifier = crypto.randomBytes(32).toString('base64url');
|
|
48
|
+
stateStore.set(state, {
|
|
49
|
+
codeVerifier,
|
|
50
|
+
provider,
|
|
51
|
+
returnTo,
|
|
52
|
+
createdAt: Date.now(),
|
|
53
|
+
connectOnly: options?.connectOnly,
|
|
54
|
+
userId: options?.userId,
|
|
55
|
+
label: options?.label,
|
|
56
|
+
});
|
|
57
|
+
return { state, codeVerifier };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Consume an OAuth state parameter (one-time use).
|
|
61
|
+
* Returns null if state is unknown, expired, or already consumed.
|
|
62
|
+
*/
|
|
63
|
+
function consumeOAuthState(state) {
|
|
64
|
+
const entry = stateStore.get(state);
|
|
65
|
+
if (!entry)
|
|
66
|
+
return null;
|
|
67
|
+
stateStore.delete(state);
|
|
68
|
+
if (Date.now() - entry.createdAt > STATE_TTL_MS)
|
|
69
|
+
return null;
|
|
70
|
+
return entry;
|
|
71
|
+
}
|
|
72
|
+
// Periodic cleanup of expired entries (every 60s)
|
|
73
|
+
const cleanupInterval = setInterval(() => {
|
|
74
|
+
const now = Date.now();
|
|
75
|
+
for (const [key, entry] of stateStore) {
|
|
76
|
+
if (now - entry.createdAt > STATE_TTL_MS) {
|
|
77
|
+
stateStore.delete(key);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}, 60_000);
|
|
81
|
+
// Allow Node to exit without waiting for the interval
|
|
82
|
+
if (cleanupInterval.unref)
|
|
83
|
+
cleanupInterval.unref();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ExecuteLTOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Execute a Long Tail workflow with automatic task tracking.
|
|
4
|
+
*
|
|
5
|
+
* Uses `startChild` to spawn the child workflow (fire-and-forget),
|
|
6
|
+
* then `waitFor` to receive the result signal from the child's
|
|
7
|
+
* interceptor. The child can escalate, fail, and be re-run multiple
|
|
8
|
+
* times without affecting the parent — the orchestrator simply waits
|
|
9
|
+
* for the signal.
|
|
10
|
+
*
|
|
11
|
+
* Usage (from within an orchestrator workflow):
|
|
12
|
+
* ```typescript
|
|
13
|
+
* export async function myPipeline(envelope: LTEnvelope) {
|
|
14
|
+
* return await executeLT({
|
|
15
|
+
* workflowName: 'reviewContent',
|
|
16
|
+
* args: [envelope],
|
|
17
|
+
* taskQueue: 'long-tail-examples',
|
|
18
|
+
* originId: envelope.data.orderId,
|
|
19
|
+
* });
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function executeLT<T = any>(options: ExecuteLTOptions): Promise<T>;
|
|
@@ -0,0 +1,156 @@
|
|
|
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.executeLT = executeLT;
|
|
37
|
+
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
38
|
+
const interceptorActivities = __importStar(require("../interceptor/activities"));
|
|
39
|
+
const context_1 = require("../interceptor/context");
|
|
40
|
+
const defaults_1 = require("../../modules/defaults");
|
|
41
|
+
/**
|
|
42
|
+
* Default activity queue for LT interceptor operations.
|
|
43
|
+
* Must match the queue used when registering the activity worker.
|
|
44
|
+
*/
|
|
45
|
+
const LT_ACTIVITY_QUEUE = 'lt-interceptor';
|
|
46
|
+
/**
|
|
47
|
+
* Execute a Long Tail workflow with automatic task tracking.
|
|
48
|
+
*
|
|
49
|
+
* Uses `startChild` to spawn the child workflow (fire-and-forget),
|
|
50
|
+
* then `waitFor` to receive the result signal from the child's
|
|
51
|
+
* interceptor. The child can escalate, fail, and be re-run multiple
|
|
52
|
+
* times without affecting the parent — the orchestrator simply waits
|
|
53
|
+
* for the signal.
|
|
54
|
+
*
|
|
55
|
+
* Usage (from within an orchestrator workflow):
|
|
56
|
+
* ```typescript
|
|
57
|
+
* export async function myPipeline(envelope: LTEnvelope) {
|
|
58
|
+
* return await executeLT({
|
|
59
|
+
* workflowName: 'reviewContent',
|
|
60
|
+
* args: [envelope],
|
|
61
|
+
* taskQueue: 'long-tail-examples',
|
|
62
|
+
* originId: envelope.data.orderId,
|
|
63
|
+
* });
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
async function executeLT(options) {
|
|
68
|
+
const { workflowName, args, taskQueue, expire } = options;
|
|
69
|
+
const { ltCreateTask, ltStartTask, ltCompleteTask, ltGetWorkflowConfig, ltGetProviderData, } = hotmesh_1.Durable.workflow.proxyActivities({
|
|
70
|
+
activities: interceptorActivities,
|
|
71
|
+
taskQueue: LT_ACTIVITY_QUEUE,
|
|
72
|
+
retryPolicy: { maximumAttempts: 3 },
|
|
73
|
+
});
|
|
74
|
+
// Derive child workflow ID deterministically from the parent context.
|
|
75
|
+
// Combines parent workflowId (globally unique) with the execution
|
|
76
|
+
// counter (unique per step within this workflow) — zero-cost, fully
|
|
77
|
+
// replay-safe, and self-documents its lineage.
|
|
78
|
+
const ctx = hotmesh_1.Durable.workflow.getContext();
|
|
79
|
+
const childWorkflowId = options.workflowId || `${workflowName}-${ctx.workflowId}-${ctx.counter}`;
|
|
80
|
+
const signalId = `lt-result-${childWorkflowId}`;
|
|
81
|
+
// Read orchestrator context (set by interceptor wrapping the container)
|
|
82
|
+
const orchCtx = (0, context_1.getOrchestratorContext)();
|
|
83
|
+
// Derive lineage: originId traces back to the root workflow,
|
|
84
|
+
// parentId identifies the immediate parent orchestrator.
|
|
85
|
+
const envelope0 = args[0];
|
|
86
|
+
const originId = options.originId
|
|
87
|
+
|| envelope0?.lt?.originId
|
|
88
|
+
|| orchCtx?.workflowId
|
|
89
|
+
|| childWorkflowId;
|
|
90
|
+
const parentId = orchCtx?.workflowId || childWorkflowId;
|
|
91
|
+
// 1. Create task record with routing metadata for the interceptor
|
|
92
|
+
const taskId = await ltCreateTask({
|
|
93
|
+
workflowId: childWorkflowId,
|
|
94
|
+
workflowType: workflowName,
|
|
95
|
+
ltType: workflowName,
|
|
96
|
+
taskQueue,
|
|
97
|
+
signalId,
|
|
98
|
+
parentWorkflowId: orchCtx?.workflowId || childWorkflowId,
|
|
99
|
+
originId,
|
|
100
|
+
parentId,
|
|
101
|
+
envelope: JSON.stringify(args[0] || {}),
|
|
102
|
+
metadata: orchCtx
|
|
103
|
+
? {
|
|
104
|
+
signalId,
|
|
105
|
+
parentWorkflowId: orchCtx.workflowId,
|
|
106
|
+
parentTaskQueue: orchCtx.taskQueue,
|
|
107
|
+
parentWorkflowType: orchCtx.workflowType,
|
|
108
|
+
}
|
|
109
|
+
: { signalId },
|
|
110
|
+
traceId: ctx.workflowTrace || undefined,
|
|
111
|
+
spanId: ctx.workflowSpan || undefined,
|
|
112
|
+
initiatedBy: orchCtx?.userId || envelope0?.lt?.userId,
|
|
113
|
+
});
|
|
114
|
+
await ltStartTask(taskId);
|
|
115
|
+
// 2. Load workflow config for provider injection
|
|
116
|
+
const wfConfig = await ltGetWorkflowConfig(workflowName);
|
|
117
|
+
// 3. Inject provider data into envelope if consumes are configured
|
|
118
|
+
if (wfConfig?.consumes?.length && originId) {
|
|
119
|
+
const providerData = await ltGetProviderData({
|
|
120
|
+
workflowName,
|
|
121
|
+
originId,
|
|
122
|
+
});
|
|
123
|
+
const envelope = args[0];
|
|
124
|
+
if (envelope && Object.keys(providerData).length > 0) {
|
|
125
|
+
envelope.lt = { ...envelope.lt, providers: providerData };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// 4. Inject task ID, lineage, and user context into the envelope so the
|
|
129
|
+
// interceptor can find the task and propagate identity to child workflows
|
|
130
|
+
const envelope = args[0];
|
|
131
|
+
if (envelope) {
|
|
132
|
+
const userId = envelope.lt?.userId || orchCtx?.userId;
|
|
133
|
+
envelope.lt = { ...envelope.lt, taskId, originId, parentId, userId };
|
|
134
|
+
}
|
|
135
|
+
// 5. Start child workflow (fire-and-forget — only the start is awaited)
|
|
136
|
+
await hotmesh_1.Durable.workflow.startChild({
|
|
137
|
+
workflowName,
|
|
138
|
+
args,
|
|
139
|
+
taskQueue,
|
|
140
|
+
workflowId: childWorkflowId,
|
|
141
|
+
expire: expire || defaults_1.JOB_EXPIRE_SECS,
|
|
142
|
+
entity: workflowName,
|
|
143
|
+
});
|
|
144
|
+
// 6. Wait for the child's interceptor to signal back with the result
|
|
145
|
+
const result = await hotmesh_1.Durable.workflow.waitFor(signalId);
|
|
146
|
+
// 7. Complete the task — persist result data
|
|
147
|
+
await ltCompleteTask({
|
|
148
|
+
taskId,
|
|
149
|
+
data: JSON.stringify(result?.data),
|
|
150
|
+
milestones: result?.milestones || [],
|
|
151
|
+
workflowId: childWorkflowId,
|
|
152
|
+
workflowName,
|
|
153
|
+
taskQueue,
|
|
154
|
+
});
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Type definitions for the orchestrator service. */
|
|
2
|
+
export interface ExecuteLTOptions {
|
|
3
|
+
/** Name of the child workflow function to execute */
|
|
4
|
+
workflowName: string;
|
|
5
|
+
/** Arguments to pass to the child workflow */
|
|
6
|
+
args: any[];
|
|
7
|
+
/** Task queue the child workflow is registered on */
|
|
8
|
+
taskQueue: string;
|
|
9
|
+
/** Explicit child workflow ID (auto-generated if omitted) */
|
|
10
|
+
workflowId?: string;
|
|
11
|
+
/** TTL in seconds for the child workflow */
|
|
12
|
+
expire?: number;
|
|
13
|
+
/** Correlation ID for provider data lookups across sibling tasks */
|
|
14
|
+
originId?: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { EscalationChain, RoleDetail } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Get the roles a given source role can escalate to.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getEscalationTargets(sourceRole: string): Promise<string[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Get all escalation chain pairs.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getAllEscalationChains(): Promise<EscalationChain[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Add a single escalation chain entry.
|
|
12
|
+
*/
|
|
13
|
+
export declare function addEscalationChain(sourceRole: string, targetRole: string): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Remove a single escalation chain entry.
|
|
16
|
+
*/
|
|
17
|
+
export declare function removeEscalationChain(sourceRole: string, targetRole: string): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Replace all escalation targets for a source role.
|
|
20
|
+
*/
|
|
21
|
+
export declare function replaceEscalationTargets(sourceRole: string, targets: string[]): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Check whether a user can escalate from sourceRole to targetRole.
|
|
24
|
+
* Superadmins can escalate to any role.
|
|
25
|
+
* Others must hold the sourceRole AND the chain must exist.
|
|
26
|
+
*/
|
|
27
|
+
export declare function canEscalateTo(userId: string, sourceRole: string, targetRole: string): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* List all distinct role names known to the system.
|
|
30
|
+
* lt_roles is the canonical source — all other tables reference it via FK.
|
|
31
|
+
*/
|
|
32
|
+
export declare function listDistinctRoles(): Promise<string[]>;
|
|
33
|
+
/**
|
|
34
|
+
* List all roles with usage counts (users, escalation chains, workflows).
|
|
35
|
+
*/
|
|
36
|
+
export declare function listRolesWithDetails(): Promise<RoleDetail[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Create a standalone role entry.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createRole(role: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Delete a role. Returns an error message if the role is referenced.
|
|
43
|
+
*/
|
|
44
|
+
export declare function deleteRole(role: string): Promise<{
|
|
45
|
+
deleted: boolean;
|
|
46
|
+
error?: string;
|
|
47
|
+
}>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEscalationTargets = getEscalationTargets;
|
|
4
|
+
exports.getAllEscalationChains = getAllEscalationChains;
|
|
5
|
+
exports.addEscalationChain = addEscalationChain;
|
|
6
|
+
exports.removeEscalationChain = removeEscalationChain;
|
|
7
|
+
exports.replaceEscalationTargets = replaceEscalationTargets;
|
|
8
|
+
exports.canEscalateTo = canEscalateTo;
|
|
9
|
+
exports.listDistinctRoles = listDistinctRoles;
|
|
10
|
+
exports.listRolesWithDetails = listRolesWithDetails;
|
|
11
|
+
exports.createRole = createRole;
|
|
12
|
+
exports.deleteRole = deleteRole;
|
|
13
|
+
const db_1 = require("../db");
|
|
14
|
+
const user_1 = require("../user");
|
|
15
|
+
const sql_1 = require("./sql");
|
|
16
|
+
/**
|
|
17
|
+
* Get the roles a given source role can escalate to.
|
|
18
|
+
*/
|
|
19
|
+
async function getEscalationTargets(sourceRole) {
|
|
20
|
+
const pool = (0, db_1.getPool)();
|
|
21
|
+
const { rows } = await pool.query(sql_1.GET_ESCALATION_TARGETS, [sourceRole]);
|
|
22
|
+
return rows.map((r) => r.target_role);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get all escalation chain pairs.
|
|
26
|
+
*/
|
|
27
|
+
async function getAllEscalationChains() {
|
|
28
|
+
const pool = (0, db_1.getPool)();
|
|
29
|
+
const { rows } = await pool.query(sql_1.GET_ALL_ESCALATION_CHAINS);
|
|
30
|
+
return rows;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Add a single escalation chain entry.
|
|
34
|
+
*/
|
|
35
|
+
async function addEscalationChain(sourceRole, targetRole) {
|
|
36
|
+
const pool = (0, db_1.getPool)();
|
|
37
|
+
await pool.query(sql_1.ENSURE_ROLE_EXISTS, [sourceRole]);
|
|
38
|
+
await pool.query(sql_1.ENSURE_ROLE_EXISTS, [targetRole]);
|
|
39
|
+
await pool.query(sql_1.INSERT_ESCALATION_CHAIN, [sourceRole, targetRole]);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Remove a single escalation chain entry.
|
|
43
|
+
*/
|
|
44
|
+
async function removeEscalationChain(sourceRole, targetRole) {
|
|
45
|
+
const pool = (0, db_1.getPool)();
|
|
46
|
+
const { rowCount } = await pool.query(sql_1.DELETE_ESCALATION_CHAIN, [sourceRole, targetRole]);
|
|
47
|
+
return (rowCount ?? 0) > 0;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Replace all escalation targets for a source role.
|
|
51
|
+
*/
|
|
52
|
+
async function replaceEscalationTargets(sourceRole, targets) {
|
|
53
|
+
const pool = (0, db_1.getPool)();
|
|
54
|
+
const client = await pool.connect();
|
|
55
|
+
try {
|
|
56
|
+
await client.query('BEGIN');
|
|
57
|
+
await client.query(sql_1.ENSURE_ROLE_EXISTS, [sourceRole]);
|
|
58
|
+
for (const target of targets) {
|
|
59
|
+
await client.query(sql_1.ENSURE_ROLE_EXISTS, [target]);
|
|
60
|
+
}
|
|
61
|
+
await client.query(sql_1.DELETE_ESCALATION_CHAINS_BY_SOURCE, [sourceRole]);
|
|
62
|
+
for (const target of targets) {
|
|
63
|
+
await client.query(sql_1.INSERT_ESCALATION_CHAIN, [sourceRole, target]);
|
|
64
|
+
}
|
|
65
|
+
await client.query('COMMIT');
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
await client.query('ROLLBACK');
|
|
69
|
+
throw err;
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
client.release();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Check whether a user can escalate from sourceRole to targetRole.
|
|
77
|
+
* Superadmins can escalate to any role.
|
|
78
|
+
* Others must hold the sourceRole AND the chain must exist.
|
|
79
|
+
*/
|
|
80
|
+
async function canEscalateTo(userId, sourceRole, targetRole) {
|
|
81
|
+
if (await (0, user_1.isSuperAdmin)(userId))
|
|
82
|
+
return true;
|
|
83
|
+
if (!(await (0, user_1.hasRole)(userId, sourceRole)))
|
|
84
|
+
return false;
|
|
85
|
+
const pool = (0, db_1.getPool)();
|
|
86
|
+
const { rows } = await pool.query(sql_1.CHECK_ESCALATION_CHAIN_EXISTS, [sourceRole, targetRole]);
|
|
87
|
+
return rows.length > 0;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* List all distinct role names known to the system.
|
|
91
|
+
* lt_roles is the canonical source — all other tables reference it via FK.
|
|
92
|
+
*/
|
|
93
|
+
async function listDistinctRoles() {
|
|
94
|
+
const pool = (0, db_1.getPool)();
|
|
95
|
+
const { rows } = await pool.query(sql_1.LIST_ROLES);
|
|
96
|
+
return rows.map((r) => r.role);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* List all roles with usage counts (users, escalation chains, workflows).
|
|
100
|
+
*/
|
|
101
|
+
async function listRolesWithDetails() {
|
|
102
|
+
const pool = (0, db_1.getPool)();
|
|
103
|
+
const { rows } = await pool.query(sql_1.LIST_ROLES_WITH_DETAILS);
|
|
104
|
+
return rows;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create a standalone role entry.
|
|
108
|
+
*/
|
|
109
|
+
async function createRole(role) {
|
|
110
|
+
const pool = (0, db_1.getPool)();
|
|
111
|
+
await pool.query(sql_1.ENSURE_ROLE_EXISTS, [role]);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Delete a role. Returns an error message if the role is referenced.
|
|
115
|
+
*/
|
|
116
|
+
async function deleteRole(role) {
|
|
117
|
+
const pool = (0, db_1.getPool)();
|
|
118
|
+
const { rows: userRefs } = await pool.query(sql_1.COUNT_USER_ROLE_REFS, [role]);
|
|
119
|
+
if (userRefs[0].cnt > 0) {
|
|
120
|
+
return { deleted: false, error: `Role is assigned to ${userRefs[0].cnt} user(s). Remove those assignments first.` };
|
|
121
|
+
}
|
|
122
|
+
const { rows: chainRefs } = await pool.query(sql_1.COUNT_CHAIN_REFS, [role]);
|
|
123
|
+
if (chainRefs[0].cnt > 0) {
|
|
124
|
+
return { deleted: false, error: `Role is referenced in ${chainRefs[0].cnt} escalation chain(s). Remove those chains first.` };
|
|
125
|
+
}
|
|
126
|
+
const { rows: wfRefs } = await pool.query(sql_1.COUNT_WORKFLOW_REFS, [role]);
|
|
127
|
+
if (wfRefs[0].cnt > 0) {
|
|
128
|
+
return { deleted: false, error: `Role is used by ${wfRefs[0].cnt} workflow config(s). Remove those references first.` };
|
|
129
|
+
}
|
|
130
|
+
const { rows: escRefs } = await pool.query(sql_1.COUNT_ACTIVE_ESCALATION_REFS, [role]);
|
|
131
|
+
if (escRefs[0].cnt > 0) {
|
|
132
|
+
return { deleted: false, error: `Role has ${escRefs[0].cnt} active escalation(s). Resolve them first.` };
|
|
133
|
+
}
|
|
134
|
+
const { rowCount } = await pool.query(sql_1.DELETE_ROLE, [role]);
|
|
135
|
+
return { deleted: (rowCount ?? 0) > 0 };
|
|
136
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const GET_ESCALATION_TARGETS = "\n SELECT target_role\n FROM lt_config_role_escalations\n WHERE source_role = $1\n ORDER BY target_role";
|
|
2
|
+
export declare const GET_ALL_ESCALATION_CHAINS = "\n SELECT source_role, target_role\n FROM lt_config_role_escalations\n ORDER BY source_role, target_role";
|
|
3
|
+
export declare const INSERT_ESCALATION_CHAIN = "\n INSERT INTO lt_config_role_escalations (source_role, target_role)\n VALUES ($1, $2)\n ON CONFLICT DO NOTHING";
|
|
4
|
+
export declare const DELETE_ESCALATION_CHAIN = "\n DELETE FROM lt_config_role_escalations\n WHERE source_role = $1 AND target_role = $2";
|
|
5
|
+
export declare const DELETE_ESCALATION_CHAINS_BY_SOURCE = "\n DELETE FROM lt_config_role_escalations\n WHERE source_role = $1";
|
|
6
|
+
export declare const CHECK_ESCALATION_CHAIN_EXISTS = "\n SELECT 1\n FROM lt_config_role_escalations\n WHERE source_role = $1 AND target_role = $2";
|
|
7
|
+
export declare const ENSURE_ROLE_EXISTS = "\n INSERT INTO lt_roles (role) VALUES ($1)\n ON CONFLICT DO NOTHING";
|
|
8
|
+
export declare const LIST_ROLES = "\n SELECT role FROM lt_roles ORDER BY role";
|
|
9
|
+
export declare const DELETE_ROLE = "\n DELETE FROM lt_roles WHERE role = $1";
|
|
10
|
+
export declare const LIST_ROLES_WITH_DETAILS = "\n WITH\n user_counts AS (\n SELECT role, COUNT(DISTINCT user_id)::int AS cnt\n FROM lt_user_roles\n GROUP BY role\n ),\n chain_counts AS (\n SELECT role, COUNT(*)::int AS cnt\n FROM (\n SELECT source_role AS role FROM lt_config_role_escalations\n UNION ALL\n SELECT target_role AS role FROM lt_config_role_escalations\n ) c\n GROUP BY role\n ),\n workflow_counts AS (\n SELECT role, COUNT(*)::int AS cnt\n FROM lt_config_roles\n GROUP BY role\n )\n SELECT\n r.role,\n COALESCE(uc.cnt, 0) AS user_count,\n COALESCE(cc.cnt, 0) AS chain_count,\n COALESCE(wc.cnt, 0) AS workflow_count\n FROM lt_roles r\n LEFT JOIN user_counts uc ON uc.role = r.role\n LEFT JOIN chain_counts cc ON cc.role = r.role\n LEFT JOIN workflow_counts wc ON wc.role = r.role\n ORDER BY r.role";
|
|
11
|
+
export declare const COUNT_USER_ROLE_REFS = "\n SELECT COUNT(*)::int AS cnt FROM lt_user_roles WHERE role = $1";
|
|
12
|
+
export declare const COUNT_CHAIN_REFS = "\n SELECT COUNT(*)::int AS cnt\n FROM lt_config_role_escalations\n WHERE source_role = $1 OR target_role = $1";
|
|
13
|
+
export declare const COUNT_WORKFLOW_REFS = "\n SELECT COUNT(*)::int AS cnt FROM lt_config_roles WHERE role = $1";
|
|
14
|
+
export declare const COUNT_ACTIVE_ESCALATION_REFS = "\n SELECT COUNT(*)::int AS cnt\n FROM lt_escalations\n WHERE role = $1 AND status IN ('pending', 'claimed')";
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Escalation chain queries ───────────────────────────────────────────────
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.COUNT_ACTIVE_ESCALATION_REFS = exports.COUNT_WORKFLOW_REFS = exports.COUNT_CHAIN_REFS = exports.COUNT_USER_ROLE_REFS = exports.LIST_ROLES_WITH_DETAILS = exports.DELETE_ROLE = exports.LIST_ROLES = exports.ENSURE_ROLE_EXISTS = exports.CHECK_ESCALATION_CHAIN_EXISTS = exports.DELETE_ESCALATION_CHAINS_BY_SOURCE = exports.DELETE_ESCALATION_CHAIN = exports.INSERT_ESCALATION_CHAIN = exports.GET_ALL_ESCALATION_CHAINS = exports.GET_ESCALATION_TARGETS = void 0;
|
|
5
|
+
exports.GET_ESCALATION_TARGETS = `
|
|
6
|
+
SELECT target_role
|
|
7
|
+
FROM lt_config_role_escalations
|
|
8
|
+
WHERE source_role = $1
|
|
9
|
+
ORDER BY target_role`;
|
|
10
|
+
exports.GET_ALL_ESCALATION_CHAINS = `
|
|
11
|
+
SELECT source_role, target_role
|
|
12
|
+
FROM lt_config_role_escalations
|
|
13
|
+
ORDER BY source_role, target_role`;
|
|
14
|
+
exports.INSERT_ESCALATION_CHAIN = `
|
|
15
|
+
INSERT INTO lt_config_role_escalations (source_role, target_role)
|
|
16
|
+
VALUES ($1, $2)
|
|
17
|
+
ON CONFLICT DO NOTHING`;
|
|
18
|
+
exports.DELETE_ESCALATION_CHAIN = `
|
|
19
|
+
DELETE FROM lt_config_role_escalations
|
|
20
|
+
WHERE source_role = $1 AND target_role = $2`;
|
|
21
|
+
exports.DELETE_ESCALATION_CHAINS_BY_SOURCE = `
|
|
22
|
+
DELETE FROM lt_config_role_escalations
|
|
23
|
+
WHERE source_role = $1`;
|
|
24
|
+
exports.CHECK_ESCALATION_CHAIN_EXISTS = `
|
|
25
|
+
SELECT 1
|
|
26
|
+
FROM lt_config_role_escalations
|
|
27
|
+
WHERE source_role = $1 AND target_role = $2`;
|
|
28
|
+
// ─── Role CRUD ──────────────────────────────────────────────────────────────
|
|
29
|
+
exports.ENSURE_ROLE_EXISTS = `
|
|
30
|
+
INSERT INTO lt_roles (role) VALUES ($1)
|
|
31
|
+
ON CONFLICT DO NOTHING`;
|
|
32
|
+
exports.LIST_ROLES = `
|
|
33
|
+
SELECT role FROM lt_roles ORDER BY role`;
|
|
34
|
+
exports.DELETE_ROLE = `
|
|
35
|
+
DELETE FROM lt_roles WHERE role = $1`;
|
|
36
|
+
// ─── Role detail aggregation ────────────────────────────────────────────────
|
|
37
|
+
exports.LIST_ROLES_WITH_DETAILS = `
|
|
38
|
+
WITH
|
|
39
|
+
user_counts AS (
|
|
40
|
+
SELECT role, COUNT(DISTINCT user_id)::int AS cnt
|
|
41
|
+
FROM lt_user_roles
|
|
42
|
+
GROUP BY role
|
|
43
|
+
),
|
|
44
|
+
chain_counts AS (
|
|
45
|
+
SELECT role, COUNT(*)::int AS cnt
|
|
46
|
+
FROM (
|
|
47
|
+
SELECT source_role AS role FROM lt_config_role_escalations
|
|
48
|
+
UNION ALL
|
|
49
|
+
SELECT target_role AS role FROM lt_config_role_escalations
|
|
50
|
+
) c
|
|
51
|
+
GROUP BY role
|
|
52
|
+
),
|
|
53
|
+
workflow_counts AS (
|
|
54
|
+
SELECT role, COUNT(*)::int AS cnt
|
|
55
|
+
FROM lt_config_roles
|
|
56
|
+
GROUP BY role
|
|
57
|
+
)
|
|
58
|
+
SELECT
|
|
59
|
+
r.role,
|
|
60
|
+
COALESCE(uc.cnt, 0) AS user_count,
|
|
61
|
+
COALESCE(cc.cnt, 0) AS chain_count,
|
|
62
|
+
COALESCE(wc.cnt, 0) AS workflow_count
|
|
63
|
+
FROM lt_roles r
|
|
64
|
+
LEFT JOIN user_counts uc ON uc.role = r.role
|
|
65
|
+
LEFT JOIN chain_counts cc ON cc.role = r.role
|
|
66
|
+
LEFT JOIN workflow_counts wc ON wc.role = r.role
|
|
67
|
+
ORDER BY r.role`;
|
|
68
|
+
// ─── Reference checks (used before role deletion) ──────────────────────────
|
|
69
|
+
exports.COUNT_USER_ROLE_REFS = `
|
|
70
|
+
SELECT COUNT(*)::int AS cnt FROM lt_user_roles WHERE role = $1`;
|
|
71
|
+
exports.COUNT_CHAIN_REFS = `
|
|
72
|
+
SELECT COUNT(*)::int AS cnt
|
|
73
|
+
FROM lt_config_role_escalations
|
|
74
|
+
WHERE source_role = $1 OR target_role = $1`;
|
|
75
|
+
exports.COUNT_WORKFLOW_REFS = `
|
|
76
|
+
SELECT COUNT(*)::int AS cnt FROM lt_config_roles WHERE role = $1`;
|
|
77
|
+
exports.COUNT_ACTIVE_ESCALATION_REFS = `
|
|
78
|
+
SELECT COUNT(*)::int AS cnt
|
|
79
|
+
FROM lt_escalations
|
|
80
|
+
WHERE role = $1 AND status IN ('pending', 'claimed')`;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Type definitions for the role and escalation chain service. */
|
|
2
|
+
export interface EscalationChain {
|
|
3
|
+
source_role: string;
|
|
4
|
+
target_role: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RoleDetail {
|
|
7
|
+
role: string;
|
|
8
|
+
user_count: number;
|
|
9
|
+
chain_count: number;
|
|
10
|
+
workflow_count: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StorageBackend } from './types';
|
|
2
|
+
export type { StorageBackend } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the singleton storage backend.
|
|
5
|
+
*
|
|
6
|
+
* Backend selection (via LT_STORAGE_BACKEND env var):
|
|
7
|
+
* "local" (default) — filesystem storage under LT_FILE_STORAGE_DIR
|
|
8
|
+
* "s3" — S3-compatible (MinIO, AWS S3, GCP Cloud Storage)
|
|
9
|
+
*/
|
|
10
|
+
export declare function getStorageBackend(): StorageBackend;
|
|
11
|
+
/** Reset the singleton (for testing). */
|
|
12
|
+
export declare function resetStorageBackend(): void;
|