daycare-cli 0.0.10 → 0.0.12

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 (225) hide show
  1. package/dist/commands/channelAddMember.d.ts +2 -0
  2. package/dist/commands/channelAddMember.d.ts.map +1 -0
  3. package/dist/commands/channelAddMember.js +20 -0
  4. package/dist/commands/channelAddMember.js.map +1 -0
  5. package/dist/commands/channelCommands.spec.d.ts +2 -0
  6. package/dist/commands/channelCommands.spec.d.ts.map +1 -0
  7. package/dist/commands/channelCommands.spec.js +95 -0
  8. package/dist/commands/channelCommands.spec.js.map +1 -0
  9. package/dist/commands/channelCreate.d.ts +4 -0
  10. package/dist/commands/channelCreate.d.ts.map +1 -0
  11. package/dist/commands/channelCreate.js +20 -0
  12. package/dist/commands/channelCreate.js.map +1 -0
  13. package/dist/commands/channelList.d.ts +2 -0
  14. package/dist/commands/channelList.d.ts.map +1 -0
  15. package/dist/commands/channelList.js +28 -0
  16. package/dist/commands/channelList.js.map +1 -0
  17. package/dist/commands/channelRemoveMember.d.ts +2 -0
  18. package/dist/commands/channelRemoveMember.d.ts.map +1 -0
  19. package/dist/commands/channelRemoveMember.js +24 -0
  20. package/dist/commands/channelRemoveMember.js.map +1 -0
  21. package/dist/commands/channelSend.d.ts +2 -0
  22. package/dist/commands/channelSend.d.ts.map +1 -0
  23. package/dist/commands/channelSend.js +20 -0
  24. package/dist/commands/channelSend.js.map +1 -0
  25. package/dist/engine/agents/agent.d.ts +0 -1
  26. package/dist/engine/agents/agent.d.ts.map +1 -1
  27. package/dist/engine/agents/agent.js +27 -77
  28. package/dist/engine/agents/agent.js.map +1 -1
  29. package/dist/engine/agents/agentSystem.d.ts +9 -3
  30. package/dist/engine/agents/agentSystem.d.ts.map +1 -1
  31. package/dist/engine/agents/agentSystem.js +13 -8
  32. package/dist/engine/agents/agentSystem.js.map +1 -1
  33. package/dist/engine/agents/ops/agentDescriptorLabel.d.ts.map +1 -1
  34. package/dist/engine/agents/ops/agentDescriptorLabel.js +7 -1
  35. package/dist/engine/agents/ops/agentDescriptorLabel.js.map +1 -1
  36. package/dist/engine/agents/ops/agentDescriptorLabel.spec.js +2 -1
  37. package/dist/engine/agents/ops/agentDescriptorLabel.spec.js.map +1 -1
  38. package/dist/engine/agents/ops/agentDescriptorRead.d.ts.map +1 -1
  39. package/dist/engine/agents/ops/agentDescriptorRead.js +1 -0
  40. package/dist/engine/agents/ops/agentDescriptorRead.js.map +1 -1
  41. package/dist/engine/agents/ops/agentDescriptorTypes.d.ts +1 -0
  42. package/dist/engine/agents/ops/agentDescriptorTypes.d.ts.map +1 -1
  43. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  44. package/dist/engine/agents/ops/agentLoopRun.js +2 -1
  45. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  46. package/dist/engine/agents/ops/agentPermanentList.d.ts.map +1 -1
  47. package/dist/engine/agents/ops/agentPermanentList.js +1 -0
  48. package/dist/engine/agents/ops/agentPermanentList.js.map +1 -1
  49. package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts +1 -1
  50. package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts.map +1 -1
  51. package/dist/engine/agents/ops/agentPromptFilesEnsure.js +2 -3
  52. package/dist/engine/agents/ops/agentPromptFilesEnsure.js.map +1 -1
  53. package/dist/engine/agents/ops/agentTypes.d.ts +1 -11
  54. package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
  55. package/dist/engine/agents/system/_systemAgents.d.ts.map +1 -1
  56. package/dist/engine/agents/system/_systemAgents.js +5 -0
  57. package/dist/engine/agents/system/_systemAgents.js.map +1 -1
  58. package/dist/engine/agents/system/systemAgentPromptResolve.spec.js +6 -0
  59. package/dist/engine/agents/system/systemAgentPromptResolve.spec.js.map +1 -1
  60. package/dist/engine/channels/channelMessageBuild.d.ts +12 -0
  61. package/dist/engine/channels/channelMessageBuild.d.ts.map +1 -0
  62. package/dist/engine/channels/channelMessageBuild.js +92 -0
  63. package/dist/engine/channels/channelMessageBuild.js.map +1 -0
  64. package/dist/engine/channels/channelMessageBuild.spec.d.ts +2 -0
  65. package/dist/engine/channels/channelMessageBuild.spec.d.ts.map +1 -0
  66. package/dist/engine/channels/channelMessageBuild.spec.js +60 -0
  67. package/dist/engine/channels/channelMessageBuild.spec.js.map +1 -0
  68. package/dist/engine/channels/channelStore.d.ts +27 -0
  69. package/dist/engine/channels/channelStore.d.ts.map +1 -0
  70. package/dist/engine/channels/channelStore.js +147 -0
  71. package/dist/engine/channels/channelStore.js.map +1 -0
  72. package/dist/engine/channels/channelStore.spec.d.ts +2 -0
  73. package/dist/engine/channels/channelStore.spec.d.ts.map +1 -0
  74. package/dist/engine/channels/channelStore.spec.js +89 -0
  75. package/dist/engine/channels/channelStore.spec.js.map +1 -0
  76. package/dist/engine/channels/channelTypes.d.ts +31 -0
  77. package/dist/engine/channels/channelTypes.d.ts.map +1 -0
  78. package/dist/engine/channels/channelTypes.js +2 -0
  79. package/dist/engine/channels/channelTypes.js.map +1 -0
  80. package/dist/engine/channels/channels.d.ts +34 -0
  81. package/dist/engine/channels/channels.d.ts.map +1 -0
  82. package/dist/engine/channels/channels.js +269 -0
  83. package/dist/engine/channels/channels.js.map +1 -0
  84. package/dist/engine/channels/channels.spec.d.ts +2 -0
  85. package/dist/engine/channels/channels.spec.d.ts.map +1 -0
  86. package/dist/engine/channels/channels.spec.js +132 -0
  87. package/dist/engine/channels/channels.spec.js.map +1 -0
  88. package/dist/engine/cron/crons.d.ts.map +1 -1
  89. package/dist/engine/cron/crons.js +26 -18
  90. package/dist/engine/cron/crons.js.map +1 -1
  91. package/dist/engine/engine.d.ts +4 -0
  92. package/dist/engine/engine.d.ts.map +1 -1
  93. package/dist/engine/engine.js +35 -11
  94. package/dist/engine/engine.js.map +1 -1
  95. package/dist/engine/engine.spec.js +114 -0
  96. package/dist/engine/engine.spec.js.map +1 -1
  97. package/dist/engine/heartbeat/heartbeats.d.ts.map +1 -1
  98. package/dist/engine/heartbeat/heartbeats.js +18 -4
  99. package/dist/engine/heartbeat/heartbeats.js.map +1 -1
  100. package/dist/engine/ipc/client.d.ts +9 -1
  101. package/dist/engine/ipc/client.d.ts.map +1 -1
  102. package/dist/engine/ipc/client.js +84 -0
  103. package/dist/engine/ipc/client.js.map +1 -1
  104. package/dist/engine/ipc/server.d.ts.map +1 -1
  105. package/dist/engine/ipc/server.js +84 -0
  106. package/dist/engine/ipc/server.js.map +1 -1
  107. package/dist/engine/modules/connectors/types.d.ts +6 -4
  108. package/dist/engine/modules/connectors/types.d.ts.map +1 -1
  109. package/dist/engine/modules/tools/channelCreateTool.d.ts +4 -0
  110. package/dist/engine/modules/tools/channelCreateTool.d.ts.map +1 -0
  111. package/dist/engine/modules/tools/channelCreateTool.js +34 -0
  112. package/dist/engine/modules/tools/channelCreateTool.js.map +1 -0
  113. package/dist/engine/modules/tools/channelCreateTool.spec.d.ts +2 -0
  114. package/dist/engine/modules/tools/channelCreateTool.spec.d.ts.map +1 -0
  115. package/dist/engine/modules/tools/channelCreateTool.spec.js +41 -0
  116. package/dist/engine/modules/tools/channelCreateTool.spec.js.map +1 -0
  117. package/dist/engine/modules/tools/channelHistoryTool.d.ts +4 -0
  118. package/dist/engine/modules/tools/channelHistoryTool.d.ts.map +1 -0
  119. package/dist/engine/modules/tools/channelHistoryTool.js +37 -0
  120. package/dist/engine/modules/tools/channelHistoryTool.js.map +1 -0
  121. package/dist/engine/modules/tools/channelHistoryTool.spec.d.ts +2 -0
  122. package/dist/engine/modules/tools/channelHistoryTool.spec.d.ts.map +1 -0
  123. package/dist/engine/modules/tools/channelHistoryTool.spec.js +58 -0
  124. package/dist/engine/modules/tools/channelHistoryTool.spec.js.map +1 -0
  125. package/dist/engine/modules/tools/channelMemberTool.d.ts +5 -0
  126. package/dist/engine/modules/tools/channelMemberTool.d.ts.map +1 -0
  127. package/dist/engine/modules/tools/channelMemberTool.js +73 -0
  128. package/dist/engine/modules/tools/channelMemberTool.js.map +1 -0
  129. package/dist/engine/modules/tools/channelMemberTool.spec.d.ts +2 -0
  130. package/dist/engine/modules/tools/channelMemberTool.spec.d.ts.map +1 -0
  131. package/dist/engine/modules/tools/channelMemberTool.spec.js +56 -0
  132. package/dist/engine/modules/tools/channelMemberTool.spec.js.map +1 -0
  133. package/dist/engine/modules/tools/channelSendTool.d.ts +4 -0
  134. package/dist/engine/modules/tools/channelSendTool.d.ts.map +1 -0
  135. package/dist/engine/modules/tools/channelSendTool.js +63 -0
  136. package/dist/engine/modules/tools/channelSendTool.js.map +1 -0
  137. package/dist/engine/modules/tools/channelSendTool.spec.d.ts +2 -0
  138. package/dist/engine/modules/tools/channelSendTool.spec.d.ts.map +1 -0
  139. package/dist/engine/modules/tools/channelSendTool.spec.js +58 -0
  140. package/dist/engine/modules/tools/channelSendTool.spec.js.map +1 -0
  141. package/dist/engine/modules/tools/heartbeat.d.ts +0 -1
  142. package/dist/engine/modules/tools/heartbeat.d.ts.map +1 -1
  143. package/dist/engine/modules/tools/heartbeat.js +0 -37
  144. package/dist/engine/modules/tools/heartbeat.js.map +1 -1
  145. package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
  146. package/dist/engine/modules/tools/permanentAgentToolBuild.js +10 -0
  147. package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
  148. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +27 -0
  149. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
  150. package/dist/engine/modules/tools/permissionRequestRegistry.d.ts +13 -0
  151. package/dist/engine/modules/tools/permissionRequestRegistry.d.ts.map +1 -0
  152. package/dist/engine/modules/tools/permissionRequestRegistry.js +51 -0
  153. package/dist/engine/modules/tools/permissionRequestRegistry.js.map +1 -0
  154. package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts +2 -0
  155. package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts.map +1 -0
  156. package/dist/engine/modules/tools/permissionRequestRegistry.spec.js +47 -0
  157. package/dist/engine/modules/tools/permissionRequestRegistry.spec.js.map +1 -0
  158. package/dist/engine/modules/tools/permissions.d.ts.map +1 -1
  159. package/dist/engine/modules/tools/permissions.js +86 -16
  160. package/dist/engine/modules/tools/permissions.js.map +1 -1
  161. package/dist/engine/modules/tools/permissions.spec.d.ts +2 -0
  162. package/dist/engine/modules/tools/permissions.spec.d.ts.map +1 -0
  163. package/dist/engine/modules/tools/permissions.spec.js +244 -0
  164. package/dist/engine/modules/tools/permissions.spec.js.map +1 -0
  165. package/dist/engine/modules/tools/topologyToolBuild.d.ts +10 -0
  166. package/dist/engine/modules/tools/topologyToolBuild.d.ts.map +1 -0
  167. package/dist/engine/modules/tools/topologyToolBuild.js +157 -0
  168. package/dist/engine/modules/tools/topologyToolBuild.js.map +1 -0
  169. package/dist/engine/modules/tools/topologyToolBuild.spec.d.ts +2 -0
  170. package/dist/engine/modules/tools/topologyToolBuild.spec.d.ts.map +1 -0
  171. package/dist/engine/modules/tools/topologyToolBuild.spec.js +264 -0
  172. package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -0
  173. package/dist/engine/modules/tools/types.d.ts +2 -0
  174. package/dist/engine/modules/tools/types.d.ts.map +1 -1
  175. package/dist/engine/permissions/permissionApply.d.ts.map +1 -1
  176. package/dist/engine/permissions/permissionApply.js +3 -1
  177. package/dist/engine/permissions/permissionApply.js.map +1 -1
  178. package/dist/engine/permissions/permissionApply.spec.js +17 -14
  179. package/dist/engine/permissions/permissionApply.spec.js.map +1 -1
  180. package/dist/engine/permissions/permissionBuildCronSession.d.ts +7 -0
  181. package/dist/engine/permissions/permissionBuildCronSession.d.ts.map +1 -0
  182. package/dist/engine/permissions/permissionBuildCronSession.js +18 -0
  183. package/dist/engine/permissions/permissionBuildCronSession.js.map +1 -0
  184. package/dist/engine/permissions/permissionBuildCronSession.spec.d.ts +2 -0
  185. package/dist/engine/permissions/permissionBuildCronSession.spec.d.ts.map +1 -0
  186. package/dist/engine/permissions/permissionBuildCronSession.spec.js +27 -0
  187. package/dist/engine/permissions/permissionBuildCronSession.spec.js.map +1 -0
  188. package/dist/engine/permissions/permissionBuildDefault.d.ts.map +1 -1
  189. package/dist/engine/permissions/permissionBuildDefault.js +1 -2
  190. package/dist/engine/permissions/permissionBuildDefault.js.map +1 -1
  191. package/dist/engine/skills/skillListUser.d.ts +8 -0
  192. package/dist/engine/skills/skillListUser.d.ts.map +1 -0
  193. package/dist/engine/skills/skillListUser.js +31 -0
  194. package/dist/engine/skills/skillListUser.js.map +1 -0
  195. package/dist/engine/skills/skillListUser.spec.d.ts +2 -0
  196. package/dist/engine/skills/skillListUser.spec.d.ts.map +1 -0
  197. package/dist/engine/skills/skillListUser.spec.js +38 -0
  198. package/dist/engine/skills/skillListUser.spec.js.map +1 -0
  199. package/dist/engine/skills/skillResolve.js +3 -0
  200. package/dist/engine/skills/skillResolve.js.map +1 -1
  201. package/dist/engine/skills/skillTypes.d.ts +4 -1
  202. package/dist/engine/skills/skillTypes.d.ts.map +1 -1
  203. package/dist/main.js +35 -0
  204. package/dist/main.js.map +1 -1
  205. package/dist/paths.d.ts +1 -1
  206. package/dist/paths.d.ts.map +1 -1
  207. package/dist/paths.js +1 -1
  208. package/dist/paths.js.map +1 -1
  209. package/dist/plugins/telegram/connector.d.ts.map +1 -1
  210. package/dist/plugins/telegram/connector.js +6 -11
  211. package/dist/plugins/telegram/connector.js.map +1 -1
  212. package/dist/plugins/telegram/connector.spec.js +10 -2
  213. package/dist/plugins/telegram/connector.spec.js.map +1 -1
  214. package/dist/plugins/whatsapp/connector.d.ts.map +1 -1
  215. package/dist/plugins/whatsapp/connector.js +6 -10
  216. package/dist/plugins/whatsapp/connector.js.map +1 -1
  217. package/dist/prompts/ACTORS.md +12 -4
  218. package/dist/prompts/CRON.md +8 -0
  219. package/dist/prompts/MEMORY.md +0 -1
  220. package/dist/prompts/PERMISSIONS.md +5 -4
  221. package/dist/prompts/SYSTEM.md +33 -27
  222. package/dist/skills/skills/scheduling/SKILL.md +2 -2
  223. package/dist/types.d.ts +2 -1
  224. package/dist/types.d.ts.map +1 -1
  225. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agentPermanentList.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentPermanentList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAIzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,IAAI,OAAO,GAAwD,EAAE,CAAC;IACtE,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,IAAI,UAAU,GAAoD,IAAI,CAAC;QACvE,IAAI,KAAK,GAA+C,IAAI,CAAC;QAC7D,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,OAAO;YACP,UAAU,EAAE;gBACV,GAAG,UAAU;gBACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC5B,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC1C,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC5C,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E;YACD,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"agentPermanentList.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentPermanentList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAIzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,IAAI,OAAO,GAAwD,EAAE,CAAC;IACtE,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,IAAI,UAAU,GAAoD,IAAI,CAAC;QACvE,IAAI,KAAK,GAA+C,IAAI,CAAC;QAC7D,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxD,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,OAAO;YACP,UAAU,EAAE;gBACV,GAAG,UAAU;gBACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC5B,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC1C,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC5C,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E;YACD,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Ensures the default prompt files (SOUL, USER, ACTORS, AGENTS, TOOLS, MEMORY) exist on disk.
