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,7 +1,7 @@
1
1
  import { type MutationHint } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Grants an agent access to a secret by inserting the unique agentSecretAgentAssignments relationship after administrator checks.
4
+ * Grants an agent access by inserting agentSecretAgentAssignments after requiring assignSecrets permission.
5
5
  * Keeping the grant, audit entry, and sync event together prevents silent expansion of an agent's runtime credentials.
6
6
  */
7
7
  export declare function agentSecretAttachToAgent(executor: DrizzleExecutor, input: {
@@ -6,14 +6,14 @@ import { areaHint } from "../chat/areaHint.js";
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
- * Grants an agent access to a secret by inserting the unique agentSecretAgentAssignments relationship after administrator checks.
11
+ * Grants an agent access by inserting agentSecretAgentAssignments after requiring assignSecrets permission.
12
12
  * Keeping the grant, audit entry, and sync event together prevents silent expansion of an agent's runtime credentials.
13
13
  */
14
14
  export async function agentSecretAttachToAgent(executor, input) {
15
15
  return withTransaction(executor, async (tx) => {
16
- await userRequireServerAdmin(tx, input.actorUserId);
16
+ await userRequirePermission(tx, input.actorUserId, "assignSecrets");
17
17
  const [agent] = await tx
18
18
  .select({
19
19
  id: users.id,
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretAttachToAgent.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAttachToAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,wBAAwB,CAC1C,QAAyB,EACzB,KAIC;IAED,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;YACJ,EAAE,EAAE,KAAK,CAAC,EAAE;SACf,CAAC;aACD,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CACF,GAAG,CACC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,EAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B,CACJ;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,2BAA2B,CAAC;aACnC,MAAM,CAAC;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,WAAW;SACrC,CAAC;aACD,mBAAmB,EAAE;aACrB,SAAS,CAAC;YACP,QAAQ,EAAE,2BAA2B,CAAC,QAAQ;SACjD,CAAC,CAAC;QACP,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,6BAA6B;YACnC,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,gCAAgC;YACxC,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentSecretAttachToAgent.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAttachToAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,wBAAwB,CAC1C,QAAyB,EACzB,KAIC;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,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC;YACJ,EAAE,EAAE,KAAK,CAAC,EAAE;SACf,CAAC;aACD,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CACF,GAAG,CACC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,EAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B,CACJ;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,2BAA2B,CAAC;aACnC,MAAM,CAAC;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,WAAW;SACrC,CAAC;aACD,mBAAmB,EAAE;aACrB,SAAS,CAAC;YACP,QAAQ,EAAE,2BAA2B,CAAC,QAAQ;SACjD,CAAC,CAAC;QACP,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,6BAA6B;YACnC,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,gCAAgC;YACxC,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,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 MutationHint } from "../chat/types.js";
2
2
  import { type DrizzleExecutor } from "../drizzle.js";
3
3
  /**
4
- * Grants a secret identifier to an existing channel through agentSecretChannelAssignments after validating server-administrator authority and channel eligibility.
4
+ * Grants a secret to an eligible channel through agentSecretChannelAssignments after requiring assignSecrets permission.
5
5
  * The assignment, audit entry, and sync event commit together so the resulting credential exposure is never silent or partially reported.
6
6
  */
7
7
  export declare function agentSecretAttachToChannel(executor: DrizzleExecutor, input: {
@@ -6,14 +6,14 @@ import { areaHint } from "../chat/areaHint.js";
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
- * Grants a secret identifier to an existing channel through agentSecretChannelAssignments after validating server-administrator authority and channel eligibility.
11
+ * Grants a secret to an eligible channel through agentSecretChannelAssignments after requiring assignSecrets permission.
12
12
  * The assignment, audit entry, and sync event commit together so the resulting credential exposure is never silent or partially reported.
13
13
  */
14
14
  export async function agentSecretAttachToChannel(executor, input) {
15
15
  return withTransaction(executor, async (tx) => {
16
- await userRequireServerAdmin(tx, input.actorUserId);
16
+ await userRequirePermission(tx, input.actorUserId, "assignSecrets");
17
17
  const [channel] = await tx
18
18
  .select({
19
19
  id: chats.id,
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretAttachToChannel.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAttachToChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,0BAA0B,CAC5C,QAAyB,EACzB,KAIC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;aACrB,MAAM,CAAC;YACJ,EAAE,EAAE,KAAK,CAAC,EAAE;SACf,CAAC;aACD,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CACF,GAAG,CACC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,EAC1D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B,CACJ;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,6BAA6B,CAAC;aACrC,MAAM,CAAC;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,eAAe,EAAE,KAAK,CAAC,WAAW;SACrC,CAAC;aACD,mBAAmB,EAAE;aACrB,SAAS,CAAC;YACP,QAAQ,EAAE,6BAA6B,CAAC,QAAQ;SACnD,CAAC,CAAC;QACP,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,+BAA+B;YACrC,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,kCAAkC;YAC1C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentSecretAttachToChannel.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAttachToChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,0BAA0B,CAC5C,QAAyB,EACzB,KAIC;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,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;aACrB,MAAM,CAAC;YACJ,EAAE,EAAE,KAAK,CAAC,EAAE;SACf,CAAC;aACD,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CACF,GAAG,CACC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,EAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,EAC1D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B,CACJ;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,6BAA6B,CAAC;aACrC,MAAM,CAAC;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,eAAe,EAAE,KAAK,CAAC,WAAW;SACrC,CAAC;aACD,mBAAmB,EAAE;aACrB,SAAS,CAAC;YACP,QAAQ,EAAE,6BAA6B,CAAC,QAAQ;SACnD,CAAC,CAAC;QACP,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,+BAA+B;YACrC,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,kCAAkC;YAC1C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { type DrizzleExecutor } from "../drizzle.js";
2
+ import type { Permission } from "../permission/types.js";
2
3
  /**
3
- * Requires the actor to have an active profile and server-administrator role before any agent-secret management operation proceeds.
4
- * A shared authorization entry point keeps secret assignment routes from drifting to weaker account or profile checks.
4
+ * Requires the actor's requested secret-management capability before any external Rig secret operation proceeds.
5
+ * A shared authorization entry point keeps non-database secret lifecycle work aligned with the same grants enforced by durable actions.
5
6
  */
6
- export declare function agentSecretAuthorizeManagement(executor: DrizzleExecutor, actorUserId: string): Promise<void>;
7
+ export declare function agentSecretAuthorizeManagement(executor: DrizzleExecutor, actorUserId: string, permission: Extract<Permission, "manageSecrets" | "assignSecrets">): Promise<void>;
7
8
  //# sourceMappingURL=agentSecretAuthorizeManagement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretAuthorizeManagement.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAuthorizeManagement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;GAGG;AACH,wBAAsB,8BAA8B,CAChD,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"agentSecretAuthorizeManagement.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAuthorizeManagement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD;;;GAGG;AACH,wBAAsB,8BAA8B,CAChD,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,GAAG,eAAe,CAAC,GACnE,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -1,10 +1,10 @@
1
1
  import {} from "../drizzle.js";
2
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
2
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
3
3
  /**
4
- * Requires the actor to have an active profile and server-administrator role before any agent-secret management operation proceeds.
5
- * A shared authorization entry point keeps secret assignment routes from drifting to weaker account or profile checks.
4
+ * Requires the actor's requested secret-management capability before any external Rig secret operation proceeds.
5
+ * A shared authorization entry point keeps non-database secret lifecycle work aligned with the same grants enforced by durable actions.
6
6
  */
7
- export async function agentSecretAuthorizeManagement(executor, actorUserId) {
8
- await userRequireServerAdmin(executor, actorUserId);
7
+ export async function agentSecretAuthorizeManagement(executor, actorUserId, permission) {
8
+ await userRequirePermission(executor, actorUserId, permission);
9
9
  }
10
10
  //# sourceMappingURL=agentSecretAuthorizeManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretAuthorizeManagement.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAuthorizeManagement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,QAAyB,EACzB,WAAmB;IAEnB,MAAM,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"agentSecretAuthorizeManagement.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretAuthorizeManagement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,QAAyB,EACzB,WAAmB,EACnB,UAAkE;IAElE,MAAM,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACnE,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
- * Revokes a direct agent secret grant by deleting its agentSecretAgentAssignments row under administrator authorization.
4
+ * Revokes a direct grant by deleting agentSecretAgentAssignments after requiring assignSecrets permission.
5
5
  * Publishing revocation and audit evidence in the same commit ensures future runs cannot retain a grant clients still believe exists.
6
6
  */
7
7
  export declare function agentSecretDetachFromAgent(executor: DrizzleExecutor, input: {
@@ -6,14 +6,14 @@ import { areaHint } from "../chat/areaHint.js";
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
- * Revokes a direct agent secret grant by deleting its agentSecretAgentAssignments row under administrator authorization.
11
+ * Revokes a direct grant by deleting agentSecretAgentAssignments after requiring assignSecrets permission.
12
12
  * Publishing revocation and audit evidence in the same commit ensures future runs cannot retain a grant clients still believe exists.
13
13
  */
14
14
  export async function agentSecretDetachFromAgent(executor, input) {
15
15
  return withTransaction(executor, async (tx) => {
16
- await userRequireServerAdmin(tx, input.actorUserId);
16
+ await userRequirePermission(tx, input.actorUserId, "assignSecrets");
17
17
  const removed = await tx
18
18
  .delete(agentSecretAgentAssignments)
19
19
  .where(and(eq(agentSecretAgentAssignments.secretId, input.secretId), eq(agentSecretAgentAssignments.agentUserId, input.agentUserId)))
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretDetachFromAgent.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretDetachFromAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,0BAA0B,CAC5C,QAAyB,EACzB,KAIC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,2BAA2B,CAAC;aACnC,KAAK,CACF,GAAG,CACC,EAAE,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EACxD,EAAE,CAAC,2BAA2B,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CACjE,CACJ;aACA,SAAS,CAAC;YACP,QAAQ,EAAE,2BAA2B,CAAC,QAAQ;SACjD,CAAC,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,+BAA+B;YACrC,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,kCAAkC;YAC1C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentSecretDetachFromAgent.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretDetachFromAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,0BAA0B,CAC5C,QAAyB,EACzB,KAIC;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,OAAO,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,2BAA2B,CAAC;aACnC,KAAK,CACF,GAAG,CACC,EAAE,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EACxD,EAAE,CAAC,2BAA2B,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CACjE,CACJ;aACA,SAAS,CAAC;YACP,QAAQ,EAAE,2BAA2B,CAAC,QAAQ;SACjD,CAAC,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,+BAA+B;YACrC,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,kCAAkC;YAC1C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type DrizzleExecutor } from "../drizzle.js";
2
2
  import { type MutationHint } from "../chat/types.js";
3
3
  /**
4
- * Revokes a channel's secret grant by removing the selected agentSecretChannelAssignments relationship after authorization.
5
- * The shared audit and sync transition makes the loss of runtime access immediate and attributable to its administrator.
4
+ * Revokes a channel grant from agentSecretChannelAssignments after requiring assignSecrets permission.
5
+ * The shared audit and sync transition makes the loss of runtime access immediate and attributable.
6
6
  */
7
7
  export declare function agentSecretDetachFromChannel(executor: DrizzleExecutor, input: {
8
8
  actorUserId: string;
@@ -6,14 +6,14 @@ import { areaHint } from "../chat/areaHint.js";
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
- * Revokes a channel's secret grant by removing the selected agentSecretChannelAssignments relationship after authorization.
12
- * The shared audit and sync transition makes the loss of runtime access immediate and attributable to its administrator.
11
+ * Revokes a channel grant from agentSecretChannelAssignments after requiring assignSecrets permission.
12
+ * The shared audit and sync transition makes the loss of runtime access immediate and attributable.
13
13
  */
14
14
  export async function agentSecretDetachFromChannel(executor, input) {
15
15
  return withTransaction(executor, async (tx) => {
16
- await userRequireServerAdmin(tx, input.actorUserId);
16
+ await userRequirePermission(tx, input.actorUserId, "assignSecrets");
17
17
  const removed = await tx
18
18
  .delete(agentSecretChannelAssignments)
19
19
  .where(and(eq(agentSecretChannelAssignments.secretId, input.secretId), eq(agentSecretChannelAssignments.chatId, input.channelId)))
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretDetachFromChannel.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretDetachFromChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,4BAA4B,CAC9C,QAAyB,EACzB,KAIC;IAED,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,6BAA6B,CAAC;aACrC,KAAK,CACF,GAAG,CACC,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAC1D,EAAE,CAAC,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAC5D,CACJ;aACA,SAAS,CAAC;YACP,QAAQ,EAAE,6BAA6B,CAAC,QAAQ;SACnD,CAAC,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,iCAAiC;YACvC,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,oCAAoC;YAC5C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"agentSecretDetachFromChannel.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretDetachFromChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,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,4BAA4B,CAC9C,QAAyB,EACzB,KAIC;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,OAAO,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,6BAA6B,CAAC;aACrC,KAAK,CACF,GAAG,CACC,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAC1D,EAAE,CAAC,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAC5D,CACJ;aACA,SAAS,CAAC;YACP,QAAQ,EAAE,6BAA6B,CAAC,QAAQ;SACnD,CAAC,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,iCAAiC;YACvC,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,oCAAoC;YAC5C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,KAAK,EAAE;gBACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;aAC3B;SACJ,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 DrizzleExecutor } from "../drizzle.js";
2
2
  import { type MutationHint } from "../chat/types.js";
3
3
  /**
4
- * Records an administrator-authorized agent-secret registration as a global sync event and audit entry.
4
+ * Records a manageSecrets-authorized agent-secret registration as a global sync event and audit entry.
5
5
  * The transaction keeps both durable records on the same sequence so observers cannot see an unaudited registration signal.
6
6
  */
7
7
  export declare function agentSecretRecordRegistration(executor: DrizzleExecutor, input: {
@@ -4,14 +4,14 @@ import { areaHint } from "../chat/areaHint.js";
4
4
  import { chatAppendAudit } from "../chat/chatAppendAudit.js";
5
5
  import { syncEventInsert } from "../sync/syncEventInsert.js";
6
6
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
7
- import { userRequireServerAdmin } from "../chat/userRequireServerAdmin.js";
7
+ import { userRequirePermission } from "../permission/userRequirePermission.js";
8
8
  /**
9
- * Records an administrator-authorized agent-secret registration as a global sync event and audit entry.
9
+ * Records a manageSecrets-authorized agent-secret registration as a global sync event and audit entry.
10
10
  * The transaction keeps both durable records on the same sequence so observers cannot see an unaudited registration signal.
11
11
  */
12
12
  export async function agentSecretRecordRegistration(executor, input) {
13
13
  return withTransaction(executor, async (tx) => {
14
- await userRequireServerAdmin(tx, input.actorUserId);
14
+ await userRequirePermission(tx, input.actorUserId, "manageSecrets");
15
15
  const sequence = await syncSequenceNext(tx);
16
16
  await syncEventInsert(tx, {
17
17
  sequence,
@@ -1 +1 @@
1
- {"version":3,"file":"agentSecretRecordRegistration.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretRecordRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,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,6BAA6B,CAC/C,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,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,wBAAwB;YAC9B,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,yBAAyB;YACjC,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":"agentSecretRecordRegistration.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentSecretRecordRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,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,6BAA6B,CAC/C,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,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,CAAC,EAAE,EAAE;YACtB,QAAQ;YACR,IAAI,EAAE,wBAAwB;YAC9B,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,yBAAyB;YACjC,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,5 +1,6 @@
1
1
  import { type DrizzleExecutor } from "../drizzle.js";
2
2
  import { type MessageSummary, type MutationHint } from "../chat/types.js";
3
+ import type { AgentTurnBackgroundTerminalSummary, AgentTurnSubagentSummary, AgentTurnTraceUpdate } from "./types.js";
3
4
  /**
4
5
  * Applies the next leased turn output chunk to agentTurns and its visible messages projection in sequence order.
5
6
  * Committing checkpoint and chat delivery state together makes retries idempotent and keeps partial stream output resumable.
@@ -13,6 +14,9 @@ export declare function agentTurnStreamReply(executor: DrizzleExecutor, input: {
13
14
  streamCommittedText: string;
14
15
  userMessageId: string;
15
16
  text: string;
17
+ traceUpdates: readonly AgentTurnTraceUpdate[];
18
+ subagents?: readonly AgentTurnSubagentSummary[];
19
+ backgroundTerminals?: readonly AgentTurnBackgroundTerminalSummary[];
16
20
  workerId: string;
17
21
  }): Promise<{
18
22
  applied: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"agentTurnStreamReply.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnStreamReply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAY1E;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB,GACF,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC,CAqHD"}
1
+ {"version":3,"file":"agentTurnStreamReply.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnStreamReply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,KAAK,EACR,kCAAkC,EAClC,wBAAwB,EACxB,oBAAoB,EACvB,MAAM,YAAY,CAAC;AAoBpB;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C,SAAS,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAChD,mBAAmB,CAAC,EAAE,SAAS,kCAAkC,EAAE,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;CACpB,GACF,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC,CAgPD"}
@@ -1,13 +1,22 @@
1
1
  import { withTransaction } from "../drizzle.js";
2
2
  import {} from "../chat/types.js";
3
+ import { createId } from "@paralleldrive/cuid2";
4
+ import { createHash } from "node:crypto";
3
5
  import { agentReplyMutationId } from "./impl/agentReplyMutationId.js";
4
- import { agentTurns, messages } from "../schema.js";
5
- import { and, eq, isNull, sql } from "drizzle-orm";
6
+ import { agentTurnTraceEntries, agentTurns, messages } from "../schema.js";
7
+ import { and, eq, inArray, isNull, sql } from "drizzle-orm";
6
8
  import { chatHint } from "../chat/chatHint.js";
7
9
  import { chatAdvanceWithSequence } from "../chat/chatAdvanceWithSequence.js";
8
10
  import { messageGetProjection } from "../message/messageGetProjection.js";
9
11
  import { syncSequenceNext } from "../sync/syncSequenceNext.js";
10
12
  import { messageSendInTransaction } from "../message/messageSendInTransaction.js";
13
+ const MAX_AGENT_TURN_TRACE_ENTRIES = 512;
14
+ const MAX_STREAM_TRACE_ENTRIES = MAX_AGENT_TURN_TRACE_ENTRIES - 1;
15
+ const MAX_TRACE_COLLECTION_ITEMS = 32;
16
+ const MAX_TRACE_DETAIL_CHARACTERS = 64 * 1_024;
17
+ const MAX_TRACE_SUMMARY_CHARACTERS = 500;
18
+ const MAX_TRACE_ID_CHARACTERS = 128;
19
+ const MAX_TRACE_KEY_CHARACTERS = 512;
11
20
  /**
12
21
  * Applies the next leased turn output chunk to agentTurns and its visible messages projection in sequence order.
13
22
  * Committing checkpoint and chat delivery state together makes retries idempotent and keeps partial stream output resumable.
@@ -32,9 +41,99 @@ export async function agentTurnStreamReply(executor, input) {
32
41
  return {
33
42
  applied: false,
34
43
  };
44
+ const traceUpdates = normalizeTraceUpdates(input.traceUpdates);
45
+ const subagents = normalizeSubagents(input.subagents);
46
+ const backgroundTerminals = normalizeBackgroundTerminals(input.backgroundTerminals);
47
+ let entryCount = await traceEntryCount(tx, input.userMessageId, input.agentUserId);
48
+ const persistedTraceUpdates = [];
49
+ if (traceUpdates.length > 0) {
50
+ await tx
51
+ .update(agentTurnTraceEntries)
52
+ .set({
53
+ status: "complete",
54
+ completedAt: traceUpdates[0].occurredAt,
55
+ updatedAt: sql `CURRENT_TIMESTAMP`,
56
+ })
57
+ .where(and(eq(agentTurnTraceEntries.userMessageId, input.userMessageId), eq(agentTurnTraceEntries.agentUserId, input.agentUserId), eq(agentTurnTraceEntries.traceKey, "turn"), eq(agentTurnTraceEntries.status, "running")));
58
+ const existingKeys = new Set((await tx
59
+ .select({ traceKey: agentTurnTraceEntries.traceKey })
60
+ .from(agentTurnTraceEntries)
61
+ .where(and(eq(agentTurnTraceEntries.userMessageId, input.userMessageId), eq(agentTurnTraceEntries.agentUserId, input.agentUserId), inArray(agentTurnTraceEntries.traceKey, traceUpdates.map(({ traceKey }) => traceKey))))).map(({ traceKey }) => traceKey));
62
+ for (const trace of traceUpdates) {
63
+ const exists = existingKeys.has(trace.traceKey);
64
+ if (!exists && entryCount >= MAX_STREAM_TRACE_ENTRIES)
65
+ continue;
66
+ await tx
67
+ .insert(agentTurnTraceEntries)
68
+ .values({
69
+ id: createId(),
70
+ userMessageId: input.userMessageId,
71
+ agentUserId: input.agentUserId,
72
+ traceKey: trace.traceKey,
73
+ sessionEventId: trace.sessionEventId,
74
+ kind: trace.kind,
75
+ title: trace.title,
76
+ detail: trace.detail,
77
+ status: trace.status,
78
+ occurredAt: trace.occurredAt,
79
+ completedAt: trace.completedAt,
80
+ })
81
+ .onConflictDoUpdate({
82
+ target: [
83
+ agentTurnTraceEntries.userMessageId,
84
+ agentTurnTraceEntries.agentUserId,
85
+ agentTurnTraceEntries.traceKey,
86
+ ],
87
+ set: {
88
+ sessionEventId: trace.sessionEventId,
89
+ kind: trace.kind,
90
+ title: trace.title,
91
+ detail: trace.detail,
92
+ status: trace.status,
93
+ occurredAt: sql `min(${agentTurnTraceEntries.occurredAt}, ${trace.occurredAt})`,
94
+ completedAt: trace.completedAt,
95
+ updatedAt: sql `CURRENT_TIMESTAMP`,
96
+ },
97
+ });
98
+ persistedTraceUpdates.push(trace);
99
+ if (!exists) {
100
+ existingKeys.add(trace.traceKey);
101
+ entryCount += 1;
102
+ }
103
+ }
104
+ }
105
+ const traceChanged = persistedTraceUpdates.length > 0 ||
106
+ input.subagents !== undefined ||
107
+ input.backgroundTerminals !== undefined;
108
+ if (traceChanged) {
109
+ const latest = persistedTraceUpdates.reduce((current, trace) => !current || trace.occurredAt >= current.occurredAt ? trace : current, undefined);
110
+ await tx
111
+ .update(agentTurns)
112
+ .set({
113
+ ...(latest
114
+ ? {
115
+ traceLatestKind: latest.kind,
116
+ traceLatestTitle: latest.title,
117
+ traceLatestDetail: latestTraceLine(latest.detail) ?? null,
118
+ traceLatestAt: latest.occurredAt,
119
+ }
120
+ : {}),
121
+ traceEntryCount: entryCount,
122
+ ...(input.subagents === undefined
123
+ ? {}
124
+ : { traceSubagentsJson: JSON.stringify(subagents) }),
125
+ ...(input.backgroundTerminals === undefined
126
+ ? {}
127
+ : {
128
+ traceBackgroundTerminalsJson: JSON.stringify(backgroundTerminals),
129
+ }),
130
+ updatedAt: sql `CURRENT_TIMESTAMP`,
131
+ })
132
+ .where(and(eq(agentTurns.userMessageId, input.userMessageId), eq(agentTurns.agentUserId, input.agentUserId), eq(agentTurns.workerId, input.workerId), eq(agentTurns.status, "running"), eq(agentTurns.lastSessionEventId, input.eventId)));
133
+ }
35
134
  let created;
36
135
  let messageId = turn.assistantMessageId ?? undefined;
37
- if (!messageId && input.text.length > 0) {
136
+ if (!messageId && (input.text.length > 0 || traceChanged)) {
38
137
  created = await messageSendInTransaction(tx, {
39
138
  actorUserId: input.actorUserId,
40
139
  agentSessionId: input.sessionId,
@@ -70,11 +169,7 @@ export async function agentTurnStreamReply(executor, input) {
70
169
  .limit(1);
71
170
  if (!messageRow)
72
171
  throw new Error("Agent turn reply is missing");
73
- if (messageRow.text === input.text) {
74
- if (!created)
75
- return {
76
- applied: true,
77
- };
172
+ if (created && messageRow.text === input.text) {
78
173
  const message = await messageGetProjection(tx, input.actorUserId, messageId);
79
174
  if (!message)
80
175
  throw new Error("Agent turn reply is not readable");
@@ -84,12 +179,17 @@ export async function agentTurnStreamReply(executor, input) {
84
179
  hint: created.hint,
85
180
  };
86
181
  }
182
+ if (messageRow.text === input.text && !traceChanged) {
183
+ return {
184
+ applied: true,
185
+ };
186
+ }
87
187
  const sequence = await syncSequenceNext(tx);
88
188
  const mutation = await chatAdvanceWithSequence(tx, sequence, input.agentUserId, turn.chatId, "message.streaming", messageId);
89
189
  await tx
90
190
  .update(messages)
91
191
  .set({
92
- text: input.text,
192
+ ...(messageRow.text === input.text ? {} : { text: input.text }),
93
193
  changePts: mutation.pts,
94
194
  updatedAt: sql `CURRENT_TIMESTAMP`,
95
195
  })
@@ -104,4 +204,102 @@ export async function agentTurnStreamReply(executor, input) {
104
204
  };
105
205
  });
106
206
  }
207
+ async function traceEntryCount(executor, userMessageId, agentUserId) {
208
+ const [count] = await executor
209
+ .select({ value: sql `count(*)` })
210
+ .from(agentTurnTraceEntries)
211
+ .where(and(eq(agentTurnTraceEntries.userMessageId, userMessageId), eq(agentTurnTraceEntries.agentUserId, agentUserId)));
212
+ return Math.min(MAX_AGENT_TURN_TRACE_ENTRIES, Math.max(0, Number(count?.value ?? 0)));
213
+ }
214
+ function normalizeTraceUpdates(values) {
215
+ const updates = new Map();
216
+ for (const value of values.slice(0, MAX_AGENT_TURN_TRACE_ENTRIES)) {
217
+ const traceKey = boundedIdentifier(value.traceKey, "trace", MAX_TRACE_KEY_CHARACTERS);
218
+ const occurredAt = boundedTimestamp(value.occurredAt);
219
+ const detail = boundedText(value.detail, MAX_TRACE_DETAIL_CHARACTERS);
220
+ const normalized = {
221
+ traceKey,
222
+ sessionEventId: boundedIdentifier(value.sessionEventId, "event", MAX_TRACE_KEY_CHARACTERS),
223
+ kind: value.kind,
224
+ title: boundedText(value.title, MAX_TRACE_SUMMARY_CHARACTERS) ?? "Agent activity",
225
+ ...(detail ? { detail } : {}),
226
+ status: value.status,
227
+ occurredAt,
228
+ ...(value.completedAt === undefined
229
+ ? {}
230
+ : { completedAt: Math.max(occurredAt, boundedTimestamp(value.completedAt)) }),
231
+ };
232
+ updates.delete(traceKey);
233
+ updates.set(traceKey, normalized);
234
+ }
235
+ return [...updates.values()];
236
+ }
237
+ function normalizeSubagents(values) {
238
+ if (values === undefined)
239
+ return undefined;
240
+ const normalized = new Map();
241
+ for (const value of values.slice(0, MAX_TRACE_COLLECTION_ITEMS)) {
242
+ const id = boundedIdentifier(value.id, "subagent", MAX_TRACE_ID_CHARACTERS);
243
+ const latestText = boundedText(value.latestText, MAX_TRACE_SUMMARY_CHARACTERS);
244
+ normalized.set(id, {
245
+ id,
246
+ depth: boundedInteger(value.depth, 1),
247
+ description: boundedText(value.description, MAX_TRACE_SUMMARY_CHARACTERS) ?? "Subagent",
248
+ status: value.status,
249
+ ...(latestText ? { latestText } : {}),
250
+ startedAt: boundedTimestamp(value.startedAt),
251
+ totalTokens: boundedInteger(value.totalTokens, 0),
252
+ });
253
+ }
254
+ return [...normalized.values()];
255
+ }
256
+ function normalizeBackgroundTerminals(values) {
257
+ if (values === undefined)
258
+ return undefined;
259
+ const normalized = new Map();
260
+ for (const value of values.slice(0, MAX_TRACE_COLLECTION_ITEMS)) {
261
+ const id = boundedIdentifier(value.id, "terminal", MAX_TRACE_ID_CHARACTERS);
262
+ normalized.set(id, {
263
+ id,
264
+ command: boundedText(value.command, MAX_TRACE_SUMMARY_CHARACTERS) ?? "Background command",
265
+ cwd: boundedText(value.cwd, MAX_TRACE_SUMMARY_CHARACTERS) ?? ".",
266
+ startedAt: boundedTimestamp(value.startedAt),
267
+ });
268
+ }
269
+ return [...normalized.values()];
270
+ }
271
+ function boundedIdentifier(value, prefix, maximum) {
272
+ const clean = [...value]
273
+ .filter((character) => {
274
+ const code = character.charCodeAt(0);
275
+ return code > 31 && code !== 127;
276
+ })
277
+ .join("");
278
+ if (clean.length > 0 && clean.length <= maximum)
279
+ return clean;
280
+ return `${prefix}-${createHash("sha256").update(value).digest("hex").slice(0, 32)}`;
281
+ }
282
+ function boundedText(value, maximum) {
283
+ const text = value?.trim().slice(-maximum);
284
+ return text || undefined;
285
+ }
286
+ function boundedTimestamp(value) {
287
+ const now = Date.now();
288
+ return Number.isSafeInteger(value) && value >= 0 ? Math.min(value, now) : now;
289
+ }
290
+ function boundedInteger(value, minimum) {
291
+ return Number.isSafeInteger(value)
292
+ ? Math.max(minimum, Math.min(value, Number.MAX_SAFE_INTEGER))
293
+ : minimum;
294
+ }
295
+ function latestTraceLine(value) {
296
+ if (!value)
297
+ return undefined;
298
+ const line = value
299
+ .split(/\r?\n/u)
300
+ .map((part) => part.trim())
301
+ .filter(Boolean)
302
+ .at(-1);
303
+ return line?.slice(-500);
304
+ }
107
305
  //# sourceMappingURL=agentTurnStreamReply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentTurnStreamReply.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnStreamReply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentTurnStreamReply.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnStreamReply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { DrizzleExecutor } from "../drizzle.js";
2
+ import type { AgentTurnTraceDetails } from "./types.js";
3
+ /**
4
+ * Reads the complete coalesced execution trace linked to one visible assistant message after rechecking chat access and tombstone/expiry state.
5
+ * Keeping trace visibility aligned with its message prevents deleted reasoning and tool details from bypassing the chat-content lifetime while avoiding inflation of every message projection.
6
+ */
7
+ export declare function agentTurnTraceGet(executor: DrizzleExecutor, actorUserId: string, assistantMessageId: string): Promise<AgentTurnTraceDetails>;
8
+ //# sourceMappingURL=agentTurnTraceGet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentTurnTraceGet.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnTraceGet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD,OAAO,KAAK,EACR,qBAAqB,EAGxB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,GAC3B,OAAO,CAAC,qBAAqB,CAAC,CAmEhC"}