@hotmeshio/long-tail 0.1.15 → 0.1.17

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.
Files changed (368) hide show
  1. package/build/api/escalations/resolve.js +1 -0
  2. package/build/api/files.d.ts +4 -0
  3. package/build/api/files.js +14 -0
  4. package/build/api/settings.js +0 -3
  5. package/build/api/workflows/config.js +5 -0
  6. package/build/api/yaml-workflows/crud.js +25 -5
  7. package/build/index.d.ts +1 -2
  8. package/build/index.js +1 -4
  9. package/build/lib/db/schemas/002_seed.sql +3 -81
  10. package/build/lib/events/socketio.d.ts +12 -0
  11. package/build/lib/events/socketio.js +24 -1
  12. package/build/lib/storage/mime.js +20 -0
  13. package/build/routes/file-browser.js +30 -0
  14. package/build/routes/files.js +20 -18
  15. package/build/routes/index.js +2 -0
  16. package/build/routes/nats-credentials.d.ts +2 -0
  17. package/build/routes/nats-credentials.js +22 -0
  18. package/build/services/config/sql.d.ts +3 -0
  19. package/build/services/config/sql.js +15 -1
  20. package/build/services/config/write.d.ts +6 -0
  21. package/build/services/config/write.js +64 -0
  22. package/build/services/cron/index.d.ts +5 -0
  23. package/build/services/cron/index.js +30 -0
  24. package/build/services/insight/index.js +3 -0
  25. package/build/services/interceptor/activities/task.d.ts +1 -0
  26. package/build/services/interceptor/activities/task.js +2 -1
  27. package/build/services/interceptor/activities/workflow.js +1 -0
  28. package/build/services/interceptor/index.js +4 -4
  29. package/build/services/interceptor/lifecycle.js +1 -1
  30. package/build/services/mcp/db.d.ts +17 -0
  31. package/build/services/mcp/db.js +50 -0
  32. package/build/services/mcp/sql.d.ts +4 -1
  33. package/build/services/mcp/sql.js +9 -2
  34. package/build/services/oauth/index.js +4 -1
  35. package/build/services/oauth/providers/google.js +7 -2
  36. package/build/services/orchestrator/index.js +5 -0
  37. package/build/services/task/crud.js +1 -0
  38. package/build/services/task/sql.d.ts +1 -1
  39. package/build/services/task/sql.js +2 -2
  40. package/build/services/task/types.d.ts +2 -0
  41. package/build/services/workers/registry.js +3 -1
  42. package/build/services/workflow-invocation.js +8 -1
  43. package/build/services/yaml-workflow/workers/register.js +4 -2
  44. package/build/start/adapters.js +4 -1
  45. package/build/start/socket-auth.d.ts +13 -0
  46. package/build/start/socket-auth.js +32 -0
  47. package/build/start/workers.d.ts +2 -1
  48. package/build/start/workers.js +66 -6
  49. package/build/system/index.d.ts +12 -10
  50. package/build/system/index.js +240 -67
  51. package/build/system/mcp-servers/playwright/schemas.d.ts +12 -12
  52. package/build/system/seed/index.d.ts +0 -7
  53. package/build/system/seed/index.js +5 -46
  54. package/build/tsconfig.tsbuildinfo +1 -1
  55. package/build/types/index.d.ts +1 -1
  56. package/build/types/startup.d.ts +59 -2
  57. package/dashboard/dist/assets/AdminDashboard-CsTOErp1.js +2 -0
  58. package/dashboard/dist/assets/{AdminDashboard-NLryl1_B.js.map → AdminDashboard-CsTOErp1.js.map} +1 -1
  59. package/dashboard/dist/assets/AvailableEscalationsPage-BqQA3IJp.js +2 -0
  60. package/dashboard/dist/assets/{AvailableEscalationsPage-6vexlrk3.js.map → AvailableEscalationsPage-BqQA3IJp.js.map} +1 -1
  61. package/dashboard/dist/assets/BotPicker-C2xR1xay.js +2 -0
  62. package/dashboard/dist/assets/{BotPicker-DWhn0tr1.js.map → BotPicker-C2xR1xay.js.map} +1 -1
  63. package/dashboard/dist/assets/CollapsibleSection-CRtHQsAv.js +2 -0
  64. package/dashboard/dist/assets/{CollapsibleSection-CgYgQiOc.js.map → CollapsibleSection-CRtHQsAv.js.map} +1 -1
  65. package/dashboard/dist/assets/ConfirmDeleteModal-dOxidrSR.js +2 -0
  66. package/dashboard/dist/assets/{ConfirmDeleteModal-DCKAPXD3.js.map → ConfirmDeleteModal-dOxidrSR.js.map} +1 -1
  67. package/dashboard/dist/assets/CopyableId-DmLF-RqZ.js +2 -0
  68. package/dashboard/dist/assets/{CopyableId-DXkaAOYk.js.map → CopyableId-DmLF-RqZ.js.map} +1 -1
  69. package/dashboard/dist/assets/CredentialsPage-C7XT1bnO.js +2 -0
  70. package/dashboard/dist/assets/CredentialsPage-C7XT1bnO.js.map +1 -0
  71. package/dashboard/dist/assets/CustomDurationPicker-BABUv1V2.js +2 -0
  72. package/dashboard/dist/assets/{CustomDurationPicker-D2G1ldiF.js.map → CustomDurationPicker-BABUv1V2.js.map} +1 -1
  73. package/dashboard/dist/assets/DataTable-D3-wSEf0.js +2 -0
  74. package/dashboard/dist/assets/{DataTable-DXSUbA26.js.map → DataTable-D3-wSEf0.js.map} +1 -1
  75. package/dashboard/dist/assets/DropZone-DHKmMqRA.js +2 -0
  76. package/dashboard/dist/assets/DropZone-DHKmMqRA.js.map +1 -0
  77. package/dashboard/dist/assets/ElapsedCell-DrJif03B.js +2 -0
  78. package/dashboard/dist/assets/{ElapsedCell-CQGqkXP_.js.map → ElapsedCell-DrJif03B.js.map} +1 -1
  79. package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +2 -0
  80. package/dashboard/dist/assets/EmptyState-BcsfPq9T.js.map +1 -0
  81. package/dashboard/dist/assets/EscalationsOverview-H6CwfeR-.js +2 -0
  82. package/dashboard/dist/assets/EscalationsOverview-H6CwfeR-.js.map +1 -0
  83. package/dashboard/dist/assets/EventTable-Dh3_9DAY.js +2 -0
  84. package/dashboard/dist/assets/{EventTable-BMJAPkMi.js.map → EventTable-Dh3_9DAY.js.map} +1 -1
  85. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
  86. package/dashboard/dist/assets/{FilterBar-DbVbCzH2.js.map → FilterBar-Ck4K4rzu.js.map} +1 -1
  87. package/dashboard/dist/assets/ListToolbar-CyEkulVR.js +2 -0
  88. package/dashboard/dist/assets/{ListToolbar-0XNuXj0M.js.map → ListToolbar-CyEkulVR.js.map} +1 -1
  89. package/dashboard/dist/assets/McpOverview-ChLa6Gl7.js +2 -0
  90. package/dashboard/dist/assets/{McpOverview-CeYnCzBN.js.map → McpOverview-ChLa6Gl7.js.map} +1 -1
  91. package/dashboard/dist/assets/McpQueryDetailPage-5Dsj6PlL.js +5 -0
  92. package/dashboard/dist/assets/McpQueryDetailPage-5Dsj6PlL.js.map +1 -0
  93. package/dashboard/dist/assets/McpQueryPage-D2DmDFPu.js +2 -0
  94. package/dashboard/dist/assets/McpQueryPage-D2DmDFPu.js.map +1 -0
  95. package/dashboard/dist/assets/McpRunDetailPage-ERVuNEEK.js +2 -0
  96. package/dashboard/dist/assets/{McpRunDetailPage-CZtodW_Z.js.map → McpRunDetailPage-ERVuNEEK.js.map} +1 -1
  97. package/dashboard/dist/assets/McpRunsPage-BKba-3Wl.js +2 -0
  98. package/dashboard/dist/assets/McpRunsPage-BKba-3Wl.js.map +1 -0
  99. package/dashboard/dist/assets/Modal-DEODGeqx.js +2 -0
  100. package/dashboard/dist/assets/{Modal-yyhUeKoA.js.map → Modal-DEODGeqx.js.map} +1 -1
  101. package/dashboard/dist/assets/OperatorDashboard-CJm_BTPU.js +2 -0
  102. package/dashboard/dist/assets/{OperatorDashboard-Ceh7OQtZ.js.map → OperatorDashboard-CJm_BTPU.js.map} +1 -1
  103. package/dashboard/dist/assets/PageHeader-B-SN5GZ2.js +2 -0
  104. package/dashboard/dist/assets/PageHeader-B-SN5GZ2.js.map +1 -0
  105. package/dashboard/dist/assets/PageHeaderWithStats-BZ3AGT5s.js +2 -0
  106. package/dashboard/dist/assets/PageHeaderWithStats-BZ3AGT5s.js.map +1 -0
  107. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
  108. package/dashboard/dist/assets/{PriorityBadge-BrPikMFy.js.map → PriorityBadge-DfQY9St9.js.map} +1 -1
  109. package/dashboard/dist/assets/ProcessDetailPage-vfnCDyQK.js +2 -0
  110. package/dashboard/dist/assets/{ProcessDetailPage-2miaYd8G.js.map → ProcessDetailPage-vfnCDyQK.js.map} +1 -1
  111. package/dashboard/dist/assets/ProcessesListPage-DcAN6AJK.js +2 -0
  112. package/dashboard/dist/assets/ProcessesListPage-DcAN6AJK.js.map +1 -0
  113. package/dashboard/dist/assets/RolePill-BhVC0cc3.js +2 -0
  114. package/dashboard/dist/assets/{RolePill-DxbJMfJu.js.map → RolePill-BhVC0cc3.js.map} +1 -1
  115. package/dashboard/dist/assets/RolesPage-DYSt2aAr.js +2 -0
  116. package/dashboard/dist/assets/RolesPage-DYSt2aAr.js.map +1 -0
  117. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
  118. package/dashboard/dist/assets/{RowActions-DurFwIwe.js.map → RowActions-Dg-Fsm5O.js.map} +1 -1
  119. package/dashboard/dist/assets/RunAsSelector-CD7_Dmb0.js +2 -0
  120. package/dashboard/dist/assets/{RunAsSelector-CNKraP6u.js.map → RunAsSelector-CD7_Dmb0.js.map} +1 -1
  121. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
  122. package/dashboard/dist/assets/{StatCard-CKplpK3w.js.map → StatCard-DlgF0CJC.js.map} +1 -1
  123. package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js +2 -0
  124. package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js.map +1 -0
  125. package/dashboard/dist/assets/StepIndicator-CuUIGxKk.js +2 -0
  126. package/dashboard/dist/assets/{StepIndicator-Dicx0WTZ.js.map → StepIndicator-CuUIGxKk.js.map} +1 -1
  127. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
  128. package/dashboard/dist/assets/{StickyPagination-B2jYvU3-.js.map → StickyPagination-F9FZsRy9.js.map} +1 -1
  129. package/dashboard/dist/assets/SwimlaneTimeline-CUl5RdXU.js +2 -0
  130. package/dashboard/dist/assets/SwimlaneTimeline-CUl5RdXU.js.map +1 -0
  131. package/dashboard/dist/assets/TagInput-DftaRHDV.js +2 -0
  132. package/dashboard/dist/assets/{TagInput-CypDZ6Kl.js.map → TagInput-DftaRHDV.js.map} +1 -1
  133. package/dashboard/dist/assets/TaskDetailPage-BoA-cfwW.js +2 -0
  134. package/dashboard/dist/assets/TaskDetailPage-BoA-cfwW.js.map +1 -0
  135. package/dashboard/dist/assets/TaskQueuePill-Ce8KlXtR.js +2 -0
  136. package/dashboard/dist/assets/TaskQueuePill-Ce8KlXtR.js.map +1 -0
  137. package/dashboard/dist/assets/TasksListPage-g6XIbhju.js +2 -0
  138. package/dashboard/dist/assets/{TasksListPage-D7CdkAeg.js.map → TasksListPage-g6XIbhju.js.map} +1 -1
  139. package/dashboard/dist/assets/TimeAgo-BihIwEbB.js +2 -0
  140. package/dashboard/dist/assets/{TimeAgo-B5LXB2aj.js.map → TimeAgo-BihIwEbB.js.map} +1 -1
  141. package/dashboard/dist/assets/TimestampCell-GOFcvE-i.js +2 -0
  142. package/dashboard/dist/assets/{TimestampCell-Crb9b0Gw.js.map → TimestampCell-GOFcvE-i.js.map} +1 -1
  143. package/dashboard/dist/assets/UserName-CmMVt4vS.js +2 -0
  144. package/dashboard/dist/assets/{UserName-OPg-nkRa.js.map → UserName-CmMVt4vS.js.map} +1 -1
  145. package/dashboard/dist/assets/WorkflowExecutionPage-soRFz_30.js +2 -0
  146. package/dashboard/dist/assets/{WorkflowExecutionPage-CcLVrs9b.js.map → WorkflowExecutionPage-soRFz_30.js.map} +1 -1
  147. package/dashboard/dist/assets/WorkflowPill-DUDDyBsj.js +2 -0
  148. package/dashboard/dist/assets/{WorkflowPill-CCV4MMj7.js.map → WorkflowPill-DUDDyBsj.js.map} +1 -1
  149. package/dashboard/dist/assets/WorkflowsDashboard-Be1A1zAT.js +2 -0
  150. package/dashboard/dist/assets/WorkflowsDashboard-Be1A1zAT.js.map +1 -0
  151. package/dashboard/dist/assets/WorkflowsOverview-z3Ztiz1y.js +2 -0
  152. package/dashboard/dist/assets/{WorkflowsOverview-DvShiYJV.js.map → WorkflowsOverview-z3Ztiz1y.js.map} +1 -1
  153. package/dashboard/dist/assets/YamlWorkflowsPage-C6qzcQcJ.js +2 -0
  154. package/dashboard/dist/assets/YamlWorkflowsPage-C6qzcQcJ.js.map +1 -0
  155. package/dashboard/dist/assets/{bots-Dqos20NE.js → bots-BZPXDh_y.js} +2 -2
  156. package/dashboard/dist/assets/{bots-Dqos20NE.js.map → bots-BZPXDh_y.js.map} +1 -1
  157. package/dashboard/dist/assets/escalation-DBUIq1Z4.js +2 -0
  158. package/dashboard/dist/assets/{escalation-A0CsbvNV.js.map → escalation-DBUIq1Z4.js.map} +1 -1
  159. package/dashboard/dist/assets/escalation-columns-DL4zsR8Y.js +2 -0
  160. package/dashboard/dist/assets/{escalation-columns-BpBJN6k4.js.map → escalation-columns-DL4zsR8Y.js.map} +1 -1
  161. package/dashboard/dist/assets/helpers-D50KFFkI.js +2 -0
  162. package/dashboard/dist/assets/{helpers-CmznCuAx.js.map → helpers-D50KFFkI.js.map} +1 -1
  163. package/dashboard/dist/assets/index-B-ioA6yv.js +2 -0
  164. package/dashboard/dist/assets/index-B-ioA6yv.js.map +1 -0
  165. package/dashboard/dist/assets/index-B-jzKfuv.js +2 -0
  166. package/dashboard/dist/assets/index-B-jzKfuv.js.map +1 -0
  167. package/dashboard/dist/assets/index-BMpoMc4A.js +2 -0
  168. package/dashboard/dist/assets/{index-Cr0Rqsj7.js.map → index-BMpoMc4A.js.map} +1 -1
  169. package/dashboard/dist/assets/index-BU04qgJt.js +15 -0
  170. package/dashboard/dist/assets/index-BU04qgJt.js.map +1 -0
  171. package/dashboard/dist/assets/index-BUjxYyxc.js +63 -0
  172. package/dashboard/dist/assets/index-BUjxYyxc.js.map +1 -0
  173. package/dashboard/dist/assets/index-BpoHVMV7.js +2 -0
  174. package/dashboard/dist/assets/index-BpoHVMV7.js.map +1 -0
  175. package/dashboard/dist/assets/index-CEnDYJOO.js +2 -0
  176. package/dashboard/dist/assets/index-CEnDYJOO.js.map +1 -0
  177. package/dashboard/dist/assets/index-CbuH92vk.js +6 -0
  178. package/dashboard/dist/assets/index-CbuH92vk.js.map +1 -0
  179. package/dashboard/dist/assets/index-D9_hZmsW.js +5 -0
  180. package/dashboard/dist/assets/{index-BYwD3kHN.js.map → index-D9_hZmsW.js.map} +1 -1
  181. package/dashboard/dist/assets/index-DrouIN-M.js +2 -0
  182. package/dashboard/dist/assets/{index-VnYkWW8r.js.map → index-DrouIN-M.js.map} +1 -1
  183. package/dashboard/dist/assets/index-DzICLMI7.js +2 -0
  184. package/dashboard/dist/assets/{index-XGOmZ117.js.map → index-DzICLMI7.js.map} +1 -1
  185. package/dashboard/dist/assets/index-efS5gKpv.css +1 -0
  186. package/dashboard/dist/assets/index-qT78AZDq.js +2 -0
  187. package/dashboard/dist/assets/index-qT78AZDq.js.map +1 -0
  188. package/dashboard/dist/assets/mcp-D0GrHRFe.js +2 -0
  189. package/dashboard/dist/assets/{mcp-DrWymhSu.js.map → mcp-D0GrHRFe.js.map} +1 -1
  190. package/dashboard/dist/assets/{mcp-query-BhUxVEMS.js → mcp-query-DC5woQn5.js} +2 -2
  191. package/dashboard/dist/assets/{mcp-query-BhUxVEMS.js.map → mcp-query-DC5woQn5.js.map} +1 -1
  192. package/dashboard/dist/assets/{mcp-runs-DUfz4mLd.js → mcp-runs-CsoVQoPB.js} +2 -2
  193. package/dashboard/dist/assets/{mcp-runs-DUfz4mLd.js.map → mcp-runs-CsoVQoPB.js.map} +1 -1
  194. package/dashboard/dist/assets/namespaces-unpIb4gX.js +2 -0
  195. package/dashboard/dist/assets/{namespaces-Cm6AY5sh.js.map → namespaces-unpIb4gX.js.map} +1 -1
  196. package/dashboard/dist/assets/{roles-2v1Kc7BJ.js → roles--kBaFljg.js} +2 -2
  197. package/dashboard/dist/assets/{roles-2v1Kc7BJ.js.map → roles--kBaFljg.js.map} +1 -1
  198. package/dashboard/dist/assets/settings-B96YkawY.js +2 -0
  199. package/dashboard/dist/assets/{settings-DTQNp6tH.js.map → settings-B96YkawY.js.map} +1 -1
  200. package/dashboard/dist/assets/{tasks-CS1rgG1s.js → tasks-D_1NCfOZ.js} +2 -2
  201. package/dashboard/dist/assets/{tasks-CS1rgG1s.js.map → tasks-D_1NCfOZ.js.map} +1 -1
  202. package/dashboard/dist/assets/{useEventHooks-BjXX8x3a.js → useEventHooks-BPjEkCpD.js} +2 -2
  203. package/dashboard/dist/assets/{useEventHooks-BjXX8x3a.js.map → useEventHooks-BPjEkCpD.js.map} +1 -1
  204. package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js → useExpandedRows-CkcEntB-.js} +2 -2
  205. package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js.map → useExpandedRows-CkcEntB-.js.map} +1 -1
  206. package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js → useFilterParams-DZCAaBC7.js} +2 -2
  207. package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js.map → useFilterParams-DZCAaBC7.js.map} +1 -1
  208. package/dashboard/dist/assets/{useYamlActivityEvents-BeR-nVWQ.js → useYamlActivityEvents-D3RQjfzo.js} +2 -2
  209. package/dashboard/dist/assets/{useYamlActivityEvents-BeR-nVWQ.js.map → useYamlActivityEvents-D3RQjfzo.js.map} +1 -1
  210. package/dashboard/dist/assets/{users-DYsdQ7Md.js → users-e2oatvoj.js} +2 -2
  211. package/dashboard/dist/assets/{users-DYsdQ7Md.js.map → users-e2oatvoj.js.map} +1 -1
  212. package/dashboard/dist/assets/{vendor-icons-CWl44VA6.js → vendor-icons-BkK55L-1.js} +103 -88
  213. package/dashboard/dist/assets/vendor-icons-BkK55L-1.js.map +1 -0
  214. package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
  215. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
  216. package/dashboard/dist/assets/vendor-react-CX88sFS5.js +22 -0
  217. package/dashboard/dist/assets/vendor-react-CX88sFS5.js.map +1 -0
  218. package/dashboard/dist/assets/{workflows-2QAXh3UD.js → workflows-D6diL54s.js} +2 -2
  219. package/dashboard/dist/assets/{workflows-2QAXh3UD.js.map → workflows-D6diL54s.js.map} +1 -1
  220. package/dashboard/dist/assets/{yaml-workflows-sx8-UEE3.js → yaml-workflows-CAKU7LUu.js} +2 -2
  221. package/dashboard/dist/assets/{yaml-workflows-sx8-UEE3.js.map → yaml-workflows-CAKU7LUu.js.map} +1 -1
  222. package/dashboard/dist/index.html +5 -5
  223. package/docs/dashboard.md +233 -65
  224. package/package.json +3 -2
  225. package/build/examples/external-mcp-server/server.d.ts +0 -17
  226. package/build/examples/external-mcp-server/server.js +0 -116
  227. package/build/examples/index.d.ts +0 -2
  228. package/build/examples/index.js +0 -7
  229. package/build/examples/seed-data.d.ts +0 -55
  230. package/build/examples/seed-data.js +0 -161
  231. package/build/examples/seed.d.ts +0 -5
  232. package/build/examples/seed.js +0 -132
  233. package/build/examples/types/envelopes.d.ts +0 -69
  234. package/build/examples/types/envelopes.js +0 -8
  235. package/build/examples/types/index.d.ts +0 -10
  236. package/build/examples/types/index.js +0 -9
  237. package/build/examples/types/resolvers.d.ts +0 -27
  238. package/build/examples/types/resolvers.js +0 -9
  239. package/build/examples/workers.d.ts +0 -10
  240. package/build/examples/workers.js +0 -59
  241. package/build/examples/workflows/assembly-line/activities.d.ts +0 -28
  242. package/build/examples/workflows/assembly-line/activities.js +0 -53
  243. package/build/examples/workflows/assembly-line/index.d.ts +0 -17
  244. package/build/examples/workflows/assembly-line/index.js +0 -60
  245. package/build/examples/workflows/assembly-line/iterator.d.ts +0 -12
  246. package/build/examples/workflows/assembly-line/iterator.js +0 -54
  247. package/build/examples/workflows/assembly-line/reverter.d.ts +0 -18
  248. package/build/examples/workflows/assembly-line/reverter.js +0 -89
  249. package/build/examples/workflows/assembly-line/types.d.ts +0 -25
  250. package/build/examples/workflows/assembly-line/types.js +0 -8
  251. package/build/examples/workflows/assembly-line/worker.d.ts +0 -13
  252. package/build/examples/workflows/assembly-line/worker.js +0 -81
  253. package/build/examples/workflows/basic-echo/activities.d.ts +0 -20
  254. package/build/examples/workflows/basic-echo/activities.js +0 -55
  255. package/build/examples/workflows/basic-echo/index.d.ts +0 -14
  256. package/build/examples/workflows/basic-echo/index.js +0 -66
  257. package/build/examples/workflows/basic-signal/activities.d.ts +0 -17
  258. package/build/examples/workflows/basic-signal/activities.js +0 -18
  259. package/build/examples/workflows/basic-signal/index.d.ts +0 -17
  260. package/build/examples/workflows/basic-signal/index.js +0 -116
  261. package/build/examples/workflows/kitchen-sink/activities.d.ts +0 -40
  262. package/build/examples/workflows/kitchen-sink/activities.js +0 -46
  263. package/build/examples/workflows/kitchen-sink/index.d.ts +0 -22
  264. package/build/examples/workflows/kitchen-sink/index.js +0 -123
  265. package/build/examples/workflows/review-content/activities.d.ts +0 -10
  266. package/build/examples/workflows/review-content/activities.js +0 -44
  267. package/build/examples/workflows/review-content/index.d.ts +0 -10
  268. package/build/examples/workflows/review-content/index.js +0 -95
  269. package/build/examples/workflows/review-content/types.d.ts +0 -28
  270. package/build/examples/workflows/review-content/types.js +0 -2
  271. package/build/system/seed/server-definitions.d.ts +0 -3210
  272. package/build/system/seed/server-definitions.js +0 -232
  273. package/dashboard/dist/assets/AdminDashboard-NLryl1_B.js +0 -2
  274. package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js +0 -2
  275. package/dashboard/dist/assets/BotPicker-DWhn0tr1.js +0 -2
  276. package/dashboard/dist/assets/CollapsibleSection-CgYgQiOc.js +0 -2
  277. package/dashboard/dist/assets/ConfirmDeleteModal-DCKAPXD3.js +0 -2
  278. package/dashboard/dist/assets/CopyableId-DXkaAOYk.js +0 -2
  279. package/dashboard/dist/assets/CredentialsPage-B361BOfU.js +0 -2
  280. package/dashboard/dist/assets/CredentialsPage-B361BOfU.js.map +0 -1
  281. package/dashboard/dist/assets/CustomDurationPicker-D2G1ldiF.js +0 -2
  282. package/dashboard/dist/assets/DataTable-DXSUbA26.js +0 -2
  283. package/dashboard/dist/assets/ElapsedCell-CQGqkXP_.js +0 -2
  284. package/dashboard/dist/assets/EmptyState-Dep92Wkg.js +0 -2
  285. package/dashboard/dist/assets/EmptyState-Dep92Wkg.js.map +0 -1
  286. package/dashboard/dist/assets/EscalationsOverview-DVEFVjs7.js +0 -2
  287. package/dashboard/dist/assets/EscalationsOverview-DVEFVjs7.js.map +0 -1
  288. package/dashboard/dist/assets/EventTable-BMJAPkMi.js +0 -2
  289. package/dashboard/dist/assets/FilterBar-DbVbCzH2.js +0 -2
  290. package/dashboard/dist/assets/ListToolbar-0XNuXj0M.js +0 -2
  291. package/dashboard/dist/assets/McpOverview-CeYnCzBN.js +0 -2
  292. package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js +0 -5
  293. package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js.map +0 -1
  294. package/dashboard/dist/assets/McpQueryPage-CfUcdzaj.js +0 -2
  295. package/dashboard/dist/assets/McpQueryPage-CfUcdzaj.js.map +0 -1
  296. package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js +0 -2
  297. package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js +0 -2
  298. package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js.map +0 -1
  299. package/dashboard/dist/assets/Modal-yyhUeKoA.js +0 -2
  300. package/dashboard/dist/assets/OperatorDashboard-Ceh7OQtZ.js +0 -2
  301. package/dashboard/dist/assets/PageHeader-CZ9a8cpr.js +0 -2
  302. package/dashboard/dist/assets/PageHeader-CZ9a8cpr.js.map +0 -1
  303. package/dashboard/dist/assets/PageHeaderWithStats-BJuNs5NM.js +0 -2
  304. package/dashboard/dist/assets/PageHeaderWithStats-BJuNs5NM.js.map +0 -1
  305. package/dashboard/dist/assets/PriorityBadge-BrPikMFy.js +0 -2
  306. package/dashboard/dist/assets/ProcessDetailPage-2miaYd8G.js +0 -2
  307. package/dashboard/dist/assets/ProcessesListPage-DqpRDqjk.js +0 -2
  308. package/dashboard/dist/assets/ProcessesListPage-DqpRDqjk.js.map +0 -1
  309. package/dashboard/dist/assets/RolePill-DxbJMfJu.js +0 -2
  310. package/dashboard/dist/assets/RolesPage-CYHRo21-.js +0 -2
  311. package/dashboard/dist/assets/RolesPage-CYHRo21-.js.map +0 -1
  312. package/dashboard/dist/assets/RowActions-DurFwIwe.js +0 -2
  313. package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js +0 -2
  314. package/dashboard/dist/assets/StatCard-CKplpK3w.js +0 -2
  315. package/dashboard/dist/assets/StatusBadge-Dm0V1dNN.js +0 -2
  316. package/dashboard/dist/assets/StatusBadge-Dm0V1dNN.js.map +0 -1
  317. package/dashboard/dist/assets/StepIndicator-Dicx0WTZ.js +0 -2
  318. package/dashboard/dist/assets/StickyPagination-B2jYvU3-.js +0 -2
  319. package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js +0 -2
  320. package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js.map +0 -1
  321. package/dashboard/dist/assets/TagInput-CypDZ6Kl.js +0 -2
  322. package/dashboard/dist/assets/TaskDetailPage-DooDNJGT.js +0 -2
  323. package/dashboard/dist/assets/TaskDetailPage-DooDNJGT.js.map +0 -1
  324. package/dashboard/dist/assets/TaskQueuePill-C1hZ-j31.js +0 -2
  325. package/dashboard/dist/assets/TaskQueuePill-C1hZ-j31.js.map +0 -1
  326. package/dashboard/dist/assets/TasksListPage-D7CdkAeg.js +0 -2
  327. package/dashboard/dist/assets/TimeAgo-B5LXB2aj.js +0 -2
  328. package/dashboard/dist/assets/TimestampCell-Crb9b0Gw.js +0 -2
  329. package/dashboard/dist/assets/UserName-OPg-nkRa.js +0 -2
  330. package/dashboard/dist/assets/WorkflowExecutionPage-CcLVrs9b.js +0 -2
  331. package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js +0 -2
  332. package/dashboard/dist/assets/WorkflowsDashboard-DB1SncBi.js +0 -2
  333. package/dashboard/dist/assets/WorkflowsDashboard-DB1SncBi.js.map +0 -1
  334. package/dashboard/dist/assets/WorkflowsOverview-DvShiYJV.js +0 -2
  335. package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js +0 -2
  336. package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js.map +0 -1
  337. package/dashboard/dist/assets/escalation-A0CsbvNV.js +0 -2
  338. package/dashboard/dist/assets/escalation-columns-BpBJN6k4.js +0 -2
  339. package/dashboard/dist/assets/helpers-CmznCuAx.js +0 -2
  340. package/dashboard/dist/assets/index-BIeYV5QK.js +0 -2
  341. package/dashboard/dist/assets/index-BIeYV5QK.js.map +0 -1
  342. package/dashboard/dist/assets/index-BYwD3kHN.js +0 -5
  343. package/dashboard/dist/assets/index-C5TUqJu0.css +0 -1
  344. package/dashboard/dist/assets/index-C8-UaN4N.js +0 -2
  345. package/dashboard/dist/assets/index-C8-UaN4N.js.map +0 -1
  346. package/dashboard/dist/assets/index-CAj5LT9H.js +0 -15
  347. package/dashboard/dist/assets/index-CAj5LT9H.js.map +0 -1
  348. package/dashboard/dist/assets/index-CjxHCVxl.js +0 -2
  349. package/dashboard/dist/assets/index-CjxHCVxl.js.map +0 -1
  350. package/dashboard/dist/assets/index-Cr0Rqsj7.js +0 -2
  351. package/dashboard/dist/assets/index-DZHNte4o.js +0 -2
  352. package/dashboard/dist/assets/index-DZHNte4o.js.map +0 -1
  353. package/dashboard/dist/assets/index-VnYkWW8r.js +0 -2
  354. package/dashboard/dist/assets/index-XGOmZ117.js +0 -2
  355. package/dashboard/dist/assets/index-ZjOUzWhc.js +0 -2
  356. package/dashboard/dist/assets/index-ZjOUzWhc.js.map +0 -1
  357. package/dashboard/dist/assets/index-puKKZ5l8.js +0 -281
  358. package/dashboard/dist/assets/index-puKKZ5l8.js.map +0 -1
  359. package/dashboard/dist/assets/index-t5frSddy.js +0 -6
  360. package/dashboard/dist/assets/index-t5frSddy.js.map +0 -1
  361. package/dashboard/dist/assets/mcp-DrWymhSu.js +0 -2
  362. package/dashboard/dist/assets/namespaces-Cm6AY5sh.js +0 -2
  363. package/dashboard/dist/assets/settings-DTQNp6tH.js +0 -2
  364. package/dashboard/dist/assets/vendor-icons-CWl44VA6.js.map +0 -1
  365. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +0 -35
  366. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +0 -1
  367. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +0 -26
  368. package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +0 -1