2
+ * Ensures the default prompt files (SOUL, USER, AGENTS, TOOLS, MEMORY) exist on disk.
3
3
  * Expects: caller wants bundled defaults written when missing.
4
4
  */
5
5
  export declare function agentPromptFilesEnsure(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"agentPromptFilesEnsure.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentPromptFilesEnsure.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO5D"}
1
+ {"version":3,"file":"agentPromptFilesEnsure.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentPromptFilesEnsure.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM5D"}
@@ -1,15 +1,14 @@
1
1
  import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
- import { DEFAULT_AGENTS_PATH, DEFAULT_ACTORS_PATH, DEFAULT_MEMORY_PATH, DEFAULT_SOUL_PATH, DEFAULT_TOOLS_PATH, DEFAULT_USER_PATH } from "../../../paths.js";
3
+ import { DEFAULT_AGENTS_PATH, DEFAULT_MEMORY_PATH, DEFAULT_SOUL_PATH, DEFAULT_TOOLS_PATH, DEFAULT_USER_PATH } from "../../../paths.js";
4
4
  import { agentPromptBundledRead } from "./agentPromptBundledRead.js";
5
5
  /**
6
- * Ensures the default prompt files (SOUL, USER, ACTORS, AGENTS, TOOLS, MEMORY) exist on disk.
6
+ * Ensures the default prompt files (SOUL, USER, AGENTS, TOOLS, MEMORY) exist on disk.
7
7
  * Expects: caller wants bundled defaults written when missing.
8
8
  */
