@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,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared helpers for the end-to-end process runner.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setBase = setBase;
|
|
7
|
+
exports.getBase = getBase;
|
|
8
|
+
exports.log = log;
|
|
9
|
+
exports.header = header;
|
|
10
|
+
exports.api = api;
|
|
11
|
+
exports.login = login;
|
|
12
|
+
exports.sleep = sleep;
|
|
13
|
+
exports.poll = poll;
|
|
14
|
+
let _base = 'http://localhost:3000';
|
|
15
|
+
function setBase(url) {
|
|
16
|
+
_base = url;
|
|
17
|
+
}
|
|
18
|
+
function getBase() {
|
|
19
|
+
return _base;
|
|
20
|
+
}
|
|
21
|
+
function log(role, msg) {
|
|
22
|
+
const label = role.padEnd(10);
|
|
23
|
+
console.log(` ${label} │ ${msg}`);
|
|
24
|
+
}
|
|
25
|
+
function header(text) {
|
|
26
|
+
console.log(`\n ─── ${text} ${'─'.repeat(Math.max(0, 58 - text.length))}\n`);
|
|
27
|
+
}
|
|
28
|
+
async function api(method, path, token, body) {
|
|
29
|
+
const res = await fetch(`${_base}/api${path}`, {
|
|
30
|
+
method,
|
|
31
|
+
headers: {
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
34
|
+
},
|
|
35
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
36
|
+
});
|
|
37
|
+
const json = await res.json();
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
throw new Error(`${method} ${path} → ${res.status}: ${JSON.stringify(json)}`);
|
|
40
|
+
}
|
|
41
|
+
return json;
|
|
42
|
+
}
|
|
43
|
+
async function login(username, password) {
|
|
44
|
+
const { token } = await api('POST', '/auth/login', '', { username, password });
|
|
45
|
+
return token;
|
|
46
|
+
}
|
|
47
|
+
async function sleep(ms) {
|
|
48
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
49
|
+
}
|
|
50
|
+
async function poll(label, fn, timeoutMs = 30_000, intervalMs = 1_000) {
|
|
51
|
+
const start = Date.now();
|
|
52
|
+
while (Date.now() - start < timeoutMs) {
|
|
53
|
+
const result = await fn();
|
|
54
|
+
if (result)
|
|
55
|
+
return result;
|
|
56
|
+
await sleep(intervalMs);
|
|
57
|
+
}
|
|
58
|
+
throw new Error(`Timed out waiting for: ${label}`);
|
|
59
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* End-to-end process runner for Long Tail examples.
|
|
3
|
+
*
|
|
4
|
+
* Walks Process 3 ("Wrong Language → Durable MCP") through the full
|
|
5
|
+
* escalation chain and MCP triage cycle:
|
|
6
|
+
*
|
|
7
|
+
* 1. Wait for server + seeded escalation
|
|
8
|
+
* 2. Reviewer claims → escalates to admin
|
|
9
|
+
* 3. Admin claims → escalates to engineer
|
|
10
|
+
* 4. Engineer claims → resolves with needsTriage, describes: "Content is in Spanish"
|
|
11
|
+
* 5. LLM-driven MCP triage diagnoses, translates, re-runs workflow, notifies engineering
|
|
12
|
+
* 6. Verify: original workflow completed, engineering escalation created
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* npx tsx scripts/process.ts
|
|
16
|
+
* npx tsx scripts/process.ts --base http://localhost:3000
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* End-to-end process runner for Long Tail examples.
|
|
4
|
+
*
|
|
5
|
+
* Walks Process 3 ("Wrong Language → Durable MCP") through the full
|
|
6
|
+
* escalation chain and MCP triage cycle:
|
|
7
|
+
*
|
|
8
|
+
* 1. Wait for server + seeded escalation
|
|
9
|
+
* 2. Reviewer claims → escalates to admin
|
|
10
|
+
* 3. Admin claims → escalates to engineer
|
|
11
|
+
* 4. Engineer claims → resolves with needsTriage, describes: "Content is in Spanish"
|
|
12
|
+
* 5. LLM-driven MCP triage diagnoses, translates, re-runs workflow, notifies engineering
|
|
13
|
+
* 6. Verify: original workflow completed, engineering escalation created
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* npx tsx scripts/process.ts
|
|
17
|
+
* npx tsx scripts/process.ts --base http://localhost:3000
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
const process_helpers_1 = require("./process-helpers");
|
|
21
|
+
if (process.argv.includes('--base')) {
|
|
22
|
+
(0, process_helpers_1.setBase)(process.argv[process.argv.indexOf('--base') + 1]);
|
|
23
|
+
}
|
|
24
|
+
// ── Main ────────────────────────────────────────────────────────────────────
|
|
25
|
+
async function run() {
|
|
26
|
+
const BASE = (0, process_helpers_1.getBase)();
|
|
27
|
+
console.log('\n Long Tail — Process Runner');
|
|
28
|
+
console.log(' ═════════════════════════════════════════════════════════════\n');
|
|
29
|
+
console.log(` Server: ${BASE}`);
|
|
30
|
+
// ── 0. Wait for server ──────────────────────────────────────────────────
|
|
31
|
+
(0, process_helpers_1.header)('Waiting for server');
|
|
32
|
+
await (0, process_helpers_1.poll)('server ready', async () => {
|
|
33
|
+
try {
|
|
34
|
+
const res = await fetch(`${BASE}/health`);
|
|
35
|
+
return res.ok ? true : null;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}, 60_000, 2_000);
|
|
41
|
+
(0, process_helpers_1.log)('system', 'Server is up');
|
|
42
|
+
// ── 1. Login as all users ───────────────────────────────────────────────
|
|
43
|
+
(0, process_helpers_1.header)('Authentication');
|
|
44
|
+
const reviewerToken = await (0, process_helpers_1.login)('reviewer', 'l0ngt@1l');
|
|
45
|
+
(0, process_helpers_1.log)('reviewer', 'Logged in');
|
|
46
|
+
const adminToken = await (0, process_helpers_1.login)('admin', 'l0ngt@1l');
|
|
47
|
+
(0, process_helpers_1.log)('admin', 'Logged in');
|
|
48
|
+
const engineerToken = await (0, process_helpers_1.login)('engineer', 'l0ngt@1l');
|
|
49
|
+
(0, process_helpers_1.log)('engineer', 'Logged in');
|
|
50
|
+
// ── 2. Wait for Process 3 escalation to appear ──────────────────────────
|
|
51
|
+
(0, process_helpers_1.header)('Process 3 — Wrong Language');
|
|
52
|
+
(0, process_helpers_1.log)('system', 'Waiting for escalation (wrong_language content) ...');
|
|
53
|
+
const escalation = await (0, process_helpers_1.poll)('process-3 escalation', async () => {
|
|
54
|
+
const { escalations } = await (0, process_helpers_1.api)('GET', '/escalations/available?role=reviewer&limit=50', reviewerToken);
|
|
55
|
+
// Find the one with wrong_language flag in the escalation payload
|
|
56
|
+
return escalations.find((e) => {
|
|
57
|
+
if (!e.escalation_payload)
|
|
58
|
+
return false;
|
|
59
|
+
try {
|
|
60
|
+
const payload = typeof e.escalation_payload === 'string'
|
|
61
|
+
? JSON.parse(e.escalation_payload)
|
|
62
|
+
: e.escalation_payload;
|
|
63
|
+
return payload?.analysis?.flags?.includes('wrong_language');
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}) ?? null;
|
|
69
|
+
}, 30_000);
|
|
70
|
+
const originId = escalation.origin_id;
|
|
71
|
+
(0, process_helpers_1.log)('system', `Found escalation ${escalation.id.slice(0, 8)}... (origin: ${originId?.slice(0, 30)}...)`);
|
|
72
|
+
// ── 3. Reviewer: claim → escalate to admin ──────────────────────────────
|
|
73
|
+
(0, process_helpers_1.header)('Step 1 — Reviewer');
|
|
74
|
+
await (0, process_helpers_1.api)('POST', `/escalations/${escalation.id}/claim`, reviewerToken);
|
|
75
|
+
(0, process_helpers_1.log)('reviewer', 'Claimed escalation');
|
|
76
|
+
// Read the escalation details
|
|
77
|
+
const detail = await (0, process_helpers_1.api)('GET', `/escalations/${escalation.id}`, reviewerToken);
|
|
78
|
+
const payloadData = detail.escalation_payload
|
|
79
|
+
? (typeof detail.escalation_payload === 'string' ? JSON.parse(detail.escalation_payload) : detail.escalation_payload)
|
|
80
|
+
: {};
|
|
81
|
+
(0, process_helpers_1.log)('reviewer', `Content: "${(payloadData.content || '').slice(0, 50)}..."`);
|
|
82
|
+
(0, process_helpers_1.log)('reviewer', `Flags: ${payloadData.analysis?.flags?.join(', ') || 'none'}`);
|
|
83
|
+
(0, process_helpers_1.log)('reviewer', 'This is a language issue — outside my role. Escalating to admin.');
|
|
84
|
+
await (0, process_helpers_1.api)('PATCH', `/escalations/${escalation.id}/escalate`, reviewerToken, {
|
|
85
|
+
targetRole: 'admin',
|
|
86
|
+
});
|
|
87
|
+
(0, process_helpers_1.log)('reviewer', 'Escalated → admin');
|
|
88
|
+
// ── 4. Admin: claim → escalate to engineer ──────────────────────────────
|
|
89
|
+
(0, process_helpers_1.header)('Step 2 — Admin');
|
|
90
|
+
// Poll for the escalation to appear in admin's queue
|
|
91
|
+
const adminEsc = await (0, process_helpers_1.poll)('admin escalation', async () => {
|
|
92
|
+
const { escalations } = await (0, process_helpers_1.api)('GET', '/escalations/available?role=admin&limit=50', adminToken);
|
|
93
|
+
return escalations.find((e) => e.id === escalation.id) ?? null;
|
|
94
|
+
});
|
|
95
|
+
await (0, process_helpers_1.api)('POST', `/escalations/${adminEsc.id}/claim`, adminToken);
|
|
96
|
+
(0, process_helpers_1.log)('admin', 'Claimed escalation');
|
|
97
|
+
(0, process_helpers_1.log)('admin', 'Content is in Spanish — needs technical fix. Escalating to engineer.');
|
|
98
|
+
await (0, process_helpers_1.api)('PATCH', `/escalations/${adminEsc.id}/escalate`, adminToken, {
|
|
99
|
+
targetRole: 'engineer',
|
|
100
|
+
});
|
|
101
|
+
(0, process_helpers_1.log)('admin', 'Escalated → engineer');
|
|
102
|
+
// ── 5. Engineer: claim → resolve with needsTriage ───────────────────────
|
|
103
|
+
(0, process_helpers_1.header)('Step 3 — Engineer (MCP Triage)');
|
|
104
|
+
const engEsc = await (0, process_helpers_1.poll)('engineer escalation', async () => {
|
|
105
|
+
const { escalations } = await (0, process_helpers_1.api)('GET', '/escalations/available?role=engineer&limit=50', engineerToken);
|
|
106
|
+
return escalations.find((e) => e.id === escalation.id) ?? null;
|
|
107
|
+
});
|
|
108
|
+
await (0, process_helpers_1.api)('POST', `/escalations/${engEsc.id}/claim`, engineerToken);
|
|
109
|
+
(0, process_helpers_1.log)('engineer', 'Claimed escalation');
|
|
110
|
+
(0, process_helpers_1.log)('engineer', 'Content is in the wrong language. Requesting AI triage.');
|
|
111
|
+
const resolveResult = await (0, process_helpers_1.api)('POST', `/escalations/${engEsc.id}/resolve`, engineerToken, {
|
|
112
|
+
resolverPayload: {
|
|
113
|
+
approved: false,
|
|
114
|
+
reason: 'Content is in Spanish — needs translation before review',
|
|
115
|
+
_lt: {
|
|
116
|
+
needsTriage: true,
|
|
117
|
+
},
|
|
118
|
+
notes: 'Content arrived in Spanish. Needs translation to English before it can be reviewed.',
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
(0, process_helpers_1.log)('engineer', `Triage started: ${resolveResult.triage ? 'yes' : 'no'} (workflow: ${resolveResult.workflowId?.slice(0, 20)}...)`);
|
|
122
|
+
// ── 6. Wait for triage to complete ──────────────────────────────────────
|
|
123
|
+
(0, process_helpers_1.header)('MCP Triage — Remediation');
|
|
124
|
+
(0, process_helpers_1.log)('system', 'Waiting for triage workflow to translate and re-run ...');
|
|
125
|
+
// Poll the process to see new tasks appear (triage + re-run)
|
|
126
|
+
const processResult = await (0, process_helpers_1.poll)('triage completion', async () => {
|
|
127
|
+
const detail = await (0, process_helpers_1.api)('GET', `/tasks/processes/${encodeURIComponent(originId)}`, engineerToken);
|
|
128
|
+
const tasks = detail.tasks || [];
|
|
129
|
+
// Look for a completed reviewContent re-run (from triage)
|
|
130
|
+
const triageTask = tasks.find((t) => t.workflow_type === 'mcpTriage' && t.status === 'completed');
|
|
131
|
+
const rerunTask = tasks.find((t) => t.workflow_type === 'reviewContent' &&
|
|
132
|
+
t.status === 'completed' &&
|
|
133
|
+
t.created_at > escalation.created_at);
|
|
134
|
+
if (triageTask || rerunTask)
|
|
135
|
+
return detail;
|
|
136
|
+
return null;
|
|
137
|
+
}, 45_000, 2_000);
|
|
138
|
+
const tasks = processResult.tasks || [];
|
|
139
|
+
const triageTask = tasks.find((t) => t.workflow_type?.includes('mcpTriage'));
|
|
140
|
+
const rerunTask = tasks.find((t) => t.workflow_type === 'reviewContent' &&
|
|
141
|
+
t.status === 'completed' &&
|
|
142
|
+
t.created_at > escalation.created_at);
|
|
143
|
+
if (triageTask) {
|
|
144
|
+
(0, process_helpers_1.log)('mcp', `Triage workflow: ${triageTask.status}`);
|
|
145
|
+
}
|
|
146
|
+
if (rerunTask) {
|
|
147
|
+
(0, process_helpers_1.log)('mcp', `Re-run workflow: ${rerunTask.status} (translated content auto-approved)`);
|
|
148
|
+
}
|
|
149
|
+
// ── 7. Check for engineering escalation ─────────────────────────────────
|
|
150
|
+
(0, process_helpers_1.header)('Verification');
|
|
151
|
+
// Check engineering escalation created by triage
|
|
152
|
+
const engEscalation = await (0, process_helpers_1.poll)('engineering recommendation', async () => {
|
|
153
|
+
const { escalations } = await (0, process_helpers_1.api)('GET', '/escalations/available?role=engineer&limit=50', engineerToken);
|
|
154
|
+
return escalations.find((e) => e.type === 'triage_recommendation' &&
|
|
155
|
+
e.origin_id === originId) ?? null;
|
|
156
|
+
}, 30_000, 2_000);
|
|
157
|
+
if (engEscalation) {
|
|
158
|
+
(0, process_helpers_1.log)('verify', 'Engineering escalation created by triage');
|
|
159
|
+
(0, process_helpers_1.log)('verify', `Description: ${engEscalation.description?.slice(0, 80)}...`);
|
|
160
|
+
// Claim and acknowledge the notification escalation
|
|
161
|
+
await (0, process_helpers_1.api)('POST', `/escalations/${engEscalation.id}/claim`, engineerToken);
|
|
162
|
+
await (0, process_helpers_1.api)('POST', `/escalations/${engEscalation.id}/resolve`, engineerToken, {
|
|
163
|
+
resolverPayload: { acknowledged: true, note: 'Will add language detection to pipeline' },
|
|
164
|
+
});
|
|
165
|
+
(0, process_helpers_1.log)('engineer', 'Acknowledged recommendation — will add language detection to pipeline');
|
|
166
|
+
}
|
|
167
|
+
// Summary
|
|
168
|
+
const allTasks = tasks;
|
|
169
|
+
const escalations = processResult.escalations || [];
|
|
170
|
+
(0, process_helpers_1.log)('verify', `Process tasks: ${allTasks.length}`);
|
|
171
|
+
(0, process_helpers_1.log)('verify', `Process escalations: ${escalations.length}`);
|
|
172
|
+
(0, process_helpers_1.header)('Process Complete');
|
|
173
|
+
console.log(' The full Durable MCP cycle:');
|
|
174
|
+
console.log('');
|
|
175
|
+
console.log(' Content arrived in Spanish');
|
|
176
|
+
console.log(' → AI flagged (confidence: 0.15, wrong_language)');
|
|
177
|
+
console.log(' → Escalated to reviewer');
|
|
178
|
+
console.log(' → Reviewer escalated to admin (language issue)');
|
|
179
|
+
console.log(' → Admin escalated to engineer (needs technical fix)');
|
|
180
|
+
console.log(' → Engineer requested AI triage (LLM will diagnose and fix)');
|
|
181
|
+
console.log(' → MCP orchestrator: translate_content() → re-invoke workflow');
|
|
182
|
+
console.log(' → Translated content auto-approved');
|
|
183
|
+
console.log(' → Engineering notified: add language detection to pipeline');
|
|
184
|
+
console.log(' → Engineer acknowledged recommendation');
|
|
185
|
+
console.log('');
|
|
186
|
+
console.log(' ═════════════════════════════════════════════════════════════\n');
|
|
187
|
+
}
|
|
188
|
+
run().catch((err) => {
|
|
189
|
+
console.error(`\n ✗ ${err.message}\n`);
|
|
190
|
+
process.exit(1);
|
|
191
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a JWT token for the Long Tail dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* npx ts-node scripts/token.ts
|
|
6
|
+
* npx ts-node scripts/token.ts --userId admin --role superadmin
|
|
7
|
+
* npx ts-node scripts/token.ts --userId reviewer1 --roles reviewer,compliance
|
|
8
|
+
*
|
|
9
|
+
* Or via npm script:
|
|
10
|
+
* npm run token
|
|
11
|
+
* npm run token -- --userId admin --role superadmin
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generate a JWT token for the Long Tail dashboard.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npx ts-node scripts/token.ts
|
|
7
|
+
* npx ts-node scripts/token.ts --userId admin --role superadmin
|
|
8
|
+
* npx ts-node scripts/token.ts --userId reviewer1 --roles reviewer,compliance
|
|
9
|
+
*
|
|
10
|
+
* Or via npm script:
|
|
11
|
+
* npm run token
|
|
12
|
+
* npm run token -- --userId admin --role superadmin
|
|
13
|
+
*/
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
19
|
+
const args = process.argv.slice(2);
|
|
20
|
+
function getArg(name, fallback) {
|
|
21
|
+
const idx = args.indexOf(`--${name}`);
|
|
22
|
+
return idx !== -1 && args[idx + 1] ? args[idx + 1] : fallback;
|
|
23
|
+
}
|
|
24
|
+
const userId = getArg('userId', 'admin');
|
|
25
|
+
const role = getArg('role', 'superadmin');
|
|
26
|
+
const rolesArg = getArg('roles', '');
|
|
27
|
+
const secret = process.env.JWT_SECRET || 'lt-dev-secret';
|
|
28
|
+
const expiresIn = getArg('expires', '7d');
|
|
29
|
+
// Build roles array for the dashboard auth context
|
|
30
|
+
const roleNames = rolesArg ? rolesArg.split(',') : [role];
|
|
31
|
+
const roles = roleNames.map((r) => ({
|
|
32
|
+
role: r.trim(),
|
|
33
|
+
type: r.trim() === 'superadmin' ? 'superadmin' : 'member',
|
|
34
|
+
}));
|
|
35
|
+
const payload = { userId, role, roles };
|
|
36
|
+
const token = jsonwebtoken_1.default.sign(payload, secret, { expiresIn });
|
|
37
|
+
console.log('\n HotMesh Long Tail — Token Generator\n');
|
|
38
|
+
console.log(' Payload:', JSON.stringify(payload, null, 2));
|
|
39
|
+
console.log(' Expires:', expiresIn);
|
|
40
|
+
console.log(' Secret:', secret === 'lt-dev-secret' ? 'lt-dev-secret (default)' : '***');
|
|
41
|
+
console.log('\n Token:\n');
|
|
42
|
+
console.log(` ${token}\n`);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Record returned from bot API key queries (never includes key_hash). */
|
|
2
|
+
export interface BotApiKeyRecord {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
user_id: string;
|
|
6
|
+
scopes: string[];
|
|
7
|
+
expires_at: Date | null;
|
|
8
|
+
last_used_at: Date | null;
|
|
9
|
+
created_at: Date;
|
|
10
|
+
updated_at: Date;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate a new API key for a bot account.
|
|
14
|
+
* Returns the raw key once — it is never stored in plaintext.
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateBotApiKey(name: string, userId: string, scopes?: string[], expiresAt?: Date): Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
rawKey: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Validate a raw bot API key.
|
|
22
|
+
* Returns the key record (with user_id) if valid, null otherwise.
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateBotApiKey(rawKey: string): Promise<BotApiKeyRecord | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Revoke (delete) a bot API key by ID.
|
|
27
|
+
*/
|
|
28
|
+
export declare function revokeBotApiKey(id: string): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* List API keys for a bot account (without hashes).
|
|
31
|
+
*/
|
|
32
|
+
export declare function listBotApiKeys(userId: string): Promise<BotApiKeyRecord[]>;
|
|
@@ -0,0 +1,112 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.generateBotApiKey = generateBotApiKey;
|
|
40
|
+
exports.validateBotApiKey = validateBotApiKey;
|
|
41
|
+
exports.revokeBotApiKey = revokeBotApiKey;
|
|
42
|
+
exports.listBotApiKeys = listBotApiKeys;
|
|
43
|
+
const crypto = __importStar(require("crypto"));
|
|
44
|
+
const bcryptjs_1 = __importDefault(require("bcryptjs"));
|
|
45
|
+
const db_1 = require("../db");
|
|
46
|
+
const TOKEN_PREFIX = 'lt_bot_';
|
|
47
|
+
const INSERT_KEY = `
|
|
48
|
+
INSERT INTO lt_bot_api_keys (name, user_id, key_hash, scopes, expires_at)
|
|
49
|
+
VALUES ($1, $2, $3, $4, $5) RETURNING id`;
|
|
50
|
+
const GET_KEYS_BY_USER = `
|
|
51
|
+
SELECT id, name, user_id, key_hash, scopes
|
|
52
|
+
FROM lt_bot_api_keys
|
|
53
|
+
WHERE user_id = $1
|
|
54
|
+
AND (expires_at IS NULL OR expires_at > NOW())`;
|
|
55
|
+
const GET_ALL_ACTIVE_KEYS = `
|
|
56
|
+
SELECT id, name, user_id, key_hash, scopes
|
|
57
|
+
FROM lt_bot_api_keys
|
|
58
|
+
WHERE (expires_at IS NULL OR expires_at > NOW())`;
|
|
59
|
+
const UPDATE_LAST_USED = `
|
|
60
|
+
UPDATE lt_bot_api_keys SET last_used_at = NOW() WHERE id = $1`;
|
|
61
|
+
const DELETE_KEY = `
|
|
62
|
+
DELETE FROM lt_bot_api_keys WHERE id = $1`;
|
|
63
|
+
const LIST_BY_USER = `
|
|
64
|
+
SELECT id, name, user_id, scopes, expires_at, last_used_at, created_at, updated_at
|
|
65
|
+
FROM lt_bot_api_keys WHERE user_id = $1 ORDER BY created_at`;
|
|
66
|
+
/**
|
|
67
|
+
* Generate a new API key for a bot account.
|
|
68
|
+
* Returns the raw key once — it is never stored in plaintext.
|
|
69
|
+
*/
|
|
70
|
+
async function generateBotApiKey(name, userId, scopes = [], expiresAt) {
|
|
71
|
+
const rawKey = `${TOKEN_PREFIX}${crypto.randomBytes(32).toString('hex')}`;
|
|
72
|
+
const keyHash = await bcryptjs_1.default.hash(rawKey, 10);
|
|
73
|
+
const pool = await (0, db_1.getPool)();
|
|
74
|
+
const { rows } = await pool.query(INSERT_KEY, [
|
|
75
|
+
name, userId, keyHash, scopes, expiresAt || null,
|
|
76
|
+
]);
|
|
77
|
+
return { id: rows[0].id, rawKey };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Validate a raw bot API key.
|
|
81
|
+
* Returns the key record (with user_id) if valid, null otherwise.
|
|
82
|
+
*/
|
|
83
|
+
async function validateBotApiKey(rawKey) {
|
|
84
|
+
if (!rawKey.startsWith(TOKEN_PREFIX))
|
|
85
|
+
return null;
|
|
86
|
+
const pool = await (0, db_1.getPool)();
|
|
87
|
+
const { rows } = await pool.query(GET_ALL_ACTIVE_KEYS);
|
|
88
|
+
for (const row of rows) {
|
|
89
|
+
if (await bcryptjs_1.default.compare(rawKey, row.key_hash)) {
|
|
90
|
+
await pool.query(UPDATE_LAST_USED, [row.id]);
|
|
91
|
+
const { key_hash, ...record } = row;
|
|
92
|
+
return record;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Revoke (delete) a bot API key by ID.
|
|
99
|
+
*/
|
|
100
|
+
async function revokeBotApiKey(id) {
|
|
101
|
+
const pool = await (0, db_1.getPool)();
|
|
102
|
+
const result = await pool.query(DELETE_KEY, [id]);
|
|
103
|
+
return (result.rowCount ?? 0) > 0;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* List API keys for a bot account (without hashes).
|
|
107
|
+
*/
|
|
108
|
+
async function listBotApiKeys(userId) {
|
|
109
|
+
const pool = await (0, db_1.getPool)();
|
|
110
|
+
const { rows } = await pool.query(LIST_BY_USER, [userId]);
|
|
111
|
+
return rows;
|
|
112
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DelegationTokenPayload } from '../../types/delegation';
|
|
2
|
+
/**
|
|
3
|
+
* Create a scoped, short-lived delegation token.
|
|
4
|
+
*
|
|
5
|
+
* Delegation tokens authorize MCP tools to act on behalf of a user
|
|
6
|
+
* with only the specified scopes.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createDelegationToken(userId: string, scopes: string[], ttlSeconds?: number, options?: {
|
|
9
|
+
workflowId?: string;
|
|
10
|
+
serverId?: string;
|
|
11
|
+
}): string;
|
|
12
|
+
/**
|
|
13
|
+
* Validate a delegation token. Returns the decoded payload or throws.
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateDelegationToken(token: string): DelegationTokenPayload;
|
|
16
|
+
/**
|
|
17
|
+
* Check that a delegation token has the required scope.
|
|
18
|
+
* Throws if the scope is missing.
|
|
19
|
+
*/
|
|
20
|
+
export declare function requireScope(payload: DelegationTokenPayload, requiredScope: string): void;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDelegationToken = createDelegationToken;
|
|
7
|
+
exports.validateDelegationToken = validateDelegationToken;
|
|
8
|
+
exports.requireScope = requireScope;
|
|
9
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
10
|
+
const config_1 = require("../../modules/config");
|
|
11
|
+
const MAX_TTL_SECONDS = 3600; // 1 hour
|
|
12
|
+
const DEFAULT_TTL_SECONDS = 300; // 5 minutes
|
|
13
|
+
/**
|
|
14
|
+
* Create a scoped, short-lived delegation token.
|
|
15
|
+
*
|
|
16
|
+
* Delegation tokens authorize MCP tools to act on behalf of a user
|
|
17
|
+
* with only the specified scopes.
|
|
18
|
+
*/
|
|
19
|
+
function createDelegationToken(userId, scopes, ttlSeconds = DEFAULT_TTL_SECONDS, options) {
|
|
20
|
+
const ttl = Math.min(Math.max(ttlSeconds, 1), MAX_TTL_SECONDS);
|
|
21
|
+
const payload = {
|
|
22
|
+
type: 'delegation',
|
|
23
|
+
sub: userId,
|
|
24
|
+
scopes,
|
|
25
|
+
workflowId: options?.workflowId,
|
|
26
|
+
serverId: options?.serverId,
|
|
27
|
+
};
|
|
28
|
+
return jsonwebtoken_1.default.sign(payload, config_1.config.JWT_SECRET, {
|
|
29
|
+
expiresIn: ttl,
|
|
30
|
+
issuer: 'long-tail',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validate a delegation token. Returns the decoded payload or throws.
|
|
35
|
+
*/
|
|
36
|
+
function validateDelegationToken(token) {
|
|
37
|
+
const decoded = jsonwebtoken_1.default.verify(token, config_1.config.JWT_SECRET, {
|
|
38
|
+
issuer: 'long-tail',
|
|
39
|
+
});
|
|
40
|
+
if (decoded.type !== 'delegation') {
|
|
41
|
+
throw new Error('Token is not a delegation token');
|
|
42
|
+
}
|
|
43
|
+
return decoded;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check that a delegation token has the required scope.
|
|
47
|
+
* Throws if the scope is missing.
|
|
48
|
+
*/
|
|
49
|
+
function requireScope(payload, requiredScope) {
|
|
50
|
+
if (!payload.scopes.includes(requiredScope)) {
|
|
51
|
+
throw new Error(`Delegation token missing required scope: ${requiredScope}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ServiceTokenRecord } from '../../types/delegation';
|
|
2
|
+
/**
|
|
3
|
+
* Generate a new service token for an external MCP server.
|
|
4
|
+
* Returns the raw token once — it is never stored in plaintext.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateServiceToken(name: string, serverId: string | null, scopes: string[], expiresAt?: Date): Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
rawToken: string;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Validate a raw service token. Returns the record if valid, null otherwise.
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateServiceToken(rawToken: string): Promise<(ServiceTokenRecord & {
|
|
14
|
+
token_hash?: undefined;
|
|
15
|
+
}) | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Revoke (delete) a service token by ID.
|
|
18
|
+
*/
|
|
19
|
+
export declare function revokeServiceToken(id: string): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* List service tokens for an MCP server (without hashes).
|
|
22
|
+
*/
|
|
23
|
+
export declare function listServiceTokens(serverId: string): Promise<ServiceTokenRecord[]>;
|