@hotmeshio/long-tail 0.1.13 → 0.1.15
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 +15 -0
- package/build/api/escalations/bulk.d.ts +78 -0
- package/build/api/escalations/bulk.js +279 -0
- package/build/api/escalations/claim.d.ts +30 -0
- package/build/api/escalations/claim.js +121 -0
- package/build/api/escalations/create.d.ts +29 -0
- package/build/api/escalations/create.js +101 -0
- package/build/api/escalations/helpers.d.ts +10 -0
- package/build/api/escalations/helpers.js +80 -0
- package/build/api/escalations/index.d.ts +6 -0
- package/build/api/escalations/index.js +26 -0
- package/build/api/escalations/list.d.ts +75 -0
- package/build/api/escalations/list.js +170 -0
- package/build/api/escalations/resolve.d.ts +18 -0
- package/build/api/escalations/resolve.js +243 -0
- package/build/api/escalations/single.d.ts +37 -0
- package/build/api/escalations/single.js +123 -0
- package/build/api/files.d.ts +16 -0
- package/build/api/files.js +61 -0
- package/build/api/knowledge.d.ts +36 -0
- package/build/api/knowledge.js +112 -0
- package/build/api/mcp/index.d.ts +2 -0
- package/build/api/mcp/index.js +16 -0
- package/build/api/{mcp.d.ts → mcp/servers.d.ts} +1 -33
- package/build/api/{mcp.js → mcp/servers.js} +4 -65
- package/build/api/mcp/tools.d.ts +33 -0
- package/build/api/mcp/tools.js +64 -0
- package/build/api/mcp-runs.d.ts +2 -0
- package/build/api/mcp-runs.js +2 -0
- package/build/api/settings.js +9 -1
- package/build/api/workflow-sets.d.ts +11 -0
- package/build/api/workflow-sets.js +62 -0
- package/build/api/workflows/config.d.ts +64 -0
- package/build/api/workflows/config.js +142 -0
- package/build/api/workflows/discovery.d.ts +29 -0
- package/build/api/workflows/discovery.js +153 -0
- package/build/api/workflows/index.d.ts +3 -0
- package/build/api/workflows/index.js +18 -0
- package/build/api/workflows/invocation.d.ts +67 -0
- package/build/api/workflows/invocation.js +188 -0
- package/build/api/yaml-workflows/cron.d.ts +39 -0
- package/build/api/yaml-workflows/cron.js +127 -0
- package/build/api/{yaml-workflows.d.ts → yaml-workflows/crud.d.ts} +22 -137
- package/build/api/{yaml-workflows.js → yaml-workflows/crud.js} +86 -358
- package/build/api/yaml-workflows/deploy.d.ts +71 -0
- package/build/api/yaml-workflows/deploy.js +223 -0
- package/build/api/yaml-workflows/helpers.d.ts +2 -0
- package/build/api/yaml-workflows/helpers.js +8 -0
- package/build/api/yaml-workflows/index.d.ts +4 -0
- package/build/api/yaml-workflows/index.js +27 -0
- package/build/api/yaml-workflows/versions.d.ts +43 -0
- package/build/api/yaml-workflows/versions.js +124 -0
- package/build/bin/ltc.d.ts +2 -0
- package/build/bin/ltc.js +220 -0
- package/build/examples/seed-data.d.ts +55 -0
- package/build/examples/seed-data.js +161 -0
- package/build/examples/seed.js +7 -164
- package/build/lib/cli/auth.d.ts +23 -0
- package/build/lib/cli/auth.js +167 -0
- package/build/lib/cli/client.d.ts +6 -0
- package/build/lib/cli/client.js +31 -0
- package/build/lib/cli/commands/escalations.d.ts +19 -0
- package/build/lib/cli/commands/escalations.js +69 -0
- package/build/lib/cli/commands/knowledge.d.ts +18 -0
- package/build/lib/cli/commands/knowledge.js +87 -0
- package/build/lib/cli/commands/mcp.d.ts +8 -0
- package/build/lib/cli/commands/mcp.js +33 -0
- package/build/lib/cli/commands/pipelines.d.ts +16 -0
- package/build/lib/cli/commands/pipelines.js +67 -0
- package/build/lib/cli/commands/status.d.ts +1 -0
- package/build/lib/cli/commands/status.js +28 -0
- package/build/lib/cli/commands/users.d.ts +7 -0
- package/build/lib/cli/commands/users.js +25 -0
- package/build/lib/cli/commands/workflows.d.ts +16 -0
- package/build/lib/cli/commands/workflows.js +104 -0
- package/build/lib/cli/compile.d.ts +2 -0
- package/build/lib/cli/compile.js +165 -0
- package/build/lib/cli/format.d.ts +23 -0
- package/build/lib/cli/format.js +94 -0
- package/build/lib/cli/init.d.ts +1 -0
- package/build/lib/cli/init.js +61 -0
- package/build/lib/cli/output.d.ts +27 -0
- package/build/lib/cli/output.js +126 -0
- package/build/lib/cli/scanner.d.ts +10 -0
- package/build/lib/cli/scanner.js +164 -0
- package/build/lib/cli/types.d.ts +16 -0
- package/build/lib/cli/types.js +2 -0
- package/build/lib/logger/index.d.ts +0 -9
- package/build/lib/logger/index.js +9 -4
- package/build/lib/storage/index.js +2 -2
- package/build/lib/storage/local.d.ts +15 -0
- package/build/lib/storage/local.js +63 -0
- package/build/lib/storage/mime.d.ts +4 -0
- package/build/lib/storage/mime.js +31 -0
- package/build/lib/storage/s3.d.ts +16 -0
- package/build/lib/storage/s3.js +70 -0
- package/build/lib/storage/types.d.ts +18 -0
- package/build/modules/utils.d.ts +73 -0
- package/build/modules/utils.js +84 -0
- package/build/routes/file-browser.d.ts +2 -0
- package/build/routes/file-browser.js +126 -0
- package/build/routes/files.js +25 -17
- package/build/routes/index.js +4 -0
- package/build/routes/knowledge.d.ts +2 -0
- package/build/routes/knowledge.js +141 -0
- package/build/routes/mcp-runs.js +2 -0
- package/build/routes/workflow-sets.js +9 -0
- package/build/routes/yaml-workflows/crud.js +9 -0
- package/build/routes/yaml-workflows/deployment.js +8 -0
- package/build/sdk/index.d.ts +17 -0
- package/build/sdk/index.js +19 -0
- package/build/services/insight/index.d.ts +13 -0
- package/build/services/insight/index.js +4 -7
- package/build/services/insight/prompts.d.ts +1 -1
- package/build/services/insight/prompts.js +1 -1
- package/build/services/mcp/client/connection-dispatch.d.ts +18 -0
- package/build/services/mcp/client/connection-dispatch.js +78 -0
- package/build/services/mcp/client/connection-lifecycle.d.ts +48 -0
- package/build/services/mcp/client/connection-lifecycle.js +296 -0
- package/build/services/mcp/client/connection-test.d.ts +10 -0
- package/build/services/mcp/client/connection-test.js +49 -0
- package/build/services/mcp/client/connection.d.ts +3 -68
- package/build/services/mcp/client/connection.js +15 -393
- package/build/services/mcp/server-lifecycle.d.ts +27 -0
- package/build/services/mcp/server-lifecycle.js +49 -0
- package/build/services/mcp/server-tools.d.ts +13 -0
- package/build/services/mcp/server-tools.js +287 -0
- package/build/services/mcp/server.d.ts +2 -26
- package/build/services/mcp/server.js +7 -315
- package/build/services/mcp-runs/queries.d.ts +2 -0
- package/build/services/mcp-runs/queries.js +11 -1
- package/build/services/mcp-runs/sql.d.ts +1 -1
- package/build/services/mcp-runs/sql.js +2 -2
- package/build/services/workflow-sets/db.d.ts +1 -0
- package/build/services/workflow-sets/db.js +6 -0
- package/build/services/workflow-sets/index.d.ts +1 -1
- package/build/services/workflow-sets/index.js +2 -1
- package/build/services/workflow-sets/sql.d.ts +1 -0
- package/build/services/workflow-sets/sql.js +6 -1
- package/build/services/yaml-workflow/builder-regenerate.d.ts +25 -0
- package/build/services/yaml-workflow/builder-regenerate.js +111 -0
- package/build/services/yaml-workflow/db-versions.d.ts +17 -0
- package/build/services/yaml-workflow/db-versions.js +76 -0
- package/build/services/yaml-workflow/db.d.ts +14 -12
- package/build/services/yaml-workflow/db.js +32 -70
- package/build/services/yaml-workflow/deployer-helpers.js +48 -17
- package/build/services/yaml-workflow/durable-compiler/index.d.ts +22 -0
- package/build/services/yaml-workflow/durable-compiler/index.js +168 -0
- package/build/services/yaml-workflow/durable-compiler/parser.d.ts +12 -0
- package/build/services/yaml-workflow/durable-compiler/parser.js +110 -0
- package/build/services/yaml-workflow/durable-compiler/prompts.d.ts +18 -0
- package/build/services/yaml-workflow/durable-compiler/prompts.js +570 -0
- package/build/services/yaml-workflow/durable-compiler/types.d.ts +51 -0
- package/build/services/yaml-workflow/durable-compiler/types.js +5 -0
- package/build/services/yaml-workflow/generator.js +4 -4
- package/build/services/yaml-workflow/pipeline/build/dag-assembly.d.ts +17 -0
- package/build/services/yaml-workflow/pipeline/build/dag-assembly.js +192 -0
- package/build/services/yaml-workflow/pipeline/build/dag.d.ts +4 -13
- package/build/services/yaml-workflow/pipeline/build/dag.js +9 -185
- package/build/services/yaml-workflow/pipeline/build/index.d.ts +2 -1
- package/build/services/yaml-workflow/pipeline/build/index.js +3 -2
- package/build/services/yaml-workflow/pipeline/build/utils.d.ts +0 -2
- package/build/services/yaml-workflow/pipeline/build/utils.js +0 -8
- package/build/services/yaml-workflow/pipeline/prompt-templates.d.ts +10 -0
- package/build/services/yaml-workflow/pipeline/prompt-templates.js +270 -0
- package/build/services/yaml-workflow/pipeline/prompts.d.ts +3 -6
- package/build/services/yaml-workflow/pipeline/prompts.js +8 -263
- package/build/services/yaml-workflow/sql.d.ts +2 -1
- package/build/services/yaml-workflow/sql.js +10 -3
- package/build/start/workers.js +6 -5
- package/build/system/activities/file-storage.d.ts +4 -0
- package/build/system/activities/file-storage.js +7 -1
- package/build/system/activities/knowledge.d.ts +23 -0
- package/build/system/activities/knowledge.js +50 -10
- package/build/system/activities/schema-exchange.d.ts +50 -0
- package/build/system/activities/schema-exchange.js +210 -0
- package/build/system/activities/sql.d.ts +4 -1
- package/build/system/activities/sql.js +37 -2
- package/build/system/index.js +1 -0
- package/build/system/mcp-servers/file-storage.js +3 -1
- package/build/system/mcp-servers/human-queue-schemas.d.ts +91 -0
- package/build/system/mcp-servers/human-queue-schemas.js +42 -0
- package/build/system/mcp-servers/human-queue.d.ts +2 -6
- package/build/system/mcp-servers/human-queue.js +9 -51
- package/build/system/mcp-servers/knowledge.js +69 -6
- package/build/system/mcp-servers/schema-exchange.d.ts +4 -0
- package/build/system/mcp-servers/schema-exchange.js +93 -0
- package/build/system/mcp-servers/workflow-compiler.js +54 -0
- package/build/system/seed/server-definitions.d.ts +112 -1
- package/build/system/seed/server-definitions.js +37 -0
- package/build/system/seed/tool-manifests-data.d.ts +87 -0
- package/build/system/seed/tool-manifests-data.js +37 -1
- package/build/system/seed/tool-manifests-knowledge.d.ts +9 -1
- package/build/system/seed/tool-manifests-knowledge.js +6 -5
- package/build/system/workflows/mcp-triage/activities-proxy.d.ts +21 -0
- package/build/system/workflows/mcp-triage/activities-proxy.js +70 -0
- package/build/system/workflows/mcp-triage/index.js +17 -75
- package/build/system/workflows/mcp-workflow-builder/prompts.d.ts +1 -1
- package/build/system/workflows/mcp-workflow-builder/prompts.js +21 -20
- package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +2 -1
- package/build/system/workflows/mcp-workflow-planner/activities/persist.js +4 -3
- package/build/system/workflows/mcp-workflow-planner/index.js +41 -5
- package/build/system/workflows/mcp-workflow-planner/prompts.d.ts +1 -1
- package/build/system/workflows/mcp-workflow-planner/prompts.js +3 -3
- package/build/tsconfig.tsbuildinfo +1 -1
- package/dashboard/dist/assets/{AdminDashboard-DUrSBQOl.js → AdminDashboard-NLryl1_B.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DUrSBQOl.js.map → AdminDashboard-NLryl1_B.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-Cg5iNEkm.js → BotPicker-DWhn0tr1.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-Cg5iNEkm.js.map → BotPicker-DWhn0tr1.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-Kd9UIyeU.js → CollapsibleSection-CgYgQiOc.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-Kd9UIyeU.js.map → CollapsibleSection-CgYgQiOc.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-DZMgmlof.js → ConfirmDeleteModal-DCKAPXD3.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-DZMgmlof.js.map → ConfirmDeleteModal-DCKAPXD3.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-cPFTRm8q.js → CopyableId-DXkaAOYk.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-cPFTRm8q.js.map → CopyableId-DXkaAOYk.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-B361BOfU.js +2 -0
- package/dashboard/dist/assets/{CredentialsPage-DJablIbs.js.map → CredentialsPage-B361BOfU.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-NgIP6YDW.js → CustomDurationPicker-D2G1ldiF.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-NgIP6YDW.js.map → CustomDurationPicker-D2G1ldiF.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-CTRhTAfT.js → DataTable-DXSUbA26.js} +2 -2
- package/dashboard/dist/assets/{DataTable-CTRhTAfT.js.map → DataTable-DXSUbA26.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-HcSJ_MMs.js → ElapsedCell-CQGqkXP_.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-HcSJ_MMs.js.map → ElapsedCell-CQGqkXP_.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-joNbd4gg.js → EmptyState-Dep92Wkg.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-joNbd4gg.js.map → EmptyState-Dep92Wkg.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-DpXDnQux.js → EscalationsOverview-DVEFVjs7.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DpXDnQux.js.map → EscalationsOverview-DVEFVjs7.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CYem3v8n.js → EventTable-BMJAPkMi.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CYem3v8n.js.map → EventTable-BMJAPkMi.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-BiO8SOzc.js → FilterBar-DbVbCzH2.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-BiO8SOzc.js.map → FilterBar-DbVbCzH2.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-6yRDh2e9.js → ListToolbar-0XNuXj0M.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-6yRDh2e9.js.map → ListToolbar-0XNuXj0M.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-CUgSxkQe.js → McpOverview-CeYnCzBN.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-CUgSxkQe.js.map → McpOverview-CeYnCzBN.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-CfUcdzaj.js +2 -0
- package/dashboard/dist/assets/{McpQueryPage-lV6kfDG5.js.map → McpQueryPage-CfUcdzaj.js.map} +1 -1
- package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js.map +1 -0
- package/dashboard/dist/assets/{Modal-BuTvD0pz.js → Modal-yyhUeKoA.js} +2 -2
- package/dashboard/dist/assets/{Modal-BuTvD0pz.js.map → Modal-yyhUeKoA.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-Ceh7OQtZ.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-C9SSV96T.js.map → OperatorDashboard-Ceh7OQtZ.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-BcTVF9ul.js → PageHeader-CZ9a8cpr.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-BcTVF9ul.js.map → PageHeader-CZ9a8cpr.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-BI7JG5x6.js → PageHeaderWithStats-BJuNs5NM.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-BI7JG5x6.js.map → PageHeaderWithStats-BJuNs5NM.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-DqVaOU65.js → PriorityBadge-BrPikMFy.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-DqVaOU65.js.map → PriorityBadge-BrPikMFy.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-hFMhf9qa.js → ProcessDetailPage-2miaYd8G.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-hFMhf9qa.js.map → ProcessDetailPage-2miaYd8G.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-ByVoBCQ3.js → ProcessesListPage-DqpRDqjk.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-ByVoBCQ3.js.map → ProcessesListPage-DqpRDqjk.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-D9ZIkYiu.js → RolePill-DxbJMfJu.js} +2 -2
- package/dashboard/dist/assets/{RolePill-D9ZIkYiu.js.map → RolePill-DxbJMfJu.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-SMedMuqa.js → RolesPage-CYHRo21-.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-SMedMuqa.js.map → RolesPage-CYHRo21-.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-yDhwwDbU.js → RowActions-DurFwIwe.js} +2 -2
- package/dashboard/dist/assets/{RowActions-yDhwwDbU.js.map → RowActions-DurFwIwe.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js +2 -0
- package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js.map +1 -0
- package/dashboard/dist/assets/{StatCard-BrBnQFxh.js → StatCard-CKplpK3w.js} +2 -2
- package/dashboard/dist/assets/{StatCard-BrBnQFxh.js.map → StatCard-CKplpK3w.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-xgb-lZku.js → StatusBadge-Dm0V1dNN.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-xgb-lZku.js.map → StatusBadge-Dm0V1dNN.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-B9ps2SvM.js → StepIndicator-Dicx0WTZ.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-B9ps2SvM.js.map → StepIndicator-Dicx0WTZ.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-DTIjBKN3.js → StickyPagination-B2jYvU3-.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-DTIjBKN3.js.map → StickyPagination-B2jYvU3-.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js.map +1 -0
- package/dashboard/dist/assets/{TagInput-CdNUuqk4.js → TagInput-CypDZ6Kl.js} +2 -2
- package/dashboard/dist/assets/{TagInput-CdNUuqk4.js.map → TagInput-CypDZ6Kl.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-C-nzaNea.js → TaskDetailPage-DooDNJGT.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-C-nzaNea.js.map → TaskDetailPage-DooDNJGT.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-Lvr2-NzS.js → TaskQueuePill-C1hZ-j31.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-Lvr2-NzS.js.map → TaskQueuePill-C1hZ-j31.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-DSUmD84y.js → TasksListPage-D7CdkAeg.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-DSUmD84y.js.map → TasksListPage-D7CdkAeg.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-BZdLdrIh.js → TimeAgo-B5LXB2aj.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-BZdLdrIh.js.map → TimeAgo-B5LXB2aj.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-QX_0i5FK.js → TimestampCell-Crb9b0Gw.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-QX_0i5FK.js.map → TimestampCell-Crb9b0Gw.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-DyZMXcBm.js → UserName-OPg-nkRa.js} +2 -2
- package/dashboard/dist/assets/{UserName-DyZMXcBm.js.map → UserName-OPg-nkRa.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-DjVxfZaF.js → WorkflowExecutionPage-CcLVrs9b.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-DjVxfZaF.js.map → WorkflowExecutionPage-CcLVrs9b.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js.map +1 -0
- package/dashboard/dist/assets/{WorkflowsDashboard-DZjuiFZ0.js → WorkflowsDashboard-DB1SncBi.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-DZjuiFZ0.js.map → WorkflowsDashboard-DB1SncBi.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-CLnLRpOu.js → WorkflowsOverview-DvShiYJV.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-CLnLRpOu.js.map → WorkflowsOverview-DvShiYJV.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js.map +1 -0
- package/dashboard/dist/assets/{bots-DIM6lBoY.js → bots-Dqos20NE.js} +2 -2
- package/dashboard/dist/assets/{bots-DIM6lBoY.js.map → bots-Dqos20NE.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-JOTuOqjq.js → escalation-A0CsbvNV.js} +2 -2
- package/dashboard/dist/assets/{escalation-JOTuOqjq.js.map → escalation-A0CsbvNV.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-BpBJN6k4.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-Cyg58nkg.js.map → escalation-columns-BpBJN6k4.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-B1BDxBZd.js → helpers-CmznCuAx.js} +2 -2
- package/dashboard/dist/assets/{helpers-B1BDxBZd.js.map → helpers-CmznCuAx.js.map} +1 -1
- package/dashboard/dist/assets/index-BIeYV5QK.js +2 -0
- package/dashboard/dist/assets/index-BIeYV5QK.js.map +1 -0
- package/dashboard/dist/assets/index-BYwD3kHN.js +5 -0
- package/dashboard/dist/assets/index-BYwD3kHN.js.map +1 -0
- package/dashboard/dist/assets/index-C5TUqJu0.css +1 -0
- package/dashboard/dist/assets/index-C8-UaN4N.js +2 -0
- package/dashboard/dist/assets/{index-Cg5nfiYX.js.map → index-C8-UaN4N.js.map} +1 -1
- package/dashboard/dist/assets/index-CAj5LT9H.js +15 -0
- package/dashboard/dist/assets/index-CAj5LT9H.js.map +1 -0
- package/dashboard/dist/assets/index-CjxHCVxl.js +2 -0
- package/dashboard/dist/assets/{index-Cf60K3x9.js.map → index-CjxHCVxl.js.map} +1 -1
- package/dashboard/dist/assets/index-Cr0Rqsj7.js +2 -0
- package/dashboard/dist/assets/index-Cr0Rqsj7.js.map +1 -0
- package/dashboard/dist/assets/index-DZHNte4o.js +2 -0
- package/dashboard/dist/assets/{index-Di12t56M.js.map → index-DZHNte4o.js.map} +1 -1
- package/dashboard/dist/assets/{index-Ds0JoXS2.js → index-VnYkWW8r.js} +2 -2
- package/dashboard/dist/assets/{index-Ds0JoXS2.js.map → index-VnYkWW8r.js.map} +1 -1
- package/dashboard/dist/assets/{index-BcR6PfpY.js → index-XGOmZ117.js} +2 -2
- package/dashboard/dist/assets/{index-BcR6PfpY.js.map → index-XGOmZ117.js.map} +1 -1
- package/dashboard/dist/assets/index-ZjOUzWhc.js +2 -0
- package/dashboard/dist/assets/index-ZjOUzWhc.js.map +1 -0
- package/dashboard/dist/assets/{index-BYZX9tOb.js → index-puKKZ5l8.js} +77 -77
- package/dashboard/dist/assets/index-puKKZ5l8.js.map +1 -0
- package/dashboard/dist/assets/{index-BizfauqT.js → index-t5frSddy.js} +4 -4
- package/dashboard/dist/assets/{index-BizfauqT.js.map → index-t5frSddy.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-B_xbczAt.js → mcp-DrWymhSu.js} +2 -2
- package/dashboard/dist/assets/{mcp-B_xbczAt.js.map → mcp-DrWymhSu.js.map} +1 -1
- package/dashboard/dist/assets/mcp-query-BhUxVEMS.js +2 -0
- package/dashboard/dist/assets/mcp-query-BhUxVEMS.js.map +1 -0
- package/dashboard/dist/assets/mcp-runs-DUfz4mLd.js +2 -0
- package/dashboard/dist/assets/mcp-runs-DUfz4mLd.js.map +1 -0
- package/dashboard/dist/assets/{namespaces-C3WtdO_9.js → namespaces-Cm6AY5sh.js} +2 -2
- package/dashboard/dist/assets/{namespaces-C3WtdO_9.js.map → namespaces-Cm6AY5sh.js.map} +1 -1
- package/dashboard/dist/assets/{roles-BDAsPpZG.js → roles-2v1Kc7BJ.js} +2 -2
- package/dashboard/dist/assets/{roles-BDAsPpZG.js.map → roles-2v1Kc7BJ.js.map} +1 -1
- package/dashboard/dist/assets/{settings-Ife_UwAp.js → settings-DTQNp6tH.js} +2 -2
- package/dashboard/dist/assets/{settings-Ife_UwAp.js.map → settings-DTQNp6tH.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-BquNDHDI.js → tasks-CS1rgG1s.js} +2 -2
- package/dashboard/dist/assets/{tasks-BquNDHDI.js.map → tasks-CS1rgG1s.js.map} +1 -1
- package/dashboard/dist/assets/useEventHooks-BjXX8x3a.js +2 -0
- package/dashboard/dist/assets/{useEventHooks-anv_B2Yy.js.map → useEventHooks-BjXX8x3a.js.map} +1 -1
- package/dashboard/dist/assets/useFilterParams-CGRYFw_A.js +2 -0
- package/dashboard/dist/assets/useFilterParams-CGRYFw_A.js.map +1 -0
- package/dashboard/dist/assets/useYamlActivityEvents-BeR-nVWQ.js +2 -0
- package/dashboard/dist/assets/useYamlActivityEvents-BeR-nVWQ.js.map +1 -0
- package/dashboard/dist/assets/{users-CFcxB4v6.js → users-DYsdQ7Md.js} +2 -2
- package/dashboard/dist/assets/{users-CFcxB4v6.js.map → users-DYsdQ7Md.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-T4r2DSPD.js → vendor-icons-CWl44VA6.js} +132 -82
- package/dashboard/dist/assets/vendor-icons-CWl44VA6.js.map +1 -0
- package/dashboard/dist/assets/{workflows-CeRci9z3.js → workflows-2QAXh3UD.js} +2 -2
- package/dashboard/dist/assets/{workflows-CeRci9z3.js.map → workflows-2QAXh3UD.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-sx8-UEE3.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-sx8-UEE3.js.map +1 -0
- package/dashboard/dist/index.html +3 -3
- package/docs/api/http/file-browser.md +101 -0
- package/docs/api/http/knowledge.md +203 -0
- package/docs/api/http/settings.md +6 -4
- package/docs/api/sdk/files.md +68 -0
- package/docs/api/sdk/knowledge.md +126 -0
- package/docs/api/sdk/settings.md +3 -2
- package/docs/cli.md +171 -0
- package/docs/compilation.md +16 -0
- package/docs/compiler.md +311 -0
- package/docs/events.md +19 -0
- package/docs/schema-exchange.md +173 -0
- package/docs/self-test.md +106 -0
- package/docs/workflows.md +19 -0
- package/package.json +15 -2
- package/build/api/escalations.d.ts +0 -271
- package/build/api/escalations.js +0 -932
- package/build/api/workflows.d.ts +0 -158
- package/build/api/workflows.js +0 -414
- package/dashboard/dist/assets/AvailableEscalationsPage-Dbd1qUK_.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-Dbd1qUK_.js.map +0 -1
- package/dashboard/dist/assets/CredentialsPage-DJablIbs.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-BWbinTM_.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-BWbinTM_.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-lV6kfDG5.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-D6gaxH3_.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-D6gaxH3_.js.map +0 -1
- package/dashboard/dist/assets/McpRunsPage-DKvTklh9.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-DKvTklh9.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-C9SSV96T.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-RK4Yu66z.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-RK4Yu66z.js.map +0 -1
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js.map +0 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-VjdhnLmO.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-VjdhnLmO.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-Cyg58nkg.js +0 -2
- package/dashboard/dist/assets/helpers-BCix9c_m.js +0 -2
- package/dashboard/dist/assets/helpers-BCix9c_m.js.map +0 -1
- package/dashboard/dist/assets/index-BUK3qR-1.js +0 -2
- package/dashboard/dist/assets/index-BUK3qR-1.js.map +0 -1
- package/dashboard/dist/assets/index-BYZX9tOb.js.map +0 -1
- package/dashboard/dist/assets/index-Cf60K3x9.js +0 -2
- package/dashboard/dist/assets/index-Cg5nfiYX.js +0 -2
- package/dashboard/dist/assets/index-D1wVX50Z.js +0 -15
- package/dashboard/dist/assets/index-D1wVX50Z.js.map +0 -1
- package/dashboard/dist/assets/index-DDYFpi4l.js +0 -5
- package/dashboard/dist/assets/index-DDYFpi4l.js.map +0 -1
- package/dashboard/dist/assets/index-DcIKW-cZ.css +0 -1
- package/dashboard/dist/assets/index-Di12t56M.js +0 -2
- package/dashboard/dist/assets/mcp-query-B8-P_QoG.js +0 -2
- package/dashboard/dist/assets/mcp-query-B8-P_QoG.js.map +0 -1
- package/dashboard/dist/assets/mcp-runs-CWeZinoF.js +0 -2
- package/dashboard/dist/assets/mcp-runs-CWeZinoF.js.map +0 -1
- package/dashboard/dist/assets/useEventHooks-anv_B2Yy.js +0 -2
- package/dashboard/dist/assets/useFilterParams-BUyLHcx_.js +0 -2
- package/dashboard/dist/assets/useFilterParams-BUyLHcx_.js.map +0 -1
- package/dashboard/dist/assets/useYamlActivityEvents-DN-PTgVx.js +0 -2
- package/dashboard/dist/assets/useYamlActivityEvents-DN-PTgVx.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-T4r2DSPD.js.map +0 -1
- package/dashboard/dist/assets/yaml-workflows-DLwd2BOX.js +0 -2
- package/dashboard/dist/assets/yaml-workflows-DLwd2BOX.js.map +0 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Knowledge API
|
|
2
|
+
|
|
3
|
+
CRUD operations for the knowledge store — a domain-scoped key-value store backed by PostgreSQL JSONB. Each entry has a domain, key, arbitrary JSON data, and optional tags.
|
|
4
|
+
|
|
5
|
+
All endpoints require authentication.
|
|
6
|
+
|
|
7
|
+
## List domains
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
GET /api/knowledge/domains
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Returns all knowledge domains with entry counts and last-updated timestamps.
|
|
14
|
+
|
|
15
|
+
**Response 200:**
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"domains": [
|
|
20
|
+
{ "domain": "screenshot", "count": 3, "latest": "2026-05-09T22:26:51.616Z" },
|
|
21
|
+
{ "domain": "config", "count": 1, "latest": "2026-05-08T10:00:00.000Z" }
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## List entries
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
GET /api/knowledge/entries?domain=screenshot&search=google&tags=web&limit=50&offset=0
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Returns entries within a domain, ordered by last updated.
|
|
33
|
+
|
|
34
|
+
| Parameter | Type | Required | Description |
|
|
35
|
+
|-----------|------|----------|-------------|
|
|
36
|
+
| `domain` | `string` | Yes | Domain to query |
|
|
37
|
+
| `search` | `string` | No | Search by key name or tag (ILIKE partial match) |
|
|
38
|
+
| `tags` | `string` | No | Comma-separated tag filter (array overlap) |
|
|
39
|
+
| `limit` | `number` | No | Max results (default: 50, max: 200) |
|
|
40
|
+
| `offset` | `number` | No | Pagination offset |
|
|
41
|
+
|
|
42
|
+
**Response 200:**
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"entries": [
|
|
47
|
+
{
|
|
48
|
+
"id": "uuid",
|
|
49
|
+
"domain": "screenshot",
|
|
50
|
+
"key": "google",
|
|
51
|
+
"data": { "2026-05-09": "description..." },
|
|
52
|
+
"tags": ["web"],
|
|
53
|
+
"created_at": "2026-05-09T22:26:51.616Z",
|
|
54
|
+
"updated_at": "2026-05-09T22:26:51.616Z"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"total": 1
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Get entry
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
GET /api/knowledge/entry?domain=screenshot&key=google
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Returns a single knowledge entry by domain and key. Returns `{ found: false }` if not found.
|
|
68
|
+
|
|
69
|
+
| Parameter | Type | Required | Description |
|
|
70
|
+
|-----------|------|----------|-------------|
|
|
71
|
+
| `domain` | `string` | Yes | Domain |
|
|
72
|
+
| `key` | `string` | Yes | Entry key |
|
|
73
|
+
|
|
74
|
+
**Response 200:**
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"id": "uuid",
|
|
79
|
+
"domain": "screenshot",
|
|
80
|
+
"key": "google",
|
|
81
|
+
"data": { "2026-05-09": "The Google homepage..." },
|
|
82
|
+
"tags": [],
|
|
83
|
+
"created_at": "2026-05-09T22:26:51.616Z",
|
|
84
|
+
"updated_at": "2026-05-09T22:26:51.616Z"
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Store entry
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
POST /api/knowledge/entry
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Create or update a knowledge entry. By default, JSONB data is merged at the top level — new keys are added, existing keys are overwritten, but absent keys are preserved. Set `replace: true` to fully replace the data object (required when removing fields).
|
|
95
|
+
|
|
96
|
+
**Body:**
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"domain": "screenshot",
|
|
101
|
+
"key": "google",
|
|
102
|
+
"data": { "2026-05-09": "The Google homepage..." },
|
|
103
|
+
"tags": ["web"],
|
|
104
|
+
"replace": false
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
| Field | Type | Required | Description |
|
|
109
|
+
|-------|------|----------|-------------|
|
|
110
|
+
| `domain` | `string` | Yes | Domain |
|
|
111
|
+
| `key` | `string` | Yes | Entry key |
|
|
112
|
+
| `data` | `object` | Yes | JSONB data (top level must be an object) |
|
|
113
|
+
| `tags` | `string[]` | No | Tags are unioned with existing tags on upsert |
|
|
114
|
+
| `replace` | `boolean` | No | When `true`, replaces data entirely instead of merging |
|
|
115
|
+
|
|
116
|
+
**Response 200:**
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"id": "uuid",
|
|
121
|
+
"domain": "screenshot",
|
|
122
|
+
"key": "google",
|
|
123
|
+
"created": false,
|
|
124
|
+
"updated_at": "2026-05-09T22:26:51.616Z"
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Set field (nested path)
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
PUT /api/knowledge/field
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Set a value at a specific JSONB path without overwriting sibling fields. Use dot-notation for nested paths. Creates the entry if it doesn't exist.
|
|
135
|
+
|
|
136
|
+
**Body:**
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"domain": "research",
|
|
141
|
+
"key": "screenshots",
|
|
142
|
+
"path": "google.holiday",
|
|
143
|
+
"value": "Mother's Day doodle with flowers",
|
|
144
|
+
"tags": ["screenshot"]
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
| Field | Type | Required | Description |
|
|
149
|
+
|-------|------|----------|-------------|
|
|
150
|
+
| `domain` | `string` | Yes | Domain |
|
|
151
|
+
| `key` | `string` | Yes | Entry key |
|
|
152
|
+
| `path` | `string` | Yes | Dot-notation path (e.g., `google.holiday`, `config.retries`) |
|
|
153
|
+
| `value` | `any` | Yes | Value to set at that path (any JSON type) |
|
|
154
|
+
| `tags` | `string[]` | No | Tags to union with existing |
|
|
155
|
+
|
|
156
|
+
**Response 200:**
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{ "id": "uuid", "domain": "research", "key": "screenshots", "created": false, "updated_at": "..." }
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Remove field
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
DELETE /api/knowledge/field?domain=research&key=screenshots&path=google.legacy_data
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Remove a specific field at a JSONB path. The entry survives — only the targeted path is deleted.
|
|
169
|
+
|
|
170
|
+
| Parameter | Type | Required | Description |
|
|
171
|
+
|-----------|------|----------|-------------|
|
|
172
|
+
| `domain` | `string` | Yes | Domain |
|
|
173
|
+
| `key` | `string` | Yes | Entry key |
|
|
174
|
+
| `path` | `string` | Yes | Dot-notation path to remove |
|
|
175
|
+
|
|
176
|
+
**Response 200:** `{ "removed": true }`
|
|
177
|
+
|
|
178
|
+
**Response 404:** `{ "error": "Field not found" }`
|
|
179
|
+
|
|
180
|
+
## Delete entry
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
DELETE /api/knowledge/entry?domain=screenshot&key=google
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Permanently delete a knowledge entry.
|
|
187
|
+
|
|
188
|
+
| Parameter | Type | Required | Description |
|
|
189
|
+
|-----------|------|----------|-------------|
|
|
190
|
+
| `domain` | `string` | Yes | Domain |
|
|
191
|
+
| `key` | `string` | Yes | Entry key |
|
|
192
|
+
|
|
193
|
+
**Response 200:**
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{ "deleted": true, "domain": "screenshot", "key": "google" }
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Response 404:**
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{ "error": "Entry not found" }
|
|
203
|
+
```
|
|
@@ -19,8 +19,9 @@ GET /api/settings
|
|
|
19
19
|
"claimDurations": [15, 30, 60, 120, 480]
|
|
20
20
|
},
|
|
21
21
|
"events": {
|
|
22
|
-
"transport": "
|
|
23
|
-
"natsWsUrl":
|
|
22
|
+
"transport": "socketio",
|
|
23
|
+
"natsWsUrl": null,
|
|
24
|
+
"natsToken": null
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
```
|
|
@@ -29,5 +30,6 @@ GET /api/settings
|
|
|
29
30
|
|-------|------|-------------|
|
|
30
31
|
| `telemetry.traceUrl` | `string \| null` | Template string where `{traceId}` is replaced with the actual trace ID to build a link to the trace viewer. Returns `null` if no trace URL is configured. |
|
|
31
32
|
| `escalation.claimDurations` | `number[]` | Available claim duration options in minutes. Used by the frontend to populate duration selectors. Configurable via the `LT_CLAIM_DURATION_OPTIONS` environment variable (JSON array). |
|
|
32
|
-
| `events.transport` | `
|
|
33
|
-
| `events.natsWsUrl` | `string \| null` | NATS WebSocket URL for
|
|
33
|
+
| `events.transport` | `'socketio' \| 'nats' \| 'none'` | Dashboard event transport. Defaults to `socketio`. Reports `nats` only when `EVENT_TRANSPORT=nats` is set and a NATS adapter is registered. |
|
|
34
|
+
| `events.natsWsUrl` | `string \| null` | NATS WebSocket URL for browser connections. Only present when a NATS adapter is registered. Read from `VITE_NATS_WS_URL` or `NATS_WS_URL`. |
|
|
35
|
+
| `events.natsToken` | `string \| null` | NATS auth token for browser connections. Only present when a NATS adapter is registered. Read from `NATS_TOKEN`. |
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# lt.files
|
|
2
|
+
|
|
3
|
+
File storage operations — browse, inspect, share, and delete files in the storage backend (S3, MinIO, or local filesystem).
|
|
4
|
+
|
|
5
|
+
## browse
|
|
6
|
+
|
|
7
|
+
List files and directories at a given prefix.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.files.browse({
|
|
11
|
+
prefix: 'screenshots/google/',
|
|
12
|
+
pageSize: 100,
|
|
13
|
+
});
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
| Parameter | Type | Required | Description |
|
|
17
|
+
|-----------|------|----------|-------------|
|
|
18
|
+
| `prefix` | `string` | No | Directory prefix to list |
|
|
19
|
+
| `pageSize` | `number` | No | Max results (default: 100) |
|
|
20
|
+
| `continuationToken` | `string` | No | Pagination token |
|
|
21
|
+
|
|
22
|
+
**Returns:** `LTApiResult<{ files: FileEntry[], directories: string[], nextToken?: string }>`
|
|
23
|
+
|
|
24
|
+
## getMetadata
|
|
25
|
+
|
|
26
|
+
Get metadata for a single file. Content type is inferred from the file extension when the storage backend returns a generic type.
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
const result = await lt.files.getMetadata({ filePath: 'screenshots/page.png' });
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
| Parameter | Type | Required | Description |
|
|
33
|
+
|-----------|------|----------|-------------|
|
|
34
|
+
| `filePath` | `string` | Yes | Path to the file |
|
|
35
|
+
|
|
36
|
+
**Returns:** `LTApiResult<{ path, size, modified_at, content_type }>`
|
|
37
|
+
|
|
38
|
+
## delete
|
|
39
|
+
|
|
40
|
+
Permanently delete a file from storage.
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
const result = await lt.files.delete({ filePath: 'screenshots/page.png' });
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
| Parameter | Type | Required | Description |
|
|
47
|
+
|-----------|------|----------|-------------|
|
|
48
|
+
| `filePath` | `string` | Yes | Path to the file |
|
|
49
|
+
|
|
50
|
+
**Returns:** `LTApiResult<{ deleted, path }>`
|
|
51
|
+
|
|
52
|
+
## generateSignedUrl
|
|
53
|
+
|
|
54
|
+
Generate a time-limited signed URL for sharing.
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
const result = await lt.files.generateSignedUrl({
|
|
58
|
+
filePath: 'screenshots/page.png',
|
|
59
|
+
expiresIn: 3600,
|
|
60
|
+
});
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
| Parameter | Type | Required | Description |
|
|
64
|
+
|-----------|------|----------|-------------|
|
|
65
|
+
| `filePath` | `string` | Yes | Path to the file |
|
|
66
|
+
| `expiresIn` | `number` | Yes | Expiry in seconds (`3600`, `21600`, `86400`, `604800`, `2592000`) |
|
|
67
|
+
|
|
68
|
+
**Returns:** `LTApiResult<{ url, expiresAt }>`
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# lt.knowledge
|
|
2
|
+
|
|
3
|
+
Knowledge store operations — domain-scoped key-value entries backed by PostgreSQL JSONB.
|
|
4
|
+
|
|
5
|
+
## listDomains
|
|
6
|
+
|
|
7
|
+
List all knowledge domains with entry counts.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.knowledge.listDomains();
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:** None
|
|
14
|
+
|
|
15
|
+
**Returns:** `LTApiResult<{ domains: Array<{ domain, count, latest }> }>`
|
|
16
|
+
|
|
17
|
+
## listEntries
|
|
18
|
+
|
|
19
|
+
List entries within a domain.
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
const result = await lt.knowledge.listEntries({
|
|
23
|
+
domain: 'screenshot',
|
|
24
|
+
search: 'google',
|
|
25
|
+
tags: ['web'],
|
|
26
|
+
limit: 50,
|
|
27
|
+
offset: 0,
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
| Parameter | Type | Required | Description |
|
|
32
|
+
|-----------|------|----------|-------------|
|
|
33
|
+
| `domain` | `string` | Yes | Domain to query |
|
|
34
|
+
| `search` | `string` | No | Search by key name or tag (partial match) |
|
|
35
|
+
| `tags` | `string[]` | No | Filter by tag overlap |
|
|
36
|
+
| `limit` | `number` | No | Max results (default: 50, max: 200) |
|
|
37
|
+
| `offset` | `number` | No | Pagination offset |
|
|
38
|
+
|
|
39
|
+
**Returns:** `LTApiResult<{ entries: KnowledgeEntry[], total: number }>`
|
|
40
|
+
|
|
41
|
+
## getEntry
|
|
42
|
+
|
|
43
|
+
Get a single entry by domain and key.
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
const result = await lt.knowledge.getEntry({
|
|
47
|
+
domain: 'screenshot',
|
|
48
|
+
key: 'google',
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Returns:** `LTApiResult<KnowledgeEntry>` or `{ found: false }` if not found.
|
|
53
|
+
|
|
54
|
+
## storeEntry
|
|
55
|
+
|
|
56
|
+
Create or update a knowledge entry. Data is merged by default; set `replace: true` to fully overwrite.
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const result = await lt.knowledge.storeEntry({
|
|
60
|
+
domain: 'screenshot',
|
|
61
|
+
key: 'google',
|
|
62
|
+
data: { '2026-05-09': 'The Google homepage...' },
|
|
63
|
+
tags: ['web'],
|
|
64
|
+
replace: false,
|
|
65
|
+
});
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
| Parameter | Type | Required | Description |
|
|
69
|
+
|-----------|------|----------|-------------|
|
|
70
|
+
| `domain` | `string` | Yes | Domain |
|
|
71
|
+
| `key` | `string` | Yes | Entry key |
|
|
72
|
+
| `data` | `object` | Yes | JSONB data to store |
|
|
73
|
+
| `tags` | `string[]` | No | Tags (unioned on upsert) |
|
|
74
|
+
| `replace` | `boolean` | No | Full replacement instead of merge |
|
|
75
|
+
|
|
76
|
+
**Returns:** `LTApiResult<{ id, domain, key, created, updated_at }>`
|
|
77
|
+
|
|
78
|
+
## setField
|
|
79
|
+
|
|
80
|
+
Set a value at a specific JSONB path without overwriting sibling fields.
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
const result = await lt.knowledge.setField({
|
|
84
|
+
domain: 'research',
|
|
85
|
+
key: 'screenshots',
|
|
86
|
+
path: 'google.holiday',
|
|
87
|
+
value: "Mother's Day doodle with flowers",
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
| Parameter | Type | Required | Description |
|
|
92
|
+
|-----------|------|----------|-------------|
|
|
93
|
+
| `domain` | `string` | Yes | Domain |
|
|
94
|
+
| `key` | `string` | Yes | Entry key |
|
|
95
|
+
| `path` | `string` | Yes | Dot-notation path |
|
|
96
|
+
| `value` | `any` | Yes | Value to set (any JSON type) |
|
|
97
|
+
| `tags` | `string[]` | No | Tags to union |
|
|
98
|
+
|
|
99
|
+
**Returns:** `LTApiResult<{ id, domain, key, created, updated_at }>`
|
|
100
|
+
|
|
101
|
+
## removeField
|
|
102
|
+
|
|
103
|
+
Remove a specific field at a JSONB path.
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
const result = await lt.knowledge.removeField({
|
|
107
|
+
domain: 'research',
|
|
108
|
+
key: 'screenshots',
|
|
109
|
+
path: 'google.legacy_data',
|
|
110
|
+
});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Returns:** `LTApiResult<{ removed }>`
|
|
114
|
+
|
|
115
|
+
## deleteEntry
|
|
116
|
+
|
|
117
|
+
Permanently delete a knowledge entry.
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
const result = await lt.knowledge.deleteEntry({
|
|
121
|
+
domain: 'screenshot',
|
|
122
|
+
key: 'google',
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Returns:** `LTApiResult<{ deleted, domain, key }>`
|
package/docs/api/sdk/settings.md
CHANGED
|
@@ -18,7 +18,8 @@ const result = await lt.settings.get();
|
|
|
18
18
|
|-------|------|-------------|
|
|
19
19
|
| `telemetry.traceUrl` | `string \| null` | Trace URL for the telemetry provider |
|
|
20
20
|
| `escalation.claimDurations` | `number[]` | Available claim duration options (minutes) |
|
|
21
|
-
| `events.transport` | `'socketio' \| 'nats' \| 'none'` |
|
|
22
|
-
| `events.natsWsUrl` | `string \| null` | NATS WebSocket URL (
|
|
21
|
+
| `events.transport` | `'socketio' \| 'nats' \| 'none'` | Dashboard event transport (default: `socketio`; `nats` when `EVENT_TRANSPORT=nats`) |
|
|
22
|
+
| `events.natsWsUrl` | `string \| null` | NATS WebSocket URL (present when NATS adapter registered) |
|
|
23
|
+
| `events.natsToken` | `string \| null` | NATS auth token (present when NATS adapter registered) |
|
|
23
24
|
|
|
24
25
|
**Auth:** Not required
|
package/docs/cli.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# CLI
|
|
2
|
+
|
|
3
|
+
`ltc` is the command-line interface for Long Tail. It provides terminal access to the same capabilities as the dashboard and SDK — escalations, workflows, knowledge, MCP servers, and the durable-to-YAML compiler.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @hotmeshio/long-tail
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or run without installing:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx @hotmeshio/long-tail ltc --help
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Connect
|
|
18
|
+
|
|
19
|
+
### Interactive login
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
ltc login
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Prompts for server URL, username, and password. Stores credentials in `~/.config/longtail/credentials.json` (file permissions `0600`).
|
|
26
|
+
|
|
27
|
+
### Non-interactive (CI / scripts)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
ltc login --server http://localhost:3000 --username superadmin --password 'l0ngt@1l'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Environment variables
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
export LT_SERVER=http://localhost:3000
|
|
37
|
+
export LT_TOKEN=eyJ...
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Environment variables take precedence over stored credentials.
|
|
41
|
+
|
|
42
|
+
### Token lifecycle
|
|
43
|
+
|
|
44
|
+
- JWT expires in 24 hours
|
|
45
|
+
- The CLI checks expiry before each call and auto-refreshes using stored credentials
|
|
46
|
+
- `ltc logout` clears stored credentials
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Commands
|
|
51
|
+
|
|
52
|
+
### Status
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
ltc status
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Shows pending escalations, active workers, pipeline tools, and event transport.
|
|
59
|
+
|
|
60
|
+
### Escalations
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ltc esc list # All escalations
|
|
64
|
+
ltc esc list --status pending # Pending only
|
|
65
|
+
ltc esc list --role reviewer --limit 10 # Filter by role
|
|
66
|
+
ltc esc get abc123 # Detail view
|
|
67
|
+
ltc esc claim abc123 # Claim for yourself
|
|
68
|
+
ltc esc claim abc123 --duration 60 # Claim for 60 minutes
|
|
69
|
+
ltc esc release abc123 # Release back to pool
|
|
70
|
+
ltc esc resolve abc123 --data '{"approved": true}' # Resolve with payload
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Workflows
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
ltc wf list # Discovered workflows
|
|
77
|
+
ltc wf invoke reviewContent --data '{"content": "test"}'
|
|
78
|
+
ltc wf status wf-abc123 # Check status (running/completed)
|
|
79
|
+
ltc wf result wf-abc123 # Get result payload
|
|
80
|
+
ltc wf terminate wf-abc123 # Terminate a running workflow
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Pipeline Tools (YAML Workflows)
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
ltc pip list # All pipeline tools
|
|
87
|
+
ltc pip list --status active # Active only
|
|
88
|
+
ltc pip get abc123 # Detail view
|
|
89
|
+
ltc pip deploy abc123 # Deploy a draft
|
|
90
|
+
ltc pip invoke abc123 --data '{"url": "https://example.com"}' --sync
|
|
91
|
+
ltc pip archive abc123 # Archive
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Knowledge Store
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
ltc kb domains # List domains
|
|
98
|
+
ltc kb list research # List entries in domain
|
|
99
|
+
ltc kb list research --search google # Search by key or tag
|
|
100
|
+
ltc kb get research google # Full entry with data
|
|
101
|
+
ltc kb set research google holiday "Mother's Day" # Set nested field
|
|
102
|
+
ltc kb remove research google legacy_data # Remove a field
|
|
103
|
+
ltc kb delete research google # Delete entire entry
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### MCP Servers
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
ltc mcp servers # List registered servers
|
|
110
|
+
ltc mcp tools SERVER_ID # List tools for a server
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Users (admin)
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
ltc users list
|
|
117
|
+
ltc users get USER_ID
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Compiler
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
ltc compile workflows/my-workflow.ts # Compile durable → YAML
|
|
124
|
+
ltc compile src/workflows/ --dry-run # Scan without compiling
|
|
125
|
+
ltc compile --model claude-opus-4-6 # Use a specific model
|
|
126
|
+
ltc init # Create .env template
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Output Modes
|
|
132
|
+
|
|
133
|
+
Every list command supports three output modes:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
ltc esc list # Formatted table (default)
|
|
137
|
+
ltc esc list --json # Raw JSON (for jq, scripting)
|
|
138
|
+
ltc esc list -q # IDs only, one per line
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Pipe-friendly:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ltc esc list --json | jq '.escalations[].id'
|
|
145
|
+
ltc pip list -q | xargs -I {} ltc pip get {}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Configuration
|
|
151
|
+
|
|
152
|
+
| Variable | Description |
|
|
153
|
+
|---|---|
|
|
154
|
+
| `LT_SERVER` | Server URL (overrides stored credentials) |
|
|
155
|
+
| `LT_TOKEN` | JWT token (overrides stored credentials) |
|
|
156
|
+
| `ANTHROPIC_API_KEY` | Required for `ltc compile` (Claude models) |
|
|
157
|
+
| `OPENAI_API_KEY` | Required for `ltc compile` (OpenAI models) |
|
|
158
|
+
| `LT_LLM_MODEL_PRIMARY` | Model for compilation (default: `claude-sonnet-4-6`) |
|
|
159
|
+
|
|
160
|
+
Credentials file: `~/.config/longtail/credentials.json`
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Aliases
|
|
165
|
+
|
|
166
|
+
| Full | Short |
|
|
167
|
+
|---|---|
|
|
168
|
+
| `ltc escalations` | `ltc esc` |
|
|
169
|
+
| `ltc workflows` | `ltc wf` |
|
|
170
|
+
| `ltc pipelines` | `ltc pip` |
|
|
171
|
+
| `ltc knowledge` | `ltc kb` |
|
package/docs/compilation.md
CHANGED
|
@@ -134,3 +134,19 @@ Every subsequent occurrence is routed automatically. A single LLM call extracts
|
|
|
134
134
|
Each compiled workflow is itself a discoverable MCP tool. Other workflows and agents can invoke it. Solutions compose. The inventory of deterministic pathways grows with every problem the system solves, and the fraction of requests that require LLM reasoning shrinks.
|
|
135
135
|
|
|
136
136
|
The dynamic path remains for genuinely new problems. But the long tail gets shorter.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Compilation from Source Code
|
|
141
|
+
|
|
142
|
+
The Pipeline Designer compiles from execution traces — the dynamic path. But there's a second entry point: compiling directly from source code.
|
|
143
|
+
|
|
144
|
+
If you've written a durable workflow using the Temporal-like API (`proxyActivities`, `sleep`, `condition`, `startChild`), you can compile it to a YAML DAG without executing it first. The `ltc` CLI reads your TypeScript source, extracts the orchestration structure, and produces an equivalent DAG that runs without replay overhead.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
ltc compile workflows/assembly-line.ts
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The source is the spec. The compiled YAML is the optimized execution. Both live in the repo.
|
|
151
|
+
|
|
152
|
+
See the [Compiler Guide](compiler.md) for the full walkthrough.
|