@@ -132,6 +132,39 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
132
132
  (0, registry_1.registerWorker)(w.workflow.name, w.taskQueue);
133
133
  }
134
134
  logger_1.loggerRegistry.info(`[long-tail] workers started on queues: ${workers.map((w) => w.taskQueue).join(', ')}`);
135
+ // Seed workflow configs (insert-if-absent — DB is source of truth)
136
+ const workersWithConfig = workers.filter((w) => w.config);
137
+ if (workersWithConfig.length) {
138
+ const { seedWorkflowConfig } = await Promise.resolve().then(() => __importStar(require('../services/config/write')));
139
+ const { ltConfig } = await Promise.resolve().then(() => __importStar(require('../modules/ltconfig')));
140
+ for (const w of workersWithConfig) {
141
+ const workflowType = w.workflow.name;
142
+ const c = w.config;
143
+ try {
144
+ const inserted = await seedWorkflowConfig({
145
+ workflow_type: workflowType,
146
+ task_queue: w.taskQueue,
147
+ invocable: c.invocable ?? false,
148
+ default_role: c.defaultRole ?? 'reviewer',
149
+ description: c.description ?? null,
150
+ roles: c.roles ?? [],
151
+ invocation_roles: c.invocationRoles ?? [],
152
+ consumes: c.consumes ?? [],
153
+ tool_tags: c.toolTags ?? [],
154
+ envelope_schema: c.envelopeSchema ?? null,
155
+ resolver_schema: c.resolverSchema ?? null,
156
+ cron_schedule: c.cronSchedule ?? null,
157
+ execute_as: c.executeAs ?? null,
158
+ });
159
+ if (inserted)
160
+ logger_1.loggerRegistry.info(`[long-tail] config seeded: ${workflowType}`);
161
+ }
162
+ catch (err) {
163
+ logger_1.loggerRegistry.warn(`[long-tail] config seed failed for ${workflowType}: ${err.message}`);
164
+ }
165
+ }
166
+ ltConfig.invalidate();
167
+ }
135
168
  // Start maintenance cron
