@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.
- package/build/api/escalations/list.js +11 -4
- package/build/api/index.d.ts +1 -0
- package/build/api/index.js +2 -1
- package/build/api/personas.d.ts +121 -0
- package/build/api/personas.js +341 -0
- package/build/api/roles.d.ts +2 -0
- package/build/api/roles.js +4 -0
- package/build/bin/ltc.js +23 -0
- package/build/lib/cli/commands/personas.d.ts +16 -0
- package/build/lib/cli/commands/personas.js +42 -0
- package/build/lib/db/schemas/024_personas.sql +53 -0
- package/build/lib/db/schemas/025_ops_home_default.sql +11 -0
- package/build/modules/features.d.ts +9 -0
- package/build/modules/features.js +1 -0
- package/build/routes/index.js +2 -0
- package/build/routes/personas.d.ts +2 -0
- package/build/routes/personas.js +118 -0
- package/build/routes/users.js +35 -0
- package/build/sdk/index.d.ts +15 -0
- package/build/sdk/index.js +16 -0
- package/build/services/persona/index.d.ts +92 -0
- package/build/services/persona/index.js +217 -0
- package/build/services/persona/sql.d.ts +24 -0
- package/build/services/persona/sql.js +158 -0
- package/build/services/persona/types.d.ts +23 -0
- package/build/services/persona/types.js +33 -0
- package/build/services/role/index.js +1 -0
- package/build/services/role/sql.d.ts +6 -2
- package/build/services/role/sql.js +11 -2
- package/build/services/role/types.d.ts +9 -0
- package/build/services/user/sql.d.ts +8 -5
- package/build/services/user/sql.js +15 -5
- package/build/system/mcp-servers/admin/index.d.ts +1 -0
- package/build/system/mcp-servers/admin/index.js +5 -2
- package/build/system/mcp-servers/admin/personas.d.ts +8 -0
- package/build/system/mcp-servers/admin/personas.js +186 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +94 -0
- package/build/system/mcp-servers/admin/schemas.js +43 -2
- package/build/system/mcp-servers/admin/users.js +1 -0
- package/build/system/seed/tool-manifests-admin.d.ts +1057 -0
- package/build/system/seed/tool-manifests-admin.js +12 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/persona.d.ts +56 -0
- package/build/types/persona.js +2 -0
- package/build/types/startup.d.ts +8 -0
- package/build/types/user.d.ts +2 -0
- package/dashboard/dist/assets/{AdminDashboard-DWSYdAeW.js → AdminDashboard-CkTbRfY9.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DWSYdAeW.js.map → AdminDashboard-CkTbRfY9.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-Dm6gL76m.js → AgentConfigPage-Cm8FRpXi.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-Dm6gL76m.js.map → AgentConfigPage-Cm8FRpXi.js.map} +1 -1
- package/dashboard/dist/assets/AgentDetailPage-sQ1-UT46.js +4 -0
- package/dashboard/dist/assets/AgentDetailPage-sQ1-UT46.js.map +1 -0
- package/dashboard/dist/assets/{AgentsPage-DKaDRk-Y.js → AgentsPage-bSx_mdae.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-DKaDRk-Y.js.map → AgentsPage-bSx_mdae.js.map} +1 -1
- package/dashboard/dist/assets/AutoGrowTextarea-y-oNY51_.js +2 -0
- package/dashboard/dist/assets/AutoGrowTextarea-y-oNY51_.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-8pMC7Xv6.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-8pMC7Xv6.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-DRv_orzI.js → BotPicker-C4uGH2x9.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-DRv_orzI.js.map → BotPicker-C4uGH2x9.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-DqRVzMol.js → CapabilitiesPage-BRoOeKcc.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-DqRVzMol.js.map → CapabilitiesPage-BRoOeKcc.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-D0psvw8i.js → CollapsibleSection-CIj8Adc9.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-D0psvw8i.js.map → CollapsibleSection-CIj8Adc9.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-DD7SEMeX.js → ConfirmDeleteModal-Ugi_9Ukq.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-DD7SEMeX.js.map → ConfirmDeleteModal-Ugi_9Ukq.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-BpB-NvDh.js → CopyableId-GUEdiiL5.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-BpB-NvDh.js.map → CopyableId-GUEdiiL5.js.map} +1 -1
- package/dashboard/dist/assets/CountdownTimer-D3t0XMhE.js +2 -0
- package/dashboard/dist/assets/CountdownTimer-D3t0XMhE.js.map +1 -0
- package/dashboard/dist/assets/{CredentialsPage-Axdci1z-.js → CredentialsPage-B73Si6K1.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-Axdci1z-.js.map → CredentialsPage-B73Si6K1.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-BjZ_wZA8.js → CronLabel-Ca1aHolt.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-BjZ_wZA8.js.map → CronLabel-Ca1aHolt.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-CkUCMUfk.js → CustomDurationPicker-_9E9x1YN.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-CkUCMUfk.js.map → CustomDurationPicker-_9E9x1YN.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-_tmC3jEe.js → DropZone-NYn6TWHz.js} +2 -2
- package/dashboard/dist/assets/{DropZone-_tmC3jEe.js.map → DropZone-NYn6TWHz.js.map} +1 -1
- package/dashboard/dist/assets/ElapsedCell-karxia93.js +2 -0
- package/dashboard/dist/assets/{ElapsedCell-BE_CN5sP.js.map → ElapsedCell-karxia93.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-CgcVIiYR.js → EscalationListSchemaPage-CDaNmbUA.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-CgcVIiYR.js.map → EscalationListSchemaPage-CDaNmbUA.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-BaAn1Hcr.js → EscalationSchemaPage-k-2hFT2t.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-BaAn1Hcr.js.map → EscalationSchemaPage-k-2hFT2t.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-Dbq7tKzr.js → EscalationsOverview-C1e7IPn_.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-Dbq7tKzr.js.map → EscalationsOverview-C1e7IPn_.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-0RUK9jqt.js → EventTable-CIrrtL7_.js} +2 -2
- package/dashboard/dist/assets/{EventTable-0RUK9jqt.js.map → EventTable-CIrrtL7_.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-B_dy2Jhj.js → FilterBar-CzjtH74v.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-B_dy2Jhj.js.map → FilterBar-CzjtH74v.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-CvLYp1nL.js → GraphInvokePage-LMpWw8z1.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-CvLYp1nL.js.map → GraphInvokePage-LMpWw8z1.js.map} +1 -1
- package/dashboard/dist/assets/HomePage-Kl2DBG6l.js +2 -0
- package/dashboard/dist/assets/HomePage-Kl2DBG6l.js.map +1 -0
- package/dashboard/dist/assets/ListToolbar-B2fub0DY.js +2 -0
- package/dashboard/dist/assets/ListToolbar-B2fub0DY.js.map +1 -0
- package/dashboard/dist/assets/{McpOverview-Ca8cpc8g.js → McpOverview-odYnCZCC.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-Ca8cpc8g.js.map → McpOverview-odYnCZCC.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-BtqwHUAg.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-BtqwHUAg.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-CPkVwNIK.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-CPkVwNIK.js.map +1 -0
- package/dashboard/dist/assets/{McpRunDetailPage-C76mfUtG.js → McpRunDetailPage-D-Rz9MRw.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-C76mfUtG.js.map → McpRunDetailPage-D-Rz9MRw.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-B43BqEyw.js → McpRunsPage-rdpZ2yMh.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-B43BqEyw.js.map → McpRunsPage-rdpZ2yMh.js.map} +1 -1
- package/dashboard/dist/assets/{Modal-CA2Iv02H.js → Modal-Dr1Xy0j0.js} +2 -2
- package/dashboard/dist/assets/{Modal-CA2Iv02H.js.map → Modal-Dr1Xy0j0.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-B5gHotsd.js → NamespacePill-GwO-WfhX.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-B5gHotsd.js.map → NamespacePill-GwO-WfhX.js.map} +1 -1
- package/dashboard/dist/assets/OperationsPage-DlyGLPAs.js +2 -0
- package/dashboard/dist/assets/OperationsPage-DlyGLPAs.js.map +1 -0
- package/dashboard/dist/assets/OperatorDashboard-Csei5vj-.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-Csei5vj-.js.map +1 -0
- package/dashboard/dist/assets/{PageHeader-DrbNMGxm.js → PageHeader-Bo9BU9pK.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-DrbNMGxm.js.map → PageHeader-Bo9BU9pK.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-SbQkaQLG.js → PageHeaderWithStats-8_5cOSKL.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-SbQkaQLG.js.map → PageHeaderWithStats-8_5cOSKL.js.map} +1 -1
- package/dashboard/dist/assets/PersonaDetailPage--ZL6Or6v.js +2 -0
- package/dashboard/dist/assets/PersonaDetailPage--ZL6Or6v.js.map +1 -0
- package/dashboard/dist/assets/PersonasPage-Bdcoay3P.js +2 -0
- package/dashboard/dist/assets/PersonasPage-Bdcoay3P.js.map +1 -0
- package/dashboard/dist/assets/ProcessDetailPage-HrmVQq7S.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-HrmVQq7S.js.map +1 -0
- package/dashboard/dist/assets/{ProcessesListPage-Di0n8TR4.js → ProcessesListPage-_xmj6Bo-.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-Di0n8TR4.js.map → ProcessesListPage-_xmj6Bo-.js.map} +1 -1
- package/dashboard/dist/assets/RoleDetailPage-C0ju2-4K.js +8 -0
- package/dashboard/dist/assets/RoleDetailPage-C0ju2-4K.js.map +1 -0
- package/dashboard/dist/assets/{RolePill-Cz-AAWqA.js → RolePill-CQlnEWkK.js} +2 -2
- package/dashboard/dist/assets/{RolePill-Cz-AAWqA.js.map → RolePill-CQlnEWkK.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-CKluVSpB.js +2 -0
- package/dashboard/dist/assets/RolesPage-CKluVSpB.js.map +1 -0
- package/dashboard/dist/assets/{RunAsSelector-DFv0VNVZ.js → RunAsSelector-DdfecQ1U.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-DFv0VNVZ.js.map → RunAsSelector-DdfecQ1U.js.map} +1 -1
- package/dashboard/dist/assets/ScopeBadge-BBYkevuR.js +2 -0
- package/dashboard/dist/assets/ScopeBadge-BBYkevuR.js.map +1 -0
- package/dashboard/dist/assets/StatCard-Ca-ngCaD.js +2 -0
- package/dashboard/dist/assets/StatCard-Ca-ngCaD.js.map +1 -0
- package/dashboard/dist/assets/{StatusBadge-BbqghFMi.js → StatusBadge-BwUvykDo.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-BbqghFMi.js.map → StatusBadge-BwUvykDo.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-D5zxe_l9.js → StickyPagination-cLddIdtT.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-D5zxe_l9.js.map → StickyPagination-cLddIdtT.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-BmBfNSEr.js → StreamMessageDetail-CZXWDawC.js} +2 -2
- package/dashboard/dist/assets/StreamMessageDetail-CZXWDawC.js.map +1 -0
- package/dashboard/dist/assets/{SwimlaneTimeline-CA0TKDIi.js → SwimlaneTimeline-fWY0gaf3.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-CA0TKDIi.js.map → SwimlaneTimeline-fWY0gaf3.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-Bf9dZSG6.js → TagInput-CDKbslLx.js} +2 -2
- package/dashboard/dist/assets/{TagInput-Bf9dZSG6.js.map → TagInput-CDKbslLx.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-C15nADUW.js → TaskDetailPage-BjE4G2yn.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-C15nADUW.js.map → TaskDetailPage-BjE4G2yn.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-DfiBYQy2.js → TaskQueuePill-G3RuYRNZ.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-DfiBYQy2.js.map → TaskQueuePill-G3RuYRNZ.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-DQdAayqc.js → TasksListPage-KAhmCWB2.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-DQdAayqc.js.map → TasksListPage-KAhmCWB2.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-CvslqTB7.js → TimeAgo-C_H2TyZw.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-CvslqTB7.js.map → TimeAgo-C_H2TyZw.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BZCQQONl.js → TimestampCell-COG_4Flg.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BZCQQONl.js.map → TimestampCell-COG_4Flg.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-gA4sXukc.js → ToolPill-ChSyRJZC.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-gA4sXukc.js.map → ToolPill-ChSyRJZC.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-BgLVc6R5.js → ToolTestPanel-BPdJECW0.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-BgLVc6R5.js.map → ToolTestPanel-BPdJECW0.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-9A0aPb4t.js → TopicDetailPage-DAqx5JqA.js} +3 -3
- package/dashboard/dist/assets/{TopicDetailPage-9A0aPb4t.js.map → TopicDetailPage-DAqx5JqA.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-o0EZxKbR.js → TopicsPage-DoGqAdPm.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-o0EZxKbR.js.map → TopicsPage-DoGqAdPm.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-DKMLxBJ5.js → UserName-CKO_rk1R.js} +2 -2
- package/dashboard/dist/assets/{UserName-DKMLxBJ5.js.map → UserName-CKO_rk1R.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-C-snB_dD.js → WorkflowExecutionPage-D3VQ9iQV.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-C-snB_dD.js.map → WorkflowExecutionPage-D3VQ9iQV.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-Djt2AtZk.js → WorkflowPill-CNbwug5p.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-Djt2AtZk.js.map → WorkflowPill-CNbwug5p.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-BRQmgsLR.js → WorkflowsDashboard-DdJ86We6.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-BRQmgsLR.js.map → WorkflowsDashboard-DdJ86We6.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-DmMdIRHQ.js → WorkflowsOverview-ZfFBzePp.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-DmMdIRHQ.js.map → WorkflowsOverview-ZfFBzePp.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-Bj7QkCry.js → YamlWorkflowDetailPage-4bd5yXdA.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-Bj7QkCry.js.map → YamlWorkflowDetailPage-4bd5yXdA.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-BIi77mE0.js → YamlWorkflowsPage-iHPNXjQj.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-BIi77mE0.js.map → YamlWorkflowsPage-iHPNXjQj.js.map} +1 -1
- package/dashboard/dist/assets/{agents-EBIsjLCr.js → agents-DjD5U3Wb.js} +2 -2
- package/dashboard/dist/assets/{agents-EBIsjLCr.js.map → agents-DjD5U3Wb.js.map} +1 -1
- package/dashboard/dist/assets/{bots-BXzxybS6.js → bots-DiljVapH.js} +2 -2
- package/dashboard/dist/assets/{bots-BXzxybS6.js.map → bots-DiljVapH.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-CnprG6q_.js → capabilities-DV_5ghHT.js} +2 -2
- package/dashboard/dist/assets/{capabilities-CnprG6q_.js.map → capabilities-DV_5ghHT.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-DiC0xtNq.js → controlplane-BKMvfWCB.js} +2 -2
- package/dashboard/dist/assets/{controlplane-DiC0xtNq.js.map → controlplane-BKMvfWCB.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-BQpCaJId.js +2 -0
- package/dashboard/dist/assets/escalation-columns-BQpCaJId.js.map +1 -0
- package/dashboard/dist/assets/{index-BzRXMicE.js → index-B-WkiNRN.js} +2 -2
- package/dashboard/dist/assets/{index-BzRXMicE.js.map → index-B-WkiNRN.js.map} +1 -1
- package/dashboard/dist/assets/index-BO-7S9Xw.js +2 -0
- package/dashboard/dist/assets/index-BO-7S9Xw.js.map +1 -0
- package/dashboard/dist/assets/{index-C7KY8GTF.js → index-BaV3l0UE.js} +2 -2
- package/dashboard/dist/assets/{index-C7KY8GTF.js.map → index-BaV3l0UE.js.map} +1 -1
- package/dashboard/dist/assets/{index-B6ldRx_s.js → index-BsOxMMmb.js} +2 -2
- package/dashboard/dist/assets/{index-B6ldRx_s.js.map → index-BsOxMMmb.js.map} +1 -1
- package/dashboard/dist/assets/index-CI8rrKjx.js +2 -0
- package/dashboard/dist/assets/{index-CjBdB8Ht.js.map → index-CI8rrKjx.js.map} +1 -1
- package/dashboard/dist/assets/index-CItsikDw.js +2 -0
- package/dashboard/dist/assets/index-CItsikDw.js.map +1 -0
- package/dashboard/dist/assets/{index-CcMIca5t.js → index-CStR4uIU.js} +2 -2
- package/dashboard/dist/assets/{index-CcMIca5t.js.map → index-CStR4uIU.js.map} +1 -1
- package/dashboard/dist/assets/{index-CSTwyrwu.js → index-DbTD-dio.js} +26 -26
- package/dashboard/dist/assets/index-DbTD-dio.js.map +1 -0
- package/dashboard/dist/assets/{index-gBnGEubX.js → index-DhATO1cS.js} +2 -2
- package/dashboard/dist/assets/{index-gBnGEubX.js.map → index-DhATO1cS.js.map} +1 -1
- package/dashboard/dist/assets/index-DnlsDaAw.css +1 -0
- package/dashboard/dist/assets/{index-ovFEZ9SV.js → index-Tx_ETzcH.js} +2 -2
- package/dashboard/dist/assets/{index-ovFEZ9SV.js.map → index-Tx_ETzcH.js.map} +1 -1
- package/dashboard/dist/assets/{index-DVmC_UfQ.js → index-kzIIeVbx.js} +4 -4
- package/dashboard/dist/assets/{index-DVmC_UfQ.js.map → index-kzIIeVbx.js.map} +1 -1
- package/dashboard/dist/assets/{index-BHAjQoOy.js → index-nIrYejxe.js} +3 -3
- package/dashboard/dist/assets/{index-BHAjQoOy.js.map → index-nIrYejxe.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dht0ihGT.js → index-xZqQxqu2.js} +2 -2
- package/dashboard/dist/assets/{index-Dht0ihGT.js.map → index-xZqQxqu2.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-W5QSKkYQ.js → knowledge-BocTnSiA.js} +2 -2
- package/dashboard/dist/assets/{knowledge-W5QSKkYQ.js.map → knowledge-BocTnSiA.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-n877HyOj.js → mcp-C1KBjKQ_.js} +2 -2
- package/dashboard/dist/assets/{mcp-n877HyOj.js.map → mcp-C1KBjKQ_.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-C9kV4sUm.js → mcp-query-B3cjukkA.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-C9kV4sUm.js.map → mcp-query-B3cjukkA.js.map} +1 -1
- package/dashboard/dist/assets/personas-DiA2bJaX.js +2 -0
- package/dashboard/dist/assets/personas-DiA2bJaX.js.map +1 -0
- package/dashboard/dist/assets/{pipelines-CBR68T8R.js → pipelines-Dt2d2EFR.js} +2 -2
- package/dashboard/dist/assets/{pipelines-CBR68T8R.js.map → pipelines-Dt2d2EFR.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-DHpWqKMk.js → tasks-cDh2hNml.js} +2 -2
- package/dashboard/dist/assets/{tasks-DHpWqKMk.js.map → tasks-cDh2hNml.js.map} +1 -1
- package/dashboard/dist/assets/{topics-CaLtyqSh.js → topics-yFlGF-u1.js} +2 -2
- package/dashboard/dist/assets/{topics-CaLtyqSh.js.map → topics-yFlGF-u1.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-B8p56JlB.js → useEventHooks-D2R_ckS8.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-B8p56JlB.js.map → useEventHooks-D2R_ckS8.js.map} +1 -1
- package/dashboard/dist/assets/{useFilterParams-CvRyYHJN.js → useFilterParams-B7suPsIK.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-CvRyYHJN.js.map → useFilterParams-B7suPsIK.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-ej71FCvu.js → useNamespace-u-V1GVUD.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-ej71FCvu.js.map → useNamespace-u-V1GVUD.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-DgpiFXib.js → useYamlActivityEvents-BhOZeqgE.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-DgpiFXib.js.map → useYamlActivityEvents-BhOZeqgE.js.map} +1 -1
- package/dashboard/dist/assets/{users-CHnjI_Ca.js → users-BoXPwdee.js} +2 -2
- package/dashboard/dist/assets/{users-CHnjI_Ca.js.map → users-BoXPwdee.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-Bg6eJX4Z.js → vendor-icons-D71XjkNy.js} +133 -128
- package/dashboard/dist/assets/vendor-icons-D71XjkNy.js.map +1 -0
- package/dashboard/dist/assets/{vendor-react-BpdAFEQc.js → vendor-react-C1YOyCSV.js} +2 -2
- package/dashboard/dist/assets/{vendor-react-BpdAFEQc.js.map → vendor-react-C1YOyCSV.js.map} +1 -1
- package/dashboard/dist/assets/{workflows-DtnXUL0U.js → workflows-mCoyKuLZ.js} +2 -2
- package/dashboard/dist/assets/{workflows-DtnXUL0U.js.map → workflows-mCoyKuLZ.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-DDclYAID.js → yaml-workflows-CWxXGDpn.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DDclYAID.js.map → yaml-workflows-CWxXGDpn.js.map} +1 -1
- package/dashboard/dist/index.html +4 -4
- package/docs/api/http/personas.md +160 -0
- package/docs/cli.md +12 -0
- package/docs/dashboard.md +25 -3
- package/docs/design-principles.md +13 -5
- package/docs/hitl/pinned-views.md +3 -3
- package/docs/hitl/x-lt-list-schema.md +2 -3
- package/docs/iam.md +47 -0
- package/docs/operations.md +1 -1
- package/docs/sdk.md +1 -0
- package/package.json +1 -1
- package/dashboard/dist/assets/AgentDetailPage-D-Xbyrb6.js +0 -4
- package/dashboard/dist/assets/AgentDetailPage-D-Xbyrb6.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-B-aHvGKD.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-B-aHvGKD.js.map +0 -1
- package/dashboard/dist/assets/CountdownTimer-BhF3oqS8.js +0 -2
- package/dashboard/dist/assets/CountdownTimer-BhF3oqS8.js.map +0 -1
- package/dashboard/dist/assets/ElapsedCell-BE_CN5sP.js +0 -2
- package/dashboard/dist/assets/HomePage-B6s1ZeyA.js +0 -2
- package/dashboard/dist/assets/HomePage-B6s1ZeyA.js.map +0 -1
- package/dashboard/dist/assets/ListToolbar-DVhlAKZ3.js +0 -2
- package/dashboard/dist/assets/ListToolbar-DVhlAKZ3.js.map +0 -1
- package/dashboard/dist/assets/McpQueryDetailPage-D0r2lyZg.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-D0r2lyZg.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-DPP6BB3d.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-DPP6BB3d.js.map +0 -1
- package/dashboard/dist/assets/OperationsPage-DbHzQCuE.js +0 -2
- package/dashboard/dist/assets/OperationsPage-DbHzQCuE.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-B70nS_Ah.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-B70nS_Ah.js.map +0 -1
- package/dashboard/dist/assets/ProcessDetailPage-eLLUCWFf.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-eLLUCWFf.js.map +0 -1
- package/dashboard/dist/assets/RoleDetailPage-Dhn9zU5l.js +0 -8
- package/dashboard/dist/assets/RoleDetailPage-Dhn9zU5l.js.map +0 -1
- package/dashboard/dist/assets/RolesPage-BnAwjUiG.js +0 -2
- package/dashboard/dist/assets/RolesPage-BnAwjUiG.js.map +0 -1
- package/dashboard/dist/assets/StatCard-DBANWIss.js +0 -2
- package/dashboard/dist/assets/StatCard-DBANWIss.js.map +0 -1
- package/dashboard/dist/assets/StreamMessageDetail-BmBfNSEr.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-D0aYpJkF.js +0 -2
- package/dashboard/dist/assets/escalation-columns-D0aYpJkF.js.map +0 -1
- package/dashboard/dist/assets/index-B2iZG_HP.css +0 -1
- package/dashboard/dist/assets/index-CSTwyrwu.js.map +0 -1
- package/dashboard/dist/assets/index-CjBdB8Ht.js +0 -2
- package/dashboard/dist/assets/index-D-7mT0ew.js +0 -2
- package/dashboard/dist/assets/index-D-7mT0ew.js.map +0 -1
- package/dashboard/dist/assets/index-DDA7FvqT.js +0 -2
- package/dashboard/dist/assets/index-DDA7FvqT.js.map +0 -1
- package/dashboard/dist/assets/role-display-Dvo2lDpU.js +0 -2
- package/dashboard/dist/assets/role-display-Dvo2lDpU.js.map +0 -1
- 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.
|
|
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,
|