@hotmeshio/long-tail 0.10.9 → 0.10.11

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 (301) hide show
  1. package/build/api/escalations/list.js +11 -4
  2. package/build/api/index.d.ts +1 -0
  3. package/build/api/index.js +2 -1
  4. package/build/api/personas.d.ts +121 -0
  5. package/build/api/personas.js +341 -0
  6. package/build/api/roles.d.ts +2 -0
  7. package/build/api/roles.js +4 -0
  8. package/build/bin/ltc.js +23 -0
  9. package/build/lib/cli/commands/personas.d.ts +16 -0
  10. package/build/lib/cli/commands/personas.js +42 -0
  11. package/build/lib/db/schemas/024_personas.sql +53 -0
  12. package/build/lib/db/schemas/025_ops_home_default.sql +11 -0
  13. package/build/modules/features.d.ts +9 -0
  14. package/build/modules/features.js +1 -0
  15. package/build/routes/index.js +2 -0
  16. package/build/routes/personas.d.ts +2 -0
  17. package/build/routes/personas.js +118 -0
  18. package/build/routes/users.js +35 -0
  19. package/build/sdk/index.d.ts +15 -0
  20. package/build/sdk/index.js +16 -0
  21. package/build/services/persona/index.d.ts +92 -0
  22. package/build/services/persona/index.js +217 -0
  23. package/build/services/persona/sql.d.ts +24 -0
  24. package/build/services/persona/sql.js +158 -0
  25. package/build/services/persona/types.d.ts +23 -0
  26. package/build/services/persona/types.js +33 -0
  27. package/build/services/role/index.js +1 -0
  28. package/build/services/role/sql.d.ts +6 -2
  29. package/build/services/role/sql.js +11 -2
  30. package/build/services/role/types.d.ts +9 -0
  31. package/build/services/user/sql.d.ts +8 -5
  32. package/build/services/user/sql.js +15 -5
  33. package/build/system/mcp-servers/admin/index.d.ts +1 -0
  34. package/build/system/mcp-servers/admin/index.js +5 -2
  35. package/build/system/mcp-servers/admin/personas.d.ts +8 -0
  36. package/build/system/mcp-servers/admin/personas.js +186 -0
  37. package/build/system/mcp-servers/admin/schemas.d.ts +94 -0
  38. package/build/system/mcp-servers/admin/schemas.js +43 -2
  39. package/build/system/mcp-servers/admin/users.js +1 -0
  40. package/build/system/seed/tool-manifests-admin.d.ts +1057 -0
  41. package/build/system/seed/tool-manifests-admin.js +12 -1
  42. package/build/tsconfig.tsbuildinfo +1 -1
  43. package/build/types/index.d.ts +1 -0
  44. package/build/types/persona.d.ts +56 -0
  45. package/build/types/persona.js +2 -0
  46. package/build/types/startup.d.ts +8 -0
  47. package/build/types/user.d.ts +2 -0
  48. package/dashboard/dist/assets/{AdminDashboard-DWSYdAeW.js → AdminDashboard-CkTbRfY9.js} +2 -2
  49. package/dashboard/dist/assets/{AdminDashboard-DWSYdAeW.js.map → AdminDashboard-CkTbRfY9.js.map} +1 -1
  50. package/dashboard/dist/assets/{AgentConfigPage-Dm6gL76m.js → AgentConfigPage-Cm8FRpXi.js} +2 -2
  51. package/dashboard/dist/assets/{AgentConfigPage-Dm6gL76m.js.map → AgentConfigPage-Cm8FRpXi.js.map} +1 -1
  52. package/dashboard/dist/assets/AgentDetailPage-sQ1-UT46.js +4 -0
  53. package/dashboard/dist/assets/AgentDetailPage-sQ1-UT46.js.map +1 -0
  54. package/dashboard/dist/assets/{AgentsPage-DKaDRk-Y.js → AgentsPage-bSx_mdae.js} +2 -2
  55. package/dashboard/dist/assets/{AgentsPage-DKaDRk-Y.js.map → AgentsPage-bSx_mdae.js.map} +1 -1
  56. package/dashboard/dist/assets/AutoGrowTextarea-y-oNY51_.js +2 -0
  57. package/dashboard/dist/assets/AutoGrowTextarea-y-oNY51_.js.map +1 -0
  58. package/dashboard/dist/assets/AvailableEscalationsPage-8pMC7Xv6.js +2 -0
  59. package/dashboard/dist/assets/AvailableEscalationsPage-8pMC7Xv6.js.map +1 -0
  60. package/dashboard/dist/assets/{BotPicker-DRv_orzI.js → BotPicker-C4uGH2x9.js} +2 -2
  61. package/dashboard/dist/assets/{BotPicker-DRv_orzI.js.map → BotPicker-C4uGH2x9.js.map} +1 -1
  62. package/dashboard/dist/assets/{CapabilitiesPage-DqRVzMol.js → CapabilitiesPage-BRoOeKcc.js} +2 -2
  63. package/dashboard/dist/assets/{CapabilitiesPage-DqRVzMol.js.map → CapabilitiesPage-BRoOeKcc.js.map} +1 -1
  64. package/dashboard/dist/assets/{CollapsibleSection-D0psvw8i.js → CollapsibleSection-CIj8Adc9.js} +2 -2
  65. package/dashboard/dist/assets/{CollapsibleSection-D0psvw8i.js.map → CollapsibleSection-CIj8Adc9.js.map} +1 -1
  66. package/dashboard/dist/assets/{ConfirmDeleteModal-DD7SEMeX.js → ConfirmDeleteModal-Ugi_9Ukq.js} +2 -2
  67. package/dashboard/dist/assets/{ConfirmDeleteModal-DD7SEMeX.js.map → ConfirmDeleteModal-Ugi_9Ukq.js.map} +1 -1
  68. package/dashboard/dist/assets/{CopyableId-BpB-NvDh.js → CopyableId-GUEdiiL5.js} +2 -2
  69. package/dashboard/dist/assets/{CopyableId-BpB-NvDh.js.map → CopyableId-GUEdiiL5.js.map} +1 -1
  70. package/dashboard/dist/assets/CountdownTimer-D3t0XMhE.js +2 -0
  71. package/dashboard/dist/assets/CountdownTimer-D3t0XMhE.js.map +1 -0
  72. package/dashboard/dist/assets/{CredentialsPage-Axdci1z-.js → CredentialsPage-B73Si6K1.js} +2 -2
  73. package/dashboard/dist/assets/{CredentialsPage-Axdci1z-.js.map → CredentialsPage-B73Si6K1.js.map} +1 -1
  74. package/dashboard/dist/assets/{CronLabel-BjZ_wZA8.js → CronLabel-Ca1aHolt.js} +2 -2
  75. package/dashboard/dist/assets/{CronLabel-BjZ_wZA8.js.map → CronLabel-Ca1aHolt.js.map} +1 -1
  76. package/dashboard/dist/assets/{CustomDurationPicker-CkUCMUfk.js → CustomDurationPicker-_9E9x1YN.js} +2 -2
  77. package/dashboard/dist/assets/{CustomDurationPicker-CkUCMUfk.js.map → CustomDurationPicker-_9E9x1YN.js.map} +1 -1
  78. package/dashboard/dist/assets/{DropZone-_tmC3jEe.js → DropZone-NYn6TWHz.js} +2 -2
  79. package/dashboard/dist/assets/{DropZone-_tmC3jEe.js.map → DropZone-NYn6TWHz.js.map} +1 -1
  80. package/dashboard/dist/assets/ElapsedCell-karxia93.js +2 -0
  81. package/dashboard/dist/assets/{ElapsedCell-BE_CN5sP.js.map → ElapsedCell-karxia93.js.map} +1 -1
  82. package/dashboard/dist/assets/{EscalationListSchemaPage-CgcVIiYR.js → EscalationListSchemaPage-CDaNmbUA.js} +3 -3
  83. package/dashboard/dist/assets/{EscalationListSchemaPage-CgcVIiYR.js.map → EscalationListSchemaPage-CDaNmbUA.js.map} +1 -1
  84. package/dashboard/dist/assets/{EscalationSchemaPage-BaAn1Hcr.js → EscalationSchemaPage-k-2hFT2t.js} +3 -3
  85. package/dashboard/dist/assets/{EscalationSchemaPage-BaAn1Hcr.js.map → EscalationSchemaPage-k-2hFT2t.js.map} +1 -1
  86. package/dashboard/dist/assets/{EscalationsOverview-Dbq7tKzr.js → EscalationsOverview-C1e7IPn_.js} +2 -2
  87. package/dashboard/dist/assets/{EscalationsOverview-Dbq7tKzr.js.map → EscalationsOverview-C1e7IPn_.js.map} +1 -1
  88. package/dashboard/dist/assets/{EventTable-0RUK9jqt.js → EventTable-CIrrtL7_.js} +2 -2
  89. package/dashboard/dist/assets/{EventTable-0RUK9jqt.js.map → EventTable-CIrrtL7_.js.map} +1 -1
  90. package/dashboard/dist/assets/{FilterBar-B_dy2Jhj.js → FilterBar-CzjtH74v.js} +2 -2
  91. package/dashboard/dist/assets/{FilterBar-B_dy2Jhj.js.map → FilterBar-CzjtH74v.js.map} +1 -1
  92. package/dashboard/dist/assets/{GraphInvokePage-CvLYp1nL.js → GraphInvokePage-LMpWw8z1.js} +2 -2
  93. package/dashboard/dist/assets/{GraphInvokePage-CvLYp1nL.js.map → GraphInvokePage-LMpWw8z1.js.map} +1 -1
  94. package/dashboard/dist/assets/HomePage-Kl2DBG6l.js +2 -0
  95. package/dashboard/dist/assets/HomePage-Kl2DBG6l.js.map +1 -0
  96. package/dashboard/dist/assets/ListToolbar-B2fub0DY.js +2 -0
  97. package/dashboard/dist/assets/ListToolbar-B2fub0DY.js.map +1 -0
  98. package/dashboard/dist/assets/{McpOverview-Ca8cpc8g.js → McpOverview-odYnCZCC.js} +2 -2
  99. package/dashboard/dist/assets/{McpOverview-Ca8cpc8g.js.map → McpOverview-odYnCZCC.js.map} +1 -1
  100. package/dashboard/dist/assets/McpQueryDetailPage-BtqwHUAg.js +5 -0
  101. package/dashboard/dist/assets/McpQueryDetailPage-BtqwHUAg.js.map +1 -0
  102. package/dashboard/dist/assets/McpQueryPage-CPkVwNIK.js +2 -0
  103. package/dashboard/dist/assets/McpQueryPage-CPkVwNIK.js.map +1 -0
  104. package/dashboard/dist/assets/{McpRunDetailPage-C76mfUtG.js → McpRunDetailPage-D-Rz9MRw.js} +2 -2
  105. package/dashboard/dist/assets/{McpRunDetailPage-C76mfUtG.js.map → McpRunDetailPage-D-Rz9MRw.js.map} +1 -1
  106. package/dashboard/dist/assets/{McpRunsPage-B43BqEyw.js → McpRunsPage-rdpZ2yMh.js} +2 -2
  107. package/dashboard/dist/assets/{McpRunsPage-B43BqEyw.js.map → McpRunsPage-rdpZ2yMh.js.map} +1 -1
  108. package/dashboard/dist/assets/{Modal-CA2Iv02H.js → Modal-Dr1Xy0j0.js} +2 -2
  109. package/dashboard/dist/assets/{Modal-CA2Iv02H.js.map → Modal-Dr1Xy0j0.js.map} +1 -1
  110. package/dashboard/dist/assets/{NamespacePill-B5gHotsd.js → NamespacePill-GwO-WfhX.js} +2 -2
  111. package/dashboard/dist/assets/{NamespacePill-B5gHotsd.js.map → NamespacePill-GwO-WfhX.js.map} +1 -1
  112. package/dashboard/dist/assets/OperationsPage-DlyGLPAs.js +2 -0
  113. package/dashboard/dist/assets/OperationsPage-DlyGLPAs.js.map +1 -0
  114. package/dashboard/dist/assets/OperatorDashboard-Csei5vj-.js +2 -0
  115. package/dashboard/dist/assets/OperatorDashboard-Csei5vj-.js.map +1 -0
  116. package/dashboard/dist/assets/{PageHeader-DrbNMGxm.js → PageHeader-Bo9BU9pK.js} +2 -2
  117. package/dashboard/dist/assets/{PageHeader-DrbNMGxm.js.map → PageHeader-Bo9BU9pK.js.map} +1 -1
  118. package/dashboard/dist/assets/{PageHeaderWithStats-SbQkaQLG.js → PageHeaderWithStats-8_5cOSKL.js} +2 -2
  119. package/dashboard/dist/assets/{PageHeaderWithStats-SbQkaQLG.js.map → PageHeaderWithStats-8_5cOSKL.js.map} +1 -1
  120. package/dashboard/dist/assets/PersonaDetailPage--ZL6Or6v.js +2 -0
  121. package/dashboard/dist/assets/PersonaDetailPage--ZL6Or6v.js.map +1 -0
  122. package/dashboard/dist/assets/PersonasPage-Bdcoay3P.js +2 -0
  123. package/dashboard/dist/assets/PersonasPage-Bdcoay3P.js.map +1 -0
  124. package/dashboard/dist/assets/ProcessDetailPage-HrmVQq7S.js +2 -0
  125. package/dashboard/dist/assets/ProcessDetailPage-HrmVQq7S.js.map +1 -0
  126. package/dashboard/dist/assets/{ProcessesListPage-Di0n8TR4.js → ProcessesListPage-_xmj6Bo-.js} +2 -2
  127. package/dashboard/dist/assets/{ProcessesListPage-Di0n8TR4.js.map → ProcessesListPage-_xmj6Bo-.js.map} +1 -1
  128. package/dashboard/dist/assets/RoleDetailPage-C0ju2-4K.js +8 -0
  129. package/dashboard/dist/assets/RoleDetailPage-C0ju2-4K.js.map +1 -0
  130. package/dashboard/dist/assets/{RolePill-Cz-AAWqA.js → RolePill-CQlnEWkK.js} +2 -2
  131. package/dashboard/dist/assets/{RolePill-Cz-AAWqA.js.map → RolePill-CQlnEWkK.js.map} +1 -1
  132. package/dashboard/dist/assets/RolesPage-CKluVSpB.js +2 -0
  133. package/dashboard/dist/assets/RolesPage-CKluVSpB.js.map +1 -0
  134. package/dashboard/dist/assets/{RunAsSelector-DFv0VNVZ.js → RunAsSelector-DdfecQ1U.js} +2 -2
  135. package/dashboard/dist/assets/{RunAsSelector-DFv0VNVZ.js.map → RunAsSelector-DdfecQ1U.js.map} +1 -1
  136. package/dashboard/dist/assets/ScopeBadge-BBYkevuR.js +2 -0
  137. package/dashboard/dist/assets/ScopeBadge-BBYkevuR.js.map +1 -0
  138. package/dashboard/dist/assets/StatCard-Ca-ngCaD.js +2 -0
  139. package/dashboard/dist/assets/StatCard-Ca-ngCaD.js.map +1 -0
  140. package/dashboard/dist/assets/{StatusBadge-BbqghFMi.js → StatusBadge-BwUvykDo.js} +2 -2
  141. package/dashboard/dist/assets/{StatusBadge-BbqghFMi.js.map → StatusBadge-BwUvykDo.js.map} +1 -1
  142. package/dashboard/dist/assets/{StickyPagination-D5zxe_l9.js → StickyPagination-cLddIdtT.js} +2 -2
  143. package/dashboard/dist/assets/{StickyPagination-D5zxe_l9.js.map → StickyPagination-cLddIdtT.js.map} +1 -1
  144. package/dashboard/dist/assets/{StreamMessageDetail-BmBfNSEr.js → StreamMessageDetail-CZXWDawC.js} +2 -2
  145. package/dashboard/dist/assets/StreamMessageDetail-CZXWDawC.js.map +1 -0
  146. package/dashboard/dist/assets/{SwimlaneTimeline-CA0TKDIi.js → SwimlaneTimeline-fWY0gaf3.js} +2 -2
  147. package/dashboard/dist/assets/{SwimlaneTimeline-CA0TKDIi.js.map → SwimlaneTimeline-fWY0gaf3.js.map} +1 -1
  148. package/dashboard/dist/assets/{TagInput-Bf9dZSG6.js → TagInput-CDKbslLx.js} +2 -2
  149. package/dashboard/dist/assets/{TagInput-Bf9dZSG6.js.map → TagInput-CDKbslLx.js.map} +1 -1
  150. package/dashboard/dist/assets/{TaskDetailPage-C15nADUW.js → TaskDetailPage-BjE4G2yn.js} +2 -2
  151. package/dashboard/dist/assets/{TaskDetailPage-C15nADUW.js.map → TaskDetailPage-BjE4G2yn.js.map} +1 -1
  152. package/dashboard/dist/assets/{TaskQueuePill-DfiBYQy2.js → TaskQueuePill-G3RuYRNZ.js} +2 -2
  153. package/dashboard/dist/assets/{TaskQueuePill-DfiBYQy2.js.map → TaskQueuePill-G3RuYRNZ.js.map} +1 -1
  154. package/dashboard/dist/assets/{TasksListPage-DQdAayqc.js → TasksListPage-KAhmCWB2.js} +2 -2
  155. package/dashboard/dist/assets/{TasksListPage-DQdAayqc.js.map → TasksListPage-KAhmCWB2.js.map} +1 -1
  156. package/dashboard/dist/assets/{TimeAgo-CvslqTB7.js → TimeAgo-C_H2TyZw.js} +2 -2
  157. package/dashboard/dist/assets/{TimeAgo-CvslqTB7.js.map → TimeAgo-C_H2TyZw.js.map} +1 -1
  158. package/dashboard/dist/assets/{TimestampCell-BZCQQONl.js → TimestampCell-COG_4Flg.js} +2 -2
  159. package/dashboard/dist/assets/{TimestampCell-BZCQQONl.js.map → TimestampCell-COG_4Flg.js.map} +1 -1
  160. package/dashboard/dist/assets/{ToolPill-gA4sXukc.js → ToolPill-ChSyRJZC.js} +2 -2
  161. package/dashboard/dist/assets/{ToolPill-gA4sXukc.js.map → ToolPill-ChSyRJZC.js.map} +1 -1
  162. package/dashboard/dist/assets/{ToolTestPanel-BgLVc6R5.js → ToolTestPanel-BPdJECW0.js} +2 -2
  163. package/dashboard/dist/assets/{ToolTestPanel-BgLVc6R5.js.map → ToolTestPanel-BPdJECW0.js.map} +1 -1
  164. package/dashboard/dist/assets/{TopicDetailPage-9A0aPb4t.js → TopicDetailPage-DAqx5JqA.js} +3 -3
  165. package/dashboard/dist/assets/{TopicDetailPage-9A0aPb4t.js.map → TopicDetailPage-DAqx5JqA.js.map} +1 -1
  166. package/dashboard/dist/assets/{TopicsPage-o0EZxKbR.js → TopicsPage-DoGqAdPm.js} +2 -2
  167. package/dashboard/dist/assets/{TopicsPage-o0EZxKbR.js.map → TopicsPage-DoGqAdPm.js.map} +1 -1
  168. package/dashboard/dist/assets/{UserName-DKMLxBJ5.js → UserName-CKO_rk1R.js} +2 -2
  169. package/dashboard/dist/assets/{UserName-DKMLxBJ5.js.map → UserName-CKO_rk1R.js.map} +1 -1
  170. package/dashboard/dist/assets/{WorkflowExecutionPage-C-snB_dD.js → WorkflowExecutionPage-D3VQ9iQV.js} +2 -2
  171. package/dashboard/dist/assets/{WorkflowExecutionPage-C-snB_dD.js.map → WorkflowExecutionPage-D3VQ9iQV.js.map} +1 -1
  172. package/dashboard/dist/assets/{WorkflowPill-Djt2AtZk.js → WorkflowPill-CNbwug5p.js} +2 -2
  173. package/dashboard/dist/assets/{WorkflowPill-Djt2AtZk.js.map → WorkflowPill-CNbwug5p.js.map} +1 -1
  174. package/dashboard/dist/assets/{WorkflowsDashboard-BRQmgsLR.js → WorkflowsDashboard-DdJ86We6.js} +2 -2
  175. package/dashboard/dist/assets/{WorkflowsDashboard-BRQmgsLR.js.map → WorkflowsDashboard-DdJ86We6.js.map} +1 -1
  176. package/dashboard/dist/assets/{WorkflowsOverview-DmMdIRHQ.js → WorkflowsOverview-ZfFBzePp.js} +2 -2
  177. package/dashboard/dist/assets/{WorkflowsOverview-DmMdIRHQ.js.map → WorkflowsOverview-ZfFBzePp.js.map} +1 -1
  178. package/dashboard/dist/assets/{YamlWorkflowDetailPage-Bj7QkCry.js → YamlWorkflowDetailPage-4bd5yXdA.js} +2 -2
  179. package/dashboard/dist/assets/{YamlWorkflowDetailPage-Bj7QkCry.js.map → YamlWorkflowDetailPage-4bd5yXdA.js.map} +1 -1
  180. package/dashboard/dist/assets/{YamlWorkflowsPage-BIi77mE0.js → YamlWorkflowsPage-iHPNXjQj.js} +2 -2
  181. package/dashboard/dist/assets/{YamlWorkflowsPage-BIi77mE0.js.map → YamlWorkflowsPage-iHPNXjQj.js.map} +1 -1
  182. package/dashboard/dist/assets/{agents-EBIsjLCr.js → agents-DjD5U3Wb.js} +2 -2
  183. package/dashboard/dist/assets/{agents-EBIsjLCr.js.map → agents-DjD5U3Wb.js.map} +1 -1
  184. package/dashboard/dist/assets/{bots-BXzxybS6.js → bots-DiljVapH.js} +2 -2
  185. package/dashboard/dist/assets/{bots-BXzxybS6.js.map → bots-DiljVapH.js.map} +1 -1
  186. package/dashboard/dist/assets/{capabilities-CnprG6q_.js → capabilities-DV_5ghHT.js} +2 -2
  187. package/dashboard/dist/assets/{capabilities-CnprG6q_.js.map → capabilities-DV_5ghHT.js.map} +1 -1
  188. package/dashboard/dist/assets/{controlplane-DiC0xtNq.js → controlplane-BKMvfWCB.js} +2 -2
  189. package/dashboard/dist/assets/{controlplane-DiC0xtNq.js.map → controlplane-BKMvfWCB.js.map} +1 -1
  190. package/dashboard/dist/assets/escalation-columns-BQpCaJId.js +2 -0
  191. package/dashboard/dist/assets/escalation-columns-BQpCaJId.js.map +1 -0
  192. package/dashboard/dist/assets/{index-BzRXMicE.js → index-B-WkiNRN.js} +2 -2
  193. package/dashboard/dist/assets/{index-BzRXMicE.js.map → index-B-WkiNRN.js.map} +1 -1
  194. package/dashboard/dist/assets/index-BO-7S9Xw.js +2 -0
  195. package/dashboard/dist/assets/index-BO-7S9Xw.js.map +1 -0
  196. package/dashboard/dist/assets/{index-C7KY8GTF.js → index-BaV3l0UE.js} +2 -2
  197. package/dashboard/dist/assets/{index-C7KY8GTF.js.map → index-BaV3l0UE.js.map} +1 -1
  198. package/dashboard/dist/assets/{index-B6ldRx_s.js → index-BsOxMMmb.js} +2 -2
  199. package/dashboard/dist/assets/{index-B6ldRx_s.js.map → index-BsOxMMmb.js.map} +1 -1
  200. package/dashboard/dist/assets/index-CI8rrKjx.js +2 -0
  201. package/dashboard/dist/assets/{index-CjBdB8Ht.js.map → index-CI8rrKjx.js.map} +1 -1
  202. package/dashboard/dist/assets/index-CItsikDw.js +2 -0
  203. package/dashboard/dist/assets/index-CItsikDw.js.map +1 -0
  204. package/dashboard/dist/assets/{index-CcMIca5t.js → index-CStR4uIU.js} +2 -2
  205. package/dashboard/dist/assets/{index-CcMIca5t.js.map → index-CStR4uIU.js.map} +1 -1
  206. package/dashboard/dist/assets/{index-CSTwyrwu.js → index-DbTD-dio.js} +26 -26
  207. package/dashboard/dist/assets/index-DbTD-dio.js.map +1 -0
  208. package/dashboard/dist/assets/{index-gBnGEubX.js → index-DhATO1cS.js} +2 -2
  209. package/dashboard/dist/assets/{index-gBnGEubX.js.map → index-DhATO1cS.js.map} +1 -1
  210. package/dashboard/dist/assets/index-DnlsDaAw.css +1 -0
  211. package/dashboard/dist/assets/{index-ovFEZ9SV.js → index-Tx_ETzcH.js} +2 -2
  212. package/dashboard/dist/assets/{index-ovFEZ9SV.js.map → index-Tx_ETzcH.js.map} +1 -1
  213. package/dashboard/dist/assets/{index-DVmC_UfQ.js → index-kzIIeVbx.js} +4 -4
  214. package/dashboard/dist/assets/{index-DVmC_UfQ.js.map → index-kzIIeVbx.js.map} +1 -1
  215. package/dashboard/dist/assets/{index-BHAjQoOy.js → index-nIrYejxe.js} +3 -3
  216. package/dashboard/dist/assets/{index-BHAjQoOy.js.map → index-nIrYejxe.js.map} +1 -1
  217. package/dashboard/dist/assets/{index-Dht0ihGT.js → index-xZqQxqu2.js} +2 -2
  218. package/dashboard/dist/assets/{index-Dht0ihGT.js.map → index-xZqQxqu2.js.map} +1 -1
  219. package/dashboard/dist/assets/{knowledge-W5QSKkYQ.js → knowledge-BocTnSiA.js} +2 -2
  220. package/dashboard/dist/assets/{knowledge-W5QSKkYQ.js.map → knowledge-BocTnSiA.js.map} +1 -1
  221. package/dashboard/dist/assets/{mcp-n877HyOj.js → mcp-C1KBjKQ_.js} +2 -2
  222. package/dashboard/dist/assets/{mcp-n877HyOj.js.map → mcp-C1KBjKQ_.js.map} +1 -1
  223. package/dashboard/dist/assets/{mcp-query-C9kV4sUm.js → mcp-query-B3cjukkA.js} +2 -2
  224. package/dashboard/dist/assets/{mcp-query-C9kV4sUm.js.map → mcp-query-B3cjukkA.js.map} +1 -1
  225. package/dashboard/dist/assets/personas-DiA2bJaX.js +2 -0
  226. package/dashboard/dist/assets/personas-DiA2bJaX.js.map +1 -0
  227. package/dashboard/dist/assets/{pipelines-CBR68T8R.js → pipelines-Dt2d2EFR.js} +2 -2
  228. package/dashboard/dist/assets/{pipelines-CBR68T8R.js.map → pipelines-Dt2d2EFR.js.map} +1 -1
  229. package/dashboard/dist/assets/{tasks-DHpWqKMk.js → tasks-cDh2hNml.js} +2 -2
  230. package/dashboard/dist/assets/{tasks-DHpWqKMk.js.map → tasks-cDh2hNml.js.map} +1 -1
  231. package/dashboard/dist/assets/{topics-CaLtyqSh.js → topics-yFlGF-u1.js} +2 -2
  232. package/dashboard/dist/assets/{topics-CaLtyqSh.js.map → topics-yFlGF-u1.js.map} +1 -1
  233. package/dashboard/dist/assets/{useEventHooks-B8p56JlB.js → useEventHooks-D2R_ckS8.js} +2 -2
  234. package/dashboard/dist/assets/{useEventHooks-B8p56JlB.js.map → useEventHooks-D2R_ckS8.js.map} +1 -1
  235. package/dashboard/dist/assets/{useFilterParams-CvRyYHJN.js → useFilterParams-B7suPsIK.js} +2 -2
  236. package/dashboard/dist/assets/{useFilterParams-CvRyYHJN.js.map → useFilterParams-B7suPsIK.js.map} +1 -1
  237. package/dashboard/dist/assets/{useNamespace-ej71FCvu.js → useNamespace-u-V1GVUD.js} +2 -2
  238. package/dashboard/dist/assets/{useNamespace-ej71FCvu.js.map → useNamespace-u-V1GVUD.js.map} +1 -1
  239. package/dashboard/dist/assets/{useYamlActivityEvents-DgpiFXib.js → useYamlActivityEvents-BhOZeqgE.js} +2 -2
  240. package/dashboard/dist/assets/{useYamlActivityEvents-DgpiFXib.js.map → useYamlActivityEvents-BhOZeqgE.js.map} +1 -1
  241. package/dashboard/dist/assets/{users-CHnjI_Ca.js → users-BoXPwdee.js} +2 -2
  242. package/dashboard/dist/assets/{users-CHnjI_Ca.js.map → users-BoXPwdee.js.map} +1 -1
  243. package/dashboard/dist/assets/{vendor-icons-Bg6eJX4Z.js → vendor-icons-D71XjkNy.js} +133 -128
  244. package/dashboard/dist/assets/vendor-icons-D71XjkNy.js.map +1 -0
  245. package/dashboard/dist/assets/{vendor-react-BpdAFEQc.js → vendor-react-C1YOyCSV.js} +2 -2
  246. package/dashboard/dist/assets/{vendor-react-BpdAFEQc.js.map → vendor-react-C1YOyCSV.js.map} +1 -1
  247. package/dashboard/dist/assets/{workflows-DtnXUL0U.js → workflows-mCoyKuLZ.js} +2 -2
  248. package/dashboard/dist/assets/{workflows-DtnXUL0U.js.map → workflows-mCoyKuLZ.js.map} +1 -1
  249. package/dashboard/dist/assets/{yaml-workflows-DDclYAID.js → yaml-workflows-CWxXGDpn.js} +2 -2
  250. package/dashboard/dist/assets/{yaml-workflows-DDclYAID.js.map → yaml-workflows-CWxXGDpn.js.map} +1 -1
  251. package/dashboard/dist/index.html +4 -4
  252. package/docs/api/http/personas.md +160 -0
  253. package/docs/cli.md +12 -0
  254. package/docs/dashboard.md +25 -3
  255. package/docs/design-principles.md +13 -5
  256. package/docs/hitl/pinned-views.md +3 -3
  257. package/docs/hitl/x-lt-list-schema.md +2 -3
  258. package/docs/iam.md +47 -0
  259. package/docs/operations.md +1 -1
  260. package/docs/sdk.md +1 -0
  261. package/package.json +1 -1
  262. package/dashboard/dist/assets/AgentDetailPage-D-Xbyrb6.js +0 -4
  263. package/dashboard/dist/assets/AgentDetailPage-D-Xbyrb6.js.map +0 -1
  264. package/dashboard/dist/assets/AvailableEscalationsPage-B-aHvGKD.js +0 -2
  265. package/dashboard/dist/assets/AvailableEscalationsPage-B-aHvGKD.js.map +0 -1
  266. package/dashboard/dist/assets/CountdownTimer-BhF3oqS8.js +0 -2
  267. package/dashboard/dist/assets/CountdownTimer-BhF3oqS8.js.map +0 -1
  268. package/dashboard/dist/assets/ElapsedCell-BE_CN5sP.js +0 -2
  269. package/dashboard/dist/assets/HomePage-B6s1ZeyA.js +0 -2
  270. package/dashboard/dist/assets/HomePage-B6s1ZeyA.js.map +0 -1
  271. package/dashboard/dist/assets/ListToolbar-DVhlAKZ3.js +0 -2
  272. package/dashboard/dist/assets/ListToolbar-DVhlAKZ3.js.map +0 -1
  273. package/dashboard/dist/assets/McpQueryDetailPage-D0r2lyZg.js +0 -5
  274. package/dashboard/dist/assets/McpQueryDetailPage-D0r2lyZg.js.map +0 -1
  275. package/dashboard/dist/assets/McpQueryPage-DPP6BB3d.js +0 -2
  276. package/dashboard/dist/assets/McpQueryPage-DPP6BB3d.js.map +0 -1
  277. package/dashboard/dist/assets/OperationsPage-DbHzQCuE.js +0 -2
  278. package/dashboard/dist/assets/OperationsPage-DbHzQCuE.js.map +0 -1
  279. package/dashboard/dist/assets/OperatorDashboard-B70nS_Ah.js +0 -2
  280. package/dashboard/dist/assets/OperatorDashboard-B70nS_Ah.js.map +0 -1
  281. package/dashboard/dist/assets/ProcessDetailPage-eLLUCWFf.js +0 -2
  282. package/dashboard/dist/assets/ProcessDetailPage-eLLUCWFf.js.map +0 -1
  283. package/dashboard/dist/assets/RoleDetailPage-Dhn9zU5l.js +0 -8
  284. package/dashboard/dist/assets/RoleDetailPage-Dhn9zU5l.js.map +0 -1
  285. package/dashboard/dist/assets/RolesPage-BnAwjUiG.js +0 -2
  286. package/dashboard/dist/assets/RolesPage-BnAwjUiG.js.map +0 -1
  287. package/dashboard/dist/assets/StatCard-DBANWIss.js +0 -2
  288. package/dashboard/dist/assets/StatCard-DBANWIss.js.map +0 -1
  289. package/dashboard/dist/assets/StreamMessageDetail-BmBfNSEr.js.map +0 -1
  290. package/dashboard/dist/assets/escalation-columns-D0aYpJkF.js +0 -2
  291. package/dashboard/dist/assets/escalation-columns-D0aYpJkF.js.map +0 -1
  292. package/dashboard/dist/assets/index-B2iZG_HP.css +0 -1
  293. package/dashboard/dist/assets/index-CSTwyrwu.js.map +0 -1
  294. package/dashboard/dist/assets/index-CjBdB8Ht.js +0 -2
  295. package/dashboard/dist/assets/index-D-7mT0ew.js +0 -2
  296. package/dashboard/dist/assets/index-D-7mT0ew.js.map +0 -1
  297. package/dashboard/dist/assets/index-DDA7FvqT.js +0 -2
  298. package/dashboard/dist/assets/index-DDA7FvqT.js.map +0 -1
  299. package/dashboard/dist/assets/role-display-Dvo2lDpU.js +0 -2
  300. package/dashboard/dist/assets/role-display-Dvo2lDpU.js.map +0 -1
  301. package/dashboard/dist/assets/vendor-icons-Bg6eJX4Z.js.map +0 -1