136
169
  if (maintenance_1.maintenanceRegistry.hasConfig) {
137
170
  await maintenance_1.maintenanceRegistry.connect();
@@ -145,15 +178,45 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
145
178
  logger_1.loggerRegistry.info('[long-tail] MCP adapter connected');
146
179
  }
147
180
  // Register MCP server factories: built-in (from system/) + user-provided
181
+ // Both system and user factories can carry inline config for DB seeding.
148
182
  const { registerBuiltinServer } = await Promise.resolve().then(() => __importStar(require('../services/mcp/client')));
183
+ const { seedMcpServer, cleanStaleBuiltinServers } = await Promise.resolve().then(() => __importStar(require('../services/mcp/db')));
184
+ const userFactories = startConfig.mcp?.serverFactories ?? {};
185
+ // Resolve user factories — plain function or { factory, config }
186
+ const resolvedUserFactories = {};
187
+ for (const [name, entry] of Object.entries(userFactories)) {
188
+ if (typeof entry === 'function') {
189
+ resolvedUserFactories[name] = { factory: entry };
190
+ }
191
+ else {
192
+ resolvedUserFactories[name] = entry;
193
+ }
194
+ }
195
+ // Merge system (always have config) + user factories
149
196
  const allFactories = {
150
197
  ...builtinMcpServerFactories,
151
- ...(startConfig.mcp?.serverFactories ?? {}),
198
+ ...resolvedUserFactories,
152
199
  };
