@hotmeshio/long-tail 0.1.16 → 0.1.18
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/build/api/escalations/resolve.js +1 -0
- package/build/api/files.d.ts +4 -0
- package/build/api/files.js +14 -0
- package/build/api/workflows/config.js +5 -0
- package/build/index.d.ts +1 -1
- package/build/index.js +3 -3
- package/build/lib/db/schemas/002_seed.sql +3 -81
- package/build/lib/storage/mime.js +20 -0
- package/build/routes/file-browser.js +30 -0
- package/build/routes/files.js +20 -18
- package/build/services/config/sql.d.ts +3 -0
- package/build/services/config/sql.js +15 -1
- package/build/services/config/write.d.ts +6 -0
- package/build/services/config/write.js +64 -0
- package/build/services/cron/index.d.ts +5 -0
- package/build/services/cron/index.js +30 -0
- package/build/services/insight/index.js +3 -0
- package/build/services/interceptor/activities/task.d.ts +1 -0
- package/build/services/interceptor/activities/task.js +2 -1
- package/build/services/interceptor/activities/workflow.js +1 -0
- package/build/services/interceptor/index.js +4 -4
- package/build/services/interceptor/lifecycle.js +1 -1
- package/build/services/mcp/db.d.ts +17 -0
- package/build/services/mcp/db.js +50 -0
- package/build/services/mcp/sql.d.ts +4 -1
- package/build/services/mcp/sql.js +9 -2
- package/build/services/oauth/index.js +4 -1
- package/build/services/oauth/providers/google.js +7 -2
- package/build/services/orchestrator/index.js +5 -0
- package/build/services/task/crud.js +1 -0
- package/build/services/task/sql.d.ts +1 -1
- package/build/services/task/sql.js +2 -2
- package/build/services/task/types.d.ts +2 -0
- package/build/services/workers/registry.js +3 -1
- package/build/services/workflow-invocation.js +8 -1
- package/build/start/workers.d.ts +2 -1
- package/build/start/workers.js +66 -6
- package/build/system/index.d.ts +12 -10
- package/build/system/index.js +240 -67
- package/build/system/mcp-servers/playwright/schemas.d.ts +12 -12
- package/build/system/seed/index.d.ts +0 -7
- package/build/system/seed/index.js +5 -46
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/startup.d.ts +59 -2
- package/dashboard/dist/assets/AdminDashboard-CsTOErp1.js +2 -0
- package/dashboard/dist/assets/{AdminDashboard-Bprul9Eb.js.map → AdminDashboard-CsTOErp1.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-BqQA3IJp.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-H_z5mC10.js.map → AvailableEscalationsPage-BqQA3IJp.js.map} +1 -1
- package/dashboard/dist/assets/BotPicker-C2xR1xay.js +2 -0
- package/dashboard/dist/assets/{BotPicker-DcvILNUf.js.map → BotPicker-C2xR1xay.js.map} +1 -1
- package/dashboard/dist/assets/CollapsibleSection-CRtHQsAv.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-BWPbzgEe.js.map → CollapsibleSection-CRtHQsAv.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-dOxidrSR.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-Cy6KVLfC.js.map → ConfirmDeleteModal-dOxidrSR.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-DmLF-RqZ.js +2 -0
- package/dashboard/dist/assets/{CopyableId-CRED8hvk.js.map → CopyableId-DmLF-RqZ.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-C7XT1bnO.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-C7XT1bnO.js.map +1 -0
- package/dashboard/dist/assets/CustomDurationPicker-BABUv1V2.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-eOk2EqQ5.js.map → CustomDurationPicker-BABUv1V2.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-D3-wSEf0.js +2 -0
- package/dashboard/dist/assets/{DataTable-bd2PTBJd.js.map → DataTable-D3-wSEf0.js.map} +1 -1
- package/dashboard/dist/assets/DropZone-DHKmMqRA.js +2 -0
- package/dashboard/dist/assets/DropZone-DHKmMqRA.js.map +1 -0
- package/dashboard/dist/assets/ElapsedCell-DrJif03B.js +2 -0
- package/dashboard/dist/assets/{ElapsedCell-BGo8vyus.js.map → ElapsedCell-DrJif03B.js.map} +1 -1
- package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +2 -0
- package/dashboard/dist/assets/EmptyState-BcsfPq9T.js.map +1 -0
- package/dashboard/dist/assets/EscalationsOverview-H6CwfeR-.js +2 -0
- package/dashboard/dist/assets/EscalationsOverview-H6CwfeR-.js.map +1 -0
- package/dashboard/dist/assets/EventTable-Dh3_9DAY.js +2 -0
- package/dashboard/dist/assets/{EventTable-CmFhswLW.js.map → EventTable-Dh3_9DAY.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
- package/dashboard/dist/assets/{FilterBar-BQNzsd3A.js.map → FilterBar-Ck4K4rzu.js.map} +1 -1
- package/dashboard/dist/assets/ListToolbar-CyEkulVR.js +2 -0
- package/dashboard/dist/assets/{ListToolbar-OWOn-HiC.js.map → ListToolbar-CyEkulVR.js.map} +1 -1
- package/dashboard/dist/assets/McpOverview-ChLa6Gl7.js +2 -0
- package/dashboard/dist/assets/{McpOverview-OkEzvClD.js.map → McpOverview-ChLa6Gl7.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-5Dsj6PlL.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-5Dsj6PlL.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-D2DmDFPu.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-D2DmDFPu.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-ERVuNEEK.js +2 -0
- package/dashboard/dist/assets/{McpRunDetailPage-DMeiG4i_.js.map → McpRunDetailPage-ERVuNEEK.js.map} +1 -1
- package/dashboard/dist/assets/McpRunsPage-BKba-3Wl.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-BKba-3Wl.js.map +1 -0
- package/dashboard/dist/assets/Modal-DEODGeqx.js +2 -0
- package/dashboard/dist/assets/{Modal-Dir9Rlnx.js.map → Modal-DEODGeqx.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-CJm_BTPU.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-OqWC6Azy.js.map → OperatorDashboard-CJm_BTPU.js.map} +1 -1
- package/dashboard/dist/assets/PageHeader-B-SN5GZ2.js +2 -0
- package/dashboard/dist/assets/PageHeader-B-SN5GZ2.js.map +1 -0
- package/dashboard/dist/assets/PageHeaderWithStats-BZ3AGT5s.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-BZ3AGT5s.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-C7D5d_HY.js.map → PriorityBadge-DfQY9St9.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-vfnCDyQK.js +2 -0
- package/dashboard/dist/assets/{ProcessDetailPage-DZIP6grw.js.map → ProcessDetailPage-vfnCDyQK.js.map} +1 -1
- package/dashboard/dist/assets/ProcessesListPage-DcAN6AJK.js +2 -0
- package/dashboard/dist/assets/ProcessesListPage-DcAN6AJK.js.map +1 -0
- package/dashboard/dist/assets/RolePill-BhVC0cc3.js +2 -0
- package/dashboard/dist/assets/{RolePill-D6nMxMvp.js.map → RolePill-BhVC0cc3.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-DYSt2aAr.js +2 -0
- package/dashboard/dist/assets/RolesPage-DYSt2aAr.js.map +1 -0
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
- package/dashboard/dist/assets/{RowActions-JqgAB0p3.js.map → RowActions-Dg-Fsm5O.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-CD7_Dmb0.js +2 -0
- package/dashboard/dist/assets/{RunAsSelector-KAlKtitB.js.map → RunAsSelector-CD7_Dmb0.js.map} +1 -1
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
- package/dashboard/dist/assets/{StatCard-B-WLhOaH.js.map → StatCard-DlgF0CJC.js.map} +1 -1
- package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js +2 -0
- package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js.map +1 -0
- package/dashboard/dist/assets/StepIndicator-CuUIGxKk.js +2 -0
- package/dashboard/dist/assets/{StepIndicator-D9Xvdf18.js.map → StepIndicator-CuUIGxKk.js.map} +1 -1
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-CJHMzYJj.js.map → StickyPagination-F9FZsRy9.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-CUl5RdXU.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-CUl5RdXU.js.map +1 -0
- package/dashboard/dist/assets/TagInput-DftaRHDV.js +2 -0
- package/dashboard/dist/assets/{TagInput-DcPnUnSJ.js.map → TagInput-DftaRHDV.js.map} +1 -1
- package/dashboard/dist/assets/TaskDetailPage-BoA-cfwW.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-BoA-cfwW.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-Ce8KlXtR.js +2 -0
- package/dashboard/dist/assets/TaskQueuePill-Ce8KlXtR.js.map +1 -0
- package/dashboard/dist/assets/TasksListPage-g6XIbhju.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-DeewV4Gp.js.map → TasksListPage-g6XIbhju.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-BihIwEbB.js +2 -0
- package/dashboard/dist/assets/{TimeAgo-DJZq-e4R.js.map → TimeAgo-BihIwEbB.js.map} +1 -1
- package/dashboard/dist/assets/TimestampCell-GOFcvE-i.js +2 -0
- package/dashboard/dist/assets/{TimestampCell-Dx5uwGfS.js.map → TimestampCell-GOFcvE-i.js.map} +1 -1
- package/dashboard/dist/assets/UserName-CmMVt4vS.js +2 -0
- package/dashboard/dist/assets/{UserName-CnGk7MgL.js.map → UserName-CmMVt4vS.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-soRFz_30.js +2 -0
- package/dashboard/dist/assets/{WorkflowExecutionPage-CPQ0fIwf.js.map → WorkflowExecutionPage-soRFz_30.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-DUDDyBsj.js +2 -0
- package/dashboard/dist/assets/{WorkflowPill-BrD5d1AG.js.map → WorkflowPill-DUDDyBsj.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowsDashboard-Be1A1zAT.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-Be1A1zAT.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-z3Ztiz1y.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-lBp2E6rN.js.map → WorkflowsOverview-z3Ztiz1y.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-C6qzcQcJ.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-C6qzcQcJ.js.map +1 -0
- package/dashboard/dist/assets/{bots-fc_O_YIq.js → bots-BZPXDh_y.js} +2 -2
- package/dashboard/dist/assets/{bots-fc_O_YIq.js.map → bots-BZPXDh_y.js.map} +1 -1
- package/dashboard/dist/assets/escalation-DBUIq1Z4.js +2 -0
- package/dashboard/dist/assets/{escalation-BYhLYHBz.js.map → escalation-DBUIq1Z4.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-DL4zsR8Y.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-DjJyuC1g.js.map → escalation-columns-DL4zsR8Y.js.map} +1 -1
- package/dashboard/dist/assets/helpers-D50KFFkI.js +2 -0
- package/dashboard/dist/assets/{helpers-CQG3Rh2y.js.map → helpers-D50KFFkI.js.map} +1 -1
- package/dashboard/dist/assets/index-B-ioA6yv.js +2 -0
- package/dashboard/dist/assets/index-B-ioA6yv.js.map +1 -0
- package/dashboard/dist/assets/index-B-jzKfuv.js +2 -0
- package/dashboard/dist/assets/index-B-jzKfuv.js.map +1 -0
- package/dashboard/dist/assets/index-BMpoMc4A.js +2 -0
- package/dashboard/dist/assets/{index-D51PaQZY.js.map → index-BMpoMc4A.js.map} +1 -1
- package/dashboard/dist/assets/index-BU04qgJt.js +15 -0
- package/dashboard/dist/assets/index-BU04qgJt.js.map +1 -0
- package/dashboard/dist/assets/index-BUjxYyxc.js +63 -0
- package/dashboard/dist/assets/index-BUjxYyxc.js.map +1 -0
- package/dashboard/dist/assets/index-BpoHVMV7.js +2 -0
- package/dashboard/dist/assets/index-BpoHVMV7.js.map +1 -0
- package/dashboard/dist/assets/index-CEnDYJOO.js +2 -0
- package/dashboard/dist/assets/index-CEnDYJOO.js.map +1 -0
- package/dashboard/dist/assets/index-CbuH92vk.js +6 -0
- package/dashboard/dist/assets/index-CbuH92vk.js.map +1 -0
- package/dashboard/dist/assets/index-D9_hZmsW.js +5 -0
- package/dashboard/dist/assets/{index-KYpLvJKB.js.map → index-D9_hZmsW.js.map} +1 -1
- package/dashboard/dist/assets/index-DrouIN-M.js +2 -0
- package/dashboard/dist/assets/{index-DR4qQvlW.js.map → index-DrouIN-M.js.map} +1 -1
- package/dashboard/dist/assets/index-DzICLMI7.js +2 -0
- package/dashboard/dist/assets/{index-DNtXXy1o.js.map → index-DzICLMI7.js.map} +1 -1
- package/dashboard/dist/assets/index-efS5gKpv.css +1 -0
- package/dashboard/dist/assets/index-qT78AZDq.js +2 -0
- package/dashboard/dist/assets/index-qT78AZDq.js.map +1 -0
- package/dashboard/dist/assets/mcp-D0GrHRFe.js +2 -0
- package/dashboard/dist/assets/{mcp-D2XfRh8v.js.map → mcp-D0GrHRFe.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-CIx_mIC7.js → mcp-query-DC5woQn5.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-CIx_mIC7.js.map → mcp-query-DC5woQn5.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-C9_J4LIH.js → mcp-runs-CsoVQoPB.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-C9_J4LIH.js.map → mcp-runs-CsoVQoPB.js.map} +1 -1
- package/dashboard/dist/assets/namespaces-unpIb4gX.js +2 -0
- package/dashboard/dist/assets/{namespaces-BwMljx6f.js.map → namespaces-unpIb4gX.js.map} +1 -1
- package/dashboard/dist/assets/{roles-Bd_sTV6I.js → roles--kBaFljg.js} +2 -2
- package/dashboard/dist/assets/{roles-Bd_sTV6I.js.map → roles--kBaFljg.js.map} +1 -1
- package/dashboard/dist/assets/settings-B96YkawY.js +2 -0
- package/dashboard/dist/assets/{settings-BCb8eFyA.js.map → settings-B96YkawY.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Bq54qGGq.js → tasks-D_1NCfOZ.js} +2 -2
- package/dashboard/dist/assets/{tasks-Bq54qGGq.js.map → tasks-D_1NCfOZ.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-BTbGf536.js → useEventHooks-BPjEkCpD.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-BTbGf536.js.map → useEventHooks-BPjEkCpD.js.map} +1 -1
- package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js → useExpandedRows-CkcEntB-.js} +2 -2
- package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js.map → useExpandedRows-CkcEntB-.js.map} +1 -1
- package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js → useFilterParams-DZCAaBC7.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js.map → useFilterParams-DZCAaBC7.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CsYP09W5.js → useYamlActivityEvents-D3RQjfzo.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CsYP09W5.js.map → useYamlActivityEvents-D3RQjfzo.js.map} +1 -1
- package/dashboard/dist/assets/{users-BTBhafGc.js → users-e2oatvoj.js} +2 -2
- package/dashboard/dist/assets/{users-BTBhafGc.js.map → users-e2oatvoj.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-CWl44VA6.js → vendor-icons-BkK55L-1.js} +103 -88
- package/dashboard/dist/assets/vendor-icons-BkK55L-1.js.map +1 -0
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-CX88sFS5.js +22 -0
- package/dashboard/dist/assets/vendor-react-CX88sFS5.js.map +1 -0
- package/dashboard/dist/assets/{workflows-BkzA4ahe.js → workflows-D6diL54s.js} +2 -2
- package/dashboard/dist/assets/{workflows-BkzA4ahe.js.map → workflows-D6diL54s.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-Cs0EYp0F.js → yaml-workflows-CAKU7LUu.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-Cs0EYp0F.js.map → yaml-workflows-CAKU7LUu.js.map} +1 -1
- package/dashboard/dist/index.html +5 -5
- package/docs/dashboard.md +233 -65
- package/package.json +3 -2
- package/build/examples/external-mcp-server/server.d.ts +0 -17
- package/build/examples/external-mcp-server/server.js +0 -116
- package/build/examples/index.d.ts +0 -2
- package/build/examples/index.js +0 -7
- package/build/examples/seed-data.d.ts +0 -55
- package/build/examples/seed-data.js +0 -161
- package/build/examples/seed.d.ts +0 -5
- package/build/examples/seed.js +0 -132
- package/build/examples/types/envelopes.d.ts +0 -69
- package/build/examples/types/envelopes.js +0 -8
- package/build/examples/types/index.d.ts +0 -10
- package/build/examples/types/index.js +0 -9
- package/build/examples/types/resolvers.d.ts +0 -27
- package/build/examples/types/resolvers.js +0 -9
- package/build/examples/workers.d.ts +0 -10
- package/build/examples/workers.js +0 -59
- package/build/examples/workflows/assembly-line/activities.d.ts +0 -28
- package/build/examples/workflows/assembly-line/activities.js +0 -53
- package/build/examples/workflows/assembly-line/index.d.ts +0 -17
- package/build/examples/workflows/assembly-line/index.js +0 -60
- package/build/examples/workflows/assembly-line/iterator.d.ts +0 -12
- package/build/examples/workflows/assembly-line/iterator.js +0 -54
- package/build/examples/workflows/assembly-line/reverter.d.ts +0 -18
- package/build/examples/workflows/assembly-line/reverter.js +0 -89
- package/build/examples/workflows/assembly-line/types.d.ts +0 -25
- package/build/examples/workflows/assembly-line/types.js +0 -8
- package/build/examples/workflows/assembly-line/worker.d.ts +0 -13
- package/build/examples/workflows/assembly-line/worker.js +0 -81
- package/build/examples/workflows/basic-echo/activities.d.ts +0 -20
- package/build/examples/workflows/basic-echo/activities.js +0 -55
- package/build/examples/workflows/basic-echo/index.d.ts +0 -14
- package/build/examples/workflows/basic-echo/index.js +0 -66
- package/build/examples/workflows/basic-signal/activities.d.ts +0 -17
- package/build/examples/workflows/basic-signal/activities.js +0 -18
- package/build/examples/workflows/basic-signal/index.d.ts +0 -17
- package/build/examples/workflows/basic-signal/index.js +0 -116
- package/build/examples/workflows/kitchen-sink/activities.d.ts +0 -40
- package/build/examples/workflows/kitchen-sink/activities.js +0 -46
- package/build/examples/workflows/kitchen-sink/index.d.ts +0 -22
- package/build/examples/workflows/kitchen-sink/index.js +0 -123
- package/build/examples/workflows/review-content/activities.d.ts +0 -10
- package/build/examples/workflows/review-content/activities.js +0 -44
- package/build/examples/workflows/review-content/index.d.ts +0 -10
- package/build/examples/workflows/review-content/index.js +0 -95
- package/build/examples/workflows/review-content/types.d.ts +0 -28
- package/build/examples/workflows/review-content/types.js +0 -2
- package/build/lib/db/schemas/schemas/001_schema.sql +0 -485
- package/build/lib/db/schemas/schemas/002_seed.sql +0 -92
- package/build/system/seed/server-definitions.d.ts +0 -3210
- package/build/system/seed/server-definitions.js +0 -232
- package/dashboard/dist/assets/AdminDashboard-Bprul9Eb.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-H_z5mC10.js +0 -2
- package/dashboard/dist/assets/BotPicker-DcvILNUf.js +0 -2
- package/dashboard/dist/assets/CollapsibleSection-BWPbzgEe.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-Cy6KVLfC.js +0 -2
- package/dashboard/dist/assets/CopyableId-CRED8hvk.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-BUdvxiE3.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-BUdvxiE3.js.map +0 -1
- package/dashboard/dist/assets/CustomDurationPicker-eOk2EqQ5.js +0 -2
- package/dashboard/dist/assets/DataTable-bd2PTBJd.js +0 -2
- package/dashboard/dist/assets/ElapsedCell-BGo8vyus.js +0 -2
- package/dashboard/dist/assets/EmptyState-BygtU-Rh.js +0 -2
- package/dashboard/dist/assets/EmptyState-BygtU-Rh.js.map +0 -1
- package/dashboard/dist/assets/EscalationsOverview-DUEcN5MP.js +0 -2
- package/dashboard/dist/assets/EscalationsOverview-DUEcN5MP.js.map +0 -1
- package/dashboard/dist/assets/EventTable-CmFhswLW.js +0 -2
- package/dashboard/dist/assets/FilterBar-BQNzsd3A.js +0 -2
- package/dashboard/dist/assets/ListToolbar-OWOn-HiC.js +0 -2
- package/dashboard/dist/assets/McpOverview-OkEzvClD.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-C6Ih5sC_.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-C6Ih5sC_.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-BAuOf5TL.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-BAuOf5TL.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-DMeiG4i_.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-CG3cNJh8.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-CG3cNJh8.js.map +0 -1
- package/dashboard/dist/assets/Modal-Dir9Rlnx.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-OqWC6Azy.js +0 -2
- package/dashboard/dist/assets/PageHeader-FJIemmrC.js +0 -2
- package/dashboard/dist/assets/PageHeader-FJIemmrC.js.map +0 -1
- package/dashboard/dist/assets/PageHeaderWithStats-Br5y9qNO.js +0 -2
- package/dashboard/dist/assets/PageHeaderWithStats-Br5y9qNO.js.map +0 -1
- package/dashboard/dist/assets/PriorityBadge-C7D5d_HY.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-DZIP6grw.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-BQoPYkeB.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-BQoPYkeB.js.map +0 -1
- package/dashboard/dist/assets/RolePill-D6nMxMvp.js +0 -2
- package/dashboard/dist/assets/RolesPage-CwLnJFhy.js +0 -2
- package/dashboard/dist/assets/RolesPage-CwLnJFhy.js.map +0 -1
- package/dashboard/dist/assets/RowActions-JqgAB0p3.js +0 -2
- package/dashboard/dist/assets/RunAsSelector-KAlKtitB.js +0 -2
- package/dashboard/dist/assets/StatCard-B-WLhOaH.js +0 -2
- package/dashboard/dist/assets/StatusBadge-DVCf2ncM.js +0 -2
- package/dashboard/dist/assets/StatusBadge-DVCf2ncM.js.map +0 -1
- package/dashboard/dist/assets/StepIndicator-D9Xvdf18.js +0 -2
- package/dashboard/dist/assets/StickyPagination-CJHMzYJj.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-YiXPDyEL.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-YiXPDyEL.js.map +0 -1
- package/dashboard/dist/assets/TagInput-DcPnUnSJ.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-DftmYWD7.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-DftmYWD7.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-BzduBqwy.js +0 -2
- package/dashboard/dist/assets/TaskQueuePill-BzduBqwy.js.map +0 -1
- package/dashboard/dist/assets/TasksListPage-DeewV4Gp.js +0 -2
- package/dashboard/dist/assets/TimeAgo-DJZq-e4R.js +0 -2
- package/dashboard/dist/assets/TimestampCell-Dx5uwGfS.js +0 -2
- package/dashboard/dist/assets/UserName-CnGk7MgL.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-CPQ0fIwf.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BrD5d1AG.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-BzjhABZP.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-BzjhABZP.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsOverview-lBp2E6rN.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-C_MkAp2i.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-C_MkAp2i.js.map +0 -1
- package/dashboard/dist/assets/escalation-BYhLYHBz.js +0 -2
- package/dashboard/dist/assets/escalation-columns-DjJyuC1g.js +0 -2
- package/dashboard/dist/assets/helpers-CQG3Rh2y.js +0 -2
- package/dashboard/dist/assets/index-2nBhR7Dg.js +0 -2
- package/dashboard/dist/assets/index-2nBhR7Dg.js.map +0 -1
- package/dashboard/dist/assets/index-4IUoh_hd.js +0 -2
- package/dashboard/dist/assets/index-4IUoh_hd.js.map +0 -1
- package/dashboard/dist/assets/index-B2CqPzLK.js +0 -2
- package/dashboard/dist/assets/index-B2CqPzLK.js.map +0 -1
- package/dashboard/dist/assets/index-B78xalb4.js +0 -2
- package/dashboard/dist/assets/index-B78xalb4.js.map +0 -1
- package/dashboard/dist/assets/index-BI8r69O_.js +0 -2
- package/dashboard/dist/assets/index-BI8r69O_.js.map +0 -1
- package/dashboard/dist/assets/index-C5TUqJu0.css +0 -1
- package/dashboard/dist/assets/index-CUqCBBZG.js +0 -6
- package/dashboard/dist/assets/index-CUqCBBZG.js.map +0 -1
- package/dashboard/dist/assets/index-D51PaQZY.js +0 -2
- package/dashboard/dist/assets/index-DNtXXy1o.js +0 -2
- package/dashboard/dist/assets/index-DR4qQvlW.js +0 -2
- package/dashboard/dist/assets/index-Dh0PCbR-.js +0 -15
- package/dashboard/dist/assets/index-Dh0PCbR-.js.map +0 -1
- package/dashboard/dist/assets/index-KYpLvJKB.js +0 -5
- package/dashboard/dist/assets/index-sNrqYt0Q.js +0 -281
- package/dashboard/dist/assets/index-sNrqYt0Q.js.map +0 -1
- package/dashboard/dist/assets/mcp-D2XfRh8v.js +0 -2
- package/dashboard/dist/assets/namespaces-BwMljx6f.js +0 -2
- package/dashboard/dist/assets/settings-BCb8eFyA.js +0 -2
- package/dashboard/dist/assets/vendor-icons-CWl44VA6.js.map +0 -1
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +0 -35
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +0 -26
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +0 -1
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.exampleWorkers = void 0;
|
|
37
|
-
const reviewContentWorkflow = __importStar(require("./workflows/review-content"));
|
|
38
|
-
const kitchenSinkWorkflow = __importStar(require("./workflows/kitchen-sink"));
|
|
39
|
-
const basicEchoWorkflow = __importStar(require("./workflows/basic-echo"));
|
|
40
|
-
const assemblyLineWorkflow = __importStar(require("./workflows/assembly-line"));
|
|
41
|
-
const workstationWorkflow = __importStar(require("./workflows/assembly-line/worker"));
|
|
42
|
-
const stepIteratorWorkflow = __importStar(require("./workflows/assembly-line/iterator"));
|
|
43
|
-
const reverterWorkflow = __importStar(require("./workflows/assembly-line/reverter"));
|
|
44
|
-
const basicSignalWorkflow = __importStar(require("./workflows/basic-signal"));
|
|
45
|
-
/**
|
|
46
|
-
* Example workers that ship with Long Tail.
|
|
47
|
-
* Pass these to `start({ workers: [...exampleWorkers] })` or enable
|
|
48
|
-
* via `examples: true` in the start config.
|
|
49
|
-
*/
|
|
50
|
-
exports.exampleWorkers = [
|
|
51
|
-
{ taskQueue: 'long-tail-examples', workflow: reviewContentWorkflow.reviewContent },
|
|
52
|
-
{ taskQueue: 'long-tail-examples', workflow: kitchenSinkWorkflow.kitchenSink },
|
|
53
|
-
{ taskQueue: 'long-tail-examples', workflow: basicEchoWorkflow.basicEcho },
|
|
54
|
-
{ taskQueue: 'long-tail-examples', workflow: assemblyLineWorkflow.assemblyLine },
|
|
55
|
-
{ taskQueue: 'long-tail-examples', workflow: workstationWorkflow.workstation },
|
|
56
|
-
{ taskQueue: 'long-tail-examples', workflow: stepIteratorWorkflow.stepIterator },
|
|
57
|
-
{ taskQueue: 'long-tail-examples', workflow: reverterWorkflow.reverter },
|
|
58
|
-
{ taskQueue: 'long-tail-examples', workflow: basicSignalWorkflow.basicSignal },
|
|
59
|
-
];
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Assembly Line Activities
|
|
3
|
-
*
|
|
4
|
-
* Side-effect functions that run outside the deterministic workflow
|
|
5
|
-
* sandbox. Each is wrapped via proxyActivities so results are
|
|
6
|
-
* checkpointed and replayed on restart.
|
|
7
|
-
*
|
|
8
|
-
* Two responsibilities:
|
|
9
|
-
* 1. Create an escalation with signal routing so the resolve API
|
|
10
|
-
* can wake the paused child workflow.
|
|
11
|
-
* 2. Signal the parent orchestrator when the child completes.
|
|
12
|
-
*/
|
|
13
|
-
export declare function createStationEscalation(input: {
|
|
14
|
-
role: string;
|
|
15
|
-
stationName: string;
|
|
16
|
-
instructions: string;
|
|
17
|
-
workflowId: string;
|
|
18
|
-
workflowType: string;
|
|
19
|
-
taskQueue: string;
|
|
20
|
-
signalId: string;
|
|
21
|
-
}): Promise<string>;
|
|
22
|
-
export declare function signalParent(input: {
|
|
23
|
-
parentTaskQueue: string;
|
|
24
|
-
parentWorkflowType: string;
|
|
25
|
-
parentWorkflowId: string;
|
|
26
|
-
signalId: string;
|
|
27
|
-
data: any;
|
|
28
|
-
}): Promise<void>;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Assembly Line Activities
|
|
4
|
-
*
|
|
5
|
-
* Side-effect functions that run outside the deterministic workflow
|
|
6
|
-
* sandbox. Each is wrapped via proxyActivities so results are
|
|
7
|
-
* checkpointed and replayed on restart.
|
|
8
|
-
*
|
|
9
|
-
* Two responsibilities:
|
|
10
|
-
* 1. Create an escalation with signal routing so the resolve API
|
|
11
|
-
* can wake the paused child workflow.
|
|
12
|
-
* 2. Signal the parent orchestrator when the child completes.
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.createStationEscalation = createStationEscalation;
|
|
16
|
-
exports.signalParent = signalParent;
|
|
17
|
-
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
18
|
-
const db_1 = require("../../../lib/db");
|
|
19
|
-
const escalation_1 = require("../../../services/escalation");
|
|
20
|
-
// ── Create station escalation ──────────────────────────────────────
|
|
21
|
-
async function createStationEscalation(input) {
|
|
22
|
-
const escalation = await (0, escalation_1.createEscalation)({
|
|
23
|
-
type: 'assemblyLine',
|
|
24
|
-
subtype: input.stationName,
|
|
25
|
-
description: input.instructions,
|
|
26
|
-
priority: 2,
|
|
27
|
-
role: input.role,
|
|
28
|
-
envelope: JSON.stringify({ station: input.stationName }),
|
|
29
|
-
workflow_id: input.workflowId,
|
|
30
|
-
task_queue: input.taskQueue,
|
|
31
|
-
workflow_type: input.workflowType,
|
|
32
|
-
});
|
|
33
|
-
await (0, escalation_1.enrichEscalationRouting)(escalation.id, {
|
|
34
|
-
signal_routing: {
|
|
35
|
-
engine: 'durable',
|
|
36
|
-
taskQueue: input.taskQueue,
|
|
37
|
-
workflowType: input.workflowType,
|
|
38
|
-
workflowId: input.workflowId,
|
|
39
|
-
signalId: input.signalId,
|
|
40
|
-
},
|
|
41
|
-
}, {
|
|
42
|
-
workflowType: input.workflowType,
|
|
43
|
-
workflowId: input.workflowId,
|
|
44
|
-
taskQueue: input.taskQueue,
|
|
45
|
-
});
|
|
46
|
-
return escalation.id;
|
|
47
|
-
}
|
|
48
|
-
// ── Signal parent orchestrator ─────────────────────────────────────
|
|
49
|
-
async function signalParent(input) {
|
|
50
|
-
const client = new hotmesh_1.Durable.Client({ connection: (0, db_1.getConnection)() });
|
|
51
|
-
const handle = await client.workflow.getHandle(input.parentTaskQueue, input.parentWorkflowType, input.parentWorkflowId);
|
|
52
|
-
await handle.signal(input.signalId, input.data);
|
|
53
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Assembly Line — durable orchestrator with human task queues.
|
|
3
|
-
*
|
|
4
|
-
* Demonstrates the core composition pattern without the LT interceptor:
|
|
5
|
-
* startChild → spawn a child workflow (fire-and-forget)
|
|
6
|
-
* condition → pause until the child signals back
|
|
7
|
-
* signal → child wakes the parent when done
|
|
8
|
-
*
|
|
9
|
-
* A product moves through sequential workstations. Each station
|
|
10
|
-
* creates an escalation for a human operator, pauses, then signals
|
|
11
|
-
* the parent when the human resolves it.
|
|
12
|
-
*
|
|
13
|
-
* No registration, no certification, no interceptor — just Durable
|
|
14
|
-
* primitives and the escalation table.
|
|
15
|
-
*/
|
|
16
|
-
import type { LTEnvelope } from '../../../types';
|
|
17
|
-
export declare function assemblyLine(envelope: LTEnvelope): Promise<any>;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Assembly Line — durable orchestrator with human task queues.
|
|
4
|
-
*
|
|
5
|
-
* Demonstrates the core composition pattern without the LT interceptor:
|
|
6
|
-
* startChild → spawn a child workflow (fire-and-forget)
|
|
7
|
-
* condition → pause until the child signals back
|
|
8
|
-
* signal → child wakes the parent when done
|
|
9
|
-
*
|
|
10
|
-
* A product moves through sequential workstations. Each station
|
|
11
|
-
* creates an escalation for a human operator, pauses, then signals
|
|
12
|
-
* the parent when the human resolves it.
|
|
13
|
-
*
|
|
14
|
-
* No registration, no certification, no interceptor — just Durable
|
|
15
|
-
* primitives and the escalation table.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.assemblyLine = assemblyLine;
|
|
19
|
-
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
20
|
-
const defaults_1 = require("../../../modules/defaults");
|
|
21
|
-
async function assemblyLine(envelope) {
|
|
22
|
-
const { productName, stations } = envelope.data;
|
|
23
|
-
const ctx = hotmesh_1.Durable.workflow.workflowInfo();
|
|
24
|
-
const results = [];
|
|
25
|
-
for (const [i, station] of stations.entries()) {
|
|
26
|
-
const signalId = `station-${i}-${ctx.workflowId}`;
|
|
27
|
-
const childWorkflowId = `workstation-${ctx.workflowId}-${i}`;
|
|
28
|
-
// Spawn child — fire-and-forget; only the start is awaited
|
|
29
|
-
await hotmesh_1.Durable.workflow.startChild({
|
|
30
|
-
workflowName: 'workstation',
|
|
31
|
-
args: [
|
|
32
|
-
{
|
|
33
|
-
data: {
|
|
34
|
-
...station,
|
|
35
|
-
parentSignalId: signalId,
|
|
36
|
-
parentTaskQueue: 'long-tail-examples',
|
|
37
|
-
parentWorkflowType: 'assemblyLine',
|
|
38
|
-
parentWorkflowId: ctx.workflowId,
|
|
39
|
-
},
|
|
40
|
-
metadata: { source: 'assembly-line', station: station.stationName },
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
taskQueue: 'long-tail-examples',
|
|
44
|
-
workflowId: childWorkflowId,
|
|
45
|
-
expire: defaults_1.JOB_EXPIRE_SECS,
|
|
46
|
-
entity: 'workstation',
|
|
47
|
-
});
|
|
48
|
-
// Pause until the child signals back with its result
|
|
49
|
-
const result = await hotmesh_1.Durable.workflow.condition(signalId);
|
|
50
|
-
results.push(result);
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
type: 'return',
|
|
54
|
-
data: {
|
|
55
|
-
productName,
|
|
56
|
-
stations: results,
|
|
57
|
-
completedAt: new Date().toISOString(),
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Step Iterator — generic durable loop over dynamic steps.
|
|
3
|
-
*
|
|
4
|
-
* Proves that the number and shape of steps can be entirely
|
|
5
|
-
* data-driven. The orchestrator knows nothing about grinder,
|
|
6
|
-
* gluer, or any specific station — it just walks the list,
|
|
7
|
-
* spawns a child for each, and waits for the signal.
|
|
8
|
-
*
|
|
9
|
-
* Reuses the same `workstation` child workflow as the assembly line.
|
|
10
|
-
*/
|
|
11
|
-
import type { LTEnvelope } from '../../../types';
|
|
12
|
-
export declare function stepIterator(envelope: LTEnvelope): Promise<any>;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Step Iterator — generic durable loop over dynamic steps.
|
|
4
|
-
*
|
|
5
|
-
* Proves that the number and shape of steps can be entirely
|
|
6
|
-
* data-driven. The orchestrator knows nothing about grinder,
|
|
7
|
-
* gluer, or any specific station — it just walks the list,
|
|
8
|
-
* spawns a child for each, and waits for the signal.
|
|
9
|
-
*
|
|
10
|
-
* Reuses the same `workstation` child workflow as the assembly line.
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.stepIterator = stepIterator;
|
|
14
|
-
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
15
|
-
const defaults_1 = require("../../../modules/defaults");
|
|
16
|
-
async function stepIterator(envelope) {
|
|
17
|
-
const { name, steps } = envelope.data;
|
|
18
|
-
const ctx = hotmesh_1.Durable.workflow.workflowInfo();
|
|
19
|
-
const results = [];
|
|
20
|
-
for (const [i, step] of steps.entries()) {
|
|
21
|
-
const signalId = `step-${i}-${ctx.workflowId}`;
|
|
22
|
-
const childWorkflowId = `workstation-${ctx.workflowId}-${i}`;
|
|
23
|
-
await hotmesh_1.Durable.workflow.startChild({
|
|
24
|
-
workflowName: 'workstation',
|
|
25
|
-
args: [
|
|
26
|
-
{
|
|
27
|
-
data: {
|
|
28
|
-
...step,
|
|
29
|
-
parentSignalId: signalId,
|
|
30
|
-
parentTaskQueue: 'long-tail-examples',
|
|
31
|
-
parentWorkflowType: 'stepIterator',
|
|
32
|
-
parentWorkflowId: ctx.workflowId,
|
|
33
|
-
},
|
|
34
|
-
metadata: { source: 'step-iterator', step: i },
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
taskQueue: 'long-tail-examples',
|
|
38
|
-
workflowId: childWorkflowId,
|
|
39
|
-
expire: defaults_1.JOB_EXPIRE_SECS,
|
|
40
|
-
entity: 'workstation',
|
|
41
|
-
});
|
|
42
|
-
const result = await hotmesh_1.Durable.workflow.condition(signalId);
|
|
43
|
-
results.push(result);
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
type: 'return',
|
|
47
|
-
data: {
|
|
48
|
-
name,
|
|
49
|
-
totalSteps: steps.length,
|
|
50
|
-
steps: results,
|
|
51
|
-
completedAt: new Date().toISOString(),
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reverter — durable step loop with revert support.
|
|
3
|
-
*
|
|
4
|
-
* Like stepIterator, but each human resolution can send the
|
|
5
|
-
* pipeline backwards. The resolver payload controls flow:
|
|
6
|
-
*
|
|
7
|
-
* { approved: true } → advance to next step
|
|
8
|
-
* { approved: false, revertSteps: 1 } → go back 1 step
|
|
9
|
-
* { approved: false, revertSteps: 2 } → go back 2 steps
|
|
10
|
-
*
|
|
11
|
-
* The orchestrator tracks a monotonic attempt counter so every
|
|
12
|
-
* child spawn gets a unique workflow ID and signal key — even
|
|
13
|
-
* when revisiting a step after a revert.
|
|
14
|
-
*
|
|
15
|
-
* The full history (approvals + reverts) is recorded in the result.
|
|
16
|
-
*/
|
|
17
|
-
import type { LTEnvelope } from '../../../types';
|
|
18
|
-
export declare function reverter(envelope: LTEnvelope): Promise<any>;
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Reverter — durable step loop with revert support.
|
|
4
|
-
*
|
|
5
|
-
* Like stepIterator, but each human resolution can send the
|
|
6
|
-
* pipeline backwards. The resolver payload controls flow:
|
|
7
|
-
*
|
|
8
|
-
* { approved: true } → advance to next step
|
|
9
|
-
* { approved: false, revertSteps: 1 } → go back 1 step
|
|
10
|
-
* { approved: false, revertSteps: 2 } → go back 2 steps
|
|
11
|
-
*
|
|
12
|
-
* The orchestrator tracks a monotonic attempt counter so every
|
|
13
|
-
* child spawn gets a unique workflow ID and signal key — even
|
|
14
|
-
* when revisiting a step after a revert.
|
|
15
|
-
*
|
|
16
|
-
* The full history (approvals + reverts) is recorded in the result.
|
|
17
|
-
*/
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.reverter = reverter;
|
|
20
|
-
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
21
|
-
const defaults_1 = require("../../../modules/defaults");
|
|
22
|
-
async function reverter(envelope) {
|
|
23
|
-
const { name, steps } = envelope.data;
|
|
24
|
-
const ctx = hotmesh_1.Durable.workflow.workflowInfo();
|
|
25
|
-
const history = [];
|
|
26
|
-
const finalResults = [];
|
|
27
|
-
let stepIndex = 0;
|
|
28
|
-
let attempt = 0;
|
|
29
|
-
while (stepIndex < steps.length) {
|
|
30
|
-
const step = steps[stepIndex];
|
|
31
|
-
const signalId = `step-${stepIndex}-a${attempt}-${ctx.workflowId}`;
|
|
32
|
-
const childWorkflowId = `workstation-${ctx.workflowId}-${stepIndex}-a${attempt}`;
|
|
33
|
-
await hotmesh_1.Durable.workflow.startChild({
|
|
34
|
-
workflowName: 'workstation',
|
|
35
|
-
args: [
|
|
36
|
-
{
|
|
37
|
-
data: {
|
|
38
|
-
...step,
|
|
39
|
-
parentSignalId: signalId,
|
|
40
|
-
parentTaskQueue: 'long-tail-examples',
|
|
41
|
-
parentWorkflowType: 'reverter',
|
|
42
|
-
parentWorkflowId: ctx.workflowId,
|
|
43
|
-
},
|
|
44
|
-
metadata: {
|
|
45
|
-
source: 'reverter',
|
|
46
|
-
step: stepIndex,
|
|
47
|
-
attempt,
|
|
48
|
-
totalSteps: steps.length,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
taskQueue: 'long-tail-examples',
|
|
53
|
-
workflowId: childWorkflowId,
|
|
54
|
-
expire: defaults_1.JOB_EXPIRE_SECS,
|
|
55
|
-
entity: 'workstation',
|
|
56
|
-
});
|
|
57
|
-
const result = await hotmesh_1.Durable.workflow.condition(signalId);
|
|
58
|
-
const approved = result.resolution?.approved !== false;
|
|
59
|
-
const revertSteps = Number(result.resolution?.revertSteps) || 0;
|
|
60
|
-
history.push({
|
|
61
|
-
type: approved ? 'advance' : 'revert',
|
|
62
|
-
stepIndex,
|
|
63
|
-
stationName: step.stationName,
|
|
64
|
-
attempt,
|
|
65
|
-
resolution: result.resolution,
|
|
66
|
-
completedAt: result.completedAt,
|
|
67
|
-
});
|
|
68
|
-
attempt++;
|
|
69
|
-
if (approved) {
|
|
70
|
-
finalResults[stepIndex] = result;
|
|
71
|
-
stepIndex++;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
// Clamp revert target to 0
|
|
75
|
-
stepIndex = Math.max(0, stepIndex - revertSteps);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
type: 'return',
|
|
80
|
-
data: {
|
|
81
|
-
name,
|
|
82
|
-
totalSteps: steps.length,
|
|
83
|
-
totalAttempts: attempt,
|
|
84
|
-
steps: finalResults,
|
|
85
|
-
history,
|
|
86
|
-
completedAt: new Date().toISOString(),
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Assembly Line types.
|
|
3
|
-
*
|
|
4
|
-
* Defines the station config passed in the envelope and the
|
|
5
|
-
* result shape each station returns when a human resolves it.
|
|
6
|
-
*/
|
|
7
|
-
export interface AssemblyLineStation {
|
|
8
|
-
stationName: string;
|
|
9
|
-
role: string;
|
|
10
|
-
instructions: string;
|
|
11
|
-
}
|
|
12
|
-
export interface StationEnvelopeData {
|
|
13
|
-
stationName: string;
|
|
14
|
-
role: string;
|
|
15
|
-
instructions: string;
|
|
16
|
-
parentSignalId: string;
|
|
17
|
-
parentTaskQueue: string;
|
|
18
|
-
parentWorkflowType: string;
|
|
19
|
-
parentWorkflowId: string;
|
|
20
|
-
}
|
|
21
|
-
export interface StationResult {
|
|
22
|
-
stationName: string;
|
|
23
|
-
resolution: Record<string, any>;
|
|
24
|
-
completedAt: string;
|
|
25
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workstation — child workflow for the assembly line.
|
|
3
|
-
*
|
|
4
|
-
* Each workstation:
|
|
5
|
-
* 1. Creates an escalation assigned to its role (grinder, gluer, etc.)
|
|
6
|
-
* 2. Pauses (condition) until a human claims and resolves the escalation
|
|
7
|
-
* 3. Signals the parent orchestrator with the result
|
|
8
|
-
*
|
|
9
|
-
* No interceptor, no registration — just raw Durable primitives
|
|
10
|
-
* and a direct escalation record with signal routing metadata.
|
|
11
|
-
*/
|
|
12
|
-
import type { LTEnvelope } from '../../../types';
|
|
13
|
-
export declare function workstation(envelope: LTEnvelope): Promise<any>;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Workstation — child workflow for the assembly line.
|
|
4
|
-
*
|
|
5
|
-
* Each workstation:
|
|
6
|
-
* 1. Creates an escalation assigned to its role (grinder, gluer, etc.)
|
|
7
|
-
* 2. Pauses (condition) until a human claims and resolves the escalation
|
|
8
|
-
* 3. Signals the parent orchestrator with the result
|
|
9
|
-
*
|
|
10
|
-
* No interceptor, no registration — just raw Durable primitives
|
|
11
|
-
* and a direct escalation record with signal routing metadata.
|
|
12
|
-
*/
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
-
var ownKeys = function(o) {
|
|
31
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
-
var ar = [];
|
|
33
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
-
return ar;
|
|
35
|
-
};
|
|
36
|
-
return ownKeys(o);
|
|
37
|
-
};
|
|
38
|
-
return function (mod) {
|
|
39
|
-
if (mod && mod.__esModule) return mod;
|
|
40
|
-
var result = {};
|
|
41
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
-
__setModuleDefault(result, mod);
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
})();
|
|
46
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.workstation = workstation;
|
|
48
|
-
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
49
|
-
const activities = __importStar(require("./activities"));
|
|
50
|
-
const { createStationEscalation, signalParent } = hotmesh_1.Durable.workflow.proxyActivities({ activities });
|
|
51
|
-
async function workstation(envelope) {
|
|
52
|
-
const { stationName, role, instructions, parentSignalId, parentTaskQueue, parentWorkflowType, parentWorkflowId, } = envelope.data;
|
|
53
|
-
const ctx = hotmesh_1.Durable.workflow.workflowInfo();
|
|
54
|
-
const localSignalId = `station-done-${ctx.workflowId}`;
|
|
55
|
-
// 1. Create escalation — human sees this in their queue
|
|
56
|
-
await createStationEscalation({
|
|
57
|
-
role,
|
|
58
|
-
stationName,
|
|
59
|
-
instructions,
|
|
60
|
-
workflowId: ctx.workflowId,
|
|
61
|
-
workflowType: 'workstation',
|
|
62
|
-
taskQueue: 'long-tail-examples',
|
|
63
|
-
signalId: localSignalId,
|
|
64
|
-
});
|
|
65
|
-
// 2. Pause until the human resolves the escalation
|
|
66
|
-
const resolution = await hotmesh_1.Durable.workflow.condition(localSignalId);
|
|
67
|
-
// 3. Build result and signal the parent orchestrator
|
|
68
|
-
const result = {
|
|
69
|
-
stationName,
|
|
70
|
-
resolution,
|
|
71
|
-
completedAt: new Date().toISOString(),
|
|
72
|
-
};
|
|
73
|
-
await signalParent({
|
|
74
|
-
parentTaskQueue,
|
|
75
|
-
parentWorkflowType,
|
|
76
|
-
parentWorkflowId,
|
|
77
|
-
signalId: parentSignalId,
|
|
78
|
-
data: result,
|
|
79
|
-
});
|
|
80
|
-
return { type: 'return', data: result };
|
|
81
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Basic Echo Activities
|
|
3
|
-
*
|
|
4
|
-
* Single activity that echoes a message back with IAM context.
|
|
5
|
-
* Demonstrates three ways to access identity inside a proxy activity:
|
|
6
|
-
*
|
|
7
|
-
* 1. `getActivityIdentity()` — recommended: one-call access to principal + credential exchange
|
|
8
|
-
* 2. `getToolContext()` — lower-level access to ToolContext (principal, scopes, trace)
|
|
9
|
-
* 3. `Durable.activity.getContext()` — raw HotMesh API for headers
|
|
10
|
-
*
|
|
11
|
-
* All work across process boundaries because headers travels
|
|
12
|
-
* with the activity call via HotMesh's schema pipeline.
|
|
13
|
-
*/
|
|
14
|
-
export declare function echo(input: {
|
|
15
|
-
message: string;
|
|
16
|
-
}): Promise<{
|
|
17
|
-
message: string;
|
|
18
|
-
echoedAt: string;
|
|
19
|
-
identity: Record<string, unknown>;
|
|
20
|
-
}>;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Basic Echo Activities
|
|
4
|
-
*
|
|
5
|
-
* Single activity that echoes a message back with IAM context.
|
|
6
|
-
* Demonstrates three ways to access identity inside a proxy activity:
|
|
7
|
-
*
|
|
8
|
-
* 1. `getActivityIdentity()` — recommended: one-call access to principal + credential exchange
|
|
9
|
-
* 2. `getToolContext()` — lower-level access to ToolContext (principal, scopes, trace)
|
|
10
|
-
* 3. `Durable.activity.getContext()` — raw HotMesh API for headers
|
|
11
|
-
*
|
|
12
|
-
* All work across process boundaries because headers travels
|
|
13
|
-
* with the activity call via HotMesh's schema pipeline.
|
|
14
|
-
*/
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.echo = echo;
|
|
17
|
-
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
18
|
-
const context_1 = require("../../../services/iam/context");
|
|
19
|
-
async function echo(input) {
|
|
20
|
-
// Recommended: getActivityIdentity() — principal + getCredential() in one call
|
|
21
|
-
// const identity = getActivityIdentity();
|
|
22
|
-
// const token = await identity.getCredential('anthropic'); // credential exchange
|
|
23
|
-
// Primary: getToolContext() reads from headers (injected by activity interceptor)
|
|
24
|
-
const ctx = (0, context_1.getToolContext)();
|
|
25
|
-
// Direct access: Durable.activity.getContext() shows the raw headers
|
|
26
|
-
const activityCtx = hotmesh_1.Durable.activity.getContext();
|
|
27
|
-
const rawPrincipal = activityCtx?.headers?.principal;
|
|
28
|
-
const identity = ctx
|
|
29
|
-
? {
|
|
30
|
-
source: 'getActivityIdentity',
|
|
31
|
-
principal: {
|
|
32
|
-
id: ctx.principal.id,
|
|
33
|
-
type: ctx.principal.type,
|
|
34
|
-
displayName: ctx.principal.displayName,
|
|
35
|
-
roles: ctx.principal.roles,
|
|
36
|
-
roleType: ctx.principal.roleType,
|
|
37
|
-
},
|
|
38
|
-
scopes: ctx.credentials.scopes,
|
|
39
|
-
note: 'Also available via getActivityIdentity().getCredential(provider) for token exchange',
|
|
40
|
-
}
|
|
41
|
-
: rawPrincipal
|
|
42
|
-
? {
|
|
43
|
-
source: 'headers',
|
|
44
|
-
principal: rawPrincipal,
|
|
45
|
-
}
|
|
46
|
-
: {
|
|
47
|
-
source: 'unavailable',
|
|
48
|
-
note: 'no principal in envelope or headers',
|
|
49
|
-
};
|
|
50
|
-
return {
|
|
51
|
-
message: input.message,
|
|
52
|
-
echoedAt: new Date().toISOString(),
|
|
53
|
-
identity,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Basic Echo Workflow
|
|
3
|
-
*
|
|
4
|
-
* Minimal durable workflow that:
|
|
5
|
-
* 1. Sleeps for a configurable duration (durable timer)
|
|
6
|
-
* 2. Echoes the input message back with IAM identity context
|
|
7
|
-
*
|
|
8
|
-
* Use this to verify:
|
|
9
|
-
* - Durable workflow invocation from the dashboard
|
|
10
|
-
* - IAM context availability (registered vs unregistered)
|
|
11
|
-
* - Cron scheduling for plain durable workers
|
|
12
|
-
*/
|
|
13
|
-
import type { LTEnvelope } from '../../../types';
|
|
14
|
-
export declare function basicEcho(envelope: LTEnvelope): Promise<any>;
|