@hotmeshio/long-tail 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/examples/seed.js +1 -1
- package/build/examples/workflows/basic-echo/activities.d.ts +2 -2
- package/build/examples/workflows/basic-echo/activities.js +7 -7
- package/build/examples/workflows/basic-echo/index.js +1 -1
- package/build/examples/workflows/kitchen-sink/index.js +2 -2
- package/build/index.d.ts +11 -10
- package/build/index.js +13 -12
- package/build/lib/db/index.d.ts +18 -0
- package/build/{services → lib}/db/index.js +9 -0
- package/build/{services → lib}/db/migrate.js +3 -3
- package/build/{services → lib}/telemetry/honeycomb.d.ts +2 -2
- package/build/{services → lib}/telemetry/honeycomb.js +2 -2
- package/build/modules/defaults.d.ts +2 -0
- package/build/modules/defaults.js +3 -1
- package/build/routes/controlplane.js +1 -1
- package/build/routes/dba.js +4 -0
- package/build/routes/docs.d.ts +2 -0
- package/build/routes/docs.js +87 -0
- package/build/routes/escalations/bulk.js +120 -202
- package/build/routes/escalations/resolve.js +1 -1
- package/build/routes/escalations/single.js +1 -1
- package/build/routes/files.js +1 -1
- package/build/routes/index.js +2 -0
- package/build/routes/insight.js +2 -1
- package/build/routes/mcp.js +3 -2
- package/build/routes/oauth.js +1 -1
- package/build/routes/settings.js +4 -4
- package/build/routes/workflows/discovery.js +3 -3
- package/build/routes/workflows/invocation.js +1 -1
- package/build/routes/yaml-workflows/crud.js +1 -1
- package/build/routes/yaml-workflows/deployment.js +25 -0
- package/build/services/auth/bot-api-key.js +1 -1
- package/build/services/auth/index.d.ts +4 -0
- package/build/services/auth/index.js +17 -0
- package/build/services/auth/service-token.js +1 -1
- package/build/services/config/provider.js +1 -1
- package/build/services/config/read.js +1 -1
- package/build/services/config/write.js +1 -1
- package/build/services/controlplane/index.js +3 -4
- package/build/services/controlplane/quorum-bridge.js +2 -2
- package/build/services/cron/index.js +4 -5
- package/build/services/dba.d.ts +4 -0
- package/build/services/dba.js +3 -6
- package/build/services/escalation/bulk.js +1 -1
- package/build/services/escalation/crud.js +1 -1
- package/build/services/escalation/queries.js +1 -1
- package/build/services/export/client.js +2 -5
- package/build/services/export/index.js +14 -2
- package/build/services/hotmesh-utils.js +1 -1
- package/build/services/iam/bots.js +6 -12
- package/build/services/iam/context.d.ts +1 -1
- package/build/services/iam/context.js +5 -5
- package/build/services/iam/credentials.js +1 -1
- package/build/services/iam/ephemeral.js +8 -15
- package/build/services/iam/principal.js +3 -10
- package/build/services/iam/resolve.js +1 -1
- package/build/services/iam/sql.d.ts +10 -0
- package/build/services/iam/sql.js +42 -0
- package/build/services/insight/index.d.ts +1 -0
- package/build/services/insight/index.js +4 -6
- package/build/services/interceptor/activities/escalation.js +1 -1
- package/build/services/interceptor/activities/task.js +9 -6
- package/build/services/interceptor/activities/workflow.js +4 -5
- package/build/services/interceptor/activity-interceptor.d.ts +1 -1
- package/build/services/interceptor/activity-interceptor.js +5 -5
- package/build/services/interceptor/completion.js +1 -1
- package/build/services/interceptor/escalation.js +1 -1
- package/build/services/interceptor/index.js +4 -4
- package/build/services/interceptor/lifecycle.js +1 -1
- package/build/services/maintenance/index.js +4 -5
- package/build/services/mcp/adapter.js +1 -16
- package/build/services/mcp/client/connection.d.ts +1 -1
- package/build/services/mcp/client/connection.js +2 -2
- package/build/services/mcp/client/tools.js +1 -1
- package/build/services/mcp/db-server/index.js +1 -1
- package/build/services/mcp/db-server/tools.js +17 -4
- package/build/services/mcp/db.js +1 -1
- package/build/services/mcp/playwright-server/index.js +1 -1
- package/build/services/mcp/playwright-server/lifecycle.js +1 -1
- package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
- package/build/services/mcp/playwright-server/tools.js +1 -1
- package/build/services/mcp/server.js +1 -1
- package/build/services/mcp/sql.d.ts +6 -0
- package/build/services/mcp/sql.js +34 -1
- package/build/services/mcp/workflow-compiler-server.js +1 -1
- package/build/services/mcp/workflow-server.js +1 -1
- package/build/services/mcp-runs/execution-builder.js +8 -6
- package/build/services/mcp-runs/queries.js +2 -2
- package/build/services/mcp-runs/sql.d.ts +4 -1
- package/build/services/mcp-runs/sql.js +23 -2
- package/build/services/namespace/index.js +1 -1
- package/build/services/oauth/db.js +9 -37
- package/build/services/oauth/index.js +1 -1
- package/build/services/oauth/providers/registry.js +1 -1
- package/build/services/oauth/sql.d.ts +7 -0
- package/build/services/oauth/sql.js +32 -0
- package/build/services/orchestrator/index.js +3 -3
- package/build/services/role/index.js +1 -1
- package/build/services/task/crud.js +1 -1
- package/build/services/task/process.js +1 -1
- package/build/services/task/resolve.js +1 -1
- package/build/services/user/auth.js +1 -1
- package/build/services/user/crud.js +1 -1
- package/build/services/user/rbac.js +1 -1
- package/build/services/user/roles.js +1 -1
- package/build/services/user/sql.d.ts +2 -0
- package/build/services/user/sql.js +3 -1
- package/build/services/yaml-workflow/db-utils.js +1 -1
- package/build/services/yaml-workflow/db.js +1 -1
- package/build/services/yaml-workflow/deployer-helpers.js +1 -1
- package/build/services/yaml-workflow/deployer.js +4 -4
- package/build/services/yaml-workflow/generator.js +1 -1
- package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +6 -0
- package/build/services/yaml-workflow/input-analyzer-helpers.js +36 -7
- package/build/services/yaml-workflow/input-analyzer.js +16 -3
- package/build/services/yaml-workflow/pipeline/analyze.js +1 -1
- package/build/services/yaml-workflow/pipeline/build/dag.js +10 -5
- package/build/services/yaml-workflow/pipeline/compile/llm-call.js +1 -1
- package/build/services/yaml-workflow/pipeline/extract.js +5 -3
- package/build/services/yaml-workflow/pipeline/index.d.ts +5 -0
- package/build/services/yaml-workflow/pipeline/index.js +22 -0
- package/build/services/yaml-workflow/pipeline/validate.js +2 -2
- package/build/services/yaml-workflow/workers/callbacks.js +1 -1
- package/build/services/yaml-workflow/workers/events.js +2 -2
- package/build/services/yaml-workflow/workers/register.js +8 -8
- package/build/start/adapters.js +7 -7
- package/build/start/index.js +4 -4
- package/build/start/server.js +1 -1
- package/build/start/workers.d.ts +1 -2
- package/build/start/workers.js +8 -7
- package/build/system/activities/claude-code.js +1 -1
- package/build/system/activities/file-storage.js +1 -1
- package/build/system/activities/knowledge.d.ts +58 -0
- package/build/system/activities/knowledge.js +128 -0
- package/build/system/activities/sql.d.ts +9 -0
- package/build/system/activities/sql.js +41 -0
- package/build/system/activities/triage/context.js +1 -1
- package/build/system/activities/triage/discovery.d.ts +2 -14
- package/build/system/activities/triage/discovery.js +5 -161
- package/build/system/activities/triage/llm.d.ts +1 -8
- package/build/system/activities/triage/llm.js +2 -28
- package/build/system/activities/triage/tools.d.ts +1 -17
- package/build/system/activities/triage/tools.js +8 -167
- package/build/system/index.js +5 -4
- package/build/system/mcp-servers/admin/escalations.d.ts +5 -0
- package/build/system/mcp-servers/admin/escalations.js +149 -0
- package/build/system/mcp-servers/admin/index.d.ts +31 -0
- package/build/system/mcp-servers/admin/index.js +80 -0
- package/build/system/mcp-servers/admin/maintenance.d.ts +5 -0
- package/build/system/mcp-servers/admin/maintenance.js +58 -0
- package/build/system/mcp-servers/admin/mcp-servers.d.ts +5 -0
- package/build/system/mcp-servers/admin/mcp-servers.js +146 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +411 -0
- package/build/system/mcp-servers/admin/schemas.js +177 -0
- package/build/system/mcp-servers/admin/tasks.d.ts +5 -0
- package/build/system/mcp-servers/admin/tasks.js +112 -0
- package/build/system/mcp-servers/admin/users.d.ts +5 -0
- package/build/system/mcp-servers/admin/users.js +167 -0
- package/build/system/mcp-servers/admin/workflow-config.d.ts +9 -0
- package/build/system/mcp-servers/admin/workflow-config.js +118 -0
- package/build/system/mcp-servers/admin/workflows.d.ts +6 -0
- package/build/system/mcp-servers/admin/workflows.js +138 -0
- package/build/system/mcp-servers/admin/yaml-workflows.d.ts +8 -0
- package/build/system/mcp-servers/admin/yaml-workflows.js +237 -0
- package/build/system/mcp-servers/claude-code.js +1 -1
- package/build/system/mcp-servers/db-query/index.js +1 -1
- package/build/system/mcp-servers/db-query/tools.js +17 -4
- package/build/system/mcp-servers/docs.d.ts +5 -0
- package/build/system/mcp-servers/docs.js +147 -0
- package/build/system/mcp-servers/file-storage.js +1 -1
- package/build/system/mcp-servers/http-fetch.js +1 -1
- package/build/system/mcp-servers/human-queue.js +1 -1
- package/build/system/mcp-servers/knowledge.d.ts +4 -0
- package/build/system/mcp-servers/knowledge.js +137 -0
- package/build/system/mcp-servers/oauth.js +1 -1
- package/build/system/mcp-servers/playwright/browser-lifecycle.js +1 -1
- package/build/system/mcp-servers/playwright/index.js +1 -1
- package/build/system/mcp-servers/playwright/schemas.d.ts +19 -8
- package/build/system/mcp-servers/playwright/schemas.js +3 -0
- package/build/system/mcp-servers/playwright/tools-navigation.js +22 -9
- package/build/system/mcp-servers/playwright/tools-run-script.js +20 -3
- package/build/system/mcp-servers/playwright/vision-helper.d.ts +12 -0
- package/build/system/mcp-servers/playwright/vision-helper.js +81 -0
- package/build/system/mcp-servers/playwright-cli/helpers.js +2 -2
- package/build/system/mcp-servers/playwright-cli/index.js +1 -1
- package/build/system/mcp-servers/playwright-cli/schemas.d.ts +28 -28
- package/build/system/mcp-servers/playwright-cli/schemas.js +1 -1
- package/build/system/mcp-servers/playwright-cli/tools-auth.js +1 -1
- package/build/system/mcp-servers/playwright-cli/tools-capture.js +4 -2
- package/build/system/mcp-servers/translation.d.ts +14 -0
- package/build/system/mcp-servers/translation.js +130 -0
- package/build/system/mcp-servers/vision-prompts.d.ts +2 -0
- package/build/system/mcp-servers/vision-prompts.js +9 -0
- package/build/system/mcp-servers/{document-vision.d.ts → vision.d.ts} +3 -4
- package/build/system/mcp-servers/vision.js +221 -0
- package/build/system/mcp-servers/workflow-compiler.js +1 -1
- package/build/system/mcp-servers/workflow.js +1 -1
- package/build/system/seed/index.js +13 -2
- package/build/system/seed/server-definitions.d.ts +1954 -322
- package/build/system/seed/server-definitions.js +65 -34
- package/build/system/seed/tool-manifests-admin.d.ts +1645 -0
- package/build/system/seed/tool-manifests-admin.js +45 -0
- package/build/system/seed/tool-manifests-browser.d.ts +1 -1
- package/build/system/seed/tool-manifests-browser.js +3 -3
- package/build/system/seed/tool-manifests-data.d.ts +62 -21
- package/build/system/seed/tool-manifests-data.js +55 -17
- package/build/system/seed/tool-manifests-knowledge.d.ts +171 -0
- package/build/system/seed/tool-manifests-knowledge.js +94 -0
- package/build/system/workflows/mcp-deterministic/index.js +1 -1
- package/build/system/workflows/mcp-query/activities/discovery.d.ts +2 -20
- package/build/system/workflows/mcp-query/activities/discovery.js +5 -163
- package/build/system/workflows/mcp-query/activities/llm.d.ts +1 -7
- package/build/system/workflows/mcp-query/activities/llm.js +2 -27
- package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +0 -4
- package/build/system/workflows/mcp-query/activities/tool-executor.js +2 -106
- package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +0 -9
- package/build/system/workflows/mcp-query/activities/tool-loader.js +2 -87
- package/build/system/workflows/mcp-query/index.js +55 -5
- package/build/system/workflows/mcp-query/prompts.d.ts +1 -2
- package/build/system/workflows/mcp-query/prompts.js +5 -32
- package/build/system/workflows/mcp-query/strategy-advisors.d.ts +3 -14
- package/build/system/workflows/mcp-query/strategy-advisors.js +4 -107
- package/build/system/workflows/mcp-query/types.d.ts +2 -10
- package/build/system/workflows/mcp-query/types.js +0 -1
- package/build/system/workflows/mcp-query-router/index.js +1 -1
- package/build/system/workflows/mcp-triage/index.d.ts +2 -2
- package/build/system/workflows/mcp-triage/index.js +39 -7
- package/build/system/workflows/mcp-triage/prompts.js +7 -14
- package/build/system/workflows/mcp-triage-deterministic/index.js +1 -1
- package/build/system/workflows/mcp-triage-router/index.js +1 -1
- package/build/system/workflows/shared/discovery.d.ts +35 -0
- package/build/system/workflows/shared/discovery.js +175 -0
- package/build/system/workflows/shared/index.d.ts +7 -0
- package/build/system/workflows/shared/index.js +18 -0
- package/build/system/workflows/shared/llm-caller.d.ts +8 -0
- package/build/system/workflows/shared/llm-caller.js +31 -0
- package/build/system/workflows/shared/prompts.d.ts +2 -0
- package/build/system/workflows/shared/prompts.js +32 -0
- package/build/system/workflows/shared/strategy-advisors.d.ts +14 -0
- package/build/system/workflows/shared/strategy-advisors.js +109 -0
- package/build/system/workflows/shared/tool-executor.d.ts +11 -0
- package/build/system/workflows/shared/tool-executor.js +111 -0
- package/build/system/workflows/shared/tool-loader.d.ts +19 -0
- package/build/system/workflows/shared/tool-loader.js +94 -0
- package/build/system/workflows/shared/types.d.ts +9 -0
- package/build/system/workflows/shared/types.js +2 -0
- package/build/system/workflows/tool-result-guard.d.ts +14 -0
- package/build/system/workflows/tool-result-guard.js +78 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/user.d.ts +2 -0
- package/build/vitest.config.d.ts +1 -1
- package/build/vitest.integration.config.d.ts +1 -1
- package/build/workers/index.js +2 -8
- package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js +2 -0
- package/dashboard/dist/assets/AdminDashboard-CTyAMUJR.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-BMXV3Q4l.js.map +1 -0
- package/dashboard/dist/assets/BotPicker-C51nKFEu.js +2 -0
- package/dashboard/dist/assets/{BotPicker-D6FYW1Gt.js.map → BotPicker-C51nKFEu.js.map} +1 -1
- package/dashboard/dist/assets/CollapsibleSection-BSyfd8uL.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-Cxk4wvjT.js.map → CollapsibleSection-BSyfd8uL.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-CBdhia5T.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-FSXyKjaB.js.map → ConfirmDeleteModal-CBdhia5T.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-dGlewBCS.js +2 -0
- package/dashboard/dist/assets/{CopyableId-CBdxWfp8.js.map → CopyableId-dGlewBCS.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-CoBNFSAu.js +2 -0
- package/dashboard/dist/assets/{CredentialsPage-Ikzsot0w.js.map → CredentialsPage-CoBNFSAu.js.map} +1 -1
- package/dashboard/dist/assets/CustomDurationPicker-BataWFj8.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-CAninCbl.js.map → CustomDurationPicker-BataWFj8.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-B3uf5CCo.js +2 -0
- package/dashboard/dist/assets/DataTable-B3uf5CCo.js.map +1 -0
- package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js +2 -0
- package/dashboard/dist/assets/ElapsedCell-G5oSwTpT.js.map +1 -0
- package/dashboard/dist/assets/EmptyState-BChBJNGS.js +2 -0
- package/dashboard/dist/assets/{EmptyState-2CmV-IaS.js.map → EmptyState-BChBJNGS.js.map} +1 -1
- package/dashboard/dist/assets/EscalationsOverview-CxUv8xjG.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-GXYFPASS.js.map → EscalationsOverview-CxUv8xjG.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-CVt8B0BZ.js +2 -0
- package/dashboard/dist/assets/{EventTable-B01oJf6Y.js.map → EventTable-CVt8B0BZ.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-CShf0oe7.js +2 -0
- package/dashboard/dist/assets/{FilterBar-Ck4K4rzu.js.map → FilterBar-CShf0oe7.js.map} +1 -1
- package/dashboard/dist/assets/McpOverview-CbaZRnJl.js +2 -0
- package/dashboard/dist/assets/{McpOverview-JkvRcX2e.js.map → McpOverview-CbaZRnJl.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-CGoR9XK6.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-BjXoYQuU.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-DLkA5Aar.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-DCh9n11D.js.map +1 -0
- package/dashboard/dist/assets/Modal-CI5RBPOQ.js +2 -0
- package/dashboard/dist/assets/{Modal-B4rbIVAn.js.map → Modal-CI5RBPOQ.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-Dc80suXd.js.map +1 -0
- package/dashboard/dist/assets/PageHeader-SMD9qtOO.js +2 -0
- package/dashboard/dist/assets/PageHeader-SMD9qtOO.js.map +1 -0
- package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-TikLQsTp.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-CQ0EsLTA.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-DfQY9St9.js.map → PriorityBadge-CQ0EsLTA.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-B2GKuGzk.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js +2 -0
- package/dashboard/dist/assets/ProcessesListPage-CTjI3Wn6.js.map +1 -0
- package/dashboard/dist/assets/RefreshButton-BcQDObrv.js +2 -0
- package/dashboard/dist/assets/RefreshButton-BcQDObrv.js.map +1 -0
- package/dashboard/dist/assets/RolePill-Crj4TH5p.js +2 -0
- package/dashboard/dist/assets/{RolePill-BTPa8L-P.js.map → RolePill-Crj4TH5p.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-C_RInUwS.js +2 -0
- package/dashboard/dist/assets/RolesPage-C_RInUwS.js.map +1 -0
- package/dashboard/dist/assets/RowActions-Cp5HyK_w.js +2 -0
- package/dashboard/dist/assets/{RowActions-Dg-Fsm5O.js.map → RowActions-Cp5HyK_w.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js +2 -0
- package/dashboard/dist/assets/RunAsSelector-BhyWtofX.js.map +1 -0
- package/dashboard/dist/assets/StatCard-BKZLSgNV.js +2 -0
- package/dashboard/dist/assets/{StatCard-DlgF0CJC.js.map → StatCard-BKZLSgNV.js.map} +1 -1
- package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js +2 -0
- package/dashboard/dist/assets/StatusBadge-BYNGGZK5.js.map +1 -0
- package/dashboard/dist/assets/StickyPagination-CTosgiU2.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-F9FZsRy9.js.map → StickyPagination-CTosgiU2.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-ylG5Ps1s.js.map +1 -0
- package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-C9pDGdD2.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-BtJbZTT0.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-awmtb0qw.js.map → TaskQueuePill-BtJbZTT0.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-DtFLUEhg.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-C_QF23c1.js.map → TasksListPage-DtFLUEhg.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js +2 -0
- package/dashboard/dist/assets/TimeAgo-WuM6xImZ.js.map +1 -0
- package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js +2 -0
- package/dashboard/dist/assets/TimestampCell-IVL_-Upy.js.map +1 -0
- package/dashboard/dist/assets/UserName-DU9qeg13.js +2 -0
- package/dashboard/dist/assets/{UserName-DaP4YAKr.js.map → UserName-DU9qeg13.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js +2 -0
- package/dashboard/dist/assets/WorkflowExecutionPage-DOocX81f.js.map +1 -0
- package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-Diw8iWBP.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DDtUIrTy.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-CPuvA4t3.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-D9OzzQqw.js.map → WorkflowsOverview-CPuvA4t3.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-DlwwkluN.js.map +1 -0
- package/dashboard/dist/assets/{bots-BkKVMbUW.js → bots-BPiZXf2h.js} +2 -2
- package/dashboard/dist/assets/{bots-BkKVMbUW.js.map → bots-BPiZXf2h.js.map} +1 -1
- package/dashboard/dist/assets/constants-BHkpVaqx.js +2 -0
- package/dashboard/dist/assets/constants-BHkpVaqx.js.map +1 -0
- package/dashboard/dist/assets/escalation-DTY_OKRh.js +2 -0
- package/dashboard/dist/assets/escalation-DTY_OKRh.js.map +1 -0
- package/dashboard/dist/assets/escalation-columns-C91fHSkp.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-D6aqStaY.js.map → escalation-columns-C91fHSkp.js.map} +1 -1
- package/dashboard/dist/assets/helpers-DBUZ9pnG.js +2 -0
- package/dashboard/dist/assets/helpers-DBUZ9pnG.js.map +1 -0
- package/dashboard/dist/assets/index-BOeA-gfK.js +17 -0
- package/dashboard/dist/assets/{index-X85K5bHC.js.map → index-BOeA-gfK.js.map} +1 -1
- package/dashboard/dist/assets/index-BZ6K_kmL.js +3 -0
- package/dashboard/dist/assets/index-BZ6K_kmL.js.map +1 -0
- package/dashboard/dist/assets/index-Bpm0yeoi.js +2 -0
- package/dashboard/dist/assets/index-Bpm0yeoi.js.map +1 -0
- package/dashboard/dist/assets/index-BtOwLI0K.js +2 -0
- package/dashboard/dist/assets/{index-DTPzZr_X.js.map → index-BtOwLI0K.js.map} +1 -1
- package/dashboard/dist/assets/index-CBF3ZvRZ.js +6 -0
- package/dashboard/dist/assets/index-CBF3ZvRZ.js.map +1 -0
- package/dashboard/dist/assets/index-CDWOfCmi.js +2 -0
- package/dashboard/dist/assets/index-CDWOfCmi.js.map +1 -0
- package/dashboard/dist/assets/index-Ce6sL__n.js +2 -0
- package/dashboard/dist/assets/index-Ce6sL__n.js.map +1 -0
- package/dashboard/dist/assets/index-DSzSoku1.js +283 -0
- package/dashboard/dist/assets/index-DSzSoku1.js.map +1 -0
- package/dashboard/dist/assets/index-D_qEAYrg.js +2 -0
- package/dashboard/dist/assets/index-D_qEAYrg.js.map +1 -0
- package/dashboard/dist/assets/index-gCy9XX3W.css +1 -0
- package/dashboard/dist/assets/mcp-BzVpaaKF.js +2 -0
- package/dashboard/dist/assets/{mcp-blCW6IL7.js.map → mcp-BzVpaaKF.js.map} +1 -1
- package/dashboard/dist/assets/mcp-query-wTuxTTCV.js +2 -0
- package/dashboard/dist/assets/mcp-query-wTuxTTCV.js.map +1 -0
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js → mcp-runs-DmXYJD19.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-ChPbpvXK.js.map → mcp-runs-DmXYJD19.js.map} +1 -1
- package/dashboard/dist/assets/namespaces-DoGa7jc7.js +2 -0
- package/dashboard/dist/assets/{namespaces-BgbaC3ow.js.map → namespaces-DoGa7jc7.js.map} +1 -1
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js → roles-wCdQ2Z7k.js} +2 -2
- package/dashboard/dist/assets/{roles-ZNrqqnQl.js.map → roles-wCdQ2Z7k.js.map} +1 -1
- package/dashboard/dist/assets/settings-DDe_L7JT.js +2 -0
- package/dashboard/dist/assets/{settings-eBRSE0mQ.js.map → settings-DDe_L7JT.js.map} +1 -1
- package/dashboard/dist/assets/tasks-3Hih8Bt7.js +2 -0
- package/dashboard/dist/assets/{tasks-tRqClPns.js.map → tasks-3Hih8Bt7.js.map} +1 -1
- package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js → useFilterParams-BUyLHcx_.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-BaXUAkYK.js.map → useFilterParams-BUyLHcx_.js.map} +1 -1
- package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js → useNatsEvents-DeGKHFTX.js} +2 -2
- package/dashboard/dist/assets/{useNatsEvents-Xr43X1fG.js.map → useNatsEvents-DeGKHFTX.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js → useYamlActivityEvents-B5dHec6Y.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-BO51u8tm.js.map → useYamlActivityEvents-B5dHec6Y.js.map} +1 -1
- package/dashboard/dist/assets/{users-tMvNyOo8.js → users-BTagPmGW.js} +2 -2
- package/dashboard/dist/assets/{users-tMvNyOo8.js.map → users-BTagPmGW.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-ZTAKVwGc.js → vendor-icons-DCLlGYO9.js} +112 -57
- package/dashboard/dist/assets/vendor-icons-DCLlGYO9.js.map +1 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +26 -0
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +1 -0
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js → workflows-B20dR3NE.js} +2 -2
- package/dashboard/dist/assets/{workflows-Cc4VHcrp.js.map → workflows-B20dR3NE.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-CaLPMQha.js.map +1 -0
- package/dashboard/dist/index.html +5 -5
- package/docs/api/dba.md +81 -0
- package/docs/api/escalations.md +575 -0
- package/docs/api/exports.md +170 -0
- package/docs/api/maintenance.md +93 -0
- package/docs/api/mcp-runs.md +128 -0
- package/docs/api/mcp-servers.md +195 -0
- package/docs/api/namespaces.md +48 -0
- package/docs/api/roles.md +390 -0
- package/docs/api/service-accounts.md +188 -0
- package/docs/api/settings.md +33 -0
- package/docs/api/tasks.md +167 -0
- package/docs/api/users.md +180 -0
- package/docs/api/workflows.md +616 -0
- package/docs/api/yaml-workflows.md +312 -0
- package/docs/architecture.md +221 -0
- package/docs/auth.md +181 -0
- package/docs/cloud.md +272 -0
- package/docs/compilation.md +136 -0
- package/docs/contributing.md +56 -0
- package/docs/dashboard.md +145 -0
- package/docs/data.md +478 -0
- package/docs/escalation-strategies.md +264 -0
- package/docs/events.md +251 -0
- package/docs/iam.md +222 -0
- package/docs/img/01-login.png +0 -0
- package/docs/img/02-dashboard-home.png +0 -0
- package/docs/img/03-processes-list.png +0 -0
- package/docs/img/04-escalations-list.png +0 -0
- package/docs/img/05-mcp-servers.png +0 -0
- package/docs/img/06-mcp-pipelines.png +0 -0
- package/docs/img/07-workflows-list.png +0 -0
- package/docs/img/compilation/01-query-submit.png +0 -0
- package/docs/img/compilation/02-mcp-servers.png +0 -0
- package/docs/img/compilation/03-query-completed.png +0 -0
- package/docs/img/compilation/04-wizard-original.png +0 -0
- package/docs/img/compilation/05-wizard-timeline.png +0 -0
- package/docs/img/compilation/06-wizard-profile.png +0 -0
- package/docs/img/compilation/07-wizard-deploy.png +0 -0
- package/docs/img/compilation/08-wizard-test-modal.png +0 -0
- package/docs/img/compilation/09-wizard-test-compare.png +0 -0
- package/docs/img/compilation/10-wizard-verify.png +0 -0
- package/docs/logging.md +110 -0
- package/docs/maintenance.md +221 -0
- package/docs/mcp.md +715 -0
- package/docs/oauth-and-delegation.md +469 -0
- package/docs/telemetry.md +144 -0
- package/docs/workflows.md +695 -0
- package/lib/db/schemas/015_knowledge.sql +23 -0
- package/package.json +8 -9
- package/build/services/db/index.d.ts +0 -3
- package/build/services/mcp/vision-server.d.ts +0 -15
- package/build/services/mcp/vision-server.js +0 -214
- package/build/system/mcp-servers/document-vision.js +0 -228
- package/build/system/mcp-servers/prompts.d.ts +0 -4
- package/build/system/mcp-servers/prompts.js +0 -10
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +0 -2
- package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +0 -1
- package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +0 -2
- package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +0 -2
- package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +0 -2
- package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +0 -2
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js +0 -2
- package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +0 -1
- package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +0 -2
- package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +0 -2
- package/dashboard/dist/assets/EventTable-B01oJf6Y.js +0 -2
- package/dashboard/dist/assets/Field-DuFBAYhu.js +0 -2
- package/dashboard/dist/assets/Field-DuFBAYhu.js.map +0 -1
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +0 -2
- package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +0 -1
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +0 -1
- package/dashboard/dist/assets/Modal-B4rbIVAn.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +0 -1
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js +0 -2
- package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +0 -1
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +0 -1
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +0 -1
- package/dashboard/dist/assets/RolePill-BTPa8L-P.js +0 -2
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js +0 -2
- package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +0 -1
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +0 -2
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +0 -4
- package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +0 -1
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +0 -2
- package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +0 -1
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +0 -1
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +0 -2
- package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +0 -2
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +0 -2
- package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +0 -1
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +0 -2
- package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +0 -1
- package/dashboard/dist/assets/UserName-DaP4YAKr.js +0 -2
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +0 -5
- package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +0 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +0 -1
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +0 -3
- package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +0 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +0 -1
- package/dashboard/dist/assets/constants-CgaZfe5d.js +0 -2
- package/dashboard/dist/assets/constants-CgaZfe5d.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +0 -2
- package/dashboard/dist/assets/escalation-qalymbKB.js +0 -2
- package/dashboard/dist/assets/escalation-qalymbKB.js.map +0 -1
- package/dashboard/dist/assets/format-gXZXQ-HJ.js +0 -2
- package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +0 -1
- package/dashboard/dist/assets/helpers-0gSleuzT.js +0 -2
- package/dashboard/dist/assets/helpers-0gSleuzT.js.map +0 -1
- package/dashboard/dist/assets/index-BWvMHed7.js +0 -6
- package/dashboard/dist/assets/index-BWvMHed7.js.map +0 -1
- package/dashboard/dist/assets/index-BaszoPO_.css +0 -1
- package/dashboard/dist/assets/index-Cn2jyj9A.js +0 -2
- package/dashboard/dist/assets/index-Cn2jyj9A.js.map +0 -1
- package/dashboard/dist/assets/index-D8VH6K8B.js +0 -54
- package/dashboard/dist/assets/index-D8VH6K8B.js.map +0 -1
- package/dashboard/dist/assets/index-D9SYwJsi.js +0 -3
- package/dashboard/dist/assets/index-D9SYwJsi.js.map +0 -1
- package/dashboard/dist/assets/index-DTPzZr_X.js +0 -2
- package/dashboard/dist/assets/index-D_6AB5BE.js +0 -2
- package/dashboard/dist/assets/index-D_6AB5BE.js.map +0 -1
- package/dashboard/dist/assets/index-S9Ks2Lj2.js +0 -2
- package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +0 -1
- package/dashboard/dist/assets/index-X85K5bHC.js +0 -17
- package/dashboard/dist/assets/index-rjmgHlSH.js +0 -2
- package/dashboard/dist/assets/index-rjmgHlSH.js.map +0 -1
- package/dashboard/dist/assets/mcp-blCW6IL7.js +0 -2
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +0 -2
- package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +0 -1
- package/dashboard/dist/assets/namespaces-BgbaC3ow.js +0 -2
- package/dashboard/dist/assets/settings-eBRSE0mQ.js +0 -2
- package/dashboard/dist/assets/tasks-tRqClPns.js +0 -2
- package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +0 -1
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +0 -22
- package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +0 -1
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +0 -2
- package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +0 -1
- /package/build/{services → lib}/db/migrate.d.ts +0 -0
- /package/build/{services → lib}/events/index.d.ts +0 -0
- /package/build/{services → lib}/events/index.js +0 -0
- /package/build/{services → lib}/events/memory.d.ts +0 -0
- /package/build/{services → lib}/events/memory.js +0 -0
- /package/build/{services → lib}/events/nats.d.ts +0 -0
- /package/build/{services → lib}/events/nats.js +0 -0
- /package/build/{services → lib}/events/publish.d.ts +0 -0
- /package/build/{services → lib}/events/publish.js +0 -0
- /package/build/{services → lib}/events/socketio.d.ts +0 -0
- /package/build/{services → lib}/events/socketio.js +0 -0
- /package/build/{services → lib}/logger/index.d.ts +0 -0
- /package/build/{services → lib}/logger/index.js +0 -0
- /package/build/{services → lib}/logger/pino.d.ts +0 -0
- /package/build/{services → lib}/logger/pino.js +0 -0
- /package/build/{services → lib}/storage/index.d.ts +0 -0
- /package/build/{services → lib}/storage/index.js +0 -0
- /package/build/{services → lib}/storage/local.d.ts +0 -0
- /package/build/{services → lib}/storage/local.js +0 -0
- /package/build/{services → lib}/storage/s3.d.ts +0 -0
- /package/build/{services → lib}/storage/s3.js +0 -0
- /package/build/{services → lib}/storage/types.d.ts +0 -0
- /package/build/{services → lib}/storage/types.js +0 -0
- /package/build/{services → lib}/telemetry/index.d.ts +0 -0
- /package/build/{services → lib}/telemetry/index.js +0 -0
- /package/{services → lib}/db/README.md +0 -0
- /package/{services → lib}/db/schemas/001_schema.sql +0 -0
- /package/{services → lib}/db/schemas/002_seed.sql +0 -0
- /package/{services → lib}/db/schemas/003_workflow_discovery.sql +0 -0
- /package/{services → lib}/db/schemas/004_query_router.sql +0 -0
- /package/{services → lib}/db/schemas/005_triage_router.sql +0 -0
- /package/{services → lib}/db/schemas/006_oauth.sql +0 -0
- /package/{services → lib}/db/schemas/007_security.sql +0 -0
- /package/{services → lib}/db/schemas/008_bot_accounts.sql +0 -0
- /package/{services → lib}/db/schemas/009_audit_trail.sql +0 -0
- /package/{services → lib}/db/schemas/010_credential_providers.sql +0 -0
- /package/{services → lib}/db/schemas/011_system_workflow_configs.sql +0 -0
- /package/{services → lib}/db/schemas/012_drop_modality.sql +0 -0
- /package/{services → lib}/db/schemas/013_execute_as.sql +0 -0
- /package/{services → lib}/db/schemas/014_ephemeral_credentials.sql +0 -0
|
@@ -13,25 +13,25 @@ export declare const loginAndCaptureSchema: z.ZodObject<{
|
|
|
13
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
14
|
password: string;
|
|
15
15
|
url: string;
|
|
16
|
-
username: string;
|
|
17
|
-
submit_selector: string;
|
|
18
16
|
username_selector: string;
|
|
19
17
|
password_selector: string;
|
|
18
|
+
username: string;
|
|
19
|
+
submit_selector: string;
|
|
20
20
|
timeout?: number | undefined;
|
|
21
|
-
screenshot_path?: string | undefined;
|
|
22
21
|
full_page?: boolean | undefined;
|
|
23
22
|
wait_after_login?: string | undefined;
|
|
23
|
+
screenshot_path?: string | undefined;
|
|
24
24
|
}, {
|
|
25
25
|
password: string;
|
|
26
26
|
url: string;
|
|
27
|
-
username: string;
|
|
28
|
-
submit_selector: string;
|
|
29
27
|
username_selector: string;
|
|
30
28
|
password_selector: string;
|
|
29
|
+
username: string;
|
|
30
|
+
submit_selector: string;
|
|
31
31
|
timeout?: number | undefined;
|
|
32
|
-
screenshot_path?: string | undefined;
|
|
33
32
|
full_page?: boolean | undefined;
|
|
34
33
|
wait_after_login?: string | undefined;
|
|
34
|
+
screenshot_path?: string | undefined;
|
|
35
35
|
}>;
|
|
36
36
|
export declare const capturePageSchema: z.ZodObject<{
|
|
37
37
|
url: z.ZodString;
|
|
@@ -46,20 +46,20 @@ export declare const capturePageSchema: z.ZodObject<{
|
|
|
46
46
|
url: string;
|
|
47
47
|
timeout?: number | undefined;
|
|
48
48
|
page_id?: string | undefined;
|
|
49
|
-
screenshot_path?: string | undefined;
|
|
50
49
|
wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
|
|
51
|
-
wait_ms?: number | undefined;
|
|
52
50
|
full_page?: boolean | undefined;
|
|
51
|
+
screenshot_path?: string | undefined;
|
|
53
52
|
wait_for_selector?: string | undefined;
|
|
53
|
+
wait_ms?: number | undefined;
|
|
54
54
|
}, {
|
|
55
55
|
url: string;
|
|
56
56
|
timeout?: number | undefined;
|
|
57
57
|
page_id?: string | undefined;
|
|
58
|
-
screenshot_path?: string | undefined;
|
|
59
58
|
wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
|
|
60
|
-
wait_ms?: number | undefined;
|
|
61
59
|
full_page?: boolean | undefined;
|
|
60
|
+
screenshot_path?: string | undefined;
|
|
62
61
|
wait_for_selector?: string | undefined;
|
|
62
|
+
wait_ms?: number | undefined;
|
|
63
63
|
}>;
|
|
64
64
|
export declare const captureAuthenticatedPagesSchema: z.ZodObject<{
|
|
65
65
|
login: z.ZodObject<{
|
|
@@ -74,19 +74,19 @@ export declare const captureAuthenticatedPagesSchema: z.ZodObject<{
|
|
|
74
74
|
}, "strip", z.ZodTypeAny, {
|
|
75
75
|
password: string;
|
|
76
76
|
url: string;
|
|
77
|
-
username: string;
|
|
78
|
-
submit_selector: string;
|
|
79
77
|
username_selector: string;
|
|
80
78
|
password_selector: string;
|
|
79
|
+
username: string;
|
|
80
|
+
submit_selector: string;
|
|
81
81
|
timeout?: number | undefined;
|
|
82
82
|
wait_after_login?: string | undefined;
|
|
83
83
|
}, {
|
|
84
84
|
password: string;
|
|
85
85
|
url: string;
|
|
86
|
-
username: string;
|
|
87
|
-
submit_selector: string;
|
|
88
86
|
username_selector: string;
|
|
89
87
|
password_selector: string;
|
|
88
|
+
username: string;
|
|
89
|
+
submit_selector: string;
|
|
90
90
|
timeout?: number | undefined;
|
|
91
91
|
wait_after_login?: string | undefined;
|
|
92
92
|
}>;
|
|
@@ -99,51 +99,51 @@ export declare const captureAuthenticatedPagesSchema: z.ZodObject<{
|
|
|
99
99
|
}, "strip", z.ZodTypeAny, {
|
|
100
100
|
url: string;
|
|
101
101
|
screenshot_path: string;
|
|
102
|
-
wait_ms?: number | undefined;
|
|
103
102
|
full_page?: boolean | undefined;
|
|
104
103
|
wait_for_selector?: string | undefined;
|
|
104
|
+
wait_ms?: number | undefined;
|
|
105
105
|
}, {
|
|
106
106
|
url: string;
|
|
107
107
|
screenshot_path: string;
|
|
108
|
-
wait_ms?: number | undefined;
|
|
109
108
|
full_page?: boolean | undefined;
|
|
110
109
|
wait_for_selector?: string | undefined;
|
|
110
|
+
wait_ms?: number | undefined;
|
|
111
111
|
}>, "many">;
|
|
112
112
|
}, "strip", z.ZodTypeAny, {
|
|
113
113
|
login: {
|
|
114
114
|
password: string;
|
|
115
115
|
url: string;
|
|
116
|
-
username: string;
|
|
117
|
-
submit_selector: string;
|
|
118
116
|
username_selector: string;
|
|
119
117
|
password_selector: string;
|
|
118
|
+
username: string;
|
|
119
|
+
submit_selector: string;
|
|
120
120
|
timeout?: number | undefined;
|
|
121
121
|
wait_after_login?: string | undefined;
|
|
122
122
|
};
|
|
123
123
|
pages: {
|
|
124
124
|
url: string;
|
|
125
125
|
screenshot_path: string;
|
|
126
|
-
wait_ms?: number | undefined;
|
|
127
126
|
full_page?: boolean | undefined;
|
|
128
127
|
wait_for_selector?: string | undefined;
|
|
128
|
+
wait_ms?: number | undefined;
|
|
129
129
|
}[];
|
|
130
130
|
}, {
|
|
131
131
|
login: {
|
|
132
132
|
password: string;
|
|
133
133
|
url: string;
|
|
134
|
-
username: string;
|
|
135
|
-
submit_selector: string;
|
|
136
134
|
username_selector: string;
|
|
137
135
|
password_selector: string;
|
|
136
|
+
username: string;
|
|
137
|
+
submit_selector: string;
|
|
138
138
|
timeout?: number | undefined;
|
|
139
139
|
wait_after_login?: string | undefined;
|
|
140
140
|
};
|
|
141
141
|
pages: {
|
|
142
142
|
url: string;
|
|
143
143
|
screenshot_path: string;
|
|
144
|
-
wait_ms?: number | undefined;
|
|
145
144
|
full_page?: boolean | undefined;
|
|
146
145
|
wait_for_selector?: string | undefined;
|
|
146
|
+
wait_ms?: number | undefined;
|
|
147
147
|
}[];
|
|
148
148
|
}>;
|
|
149
149
|
export declare const extractContentSchema: z.ZodObject<{
|
|
@@ -161,21 +161,21 @@ export declare const extractContentSchema: z.ZodObject<{
|
|
|
161
161
|
timeout?: number | undefined;
|
|
162
162
|
page_id?: string | undefined;
|
|
163
163
|
selector?: string | undefined;
|
|
164
|
+
script?: string | undefined;
|
|
165
|
+
wait_for_selector?: string | undefined;
|
|
164
166
|
wait_ms?: number | undefined;
|
|
165
167
|
extract_links?: boolean | undefined;
|
|
166
168
|
extract_metadata?: boolean | undefined;
|
|
167
|
-
script?: string | undefined;
|
|
168
|
-
wait_for_selector?: string | undefined;
|
|
169
169
|
}, {
|
|
170
170
|
url?: string | undefined;
|
|
171
171
|
timeout?: number | undefined;
|
|
172
172
|
page_id?: string | undefined;
|
|
173
173
|
selector?: string | undefined;
|
|
174
|
+
script?: string | undefined;
|
|
175
|
+
wait_for_selector?: string | undefined;
|
|
174
176
|
wait_ms?: number | undefined;
|
|
175
177
|
extract_links?: boolean | undefined;
|
|
176
178
|
extract_metadata?: boolean | undefined;
|
|
177
|
-
script?: string | undefined;
|
|
178
|
-
wait_for_selector?: string | undefined;
|
|
179
179
|
}>;
|
|
180
180
|
export declare const submitFormSchema: z.ZodObject<{
|
|
181
181
|
url: z.ZodString;
|
|
@@ -202,8 +202,8 @@ export declare const submitFormSchema: z.ZodObject<{
|
|
|
202
202
|
selector: string;
|
|
203
203
|
}[];
|
|
204
204
|
timeout?: number | undefined;
|
|
205
|
-
screenshot_path?: string | undefined;
|
|
206
205
|
full_page?: boolean | undefined;
|
|
206
|
+
screenshot_path?: string | undefined;
|
|
207
207
|
wait_after_submit?: string | undefined;
|
|
208
208
|
}, {
|
|
209
209
|
url: string;
|
|
@@ -213,7 +213,7 @@ export declare const submitFormSchema: z.ZodObject<{
|
|
|
213
213
|
selector: string;
|
|
214
214
|
}[];
|
|
215
215
|
timeout?: number | undefined;
|
|
216
|
-
screenshot_path?: string | undefined;
|
|
217
216
|
full_page?: boolean | undefined;
|
|
217
|
+
screenshot_path?: string | undefined;
|
|
218
218
|
wait_after_submit?: string | undefined;
|
|
219
219
|
}>;
|
|
@@ -19,7 +19,7 @@ exports.loginAndCaptureSchema = zod_1.z.object({
|
|
|
19
19
|
exports.capturePageSchema = zod_1.z.object({
|
|
20
20
|
url: zod_1.z.string().describe('URL to navigate to and capture'),
|
|
21
21
|
screenshot_path: zod_1.z.string().optional()
|
|
22
|
-
.describe('
|
|
22
|
+
.describe('Storage path for the screenshot PNG (persisted to file storage). If omitted, auto-derived from the URL path (e.g., /admin/users → screenshots/admin-users.png). The screenshot is saved automatically — no separate write_file call is needed.'),
|
|
23
23
|
page_id: zod_1.z.string().optional().describe('Reuse an existing page to preserve session (e.g., from login_and_capture)'),
|
|
24
24
|
full_page: zod_1.z.boolean().optional().describe('Capture full scrollable page (default: true)'),
|
|
25
25
|
wait_for_selector: zod_1.z.string().optional()
|
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.registerAuthTools = registerAuthTools;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const logger_1 = require("../../../
|
|
38
|
+
const logger_1 = require("../../../lib/logger");
|
|
39
39
|
const playwright_1 = require("../playwright");
|
|
40
40
|
const schemas_1 = require("./schemas");
|
|
41
41
|
const helpers_1 = require("./helpers");
|
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.registerCaptureTools = registerCaptureTools;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const logger_1 = require("../../../
|
|
38
|
+
const logger_1 = require("../../../lib/logger");
|
|
39
39
|
const playwright_1 = require("../playwright");
|
|
40
40
|
const schemas_1 = require("./schemas");
|
|
41
41
|
const helpers_1 = require("./helpers");
|
|
@@ -43,7 +43,8 @@ function registerCaptureTools(srv) {
|
|
|
43
43
|
// capture_page
|
|
44
44
|
srv.registerTool('capture_page', {
|
|
45
45
|
title: 'Capture Page',
|
|
46
|
-
description: 'Navigate to a URL
|
|
46
|
+
description: 'Navigate to a URL, capture a screenshot, and save it to persistent file storage in one call. ' +
|
|
47
|
+
'The returned `path` is the storage reference — no separate write_file call is needed. ' +
|
|
47
48
|
'Optionally waits for a CSS selector or a fixed delay to ensure content is loaded. ' +
|
|
48
49
|
'Pass page_id from a prior login_and_capture to reuse the authenticated session.',
|
|
49
50
|
inputSchema: schemas_1.capturePageSchema,
|
|
@@ -102,6 +103,7 @@ function registerCaptureTools(srv) {
|
|
|
102
103
|
url: page.url(),
|
|
103
104
|
title: await page.title(),
|
|
104
105
|
...screenshot,
|
|
106
|
+
storage_ref: screenshot.path,
|
|
105
107
|
_handle: (0, playwright_1.buildHandle)(pageId),
|
|
106
108
|
}),
|
|
107
109
|
}],
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create the Translation MCP server.
|
|
4
|
+
*
|
|
5
|
+
* Returns a fresh McpServer instance each time. The MCP SDK only allows
|
|
6
|
+
* one transport per server, so each consumer needs its own instance.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createTranslationServer(options?: {
|
|
9
|
+
name?: string;
|
|
10
|
+
}): Promise<McpServer>;
|
|
11
|
+
/**
|
|
12
|
+
* Stop a Translation MCP server instance.
|
|
13
|
+
*/
|
|
14
|
+
export declare function stopTranslationServer(): Promise<void>;
|
|
@@ -0,0 +1,130 @@
|
|
|
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.createTranslationServer = createTranslationServer;
|
|
37
|
+
exports.stopTranslationServer = stopTranslationServer;
|
|
38
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
39
|
+
const zod_1 = require("zod");
|
|
40
|
+
const llm_1 = require("../../services/llm");
|
|
41
|
+
const defaults_1 = require("../../modules/defaults");
|
|
42
|
+
const logger_1 = require("../../lib/logger");
|
|
43
|
+
function TRANSLATE_SYSTEM_PROMPT(targetLanguage) {
|
|
44
|
+
return `You are a translation assistant. Translate the user's text to ${targetLanguage}. Return ONLY a JSON object: {"translated_content": "...", "source_language": "detected ISO code"}. No markdown, no explanation.`;
|
|
45
|
+
}
|
|
46
|
+
const translateContentSchema = zod_1.z.object({
|
|
47
|
+
content: zod_1.z.string().describe('The content text to translate'),
|
|
48
|
+
target_language: zod_1.z.string().describe('Target language code (e.g. "en", "es")'),
|
|
49
|
+
source_language: zod_1.z.string().optional().describe('Source language code (auto-detected if omitted)'),
|
|
50
|
+
});
|
|
51
|
+
function registerTools(srv) {
|
|
52
|
+
srv.registerTool('translate_content', {
|
|
53
|
+
title: 'Translate Content',
|
|
54
|
+
description: 'Translate content text to the target language. Returns the translated content and detected source language.',
|
|
55
|
+
inputSchema: translateContentSchema,
|
|
56
|
+
}, async (args) => {
|
|
57
|
+
const { hasLLMApiKey } = await Promise.resolve().then(() => __importStar(require('../../services/llm')));
|
|
58
|
+
if (!hasLLMApiKey(defaults_1.LLM_MODEL_SECONDARY)) {
|
|
59
|
+
return {
|
|
60
|
+
content: [{
|
|
61
|
+
type: 'text',
|
|
62
|
+
text: JSON.stringify({
|
|
63
|
+
translated_content: args.content,
|
|
64
|
+
source_language: args.source_language || 'unknown',
|
|
65
|
+
target_language: args.target_language,
|
|
66
|
+
note: 'LLM API key not configured — returned content unchanged',
|
|
67
|
+
}),
|
|
68
|
+
}],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const systemPrompt = args.source_language
|
|
72
|
+
? `You are a translation assistant. Translate the user's text from ${args.source_language} to ${args.target_language}. Return ONLY a JSON object: {"translated_content": "...", "source_language": "${args.source_language}"}. No markdown, no explanation.`
|
|
73
|
+
: TRANSLATE_SYSTEM_PROMPT(args.target_language);
|
|
74
|
+
const response = await (0, llm_1.callLLM)({
|
|
75
|
+
model: defaults_1.LLM_MODEL_SECONDARY,
|
|
76
|
+
messages: [
|
|
77
|
+
{ role: 'system', content: systemPrompt },
|
|
78
|
+
{ role: 'user', content: args.content },
|
|
79
|
+
],
|
|
80
|
+
max_tokens: defaults_1.LLM_MAX_TOKENS_VISION,
|
|
81
|
+
temperature: 0,
|
|
82
|
+
});
|
|
83
|
+
const raw = response.content || '';
|
|
84
|
+
try {
|
|
85
|
+
const cleaned = raw.replace(/^```json\n?|\n?```$/g, '').trim();
|
|
86
|
+
const parsed = JSON.parse(cleaned);
|
|
87
|
+
return {
|
|
88
|
+
content: [{
|
|
89
|
+
type: 'text',
|
|
90
|
+
text: JSON.stringify({
|
|
91
|
+
translated_content: parsed.translated_content || args.content,
|
|
92
|
+
source_language: parsed.source_language || args.source_language || 'unknown',
|
|
93
|
+
target_language: args.target_language,
|
|
94
|
+
}),
|
|
95
|
+
}],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return {
|
|
100
|
+
content: [{
|
|
101
|
+
type: 'text',
|
|
102
|
+
text: JSON.stringify({
|
|
103
|
+
translated_content: raw,
|
|
104
|
+
source_language: args.source_language || 'unknown',
|
|
105
|
+
target_language: args.target_language,
|
|
106
|
+
}),
|
|
107
|
+
}],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Create the Translation MCP server.
|
|
114
|
+
*
|
|
115
|
+
* Returns a fresh McpServer instance each time. The MCP SDK only allows
|
|
116
|
+
* one transport per server, so each consumer needs its own instance.
|
|
117
|
+
*/
|
|
118
|
+
async function createTranslationServer(options) {
|
|
119
|
+
const name = options?.name || 'long-tail-translation';
|
|
120
|
+
const instance = new mcp_js_1.McpServer({ name, version: '1.0.0' });
|
|
121
|
+
registerTools(instance);
|
|
122
|
+
logger_1.loggerRegistry.info(`[lt-mcp:translation] ${name} ready (1 tool registered)`);
|
|
123
|
+
return instance;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Stop a Translation MCP server instance.
|
|
127
|
+
*/
|
|
128
|
+
async function stopTranslationServer() {
|
|
129
|
+
logger_1.loggerRegistry.info('[lt-mcp:translation] stopped');
|
|
130
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const ANALYZE_IMAGE_PROMPT = "You are an image analysis assistant. Analyze the provided image and return a JSON object with the following structure:\n{\"description\": \"brief description of the image\", \"text_content\": \"any text visible in the image or null\", \"objects\": [\"list\", \"of\", \"notable\", \"objects\"]}\nReturn ONLY the JSON object. No markdown, no explanation.";
|
|
2
|
+
export declare const DESCRIBE_IMAGE_PROMPT = "You are an image description assistant. Provide a clear, detailed description of the provided image. Return a JSON object:\n{\"description\": \"detailed description of the image\"}\nReturn ONLY the JSON object. No markdown, no explanation.";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DESCRIBE_IMAGE_PROMPT = exports.ANALYZE_IMAGE_PROMPT = void 0;
|
|
4
|
+
exports.ANALYZE_IMAGE_PROMPT = `You are an image analysis assistant. Analyze the provided image and return a JSON object with the following structure:
|
|
5
|
+
{"description": "brief description of the image", "text_content": "any text visible in the image or null", "objects": ["list", "of", "notable", "objects"]}
|
|
6
|
+
Return ONLY the JSON object. No markdown, no explanation.`;
|
|
7
|
+
exports.DESCRIBE_IMAGE_PROMPT = `You are an image description assistant. Provide a clear, detailed description of the provided image. Return a JSON object:
|
|
8
|
+
{"description": "detailed description of the image"}
|
|
9
|
+
Return ONLY the JSON object. No markdown, no explanation.`;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
/**
|
|
3
|
-
* Create the
|
|
3
|
+
* Create the Vision MCP server.
|
|
4
4
|
*
|
|
5
5
|
* Returns a fresh McpServer instance each time. The MCP SDK only allows
|
|
6
|
-
* one transport per server, so each consumer
|
|
7
|
-
* workers, tests) needs its own instance to avoid "already connected" errors.
|
|
6
|
+
* one transport per server, so each consumer needs its own instance.
|
|
8
7
|
*/
|
|
9
8
|
export declare function createVisionServer(options?: {
|
|
10
9
|
name?: string;
|
|
11
10
|
}): Promise<McpServer>;
|
|
12
11
|
/**
|
|
13
|
-
* Stop a Vision MCP server instance
|
|
12
|
+
* Stop a Vision MCP server instance.
|
|
14
13
|
*/
|
|
15
14
|
export declare function stopVisionServer(): Promise<void>;
|
|
@@ -0,0 +1,221 @@
|
|
|
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.createVisionServer = createVisionServer;
|
|
37
|
+
exports.stopVisionServer = stopVisionServer;
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
40
|
+
const zod_1 = require("zod");
|
|
41
|
+
const llm_1 = require("../../services/llm");
|
|
42
|
+
const defaults_1 = require("../../modules/defaults");
|
|
43
|
+
const logger_1 = require("../../lib/logger");
|
|
44
|
+
const storage_1 = require("../../lib/storage");
|
|
45
|
+
const vision_prompts_1 = require("./vision-prompts");
|
|
46
|
+
const MIME_MAP = {
|
|
47
|
+
'.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg',
|
|
48
|
+
'.gif': 'image/gif', '.webp': 'image/webp', '.svg': 'image/svg+xml',
|
|
49
|
+
};
|
|
50
|
+
const analyzeImageSchema = zod_1.z.object({
|
|
51
|
+
image: zod_1.z.string().describe('Image source: a storage path (e.g. "amazon_initial.png"), ' +
|
|
52
|
+
'a data URI (data:image/png;base64,...), or an https:// URL.'),
|
|
53
|
+
prompt: zod_1.z.string().optional().describe('Optional analysis prompt to guide the model'),
|
|
54
|
+
});
|
|
55
|
+
const describeImageSchema = zod_1.z.object({
|
|
56
|
+
image: zod_1.z.string().describe('Image source: a storage path, data URI, or https:// URL.'),
|
|
57
|
+
context: zod_1.z.string().optional().describe('Optional context about the image'),
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* Resolve an image reference to an LLM-ready content block.
|
|
61
|
+
*
|
|
62
|
+
* Accepts:
|
|
63
|
+
* - data:image/...;base64,... → used directly
|
|
64
|
+
* - https:// URL → passed as-is (OpenAI can fetch; Anthropic translate layer handles)
|
|
65
|
+
* - Storage path (anything else, including file:// prefixed) → read via storage backend
|
|
66
|
+
*/
|
|
67
|
+
async function resolveImageContent(image) {
|
|
68
|
+
// Already a data URI — pass through
|
|
69
|
+
if (image.startsWith('data:')) {
|
|
70
|
+
return { type: 'image_url', image_url: { url: image } };
|
|
71
|
+
}
|
|
72
|
+
// HTTPS URL — pass through
|
|
73
|
+
if (image.startsWith('https://') || image.startsWith('http://')) {
|
|
74
|
+
return { type: 'image_url', image_url: { url: image } };
|
|
75
|
+
}
|
|
76
|
+
// Storage path — strip file:// prefix if present, read via backend
|
|
77
|
+
const storagePath = image.replace(/^file:\/\//, '');
|
|
78
|
+
const backend = (0, storage_1.getStorageBackend)();
|
|
79
|
+
const { data } = await backend.read(storagePath);
|
|
80
|
+
const ext = path.extname(storagePath).toLowerCase();
|
|
81
|
+
const mime = MIME_MAP[ext] || 'image/png';
|
|
82
|
+
const base64 = data.toString('base64');
|
|
83
|
+
return { type: 'image_url', image_url: { url: `data:${mime};base64,${base64}` } };
|
|
84
|
+
}
|
|
85
|
+
function registerTools(srv) {
|
|
86
|
+
// ── analyze_image ───────────────────────────────────────────────
|
|
87
|
+
srv.registerTool('analyze_image', {
|
|
88
|
+
title: 'Analyze Image',
|
|
89
|
+
description: 'Analyze an image and extract structured data: description, text content, and notable objects.',
|
|
90
|
+
inputSchema: analyzeImageSchema,
|
|
91
|
+
}, async (args) => {
|
|
92
|
+
const { hasLLMApiKey } = await Promise.resolve().then(() => __importStar(require('../../services/llm')));
|
|
93
|
+
if (!hasLLMApiKey(defaults_1.LLM_MODEL_SECONDARY)) {
|
|
94
|
+
return {
|
|
95
|
+
content: [{
|
|
96
|
+
type: 'text',
|
|
97
|
+
text: JSON.stringify({
|
|
98
|
+
error: 'LLM API key not configured',
|
|
99
|
+
description: null,
|
|
100
|
+
text_content: null,
|
|
101
|
+
objects: [],
|
|
102
|
+
}),
|
|
103
|
+
}],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const systemPrompt = args.prompt
|
|
107
|
+
? `${vision_prompts_1.ANALYZE_IMAGE_PROMPT}\n\nAdditional guidance: ${args.prompt}`
|
|
108
|
+
: vision_prompts_1.ANALYZE_IMAGE_PROMPT;
|
|
109
|
+
const response = await (0, llm_1.callLLM)({
|
|
110
|
+
model: defaults_1.LLM_MODEL_SECONDARY,
|
|
111
|
+
messages: [
|
|
112
|
+
{ role: 'system', content: systemPrompt },
|
|
113
|
+
{
|
|
114
|
+
role: 'user',
|
|
115
|
+
content: [await resolveImageContent(args.image)],
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
max_tokens: defaults_1.LLM_MAX_TOKENS_VISION,
|
|
119
|
+
temperature: 0,
|
|
120
|
+
});
|
|
121
|
+
const raw = response.content || '';
|
|
122
|
+
try {
|
|
123
|
+
const cleaned = raw.replace(/^```json\n?|\n?```$/g, '').trim();
|
|
124
|
+
const parsed = JSON.parse(cleaned);
|
|
125
|
+
return {
|
|
126
|
+
content: [{
|
|
127
|
+
type: 'text',
|
|
128
|
+
text: JSON.stringify({
|
|
129
|
+
description: parsed.description || null,
|
|
130
|
+
text_content: parsed.text_content || null,
|
|
131
|
+
objects: parsed.objects || [],
|
|
132
|
+
}),
|
|
133
|
+
}],
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return {
|
|
138
|
+
content: [{
|
|
139
|
+
type: 'text',
|
|
140
|
+
text: JSON.stringify({
|
|
141
|
+
description: raw,
|
|
142
|
+
text_content: null,
|
|
143
|
+
objects: [],
|
|
144
|
+
}),
|
|
145
|
+
}],
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
// ── describe_image ──────────────────────────────────────────────
|
|
150
|
+
srv.registerTool('describe_image', {
|
|
151
|
+
title: 'Describe Image',
|
|
152
|
+
description: 'Generate a detailed description of an image.',
|
|
153
|
+
inputSchema: describeImageSchema,
|
|
154
|
+
}, async (args) => {
|
|
155
|
+
const { hasLLMApiKey } = await Promise.resolve().then(() => __importStar(require('../../services/llm')));
|
|
156
|
+
if (!hasLLMApiKey(defaults_1.LLM_MODEL_SECONDARY)) {
|
|
157
|
+
return {
|
|
158
|
+
content: [{
|
|
159
|
+
type: 'text',
|
|
160
|
+
text: JSON.stringify({
|
|
161
|
+
error: 'LLM API key not configured',
|
|
162
|
+
description: null,
|
|
163
|
+
}),
|
|
164
|
+
}],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const systemPrompt = args.context
|
|
168
|
+
? `${vision_prompts_1.DESCRIBE_IMAGE_PROMPT}\n\nContext: ${args.context}`
|
|
169
|
+
: vision_prompts_1.DESCRIBE_IMAGE_PROMPT;
|
|
170
|
+
const response = await (0, llm_1.callLLM)({
|
|
171
|
+
model: defaults_1.LLM_MODEL_SECONDARY,
|
|
172
|
+
messages: [
|
|
173
|
+
{ role: 'system', content: systemPrompt },
|
|
174
|
+
{
|
|
175
|
+
role: 'user',
|
|
176
|
+
content: [await resolveImageContent(args.image)],
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
max_tokens: defaults_1.LLM_MAX_TOKENS_VISION,
|
|
180
|
+
temperature: 0,
|
|
181
|
+
});
|
|
182
|
+
const raw = response.content || '';
|
|
183
|
+
try {
|
|
184
|
+
const cleaned = raw.replace(/^```json\n?|\n?```$/g, '').trim();
|
|
185
|
+
const parsed = JSON.parse(cleaned);
|
|
186
|
+
return {
|
|
187
|
+
content: [{
|
|
188
|
+
type: 'text',
|
|
189
|
+
text: JSON.stringify({ description: parsed.description || raw }),
|
|
190
|
+
}],
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return {
|
|
195
|
+
content: [{
|
|
196
|
+
type: 'text',
|
|
197
|
+
text: JSON.stringify({ description: raw }),
|
|
198
|
+
}],
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Create the Vision MCP server.
|
|
205
|
+
*
|
|
206
|
+
* Returns a fresh McpServer instance each time. The MCP SDK only allows
|
|
207
|
+
* one transport per server, so each consumer needs its own instance.
|
|
208
|
+
*/
|
|
209
|
+
async function createVisionServer(options) {
|
|
210
|
+
const name = options?.name || 'long-tail-vision';
|
|
211
|
+
const instance = new mcp_js_1.McpServer({ name, version: '1.0.0' });
|
|
212
|
+
registerTools(instance);
|
|
213
|
+
logger_1.loggerRegistry.info(`[lt-mcp:vision] ${name} ready (2 tools registered)`);
|
|
214
|
+
return instance;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Stop a Vision MCP server instance.
|
|
218
|
+
*/
|
|
219
|
+
async function stopVisionServer() {
|
|
220
|
+
logger_1.loggerRegistry.info('[lt-mcp:vision] stopped');
|
|
221
|
+
}
|
|
@@ -38,7 +38,7 @@ exports.getWorkflowCompilerServer = getWorkflowCompilerServer;
|
|
|
38
38
|
exports.stopWorkflowCompilerServer = stopWorkflowCompilerServer;
|
|
39
39
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
40
40
|
const zod_1 = require("zod");
|
|
41
|
-
const logger_1 = require("../../
|
|
41
|
+
const logger_1 = require("../../lib/logger");
|
|
42
42
|
const yamlGenerator = __importStar(require("../../services/yaml-workflow/generator"));
|
|
43
43
|
const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
|
|
44
44
|
const yamlDeployer = __importStar(require("../../services/yaml-workflow/deployer"));
|
|
@@ -39,7 +39,7 @@ exports.stopWorkflowServer = stopWorkflowServer;
|
|
|
39
39
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
40
40
|
const zod_1 = require("zod");
|
|
41
41
|
const defaults_1 = require("../../modules/defaults");
|
|
42
|
-
const logger_1 = require("../../
|
|
42
|
+
const logger_1 = require("../../lib/logger");
|
|
43
43
|
const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
|
|
44
44
|
const yamlDeployer = __importStar(require("../../services/yaml-workflow/deployer"));
|
|
45
45
|
let server = null;
|