happy2 0.0.11 → 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 (443) hide show
  1. package/README.md +10 -0
  2. package/package.json +2 -2
  3. package/packages/happy2-server/PLUGINS.md +205 -45
  4. package/packages/happy2-server/README.md +19 -7
  5. package/packages/happy2-server/dist/daemon.d.ts +39 -0
  6. package/packages/happy2-server/dist/daemon.d.ts.map +1 -0
  7. package/packages/happy2-server/dist/daemon.js +302 -0
  8. package/packages/happy2-server/dist/daemon.js.map +1 -0
  9. package/packages/happy2-server/dist/daemon.test.d.ts +2 -0
  10. package/packages/happy2-server/dist/daemon.test.d.ts.map +1 -0
  11. package/packages/happy2-server/dist/daemon.test.js +245 -0
  12. package/packages/happy2-server/dist/daemon.test.js.map +1 -0
  13. package/packages/happy2-server/dist/index.d.ts +3 -2
  14. package/packages/happy2-server/dist/index.d.ts.map +1 -1
  15. package/packages/happy2-server/dist/index.js +2 -1
  16. package/packages/happy2-server/dist/index.js.map +1 -1
  17. package/packages/happy2-server/dist/modules/agent/agentChatBind.d.ts +1 -0
  18. package/packages/happy2-server/dist/modules/agent/agentChatBind.d.ts.map +1 -1
  19. package/packages/happy2-server/dist/modules/agent/agentChatBind.js +4 -0
  20. package/packages/happy2-server/dist/modules/agent/agentChatBind.js.map +1 -1
  21. package/packages/happy2-server/dist/modules/agent/agentChatGetContext.d.ts.map +1 -1
  22. package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js +3 -1
  23. package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js.map +1 -1
  24. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.d.ts +7 -0
  25. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.d.ts.map +1 -0
  26. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.js +15 -0
  27. package/packages/happy2-server/dist/modules/agent/agentChatGetIdBySession.js.map +1 -0
  28. package/packages/happy2-server/dist/modules/agent/agentCreate.d.ts.map +1 -1
  29. package/packages/happy2-server/dist/modules/agent/agentCreate.js +1 -0
  30. package/packages/happy2-server/dist/modules/agent/agentCreate.js.map +1 -1
  31. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.d.ts +4 -2
  32. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.d.ts.map +1 -1
  33. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.js +8 -8
  34. package/packages/happy2-server/dist/modules/agent/agentEffortBindingList.js.map +1 -1
  35. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.d.ts +3 -3
  36. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.d.ts.map +1 -1
  37. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.js +4 -4
  38. package/packages/happy2-server/dist/modules/agent/agentEffortGetContext.js.map +1 -1
  39. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.d.ts +4 -4
  40. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.d.ts.map +1 -1
  41. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.js +57 -41
  42. package/packages/happy2-server/dist/modules/agent/agentEffortUpdate.js.map +1 -1
  43. package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.d.ts +1 -1
  44. package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js +3 -3
  45. package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js.map +1 -1
  46. package/packages/happy2-server/dist/modules/agent/agentImageCreate.d.ts +1 -1
  47. package/packages/happy2-server/dist/modules/agent/agentImageCreate.js +3 -3
  48. package/packages/happy2-server/dist/modules/agent/agentImageCreate.js.map +1 -1
  49. package/packages/happy2-server/dist/modules/agent/agentImageGet.d.ts +1 -1
  50. package/packages/happy2-server/dist/modules/agent/agentImageGet.js +3 -3
  51. package/packages/happy2-server/dist/modules/agent/agentImageGet.js.map +1 -1
  52. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.d.ts +2 -1
  53. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.d.ts.map +1 -1
  54. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js +11 -4
  55. package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js.map +1 -1
  56. package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts +2 -2
  57. package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts.map +1 -1
  58. package/packages/happy2-server/dist/modules/agent/agentImageList.js +8 -4
  59. package/packages/happy2-server/dist/modules/agent/agentImageList.js.map +1 -1
  60. package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.d.ts +1 -1
  61. package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js +3 -3
  62. package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js.map +1 -1
  63. package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.d.ts +1 -1
  64. package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js +3 -3
  65. package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js.map +1 -1
  66. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.d.ts +1 -1
  67. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.js +3 -3
  68. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentDelete.js.map +1 -1
  69. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.d.ts +1 -1
  70. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.js +3 -3
  71. package/packages/happy2-server/dist/modules/agent/agentSecretAssignmentList.js.map +1 -1
  72. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.d.ts +1 -1
  73. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.js +3 -3
  74. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToAgent.js.map +1 -1
  75. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.d.ts +1 -1
  76. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.js +3 -3
  77. package/packages/happy2-server/dist/modules/agent/agentSecretAttachToChannel.js.map +1 -1
  78. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.d.ts +4 -3
  79. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.d.ts.map +1 -1
  80. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.js +5 -5
  81. package/packages/happy2-server/dist/modules/agent/agentSecretAuthorizeManagement.js.map +1 -1
  82. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.d.ts +1 -1
  83. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.js +3 -3
  84. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromAgent.js.map +1 -1
  85. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.d.ts +2 -2
  86. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.js +4 -4
  87. package/packages/happy2-server/dist/modules/agent/agentSecretDetachFromChannel.js.map +1 -1
  88. package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.d.ts +1 -1
  89. package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.js +3 -3
  90. package/packages/happy2-server/dist/modules/agent/agentSecretRecordRegistration.js.map +1 -1
  91. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.d.ts +4 -0
  92. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.d.ts.map +1 -1
  93. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.js +207 -9
  94. package/packages/happy2-server/dist/modules/agent/agentTurnStreamReply.js.map +1 -1
  95. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.d.ts +8 -0
  96. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.d.ts.map +1 -0
  97. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.js +86 -0
  98. package/packages/happy2-server/dist/modules/agent/agentTurnTraceGet.js.map +1 -0
  99. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.d.ts +19 -0
  100. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.d.ts.map +1 -0
  101. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.js +87 -0
  102. package/packages/happy2-server/dist/modules/agent/agentTurnTraceStart.js.map +1 -0
  103. package/packages/happy2-server/dist/modules/agent/impl/agentChatContext.d.ts +2 -1
  104. package/packages/happy2-server/dist/modules/agent/impl/agentChatContext.d.ts.map +1 -1
  105. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContext.d.ts +4 -1
  106. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContext.d.ts.map +1 -1
  107. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.d.ts +3 -3
  108. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.d.ts.map +1 -1
  109. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.js +26 -40
  110. package/packages/happy2-server/dist/modules/agent/impl/agentEffortContextDb.js.map +1 -1
  111. package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.d.ts.map +1 -1
  112. package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.js +63 -2
  113. package/packages/happy2-server/dist/modules/agent/impl/finishAgentTurn.js.map +1 -1
  114. package/packages/happy2-server/dist/modules/agent/types.d.ts +53 -0
  115. package/packages/happy2-server/dist/modules/agent/types.d.ts.map +1 -1
  116. package/packages/happy2-server/dist/modules/agents/daemon.d.ts +31 -2
  117. package/packages/happy2-server/dist/modules/agents/daemon.d.ts.map +1 -1
  118. package/packages/happy2-server/dist/modules/agents/daemon.js +12 -2
  119. package/packages/happy2-server/dist/modules/agents/daemon.js.map +1 -1
  120. package/packages/happy2-server/dist/modules/agents/service.d.ts +13 -6
  121. package/packages/happy2-server/dist/modules/agents/service.d.ts.map +1 -1
  122. package/packages/happy2-server/dist/modules/agents/service.js +497 -49
  123. package/packages/happy2-server/dist/modules/agents/service.js.map +1 -1
  124. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.d.ts +12 -0
  125. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.d.ts.map +1 -0
  126. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.js +27 -0
  127. package/packages/happy2-server/dist/modules/auth/developmentTokenCreate.js.map +1 -0
  128. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.d.ts +8 -0
  129. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.d.ts.map +1 -0
  130. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.js +22 -0
  131. package/packages/happy2-server/dist/modules/auth/developmentTokenFindActive.js.map +1 -0
  132. package/packages/happy2-server/dist/modules/auth/methods.d.ts +1 -0
  133. package/packages/happy2-server/dist/modules/auth/methods.d.ts.map +1 -1
  134. package/packages/happy2-server/dist/modules/auth/methods.js +10 -6
  135. package/packages/happy2-server/dist/modules/auth/methods.js.map +1 -1
  136. package/packages/happy2-server/dist/modules/auth/service.d.ts +2 -0
  137. package/packages/happy2-server/dist/modules/auth/service.d.ts.map +1 -1
  138. package/packages/happy2-server/dist/modules/auth/service.js +26 -0
  139. package/packages/happy2-server/dist/modules/auth/service.js.map +1 -1
  140. package/packages/happy2-server/dist/modules/auth/tokens.d.ts +13 -0
  141. package/packages/happy2-server/dist/modules/auth/tokens.d.ts.map +1 -1
  142. package/packages/happy2-server/dist/modules/auth/tokens.js +59 -0
  143. package/packages/happy2-server/dist/modules/auth/tokens.js.map +1 -1
  144. package/packages/happy2-server/dist/modules/auth/tokens.test.d.ts +2 -0
  145. package/packages/happy2-server/dist/modules/auth/tokens.test.d.ts.map +1 -0
  146. package/packages/happy2-server/dist/modules/auth/tokens.test.js +48 -0
  147. package/packages/happy2-server/dist/modules/auth/tokens.test.js.map +1 -0
  148. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.d.ts +17 -0
  149. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.d.ts.map +1 -0
  150. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.js +98 -0
  151. package/packages/happy2-server/dist/modules/chat/asAgentTurnTrace.js.map +1 -0
  152. package/packages/happy2-server/dist/modules/chat/asServiceMessage.d.ts.map +1 -1
  153. package/packages/happy2-server/dist/modules/chat/asServiceMessage.js +13 -5
  154. package/packages/happy2-server/dist/modules/chat/asServiceMessage.js.map +1 -1
  155. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.d.ts +20 -0
  156. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.d.ts.map +1 -0
  157. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.js +38 -0
  158. package/packages/happy2-server/dist/modules/chat/chatUpdateMetadata.js.map +1 -0
  159. package/packages/happy2-server/dist/modules/chat/types.d.ts +6 -0
  160. package/packages/happy2-server/dist/modules/chat/types.d.ts.map +1 -1
  161. package/packages/happy2-server/dist/modules/chat/types.js.map +1 -1
  162. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.d.ts +7 -0
  163. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.d.ts.map +1 -0
  164. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.js +19 -0
  165. package/packages/happy2-server/dist/modules/chat/userRequireActiveHuman.js.map +1 -0
  166. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.d.ts +2 -2
  167. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.d.ts.map +1 -1
  168. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.js +8 -5
  169. package/packages/happy2-server/dist/modules/chat/userRequireServerAdmin.js.map +1 -1
  170. package/packages/happy2-server/dist/modules/config/defaults.d.ts.map +1 -1
  171. package/packages/happy2-server/dist/modules/config/defaults.js +3 -0
  172. package/packages/happy2-server/dist/modules/config/defaults.js.map +1 -1
  173. package/packages/happy2-server/dist/modules/config/defaults.test.js +1 -0
  174. package/packages/happy2-server/dist/modules/config/defaults.test.js.map +1 -1
  175. package/packages/happy2-server/dist/modules/config/loader.d.ts.map +1 -1
  176. package/packages/happy2-server/dist/modules/config/loader.js +9 -0
  177. package/packages/happy2-server/dist/modules/config/loader.js.map +1 -1
  178. package/packages/happy2-server/dist/modules/config/loader.test.js +27 -0
  179. package/packages/happy2-server/dist/modules/config/loader.test.js.map +1 -1
  180. package/packages/happy2-server/dist/modules/config/type.d.ts +5 -0
  181. package/packages/happy2-server/dist/modules/config/type.d.ts.map +1 -1
  182. package/packages/happy2-server/dist/modules/message/messageGetProjection.d.ts.map +1 -1
  183. package/packages/happy2-server/dist/modules/message/messageGetProjection.js +28 -0
  184. package/packages/happy2-server/dist/modules/message/messageGetProjection.js.map +1 -1
  185. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.d.ts +4 -0
  186. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.d.ts.map +1 -0
  187. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.js +39 -0
  188. package/packages/happy2-server/dist/modules/permission/impl/permissionEffectiveDb.js.map +1 -0
  189. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.d.ts +10 -0
  190. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.d.ts.map +1 -0
  191. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.js +31 -0
  192. package/packages/happy2-server/dist/modules/permission/impl/permissionMutationRecord.js.map +1 -0
  193. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.d.ts +8 -0
  194. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.d.ts.map +1 -0
  195. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.js +13 -0
  196. package/packages/happy2-server/dist/modules/permission/permissionGetEffective.js.map +1 -0
  197. package/packages/happy2-server/dist/modules/permission/roleCreate.d.ts +16 -0
  198. package/packages/happy2-server/dist/modules/permission/roleCreate.d.ts.map +1 -0
  199. package/packages/happy2-server/dist/modules/permission/roleCreate.js +70 -0
  200. package/packages/happy2-server/dist/modules/permission/roleCreate.js.map +1 -0
  201. package/packages/happy2-server/dist/modules/permission/roleDelete.d.ts +11 -0
  202. package/packages/happy2-server/dist/modules/permission/roleDelete.d.ts.map +1 -0
  203. package/packages/happy2-server/dist/modules/permission/roleDelete.js +41 -0
  204. package/packages/happy2-server/dist/modules/permission/roleDelete.js.map +1 -0
  205. package/packages/happy2-server/dist/modules/permission/roleList.d.ts +8 -0
  206. package/packages/happy2-server/dist/modules/permission/roleList.d.ts.map +1 -0
  207. package/packages/happy2-server/dist/modules/permission/roleList.js +36 -0
  208. package/packages/happy2-server/dist/modules/permission/roleList.js.map +1 -0
  209. package/packages/happy2-server/dist/modules/permission/roleUpdate.d.ts +14 -0
  210. package/packages/happy2-server/dist/modules/permission/roleUpdate.d.ts.map +1 -0
  211. package/packages/happy2-server/dist/modules/permission/roleUpdate.js +78 -0
  212. package/packages/happy2-server/dist/modules/permission/roleUpdate.js.map +1 -0
  213. package/packages/happy2-server/dist/modules/permission/types.d.ts +24 -0
  214. package/packages/happy2-server/dist/modules/permission/types.d.ts.map +1 -0
  215. package/packages/happy2-server/dist/modules/permission/types.js +10 -0
  216. package/packages/happy2-server/dist/modules/permission/types.js.map +1 -0
  217. package/packages/happy2-server/dist/modules/permission/userPermissionGet.d.ts +16 -0
  218. package/packages/happy2-server/dist/modules/permission/userPermissionGet.d.ts.map +1 -0
  219. package/packages/happy2-server/dist/modules/permission/userPermissionGet.js +33 -0
  220. package/packages/happy2-server/dist/modules/permission/userPermissionGet.js.map +1 -0
  221. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.d.ts +12 -0
  222. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.d.ts.map +1 -0
  223. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.js +44 -0
  224. package/packages/happy2-server/dist/modules/permission/userPermissionUpdate.js.map +1 -0
  225. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.d.ts +8 -0
  226. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.d.ts.map +1 -0
  227. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.js +12 -0
  228. package/packages/happy2-server/dist/modules/permission/userRequireAnyPermission.js.map +1 -0
  229. package/packages/happy2-server/dist/modules/permission/userRequirePermission.d.ts +8 -0
  230. package/packages/happy2-server/dist/modules/permission/userRequirePermission.d.ts.map +1 -0
  231. package/packages/happy2-server/dist/modules/permission/userRequirePermission.js +12 -0
  232. package/packages/happy2-server/dist/modules/permission/userRequirePermission.js.map +1 -0
  233. package/packages/happy2-server/dist/modules/permission/userRoleAssign.d.ts +12 -0
  234. package/packages/happy2-server/dist/modules/permission/userRoleAssign.d.ts.map +1 -0
  235. package/packages/happy2-server/dist/modules/permission/userRoleAssign.js +46 -0
  236. package/packages/happy2-server/dist/modules/permission/userRoleAssign.js.map +1 -0
  237. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.d.ts +12 -0
  238. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.d.ts.map +1 -0
  239. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.js +53 -0
  240. package/packages/happy2-server/dist/modules/permission/userRoleUnassign.js.map +1 -0
  241. package/packages/happy2-server/dist/modules/plugin/archive.d.ts +7 -0
  242. package/packages/happy2-server/dist/modules/plugin/archive.d.ts.map +1 -0
  243. package/packages/happy2-server/dist/modules/plugin/archive.js +222 -0
  244. package/packages/happy2-server/dist/modules/plugin/archive.js.map +1 -0
  245. package/packages/happy2-server/dist/modules/plugin/catalog.d.ts +5 -1
  246. package/packages/happy2-server/dist/modules/plugin/catalog.d.ts.map +1 -1
  247. package/packages/happy2-server/dist/modules/plugin/catalog.js +75 -15
  248. package/packages/happy2-server/dist/modules/plugin/catalog.js.map +1 -1
  249. package/packages/happy2-server/dist/modules/plugin/catalog.test.js +37 -0
  250. package/packages/happy2-server/dist/modules/plugin/catalog.test.js.map +1 -1
  251. package/packages/happy2-server/dist/modules/plugin/httpBridge.d.ts +1 -0
  252. package/packages/happy2-server/dist/modules/plugin/httpBridge.d.ts.map +1 -1
  253. package/packages/happy2-server/dist/modules/plugin/httpBridge.js +7 -0
  254. package/packages/happy2-server/dist/modules/plugin/httpBridge.js.map +1 -1
  255. package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.d.ts.map +1 -1
  256. package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.js +3 -2
  257. package/packages/happy2-server/dist/modules/plugin/impl/asInstallation.js.map +1 -1
  258. package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.d.ts.map +1 -1
  259. package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.js +17 -3
  260. package/packages/happy2-server/dist/modules/plugin/impl/asPlugin.js.map +1 -1
  261. package/packages/happy2-server/dist/modules/plugin/impl/effectiveContainer.d.ts +3 -0
  262. package/packages/happy2-server/dist/modules/plugin/impl/effectiveContainer.d.ts.map +1 -0
  263. package/packages/happy2-server/dist/modules/plugin/impl/effectiveContainer.js +12 -0
  264. package/packages/happy2-server/dist/modules/plugin/impl/effectiveContainer.js.map +1 -0
  265. package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.d.ts.map +1 -1
  266. package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.js +11 -0
  267. package/packages/happy2-server/dist/modules/plugin/impl/installedManifest.js.map +1 -1
  268. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.d.ts +11 -0
  269. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.d.ts.map +1 -0
  270. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.js +2 -0
  271. package/packages/happy2-server/dist/modules/plugin/impl/pluginSkillSource.js.map +1 -0
  272. package/packages/happy2-server/dist/modules/plugin/packageStore.d.ts +13 -0
  273. package/packages/happy2-server/dist/modules/plugin/packageStore.d.ts.map +1 -1
  274. package/packages/happy2-server/dist/modules/plugin/packageStore.js +122 -14
  275. package/packages/happy2-server/dist/modules/plugin/packageStore.js.map +1 -1
  276. package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.d.ts +1 -1
  277. package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.js +3 -3
  278. package/packages/happy2-server/dist/modules/plugin/pluginAuthorizeManagement.js.map +1 -1
  279. package/packages/happy2-server/dist/modules/plugin/pluginCatalogList.d.ts.map +1 -1
  280. package/packages/happy2-server/dist/modules/plugin/pluginCatalogList.js +15 -1
  281. package/packages/happy2-server/dist/modules/plugin/pluginCatalogList.js.map +1 -1
  282. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceAuthorize.d.ts +10 -0
  283. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceAuthorize.d.ts.map +1 -0
  284. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceAuthorize.js +20 -0
  285. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceAuthorize.js.map +1 -0
  286. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceInvalidate.d.ts +12 -0
  287. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceInvalidate.d.ts.map +1 -0
  288. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceInvalidate.js +44 -0
  289. package/packages/happy2-server/dist/modules/plugin/pluginContainerInstanceInvalidate.js.map +1 -0
  290. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.d.ts +3 -1
  291. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.d.ts.map +1 -1
  292. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.js +1 -1
  293. package/packages/happy2-server/dist/modules/plugin/pluginFindBySource.js.map +1 -1
  294. package/packages/happy2-server/dist/modules/plugin/pluginGetImage.d.ts +1 -1
  295. package/packages/happy2-server/dist/modules/plugin/pluginGetImage.js +3 -3
  296. package/packages/happy2-server/dist/modules/plugin/pluginGetImage.js.map +1 -1
  297. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.d.ts +13 -0
  298. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.d.ts.map +1 -0
  299. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.js +37 -0
  300. package/packages/happy2-server/dist/modules/plugin/pluginGetSource.js.map +1 -0
  301. package/packages/happy2-server/dist/modules/plugin/pluginInstall.d.ts.map +1 -1
  302. package/packages/happy2-server/dist/modules/plugin/pluginInstall.js +28 -9
  303. package/packages/happy2-server/dist/modules/plugin/pluginInstall.js.map +1 -1
  304. package/packages/happy2-server/dist/modules/plugin/pluginInstallationGetRuntimeConfiguration.d.ts.map +1 -1
  305. package/packages/happy2-server/dist/modules/plugin/pluginInstallationGetRuntimeConfiguration.js +18 -7
  306. package/packages/happy2-server/dist/modules/plugin/pluginInstallationGetRuntimeConfiguration.js.map +1 -1
  307. package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.d.ts +1 -1
  308. package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.js +3 -3
  309. package/packages/happy2-server/dist/modules/plugin/pluginInstallationList.js.map +1 -1
  310. package/packages/happy2-server/dist/modules/plugin/pluginInstallationListForHost.d.ts +14 -0
  311. package/packages/happy2-server/dist/modules/plugin/pluginInstallationListForHost.d.ts.map +1 -0
  312. package/packages/happy2-server/dist/modules/plugin/pluginInstallationListForHost.js +20 -0
  313. package/packages/happy2-server/dist/modules/plugin/pluginInstallationListForHost.js.map +1 -0
  314. package/packages/happy2-server/dist/modules/plugin/pluginInstallationUpdateStatus.d.ts +1 -0
  315. package/packages/happy2-server/dist/modules/plugin/pluginInstallationUpdateStatus.d.ts.map +1 -1
  316. package/packages/happy2-server/dist/modules/plugin/pluginInstallationUpdateStatus.js +1 -0
  317. package/packages/happy2-server/dist/modules/plugin/pluginInstallationUpdateStatus.js.map +1 -1
  318. package/packages/happy2-server/dist/modules/plugin/pluginList.d.ts +1 -1
  319. package/packages/happy2-server/dist/modules/plugin/pluginList.js +3 -3
  320. package/packages/happy2-server/dist/modules/plugin/pluginList.js.map +1 -1
  321. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsList.d.ts +11 -0
  322. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsList.d.ts.map +1 -0
  323. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsList.js +43 -0
  324. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsList.js.map +1 -0
  325. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsListReady.d.ts +15 -0
  326. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsListReady.d.ts.map +1 -0
  327. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsListReady.js +37 -0
  328. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsListReady.js.map +1 -0
  329. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsReplace.d.ts +16 -0
  330. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsReplace.d.ts.map +1 -0
  331. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsReplace.js +71 -0
  332. package/packages/happy2-server/dist/modules/plugin/pluginMcpToolsReplace.js.map +1 -0
  333. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.d.ts +8 -0
  334. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.d.ts.map +1 -0
  335. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.js +24 -0
  336. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListInstalled.js.map +1 -0
  337. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.d.ts +8 -0
  338. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.d.ts.map +1 -0
  339. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.js +25 -0
  340. package/packages/happy2-server/dist/modules/plugin/pluginSkillsListReady.js.map +1 -0
  341. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.d.ts +13 -0
  342. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.d.ts.map +1 -0
  343. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.js +63 -0
  344. package/packages/happy2-server/dist/modules/plugin/pluginUninstall.js.map +1 -0
  345. package/packages/happy2-server/dist/modules/plugin/runtime.d.ts +20 -0
  346. package/packages/happy2-server/dist/modules/plugin/runtime.d.ts.map +1 -1
  347. package/packages/happy2-server/dist/modules/plugin/runtime.js +88 -2
  348. package/packages/happy2-server/dist/modules/plugin/runtime.js.map +1 -1
  349. package/packages/happy2-server/dist/modules/plugin/service.d.ts +64 -5
  350. package/packages/happy2-server/dist/modules/plugin/service.d.ts.map +1 -1
  351. package/packages/happy2-server/dist/modules/plugin/service.js +552 -173
  352. package/packages/happy2-server/dist/modules/plugin/service.js.map +1 -1
  353. package/packages/happy2-server/dist/modules/plugin/source.d.ts +35 -0
  354. package/packages/happy2-server/dist/modules/plugin/source.d.ts.map +1 -0
  355. package/packages/happy2-server/dist/modules/plugin/source.js +189 -0
  356. package/packages/happy2-server/dist/modules/plugin/source.js.map +1 -0
  357. package/packages/happy2-server/dist/modules/plugin/types.d.ts +87 -11
  358. package/packages/happy2-server/dist/modules/plugin/types.d.ts.map +1 -1
  359. package/packages/happy2-server/dist/modules/plugin/types.js +1 -0
  360. package/packages/happy2-server/dist/modules/plugin/types.js.map +1 -1
  361. package/packages/happy2-server/dist/modules/realtime/events.d.ts +3 -0
  362. package/packages/happy2-server/dist/modules/realtime/events.d.ts.map +1 -1
  363. package/packages/happy2-server/dist/modules/realtime/events.js +37 -5
  364. package/packages/happy2-server/dist/modules/realtime/events.js.map +1 -1
  365. package/packages/happy2-server/dist/modules/realtime/local.test.js +2 -0
  366. package/packages/happy2-server/dist/modules/realtime/local.test.js.map +1 -1
  367. package/packages/happy2-server/dist/modules/sandbox/index.d.ts +1 -1
  368. package/packages/happy2-server/dist/modules/sandbox/index.d.ts.map +1 -1
  369. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.d.ts +8 -1
  370. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.d.ts.map +1 -1
  371. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.js +105 -3
  372. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.js.map +1 -1
  373. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.test.js +82 -3
  374. package/packages/happy2-server/dist/modules/sandbox/localOciSandboxProvider.test.js.map +1 -1
  375. package/packages/happy2-server/dist/modules/sandbox/types.d.ts +17 -0
  376. package/packages/happy2-server/dist/modules/sandbox/types.d.ts.map +1 -1
  377. package/packages/happy2-server/dist/modules/schema.d.ts +2245 -233
  378. package/packages/happy2-server/dist/modules/schema.d.ts.map +1 -1
  379. package/packages/happy2-server/dist/modules/schema.js +120 -0
  380. package/packages/happy2-server/dist/modules/schema.js.map +1 -1
  381. package/packages/happy2-server/dist/modules/sync/syncGetDifference.d.ts.map +1 -1
  382. package/packages/happy2-server/dist/modules/sync/syncGetDifference.js +2 -0
  383. package/packages/happy2-server/dist/modules/sync/syncGetDifference.js.map +1 -1
  384. package/packages/happy2-server/dist/modules/user/userAdministrationList.js +2 -2
  385. package/packages/happy2-server/dist/modules/user/userAdministrationList.js.map +1 -1
  386. package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.d.ts.map +1 -1
  387. package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.js +49 -6
  388. package/packages/happy2-server/dist/modules/user/userAdministrationUpdate.js.map +1 -1
  389. package/packages/happy2-server/dist/modules/user/userCreateProfile.d.ts.map +1 -1
  390. package/packages/happy2-server/dist/modules/user/userCreateProfile.js +17 -2
  391. package/packages/happy2-server/dist/modules/user/userCreateProfile.js.map +1 -1
  392. package/packages/happy2-server/dist/routes/agents.d.ts.map +1 -1
  393. package/packages/happy2-server/dist/routes/agents.js +4 -2
  394. package/packages/happy2-server/dist/routes/agents.js.map +1 -1
  395. package/packages/happy2-server/dist/routes/auth.d.ts.map +1 -1
  396. package/packages/happy2-server/dist/routes/auth.js +12 -0
  397. package/packages/happy2-server/dist/routes/auth.js.map +1 -1
  398. package/packages/happy2-server/dist/routes/collaboration.d.ts.map +1 -1
  399. package/packages/happy2-server/dist/routes/collaboration.js +7 -0
  400. package/packages/happy2-server/dist/routes/collaboration.js.map +1 -1
  401. package/packages/happy2-server/dist/routes/files.d.ts.map +1 -1
  402. package/packages/happy2-server/dist/routes/files.js +2 -0
  403. package/packages/happy2-server/dist/routes/files.js.map +1 -1
  404. package/packages/happy2-server/dist/routes/permissions.d.ts +6 -0
  405. package/packages/happy2-server/dist/routes/permissions.d.ts.map +1 -0
  406. package/packages/happy2-server/dist/routes/permissions.js +207 -0
  407. package/packages/happy2-server/dist/routes/permissions.js.map +1 -0
  408. package/packages/happy2-server/dist/routes/pluginHost.d.ts +6 -0
  409. package/packages/happy2-server/dist/routes/pluginHost.d.ts.map +1 -0
  410. package/packages/happy2-server/dist/routes/pluginHost.js +106 -0
  411. package/packages/happy2-server/dist/routes/pluginHost.js.map +1 -0
  412. package/packages/happy2-server/dist/routes/plugins.d.ts.map +1 -1
  413. package/packages/happy2-server/dist/routes/plugins.js +159 -5
  414. package/packages/happy2-server/dist/routes/plugins.js.map +1 -1
  415. package/packages/happy2-server/dist/runner.js +20 -1
  416. package/packages/happy2-server/dist/runner.js.map +1 -1
  417. package/packages/happy2-server/dist/server.d.ts +4 -0
  418. package/packages/happy2-server/dist/server.d.ts.map +1 -1
  419. package/packages/happy2-server/dist/server.js +23 -1
  420. package/packages/happy2-server/dist/server.js.map +1 -1
  421. package/packages/happy2-server/dist/systemService.d.ts.map +1 -1
  422. package/packages/happy2-server/dist/systemService.js +16 -1
  423. package/packages/happy2-server/dist/systemService.js.map +1 -1
  424. package/packages/happy2-server/dist/systemService.test.js +15 -1
  425. package/packages/happy2-server/dist/systemService.test.js.map +1 -1
  426. package/packages/happy2-server/dist/web/assets/index-BaPUPGPe.css +2 -0
  427. package/packages/happy2-server/dist/web/assets/index-BnhFxR3U.js +39 -0
  428. package/packages/happy2-server/dist/web/index.html +2 -2
  429. package/packages/happy2-server/drizzle/0022_plugin_container_runtime_tools.sql +16 -0
  430. package/packages/happy2-server/drizzle/0023_roles_and_permissions.sql +82 -0
  431. package/packages/happy2-server/drizzle/0024_session_bound_dev_tokens.sql +11 -0
  432. package/packages/happy2-server/drizzle/0025_plugin_skills.sql +8 -0
  433. package/packages/happy2-server/drizzle/0026_agent_turn_traces.sql +35 -0
  434. package/packages/happy2-server/drizzle/0027_chat_agent_effort.sql +9 -0
  435. package/packages/happy2-server/drizzle/meta/_journal.json +42 -0
  436. package/packages/happy2-server/happy2.example.toml +14 -0
  437. package/packages/happy2-server/plugins/README.md +3 -1
  438. package/packages/happy2-server/plugins/chat-management/container/Dockerfile +6 -0
  439. package/packages/happy2-server/plugins/chat-management/plugin.json +17 -0
  440. package/packages/happy2-server/plugins/chat-management/plugin.png +0 -0
  441. package/packages/happy2-server/plugins/chat-management/server.mjs +113 -0
  442. package/packages/happy2-server/dist/web/assets/index-9SGCQLg7.js +0 -46
  443. package/packages/happy2-server/dist/web/assets/index-DWXBQDJB.css +0 -2