153
- for (const [name, factory] of Object.entries(allFactories)) {
154
- registerBuiltinServer(name, factory);
200
+ // 1. Register all factories (runtime — always applied)
201
+ for (const [name, entry] of Object.entries(allFactories)) {
202
+ registerBuiltinServer(name, entry.factory);
155
203
  }
156
204
  logger_1.loggerRegistry.info(`[long-tail] ${Object.keys(allFactories).length} MCP server factories registered`);
205
+ // 2. Seed MCP server configs (insert-if-absent + drift log)
206
+ for (const [name, entry] of Object.entries(allFactories)) {
207
+ if (entry.config) {
208
+ try {
209
+ const inserted = await seedMcpServer({ name, ...entry.config });
210
+ if (inserted)
211
+ logger_1.loggerRegistry.info(`[long-tail] MCP server seeded: ${name}`);
212
+ }
213
+ catch (err) {
214
+ logger_1.loggerRegistry.warn(`[long-tail] MCP server seed failed for ${name}: ${err.message}`);
215
+ }
216
+ }
217
+ }
218
+ // 3. Clean stale builtin servers no longer in factory list
219
+ await cleanStaleBuiltinServers(Object.keys(allFactories));
157
220
  // Register workers for active YAML (deterministic) workflows
158
221
  await yamlWorkflowWorkers.registerAllActiveWorkers();
159
222
  }