9
9
  export async function agentPromptFilesEnsure() {
10
10
  await promptFileEnsure(DEFAULT_SOUL_PATH, "SOUL.md");
11
11
  await promptFileEnsure(DEFAULT_USER_PATH, "USER.md");
12
- await promptFileEnsure(DEFAULT_ACTORS_PATH, "ACTORS.md");
13
12
  await promptFileEnsure(DEFAULT_AGENTS_PATH, "AGENTS.md");
14
13
  await promptFileEnsure(DEFAULT_TOOLS_PATH, "TOOLS.md");
15
14
  await promptFileEnsure(DEFAULT_MEMORY_PATH, "MEMORY.md");
@@ -1 +1 @@
1
- {"version":3,"file":"agentPromptFilesEnsure.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentPromptFilesEnsure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"agentPromptFilesEnsure.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentPromptFilesEnsure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { Context, ToolCall } from "@mariozechner/pi-ai";
2
- import type { ConnectorMessage, FileReference, MessageContext, PermissionDecision, Signal, SessionPermissions, ToolExecutionResult } from "@/types";
2
+ import type { ConnectorMessage, FileReference, MessageContext, Signal, SessionPermissions, ToolExecutionResult } from "@/types";
3
3
  import type { AgentDescriptor } from "./agentDescriptorTypes.js";
4
4
  export type AgentMessage = {
5
5
  id: string;
@@ -78,10 +78,6 @@ export type AgentInboxItem = {
78
78
  type: "reset";
79
79
  message?: string;
80
80
  context?: MessageContext;
81
- } | {
82
- type: "permission";
83
- decision: PermissionDecision;
84
- context: MessageContext;
85
81
  } | {
86
82
  type: "restore";
87
83
  };
@@ -100,9 +96,6 @@ export type AgentInboxReset = Extract<AgentInboxItem, {
100
96
  export type AgentInboxRestore = Extract<AgentInboxItem, {
101
97
  type: "restore";
102
98
  }>;
103
- export type AgentInboxPermission = Extract<AgentInboxItem, {
104
- type: "permission";
105
- }>;
106
99
  export type AgentInboxResult = {
107
100
  type: "message";
108
101
  responseText: string | null;
@@ -119,9 +112,6 @@ export type AgentInboxResult = {
119
112
  } | {
120
113
  type: "restore";
121
114
  ok: boolean;
122
- } | {
123
- type: "permission";
124
- ok: boolean;
125
115
  };
126
116
  export type AgentInboxCompletion = {
127
117
  resolve: (result: AgentInboxResult) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"agentTypes.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentTypes.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_systemAgents.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/system/_systemAgents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EAWzD,CAAC"}
1
+ {"version":3,"file":"_systemAgents.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/system/_systemAgents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EAgBzD,CAAC"}
@@ -8,6 +8,11 @@ export const SYSTEM_AGENTS = [
8
8
  promptFile: "HEARTBEAT.md",
9
9
  replaceSystemPrompt: false
10
10
  },
11
+ {
12
+ tag: "cron",
13
+ promptFile: "CRON.md",
14
+ replaceSystemPrompt: false
15
+ },
11
16
  {
12
17
  tag: "architect",
13
18
  promptFile: "ARCHITECT.md",
@@ -1 +1 @@
1
- {"version":3,"file":"_systemAgents.js","sourceRoot":"","sources":["../../../../sources/engine/agents/system/_systemAgents.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAqC;IAC7D;QACE,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,cAAc;QAC1B,mBAAmB,EAAE,KAAK;KAC3B;IACD;QACE,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,cAAc;QAC1B,mBAAmB,EAAE,IAAI;KAC1B;CACF,CAAC"}
1
+ {"version":3,"file":"_systemAgents.js","sourceRoot":"","sources":["../../../../sources/engine/agents/system/_systemAgents.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAqC;IAC7D;QACE,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,cAAc;QAC1B,mBAAmB,EAAE,KAAK;KAC3B;IACD;QACE,GAAG,EAAE,MAAM;QACX,UAAU,EAAE,SAAS;QACrB,mBAAmB,EAAE,KAAK;KAC3B;IACD;QACE,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,cAAc;QAC1B,mBAAmB,EAAE,IAAI;KAC1B;CACF,CAAC"}
@@ -7,6 +7,12 @@ describe("systemAgentPromptResolve", () => {
7
7
  expect(heartbeat?.systemPrompt.length).toBeGreaterThan(0);
8
8
  expect(heartbeat?.replaceSystemPrompt).toBe(false);
9
9
  });
10
+ it("resolves cron prompt without replacing base system prompt", async () => {
11
+ const cron = await systemAgentPromptResolve("cron");
12
+ expect(cron?.tag).toBe("cron");
13
+ expect(cron?.systemPrompt.length).toBeGreaterThan(0);
14
+ expect(cron?.replaceSystemPrompt).toBe(false);
15
+ });
10
16
  it("resolves architect prompt with full prompt replacement enabled", async () => {
11
17
  const architect = await systemAgentPromptResolve("architect");
12
18
  expect(architect?.tag).toBe("architect");
@@ -1 +1 @@
1
- {"version":3,"file":"systemAgentPromptResolve.spec.js","sourceRoot":"","sources":["../../../../sources/engine/agents/system/systemAgentPromptResolve.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"systemAgentPromptResolve.spec.js","sourceRoot":"","sources":["../../../../sources/engine/agents/system/systemAgentPromptResolve.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAGH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ChannelSignalData } from "@/types";
2
+ /**
3
+ * Formats a channel signal payload into a readable system message for agents.
4
+ * Expects: data fields have already been validated.
5
+ */
6
+ export declare function channelMessageBuild(data: ChannelSignalData): string;
7
+ /**
8
+ * Safely parses channel signal data from a generic signal payload.
9
+ * Returns: null when payload shape does not match ChannelSignalData.
10
+ */
11
+ export declare function channelSignalDataParse(data: unknown): ChannelSignalData | null;
12
+ //# sourceMappingURL=channelMessageBuild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelMessageBuild.d.ts","sourceRoot":"","sources":["../../../sources/engine/channels/channelMessageBuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAenE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAgE9E"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Formats a channel signal payload into a readable system message for agents.
3
+ * Expects: data fields have already been validated.
4
+ */
5
+ export function channelMessageBuild(data) {
6
+ const mentionText = data.mentions.length > 0
7
+ ? data.mentions.map((mention) => `@${mention}`).join(", ")
8
+ : "none";
9
+ const lines = [
10
+ `[Channel: #${data.channelName}] @${data.senderUsername}: ${data.text}`,
11
+ `mentions: ${mentionText}`
12
+ ];
13
+ const recentHistory = historyContextBuild(data.history, data.messageId);
14
+ if (recentHistory.length > 0) {
15
+ lines.push("recent:");
16
+ lines.push(...recentHistory.map((line) => `- ${line}`));
17
+ }
18
+ return lines.join("\n");
19
+ }
20
+ /**
21
+ * Safely parses channel signal data from a generic signal payload.
22
+ * Returns: null when payload shape does not match ChannelSignalData.
23
+ */
24
+ export function channelSignalDataParse(data) {
25
+ if (!isRecord(data)) {
26
+ return null;
27
+ }
28
+ if (typeof data.channelName !== "string" ||
29
+ typeof data.messageId !== "string" ||
30
+ typeof data.senderUsername !== "string" ||
31
+ typeof data.text !== "string" ||
32
+ typeof data.createdAt !== "number" ||
33
+ !Array.isArray(data.mentions) ||
34
+ !Array.isArray(data.history)) {
35
+ return null;
36
+ }
37
+ const mentions = [];
38
+ for (const mention of data.mentions) {
39
+ if (typeof mention !== "string") {
40
+ return null;
41
+ }
42
+ mentions.push(mention);
43
+ }
44
+ const history = [];
45
+ for (const entry of data.history) {
46
+ if (!isRecord(entry)) {
47
+ return null;
48
+ }
49
+ if (typeof entry.id !== "string" ||
50
+ typeof entry.channelName !== "string" ||
51
+ typeof entry.senderUsername !== "string" ||
52
+ typeof entry.text !== "string" ||
53
+ typeof entry.createdAt !== "number" ||
54
+ !Array.isArray(entry.mentions)) {
55
+ return null;
56
+ }
57
+ const entryMentions = [];
58
+ for (const mention of entry.mentions) {
59
+ if (typeof mention !== "string") {
60
+ return null;
61
+ }
62
+ entryMentions.push(mention);
63
+ }
64
+ history.push({
65
+ id: entry.id,
66
+ channelName: entry.channelName,
67
+ senderUsername: entry.senderUsername,
68
+ text: entry.text,
69
+ mentions: entryMentions,
70
+ createdAt: entry.createdAt
71
+ });
72
+ }
73
+ return {
74
+ channelName: data.channelName,
75
+ messageId: data.messageId,
76
+ senderUsername: data.senderUsername,
77
+ text: data.text,
78
+ mentions,
79
+ createdAt: data.createdAt,
80
+ history
81
+ };
82
+ }
83
+ function historyContextBuild(history, currentMessageId) {
84
+ return history
85
+ .filter((entry) => entry.id !== currentMessageId)
86
+ .slice(-5)
87
+ .map((entry) => `@${entry.senderUsername}: ${entry.text}`);
88
+ }
89
+ function isRecord(value) {
90
+ return typeof value === "object" && value !== null;
91
+ }
92
+ //# sourceMappingURL=channelMessageBuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelMessageBuild.js","sourceRoot":"","sources":["../../../sources/engine/channels/channelMessageBuild.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=channelMessageBuild.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelMessageBuild.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/channels/channelMessageBuild.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { channelMessageBuild, channelSignalDataParse } from "./channelMessageBuild.js";
3
+ describe("channelMessageBuild", () => {
4
+ it("formats channel messages with mentions and history", () => {
5
+ const text = channelMessageBuild({
6
+ channelName: "dev",
7
+ messageId: "m3",
8
+ senderUsername: "alice",
9
+ text: "check this out",
10
+ mentions: ["bob", "carol"],
11
+ createdAt: 3,
12
+ history: [
13
+ {
14
+ id: "m1",
15
+ channelName: "dev",
16
+ senderUsername: "bob",
17
+ text: "hi",
18
+ mentions: [],
19
+ createdAt: 1
20
+ },
21
+ {
22
+ id: "m2",
23
+ channelName: "dev",
24
+ senderUsername: "carol",
25
+ text: "hello",
26
+ mentions: ["alice"],
27
+ createdAt: 2
28
+ },
29
+ {
30
+ id: "m3",
31
+ channelName: "dev",
32
+ senderUsername: "alice",
33
+ text: "check this out",
34
+ mentions: ["bob", "carol"],
35
+ createdAt: 3
36
+ }
37
+ ]
38
+ });
39
+ expect(text).toContain("[Channel: #dev] @alice: check this out");
40
+ expect(text).toContain("mentions: @bob, @carol");
41
+ expect(text).toContain("recent:");
42
+ expect(text).toContain("- @bob: hi");
43
+ expect(text).toContain("- @carol: hello");
44
+ expect(text).not.toContain("- @alice: check this out");
45
+ });
46
+ it("returns null when channel signal payload shape is invalid", () => {
47
+ expect(channelSignalDataParse(null)).toBeNull();
48
+ expect(channelSignalDataParse({ channelName: "dev" })).toBeNull();
49
+ expect(channelSignalDataParse({
50
+ channelName: "dev",
51
+ messageId: "m1",
52
+ senderUsername: "alice",
53
+ text: "hello",
54
+ mentions: [],
55
+ createdAt: Date.now(),
56
+ history: []
57
+ })).not.toBeNull();
58
+ });
59
+ });
60
+ //# sourceMappingURL=channelMessageBuild.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelMessageBuild.spec.js","sourceRoot":"","sources":["../../../sources/engine/channels/channelMessageBuild.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAG,mBAAmB,CAAC;YAC/B,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,OAAO;YACvB,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YAC1B,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,KAAK;oBAClB,cAAc,EAAE,KAAK;oBACrB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,CAAC;iBACb;gBACD;oBACE,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,KAAK;oBAClB,cAAc,EAAE,OAAO;oBACvB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,CAAC,OAAO,CAAC;oBACnB,SAAS,EAAE,CAAC;iBACb;gBACD;oBACE,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,KAAK;oBAClB,cAAc,EAAE,OAAO;oBACvB,IAAI,EAAE,gBAAgB;oBACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;oBAC1B,SAAS,EAAE,CAAC;iBACb;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,CAAC,sBAAsB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,MAAM,CACJ,sBAAsB,CAAC;YACrB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,OAAO;YACvB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,EAAE;SACZ,CAAC,CACH,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { Channel, ChannelMessage } from "@/types";
2
+ /**
3
+ * Normalizes and validates a channel name used for disk paths and signal keys.
4
+ * Expects: input name contains only a-z, 0-9, dot, underscore, or dash.
5
+ */
6
+ export declare function channelNameNormalize(name: string): string;
7
+ /**
8
+ * Loads a channel definition from `<baseDir>/<name>/channel.json`.
9
+ * Returns: null when the channel file does not exist.
10
+ */
11
+ export declare function channelLoad(baseDir: string, name: string): Promise<Channel | null>;
12
+ /**
13
+ * Persists a channel definition to `<baseDir>/<name>/channel.json`.
14
+ * Expects: channel.name is a valid normalized channel name.
15
+ */
16
+ export declare function channelSave(baseDir: string, channel: Channel): Promise<void>;
17
+ /**
18
+ * Appends a channel message to `<baseDir>/<name>/history.jsonl`.
19
+ * Expects: message.channelName matches the target channel name.
20
+ */
21
+ export declare function channelAppendMessage(baseDir: string, name: string, message: ChannelMessage): Promise<void>;
22
+ /**
23
+ * Reads recent channel history from `<baseDir>/<name>/history.jsonl`.
24
+ * Returns: an empty array when no history file exists.
25
+ */
26
+ export declare function channelReadHistory(baseDir: string, name: string, limit?: number): Promise<ChannelMessage[]>;
27
+ //# sourceMappingURL=channelStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelStore.d.ts","sourceRoot":"","sources":["../../../sources/engine/channels/channelStore.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmCvD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAiBzB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASlF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,SAAK,GACT,OAAO,CAAC,cAAc,EAAE,CAAC,CAmC3B"}
@@ -0,0 +1,147 @@
1
+ import { promises as fs } from "node:fs";
2
+ import path from "node:path";
3
+ import { z } from "zod";
4
+ import { atomicWrite } from "../../util/atomicWrite.js";
5
+ const CHANNEL_NAME_PATTERN = /^[a-z0-9][a-z0-9_-]{0,79}$/;
6
+ const channelMessageSchema = z
7
+ .object({
8
+ id: z.string().min(1),
9
+ channelName: z.string().min(1),
10
+ senderUsername: z.string().min(1),
11
+ text: z.string(),
12
+ mentions: z.array(z.string().min(1)),
13
+ createdAt: z.number().int().nonnegative()
14
+ })
15
+ .strict();
16
+ const channelSchema = z
17
+ .object({
18
+ id: z.string().min(1),
19
+ name: z.string().min(1),
20
+ leader: z.string().min(1),
21
+ members: z.array(z
22
+ .object({
23
+ agentId: z.string().min(1),
24
+ username: z.string().min(1),
25
+ joinedAt: z.number().int().nonnegative()
26
+ })
27
+ .strict()),
28
+ createdAt: z.number().int().nonnegative(),
29
+ updatedAt: z.number().int().nonnegative()
30
+ })
31
+ .strict();
32
+ /**
33
+ * Normalizes and validates a channel name used for disk paths and signal keys.
34
+ * Expects: input name contains only a-z, 0-9, dot, underscore, or dash.
35
+ */
36
+ export function channelNameNormalize(name) {
37
+ const normalized = name.trim().toLowerCase();
38
+ if (!CHANNEL_NAME_PATTERN.test(normalized)) {
39
+ throw new Error("Channel name must be Slack-style: lowercase letters, numbers, hyphen, underscore (max 80 chars).");
40
+ }
41
+ return normalized;
42
+ }
43
+ /**
44
+ * Loads a channel definition from `<baseDir>/<name>/channel.json`.
45
+ * Returns: null when the channel file does not exist.
46
+ */
47
+ export async function channelLoad(baseDir, name) {
48
+ const channelName = channelNameNormalize(name);
49
+ const filePath = channelFilePathBuild(baseDir, channelName);
50
+ let raw = "";
51
+ try {
52
+ raw = await fs.readFile(filePath, "utf8");
53
+ }
54
+ catch (error) {
55
+ if (error.code === "ENOENT") {
56
+ return null;
57
+ }
58
+ throw error;
59
+ }
60
+ const parsed = channelSchema.parse(JSON.parse(raw));
61
+ if (parsed.name !== channelName) {
62
+ throw new Error(`Channel file name mismatch: expected "${channelName}".`);
63
+ }
64
+ return parsed;
65
+ }
66
+ /**
67
+ * Persists a channel definition to `<baseDir>/<name>/channel.json`.
68
+ * Expects: channel.name is a valid normalized channel name.
69
+ */
70
+ export async function channelSave(baseDir, channel) {
71
+ const channelName = channelNameNormalize(channel.name);
72
+ const payload = channelSchema.parse({ ...channel, name: channelName });
73
+ const directory = channelDirectoryPathBuild(baseDir, channelName);
74
+ await fs.mkdir(directory, { recursive: true });
75
+ await atomicWrite(channelFilePathBuild(baseDir, channelName), `${JSON.stringify(payload, null, 2)}\n`);
76
+ }
77
+ /**
78
+ * Appends a channel message to `<baseDir>/<name>/history.jsonl`.
79
+ * Expects: message.channelName matches the target channel name.
80
+ */
81
+ export async function channelAppendMessage(baseDir, name, message) {
82
+ const channelName = channelNameNormalize(name);
83
+ const payload = channelMessageSchema.parse({
84
+ ...message,
85
+ channelName
86
+ });
87
+ const directory = channelDirectoryPathBuild(baseDir, channelName);
88
+ await fs.mkdir(directory, { recursive: true });
89
+ await fs.appendFile(channelHistoryPathBuild(baseDir, channelName), `${JSON.stringify(payload)}\n`, "utf8");
90
+ }
91
+ /**
92
+ * Reads recent channel history from `<baseDir>/<name>/history.jsonl`.
93
+ * Returns: an empty array when no history file exists.
94
+ */
95
+ export async function channelReadHistory(baseDir, name, limit = 50) {
96
+ const channelName = channelNameNormalize(name);
97
+ const normalizedLimit = channelLimitNormalize(limit);
98
+ const filePath = channelHistoryPathBuild(baseDir, channelName);
99
+ let raw = "";
100
+ try {
101
+ raw = await fs.readFile(filePath, "utf8");
102
+ }
103
+ catch (error) {
104
+ if (error.code === "ENOENT") {
105
+ return [];
106
+ }
107
+ throw error;
108
+ }
109
+ const lines = raw.split("\n").filter((line) => line.trim().length > 0);
110
+ if (lines.length === 0) {
111
+ return [];
112
+ }
113
+ const start = Math.max(0, lines.length - normalizedLimit);
114
+ const recent = lines.slice(start);
115
+ const result = [];
116
+ for (const line of recent) {
117
+ let rawValue = null;
118
+ try {
119
+ rawValue = JSON.parse(line);
120
+ }
121
+ catch {
122
+ continue;
123
+ }
124
+ const parsed = channelMessageSchema.safeParse(rawValue);
125
+ if (!parsed.success) {
126
+ continue;
127
+ }
128
+ result.push(parsed.data);
129
+ }
130
+ return result;
131
+ }
132
+ function channelDirectoryPathBuild(baseDir, name) {
133
+ return path.join(baseDir, name);
134
+ }
135
+ function channelFilePathBuild(baseDir, name) {
136
+ return path.join(channelDirectoryPathBuild(baseDir, name), "channel.json");
137
+ }
138
+ function channelHistoryPathBuild(baseDir, name) {
139
+ return path.join(channelDirectoryPathBuild(baseDir, name), "history.jsonl");
140
+ }
141
+ function channelLimitNormalize(limit) {
142
+ if (!Number.isFinite(limit)) {
143
+ return 50;
144
+ }
145
+ return Math.min(500, Math.max(1, Math.floor(limit)));
146
+ }
147
+ //# sourceMappingURL=channelStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelStore.js","sourceRoot":"","sources":["../../../sources/engine/channels/channelStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=channelStore.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelStore.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/channels/channelStore.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
1
+ import { mkdtemp, rm } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { describe, expect, it } from "vitest";
5
+ import { channelAppendMessage, channelLoad, channelNameNormalize, channelReadHistory, channelSave } from "./channelStore.js";
6
+ describe("channelStore", () => {
7
+ it("saves and loads channel definitions", async () => {
8
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-channel-store-"));
9
+ try {
10
+ const channel = {
11
+ id: "channel-1",
12
+ name: "dev",
13
+ leader: "agent-leader",
14
+ members: [
15
+ { agentId: "agent-a", username: "alice", joinedAt: 1 }
16
+ ],
17
+ createdAt: 1,
18
+ updatedAt: 2
19
+ };
20
+ await channelSave(dir, channel);
21
+ const loaded = await channelLoad(dir, "dev");
22
+ expect(loaded).toEqual(channel);
23
+ }
24
+ finally {
25
+ await rm(dir, { recursive: true, force: true });
26
+ }
27
+ });
28
+ it("appends and reads channel message history with limits", async () => {
29
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-channel-store-"));
30
+ try {
31
+ const channel = {
32
+ id: "channel-1",
33
+ name: "dev",
34
+ leader: "agent-leader",
35
+ members: [],
36
+ createdAt: 1,
37
+ updatedAt: 1
38
+ };
39
+ await channelSave(dir, channel);
40
+ await channelAppendMessage(dir, "dev", {
41
+ id: "m1",
42
+ channelName: "dev",
43
+ senderUsername: "alice",
44
+ text: "hello",
45
+ mentions: [],
46
+ createdAt: 10
47
+ });
48
+ await channelAppendMessage(dir, "dev", {
49
+ id: "m2",
50
+ channelName: "dev",
51
+ senderUsername: "bob",
52
+ text: "hi",
53
+ mentions: ["alice"],
54
+ createdAt: 20
55
+ });
56
+ const full = await channelReadHistory(dir, "dev");
57
+ const limited = await channelReadHistory(dir, "dev", 1);
58
+ expect(full).toHaveLength(2);
59
+ expect(full[0]?.id).toBe("m1");
60
+ expect(full[1]?.id).toBe("m2");
61
+ expect(limited).toHaveLength(1);
62
+ expect(limited[0]?.id).toBe("m2");
63
+ }
64
+ finally {
65
+ await rm(dir, { recursive: true, force: true });
66
+ }
67
+ });
68
+ it("returns null or empty history for missing channels", async () => {
69
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-channel-store-"));
70
+ try {
71
+ expect(await channelLoad(dir, "dev")).toBeNull();
72
+ expect(await channelReadHistory(dir, "dev")).toEqual([]);
73
+ }
74
+ finally {
75
+ await rm(dir, { recursive: true, force: true });
76
+ }
77
+ });
78
+ it("accepts slack-style channel names", () => {
79
+ expect(channelNameNormalize("dev-team")).toBe("dev-team");
80
+ expect(channelNameNormalize("ops_team_1")).toBe("ops_team_1");
81
+ expect(channelNameNormalize("Release_2026")).toBe("release_2026");
82
+ });
83
+ it("rejects non slack-style channel names", () => {
84
+ expect(() => channelNameNormalize("dev.team")).toThrow("Slack-style");
85
+ expect(() => channelNameNormalize("dev team")).toThrow("Slack-style");
86
+ expect(() => channelNameNormalize("")).toThrow("Slack-style");
87
+ });
88
+ });
89
+ //# sourceMappingURL=channelStore.spec.js.map