happy2 0.0.12 → 0.0.13

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 (380) hide show
  1. package/package.json +2 -2
  2. package/packages/happy2-server/PLUGINS.md +99 -11
  3. package/packages/happy2-server/README.md +8 -7
  4. package/packages/happy2-server/dist/index.d.ts +2 -1
  5. package/packages/happy2-server/dist/index.d.ts.map +1 -1
  6. package/packages/happy2-server/dist/index.js +1 -0
  7. package/packages/happy2-server/dist/index.js.map +1 -1
  8. package/packages/happy2-server/dist/modules/agent/agentChatBind.d.ts +1 -0
  9. package/packages/happy2-server/dist/modules/agent/agentChatBind.d.ts.map +1 -1
  10. package/packages/happy2-server/dist/modules/agent/agentChatBind.js +4 -0
  11. package/packages/happy2-server/dist/modules/agent/agentChatBind.js.map +1 -1
  12. package/packages/happy2-server/dist/modules/agent/agentChatGetContext.d.ts.map +1 -1
  13. package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js +3 -1
  14. package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js.map +1 -1
  15. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.d.ts +7 -0
  16. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.d.ts.map +1 -0
  17. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.js +15 -0
  18. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.js.map +1 -0
  19. package/packages/happy2-server/dist/modules/agent/agentCreate.d.ts.map +1 -1
  20. package/packages/happy2-server/dist/modules/agent/agentCreate.js +1 -0
  21. package/packages/happy2-server/dist/modules/agent/agentCreate.js.map +1 -1
  22. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.d.ts +4 -2
  23. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.d.ts.map +1 -1
  24. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.js +8 -8
  25. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.js.map +1 -1
  26. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.d.ts +3 -3
  27. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.d.ts.map +1 -1
  28. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.js +4 -4
  29. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.js.map +1 -1
  30. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.d.ts +4 -4
  31. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.d.ts.map +1 -1
  32. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.js +57 -41
  33. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.js.map +1 -1
  34. package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.d.ts +1 -1
  35. package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js +3 -3
  36. package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js.map +1 -1
  37. package/packages/happy2-server/dist/modules/agent/agentImageCreate.d.ts +1 -1
  38. package/packages/happy2-server/dist/modules/agent/agentImageCreate.js +3 -3
  39. package/packages/happy2-server/dist/modules/agent/agentImageCreate.js.map +1 -1
  40. package/packages/happy2-server/dist/modules/agent/agentImageGet.d.ts +1 -1
  41. package/packages/happy2-server/dist/modules/agent/agentImageGet.js +3 -3
  42. package/packages/happy2-server/dist/modules/agent/agentImageGet.js.map +1 -1
  43. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.d.ts +2 -1
  44. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.d.ts.map +1 -1
  45. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js +11 -4
  46. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js.map +1 -1
  47. package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts +2 -2
  48. package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts.map +1 -1
  49. package/packages/happy2-server/dist/modules/agent/agentImageList.js +8 -4
  50. package/packages/happy2-server/dist/modules/agent/agentImageList.js.map +1 -1
  51. package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.d.ts +1 -1
  52. package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js +3 -3
  53. package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js.map +1 -1
  54. package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.d.ts +1 -1
  55. package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js +3 -3
  56. package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js.map +1 -1
  57. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.d.ts +1 -1
  58. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.js +3 -3
  59. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.js.map +1 -1
  60. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.d.ts +1 -1
  61. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.js +3 -3
  62. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.js.map +1 -1
  63. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.d.ts +1 -1
  64. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.js +3 -3
  65. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.js.map +1 -1
  66. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.d.ts +1 -1
  67. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.js +3 -3
  68. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.js.map +1 -1
  69. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.d.ts +4 -3
  70. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.d.ts.map +1 -1
  71. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.js +5 -5
  72. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.js.map +1 -1
  73. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.d.ts +1 -1
  74. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.js +3 -3
  75. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.js.map +1 -1
  76. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.d.ts +2 -2
  77. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.js +4 -4
  78. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.js.map +1 -1
  79. package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.d.ts +1 -1
  80. package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.js +3 -3
  81. package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.js.map +1 -1
  82. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.d.ts +4 -0
  83. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.d.ts.map +1 -1
  84. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.js +207 -9
  85. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.js.map +1 -1
  86. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.d.ts +8 -0
  87. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.d.ts.map +1 -0
  88. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.js +86 -0
  89. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.js.map +1 -0
  90. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.d.ts +19 -0
  91. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.d.ts.map +1 -0
  92. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.js +87 -0
  93. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.js.map +1 -0
  94. package/packages/happy2-server/dist/modules/agent/impl/agentChatContext.d.ts +2 -1
  95. package/packages/happy2-server/dist/modules/agent/impl/agentChatContext.d.ts.map +1 -1
  96. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContext.d.ts +4 -1
  97. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContext.d.ts.map +1 -1
  98. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.d.ts +3 -3
  99. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.d.ts.map +1 -1
  100. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.js +26 -40
  101. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.js.map +1 -1
  102. package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.d.ts.map +1 -1
  103. package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.js +63 -2
  104. package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.js.map +1 -1
  105. package/packages/happy2-server/dist/modules/agent/types.d.ts +53 -0
  106. package/packages/happy2-server/dist/modules/agent/types.d.ts.map +1 -1
  107. package/packages/happy2-server/dist/modules/agents/daemon.d.ts +31 -2
  108. package/packages/happy2-server/dist/modules/agents/daemon.d.ts.map +1 -1
  109. package/packages/happy2-server/dist/modules/agents/daemon.js +12 -2
  110. package/packages/happy2-server/dist/modules/agents/daemon.js.map +1 -1
  111. package/packages/happy2-server/dist/modules/agents/service.d.ts +13 -6
  112. package/packages/happy2-server/dist/modules/agents/service.d.ts.map +1 -1
  113. package/packages/happy2-server/dist/modules/agents/service.js +497 -49
  114. package/packages/happy2-server/dist/modules/agents/service.js.map +1 -1
  115. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.d.ts +12 -0
  116. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.d.ts.map +1 -0
  117. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.js +27 -0
  118. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.js.map +1 -0
  119. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.d.ts +8 -0
  120. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.d.ts.map +1 -0
  121. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.js +22 -0
  122. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.js.map +1 -0
  123. package/packages/happy2-server/dist/modules/auth/methods.d.ts +1 -0
  124. package/packages/happy2-server/dist/modules/auth/methods.d.ts.map +1 -1
  125. package/packages/happy2-server/dist/modules/auth/methods.js +10 -6
  126. package/packages/happy2-server/dist/modules/auth/methods.js.map +1 -1
  127. package/packages/happy2-server/dist/modules/auth/service.d.ts +2 -0
  128. package/packages/happy2-server/dist/modules/auth/service.d.ts.map +1 -1
  129. package/packages/happy2-server/dist/modules/auth/service.js +26 -0
  130. package/packages/happy2-server/dist/modules/auth/service.js.map +1 -1
  131. package/packages/happy2-server/dist/modules/auth/tokens.d.ts +6 -0
  132. package/packages/happy2-server/dist/modules/auth/tokens.d.ts.map +1 -1
  133. package/packages/happy2-server/dist/modules/auth/tokens.js +26 -0
  134. package/packages/happy2-server/dist/modules/auth/tokens.js.map +1 -1
  135. package/packages/happy2-server/dist/modules/auth/tokens.test.js +20 -0
  136. package/packages/happy2-server/dist/modules/auth/tokens.test.js.map +1 -1
  137. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.d.ts +17 -0
  138. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.d.ts.map +1 -0
  139. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.js +98 -0
  140. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.js.map +1 -0
  141. package/packages/happy2-server/dist/modules/chat/asServiceMessage.d.ts.map +1 -1
  142. package/packages/happy2-server/dist/modules/chat/asServiceMessage.js +13 -5
  143. package/packages/happy2-server/dist/modules/chat/asServiceMessage.js.map +1 -1
  144. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.d.ts +20 -0
  145. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.d.ts.map +1 -0
  146. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.js +38 -0
  147. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.js.map +1 -0
  148. package/packages/happy2-server/dist/modules/chat/types.d.ts +6 -0
  149. package/packages/happy2-server/dist/modules/chat/types.d.ts.map +1 -1
  150. package/packages/happy2-server/dist/modules/chat/types.js.map +1 -1
  151. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.d.ts +7 -0
  152. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.d.ts.map +1 -0
  153. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.js +19 -0
  154. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.js.map +1 -0
  155. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.d.ts +2 -2
  156. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.d.ts.map +1 -1
  157. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.js +8 -5
  158. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.js.map +1 -1
  159. package/packages/happy2-server/dist/modules/config/defaults.d.ts.map +1 -1
  160. package/packages/happy2-server/dist/modules/config/defaults.js +1 -0
  161. package/packages/happy2-server/dist/modules/config/defaults.js.map +1 -1
  162. package/packages/happy2-server/dist/modules/config/defaults.test.js +1 -0
  163. package/packages/happy2-server/dist/modules/config/defaults.test.js.map +1 -1
  164. package/packages/happy2-server/dist/modules/config/loader.d.ts.map +1 -1
  165. package/packages/happy2-server/dist/modules/config/loader.js +4 -0
  166. package/packages/happy2-server/dist/modules/config/loader.js.map +1 -1
  167. package/packages/happy2-server/dist/modules/config/loader.test.js +12 -0
  168. package/packages/happy2-server/dist/modules/config/loader.test.js.map +1 -1
  169. package/packages/happy2-server/dist/modules/config/type.d.ts +3 -0
  170. package/packages/happy2-server/dist/modules/config/type.d.ts.map +1 -1
  171. package/packages/happy2-server/dist/modules/message/messageGetProjection.d.ts.map +1 -1
  172. package/packages/happy2-server/dist/modules/message/messageGetProjection.js +28 -0
  173. package/packages/happy2-server/dist/modules/message/messageGetProjection.js.map +1 -1
  174. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.d.ts +4 -0
  175. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.d.ts.map +1 -0
  176. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.js +39 -0
  177. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.js.map +1 -0
  178. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.d.ts +10 -0
  179. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.d.ts.map +1 -0
  180. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.js +31 -0
  181. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.js.map +1 -0
  182. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.d.ts +8 -0
  183. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.d.ts.map +1 -0
  184. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.js +13 -0
  185. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.js.map +1 -0
  186. package/packages/happy2-server/dist/modules/permission/roleCreate.d.ts +16 -0
  187. package/packages/happy2-server/dist/modules/permission/roleCreate.d.ts.map +1 -0
  188. package/packages/happy2-server/dist/modules/permission/roleCreate.js +70 -0
  189. package/packages/happy2-server/dist/modules/permission/roleCreate.js.map +1 -0
  190. package/packages/happy2-server/dist/modules/permission/roleDelete.d.ts +11 -0
  191. package/packages/happy2-server/dist/modules/permission/roleDelete.d.ts.map +1 -0
  192. package/packages/happy2-server/dist/modules/permission/roleDelete.js +41 -0
  193. package/packages/happy2-server/dist/modules/permission/roleDelete.js.map +1 -0
  194. package/packages/happy2-server/dist/modules/permission/roleList.d.ts +8 -0
  195. package/packages/happy2-server/dist/modules/permission/roleList.d.ts.map +1 -0
  196. package/packages/happy2-server/dist/modules/permission/roleList.js +36 -0
  197. package/packages/happy2-server/dist/modules/permission/roleList.js.map +1 -0
  198. package/packages/happy2-server/dist/modules/permission/roleUpdate.d.ts +14 -0
  199. package/packages/happy2-server/dist/modules/permission/roleUpdate.d.ts.map +1 -0
  200. package/packages/happy2-server/dist/modules/permission/roleUpdate.js +78 -0
  201. package/packages/happy2-server/dist/modules/permission/roleUpdate.js.map +1 -0
  202. package/packages/happy2-server/dist/modules/permission/types.d.ts +24 -0
  203. package/packages/happy2-server/dist/modules/permission/types.d.ts.map +1 -0
  204. package/packages/happy2-server/dist/modules/permission/types.js +10 -0
  205. package/packages/happy2-server/dist/modules/permission/types.js.map +1 -0
  206. package/packages/happy2-server/dist/modules/permission/userPermissionGet.d.ts +16 -0
  207. package/packages/happy2-server/dist/modules/permission/userPermissionGet.d.ts.map +1 -0
  208. package/packages/happy2-server/dist/modules/permission/userPermissionGet.js +33 -0
  209. package/packages/happy2-server/dist/modules/permission/userPermissionGet.js.map +1 -0
  210. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.d.ts +12 -0
  211. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.d.ts.map +1 -0
  212. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.js +44 -0
  213. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.js.map +1 -0
  214. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.d.ts +8 -0
  215. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.d.ts.map +1 -0
  216. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.js +12 -0
  217. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.js.map +1 -0
  218. package/packages/happy2-server/dist/modules/permission/userRequirePermission.d.ts +8 -0
  219. package/packages/happy2-server/dist/modules/permission/userRequirePermission.d.ts.map +1 -0
  220. package/packages/happy2-server/dist/modules/permission/userRequirePermission.js +12 -0
  221. package/packages/happy2-server/dist/modules/permission/userRequirePermission.js.map +1 -0
  222. package/packages/happy2-server/dist/modules/permission/userRoleAssign.d.ts +12 -0
  223. package/packages/happy2-server/dist/modules/permission/userRoleAssign.d.ts.map +1 -0
  224. package/packages/happy2-server/dist/modules/permission/userRoleAssign.js +46 -0
  225. package/packages/happy2-server/dist/modules/permission/userRoleAssign.js.map +1 -0
  226. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.d.ts +12 -0
  227. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.d.ts.map +1 -0
  228. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.js +53 -0
  229. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.js.map +1 -0
  230. package/packages/happy2-server/dist/modules/plugin/archive.d.ts +7 -0
  231. package/packages/happy2-server/dist/modules/plugin/archive.d.ts.map +1 -0
  232. package/packages/happy2-server/dist/modules/plugin/archive.js +222 -0
  233. package/packages/happy2-server/dist/modules/plugin/archive.js.map +1 -0
  234. package/packages/happy2-server/dist/modules/plugin/catalog.d.ts +5 -1
  235. package/packages/happy2-server/dist/modules/plugin/catalog.d.ts.map +1 -1
  236. package/packages/happy2-server/dist/modules/plugin/catalog.js +33 -14
  237. package/packages/happy2-server/dist/modules/plugin/catalog.js.map +1 -1
  238. package/packages/happy2-server/dist/modules/plugin/catalog.test.js +6 -2
  239. package/packages/happy2-server/dist/modules/plugin/catalog.test.js.map +1 -1
  240. package/packages/happy2-server/dist/modules/plugin/httpBridge.d.ts +1 -0
  241. package/packages/happy2-server/dist/modules/plugin/httpBridge.d.ts.map +1 -1
  242. package/packages/happy2-server/dist/modules/plugin/httpBridge.js +7 -0
  243. package/packages/happy2-server/dist/modules/plugin/httpBridge.js.map +1 -1
  244. package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.d.ts.map +1 -1
  245. package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.js +3 -2
  246. package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.js.map +1 -1
  247. package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.d.ts.map +1 -1
  248. package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.js +3 -2
  249. package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.js.map +1 -1
  250. package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.js +1 -1
  251. package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.js.map +1 -1
  252. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.d.ts +11 -0
  253. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.d.ts.map +1 -0
  254. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.js +2 -0
  255. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.js.map +1 -0
  256. package/packages/happy2-server/dist/modules/plugin/packageStore.d.ts +13 -0
  257. package/packages/happy2-server/dist/modules/plugin/packageStore.d.ts.map +1 -1
  258. package/packages/happy2-server/dist/modules/plugin/packageStore.js +122 -14
  259. package/packages/happy2-server/dist/modules/plugin/packageStore.js.map +1 -1
  260. package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.d.ts +1 -1
  261. package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.js +3 -3
  262. package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.js.map +1 -1
  263. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.d.ts +3 -1
  264. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.d.ts.map +1 -1
  265. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.js +1 -1
  266. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.js.map +1 -1
  267. package/packages/happy2-server/dist/modules/plugin/pluginGetImage.d.ts +1 -1
  268. package/packages/happy2-server/dist/modules/plugin/pluginGetImage.js +3 -3
  269. package/packages/happy2-server/dist/modules/plugin/pluginGetImage.js.map +1 -1
  270. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.d.ts +13 -0
  271. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.d.ts.map +1 -0
  272. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.js +37 -0
  273. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.js.map +1 -0
  274. package/packages/happy2-server/dist/modules/plugin/pluginInstall.d.ts.map +1 -1
  275. package/packages/happy2-server/dist/modules/plugin/pluginInstall.js +18 -4
  276. package/packages/happy2-server/dist/modules/plugin/pluginInstall.js.map +1 -1
  277. package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.d.ts +1 -1
  278. package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.js +3 -3
  279. package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.js.map +1 -1
  280. package/packages/happy2-server/dist/modules/plugin/pluginList.d.ts +1 -1
  281. package/packages/happy2-server/dist/modules/plugin/pluginList.js +3 -3
  282. package/packages/happy2-server/dist/modules/plugin/pluginList.js.map +1 -1
  283. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.d.ts +8 -0
  284. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.d.ts.map +1 -0
  285. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.js +24 -0
  286. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.js.map +1 -0
  287. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.d.ts +8 -0
  288. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.d.ts.map +1 -0
  289. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.js +25 -0
  290. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.js.map +1 -0
  291. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.d.ts +13 -0
  292. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.d.ts.map +1 -0
  293. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.js +63 -0
  294. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.js.map +1 -0
  295. package/packages/happy2-server/dist/modules/plugin/runtime.d.ts +1 -0
  296. package/packages/happy2-server/dist/modules/plugin/runtime.d.ts.map +1 -1
  297. package/packages/happy2-server/dist/modules/plugin/runtime.js +1 -0
  298. package/packages/happy2-server/dist/modules/plugin/runtime.js.map +1 -1
  299. package/packages/happy2-server/dist/modules/plugin/service.d.ts +54 -3
  300. package/packages/happy2-server/dist/modules/plugin/service.d.ts.map +1 -1
  301. package/packages/happy2-server/dist/modules/plugin/service.js +339 -6
  302. package/packages/happy2-server/dist/modules/plugin/service.js.map +1 -1
  303. package/packages/happy2-server/dist/modules/plugin/source.d.ts +35 -0
  304. package/packages/happy2-server/dist/modules/plugin/source.d.ts.map +1 -0
  305. package/packages/happy2-server/dist/modules/plugin/source.js +189 -0
  306. package/packages/happy2-server/dist/modules/plugin/source.js.map +1 -0
  307. package/packages/happy2-server/dist/modules/plugin/types.d.ts +48 -9
  308. package/packages/happy2-server/dist/modules/plugin/types.d.ts.map +1 -1
  309. package/packages/happy2-server/dist/modules/plugin/types.js.map +1 -1
  310. package/packages/happy2-server/dist/modules/realtime/events.d.ts +3 -0
  311. package/packages/happy2-server/dist/modules/realtime/events.d.ts.map +1 -1
  312. package/packages/happy2-server/dist/modules/realtime/events.js +37 -5
  313. package/packages/happy2-server/dist/modules/realtime/events.js.map +1 -1
  314. package/packages/happy2-server/dist/modules/realtime/local.test.js +2 -0
  315. package/packages/happy2-server/dist/modules/realtime/local.test.js.map +1 -1
  316. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.d.ts.map +1 -1
  317. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.js +4 -2
  318. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.js.map +1 -1
  319. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.test.js +4 -1
  320. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.test.js.map +1 -1
  321. package/packages/happy2-server/dist/modules/sandbox/types.d.ts +1 -0
  322. package/packages/happy2-server/dist/modules/sandbox/types.d.ts.map +1 -1
  323. package/packages/happy2-server/dist/modules/schema.d.ts +1949 -331
  324. package/packages/happy2-server/dist/modules/schema.d.ts.map +1 -1
  325. package/packages/happy2-server/dist/modules/schema.js +105 -0
  326. package/packages/happy2-server/dist/modules/schema.js.map +1 -1
  327. package/packages/happy2-server/dist/modules/sync/syncGetDifference.d.ts.map +1 -1
  328. package/packages/happy2-server/dist/modules/sync/syncGetDifference.js +2 -0
  329. package/packages/happy2-server/dist/modules/sync/syncGetDifference.js.map +1 -1
  330. package/packages/happy2-server/dist/modules/user/userAdministrationList.js +2 -2
  331. package/packages/happy2-server/dist/modules/user/userAdministrationList.js.map +1 -1
  332. package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.d.ts.map +1 -1
  333. package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.js +49 -6
  334. package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.js.map +1 -1
  335. package/packages/happy2-server/dist/modules/user/userCreateProfile.d.ts.map +1 -1
  336. package/packages/happy2-server/dist/modules/user/userCreateProfile.js +17 -2
  337. package/packages/happy2-server/dist/modules/user/userCreateProfile.js.map +1 -1
  338. package/packages/happy2-server/dist/routes/agents.d.ts.map +1 -1
  339. package/packages/happy2-server/dist/routes/agents.js +4 -2
  340. package/packages/happy2-server/dist/routes/agents.js.map +1 -1
  341. package/packages/happy2-server/dist/routes/auth.d.ts.map +1 -1
  342. package/packages/happy2-server/dist/routes/auth.js +12 -0
  343. package/packages/happy2-server/dist/routes/auth.js.map +1 -1
  344. package/packages/happy2-server/dist/routes/collaboration.d.ts.map +1 -1
  345. package/packages/happy2-server/dist/routes/collaboration.js +7 -0
  346. package/packages/happy2-server/dist/routes/collaboration.js.map +1 -1
  347. package/packages/happy2-server/dist/routes/files.d.ts.map +1 -1
  348. package/packages/happy2-server/dist/routes/files.js +2 -0
  349. package/packages/happy2-server/dist/routes/files.js.map +1 -1
  350. package/packages/happy2-server/dist/routes/permissions.d.ts +6 -0
  351. package/packages/happy2-server/dist/routes/permissions.d.ts.map +1 -0
  352. package/packages/happy2-server/dist/routes/permissions.js +207 -0
  353. package/packages/happy2-server/dist/routes/permissions.js.map +1 -0
  354. package/packages/happy2-server/dist/routes/pluginHost.d.ts.map +1 -1
  355. package/packages/happy2-server/dist/routes/pluginHost.js +70 -1
  356. package/packages/happy2-server/dist/routes/pluginHost.js.map +1 -1
  357. package/packages/happy2-server/dist/routes/plugins.d.ts.map +1 -1
  358. package/packages/happy2-server/dist/routes/plugins.js +147 -5
  359. package/packages/happy2-server/dist/routes/plugins.js.map +1 -1
  360. package/packages/happy2-server/dist/server.d.ts +2 -0
  361. package/packages/happy2-server/dist/server.d.ts.map +1 -1
  362. package/packages/happy2-server/dist/server.js +4 -1
  363. package/packages/happy2-server/dist/server.js.map +1 -1
  364. package/packages/happy2-server/dist/web/assets/index-BaPUPGPe.css +2 -0
  365. package/packages/happy2-server/dist/web/assets/index-BnhFxR3U.js +39 -0
  366. package/packages/happy2-server/dist/web/index.html +2 -2
  367. package/packages/happy2-server/drizzle/0023_roles_and_permissions.sql +82 -0
  368. package/packages/happy2-server/drizzle/0024_session_bound_dev_tokens.sql +11 -0
  369. package/packages/happy2-server/drizzle/0025_plugin_skills.sql +8 -0
  370. package/packages/happy2-server/drizzle/0026_agent_turn_traces.sql +35 -0
  371. package/packages/happy2-server/drizzle/0027_chat_agent_effort.sql +9 -0
  372. package/packages/happy2-server/drizzle/meta/_journal.json +35 -0
  373. package/packages/happy2-server/happy2.example.toml +6 -0
  374. package/packages/happy2-server/plugins/README.md +3 -1
  375. package/packages/happy2-server/plugins/chat-management/container/Dockerfile +6 -0
  376. package/packages/happy2-server/plugins/chat-management/plugin.json +17 -0
  377. package/packages/happy2-server/plugins/chat-management/plugin.png +0 -0
  378. package/packages/happy2-server/plugins/chat-management/server.mjs +113 -0
  379. package/packages/happy2-server/dist/web/assets/index-9SGCQLg7.js +0 -46
  380. package/packages/happy2-server/dist/web/assets/index-DWXBQDJB.css +0 -2