@@ -163,9 +226,6 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
163
226
  await events_1.eventRegistry.connect();
164
227
  logger_1.loggerRegistry.info('[long-tail] event adapters connected');
165
228
  }
166
- // Seed system MCP servers (always)
167
- const { seedSystemMcpServers } = await Promise.resolve().then(() => __importStar(require('../system/seed')));
168
- await seedSystemMcpServers();
169
229
  // Ensure system bot account exists for cron/system-initiated workflows
170
230
  const { ensureSystemBot } = await Promise.resolve().then(() => __importStar(require('../services/iam/bots')));
171
231
  await ensureSystemBot().catch((err) => logger_1.loggerRegistry.warn(`[long-tail] system bot seed error: ${err.message}`));
@@ -1,16 +1,18 @@
1
1
  /**
2
2
  * System workers and built-in MCP server factories.
3
3
  *
4
- * All MCP-powered workflows (triage, query, their routers and deterministic
5
- * counterparts) require an LLM API key. They load conditionally.
4
+ * All declarations carry inline `config` that seeds the DB on first boot.
5
+ * DB is the source of truth after seeding — startup never overwrites.
6
6
  */
7
- export declare function getSystemWorkers(): Array<{
7
+ import type { LTWorkerConfig, LTMcpServerConfig } from '../types/startup';
8
+ export type SystemWorkerEntry = {
8
9
  taskQueue: string;
9
10
  workflow: (...args: any[]) => any;
10
- }>;
11
- /**
12
- * Built-in MCP server factories.
13
- * Each entry maps a server name to a lazy factory that creates the McpServer instance.
14
- * Registered via `registerBuiltinServer()` in `services/mcp/client.ts`.
15
- */
16
- export declare const builtinMcpServerFactories: Record<string, () => Promise<any>>;
11
+ config?: LTWorkerConfig;
12
+ };
13
+ export declare function getSystemWorkers(): SystemWorkerEntry[];
14
+ export type McpServerFactoryEntry = {
15
+ factory: () => Promise<any>;
16
+ config: LTMcpServerConfig;
17
+ };
18
+ export declare const builtinMcpServerFactories: Record<string, McpServerFactoryEntry>;
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ /**
3
+ * System workers and built-in MCP server factories.
4
+ *
5
+ * All declarations carry inline `config` that seeds the DB on first boot.
6
+ * DB is the source of truth after seeding — startup never overwrites.
7
+ */
2
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
9
  if (k2 === undefined) k2 = k;