@@ -0,0 +1,186 @@
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.registerPersonaTools = registerPersonaTools;
37
+ const personaService = __importStar(require("../../../services/persona"));
38
+ const schemas_1 = require("./schemas");
39
+ const PERSONA_KEY = /^[a-z][a-z0-9_-]*$/;
40
+ function errorResult(message) {
41
+ return {
42
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
43
+ isError: true,
44
+ };
45
+ }
46
+ function jsonResult(data) {
47
+ return {
48
+ content: [{ type: 'text', text: JSON.stringify(data) }],
49
+ };
50
+ }
51
+ function registerPersonaTools(server) {
52
+ // mirrors GET /api/personas
53
+ server.registerTool('list_personas', {
54
+ title: 'List Personas',
55
+ description: 'List all personas — named role bundles with per-role relationship ' +
56
+ 'scope — with their role links and holder counts.',
57
+ inputSchema: schemas_1.listPersonasSchema,
58
+ }, async (_args) => {
59
+ const personas = await personaService.listPersonas();
60
+ return jsonResult({ personas });
61
+ });
62
+ // mirrors GET /api/personas/:key
63
+ server.registerTool('get_persona', {
64
+ title: 'Get Persona',
65
+ description: 'Fetch one persona with its role links and current assignees.',
66
+ inputSchema: schemas_1.getPersonaSchema,
67
+ }, async (args) => {
68
+ const persona = await personaService.getPersona(args.key);
69
+ if (!persona)
70
+ return errorResult(`Persona '${args.key}' not found`);
71
+ return jsonResult(persona);
72
+ });
73
+ // mirrors POST /api/personas
74
+ server.registerTool('create_persona', {
75
+ title: 'Create Persona',
76
+ description: 'Create a persona. Link roles with link_persona_role, then assign ' +
77
+ 'users with assign_persona.',
78
+ inputSchema: schemas_1.createPersonaSchema,
79
+ }, async (args) => {
80
+ const key = args.key.trim().toLowerCase();
81
+ if (!PERSONA_KEY.test(key)) {
82
+ return errorResult('key must start with a letter and contain only lowercase letters, numbers, hyphens, and underscores');
83
+ }
84
+ const persona = await personaService.createPersona({
85
+ key,
86
+ title: args.title,
87
+ description: args.description,
88
+ });
89
+ return jsonResult(persona);
90
+ });
91
+ // mirrors PATCH /api/personas/:key
92
+ server.registerTool('update_persona', {
93
+ title: 'Update Persona',
94
+ description: 'Update a persona\'s title/description with PATCH semantics — omitted fields keep their values; null clears.',
95
+ inputSchema: schemas_1.updatePersonaSchema,
96
+ }, async (args) => {
97
+ const persona = await personaService.updatePersona(args.key, {
98
+ title: args.title,
99
+ description: args.description,
100
+ });
101
+ if (!persona)
102
+ return errorResult(`Persona '${args.key}' not found`);
103
+ return jsonResult(persona);
104
+ });
105
+ // mirrors DELETE /api/personas/:key
106
+ server.registerTool('delete_persona', {
107
+ title: 'Delete Persona',
108
+ description: 'Delete a persona. Memberships it sustains are removed (or re-homed ' +
109
+ 'to a sibling persona the user still holds); direct grants are never touched.',
110
+ inputSchema: schemas_1.deletePersonaSchema,
111
+ }, async (args) => {
112
+ const result = await personaService.deletePersona(args.key);
113
+ if (!result.deleted)
114
+ return errorResult(`Persona '${args.key}' not found`);
115
+ return jsonResult({ deleted: true, recompute: result.recompute });
116
+ });
117
+ // mirrors PUT /api/personas/:key/roles/:role
118
+ server.registerTool('link_persona_role', {
119
+ title: 'Link Persona Role',
120
+ description: 'Link a role to a persona (or change the link\'s relationship). Every ' +
121
+ 'current holder\'s memberships are reconciled in the same transaction.',
122
+ inputSchema: schemas_1.linkPersonaRoleSchema,
123
+ }, async (args) => {
124
+ const relationship = personaService.normalizeRelationship(args.relationship);
125
+ if (!relationship) {
126
+ return errorResult('relationship must be write-all, write-self, or read-all (write-none is accepted as read-all)');
127
+ }
128
+ const result = await personaService.linkPersonaRole(args.key, args.role.trim().toLowerCase(), relationship);
129
+ if (!result)
130
+ return errorResult(`Persona '${args.key}' not found`);
131
+ return jsonResult(result);
132
+ });
133
+ // mirrors DELETE /api/personas/:key/roles/:role
134
+ server.registerTool('unlink_persona_role', {
135
+ title: 'Unlink Persona Role',
136
+ description: 'Remove a role link from a persona and reconcile every holder\'s memberships.',
137
+ inputSchema: schemas_1.unlinkPersonaRoleSchema,
138
+ }, async (args) => {
139
+ const result = await personaService.unlinkPersonaRole(args.key, args.role);
140
+ if (!result.personaFound)
141
+ return errorResult(`Persona '${args.key}' not found`);
142
+ if (!result.unlinked)
143
+ return errorResult(`Persona '${args.key}' does not link role '${args.role}'`);
144
+ return jsonResult({ unlinked: true, recompute: result.recompute });
145
+ });
146
+ // mirrors POST /api/users/:id/personas
147
+ server.registerTool('assign_persona', {
148
+ title: 'Assign Persona',
149
+ description: 'Assign a persona to a user — shorthand for adding the user to each ' +
150
+ 'linked role at the linked scope. Idempotent: re-assigning overlays ' +
151
+ 'fresh from the persona\'s current links. Highest allowance wins when ' +
152
+ 'bundles overlap; direct grants are only ever raised, never lowered.',
153
+ inputSchema: schemas_1.assignPersonaSchema,
154
+ }, async (args) => {
155
+ const recompute = await personaService.assignPersona(args.user_id, args.key);
156
+ if (!recompute)
157
+ return errorResult(`Persona '${args.key}' not found`);
158
+ return jsonResult({ assigned: true, recompute });
159
+ });
160
+ // mirrors DELETE /api/users/:id/personas/:key
161
+ server.registerTool('unassign_persona', {
162
+ title: 'Unassign Persona',
163
+ description: 'Unassign a persona from a user. Removes only memberships the persona ' +
164
+ 'sustains — rows another held persona still grants are re-homed to it, ' +
165
+ 'and direct grants are never touched.',
166
+ inputSchema: schemas_1.unassignPersonaSchema,
167
+ }, async (args) => {
168
+ const result = await personaService.unassignPersona(args.user_id, args.key);
169
+ if (!result.personaFound)
170
+ return errorResult(`Persona '${args.key}' not found`);
171
+ if (!result.unassigned)
172
+ return errorResult(`User does not hold persona '${args.key}'`);
173
+ return jsonResult({ unassigned: true, recompute: result.recompute });
174
+ });
175
+ // mirrors GET /api/users/:id/personas
176
+ server.registerTool('get_user_personas', {
177
+ title: 'Get User Personas',
178
+ description: 'The personas a user holds plus the composed role/scope map their ' +
179
+ 'memberships form (each row names the sustaining persona, or null for ' +
180
+ 'a direct grant).',
181
+ inputSchema: schemas_1.getUserPersonasSchema,
182
+ }, async (args) => {
183
+ const result = await personaService.getUserPersonas(args.user_id);
184
+ return jsonResult(result);
185
+ });
186
+ }
@@ -561,6 +561,7 @@ export declare const updateRoleSchema: z.ZodObject<{
561
561
  metadata_schema: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>>;
562
562
  properties: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>>;
563
563
  ops_visible: z.ZodOptional<z.ZodBoolean>;
564
+ ops_home_default: z.ZodOptional<z.ZodBoolean>;
564
565
  parent_role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
565
566
  sla_minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
566
567
  target_per_hour: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -598,6 +599,7 @@ export declare const updateRoleSchema: z.ZodObject<{
598
599
  badge?: boolean | undefined;
599
600
  }[] | null | undefined;
600
601
  ops_visible?: boolean | undefined;
602
+ ops_home_default?: boolean | undefined;
601
603
  parent_role?: string | null | undefined;
602
604
  sla_minutes?: number | null | undefined;
603
605
  target_per_hour?: number | null | undefined;
@@ -621,6 +623,7 @@ export declare const updateRoleSchema: z.ZodObject<{
621
623
  badge?: boolean | undefined;
622
624
  }[] | null | undefined;
623
625
  ops_visible?: boolean | undefined;
626
+ ops_home_default?: boolean | undefined;
624
627
  parent_role?: string | null | undefined;
625
628
  sla_minutes?: number | null | undefined;
626
629
  target_per_hour?: number | null | undefined;
@@ -648,6 +651,97 @@ export declare const listRoleSchemaVersionsSchema: z.ZodObject<{
648
651
  }, {
649
652
  role: string;
650
653
  }>;
654
+ export declare const listPersonasSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
655
+ export declare const getPersonaSchema: z.ZodObject<{
656
+ key: z.ZodString;
657
+ }, "strip", z.ZodTypeAny, {
658
+ key: string;
659
+ }, {
660
+ key: string;
661
+ }>;
662
+ export declare const createPersonaSchema: z.ZodObject<{
663
+ key: z.ZodString;
664
+ title: z.ZodOptional<z.ZodString>;
665
+ description: z.ZodOptional<z.ZodString>;
666
+ }, "strip", z.ZodTypeAny, {
667
+ key: string;
668
+ description?: string | undefined;
669
+ title?: string | undefined;
670
+ }, {
671
+ key: string;
672
+ description?: string | undefined;
673
+ title?: string | undefined;
674
+ }>;
675
+ export declare const updatePersonaSchema: z.ZodObject<{
676
+ key: z.ZodString;
677
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
678
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
679
+ }, "strip", z.ZodTypeAny, {
680
+ key: string;
681
+ description?: string | null | undefined;
682
+ title?: string | null | undefined;
683
+ }, {
684
+ key: string;
685
+ description?: string | null | undefined;
686
+ title?: string | null | undefined;
687
+ }>;
688
+ export declare const deletePersonaSchema: z.ZodObject<{
689
+ key: z.ZodString;
690
+ }, "strip", z.ZodTypeAny, {
691
+ key: string;
692
+ }, {
693
+ key: string;
694
+ }>;
695
+ export declare const linkPersonaRoleSchema: z.ZodObject<{
696
+ key: z.ZodString;
697
+ role: z.ZodString;
698
+ relationship: z.ZodEnum<["write-all", "write-self", "read-all", "write-none"]>;
699
+ }, "strip", z.ZodTypeAny, {
700
+ role: string;
701
+ key: string;
702
+ relationship: "write-all" | "write-self" | "read-all" | "write-none";
703
+ }, {
704
+ role: string;
705
+ key: string;
706
+ relationship: "write-all" | "write-self" | "read-all" | "write-none";
707
+ }>;
708
+ export declare const unlinkPersonaRoleSchema: z.ZodObject<{
709
+ key: z.ZodString;
710
+ role: z.ZodString;
711
+ }, "strip", z.ZodTypeAny, {
712
+ role: string;
713
+ key: string;
714
+ }, {
715
+ role: string;
716
+ key: string;
717
+ }>;
718
+ export declare const assignPersonaSchema: z.ZodObject<{
719
+ user_id: z.ZodString;
720
+ key: z.ZodString;
721
+ }, "strip", z.ZodTypeAny, {
722
+ key: string;
723
+ user_id: string;
724
+ }, {
725
+ key: string;
726
+ user_id: string;
727
+ }>;
728
+ export declare const unassignPersonaSchema: z.ZodObject<{
729
+ user_id: z.ZodString;
730
+ key: z.ZodString;
731
+ }, "strip", z.ZodTypeAny, {
732
+ key: string;
733
+ user_id: string;
734
+ }, {
735
+ key: string;
736
+ user_id: string;
737
+ }>;
738
+ export declare const getUserPersonasSchema: z.ZodObject<{
739
+ user_id: z.ZodString;
740
+ }, "strip", z.ZodTypeAny, {
741
+ user_id: string;
742
+ }, {
743
+ user_id: string;
744
+ }>;
651
745
  export declare const pruneSchema: z.ZodObject<{
652
746
  app_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
653
747
  expire: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listBotsSchema = exports.deleteAgentSubscriptionSchema = exports.createAgentSubscriptionSchema = exports.listAgentSubscriptionsSchema = exports.deleteAgentSchema = exports.updateAgentSchema = exports.createAgentSchema = exports.getAgentSchema = exports.listAgentsSchema = exports.pruneSchema = exports.listRoleSchemaVersionsSchema = exports.getRoleSchemaSchema = exports.updateRoleSchema = exports.addEscalationChainSchema = exports.createRoleSchema = exports.listRolesSchema = exports.removeUserRoleSchema = exports.addUserRoleSchema = exports.createUserSchema = exports.listUsersSchema = exports.invokeYamlWorkflowSchema = exports.deployYamlWorkflowSchema = exports.createYamlWorkflowSchema = exports.getYamlWorkflowSchema = exports.listYamlWorkflowsSchema = exports.disconnectMcpServerSchema = exports.connectMcpServerSchema = exports.updateMcpServerSchema = exports.listMcpServersSchema = exports.getWorkflowStatusSchema = exports.invokeWorkflowSchema = exports.listDiscoveredWorkflowsSchema = exports.deleteWorkflowConfigSchema = exports.upsertWorkflowConfigSchema = exports.listWorkflowConfigsSchema = exports.bulkTriageSchema = exports.releaseExpiredClaimsSchema = exports.bulkCancelSchema = exports.cancelEscalationSchema = exports.escalateEscalationSchema = exports.resolveBySignalKeySchema = exports.resolveEscalationSchema = exports.releaseEscalationSchema = exports.claimEscalationSchema = exports.getEscalationStatsSchema = exports.getEscalationsByWorkflowSchema = exports.getEscalationSchema = exports.findEscalationsSchema = exports.getProcessDetailSchema = exports.findTasksSchema = void 0;
4
- exports.claimByFacetsSchema = exports.claimGroupsSchema = exports.searchByFacetsSchema = exports.resolveByIdsSchema = exports.facetQuerySchema = exports.findOrphanedSignalsSchema = exports.findStalledJobsSchema = exports.diagnoseJobSchema = exports.getExportStatusSchema = exports.exportWorkflowExecutionSchema = exports.exportWorkflowStateSchema = exports.listExportJobsSchema = exports.getSettingsSchema = exports.updatePrioritySchema = exports.bulkEscalateSchema = exports.bulkAssignSchema = exports.bulkClaimSchema = exports.resolveByMetadataSchema = exports.claimByMetadataSchema = exports.findByMetadataSchema = exports.deleteTopicSchema = exports.updateTopicSchema = exports.createTopicSchema = exports.getTopicSchema = exports.listTopicsSchema = exports.interruptJobSchema = exports.getJobExecutionSchema = exports.listPipelineJobsSchema = exports.listPipelineEntitiesSchema = exports.listStreamMessagesSchema = exports.getStreamStatsSchema = exports.applyThrottleSchema = exports.rollCallSchema = exports.listAppsSchema = exports.revokeBotKeySchema = exports.createBotApiKeySchema = exports.deleteBotSchema = exports.updateBotSchema = exports.createBotSchema = exports.getBotSchema = void 0;
3
+ exports.getUserPersonasSchema = exports.unassignPersonaSchema = exports.assignPersonaSchema = exports.unlinkPersonaRoleSchema = exports.linkPersonaRoleSchema = exports.deletePersonaSchema = exports.updatePersonaSchema = exports.createPersonaSchema = exports.getPersonaSchema = exports.listPersonasSchema = exports.listRoleSchemaVersionsSchema = exports.getRoleSchemaSchema = exports.updateRoleSchema = exports.addEscalationChainSchema = exports.createRoleSchema = exports.listRolesSchema = exports.removeUserRoleSchema = exports.addUserRoleSchema = exports.createUserSchema = exports.listUsersSchema = exports.invokeYamlWorkflowSchema = exports.deployYamlWorkflowSchema = exports.createYamlWorkflowSchema = exports.getYamlWorkflowSchema = exports.listYamlWorkflowsSchema = exports.disconnectMcpServerSchema = exports.connectMcpServerSchema = exports.updateMcpServerSchema = exports.listMcpServersSchema = exports.getWorkflowStatusSchema = exports.invokeWorkflowSchema = exports.listDiscoveredWorkflowsSchema = exports.deleteWorkflowConfigSchema = exports.upsertWorkflowConfigSchema = exports.listWorkflowConfigsSchema = exports.bulkTriageSchema = exports.releaseExpiredClaimsSchema = exports.bulkCancelSchema = exports.cancelEscalationSchema = exports.escalateEscalationSchema = exports.resolveBySignalKeySchema = exports.resolveEscalationSchema = exports.releaseEscalationSchema = exports.claimEscalationSchema = exports.getEscalationStatsSchema = exports.getEscalationsByWorkflowSchema = exports.getEscalationSchema = exports.findEscalationsSchema = exports.getProcessDetailSchema = exports.findTasksSchema = void 0;
4
+ exports.claimByFacetsSchema = exports.claimGroupsSchema = exports.searchByFacetsSchema = exports.resolveByIdsSchema = exports.facetQuerySchema = exports.findOrphanedSignalsSchema = exports.findStalledJobsSchema = exports.diagnoseJobSchema = exports.getExportStatusSchema = exports.exportWorkflowExecutionSchema = exports.exportWorkflowStateSchema = exports.listExportJobsSchema = exports.getSettingsSchema = exports.updatePrioritySchema = exports.bulkEscalateSchema = exports.bulkAssignSchema = exports.bulkClaimSchema = exports.resolveByMetadataSchema = exports.claimByMetadataSchema = exports.findByMetadataSchema = exports.deleteTopicSchema = exports.updateTopicSchema = exports.createTopicSchema = exports.getTopicSchema = exports.listTopicsSchema = exports.interruptJobSchema = exports.getJobExecutionSchema = exports.listPipelineJobsSchema = exports.listPipelineEntitiesSchema = exports.listStreamMessagesSchema = exports.getStreamStatsSchema = exports.applyThrottleSchema = exports.rollCallSchema = exports.listAppsSchema = exports.revokeBotKeySchema = exports.createBotApiKeySchema = exports.deleteBotSchema = exports.updateBotSchema = exports.createBotSchema = exports.getBotSchema = exports.listBotsSchema = exports.deleteAgentSubscriptionSchema = exports.createAgentSubscriptionSchema = exports.listAgentSubscriptionsSchema = exports.deleteAgentSchema = exports.updateAgentSchema = exports.createAgentSchema = exports.getAgentSchema = exports.listAgentsSchema = exports.pruneSchema = void 0;
5
5
  /**
6
6
  * Zod schemas for the admin MCP server tools.
7
7
  *
@@ -243,6 +243,7 @@ exports.updateRoleSchema = zod_1.z.object({
243
243
  metadata_schema: zod_1.z.record(zod_1.z.any()).nullable().optional().describe('JSON Schema declaring the expected shape of lt_escalations.metadata for this role. Drives creation-time validation and faceted-query key autocomplete.'),
244
244
  properties: zod_1.z.record(zod_1.z.any()).nullable().optional().describe('Free user-owned bag (icon, color, tags, etc.). No reserved keys — use the typed columns below for operational values.'),
245
245
  ops_visible: zod_1.z.boolean().optional().describe('When true, role appears as a station on the /operations view'),
246
+ ops_home_default: zod_1.z.boolean().optional().describe('Make this role\'s sequence the home Pace Board\'s default segment. Single-holder — setting it true clears the flag on every other role.'),
246
247
  parent_role: zod_1.z.string().nullable().optional().describe('Parent role in the process dependency graph (nullable; roots have no parent)'),
247
248
  sla_minutes: zod_1.z.number().nullable().optional().describe('Target resolution time in minutes. One of the capacity settings: target_per_hour = worker_count / (sla_minutes / 60)'),
248
249
  target_per_hour: zod_1.z.number().nullable().optional().describe('Intended throughput (items resolved per hour). Drives the station pace baseline on the Operations view.'),
@@ -266,6 +267,46 @@ exports.getRoleSchemaSchema = zod_1.z.object({
266
267
  exports.listRoleSchemaVersionsSchema = zod_1.z.object({
267
268
  role: zod_1.z.string().describe('Role whose schema version history to list'),
268
269
  });
270
+ // ── personas (routes/personas.ts + routes/users.ts persona sub-routes) ──────
271
+ const personaRelationship = zod_1.z.enum(['write-all', 'write-self', 'read-all', 'write-none'])
272
+ .describe('Membership scope the persona grants on the role: write-all = full worker (claim/resolve), write-self = acts only on own assignments, read-all = observer (sees the pond, cannot act). write-none is a synonym for read-all.');
273
+ exports.listPersonasSchema = zod_1.z.object({});
274
+ exports.getPersonaSchema = zod_1.z.object({
275
+ key: zod_1.z.string().describe('Persona key'),
276
+ });
277
+ exports.createPersonaSchema = zod_1.z.object({
278
+ key: zod_1.z.string().describe('Stable kebab-case key (a-z, 0-9, hyphens, underscores; letter-first)'),
279
+ title: zod_1.z.string().optional().describe('Display title, e.g. "Print Manager"'),
280
+ description: zod_1.z.string().optional().describe('The day-in-the-life, one paragraph'),
281
+ });
282
+ exports.updatePersonaSchema = zod_1.z.object({
283
+ key: zod_1.z.string().describe('Persona key to update'),
284
+ title: zod_1.z.string().nullable().optional().describe('New display title (null clears)'),
285
+ description: zod_1.z.string().nullable().optional().describe('New description (null clears)'),
286
+ });
287
+ exports.deletePersonaSchema = zod_1.z.object({
288
+ key: zod_1.z.string().describe('Persona key to delete. Memberships it sustains are removed or re-homed; direct grants are never touched.'),
289
+ });
290
+ exports.linkPersonaRoleSchema = zod_1.z.object({
291
+ key: zod_1.z.string().describe('Persona key'),
292
+ role: zod_1.z.string().describe('Role to link (created if absent)'),
293
+ relationship: personaRelationship,
294
+ });
295
+ exports.unlinkPersonaRoleSchema = zod_1.z.object({
296
+ key: zod_1.z.string().describe('Persona key'),
297
+ role: zod_1.z.string().describe('Role link to remove'),
298
+ });
299
+ exports.assignPersonaSchema = zod_1.z.object({
300
+ user_id: zod_1.z.string().describe('User UUID'),
301
+ key: zod_1.z.string().describe('Persona key. Idempotent — re-assigning overlays fresh from the persona\'s current role links.'),
302
+ });
303
+ exports.unassignPersonaSchema = zod_1.z.object({
304
+ user_id: zod_1.z.string().describe('User UUID'),
305
+ key: zod_1.z.string().describe('Persona key. Removes only memberships the persona sustains.'),
306
+ });
307
+ exports.getUserPersonasSchema = zod_1.z.object({
308
+ user_id: zod_1.z.string().describe('User UUID'),
309
+ });
269
310
  // ── maintenance (routes/dba.ts) ─────────────────────────────────────────────
270
311
  exports.pruneSchema = zod_1.z.object({
271
312
  app_id: zod_1.z.string().optional().default('durable').describe('HotMesh application namespace (default: durable)'),
@@ -209,6 +209,7 @@ function registerUserTools(server) {
209
209
  metadata_schema: args.metadata_schema,
210
210
  properties: args.properties,
211
211
  ops_visible: args.ops_visible,
212
+ ops_home_default: args.ops_home_default,
212
213
  parent_role: args.parent_role,
213
214
  sla_minutes: args.sla_minutes,
214
215
  target_per_hour: args.target_per_hour,