@@ -1,67 +1,83 @@
1
+ import { createId } from "@paralleldrive/cuid2";
2
+ import { and, eq, isNull, sql } from "drizzle-orm";
1
3
  import { withTransaction } from "../drizzle.js";
2
- import {} from "../chat/types.js";
3
- import { areaHint } from "../chat/areaHint.js";
4
- import { asUser } from "../chat/asUser.js";
5
- import { eq } from "drizzle-orm";
6
- import { userSelection } from "../chat/userSelection.js";
7
- import { users } from "../schema.js";
4
+ import { CollaborationError } from "../chat/types.js";
5
+ import { agentRigBindings, messages } from "../schema.js";
8
6
  import { agentEffortContextDb } from "./impl/agentEffortContextDb.js";
7
+ import { chatAdvanceWithSequence } from "../chat/chatAdvanceWithSequence.js";
9
8
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
10
- import { syncEventInsert } from "../sync/syncEventInsert.js";
9
+ import { chatCanPost } from "../chat/chatCanPost.js";
11
10
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
12
11
  /**
13
- * Stores the selected reasoning effort on the target agent's users row and records the authorized change for sync and audit consumers.
14
- * Treating the preference, event, and audit entry as one transition keeps future turns from observing an unaccounted configuration change.
12
+ * Updates agentRigBindings.effort and appends the same chat's explanatory messages, sync history, and auditLogEntries record atomically.
13
+ * Keeping the override on the binding preserves the agent profile effort as a default and prevents a selection in one chat from changing another chat's session.
15
14
  */