4
10
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -35,80 +41,247 @@ var __importStar = (this && this.__importStar) || (function () {
35
41
  Object.defineProperty(exports, "__esModule", { value: true });
36
42
  exports.builtinMcpServerFactories = void 0;
37
43
  exports.getSystemWorkers = getSystemWorkers;
38
- /**
39
- * System workers and built-in MCP server factories.
40
- *
41
- * All MCP-powered workflows (triage, query, their routers and deterministic
42
- * counterparts) require an LLM API key. They load conditionally.
43
- */
44
+ // ── Tool manifests (static JSON schema data) ────────────────────────────────
45
+ const tool_manifests_escalation_1 = require("./seed/tool-manifests-escalation");
46
+ const tool_manifests_data_1 = require("./seed/tool-manifests-data");
47
+ const tool_manifests_browser_1 = require("./seed/tool-manifests-browser");
48
+ const tool_manifests_workflows_1 = require("./seed/tool-manifests-workflows");
49
+ const tool_manifests_admin_1 = require("./seed/tool-manifests-admin");
50
+ const tool_manifests_knowledge_1 = require("./seed/tool-manifests-knowledge");
51
+ // Gmail is an example connector — loaded conditionally (not in npm package)
52
+ let GMAIL_TOOLS = [];
53
+ try {
54
+ GMAIL_TOOLS = require('../examples/seed/tool-manifests-gmail').GMAIL_TOOLS;
55
+ }
56
+ catch { /* not available */ }
57
+ // ── Role constants ──────────────────────────────────────────────────────────
58
+ const SYSTEM_ROLES = ['reviewer', 'engineer', 'admin'];
59
+ const ENGINEER = 'engineer';
60
+ // ── System workflow configs ─────────────────────────────────────────────────
61
+ const SYSTEM_WORKFLOW_BASE = {
62
+ defaultRole: ENGINEER,
63
+ roles: SYSTEM_ROLES,
64
+ invocable: false,
65
+ };
66
+ const systemWorkflowConfigs = {
67
+ mcpTriageRouter: {
68
+ ...SYSTEM_WORKFLOW_BASE,
69
+ description: 'Triage router — discovers compiled workflows for remediation, routes to deterministic or dynamic triage',
70
+ },
71
+ mcpTriageDeterministic: {
72
+ ...SYSTEM_WORKFLOW_BASE,
73
+ description: 'Deterministic triage — invokes matched compiled workflows for escalation remediation',
74
+ },
75
+ mcpTriage: {
76
+ ...SYSTEM_WORKFLOW_BASE,
77
+ description: 'Dynamic MCP triage — LLM agentic loop for escalation remediation',
78
+ },
79
+ mcpQueryRouter: {
80
+ ...SYSTEM_WORKFLOW_BASE,
81
+ description: 'Do anything with tools — browser automation, file operations, HTTP requests, database queries, document processing, and more',
82
+ envelopeSchema: {
83
+ data: { prompt: 'Describe what you want to accomplish using available tools...' },
84
+ metadata: { source: 'dashboard' },
85
+ },
86
+ },
87
+ mcpQuery: {
88
+ ...SYSTEM_WORKFLOW_BASE,
89
+ description: 'Dynamic MCP tool orchestration — LLM agentic loop with raw MCP tools',
90
+ },
91
+ mcpDeterministic: {
92
+ ...SYSTEM_WORKFLOW_BASE,
93
+ description: 'Deterministic execution — invokes matched compiled YAML workflows with extracted inputs',
94
+ },
95
+ mcpWorkflowBuilder: {
96
+ ...SYSTEM_WORKFLOW_BASE,
97
+ description: 'Direct pipeline builder — LLM constructs DAG from tool schemas',
98
+ },
99
+ mcpWorkflowPlanner: {
100
+ ...SYSTEM_WORKFLOW_BASE,
101
+ description: 'Plan mode — decomposes specifications into multi-workflow sets',
102
+ },
103
+ };
44
104
  function getSystemWorkers() {
45
105
  const workers = [];
46
106
  const hasLLM = process.env.OPENAI_API_KEY || process.env.ANTHROPIC_API_KEY;
47
107
  if (hasLLM) {
48
- // ── Triage pipeline (router → deterministic | dynamic) ──
49
- try {
50
- const { mcpTriageRouter } = require('./workflows/mcp-triage-router');
51
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpTriageRouter });
108
+ const pairs = [
109
+ { mod: './workflows/mcp-triage-router', name: 'mcpTriageRouter' },
110
+ { mod: './workflows/mcp-triage-deterministic', name: 'mcpTriageDeterministic' },
111
+ { mod: './workflows/mcp-triage', name: 'mcpTriage' },
112
+ { mod: './workflows/mcp-query-router', name: 'mcpQueryRouter' },
113
+ { mod: './workflows/mcp-query', name: 'mcpQuery' },
114
+ { mod: './workflows/mcp-deterministic', name: 'mcpDeterministic' },
115
+ { mod: './workflows/mcp-workflow-builder', name: 'mcpWorkflowBuilder' },
116
+ { mod: './workflows/mcp-workflow-planner', name: 'mcpWorkflowPlanner' },
117
+ ];
118
+ for (const { mod, name } of pairs) {
119
+ try {
120
+ const wf = require(mod)[name];
121
+ workers.push({
122
+ taskQueue: 'long-tail-system',
123
+ workflow: wf,
124
+ config: systemWorkflowConfigs[name],
125
+ });
126
+ }
127
+ catch { /* module not available */ }
52
128
  }
53
- catch { /* not available */ }
54
- try {
55
- const { mcpTriageDeterministic } = require('./workflows/mcp-triage-deterministic');
56
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpTriageDeterministic });
57
- }
58
- catch { /* not available */ }
59
- try {
60
- const { mcpTriage } = require('./workflows/mcp-triage');
61
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpTriage });
62
- }
63
- catch { /* not available */ }
64
- // ── Query pipeline (router → deterministic | dynamic) ──
65
- try {
66
- const { mcpQueryRouter } = require('./workflows/mcp-query-router');
67
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpQueryRouter });
68
- }
69
- catch { /* not available */ }
70
- try {
71
- const { mcpQuery } = require('./workflows/mcp-query');
72
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpQuery });
73
- }
74
- catch { /* not available */ }
75
- try {
76
- const { mcpDeterministic } = require('./workflows/mcp-deterministic');
77
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpDeterministic });
78
- }
79
- catch { /* not available */ }
80
- // ── Workflow builder (direct YAML construction) ──
81
- try {
82
- const { mcpWorkflowBuilder } = require('./workflows/mcp-workflow-builder');
83
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpWorkflowBuilder });
84
- }
85
- catch { /* not available */ }
86
- // ── Workflow planner (multi-workflow plan mode) ──
87
- try {
88
- const { mcpWorkflowPlanner } = require('./workflows/mcp-workflow-planner');
89
- workers.push({ taskQueue: 'long-tail-system', workflow: mcpWorkflowPlanner });
90
- }
91
- catch { /* not available */ }
92
129
  }
93
130
  return workers;
94
131
  }
