@hotmeshio/long-tail 0.1.7 → 0.1.9
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 +3 -1
- package/build/api/auth.d.ts +11 -0
- package/build/api/auth.js +11 -0
- package/build/api/bot-accounts.d.ts +87 -0
- package/build/api/bot-accounts.js +87 -0
- package/build/api/controlplane.d.ts +48 -0
- package/build/api/controlplane.js +48 -0
- package/build/api/dba.d.ts +27 -0
- package/build/api/dba.js +27 -0
- package/build/api/escalations.d.ts +201 -0
- package/build/api/escalations.js +276 -5
- package/build/api/exports.d.ts +58 -0
- package/build/api/exports.js +58 -0
- package/build/api/insight.d.ts +57 -0
- package/build/api/insight.js +57 -0
- package/build/api/maintenance.d.ts +15 -0
- package/build/api/maintenance.js +15 -0
- package/build/api/mcp-runs.d.ts +27 -0
- package/build/api/mcp-runs.js +27 -0
- package/build/api/mcp.d.ts +108 -0
- package/build/api/mcp.js +108 -0
- package/build/api/namespaces.d.ts +13 -0
- package/build/api/namespaces.js +13 -0
- package/build/api/roles.d.ts +63 -0
- package/build/api/roles.js +63 -5
- package/build/api/settings.d.ts +8 -0
- package/build/api/settings.js +8 -0
- package/build/api/tasks.d.ts +68 -1
- package/build/api/tasks.js +92 -0
- package/build/api/users.d.ts +71 -0
- package/build/api/users.js +71 -5
- package/build/api/workflow-sets.d.ts +51 -0
- package/build/api/workflow-sets.js +51 -0
- package/build/api/workflows.d.ts +110 -0
- package/build/api/workflows.js +117 -1
- package/build/api/yaml-workflows.d.ts +195 -0
- package/build/api/yaml-workflows.js +195 -0
- package/build/examples/seed.js +18 -0
- package/build/examples/types/envelopes.d.ts +35 -0
- package/build/examples/types/index.d.ts +1 -1
- package/build/examples/workers.js +10 -0
- package/build/examples/workflows/assembly-line/activities.d.ts +28 -0
- package/build/examples/workflows/assembly-line/activities.js +53 -0
- package/build/examples/workflows/assembly-line/index.d.ts +17 -0
- package/build/examples/workflows/assembly-line/index.js +60 -0
- package/build/examples/workflows/assembly-line/iterator.d.ts +12 -0
- package/build/examples/workflows/assembly-line/iterator.js +54 -0
- package/build/examples/workflows/assembly-line/reverter.d.ts +18 -0
- package/build/examples/workflows/assembly-line/reverter.js +89 -0
- package/build/examples/workflows/assembly-line/types.d.ts +25 -0
- package/build/examples/workflows/assembly-line/types.js +8 -0
- package/build/examples/workflows/assembly-line/worker.d.ts +13 -0
- package/build/examples/workflows/assembly-line/worker.js +81 -0
- package/build/examples/workflows/basic-signal/activities.d.ts +17 -0
- package/build/examples/workflows/basic-signal/activities.js +18 -0
- package/build/examples/workflows/basic-signal/index.d.ts +17 -0
- package/build/examples/workflows/basic-signal/index.js +116 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +4 -1
- package/build/lib/db/schemas/002_seed.sql +9 -1
- package/build/modules/ltconfig.d.ts +8 -1
- package/build/modules/ltconfig.js +12 -2
- package/build/routes/escalations/list.js +22 -0
- package/build/routes/tasks.js +23 -0
- package/build/routes/workflows/invocation.js +16 -10
- package/build/sdk/index.d.ts +26 -0
- package/build/sdk/index.js +2 -0
- package/build/services/interceptor/index.js +9 -3
- package/build/services/orchestrator/condition.d.ts +34 -0
- package/build/services/orchestrator/condition.js +92 -0
- package/build/services/workflow-invocation.d.ts +16 -3
- package/build/services/workflow-invocation.js +15 -7
- package/build/start/index.d.ts +24 -0
- package/build/start/index.js +24 -0
- package/build/start/workers.d.ts +6 -8
- package/build/start/workers.js +25 -2
- package/build/system/mcp-servers/admin/workflows.js +5 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/envelope.d.ts +7 -0
- package/build/types/sdk.d.ts +2 -0
- package/build/types/startup.d.ts +29 -2
- package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js → AdminDashboard-DUrSBQOl.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js.map → AdminDashboard-DUrSBQOl.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js → AvailableEscalationsPage-Dbd1qUK_.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js.map → AvailableEscalationsPage-Dbd1qUK_.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js → BotPicker-Cg5iNEkm.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js.map → BotPicker-Cg5iNEkm.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js → CollapsibleSection-Kd9UIyeU.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js.map → CollapsibleSection-Kd9UIyeU.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js → ConfirmDeleteModal-DZMgmlof.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js.map → ConfirmDeleteModal-DZMgmlof.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-AqoZayBG.js → CopyableId-cPFTRm8q.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-AqoZayBG.js.map → CopyableId-cPFTRm8q.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js → CredentialsPage-DJablIbs.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js.map → CredentialsPage-DJablIbs.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js → CustomDurationPicker-NgIP6YDW.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js.map → CustomDurationPicker-NgIP6YDW.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-DKvSKoVG.js → DataTable-CTRhTAfT.js} +2 -2
- package/dashboard/dist/assets/{DataTable-DKvSKoVG.js.map → DataTable-CTRhTAfT.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js → ElapsedCell-HcSJ_MMs.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js.map → ElapsedCell-HcSJ_MMs.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-X0fIzYID.js → EmptyState-joNbd4gg.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-X0fIzYID.js.map → EmptyState-joNbd4gg.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js → EscalationsOverview-DpXDnQux.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js.map → EscalationsOverview-DpXDnQux.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js → EventTable-CYem3v8n.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js.map → EventTable-CYem3v8n.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js → FilterBar-BiO8SOzc.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js.map → FilterBar-BiO8SOzc.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js → ListToolbar-6yRDh2e9.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js.map → ListToolbar-6yRDh2e9.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js → McpOverview-CUgSxkQe.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js.map → McpOverview-CUgSxkQe.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js → McpQueryDetailPage-BWbinTM_.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js.map → McpQueryDetailPage-BWbinTM_.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js → McpQueryPage-lV6kfDG5.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js.map → McpQueryPage-lV6kfDG5.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js → McpRunDetailPage-D6gaxH3_.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js.map → McpRunDetailPage-D6gaxH3_.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js → McpRunsPage-DKvTklh9.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js.map → McpRunsPage-DKvTklh9.js.map} +1 -1
- package/dashboard/dist/assets/{Modal-_2AbWxJT.js → Modal-BuTvD0pz.js} +2 -2
- package/dashboard/dist/assets/{Modal-_2AbWxJT.js.map → Modal-BuTvD0pz.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js → OperatorDashboard-C9SSV96T.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js.map → OperatorDashboard-C9SSV96T.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js → PageHeader-BcTVF9ul.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js.map → PageHeader-BcTVF9ul.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js → PageHeaderWithStats-BI7JG5x6.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js.map → PageHeaderWithStats-BI7JG5x6.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js → PriorityBadge-DqVaOU65.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js.map → PriorityBadge-DqVaOU65.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js → ProcessDetailPage-hFMhf9qa.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js.map → ProcessDetailPage-hFMhf9qa.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js → ProcessesListPage-ByVoBCQ3.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js.map → ProcessesListPage-ByVoBCQ3.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-CcAqEaSt.js → RolePill-D9ZIkYiu.js} +2 -2
- package/dashboard/dist/assets/{RolePill-CcAqEaSt.js.map → RolePill-D9ZIkYiu.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js → RolesPage-SMedMuqa.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js.map → RolesPage-SMedMuqa.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js → RowActions-yDhwwDbU.js} +2 -2
- package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js.map → RowActions-yDhwwDbU.js.map} +1 -1
- package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js → StatCard-BrBnQFxh.js} +2 -2
- package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js.map → StatCard-BrBnQFxh.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js → StatusBadge-xgb-lZku.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js.map → StatusBadge-xgb-lZku.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js → StepIndicator-B9ps2SvM.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js.map → StepIndicator-B9ps2SvM.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js → StickyPagination-DTIjBKN3.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js.map → StickyPagination-DTIjBKN3.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js → SwimlaneTimeline-RK4Yu66z.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js.map → SwimlaneTimeline-RK4Yu66z.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-BLtf86Ly.js → TagInput-CdNUuqk4.js} +2 -2
- package/dashboard/dist/assets/{TagInput-BLtf86Ly.js.map → TagInput-CdNUuqk4.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js → TaskDetailPage-C-nzaNea.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js.map → TaskDetailPage-C-nzaNea.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js → TaskQueuePill-Lvr2-NzS.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js.map → TaskQueuePill-Lvr2-NzS.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js → TasksListPage-DSUmD84y.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js.map → TasksListPage-DSUmD84y.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js → TimeAgo-BZdLdrIh.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js.map → TimeAgo-BZdLdrIh.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-DRX724uU.js → TimestampCell-QX_0i5FK.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-DRX724uU.js.map → TimestampCell-QX_0i5FK.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Ca8FA469.js → UserName-DyZMXcBm.js} +2 -2
- package/dashboard/dist/assets/{UserName-Ca8FA469.js.map → UserName-DyZMXcBm.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js → WorkflowExecutionPage-DjVxfZaF.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js.map → WorkflowExecutionPage-DjVxfZaF.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DZjuiFZ0.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DZjuiFZ0.js.map +1 -0
- package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js → WorkflowsOverview-CLnLRpOu.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js.map → WorkflowsOverview-CLnLRpOu.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js → YamlWorkflowsPage-VjdhnLmO.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js.map → YamlWorkflowsPage-VjdhnLmO.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DZEXcgiJ.js → bots-DIM6lBoY.js} +2 -2
- package/dashboard/dist/assets/{bots-DZEXcgiJ.js.map → bots-DIM6lBoY.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-Cw48lNaF.js → escalation-JOTuOqjq.js} +2 -2
- package/dashboard/dist/assets/{escalation-Cw48lNaF.js.map → escalation-JOTuOqjq.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js → escalation-columns-Cyg58nkg.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js.map → escalation-columns-Cyg58nkg.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-fk_qr729.js → helpers-B1BDxBZd.js} +2 -2
- package/dashboard/dist/assets/{helpers-fk_qr729.js.map → helpers-B1BDxBZd.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-Cuu3xKfr.js → helpers-BCix9c_m.js} +2 -2
- package/dashboard/dist/assets/{helpers-Cuu3xKfr.js.map → helpers-BCix9c_m.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dj-z-x8M.js → index-BUK3qR-1.js} +2 -2
- package/dashboard/dist/assets/{index-Dj-z-x8M.js.map → index-BUK3qR-1.js.map} +1 -1
- package/dashboard/dist/assets/{index-BwN3KP_L.js → index-BYZX9tOb.js} +8 -8
- package/dashboard/dist/assets/index-BYZX9tOb.js.map +1 -0
- package/dashboard/dist/assets/{index-BIG3KooI.js → index-BcR6PfpY.js} +2 -2
- package/dashboard/dist/assets/{index-BIG3KooI.js.map → index-BcR6PfpY.js.map} +1 -1
- package/dashboard/dist/assets/index-BizfauqT.js +6 -0
- package/dashboard/dist/assets/index-BizfauqT.js.map +1 -0
- package/dashboard/dist/assets/{index-aRvL-dXp.js → index-Cf60K3x9.js} +2 -2
- package/dashboard/dist/assets/{index-aRvL-dXp.js.map → index-Cf60K3x9.js.map} +1 -1
- package/dashboard/dist/assets/{index-b03HlbnH.js → index-Cg5nfiYX.js} +2 -2
- package/dashboard/dist/assets/{index-b03HlbnH.js.map → index-Cg5nfiYX.js.map} +1 -1
- package/dashboard/dist/assets/index-D1wVX50Z.js +15 -0
- package/dashboard/dist/assets/index-D1wVX50Z.js.map +1 -0
- package/dashboard/dist/assets/{index-DwRytW9O.js → index-DDYFpi4l.js} +4 -4
- package/dashboard/dist/assets/index-DDYFpi4l.js.map +1 -0
- package/dashboard/dist/assets/{index-B98ipWxE.js → index-Di12t56M.js} +2 -2
- package/dashboard/dist/assets/{index-B98ipWxE.js.map → index-Di12t56M.js.map} +1 -1
- package/dashboard/dist/assets/{index-CORHB0WC.js → index-Ds0JoXS2.js} +2 -2
- package/dashboard/dist/assets/{index-CORHB0WC.js.map → index-Ds0JoXS2.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BZoFryNc.js → mcp-B_xbczAt.js} +2 -2
- package/dashboard/dist/assets/{mcp-BZoFryNc.js.map → mcp-B_xbczAt.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js → mcp-query-B8-P_QoG.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js.map → mcp-query-B8-P_QoG.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js → mcp-runs-CWeZinoF.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js.map → mcp-runs-CWeZinoF.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-BwnZI4_A.js → namespaces-C3WtdO_9.js} +2 -2
- package/dashboard/dist/assets/{namespaces-BwnZI4_A.js.map → namespaces-C3WtdO_9.js.map} +1 -1
- package/dashboard/dist/assets/{roles-Bgn1K8zU.js → roles-BDAsPpZG.js} +2 -2
- package/dashboard/dist/assets/{roles-Bgn1K8zU.js.map → roles-BDAsPpZG.js.map} +1 -1
- package/dashboard/dist/assets/{settings-CizYiutL.js → settings-Ife_UwAp.js} +2 -2
- package/dashboard/dist/assets/{settings-CizYiutL.js.map → settings-Ife_UwAp.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Bmte_hc4.js → tasks-BquNDHDI.js} +2 -2
- package/dashboard/dist/assets/{tasks-Bmte_hc4.js.map → tasks-BquNDHDI.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js → useEventHooks-anv_B2Yy.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js.map → useEventHooks-anv_B2Yy.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js → useYamlActivityEvents-DN-PTgVx.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js.map → useYamlActivityEvents-DN-PTgVx.js.map} +1 -1
- package/dashboard/dist/assets/{users-NSDgTt-z.js → users-CFcxB4v6.js} +2 -2
- package/dashboard/dist/assets/{users-NSDgTt-z.js.map → users-CFcxB4v6.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-D1DdudfH.js → vendor-icons-T4r2DSPD.js} +2 -2
- package/dashboard/dist/assets/{vendor-icons-D1DdudfH.js.map → vendor-icons-T4r2DSPD.js.map} +1 -1
- package/dashboard/dist/assets/{workflows-k0XRdGXx.js → workflows-CeRci9z3.js} +2 -2
- package/dashboard/dist/assets/{workflows-k0XRdGXx.js.map → workflows-CeRci9z3.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js → yaml-workflows-DLwd2BOX.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js.map → yaml-workflows-DLwd2BOX.js.map} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/docs/api/{escalations.md → http/escalations.md} +99 -0
- package/docs/api/{tasks.md → http/tasks.md} +47 -0
- package/docs/api/sdk/auth.md +27 -0
- package/docs/api/sdk/bot-accounts.md +243 -0
- package/docs/api/sdk/controlplane.md +103 -0
- package/docs/api/sdk/dba.md +52 -0
- package/docs/api/sdk/escalations.md +511 -0
- package/docs/api/sdk/events.md +68 -0
- package/docs/api/sdk/exports.md +124 -0
- package/docs/api/sdk/insight.md +112 -0
- package/docs/api/sdk/maintenance.md +54 -0
- package/docs/api/sdk/mcp-runs.md +71 -0
- package/docs/api/sdk/mcp.md +250 -0
- package/docs/api/sdk/namespaces.md +43 -0
- package/docs/api/sdk/roles.md +183 -0
- package/docs/api/sdk/settings.md +24 -0
- package/docs/api/sdk/tasks.md +159 -0
- package/docs/api/sdk/users.md +196 -0
- package/docs/api/sdk/workflow-sets.md +135 -0
- package/docs/api/sdk/workflows.md +271 -0
- package/docs/api/sdk/yaml-workflows.md +408 -0
- package/package.json +1 -1
- package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-Drl3juz9.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-Drl3juz9.js.map +0 -1
- package/dashboard/dist/assets/index-BwN3KP_L.js.map +0 -1
- package/dashboard/dist/assets/index-Bxe8h1x4.js +0 -17
- package/dashboard/dist/assets/index-Bxe8h1x4.js.map +0 -1
- package/dashboard/dist/assets/index-CNI7k7oB.js +0 -6
- package/dashboard/dist/assets/index-CNI7k7oB.js.map +0 -1
- package/dashboard/dist/assets/index-DwRytW9O.js.map +0 -1
- package/docs/epic-integration.md +0 -224
- package/docs/workflow-builder.md +0 -371
- /package/docs/api/{dba.md → http/dba.md} +0 -0
- /package/docs/api/{exports.md → http/exports.md} +0 -0
- /package/docs/api/{maintenance.md → http/maintenance.md} +0 -0
- /package/docs/api/{mcp-runs.md → http/mcp-runs.md} +0 -0
- /package/docs/api/{mcp-servers.md → http/mcp-servers.md} +0 -0
- /package/docs/api/{namespaces.md → http/namespaces.md} +0 -0
- /package/docs/api/{roles.md → http/roles.md} +0 -0
- /package/docs/api/{service-accounts.md → http/service-accounts.md} +0 -0
- /package/docs/api/{settings.md → http/settings.md} +0 -0
- /package/docs/api/{users.md → http/users.md} +0 -0
- /package/docs/api/{workflows.md → http/workflows.md} +0 -0
- /package/docs/api/{yaml-workflows.md → http/yaml-workflows.md} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# lt.insight
|
|
2
|
+
|
|
3
|
+
LLM-powered natural-language queries and workflow generation against connected MCP servers.
|
|
4
|
+
|
|
5
|
+
## mcpQuery
|
|
6
|
+
|
|
7
|
+
Execute a natural-language query against connected MCP servers.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.insight.mcpQuery({
|
|
11
|
+
prompt: 'Find all open issues labeled bug',
|
|
12
|
+
tags: ['github'],
|
|
13
|
+
wait: true,
|
|
14
|
+
});
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Parameters:**
|
|
18
|
+
|
|
19
|
+
| Field | Type | Required | Description |
|
|
20
|
+
|-------|------|----------|-------------|
|
|
21
|
+
| `prompt` | `string` | Yes | The natural-language query to execute |
|
|
22
|
+
| `tags` | `string[]` | No | Tags to scope which MCP servers are queried |
|
|
23
|
+
| `wait` | `boolean` | No | When true, block until the query completes; otherwise return immediately |
|
|
24
|
+
| `direct` | `boolean` | No | When true, bypass workflow orchestration and query the LLM directly |
|
|
25
|
+
| `context` | `any` | No | Additional context forwarded to the LLM |
|
|
26
|
+
|
|
27
|
+
**Returns:** `LTApiResult<any>`
|
|
28
|
+
|
|
29
|
+
**Auth:** Optional (userId forwarded to the query pipeline when provided)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## buildWorkflow
|
|
34
|
+
|
|
35
|
+
Generate a workflow definition from a natural-language description.
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
const result = await lt.insight.buildWorkflow({
|
|
39
|
+
prompt: 'Screenshot a URL, analyze the image, and store results in a spreadsheet',
|
|
40
|
+
tags: ['browser', 'vision', 'sheets'],
|
|
41
|
+
wait: true,
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Parameters:**
|
|
46
|
+
|
|
47
|
+
| Field | Type | Required | Description |
|
|
48
|
+
|-------|------|----------|-------------|
|
|
49
|
+
| `prompt` | `string` | Yes | Natural-language description of the desired workflow |
|
|
50
|
+
| `tags` | `string[]` | No | Tags to scope available MCP tools |
|
|
51
|
+
| `wait` | `boolean` | No | When true, block until generation completes |
|
|
52
|
+
| `feedback` | `string` | No | Refinement feedback on a previous generation |
|
|
53
|
+
| `prior_yaml` | `string` | No | YAML from a previous generation to refine |
|
|
54
|
+
| `answers` | `any` | No | Answers to clarifying questions from a prior round |
|
|
55
|
+
| `prior_questions` | `any` | No | Questions from a prior round for context |
|
|
56
|
+
|
|
57
|
+
**Returns:** `LTApiResult<any>`
|
|
58
|
+
|
|
59
|
+
**Auth:** Optional (userId forwarded to the builder when provided)
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## refineWorkflow
|
|
64
|
+
|
|
65
|
+
Refine an existing workflow definition using feedback.
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
const result = await lt.insight.refineWorkflow({
|
|
69
|
+
prompt: 'Screenshot and analyze a URL',
|
|
70
|
+
prior_yaml: existingYaml,
|
|
71
|
+
feedback: 'Add a retry step if the screenshot fails',
|
|
72
|
+
wait: true,
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Parameters:**
|
|
77
|
+
|
|
78
|
+
| Field | Type | Required | Description |
|
|
79
|
+
|-------|------|----------|-------------|
|
|
80
|
+
| `prompt` | `string` | Yes | Original natural-language description |
|
|
81
|
+
| `prior_yaml` | `string` | Yes | The YAML workflow to refine |
|
|
82
|
+
| `feedback` | `string` | Yes | User feedback describing desired changes |
|
|
83
|
+
| `tags` | `string[]` | No | Tags to scope available MCP tools |
|
|
84
|
+
| `wait` | `boolean` | No | When true, block until refinement completes |
|
|
85
|
+
|
|
86
|
+
**Returns:** `LTApiResult<any>`
|
|
87
|
+
|
|
88
|
+
**Auth:** Optional (userId forwarded to the builder when provided)
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## describeWorkflow
|
|
93
|
+
|
|
94
|
+
Generate a human-readable description and tags for a workflow.
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
const result = await lt.insight.describeWorkflow({
|
|
98
|
+
prompt: 'Take a screenshot of a URL and analyze it with GPT-4 Vision',
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Parameters:**
|
|
103
|
+
|
|
104
|
+
| Field | Type | Required | Description |
|
|
105
|
+
|-------|------|----------|-------------|
|
|
106
|
+
| `prompt` | `string` | Yes | The workflow prompt or content to describe |
|
|
107
|
+
| `result_title` | `string` | No | Title from the workflow result for additional context |
|
|
108
|
+
| `result_summary` | `string` | No | Summary from the workflow result for additional context |
|
|
109
|
+
|
|
110
|
+
**Returns:** `LTApiResult<{ description: string, tags: string[] }>`
|
|
111
|
+
|
|
112
|
+
**Auth:** Not required
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# lt.maintenance
|
|
2
|
+
|
|
3
|
+
Configure and manage the automated maintenance cron for data pruning.
|
|
4
|
+
|
|
5
|
+
## getConfig
|
|
6
|
+
|
|
7
|
+
Return the current maintenance cron configuration and whether it is active.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = lt.maintenance.getConfig();
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:** None
|
|
14
|
+
|
|
15
|
+
**Returns:** `LTApiResult<{ config: LTMaintenanceConfig | null, active: boolean }>`
|
|
16
|
+
|
|
17
|
+
**Auth:** Not required
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## updateConfig
|
|
22
|
+
|
|
23
|
+
Replace the maintenance configuration and restart the cron. The schedule begins executing immediately.
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
const result = await lt.maintenance.updateConfig({
|
|
27
|
+
schedule: '0 3 * * *',
|
|
28
|
+
rules: [
|
|
29
|
+
{ target: 'streams', action: 'delete', olderThan: '7 days' },
|
|
30
|
+
{ target: 'jobs', action: 'prune', olderThan: '90 days', hasEntity: true },
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Parameters:**
|
|
36
|
+
|
|
37
|
+
| Field | Type | Required | Description |
|
|
38
|
+
|-------|------|----------|-------------|
|
|
39
|
+
| `schedule` | `string` | Yes | Cron expression (e.g. `'0 3 * * *'`) |
|
|
40
|
+
| `rules` | `LTMaintenanceRule[]` | Yes | Ordered list of maintenance rules |
|
|
41
|
+
|
|
42
|
+
Each `LTMaintenanceRule` has:
|
|
43
|
+
|
|
44
|
+
| Field | Type | Required | Description |
|
|
45
|
+
|-------|------|----------|-------------|
|
|
46
|
+
| `target` | `'streams' \| 'jobs'` | Yes | Which resource to target |
|
|
47
|
+
| `action` | `'delete' \| 'prune'` | Yes | `delete` = hard-delete rows; `prune` = strip execution artifacts |
|
|
48
|
+
| `olderThan` | `string` | Yes | Retention window, e.g. `'7 days'`, `'90 days'` |
|
|
49
|
+
| `hasEntity` | `boolean` | No | When target is `jobs`: true = entity jobs, false = transient |
|
|
50
|
+
| `pruned` | `boolean` | No | When true, only target jobs already pruned |
|
|
51
|
+
|
|
52
|
+
**Returns:** `LTApiResult<{ config: LTMaintenanceConfig, restarted: true }>`
|
|
53
|
+
|
|
54
|
+
**Auth:** Not required
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# lt.mcpRuns
|
|
2
|
+
|
|
3
|
+
Query MCP workflow execution history: entities, jobs, and full execution timelines.
|
|
4
|
+
|
|
5
|
+
## listEntities
|
|
6
|
+
|
|
7
|
+
List distinct entity types for an app (HotMesh namespace).
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.mcpRuns.listEntities({ app_id: 'durable' });
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:**
|
|
14
|
+
|
|
15
|
+
| Field | Type | Required | Description |
|
|
16
|
+
|-------|------|----------|-------------|
|
|
17
|
+
| `app_id` | `string` | Yes | HotMesh app ID (e.g. `"durable"`) |
|
|
18
|
+
|
|
19
|
+
**Returns:** `LTApiResult<{ entities: string[] }>`
|
|
20
|
+
|
|
21
|
+
**Auth:** Not required
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## listJobs
|
|
26
|
+
|
|
27
|
+
List jobs (workflow executions) for an app, with optional filters.
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
const result = await lt.mcpRuns.listJobs({
|
|
31
|
+
app_id: 'durable',
|
|
32
|
+
entity: 'mcp_query',
|
|
33
|
+
limit: 25,
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Parameters:**
|
|
38
|
+
|
|
39
|
+
| Field | Type | Required | Description |
|
|
40
|
+
|-------|------|----------|-------------|
|
|
41
|
+
| `app_id` | `string` | Yes | HotMesh app ID |
|
|
42
|
+
| `limit` | `number` | No | Max results to return |
|
|
43
|
+
| `offset` | `number` | No | Pagination offset |
|
|
44
|
+
| `entity` | `string` | No | Filter by entity type |
|
|
45
|
+
| `search` | `string` | No | Full-text search |
|
|
46
|
+
| `status` | `string` | No | Filter by job status |
|
|
47
|
+
|
|
48
|
+
**Returns:** `LTApiResult<{ jobs: any[], total: number }>`
|
|
49
|
+
|
|
50
|
+
**Auth:** Not required
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## getExecution
|
|
55
|
+
|
|
56
|
+
Get the full execution history for a single job.
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const result = await lt.mcpRuns.getExecution({ jobId: 'job-123', app_id: 'durable' });
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Parameters:**
|
|
63
|
+
|
|
64
|
+
| Field | Type | Required | Description |
|
|
65
|
+
|-------|------|----------|-------------|
|
|
66
|
+
| `jobId` | `string` | Yes | HotMesh job (workflow) ID |
|
|
67
|
+
| `app_id` | `string` | Yes | HotMesh app ID |
|
|
68
|
+
|
|
69
|
+
**Returns:** `LTApiResult<ExecutionTimeline>`
|
|
70
|
+
|
|
71
|
+
**Auth:** Not required
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# lt.mcp
|
|
2
|
+
|
|
3
|
+
Manage MCP (Model Context Protocol) server registrations, connections, credentials, and tool invocations.
|
|
4
|
+
|
|
5
|
+
## listServers
|
|
6
|
+
|
|
7
|
+
List registered MCP servers with optional filtering and pagination.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.mcp.listServers({ status: 'active', limit: 10 });
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:**
|
|
14
|
+
|
|
15
|
+
| Field | Type | Required | Description |
|
|
16
|
+
|-------|------|----------|-------------|
|
|
17
|
+
| `status` | `string` | No | Filter by server status (e.g. `'active'`, `'inactive'`) |
|
|
18
|
+
| `auto_connect` | `boolean` | No | Filter by auto-connect setting |
|
|
19
|
+
| `search` | `string` | No | Free-text search across server names and descriptions |
|
|
20
|
+
| `tags` | `string[]` | No | Filter to servers matching any of these tags |
|
|
21
|
+
| `limit` | `number` | No | Maximum number of results to return |
|
|
22
|
+
| `offset` | `number` | No | Pagination offset |
|
|
23
|
+
|
|
24
|
+
**Returns:** `LTApiResult<{ ... }>`
|
|
25
|
+
|
|
26
|
+
**Auth:** Not required
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## createServer
|
|
31
|
+
|
|
32
|
+
Register a new MCP server.
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
const result = await lt.mcp.createServer({
|
|
36
|
+
name: 'my-server',
|
|
37
|
+
transport_type: 'sse',
|
|
38
|
+
transport_config: { url: 'https://mcp.example.com/sse' },
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Parameters:**
|
|
43
|
+
|
|
44
|
+
| Field | Type | Required | Description |
|
|
45
|
+
|-------|------|----------|-------------|
|
|
46
|
+
| `name` | `string` | Yes | Unique display name for the server |
|
|
47
|
+
| `description` | `string` | No | Human-readable description |
|
|
48
|
+
| `transport_type` | `string` | Yes | Transport protocol (e.g. `'sse'`, `'stdio'`) |
|
|
49
|
+
| `transport_config` | `Record<string, any>` | Yes | Transport-specific connection settings |
|
|
50
|
+
| `auto_connect` | `boolean` | No | Whether to connect automatically on startup |
|
|
51
|
+
| `metadata` | `Record<string, any>` | No | Arbitrary key-value metadata |
|
|
52
|
+
| `tags` | `string[]` | No | Tags for categorization and filtering |
|
|
53
|
+
| `compile_hints` | `any` | No | Hints used during tool compilation |
|
|
54
|
+
| `credential_providers` | `string[]` | No | OAuth/credential provider identifiers required by this server |
|
|
55
|
+
|
|
56
|
+
**Returns:** `LTApiResult<McpServer>`
|
|
57
|
+
|
|
58
|
+
**Auth:** Not required
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## testConnection
|
|
63
|
+
|
|
64
|
+
Test connectivity to an MCP server without persisting it.
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
const result = await lt.mcp.testConnection({
|
|
68
|
+
transport_type: 'sse',
|
|
69
|
+
transport_config: { url: 'https://mcp.example.com/sse' },
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Parameters:**
|
|
74
|
+
|
|
75
|
+
| Field | Type | Required | Description |
|
|
76
|
+
|-------|------|----------|-------------|
|
|
77
|
+
| `transport_type` | `string` | Yes | Transport protocol to test |
|
|
78
|
+
| `transport_config` | `Record<string, any>` | Yes | Transport-specific connection settings |
|
|
79
|
+
|
|
80
|
+
**Returns:** `LTApiResult<{ success: boolean, error?: string, tools: any[] }>`
|
|
81
|
+
|
|
82
|
+
**Auth:** Not required
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## getServer
|
|
87
|
+
|
|
88
|
+
Retrieve a single MCP server by ID.
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
const result = await lt.mcp.getServer({ id: 'server-id' });
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Parameters:**
|
|
95
|
+
|
|
96
|
+
| Field | Type | Required | Description |
|
|
97
|
+
|-------|------|----------|-------------|
|
|
98
|
+
| `id` | `string` | Yes | The MCP server identifier |
|
|
99
|
+
|
|
100
|
+
**Returns:** `LTApiResult<McpServer>`
|
|
101
|
+
|
|
102
|
+
**Auth:** Not required
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## updateServer
|
|
107
|
+
|
|
108
|
+
Update fields on an existing MCP server.
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
const result = await lt.mcp.updateServer({ id: 'server-id', description: 'Updated description' });
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Parameters:**
|
|
115
|
+
|
|
116
|
+
| Field | Type | Required | Description |
|
|
117
|
+
|-------|------|----------|-------------|
|
|
118
|
+
| `id` | `string` | Yes | The MCP server identifier |
|
|
119
|
+
| `[key]` | `any` | No | Any mutable server field (name, description, transport_config, etc.) |
|
|
120
|
+
|
|
121
|
+
**Returns:** `LTApiResult<McpServer>`
|
|
122
|
+
|
|
123
|
+
**Auth:** Not required
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## deleteServer
|
|
128
|
+
|
|
129
|
+
Delete an MCP server by ID.
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
const result = await lt.mcp.deleteServer({ id: 'server-id' });
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Parameters:**
|
|
136
|
+
|
|
137
|
+
| Field | Type | Required | Description |
|
|
138
|
+
|-------|------|----------|-------------|
|
|
139
|
+
| `id` | `string` | Yes | The MCP server identifier |
|
|
140
|
+
|
|
141
|
+
**Returns:** `LTApiResult<{ deleted: true }>`
|
|
142
|
+
|
|
143
|
+
**Auth:** Not required
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## connectServer
|
|
148
|
+
|
|
149
|
+
Establish a live connection to a registered MCP server.
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
const result = await lt.mcp.connectServer({ id: 'server-id' });
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Parameters:**
|
|
156
|
+
|
|
157
|
+
| Field | Type | Required | Description |
|
|
158
|
+
|-------|------|----------|-------------|
|
|
159
|
+
| `id` | `string` | Yes | The MCP server identifier to connect |
|
|
160
|
+
|
|
161
|
+
**Returns:** `LTApiResult<{ connected: true, serverId: string }>`
|
|
162
|
+
|
|
163
|
+
**Auth:** Not required
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## disconnectServer
|
|
168
|
+
|
|
169
|
+
Disconnect a live MCP server connection.
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
const result = await lt.mcp.disconnectServer({ id: 'server-id' });
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Parameters:**
|
|
176
|
+
|
|
177
|
+
| Field | Type | Required | Description |
|
|
178
|
+
|-------|------|----------|-------------|
|
|
179
|
+
| `id` | `string` | Yes | The MCP server identifier to disconnect |
|
|
180
|
+
|
|
181
|
+
**Returns:** `LTApiResult<{ disconnected: true, serverId: string }>`
|
|
182
|
+
|
|
183
|
+
**Auth:** Not required
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## getCredentialStatus
|
|
188
|
+
|
|
189
|
+
Check which credential providers are registered vs missing for an MCP server.
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
const result = await lt.mcp.getCredentialStatus({ id: 'server-id' });
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Parameters:**
|
|
196
|
+
|
|
197
|
+
| Field | Type | Required | Description |
|
|
198
|
+
|-------|------|----------|-------------|
|
|
199
|
+
| `id` | `string` | Yes | The MCP server identifier |
|
|
200
|
+
|
|
201
|
+
**Returns:** `LTApiResult<{ required: string[], registered: string[], missing: string[] }>`
|
|
202
|
+
|
|
203
|
+
**Auth:** Required (credentials resolved against the authenticated user)
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## listTools
|
|
208
|
+
|
|
209
|
+
List all tools exposed by a connected MCP server.
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
const result = await lt.mcp.listTools({ id: 'server-id' });
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Parameters:**
|
|
216
|
+
|
|
217
|
+
| Field | Type | Required | Description |
|
|
218
|
+
|-------|------|----------|-------------|
|
|
219
|
+
| `id` | `string` | Yes | The MCP server identifier |
|
|
220
|
+
|
|
221
|
+
**Returns:** `LTApiResult<{ tools: any[] }>`
|
|
222
|
+
|
|
223
|
+
**Auth:** Not required
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## callTool
|
|
228
|
+
|
|
229
|
+
Invoke a specific tool on a connected MCP server.
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
const result = await lt.mcp.callTool({
|
|
233
|
+
id: 'server-id',
|
|
234
|
+
toolName: 'screenshot',
|
|
235
|
+
arguments: { url: 'https://example.com' },
|
|
236
|
+
});
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Parameters:**
|
|
240
|
+
|
|
241
|
+
| Field | Type | Required | Description |
|
|
242
|
+
|-------|------|----------|-------------|
|
|
243
|
+
| `id` | `string` | Yes | The MCP server identifier |
|
|
244
|
+
| `toolName` | `string` | Yes | Name of the tool to invoke |
|
|
245
|
+
| `arguments` | `Record<string, any>` | No | Key-value arguments to pass to the tool |
|
|
246
|
+
| `execute_as` | `string` | No | User ID to impersonate for the tool call |
|
|
247
|
+
|
|
248
|
+
**Returns:** `LTApiResult<{ result: any }>`
|
|
249
|
+
|
|
250
|
+
**Auth:** Optional (userId forwarded to the MCP adapter when provided)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# lt.namespaces
|
|
2
|
+
|
|
3
|
+
Manage namespaces for multi-tenant isolation.
|
|
4
|
+
|
|
5
|
+
## list
|
|
6
|
+
|
|
7
|
+
List all registered namespaces.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.namespaces.list();
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:** None
|
|
14
|
+
|
|
15
|
+
**Returns:** `LTApiResult<{ namespaces: LTNamespace[] }>`
|
|
16
|
+
|
|
17
|
+
**Auth:** Not required
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## register
|
|
22
|
+
|
|
23
|
+
Register a new namespace.
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
const result = await lt.namespaces.register({
|
|
27
|
+
name: 'acme-corp',
|
|
28
|
+
description: 'Acme Corporation tenant',
|
|
29
|
+
metadata: { region: 'us-east-1' },
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Parameters:**
|
|
34
|
+
|
|
35
|
+
| Field | Type | Required | Description |
|
|
36
|
+
|-------|------|----------|-------------|
|
|
37
|
+
| `name` | `string` | Yes | Unique namespace identifier |
|
|
38
|
+
| `description` | `string` | No | Human-readable description |
|
|
39
|
+
| `metadata` | `Record<string, unknown>` | No | Arbitrary key-value metadata |
|
|
40
|
+
|
|
41
|
+
**Returns:** `LTApiResult<LTNamespace>`
|
|
42
|
+
|
|
43
|
+
**Auth:** Not required
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# lt.roles
|
|
2
|
+
|
|
3
|
+
Manage roles and escalation chain routing between roles.
|
|
4
|
+
|
|
5
|
+
## list
|
|
6
|
+
|
|
7
|
+
List all distinct role names in the system.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.roles.list();
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:** None (pass `{}` or `undefined`).
|
|
14
|
+
|
|
15
|
+
**Returns:** `LTApiResult<{ roles: string[] }>`
|
|
16
|
+
|
|
17
|
+
**Auth:** Not required
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## listWithDetails
|
|
22
|
+
|
|
23
|
+
List all roles with full details (member counts, escalation chains, etc.).
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
const result = await lt.roles.listWithDetails();
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Parameters:** None (pass `{}` or `undefined`).
|
|
30
|
+
|
|
31
|
+
**Returns:** `LTApiResult<{ roles: RoleDetail[] }>`
|
|
32
|
+
|
|
33
|
+
**Auth:** Not required
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## create
|
|
38
|
+
|
|
39
|
+
Create a new role.
|
|
40
|
+
|
|
41
|
+
The role name is trimmed, lowercased, and validated against `^[a-z][a-z0-9_-]*$`.
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
const result = await lt.roles.create({ role: 'senior-reviewer' });
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Parameters:**
|
|
48
|
+
|
|
49
|
+
| Field | Type | Required | Description |
|
|
50
|
+
|-------|------|----------|-------------|
|
|
51
|
+
| `role` | `string` | Yes | Role name (lowercase letters, numbers, hyphens, underscores; must start with a letter) |
|
|
52
|
+
|
|
53
|
+
**Returns:** `LTApiResult<{ role: string }>` (status 201)
|
|
54
|
+
|
|
55
|
+
**Auth:** Not required
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## delete
|
|
60
|
+
|
|
61
|
+
Delete a role from the system.
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const result = await lt.roles.delete({ role: 'old-role' });
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Parameters:**
|
|
68
|
+
|
|
69
|
+
| Field | Type | Required | Description |
|
|
70
|
+
|-------|------|----------|-------------|
|
|
71
|
+
| `role` | `string` | Yes | Role name to delete |
|
|
72
|
+
|
|
73
|
+
**Returns:** `LTApiResult<{ deleted: true }>` -- returns 409 if the role cannot be deleted (e.g., still assigned to users).
|
|
74
|
+
|
|
75
|
+
**Auth:** Not required
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## getEscalationChains
|
|
80
|
+
|
|
81
|
+
Retrieve all escalation chains across all roles.
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
const result = await lt.roles.getEscalationChains();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Parameters:** None (pass `{}` or `undefined`).
|
|
88
|
+
|
|
89
|
+
**Returns:** `LTApiResult<{ chains: EscalationChain[] }>`
|
|
90
|
+
|
|
91
|
+
**Auth:** Not required
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## addEscalationChain
|
|
96
|
+
|
|
97
|
+
Add an escalation chain link from one role to another.
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
const result = await lt.roles.addEscalationChain({
|
|
101
|
+
source_role: 'reviewer',
|
|
102
|
+
target_role: 'senior-reviewer',
|
|
103
|
+
});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Parameters:**
|
|
107
|
+
|
|
108
|
+
| Field | Type | Required | Description |
|
|
109
|
+
|-------|------|----------|-------------|
|
|
110
|
+
| `source_role` | `string` | Yes | Role that escalates from |
|
|
111
|
+
| `target_role` | `string` | Yes | Role that receives the escalation |
|
|
112
|
+
|
|
113
|
+
**Returns:** `LTApiResult<{ source_role, target_role }>` (status 201)
|
|
114
|
+
|
|
115
|
+
**Auth:** Not required
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## removeEscalationChain
|
|
120
|
+
|
|
121
|
+
Remove an escalation chain link between two roles.
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
const result = await lt.roles.removeEscalationChain({
|
|
125
|
+
source_role: 'reviewer',
|
|
126
|
+
target_role: 'senior-reviewer',
|
|
127
|
+
});
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Parameters:**
|
|
131
|
+
|
|
132
|
+
| Field | Type | Required | Description |
|
|
133
|
+
|-------|------|----------|-------------|
|
|
134
|
+
| `source_role` | `string` | Yes | Role that escalates from |
|
|
135
|
+
| `target_role` | `string` | Yes | Role that receives the escalation |
|
|
136
|
+
|
|
137
|
+
**Returns:** `LTApiResult<{ removed: true }>` -- returns 404 if not found.
|
|
138
|
+
|
|
139
|
+
**Auth:** Not required
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## getEscalationTargets
|
|
144
|
+
|
|
145
|
+
Get all escalation target roles for a given source role.
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
const result = await lt.roles.getEscalationTargets({ role: 'reviewer' });
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Parameters:**
|
|
152
|
+
|
|
153
|
+
| Field | Type | Required | Description |
|
|
154
|
+
|-------|------|----------|-------------|
|
|
155
|
+
| `role` | `string` | Yes | Source role to look up targets for |
|
|
156
|
+
|
|
157
|
+
**Returns:** `LTApiResult<{ targets: string[] }>`
|
|
158
|
+
|
|
159
|
+
**Auth:** Not required
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## replaceEscalationTargets
|
|
164
|
+
|
|
165
|
+
Replace all escalation targets for a role with a new set.
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
const result = await lt.roles.replaceEscalationTargets({
|
|
169
|
+
role: 'reviewer',
|
|
170
|
+
targets: ['senior-reviewer', 'team-lead'],
|
|
171
|
+
});
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Parameters:**
|
|
175
|
+
|
|
176
|
+
| Field | Type | Required | Description |
|
|
177
|
+
|-------|------|----------|-------------|
|
|
178
|
+
| `role` | `string` | Yes | Source role whose targets are being replaced |
|
|
179
|
+
| `targets` | `string[]` | Yes | Array of target role names |
|
|
180
|
+
|
|
181
|
+
**Returns:** `LTApiResult<{ role, targets }>`
|
|
182
|
+
|
|
183
|
+
**Auth:** Not required
|