@@ -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"}
@@ -0,0 +1,86 @@
1
+ import { and, asc, eq } from "drizzle-orm";
2
+ import { chatGetAccess } from "../chat/chatGetAccess.js";
3
+ import { CollaborationError } from "../chat/types.js";
4
+ import { agentTurnTraceEntries, agentTurns, messages } from "../schema.js";
5
+ import { asAgentTurnTrace } from "../chat/asAgentTurnTrace.js";
6
+ import { messageIsPast } from "../message/messageIsPast.js";
7
+ /**
8
+ * Reads the complete coalesced execution trace linked to one visible assistant message after rechecking chat access and tombstone/expiry state.
9
+ * 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.
10
+ */
11
+ export async function agentTurnTraceGet(executor, actorUserId, assistantMessageId) {
12
+ const [turn] = await executor
13
+ .select({
14
+ userMessageId: agentTurns.userMessageId,
15
+ agentUserId: agentTurns.agentUserId,
16
+ chatId: agentTurns.chatId,
17
+ status: agentTurns.status,
18
+ startedAt: agentTurns.startedAt,
19
+ completedAt: agentTurns.completedAt,
20
+ traceLatestKind: agentTurns.traceLatestKind,
21
+ traceLatestTitle: agentTurns.traceLatestTitle,
22
+ traceLatestDetail: agentTurns.traceLatestDetail,
23
+ traceLatestAt: agentTurns.traceLatestAt,
24
+ traceEntryCount: agentTurns.traceEntryCount,
25
+ traceSubagentsJson: agentTurns.traceSubagentsJson,
26
+ traceBackgroundTerminalsJson: agentTurns.traceBackgroundTerminalsJson,
27
+ messageDeletedAt: messages.deletedAt,
28
+ messageExpiresAt: messages.expiresAt,
29
+ })
30
+ .from(agentTurns)
31
+ .innerJoin(messages, eq(messages.id, agentTurns.assistantMessageId))
32
+ .where(eq(agentTurns.assistantMessageId, assistantMessageId))
33
+ .limit(1);
34
+ if (!turn ||
35
+ turn.messageDeletedAt !== null ||
36
+ messageIsPast(turn.messageExpiresAt ?? undefined) ||
37
+ !(await chatGetAccess(executor, actorUserId, turn.chatId, false)))
38
+ throw new CollaborationError("not_found", "Agent turn trace was not found");
39
+ const entries = await executor
40
+ .select({
41
+ id: agentTurnTraceEntries.id,
42
+ kind: agentTurnTraceEntries.kind,
43
+ title: agentTurnTraceEntries.title,
44
+ detail: agentTurnTraceEntries.detail,
45
+ status: agentTurnTraceEntries.status,
46
+ occurredAt: agentTurnTraceEntries.occurredAt,
47
+ completedAt: agentTurnTraceEntries.completedAt,
48
+ })
49
+ .from(agentTurnTraceEntries)
50
+ .where(and(eq(agentTurnTraceEntries.userMessageId, turn.userMessageId), eq(agentTurnTraceEntries.agentUserId, turn.agentUserId)))
51
+ .orderBy(asc(agentTurnTraceEntries.occurredAt), asc(agentTurnTraceEntries.createdAt));
52
+ return {
53
+ ...asAgentTurnTrace(turn),
54
+ entries: entries.flatMap((entry) => {
55
+ const kind = traceKind(entry.kind);
56
+ const status = traceEntryStatus(entry.status);
57
+ if (!kind || !status)
58
+ return [];
59
+ return [
60
+ {
61
+ id: entry.id,
62
+ kind,
63
+ title: entry.title,
64
+ ...(entry.detail ? { detail: entry.detail } : {}),
65
+ status,
66
+ occurredAt: entry.occurredAt,
67
+ ...(entry.completedAt === null ? {} : { completedAt: entry.completedAt }),
68
+ },
69
+ ];
70
+ }),
71
+ };
72
+ }
73
+ function traceKind(value) {
74
+ return value === "reasoning" ||
75
+ value === "response" ||
76
+ value === "tool" ||
77
+ value === "subagent" ||
78
+ value === "terminal" ||
79
+ value === "status"
80
+ ? value
81
+ : undefined;
82
+ }
83
+ function traceEntryStatus(value) {
84
+ return value === "running" || value === "complete" || value === "failed" ? value : undefined;
85
+ }
86
+ //# sourceMappingURL=agentTurnTraceGet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentTurnTraceGet.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnTraceGet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { MessageSummary, MutationHint } from "../chat/types.js";
2
+ import type { DrizzleExecutor } from "../drizzle.js";
3
+ /**
4
+ * Materializes the empty assistant reply, links agentTurns, and inserts the first agentTurnTraceEntries span for a worker-owned running turn.
5
+ * This gives clients a stable message identity before response text exists; retries reuse the linked message and only publish a new chat mutation when the trace had to be initialized.
6
+ */
7
+ export declare function agentTurnTraceStart(executor: DrizzleExecutor, input: {
8
+ agentUserId: string;
9
+ actorUserId: string;
10
+ chatId: string;
11
+ sessionId: string;
12
+ startedAt: string;
13
+ userMessageId: string;
14
+ workerId: string;
15
+ }): Promise<{
16
+ message: MessageSummary;
17
+ hint: MutationHint;
18
+ } | undefined>;
19
+ //# sourceMappingURL=agentTurnTraceStart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentTurnTraceStart.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnTraceStart.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQrD;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACpB,GACF,OAAO,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,CAAC,CA4FtE"}
@@ -0,0 +1,87 @@
1
+ import { createId } from "@paralleldrive/cuid2";
2
+ import { and, eq, sql } from "drizzle-orm";
3
+ import { chatAdvanceWithSequence } from "../chat/chatAdvanceWithSequence.js";
4
+ import { chatHint } from "../chat/chatHint.js";
5
+ import { withTransaction } from "../drizzle.js";
6
+ import { messageGetProjection } from "../message/messageGetProjection.js";
7
+ import { messageSendInTransaction } from "../message/messageSendInTransaction.js";
8
+ import { agentTurnTraceEntries, agentTurns, messages } from "../schema.js";
9
+ import { syncSequenceNext } from "../sync/syncSequenceNext.js";
10
+ import { agentReplyMutationId } from "./impl/agentReplyMutationId.js";
11
+ /**
12
+ * Materializes the empty assistant reply, links agentTurns, and inserts the first agentTurnTraceEntries span for a worker-owned running turn.
13
+ * This gives clients a stable message identity before response text exists; retries reuse the linked message and only publish a new chat mutation when the trace had to be initialized.
14
+ */
15
+ export async function agentTurnTraceStart(executor, input) {
16
+ return withTransaction(executor, async (tx) => {
17
+ const [turn] = await tx
18
+ .select({
19
+ assistantMessageId: agentTurns.assistantMessageId,
20
+ traceEntryCount: agentTurns.traceEntryCount,
21
+ })
22
+ .from(agentTurns)
23
+ .where(and(eq(agentTurns.userMessageId, input.userMessageId), eq(agentTurns.agentUserId, input.agentUserId), eq(agentTurns.sessionId, input.sessionId), eq(agentTurns.workerId, input.workerId), eq(agentTurns.status, "running")))
24
+ .limit(1);
25
+ if (!turn || (turn.assistantMessageId && turn.traceEntryCount > 0))
26
+ return undefined;
27
+ let messageId = turn.assistantMessageId ?? undefined;
28
+ let hint;
29
+ if (!messageId) {
30
+ const created = await messageSendInTransaction(tx, {
31
+ actorUserId: input.actorUserId,
32
+ agentSessionId: input.sessionId,
33
+ chatId: input.chatId,
34
+ clientMutationId: agentReplyMutationId(input.sessionId, input.userMessageId),
35
+ deferPublication: true,
36
+ kind: "automated",
37
+ text: "",
38
+ });
39
+ messageId = created.message.id;
40
+ hint = created.hint;
41
+ }
42
+ else {
43
+ const sequence = await syncSequenceNext(tx);
44
+ const mutation = await chatAdvanceWithSequence(tx, sequence, input.agentUserId, input.chatId, "message.streaming", messageId);
45
+ await tx
46
+ .update(messages)
47
+ .set({ changePts: mutation.pts, updatedAt: sql `CURRENT_TIMESTAMP` })
48
+ .where(eq(messages.id, messageId));
49
+ hint = chatHint(sequence, input.chatId, mutation.pts);
50
+ }
51
+ const occurredAt = Date.parse(input.startedAt);
52
+ const linked = await tx
53
+ .update(agentTurns)
54
+ .set({
55
+ assistantMessageId: messageId,
56
+ traceLatestKind: "status",
57
+ traceLatestTitle: "Starting turn",
58
+ traceLatestDetail: null,
59
+ traceLatestAt: occurredAt,
60
+ traceEntryCount: 1,
61
+ updatedAt: sql `CURRENT_TIMESTAMP`,
62
+ })
63
+ .where(and(eq(agentTurns.userMessageId, input.userMessageId), eq(agentTurns.agentUserId, input.agentUserId), eq(agentTurns.sessionId, input.sessionId), eq(agentTurns.workerId, input.workerId), eq(agentTurns.status, "running")))
64
+ .returning({ id: agentTurns.userMessageId });
65
+ if (linked.length !== 1)
66
+ throw new Error("Agent turn trace could not be linked");
67
+ await tx
68
+ .insert(agentTurnTraceEntries)
69
+ .values({
70
+ id: createId(),
71
+ userMessageId: input.userMessageId,
72
+ agentUserId: input.agentUserId,
73
+ traceKey: "turn",
74
+ sessionEventId: `turn-start:${input.startedAt}`,
75
+ kind: "status",
76
+ title: "Starting turn",
77
+ status: "running",
78
+ occurredAt,
79
+ })
80
+ .onConflictDoNothing();
81
+ const message = await messageGetProjection(tx, input.actorUserId, messageId);
82
+ if (!message)
83
+ throw new Error("Agent turn trace message is not readable");
84
+ return { message, hint };
85
+ });
86
+ }
87
+ //# sourceMappingURL=agentTurnTraceStart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentTurnTraceStart.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentTurnTraceStart.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type AgentExecutionImage } from "./agentExecutionImage.js";
2
2
  export interface AgentChatContext {
3
3
  agentUserId: string;
4
- agentEffort?: string;
4
+ agentDefaultEffort?: string;
5
5
  chatId: string;
6
6
  image: AgentExecutionImage;
7
7
  sandboxScope: {
@@ -12,6 +12,7 @@ export interface AgentChatContext {
12
12
  binding?: {
13
13
  containerName: string;
14
14
  cwd: string;
15
+ effort?: string;
15
16
  sessionId: string;
16
17
  };
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentChatContext.d.ts","sourceRoot":"","sources":["../../../../sources/modules/agent/impl/agentChatContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,EAAE;QACV,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL"}
1
+ {"version":3,"file":"agentChatContext.d.ts","sourceRoot":"","sources":["../../../../sources/modules/agent/impl/agentChatContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,EAAE;QACV,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL"}
@@ -1,6 +1,9 @@
1
1
  export interface AgentEffortContext {
2
2
  agentUserId: string;
3
+ agentUsername: string;
4
+ chatId: string;
5
+ defaultEffort?: string;
3
6
  effort?: string;
4
- sessionIds: string[];
7
+ sessionId: string;
5
8
  }
6
9
  //# sourceMappingURL=agentEffortContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentEffortContext.d.ts","sourceRoot":"","sources":["../../../../sources/modules/agent/impl/agentEffortContext.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"agentEffortContext.d.ts","sourceRoot":"","sources":["../../../../sources/modules/agent/impl/agentEffortContext.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB"}
@@ -1,8 +1,8 @@
1
1
  import { type AgentEffortContext } from "./agentEffortContext.js";
2
2
  import { type DrizzleExecutor } from "../../drizzle.js";
3
3
  /**
4
- * Loads a live agent's optional effort and chat-ordered session bindings for an active actor, with an optional creator-or-administrator management check.
5
- * Keeping that authorization beside the projection prevents effort reads and updates from disagreeing about who controls the agent.
4
+ * Loads one accessible chat's active agent membership, durable effort override, profile default, and bound Rig session.
5
+ * Requiring both memberships and the exact chat-agent binding keeps a chat-level selection isolated from every other conversation using the agent.
6
6
  */
7
- export declare function agentEffortContextDb(executor: DrizzleExecutor, actorUserId: string, agentUserId: string, requireManagement: boolean): Promise<AgentEffortContext>;
7
+ export declare function agentEffortContextDb(executor: DrizzleExecutor, actorUserId: string, chatId: string, agentUserId: string): Promise<AgentEffortContext>;
8
8
  //# sourceMappingURL=agentEffortContextDb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentEffortContextDb.d.ts","sourceRoot":"","sources":["../../../../sources/modules/agent/impl/agentEffortContextDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA0C7B"}
1
+ {"version":3,"file":"agentEffortContextDb.d.ts","sourceRoot":"","sources":["../../../../sources/modules/agent/impl/agentEffortContextDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMxD;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,kBAAkB,CAAC,CA2C7B"}