95
- /**
96
- * Built-in MCP server factories.
97
- * Each entry maps a server name to a lazy factory that creates the McpServer instance.
98
- * Registered via `registerBuiltinServer()` in `services/mcp/client.ts`.
99
- */
100
132
  exports.builtinMcpServerFactories = {
101
- 'long-tail-human-queue': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/human-queue'))).then((m) => m.createHumanQueueServer()),
102
- 'long-tail-translation': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/translation'))).then((m) => m.createTranslationServer()),
103
- 'long-tail-vision': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/vision'))).then((m) => m.createVisionServer()),
104
- 'long-tail-playwright': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/playwright'))).then((m) => m.createPlaywrightServer()),
105
- 'long-tail-playwright-cli': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/playwright-cli'))).then((m) => m.createPlaywrightCliServer()),
106
- 'long-tail-file-storage': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/file-storage'))).then((m) => m.createFileStorageServer()),
107
- 'long-tail-http-fetch': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/http-fetch'))).then((m) => m.createHttpFetchServer()),
108
- 'long-tail-oauth': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/oauth'))).then((m) => m.createOAuthServer()),
109
- 'long-tail-docs': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/docs'))).then((m) => m.createDocsServer()),
110
- 'long-tail-claude-code': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/claude-code'))).then((m) => m.createClaudeCodeServer()),
111
- 'long-tail-admin': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/admin'))).then((m) => m.createAdminServer()),
112
- 'long-tail-knowledge': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/knowledge'))).then((m) => m.createKnowledgeServer()),
113
- 'long-tail-schema-exchange': () => Promise.resolve().then(() => __importStar(require('./mcp-servers/schema-exchange'))).then((m) => m.createSchemaExchangeServer()),
133
+ 'long-tail-human-queue': {
134
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/human-queue'))).then((m) => m.createHumanQueueServer()),
135
+ config: {
136
+ description: 'Built-in escalation and human queue management. Exposes the escalation API as MCP tools for AI agents and remediation workflows.',
137
+ tags: ['escalation', 'human-queue', 'routing'],
138
+ compileHints: [
139
+ 'escalate_and_wait creates a durable pause point.',
140
+ 'The step AFTER escalate_and_wait is always a signal step (kind: "signal") that receives the human response.',
141
+ 'Fields from the signal step output (e.g., password) must be wired via data_flow edges to ALL downstream steps that need them.',
142
+ ].join(' '),
143
+ toolManifest: tool_manifests_escalation_1.HUMAN_QUEUE_TOOLS,
144
+ },
145
+ },
146
+ 'long-tail-translation': {
147
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/translation'))).then((m) => m.createTranslationServer()),
148
+ config: {
149
+ description: 'Text translation using LLM. Translates content between languages with automatic source language detection.',
150
+ tags: ['translation', 'language', 'text-processing'],
151
+ credentialProviders: ['anthropic'],
152
+ toolManifest: tool_manifests_data_1.TRANSLATION_TOOLS,
153
+ },
154
+ },
155
+ 'long-tail-vision': {
156
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/vision'))).then((m) => m.createVisionServer()),
157
+ config: {
158
+ description: 'Image analysis and description using LLM vision. Analyzes images to extract structured data, text content, and descriptions.',
159
+ tags: ['vision', 'image-analysis', 'multimodal'],
160
+ compileHints: [
161
+ 'Vision tools process one image at a time.',
162
+ 'The argument name is `image` (NOT `image_path`). It accepts a storage path, data URI, or https:// URL.',
163
+ 'Vision tools do NOT use browser sessions. Do NOT wire page_id or _handle to vision tools.',
164
+ 'analyze_image output fields: description (string), text_content (string), objects (array).',
165
+ ].join(' '),
166
+ credentialProviders: ['anthropic'],
167
+ toolManifest: tool_manifests_data_1.VISION_ANALYSIS_TOOLS,
168
+ },
169
+ },
170
+ 'long-tail-playwright': {
171
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/playwright'))).then((m) => m.createPlaywrightServer()),
172
+ config: {
173
+ description: 'Low-level browser automation via Playwright. Fine-grained control: navigate, click, fill, wait_for, evaluate, run_script.',
174
+ tags: ['browser-automation', 'testing', 'screenshots'],
175
+ compileHints: [
176
+ 'Session fields (_handle, page_id) MUST be threaded from the step that created them to EVERY subsequent browser step.',
177
+ 'run_script accepts a `steps` array — fixed implementation detail, never a dynamic input.',
178
+ 'run_script exposes `screenshots` (array) and `last_screenshot_path` (string) as output fields.',
179
+ ].join(' '),
180
+ toolManifest: tool_manifests_browser_1.PLAYWRIGHT_TOOLS,
181
+ },
182
+ },
183
+ 'long-tail-playwright-cli': {
184
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/playwright-cli'))).then((m) => m.createPlaywrightCliServer()),
185
+ config: {
186
+ description: 'High-level browser automation. Intent-based tools that handle session management, timing, and error recovery internally.',
187
+ tags: ['browser-automation', 'screenshots', 'scraping', 'forms'],
188
+ compileHints: [
189
+ 'Session fields (_handle, page_id) MUST be threaded from producing step to ALL subsequent browser steps.',
190
+ 'extract_content returns `links` (structured array) and `script_result` (raw). Use `links` as the source field.',
191
+ 'capture_page screenshot_path MUST include a file extension (.png).',
192
+ ].join(' '),
193
+ toolManifest: tool_manifests_browser_1.PLAYWRIGHT_CLI_TOOLS,
194
+ },
195
+ },
196
+ 'long-tail-docs': {
197
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/docs'))).then((m) => m.createDocsServer()),
198
+ config: {
199
+ description: 'Product documentation search and retrieval. List, search, and read Long Tail documentation.',
200
+ tags: ['documentation', 'help', 'reference'],
201
+ toolManifest: tool_manifests_data_1.DOCS_TOOLS,
202
+ },
203
+ },
204
+ 'long-tail-file-storage': {
205
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/file-storage'))).then((m) => m.createFileStorageServer()),
206
+ config: {
207
+ description: 'Managed file storage for reading, writing, listing, and deleting files.',
208
+ tags: ['storage', 'files', 'io'],
209
+ toolManifest: tool_manifests_data_1.FILE_STORAGE_TOOLS,
210
+ },
211
+ },
212
+ 'long-tail-http-fetch': {
213
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/http-fetch'))).then((m) => m.createHttpFetchServer()),
214
+ config: {
215
+ description: 'HTTP client tools for making GET, POST, and arbitrary HTTP requests.',
216
+ tags: ['http', 'api', 'fetch', 'network'],
217
+ compileHints: 'HTTP response bodies may be large. Prefer specific fields from parsed JSON rather than raw body.',
218
+ toolManifest: tool_manifests_data_1.HTTP_FETCH_TOOLS,
219
+ },
220
+ },
221
+ 'long-tail-oauth': {
222
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/oauth'))).then((m) => m.createOAuthServer()),
223
+ config: {
224
+ description: 'OAuth token management. Get fresh access tokens for external services. Handles automatic token refresh.',
225
+ tags: ['authentication', 'oauth', 'credentials'],
226
+ compileHints: 'get_access_token returns a short-lived token. Call immediately before authenticated API requests — do not cache across steps.',
227
+ toolManifest: tool_manifests_data_1.OAUTH_TOOLS,
228
+ },
229
+ },
230
+ 'long-tail-claude-code': {
231
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/claude-code'))).then((m) => m.createClaudeCodeServer()),
232
+ config: {
233
+ description: 'Agentic coding assistant via Claude Code CLI. Execute development tasks: code generation, refactoring, file analysis, and multi-step workflows.',
234
+ tags: ['development', 'coding', 'ai-agent', 'terminal', 'code-generation'],
235
+ compileHints: 'execute_task runs Claude Code as a subprocess. The `prompt` parameter is ALWAYS a dynamic trigger input. ' +
236
+ 'Keep prompts self-contained. For read-only analysis, restrict with allowed_tools: ["Read", "Grep", "Glob"].',
237
+ credentialProviders: ['anthropic'],
238
+ toolManifest: tool_manifests_workflows_1.CLAUDE_CODE_TOOLS,
239
+ },
240
+ },
241
+ 'long-tail-admin': {
242
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/admin'))).then((m) => m.createAdminServer()),
243
+ config: {
244
+ description: 'System administration tools for reflexive self-management. Certify workflows, update server tags, manage roles.',
245
+ tags: ['admin', 'system', 'configuration'],
246
+ compileHints: 'Admin tools modify system configuration. certify_workflow and decertify_workflow change interceptor behavior.',
247
+ toolManifest: tool_manifests_admin_1.ADMIN_TOOLS,
248
+ },
249
+ },
250
+ 'long-tail-knowledge': {
251
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/knowledge'))).then((m) => m.createKnowledgeServer()),
252
+ config: {
253
+ description: 'Persistent knowledge store for autonomous agents. Store, retrieve, search, and accumulate JSONB documents in isolated domains.',
254
+ tags: ['knowledge', 'memory', 'state', 'storage'],
255
+ compileHints: 'store_knowledge: domain (string), key (string), data (object — MUST be JSON object, never string). ' +
256
+ 'Upserts by domain+key. search_knowledge uses JSONB containment (@>). ' +
257
+ 'append_knowledge adds to arrays without replacing. list_domains returns all domains with counts.',
258
+ toolManifest: tool_manifests_knowledge_1.KNOWLEDGE_TOOLS,
259
+ },
260
+ },
261
+ 'long-tail-schema-exchange': {
262
+ factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/schema-exchange'))).then((m) => m.createSchemaExchangeServer()),
263
+ config: {
264
+ description: 'Schema-driven data exchange with external service endpoints. Validates requests and responses against JSON Schema.',
265
+ tags: ['api', 'schema', 'exchange', 'validation', 'fetch'],
266
+ compileHints: 'Validates requests before sending and responses after receiving. ' +
267
+ 'Embed request_schema and response_schema as STATIC values. ' +
268
+ 'Exchange output: { status, data, headers, elapsed_ms, validated }. API response is in .data field. ' +
269
+ 'For auth, prefer credential_provider over manual token wiring.',
270
+ toolManifest: tool_manifests_data_1.SCHEMA_EXCHANGE_TOOLS,
271
+ },
272
+ },
114
273
  };