16
15
  export async function agentEffortUpdate(executor, input) {
17
16
  return withTransaction(executor, async (tx) => {
18
- const context = await agentEffortContextDb(tx, input.actorUserId, input.agentUserId, true);
19
- if (context.effort === input.effort) {
20
- const [user] = await tx
21
- .select(userSelection)
22
- .from(users)
23
- .where(eq(users.id, input.agentUserId));
24
- if (!user)
25
- throw new Error("Agent effort target is missing");
26
- return {
27
- user: asUser(user),
28
- };
29
- }
17
+ const context = await agentEffortContextDb(tx, input.actorUserId, input.chatId, input.agentUserId);
18
+ if (!(await chatCanPost(tx, input.actorUserId, input.chatId)))
19
+ throw new CollaborationError("forbidden", "Effort cannot be changed in this chat");
20
+ const currentEffort = context.effort ?? context.defaultEffort;
21
+ if (currentEffort === input.effort)
22
+ return {};
30
23
  const sequence = await syncSequenceNext(tx);
31
- await tx
32
- .update(users)
24
+ const changed = await tx
25
+ .update(agentRigBindings)
33
26
  .set({
34
- agentEffort: input.effort,
35
- syncSequence: sequence,
27
+ effort: input.effort,
28
+ updatedAt: sql `CURRENT_TIMESTAMP`,
36
29
  })
37
- .where(eq(users.id, input.agentUserId));
38
- await syncEventInsert(tx, {
39
- sequence,
40
- kind: "user.agentEffortChanged",
41
- entityId: input.agentUserId,
42
- actorUserId: input.actorUserId,
30
+ .where(and(eq(agentRigBindings.userId, input.agentUserId), eq(agentRigBindings.chatId, input.chatId), eq(agentRigBindings.sessionId, context.sessionId), context.effort
31
+ ? eq(agentRigBindings.effort, context.effort)
32
+ : isNull(agentRigBindings.effort)))
33
+ .returning({ sessionId: agentRigBindings.sessionId });
34
+ if (changed.length !== 1)
35
+ throw new Error("Agent chat effort binding changed concurrently");
36
+ const messageId = createId();
37
+ const messageMutation = await chatAdvanceWithSequence(tx, sequence, input.actorUserId, input.chatId, "message.serviceCreated", messageId, undefined, true);
38
+ if (messageMutation.messageSequence === undefined)
39
+ throw new Error("Service message sequence was not allocated");
40
+ await tx.insert(messages).values({
41
+ id: messageId,
42
+ chatId: input.chatId,
43
+ sequence: messageMutation.messageSequence,
44
+ changePts: messageMutation.pts,
45
+ senderUserId: input.actorUserId,
46
+ kind: "automated",
47
+ text: `@${context.agentUsername}'s reasoning effort changed to ${input.effort}`,
48
+ contentJson: JSON.stringify({
49
+ service: {
50
+ type: "agent_effort_changed",
51
+ agentUserId: input.agentUserId,
52
+ effort: input.effort,
53
+ },
54
+ }),
55
+ publishedAt: sql `CURRENT_TIMESTAMP`,
43
56
  });
44
57
  await chatAppendAudit(tx, {
45
58
  actorUserId: input.actorUserId,
46
- action: "agent.effort_changed",
59
+ action: "agent.chat_effort_changed",
47
60
  targetType: "user",
48
61
  targetId: input.agentUserId,
62
+ chatId: input.chatId,
49
63
  before: {
50
- effort: context.effort,
64
+ effort: currentEffort,
51
65
  },
52
66
  after: {
53
67
  effort: input.effort,
54
68
  },
55
69
  });
56
- const [user] = await tx
57
- .select(userSelection)
58
- .from(users)
59
- .where(eq(users.id, input.agentUserId));
60
- if (!user)
61
- throw new Error("Updated agent is missing");
62
70
  return {
63
- user: asUser(user),
64
- hint: areaHint(sequence, "users"),
71
+ hint: {
72
+ sequence: String(sequence),
73
+ chats: [
74
+ {
75
+ chatId: input.chatId,
76
+ pts: String(messageMutation.pts),
77
+ },
78
+ ],
79
+ areas: [],
80
+ },
65
81
  };
66
82
  });
67
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentEffortUpdate.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentEffortUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAuC,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,QAAyB,EACzB,KAIC;IAKD,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE;iBAClB,MAAM,CAAC,aAAa,CAAC;iBACrB,IAAI,CAAC,KAAK,CAAC;iBACX,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC7D,OAAO;gBACH,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;aACrB,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE;aACH,MAAM,CAAC,KAAK,CAAC;aACb,GAAG,CAAC;YACD,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,YAAY,EAAE,QAAQ;SACzB,CAAC;aACD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,sBAAsB;YAC9B,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,MAAM,EAAE;gBACJ,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB;YACD,KAAK,EAAE;gBACH,MAAM,EAAE,KAAK,CAAC,MAAM;aACvB;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE;aAClB,MAAM,CAAC,aAAa,CAAC;aACrB,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvD,OAAO;YACH,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;SACpC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentEffortUpdate.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentEffortUpdate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type MutationHint, type UserSummary } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Applies an administrator-approved image change to the agent's users identity and any affected agentRigBindings.
4
+ * Applies an assignImagesToChats-authorized change to the agent's users identity and affected agentRigBindings.
5
5
  * The shared commit keeps future runs, synchronized clients, and the audit trail aligned on the same effective image.
6
6
  */
7
7
  export declare function agentImageCommitChange(executor: DrizzleExecutor, input: {
@@ -9,14 +9,14 @@ import { userSelection } from "../chat/userSelection.js";
9
9
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
10
10
  import { syncEventInsert } from "../sync/syncEventInsert.js";
11
11
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
12
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
12
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
13
13
  /**
14
- * Applies an administrator-approved image change to the agent's users identity and any affected agentRigBindings.
14
+ * Applies an assignImagesToChats-authorized change to the agent's users identity and affected agentRigBindings.
15
15
  * The shared commit keeps future runs, synchronized clients, and the audit trail aligned on the same effective image.
16
16
  */
17
17
  export async function agentImageCommitChange(executor, input) {
18
18
  return withTransaction(executor, async (tx) => {
19
- await userRequireServerAdmin(tx, input.actorUserId);
19
+ await userRequirePermission(tx, input.actorUserId, "assignImagesToChats");
20
20
  const [agent] = await tx
21
21
  .select(userSelection)
22
22
  .from(users)
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageCommitChange.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageCommitChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentImageCommitChange.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageCommitChange.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type AgentImageSummary, type MutationHint } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Creates an administrator-owned agentImages definition with validated build inputs and an initial lifecycle state.
4
+ * Creates a manageImages-authorized agentImages definition with validated build inputs and an initial lifecycle state.
5
5
  * Emitting its sync and audit records in the same transaction makes the new definition discoverable only as an authorized operation.
6
6
  */
7
7
  export declare function agentImageCreate(executor: DrizzleExecutor, input: {
@@ -11,14 +11,14 @@ import { text } from "../chat/text.js";
11
11
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
12
12
  import { syncEventInsert } from "../sync/syncEventInsert.js";
13
13
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
14
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
14
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
15
15
  /**
16
- * Creates an administrator-owned agentImages definition with validated build inputs and an initial lifecycle state.
16
+ * Creates a manageImages-authorized agentImages definition with validated build inputs and an initial lifecycle state.
17
17
  * Emitting its sync and audit records in the same transaction makes the new definition discoverable only as an authorized operation.
18
18
  */
19
19
  export async function agentImageCreate(executor, input) {
20
20
  return withTransaction(executor, async (tx) => {
21
- await userRequireServerAdmin(tx, input.actorUserId);
21
+ await userRequirePermission(tx, input.actorUserId, "manageImages");
22
22
  let created;
23
23
  try {
24
24
  [created] = await tx
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageCreate.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageCreate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentImageCreate.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageCreate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type AgentImageDetails } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Returns full details for an agent image after requiring an active server administrator.
4
+ * Returns full details for an agent image to a caller allowed to manage images or assign them to chats.
5
5
  * Hiding internal images and inaccessible identifiers as not-found keeps build configuration separate from runtime-owned definitions.
6
6
  */
7
7
  export declare function agentImageGet(executor: DrizzleExecutor, actorUserId: string, imageId: string): Promise<AgentImageDetails>;
@@ -4,13 +4,13 @@ import { agentImageDetailsSelection } from "./impl/agentImageDetailsSelection.js
4
4
  import { agentImages } from "../schema.js";
5
5
  import { eq } from "drizzle-orm";
6
6
  import { asAgentImageDetails } from "./impl/asAgentImageDetails.js";
7
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
7
+ import { userRequireAnyPermission } from "../permission/userRequireAnyPermission.js";
8
8
  /**
9
- * Returns full details for an agent image after requiring an active server administrator.
9
+ * Returns full details for an agent image to a caller allowed to manage images or assign them to chats.
10
10
  * Hiding internal images and inaccessible identifiers as not-found keeps build configuration separate from runtime-owned definitions.
11
11
  */
12
12
  export async function agentImageGet(executor, actorUserId, imageId) {
13
- await userRequireServerAdmin(executor, actorUserId);
13
+ await userRequireAnyPermission(executor, actorUserId, ["manageImages", "assignImagesToChats"]);
14
14
  const [image] = await executor
15
15
  .select(agentImageDetailsSelection)
16
16
  .from(agentImages)
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageGet.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGet.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,QAAyB,EACzB,WAAmB,EACnB,OAAe;IAEf,MAAM,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ;SACzB,MAAM,CAAC,0BAA0B,CAAC;SAClC,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IACnF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"agentImageGet.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGet.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,QAAyB,EACzB,WAAmB,EACnB,OAAe;IAEf,MAAM,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ;SACzB,MAAM,CAAC,0BAA0B,CAAC;SAClC,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IACnF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type UserSummary } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Validates an administrator-requested image change against a live agent, a ready target image, all Rig bindings, and unfinished turns.
4
+ * Validates an assignImagesToChats-authorized change against a live agent, a ready image, all Rig bindings, and unfinished turns.
5
5
  * Rejecting a different image while work is pending prevents the later mutation from switching the execution substrate beneath an active turn.
6
6
  */
7
7
  export declare function agentImageGetChangeContext(executor: DrizzleExecutor, input: {
@@ -13,6 +13,7 @@ export declare function agentImageGetChangeContext(executor: DrizzleExecutor, in
13
13
  chatId: string;
14
14
  containerName: string;
15
15
  cwd: string;
16
+ effort?: string;
16
17
  sessionId: string;
17
18
  }>;
18
19
  currentImageId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageGetChangeContext.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetChangeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAWrD;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB,GACF,OAAO,CAAC;IACP,QAAQ,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC,CAuED"}
1
+ {"version":3,"file":"agentImageGetChangeContext.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetChangeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAWrD;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB,GACF,OAAO,CAAC;IACP,QAAQ,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC,CA8ED"}
@@ -5,13 +5,13 @@ import { and, eq, inArray, isNull } from "drizzle-orm";
5
5
  import { asUser } from "../chat/asUser.js";
6
6
  import { optionalText } from "../chat/optionalText.js";
7
7
  import { userSelection } from "../chat/userSelection.js";
8
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
8
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
9
9
  /**
10
- * Validates an administrator-requested image change against a live agent, a ready target image, all Rig bindings, and unfinished turns.
10
+ * Validates an assignImagesToChats-authorized change against a live agent, a ready image, all Rig bindings, and unfinished turns.
11
11
  * Rejecting a different image while work is pending prevents the later mutation from switching the execution substrate beneath an active turn.
12
12
  */
13
13
  export async function agentImageGetChangeContext(executor, input) {
14
- await userRequireServerAdmin(executor, input.actorUserId);
14
+ await userRequirePermission(executor, input.actorUserId, "assignImagesToChats");
15
15
  const [agent, image, bindings, unfinished] = await Promise.all([
16
16
  executor
17
17
  .select(userSelection)
@@ -35,6 +35,7 @@ export async function agentImageGetChangeContext(executor, input) {
35
35
  chatId: agentRigBindings.chatId,
36
36
  containerName: agentRigBindings.containerName,
37
37
  cwd: agentRigBindings.cwd,
38
+ effort: agentRigBindings.effort,
38
39
  sessionId: agentRigBindings.sessionId,
39
40
  })
40
41
  .from(agentRigBindings)
@@ -61,7 +62,13 @@ export async function agentImageGetChangeContext(executor, input) {
61
62
  if (unfinished && currentImageId !== image.id)
62
63
  throw new CollaborationError("conflict", "Agent image cannot be changed while the agent has unfinished work");
63
64
  return {
64
- bindings,
65
+ bindings: bindings.map((binding) => ({
66
+ chatId: binding.chatId,
67
+ containerName: binding.containerName,
68
+ cwd: binding.cwd,
69
+ ...(binding.effort ? { effort: binding.effort } : {}),
70
+ sessionId: binding.sessionId,
71
+ })),
65
72
  currentImageId,
66
73
  image: {
67
74
  id: image.id,
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageGetChangeContext.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetChangeContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentImageGetChangeContext.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetChangeContext.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type AgentImageSummary } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Lists agent images in creation order and the optional configured default after requiring server-administrator access.
5
- * Reading settings and definitions as one response gives management clients the exact selection context without exposing internal images.
4
+ * Lists agent images and the configured default to a caller allowed to manage images, assign them to chats, or select a runtime for plugin installation.
5
+ * Reading summaries as one response gives each authorized selection surface exact context without granting image mutation authority.
6
6
  */
7
7
  export declare function agentImageList(executor: DrizzleExecutor, actorUserId: string): Promise<{
8
8
  defaultImageId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageList.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAOrD;;;GAGG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC,CAuBD"}
1
+ {"version":3,"file":"agentImageList.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAOrD;;;GAGG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC,CA2BD"}
@@ -4,13 +4,17 @@ import { agentImageSelection } from "./impl/agentImageSelection.js";
4
4
  import { agentImages, agentImageSettings } from "../schema.js";
5
5
  import { asAgentImage } from "./impl/asAgentImage.js";
6
6
  import { eq } from "drizzle-orm";
7
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
7
+ import { userRequireAnyPermission } from "../permission/userRequireAnyPermission.js";
8
8
  /**
9
- * Lists agent images in creation order and the optional configured default after requiring server-administrator access.
10
- * Reading settings and definitions as one response gives management clients the exact selection context without exposing internal images.
9
+ * Lists agent images and the configured default to a caller allowed to manage images, assign them to chats, or select a runtime for plugin installation.
10
+ * Reading summaries as one response gives each authorized selection surface exact context without granting image mutation authority.
11
11
  */
12
12
  export async function agentImageList(executor, actorUserId) {
13
- await userRequireServerAdmin(executor, actorUserId);
13
+ await userRequireAnyPermission(executor, actorUserId, [
14
+ "manageImages",
15
+ "assignImagesToChats",
16
+ "managePlugins",
17
+ ]);
14
18
  const [settings, images] = await Promise.all([
15
19
  executor
16
20
  .select({
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageList.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,QAAyB,EACzB,WAAmB;IAKnB,MAAM,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ;aACH,MAAM,CAAC;YACJ,cAAc,EAAE,kBAAkB,CAAC,cAAc;SACpD,CAAC;aACD,IAAI,CAAC,kBAAkB,CAAC;aACxB,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC,mBAAmB,CAAC;aAC3B,IAAI,CAAC,WAAW,CAAC;aACjB,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,OAAO;QACH,GAAG,CAAC,QAAQ,EAAE,cAAc;YACxB,CAAC,CAAC;gBACI,cAAc,EAAE,QAAQ,CAAC,cAAc;aAC1C;YACH,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;KACnC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"agentImageList.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,QAAyB,EACzB,WAAmB;IAKnB,MAAM,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE;QAClD,cAAc;QACd,qBAAqB;QACrB,eAAe;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ;aACH,MAAM,CAAC;YACJ,cAAc,EAAE,kBAAkB,CAAC,cAAc;SACpD,CAAC;aACD,IAAI,CAAC,kBAAkB,CAAC;aACxB,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC,mBAAmB,CAAC;aAC3B,IAAI,CAAC,WAAW,CAAC;aACjB,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,OAAO;QACH,GAAG,CAAC,QAAQ,EAAE,cAAc;YACxB,CAAC,CAAC;gBACI,cAAc,EAAE,QAAQ,CAAC,cAAc;aAC1C;YACH,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;KACnC,CAAC;AACN,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type AgentImageSummary, type MutationHint } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Queues an administrator-selected agentImages definition for a fresh build and resets its prior terminal output.
4
+ * Queues a manageImages-authorized agentImages definition for a fresh build and resets its prior terminal output.
5
5
  * Recording the lifecycle transition with its audit and sync evidence gives workers and clients one authoritative build request.
6
6
  */
7
7
  export declare function agentImageRequestBuild(executor: DrizzleExecutor, input: {
@@ -8,14 +8,14 @@ import { asAgentImage } from "./impl/asAgentImage.js";
8
8
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
9
9
  import { syncEventInsert } from "../sync/syncEventInsert.js";
10
10
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
11
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
11
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
12
12
  /**
13
- * Queues an administrator-selected agentImages definition for a fresh build and resets its prior terminal output.
13
+ * Queues a manageImages-authorized agentImages definition for a fresh build and resets its prior terminal output.
14
14
  * Recording the lifecycle transition with its audit and sync evidence gives workers and clients one authoritative build request.
15
15
  */
16
16
  export async function agentImageRequestBuild(executor, input) {
17
17
  return withTransaction(executor, async (tx) => {
18
- await userRequireServerAdmin(tx, input.actorUserId);
18
+ await userRequirePermission(tx, input.actorUserId, "manageImages");
19
19
  const [current] = await tx
20
20
  .select({
21
21
  status: agentImages.status,
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageRequestBuild.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageRequestBuild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentImageRequestBuild.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageRequestBuild.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type AgentImageSummary, type MutationHint } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Selects a ready image in agentImageSettings as the server default after administrator authorization.
4
+ * Selects a ready image in agentImageSettings as the server default after manageImages authorization.
5
5
  * Coupling the setting with sync and audit records prevents clients from seeing an unexplained default-image change.
6
6
  */
7
7
  export declare function agentImageSetDefault(executor: DrizzleExecutor, input: {
@@ -8,14 +8,14 @@ import { asAgentImage } from "./impl/asAgentImage.js";
8
8
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
9
9
  import { syncEventInsert } from "../sync/syncEventInsert.js";
10
10
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
11
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
11
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
12
12
  /**
13
- * Selects a ready image in agentImageSettings as the server default after administrator authorization.
13
+ * Selects a ready image in agentImageSettings as the server default after manageImages authorization.
14
14
  * Coupling the setting with sync and audit records prevents clients from seeing an unexplained default-image change.
15
15
  */
16
16
  export async function agentImageSetDefault(executor, input) {
17
17
  return withTransaction(executor, async (tx) => {
18
- await userRequireServerAdmin(tx, input.actorUserId);
18
+ await userRequirePermission(tx, input.actorUserId, "manageImages");
19
19
  const [image] = await tx
20
20
  .select(agentImageSelection)
21
21
  .from(agentImages)
@@ -1 +1 @@
1
- {"version":3,"file":"agentImageSetDefault.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageSetDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAAyB,EACzB,KAGC;IAKD,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,mBAAmB,CAAC;aAC3B,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aACxC,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe;YAClD,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,6CAA6C,CAAC,CAAC;QAC5F,MAAM,EAAE;aACH,MAAM,CAAC,kBAAkB,CAAC;aAC1B,GAAG,CAAC;YACD,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,eAAe,EAAE,KAAK,CAAC,WAAW;YAClC,SAAS,EAAE,GAAG,CAAA,mBAAmB;SACpC,CAAC;aACD,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,8BAA8B;YACtC,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,OAAO;YACH,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;YACxC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;SAC7B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentImageSetDefault.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageSetDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAAyB,EACzB,KAGC;IAKD,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,mBAAmB,CAAC;aAC3B,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aACxC,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe;YAClD,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,6CAA6C,CAAC,CAAC;QAC5F,MAAM,EAAE;aACH,MAAM,CAAC,kBAAkB,CAAC;aAC1B,GAAG,CAAC;YACD,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,eAAe,EAAE,KAAK,CAAC,WAAW;YAClC,SAAS,EAAE,GAAG,CAAA,mBAAmB;SACpC,CAAC;aACD,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,8BAA8B;YACtC,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,4BAA4B;YAClC,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,OAAO;YACH,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;YACxC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;SAC7B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type DrizzleExecutor } from "../drizzle.js";
2
2
  import { type MutationHint } from "../chat/types.js";
3
3
  /**
4
- * Removes every agentSecretAgentAssignments or agentSecretChannelAssignments row identified by an administrator-owned assignment.
4
+ * Removes all agentSecretAgentAssignments and agentSecretChannelAssignments for one secret after requiring manageSecrets permission.
5
5
  * Deleting the assignment alongside sync and audit evidence makes secret access disappear as one reviewable authorization change.
6
6
  */
7
7
  export declare function agentSecretAssignmentDelete(executor: DrizzleExecutor, input: {
@@ -6,14 +6,14 @@ import { eq } from "drizzle-orm";
6
6
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
7
7
  import { syncEventInsert } from "../sync/syncEventInsert.js";
8
8
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
9
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
9
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
10
10
  /**
11
- * Removes every agentSecretAgentAssignments or agentSecretChannelAssignments row identified by an administrator-owned assignment.
11
+ * Removes all agentSecretAgentAssignments and agentSecretChannelAssignments for one secret after requiring manageSecrets permission.
12
12
  * Deleting the assignment alongside sync and audit evidence makes secret access disappear as one reviewable authorization change.
13
13
  */
14
14
  export async function agentSecretAssignmentDelete(executor, input) {
15
15
  return withTransaction(executor, async (tx) => {
16
- await userRequireServerAdmin(tx, input.actorUserId);
16
+ await userRequirePermission(tx, input.actorUserId, "manageSecrets");
17
17
  await tx
18
18
  .delete(agentSecretAgentAssignments)
19
19
  .where(eq(agentSecretAgentAssignments.secretId, input.secretId));
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretAssignmentDelete.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAssignmentDelete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,QAAyB,EACzB,KAGC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,EAAE;aACH,MAAM,CAAC,2BAA2B,CAAC;aACnC,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,EAAE;aACH,MAAM,CAAC,6BAA6B,CAAC;aACrC,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,sBAAsB;YAC9B,UAAU,EAAE,cAAc;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentSecretAssignmentDelete.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAssignmentDelete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,QAAyB,EACzB,KAGC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACpE,MAAM,EAAE;aACH,MAAM,CAAC,2BAA2B,CAAC;aACnC,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,EAAE;aACH,MAAM,CAAC,6BAA6B,CAAC;aACrC,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,sBAAsB;YAC9B,UAAU,EAAE,cAAc;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type AgentSecretAssignment } from "./impl/agentSecretAssignment.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Groups all direct-agent and channel secret assignments by secret identifier for an active server administrator.
4
+ * Groups secret assignments for a caller allowed to manage secrets or assign them to agents and channels.
5
5
  * Sorting both source rows and the merged result gives management clients stable agent and channel membership lists for each secret.
6
6
  */
7
7
  export declare function agentSecretAssignmentList(executor: DrizzleExecutor, actorUserId: string): Promise<AgentSecretAssignment[]>;
@@ -1,13 +1,13 @@
1
1
  import {} from "./impl/agentSecretAssignment.js";
2
2
  import {} from "../drizzle.js";
3
3
  import { agentSecretAgentAssignments, agentSecretChannelAssignments } from "../schema.js";
4
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
4
+ import { userRequireAnyPermission } from "../permission/userRequireAnyPermission.js";
5
5
  /**
6
- * Groups all direct-agent and channel secret assignments by secret identifier for an active server administrator.
6
+ * Groups secret assignments for a caller allowed to manage secrets or assign them to agents and channels.
7
7
  * Sorting both source rows and the merged result gives management clients stable agent and channel membership lists for each secret.
8
8
  */
9
9
  export async function agentSecretAssignmentList(executor, actorUserId) {
10
- await userRequireServerAdmin(executor, actorUserId);
10
+ await userRequireAnyPermission(executor, actorUserId, ["manageSecrets", "assignSecrets"]);
11
11
  const [agentRows, channelRows] = await Promise.all([
12
12
  executor
13
13
  .select({
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretAssignmentList.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAssignmentList.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,QAAyB,EACzB,WAAmB;IAEnB,MAAM,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/C,QAAQ;aACH,MAAM,CAAC;YACJ,QAAQ,EAAE,2BAA2B,CAAC,QAAQ;YAC9C,WAAW,EAAE,2BAA2B,CAAC,WAAW;SACvD,CAAC;aACD,IAAI,CAAC,2BAA2B,CAAC;aACjC,OAAO,CAAC,2BAA2B,CAAC,QAAQ,EAAE,2BAA2B,CAAC,WAAW,CAAC;QAC3F,QAAQ;aACH,MAAM,CAAC;YACJ,QAAQ,EAAE,6BAA6B,CAAC,QAAQ;YAChD,SAAS,EAAE,6BAA6B,CAAC,MAAM;SAClD,CAAC;aACD,IAAI,CAAC,6BAA6B,CAAC;aACnC,OAAO,CAAC,6BAA6B,CAAC,QAAQ,EAAE,6BAA6B,CAAC,MAAM,CAAC;KAC7F,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC7D,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC7B,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG;gBACT,QAAQ;gBACR,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClF,KAAK,MAAM,GAAG,IAAI,WAAW;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAClD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9C,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"agentSecretAssignmentList.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAssignmentList.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,QAAyB,EACzB,WAAmB;IAEnB,MAAM,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/C,QAAQ;aACH,MAAM,CAAC;YACJ,QAAQ,EAAE,2BAA2B,CAAC,QAAQ;YAC9C,WAAW,EAAE,2BAA2B,CAAC,WAAW;SACvD,CAAC;aACD,IAAI,CAAC,2BAA2B,CAAC;aACjC,OAAO,CAAC,2BAA2B,CAAC,QAAQ,EAAE,2BAA2B,CAAC,WAAW,CAAC;QAC3F,QAAQ;aACH,MAAM,CAAC;YACJ,QAAQ,EAAE,6BAA6B,CAAC,QAAQ;YAChD,SAAS,EAAE,6BAA6B,CAAC,MAAM;SAClD,CAAC;aACD,IAAI,CAAC,6BAA6B,CAAC;aACnC,OAAO,CAAC,6BAA6B,CAAC,QAAQ,EAAE,6BAA6B,CAAC,MAAM,CAAC;KAC7F,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC7D,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC7B,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG;gBACT,QAAQ;gBACR,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClF,KAAK,MAAM,GAAG,IAAI,WAAW;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAClD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9C,CAAC;AACN,CAAC"}