274
+ // Gmail is an example connector — only register when available (not in npm package)
275
+ if (GMAIL_TOOLS.length > 0) {
276
+ exports.builtinMcpServerFactories['long-tail-gmail'] = {
277
+ factory: () => Promise.resolve().then(() => __importStar(require('../examples/mcp-servers/gmail'))).then((m) => m.createGmailServer()),
278
+ config: {
279
+ description: 'Gmail tools — search, read, summarize, extract, and draft emails using your connected Google account.',
280
+ tags: ['gmail', 'email', 'messaging', 'google'],
281
+ compileHints: 'Requires a connected Google account (OAuth). gmail_search finds messages, gmail_read gets full content, ' +
282
+ 'gmail_summarize for threads, gmail_extract for structured data, gmail_draft for composing.',
283
+ credentialProviders: ['google'],
284
+ toolManifest: GMAIL_TOOLS,
285
+ },
286
+ };
287
+ }
@@ -278,7 +278,7 @@ export declare const runScriptStepSchema: z.ZodObject<{
278
278
  not: z.ZodOptional<z.ZodBoolean>;
279
279
  describe: z.ZodOptional<z.ZodBoolean>;
280
280
  }, "strip", z.ZodTypeAny, {
281
- action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "wait_for_url" | "wait" | "evaluate";
281
+ action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "evaluate" | "wait_for_url" | "wait";
282
282
  value?: string | undefined;
283
283
  not?: boolean | undefined;
284
284
  url?: string | undefined;
@@ -287,10 +287,10 @@ export declare const runScriptStepSchema: z.ZodObject<{
287
287
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
288
288
  timeout?: number | undefined;
289
289
  full_page?: boolean | undefined;
290
- describe?: boolean | undefined;
291
290
  script?: string | undefined;
291
+ describe?: boolean | undefined;
292
292
  }, {
293
- action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "wait_for_url" | "wait" | "evaluate";
293
+ action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "evaluate" | "wait_for_url" | "wait";
294
294
  value?: string | undefined;
295
295
  not?: boolean | undefined;
296
296
  url?: string | undefined;
@@ -299,8 +299,8 @@ export declare const runScriptStepSchema: z.ZodObject<{
299
299
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
300
300
  timeout?: number | undefined;
301
301
  full_page?: boolean | undefined;
302
- describe?: boolean | undefined;
303
302
  script?: string | undefined;
303
+ describe?: boolean | undefined;
304
304
  }>;
305
305
  export declare const runScriptSchema: z.ZodObject<{
306
306
  _handle: z.ZodOptional<z.ZodObject<{
@@ -329,7 +329,7 @@ export declare const runScriptSchema: z.ZodObject<{
329
329
  not: z.ZodOptional<z.ZodBoolean>;
330
330
  describe: z.ZodOptional<z.ZodBoolean>;
331
331
  }, "strip", z.ZodTypeAny, {
332
- action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "wait_for_url" | "wait" | "evaluate";
332
+ action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "evaluate" | "wait_for_url" | "wait";
333
333
  value?: string | undefined;
334
334
  not?: boolean | undefined;
335
335
  url?: string | undefined;
@@ -338,10 +338,10 @@ export declare const runScriptSchema: z.ZodObject<{
338
338
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
339
339
  timeout?: number | undefined;
340
340
  full_page?: boolean | undefined;
341
- describe?: boolean | undefined;
342
341
  script?: string | undefined;
342
+ describe?: boolean | undefined;
343
343
  }, {
344
- action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "wait_for_url" | "wait" | "evaluate";
344
+ action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "evaluate" | "wait_for_url" | "wait";
345
345
  value?: string | undefined;
346
346
  not?: boolean | undefined;
347
347
  url?: string | undefined;
@@ -350,12 +350,12 @@ export declare const runScriptSchema: z.ZodObject<{
350
350
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
351
351
  timeout?: number | undefined;
352
352
  full_page?: boolean | undefined;
353
- describe?: boolean | undefined;
354
353
  script?: string | undefined;
354
+ describe?: boolean | undefined;
355
355
  }>, "many">;
356
356
  }, "strip", z.ZodTypeAny, {
357
357
  steps: {
358
- action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "wait_for_url" | "wait" | "evaluate";
358
+ action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "evaluate" | "wait_for_url" | "wait";
359
359
  value?: string | undefined;
360
360
  not?: boolean | undefined;
361
361
  url?: string | undefined;
@@ -364,8 +364,8 @@ export declare const runScriptSchema: z.ZodObject<{
364
364
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
365
365
  timeout?: number | undefined;
366
366
  full_page?: boolean | undefined;
367
- describe?: boolean | undefined;
368
367
  script?: string | undefined;
368
+ describe?: boolean | undefined;
369
369
  }[];
370
370
  _handle?: {
371
371
  type: "playwright_page";
@@ -374,7 +374,7 @@ export declare const runScriptSchema: z.ZodObject<{
374
374
  } | undefined;
375
375
  }, {
376
376
  steps: {
377
- action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "wait_for_url" | "wait" | "evaluate";
377
+ action: "fill" | "navigate" | "screenshot" | "click" | "wait_for" | "evaluate" | "wait_for_url" | "wait";
378
378
  value?: string | undefined;
379
379
  not?: boolean | undefined;
380
380
  url?: string | undefined;
@@ -383,8 +383,8 @@ export declare const runScriptSchema: z.ZodObject<{
383
383
  wait_until?: "load" | "domcontentloaded" | "networkidle" | undefined;
384
384
  timeout?: number | undefined;
385
385
  full_page?: boolean | undefined;
386
- describe?: boolean | undefined;
387
386
  script?: string | undefined;
387
+ describe?: boolean | undefined;
388
388
  }[];
389
389
  _handle?: {
390
390
  type: "playwright_page";
@@ -1,7 +0,0 @@
1
- import { SEED_MCP_SERVERS } from './server-definitions';
2
- export { SEED_MCP_SERVERS };
3
- /**
4
- * Seed system MCP servers into lt_mcp_servers.
5
- * Upserts each built-in server with its tool manifest, metadata, and tags.
6
- */
7
- export declare function seedSystemMcpServers(): Promise<void>;
@@ -1,47 +1,6 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SEED_MCP_SERVERS = void 0;
4
- exports.seedSystemMcpServers = seedSystemMcpServers;
5
- const db_1 = require("../../lib/db");
6
- const logger_1 = require("../../lib/logger");
7
- const sql_1 = require("../../services/mcp/sql");
8
- const server_definitions_1 = require("./server-definitions");
9
- Object.defineProperty(exports, "SEED_MCP_SERVERS", { enumerable: true, get: function () { return server_definitions_1.SEED_MCP_SERVERS; } });
10
- /**
11
- * Seed system MCP servers into lt_mcp_servers.
12
- * Upserts each built-in server with its tool manifest, metadata, and tags.
13
- */
14
- async function seedSystemMcpServers() {
15
- const pool = (0, db_1.getPool)();
16
- for (const srv of server_definitions_1.SEED_MCP_SERVERS) {
17
- try {
18
- await pool.query(sql_1.SEED_MCP_SERVER, [
19
- srv.name,
20
- srv.description,
21
- srv.transport_type,
22
- JSON.stringify(srv.transport_config),
23
- JSON.stringify(srv.tool_manifest),
24
- JSON.stringify(srv.metadata),
25
- srv.tags,
26
- srv.compile_hints,
27
- srv.credential_providers || [],
28
- ]);
29
- }
30
- catch (err) {
31
- logger_1.loggerRegistry.warn(`[system] failed to seed MCP server ${srv.name}: ${err.message}`);
32
- }
33
- }
34
- // Remove stale builtin servers no longer in the seed list
35
- const seedNames = server_definitions_1.SEED_MCP_SERVERS.map(s => s.name);
36
- try {
37
- const { rows } = await pool.query(sql_1.DELETE_STALE_BUILTIN_SERVERS, [seedNames]);
38
- for (const row of rows) {
39
- logger_1.loggerRegistry.info(`[system] removed stale builtin MCP server: ${row.name}`);
40
- }
41
- }
42
- catch (err) {
43
- logger_1.loggerRegistry.warn(`[system] failed to clean stale MCP servers: ${err.message}`);
44
- }
45
- const totalTools = server_definitions_1.SEED_MCP_SERVERS.reduce((sum, s) => sum + s.tool_manifest.length, 0);
46
- logger_1.loggerRegistry.info(`[system] MCP servers seeded (${server_definitions_1.SEED_MCP_SERVERS.length} servers, ${totalTools} tools)`);
47
- }
2
+ // System seed module.
3
+ // MCP server definitions and workflow configs are now declared inline
4
+ // on their factories/workers in system/index.ts and seeded at startup
5
+ // via insert-if-absent. This module is retained for backward compatibility
6
+ // but no longer performs seeding.