happy2 0.0.5

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 (373) hide show
  1. package/README.md +82 -0
  2. package/package.json +74 -0
  3. package/packages/happy2-server/Dockerfile +18 -0
  4. package/packages/happy2-server/README.md +418 -0
  5. package/packages/happy2-server/bin/happy2.js +3 -0
  6. package/packages/happy2-server/dist/cli.d.ts +3 -0
  7. package/packages/happy2-server/dist/cli.d.ts.map +1 -0
  8. package/packages/happy2-server/dist/cli.js +44 -0
  9. package/packages/happy2-server/dist/cli.js.map +1 -0
  10. package/packages/happy2-server/dist/index.d.ts +24 -0
  11. package/packages/happy2-server/dist/index.d.ts.map +1 -0
  12. package/packages/happy2-server/dist/index.js +22 -0
  13. package/packages/happy2-server/dist/index.js.map +1 -0
  14. package/packages/happy2-server/dist/modules/agents/builtin-images.d.ts +8 -0
  15. package/packages/happy2-server/dist/modules/agents/builtin-images.d.ts.map +1 -0
  16. package/packages/happy2-server/dist/modules/agents/builtin-images.js +283 -0
  17. package/packages/happy2-server/dist/modules/agents/builtin-images.js.map +1 -0
  18. package/packages/happy2-server/dist/modules/agents/command.d.ts +3 -0
  19. package/packages/happy2-server/dist/modules/agents/command.d.ts.map +1 -0
  20. package/packages/happy2-server/dist/modules/agents/command.js +7 -0
  21. package/packages/happy2-server/dist/modules/agents/command.js.map +1 -0
  22. package/packages/happy2-server/dist/modules/agents/daemon.d.ts +106 -0
  23. package/packages/happy2-server/dist/modules/agents/daemon.d.ts.map +1 -0
  24. package/packages/happy2-server/dist/modules/agents/daemon.js +522 -0
  25. package/packages/happy2-server/dist/modules/agents/daemon.js.map +1 -0
  26. package/packages/happy2-server/dist/modules/agents/docker.d.ts +51 -0
  27. package/packages/happy2-server/dist/modules/agents/docker.d.ts.map +1 -0
  28. package/packages/happy2-server/dist/modules/agents/docker.js +256 -0
  29. package/packages/happy2-server/dist/modules/agents/docker.js.map +1 -0
  30. package/packages/happy2-server/dist/modules/agents/docker.test.d.ts +2 -0
  31. package/packages/happy2-server/dist/modules/agents/docker.test.d.ts.map +1 -0
  32. package/packages/happy2-server/dist/modules/agents/docker.test.js +155 -0
  33. package/packages/happy2-server/dist/modules/agents/docker.test.js.map +1 -0
  34. package/packages/happy2-server/dist/modules/agents/index.d.ts +5 -0
  35. package/packages/happy2-server/dist/modules/agents/index.d.ts.map +1 -0
  36. package/packages/happy2-server/dist/modules/agents/index.js +4 -0
  37. package/packages/happy2-server/dist/modules/agents/index.js.map +1 -0
  38. package/packages/happy2-server/dist/modules/agents/service.d.ts +140 -0
  39. package/packages/happy2-server/dist/modules/agents/service.d.ts.map +1 -0
  40. package/packages/happy2-server/dist/modules/agents/service.js +1283 -0
  41. package/packages/happy2-server/dist/modules/agents/service.js.map +1 -0
  42. package/packages/happy2-server/dist/modules/auth/cloudflare-access.d.ts +15 -0
  43. package/packages/happy2-server/dist/modules/auth/cloudflare-access.d.ts.map +1 -0
  44. package/packages/happy2-server/dist/modules/auth/cloudflare-access.js +49 -0
  45. package/packages/happy2-server/dist/modules/auth/cloudflare-access.js.map +1 -0
  46. package/packages/happy2-server/dist/modules/auth/crypto.d.ts +4 -0
  47. package/packages/happy2-server/dist/modules/auth/crypto.d.ts.map +1 -0
  48. package/packages/happy2-server/dist/modules/auth/crypto.js +31 -0
  49. package/packages/happy2-server/dist/modules/auth/crypto.js.map +1 -0
  50. package/packages/happy2-server/dist/modules/auth/crypto.test.d.ts +2 -0
  51. package/packages/happy2-server/dist/modules/auth/crypto.test.d.ts.map +1 -0
  52. package/packages/happy2-server/dist/modules/auth/crypto.test.js +11 -0
  53. package/packages/happy2-server/dist/modules/auth/crypto.test.js.map +1 -0
  54. package/packages/happy2-server/dist/modules/auth/email.d.ts +3 -0
  55. package/packages/happy2-server/dist/modules/auth/email.d.ts.map +1 -0
  56. package/packages/happy2-server/dist/modules/auth/email.js +22 -0
  57. package/packages/happy2-server/dist/modules/auth/email.js.map +1 -0
  58. package/packages/happy2-server/dist/modules/auth/metadata.d.ts +5 -0
  59. package/packages/happy2-server/dist/modules/auth/metadata.d.ts.map +1 -0
  60. package/packages/happy2-server/dist/modules/auth/metadata.js +28 -0
  61. package/packages/happy2-server/dist/modules/auth/metadata.js.map +1 -0
  62. package/packages/happy2-server/dist/modules/auth/metadata.test.d.ts +2 -0
  63. package/packages/happy2-server/dist/modules/auth/metadata.test.d.ts.map +1 -0
  64. package/packages/happy2-server/dist/modules/auth/metadata.test.js +10 -0
  65. package/packages/happy2-server/dist/modules/auth/metadata.test.js.map +1 -0
  66. package/packages/happy2-server/dist/modules/auth/methods.d.ts +10 -0
  67. package/packages/happy2-server/dist/modules/auth/methods.d.ts.map +1 -0
  68. package/packages/happy2-server/dist/modules/auth/methods.js +21 -0
  69. package/packages/happy2-server/dist/modules/auth/methods.js.map +1 -0
  70. package/packages/happy2-server/dist/modules/auth/methods.test.d.ts +2 -0
  71. package/packages/happy2-server/dist/modules/auth/methods.test.d.ts.map +1 -0
  72. package/packages/happy2-server/dist/modules/auth/methods.test.js +16 -0
  73. package/packages/happy2-server/dist/modules/auth/methods.test.js.map +1 -0
  74. package/packages/happy2-server/dist/modules/auth/oidc.d.ts +9 -0
  75. package/packages/happy2-server/dist/modules/auth/oidc.d.ts.map +1 -0
  76. package/packages/happy2-server/dist/modules/auth/oidc.js +68 -0
  77. package/packages/happy2-server/dist/modules/auth/oidc.js.map +1 -0
  78. package/packages/happy2-server/dist/modules/auth/service.d.ts +44 -0
  79. package/packages/happy2-server/dist/modules/auth/service.d.ts.map +1 -0
  80. package/packages/happy2-server/dist/modules/auth/service.js +208 -0
  81. package/packages/happy2-server/dist/modules/auth/service.js.map +1 -0
  82. package/packages/happy2-server/dist/modules/auth/tokens.d.ts +21 -0
  83. package/packages/happy2-server/dist/modules/auth/tokens.d.ts.map +1 -0
  84. package/packages/happy2-server/dist/modules/auth/tokens.js +79 -0
  85. package/packages/happy2-server/dist/modules/auth/tokens.js.map +1 -0
  86. package/packages/happy2-server/dist/modules/automation/repository.d.ts +127 -0
  87. package/packages/happy2-server/dist/modules/automation/repository.d.ts.map +1 -0
  88. package/packages/happy2-server/dist/modules/automation/repository.js +821 -0
  89. package/packages/happy2-server/dist/modules/automation/repository.js.map +1 -0
  90. package/packages/happy2-server/dist/modules/collaboration/repository.d.ts +839 -0
  91. package/packages/happy2-server/dist/modules/collaboration/repository.d.ts.map +1 -0
  92. package/packages/happy2-server/dist/modules/collaboration/repository.js +5795 -0
  93. package/packages/happy2-server/dist/modules/collaboration/repository.js.map +1 -0
  94. package/packages/happy2-server/dist/modules/collaboration/repository.test.d.ts +2 -0
  95. package/packages/happy2-server/dist/modules/collaboration/repository.test.d.ts.map +1 -0
  96. package/packages/happy2-server/dist/modules/collaboration/repository.test.js +620 -0
  97. package/packages/happy2-server/dist/modules/collaboration/repository.test.js.map +1 -0
  98. package/packages/happy2-server/dist/modules/collaboration/types.d.ts +243 -0
  99. package/packages/happy2-server/dist/modules/collaboration/types.d.ts.map +1 -0
  100. package/packages/happy2-server/dist/modules/collaboration/types.js +8 -0
  101. package/packages/happy2-server/dist/modules/collaboration/types.js.map +1 -0
  102. package/packages/happy2-server/dist/modules/config/defaults.d.ts +8 -0
  103. package/packages/happy2-server/dist/modules/config/defaults.d.ts.map +1 -0
  104. package/packages/happy2-server/dist/modules/config/defaults.js +70 -0
  105. package/packages/happy2-server/dist/modules/config/defaults.js.map +1 -0
  106. package/packages/happy2-server/dist/modules/config/defaults.test.d.ts +2 -0
  107. package/packages/happy2-server/dist/modules/config/defaults.test.d.ts.map +1 -0
  108. package/packages/happy2-server/dist/modules/config/defaults.test.js +27 -0
  109. package/packages/happy2-server/dist/modules/config/defaults.test.js.map +1 -0
  110. package/packages/happy2-server/dist/modules/config/environment.d.ts +4 -0
  111. package/packages/happy2-server/dist/modules/config/environment.d.ts.map +1 -0
  112. package/packages/happy2-server/dist/modules/config/environment.js +92 -0
  113. package/packages/happy2-server/dist/modules/config/environment.js.map +1 -0
  114. package/packages/happy2-server/dist/modules/config/loader.d.ts +5 -0
  115. package/packages/happy2-server/dist/modules/config/loader.d.ts.map +1 -0
  116. package/packages/happy2-server/dist/modules/config/loader.js +251 -0
  117. package/packages/happy2-server/dist/modules/config/loader.js.map +1 -0
  118. package/packages/happy2-server/dist/modules/config/loader.test.d.ts +2 -0
  119. package/packages/happy2-server/dist/modules/config/loader.test.d.ts.map +1 -0
  120. package/packages/happy2-server/dist/modules/config/loader.test.js +108 -0
  121. package/packages/happy2-server/dist/modules/config/loader.test.js.map +1 -0
  122. package/packages/happy2-server/dist/modules/config/paths.d.ts +7 -0
  123. package/packages/happy2-server/dist/modules/config/paths.d.ts.map +1 -0
  124. package/packages/happy2-server/dist/modules/config/paths.js +15 -0
  125. package/packages/happy2-server/dist/modules/config/paths.js.map +1 -0
  126. package/packages/happy2-server/dist/modules/config/paths.test.d.ts +2 -0
  127. package/packages/happy2-server/dist/modules/config/paths.test.d.ts.map +1 -0
  128. package/packages/happy2-server/dist/modules/config/paths.test.js +22 -0
  129. package/packages/happy2-server/dist/modules/config/paths.test.js.map +1 -0
  130. package/packages/happy2-server/dist/modules/config/runtime.d.ts +6 -0
  131. package/packages/happy2-server/dist/modules/config/runtime.d.ts.map +1 -0
  132. package/packages/happy2-server/dist/modules/config/runtime.js +14 -0
  133. package/packages/happy2-server/dist/modules/config/runtime.js.map +1 -0
  134. package/packages/happy2-server/dist/modules/config/type.d.ts +88 -0
  135. package/packages/happy2-server/dist/modules/config/type.d.ts.map +1 -0
  136. package/packages/happy2-server/dist/modules/config/type.js +2 -0
  137. package/packages/happy2-server/dist/modules/config/type.js.map +1 -0
  138. package/packages/happy2-server/dist/modules/database.d.ts +105 -0
  139. package/packages/happy2-server/dist/modules/database.d.ts.map +1 -0
  140. package/packages/happy2-server/dist/modules/database.js +583 -0
  141. package/packages/happy2-server/dist/modules/database.js.map +1 -0
  142. package/packages/happy2-server/dist/modules/drizzle.d.ts +11 -0
  143. package/packages/happy2-server/dist/modules/drizzle.d.ts.map +1 -0
  144. package/packages/happy2-server/dist/modules/drizzle.js +31 -0
  145. package/packages/happy2-server/dist/modules/drizzle.js.map +1 -0
  146. package/packages/happy2-server/dist/modules/files/lock.d.ts +3 -0
  147. package/packages/happy2-server/dist/modules/files/lock.d.ts.map +1 -0
  148. package/packages/happy2-server/dist/modules/files/lock.js +83 -0
  149. package/packages/happy2-server/dist/modules/files/lock.js.map +1 -0
  150. package/packages/happy2-server/dist/modules/files/media.d.ts +18 -0
  151. package/packages/happy2-server/dist/modules/files/media.d.ts.map +1 -0
  152. package/packages/happy2-server/dist/modules/files/media.js +352 -0
  153. package/packages/happy2-server/dist/modules/files/media.js.map +1 -0
  154. package/packages/happy2-server/dist/modules/files/provider.d.ts +130 -0
  155. package/packages/happy2-server/dist/modules/files/provider.d.ts.map +1 -0
  156. package/packages/happy2-server/dist/modules/files/provider.js +448 -0
  157. package/packages/happy2-server/dist/modules/files/provider.js.map +1 -0
  158. package/packages/happy2-server/dist/modules/files/quota.d.ts +58 -0
  159. package/packages/happy2-server/dist/modules/files/quota.d.ts.map +1 -0
  160. package/packages/happy2-server/dist/modules/files/quota.js +180 -0
  161. package/packages/happy2-server/dist/modules/files/quota.js.map +1 -0
  162. package/packages/happy2-server/dist/modules/files/routes.test.d.ts +2 -0
  163. package/packages/happy2-server/dist/modules/files/routes.test.d.ts.map +1 -0
  164. package/packages/happy2-server/dist/modules/files/routes.test.js +163 -0
  165. package/packages/happy2-server/dist/modules/files/routes.test.js.map +1 -0
  166. package/packages/happy2-server/dist/modules/files/scanner.d.ts +27 -0
  167. package/packages/happy2-server/dist/modules/files/scanner.d.ts.map +1 -0
  168. package/packages/happy2-server/dist/modules/files/scanner.js +66 -0
  169. package/packages/happy2-server/dist/modules/files/scanner.js.map +1 -0
  170. package/packages/happy2-server/dist/modules/files/storage.d.ts +95 -0
  171. package/packages/happy2-server/dist/modules/files/storage.d.ts.map +1 -0
  172. package/packages/happy2-server/dist/modules/files/storage.js +855 -0
  173. package/packages/happy2-server/dist/modules/files/storage.js.map +1 -0
  174. package/packages/happy2-server/dist/modules/files/storage.test.d.ts +2 -0
  175. package/packages/happy2-server/dist/modules/files/storage.test.d.ts.map +1 -0
  176. package/packages/happy2-server/dist/modules/files/storage.test.js +170 -0
  177. package/packages/happy2-server/dist/modules/files/storage.test.js.map +1 -0
  178. package/packages/happy2-server/dist/modules/integrations/index.d.ts +6 -0
  179. package/packages/happy2-server/dist/modules/integrations/index.d.ts.map +1 -0
  180. package/packages/happy2-server/dist/modules/integrations/index.js +6 -0
  181. package/packages/happy2-server/dist/modules/integrations/index.js.map +1 -0
  182. package/packages/happy2-server/dist/modules/integrations/repository.d.ts +136 -0
  183. package/packages/happy2-server/dist/modules/integrations/repository.d.ts.map +1 -0
  184. package/packages/happy2-server/dist/modules/integrations/repository.js +1229 -0
  185. package/packages/happy2-server/dist/modules/integrations/repository.js.map +1 -0
  186. package/packages/happy2-server/dist/modules/integrations/repository.test.d.ts +2 -0
  187. package/packages/happy2-server/dist/modules/integrations/repository.test.d.ts.map +1 -0
  188. package/packages/happy2-server/dist/modules/integrations/repository.test.js +345 -0
  189. package/packages/happy2-server/dist/modules/integrations/repository.test.js.map +1 -0
  190. package/packages/happy2-server/dist/modules/integrations/routes.test.d.ts +2 -0
  191. package/packages/happy2-server/dist/modules/integrations/routes.test.d.ts.map +1 -0
  192. package/packages/happy2-server/dist/modules/integrations/routes.test.js +161 -0
  193. package/packages/happy2-server/dist/modules/integrations/routes.test.js.map +1 -0
  194. package/packages/happy2-server/dist/modules/integrations/secrets.d.ts +19 -0
  195. package/packages/happy2-server/dist/modules/integrations/secrets.d.ts.map +1 -0
  196. package/packages/happy2-server/dist/modules/integrations/secrets.js +69 -0
  197. package/packages/happy2-server/dist/modules/integrations/secrets.js.map +1 -0
  198. package/packages/happy2-server/dist/modules/integrations/ssrf.d.ts +32 -0
  199. package/packages/happy2-server/dist/modules/integrations/ssrf.d.ts.map +1 -0
  200. package/packages/happy2-server/dist/modules/integrations/ssrf.js +185 -0
  201. package/packages/happy2-server/dist/modules/integrations/ssrf.js.map +1 -0
  202. package/packages/happy2-server/dist/modules/integrations/ssrf.test.d.ts +2 -0
  203. package/packages/happy2-server/dist/modules/integrations/ssrf.test.d.ts.map +1 -0
  204. package/packages/happy2-server/dist/modules/integrations/ssrf.test.js +56 -0
  205. package/packages/happy2-server/dist/modules/integrations/ssrf.test.js.map +1 -0
  206. package/packages/happy2-server/dist/modules/integrations/transport.d.ts +21 -0
  207. package/packages/happy2-server/dist/modules/integrations/transport.d.ts.map +1 -0
  208. package/packages/happy2-server/dist/modules/integrations/transport.js +108 -0
  209. package/packages/happy2-server/dist/modules/integrations/transport.js.map +1 -0
  210. package/packages/happy2-server/dist/modules/integrations/transport.test.d.ts +2 -0
  211. package/packages/happy2-server/dist/modules/integrations/transport.test.d.ts.map +1 -0
  212. package/packages/happy2-server/dist/modules/integrations/transport.test.js +66 -0
  213. package/packages/happy2-server/dist/modules/integrations/transport.test.js.map +1 -0
  214. package/packages/happy2-server/dist/modules/integrations/types.d.ts +155 -0
  215. package/packages/happy2-server/dist/modules/integrations/types.d.ts.map +1 -0
  216. package/packages/happy2-server/dist/modules/integrations/types.js +26 -0
  217. package/packages/happy2-server/dist/modules/integrations/types.js.map +1 -0
  218. package/packages/happy2-server/dist/modules/operations/export-worker.d.ts +16 -0
  219. package/packages/happy2-server/dist/modules/operations/export-worker.d.ts.map +1 -0
  220. package/packages/happy2-server/dist/modules/operations/export-worker.js +56 -0
  221. package/packages/happy2-server/dist/modules/operations/export-worker.js.map +1 -0
  222. package/packages/happy2-server/dist/modules/operations/repository.d.ts +215 -0
  223. package/packages/happy2-server/dist/modules/operations/repository.d.ts.map +1 -0
  224. package/packages/happy2-server/dist/modules/operations/repository.js +2011 -0
  225. package/packages/happy2-server/dist/modules/operations/repository.js.map +1 -0
  226. package/packages/happy2-server/dist/modules/operations/repository.test.d.ts +2 -0
  227. package/packages/happy2-server/dist/modules/operations/repository.test.d.ts.map +1 -0
  228. package/packages/happy2-server/dist/modules/operations/repository.test.js +610 -0
  229. package/packages/happy2-server/dist/modules/operations/repository.test.js.map +1 -0
  230. package/packages/happy2-server/dist/modules/operations/types.d.ts +144 -0
  231. package/packages/happy2-server/dist/modules/operations/types.d.ts.map +1 -0
  232. package/packages/happy2-server/dist/modules/operations/types.js +9 -0
  233. package/packages/happy2-server/dist/modules/operations/types.js.map +1 -0
  234. package/packages/happy2-server/dist/modules/realtime/events.d.ts +99 -0
  235. package/packages/happy2-server/dist/modules/realtime/events.d.ts.map +1 -0
  236. package/packages/happy2-server/dist/modules/realtime/events.js +173 -0
  237. package/packages/happy2-server/dist/modules/realtime/events.js.map +1 -0
  238. package/packages/happy2-server/dist/modules/realtime/index.d.ts +4 -0
  239. package/packages/happy2-server/dist/modules/realtime/index.d.ts.map +1 -0
  240. package/packages/happy2-server/dist/modules/realtime/index.js +4 -0
  241. package/packages/happy2-server/dist/modules/realtime/index.js.map +1 -0
  242. package/packages/happy2-server/dist/modules/realtime/local.d.ts +37 -0
  243. package/packages/happy2-server/dist/modules/realtime/local.d.ts.map +1 -0
  244. package/packages/happy2-server/dist/modules/realtime/local.js +181 -0
  245. package/packages/happy2-server/dist/modules/realtime/local.js.map +1 -0
  246. package/packages/happy2-server/dist/modules/realtime/local.test.d.ts +2 -0
  247. package/packages/happy2-server/dist/modules/realtime/local.test.d.ts.map +1 -0
  248. package/packages/happy2-server/dist/modules/realtime/local.test.js +186 -0
  249. package/packages/happy2-server/dist/modules/realtime/local.test.js.map +1 -0
  250. package/packages/happy2-server/dist/modules/realtime/pubsub.d.ts +26 -0
  251. package/packages/happy2-server/dist/modules/realtime/pubsub.d.ts.map +1 -0
  252. package/packages/happy2-server/dist/modules/realtime/pubsub.js +7 -0
  253. package/packages/happy2-server/dist/modules/realtime/pubsub.js.map +1 -0
  254. package/packages/happy2-server/dist/modules/request/database-idempotency.d.ts +15 -0
  255. package/packages/happy2-server/dist/modules/request/database-idempotency.d.ts.map +1 -0
  256. package/packages/happy2-server/dist/modules/request/database-idempotency.js +141 -0
  257. package/packages/happy2-server/dist/modules/request/database-idempotency.js.map +1 -0
  258. package/packages/happy2-server/dist/modules/request/idempotency-hook.d.ts +12 -0
  259. package/packages/happy2-server/dist/modules/request/idempotency-hook.d.ts.map +1 -0
  260. package/packages/happy2-server/dist/modules/request/idempotency-hook.js +98 -0
  261. package/packages/happy2-server/dist/modules/request/idempotency-hook.js.map +1 -0
  262. package/packages/happy2-server/dist/modules/request/idempotency.d.ts +146 -0
  263. package/packages/happy2-server/dist/modules/request/idempotency.d.ts.map +1 -0
  264. package/packages/happy2-server/dist/modules/request/idempotency.js +312 -0
  265. package/packages/happy2-server/dist/modules/request/idempotency.js.map +1 -0
  266. package/packages/happy2-server/dist/modules/request/idempotency.test.d.ts +2 -0
  267. package/packages/happy2-server/dist/modules/request/idempotency.test.d.ts.map +1 -0
  268. package/packages/happy2-server/dist/modules/request/idempotency.test.js +191 -0
  269. package/packages/happy2-server/dist/modules/request/idempotency.test.js.map +1 -0
  270. package/packages/happy2-server/dist/modules/request/index.d.ts +5 -0
  271. package/packages/happy2-server/dist/modules/request/index.d.ts.map +1 -0
  272. package/packages/happy2-server/dist/modules/request/index.js +5 -0
  273. package/packages/happy2-server/dist/modules/request/index.js.map +1 -0
  274. package/packages/happy2-server/dist/modules/request/rate-limit.d.ts +100 -0
  275. package/packages/happy2-server/dist/modules/request/rate-limit.d.ts.map +1 -0
  276. package/packages/happy2-server/dist/modules/request/rate-limit.js +239 -0
  277. package/packages/happy2-server/dist/modules/request/rate-limit.js.map +1 -0
  278. package/packages/happy2-server/dist/modules/request/rate-limit.test.d.ts +2 -0
  279. package/packages/happy2-server/dist/modules/request/rate-limit.test.d.ts.map +1 -0
  280. package/packages/happy2-server/dist/modules/request/rate-limit.test.js +123 -0
  281. package/packages/happy2-server/dist/modules/request/rate-limit.test.js.map +1 -0
  282. package/packages/happy2-server/dist/modules/schema.d.ts +31454 -0
  283. package/packages/happy2-server/dist/modules/schema.d.ts.map +1 -0
  284. package/packages/happy2-server/dist/modules/schema.js +1081 -0
  285. package/packages/happy2-server/dist/modules/schema.js.map +1 -0
  286. package/packages/happy2-server/dist/modules/workspace/index.d.ts +3 -0
  287. package/packages/happy2-server/dist/modules/workspace/index.d.ts.map +1 -0
  288. package/packages/happy2-server/dist/modules/workspace/index.js +3 -0
  289. package/packages/happy2-server/dist/modules/workspace/index.js.map +1 -0
  290. package/packages/happy2-server/dist/modules/workspace/service.d.ts +54 -0
  291. package/packages/happy2-server/dist/modules/workspace/service.d.ts.map +1 -0
  292. package/packages/happy2-server/dist/modules/workspace/service.js +997 -0
  293. package/packages/happy2-server/dist/modules/workspace/service.js.map +1 -0
  294. package/packages/happy2-server/dist/modules/workspace/types.d.ts +58 -0
  295. package/packages/happy2-server/dist/modules/workspace/types.d.ts.map +1 -0
  296. package/packages/happy2-server/dist/modules/workspace/types.js +11 -0
  297. package/packages/happy2-server/dist/modules/workspace/types.js.map +1 -0
  298. package/packages/happy2-server/dist/routes/agents.d.ts +5 -0
  299. package/packages/happy2-server/dist/routes/agents.d.ts.map +1 -0
  300. package/packages/happy2-server/dist/routes/agents.js +225 -0
  301. package/packages/happy2-server/dist/routes/agents.js.map +1 -0
  302. package/packages/happy2-server/dist/routes/auth.d.ts +5 -0
  303. package/packages/happy2-server/dist/routes/auth.d.ts.map +1 -0
  304. package/packages/happy2-server/dist/routes/auth.js +128 -0
  305. package/packages/happy2-server/dist/routes/auth.js.map +1 -0
  306. package/packages/happy2-server/dist/routes/automation.d.ts +6 -0
  307. package/packages/happy2-server/dist/routes/automation.d.ts.map +1 -0
  308. package/packages/happy2-server/dist/routes/automation.js +315 -0
  309. package/packages/happy2-server/dist/routes/automation.js.map +1 -0
  310. package/packages/happy2-server/dist/routes/basic.d.ts +3 -0
  311. package/packages/happy2-server/dist/routes/basic.d.ts.map +1 -0
  312. package/packages/happy2-server/dist/routes/basic.js +5 -0
  313. package/packages/happy2-server/dist/routes/basic.js.map +1 -0
  314. package/packages/happy2-server/dist/routes/collaboration.d.ts +7 -0
  315. package/packages/happy2-server/dist/routes/collaboration.d.ts.map +1 -0
  316. package/packages/happy2-server/dist/routes/collaboration.js +1285 -0
  317. package/packages/happy2-server/dist/routes/collaboration.js.map +1 -0
  318. package/packages/happy2-server/dist/routes/files.d.ts +9 -0
  319. package/packages/happy2-server/dist/routes/files.d.ts.map +1 -0
  320. package/packages/happy2-server/dist/routes/files.js +397 -0
  321. package/packages/happy2-server/dist/routes/files.js.map +1 -0
  322. package/packages/happy2-server/dist/routes/integrations.d.ts +6 -0
  323. package/packages/happy2-server/dist/routes/integrations.d.ts.map +1 -0
  324. package/packages/happy2-server/dist/routes/integrations.js +486 -0
  325. package/packages/happy2-server/dist/routes/integrations.js.map +1 -0
  326. package/packages/happy2-server/dist/routes/operations.d.ts +5 -0
  327. package/packages/happy2-server/dist/routes/operations.d.ts.map +1 -0
  328. package/packages/happy2-server/dist/routes/operations.js +588 -0
  329. package/packages/happy2-server/dist/routes/operations.js.map +1 -0
  330. package/packages/happy2-server/dist/routes/operations.test.d.ts +2 -0
  331. package/packages/happy2-server/dist/routes/operations.test.d.ts.map +1 -0
  332. package/packages/happy2-server/dist/routes/operations.test.js +106 -0
  333. package/packages/happy2-server/dist/routes/operations.test.js.map +1 -0
  334. package/packages/happy2-server/dist/routes/sync.d.ts +6 -0
  335. package/packages/happy2-server/dist/routes/sync.d.ts.map +1 -0
  336. package/packages/happy2-server/dist/routes/sync.js +549 -0
  337. package/packages/happy2-server/dist/routes/sync.js.map +1 -0
  338. package/packages/happy2-server/dist/routes/workspace.d.ts +5 -0
  339. package/packages/happy2-server/dist/routes/workspace.d.ts.map +1 -0
  340. package/packages/happy2-server/dist/routes/workspace.js +240 -0
  341. package/packages/happy2-server/dist/routes/workspace.js.map +1 -0
  342. package/packages/happy2-server/dist/runner.d.ts +3 -0
  343. package/packages/happy2-server/dist/runner.d.ts.map +1 -0
  344. package/packages/happy2-server/dist/runner.js +30 -0
  345. package/packages/happy2-server/dist/runner.js.map +1 -0
  346. package/packages/happy2-server/dist/server.d.ts +32 -0
  347. package/packages/happy2-server/dist/server.d.ts.map +1 -0
  348. package/packages/happy2-server/dist/server.js +284 -0
  349. package/packages/happy2-server/dist/server.js.map +1 -0
  350. package/packages/happy2-server/dist/standalone.d.ts +13 -0
  351. package/packages/happy2-server/dist/standalone.d.ts.map +1 -0
  352. package/packages/happy2-server/dist/standalone.js +99 -0
  353. package/packages/happy2-server/dist/standalone.js.map +1 -0
  354. package/packages/happy2-server/dist/web/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2 +0 -0
  355. package/packages/happy2-server/dist/web/assets/happy-otter-Q2O_g-DT.png +0 -0
  356. package/packages/happy2-server/dist/web/assets/index-COvbX8JP.css +2 -0
  357. package/packages/happy2-server/dist/web/assets/index-DdpugxMO.js +57 -0
  358. package/packages/happy2-server/dist/web/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  359. package/packages/happy2-server/dist/web/assets/onboarding-CRUpq9xl.png +0 -0
  360. package/packages/happy2-server/dist/web/index.html +13 -0
  361. package/packages/happy2-server/drizzle/0000_initial.sql +13 -0
  362. package/packages/happy2-server/drizzle/0001_accounts_profiles_files.sql +42 -0
  363. package/packages/happy2-server/drizzle/0002_file_visibility_and_uploader.sql +5 -0
  364. package/packages/happy2-server/drizzle/0003_collaboration.sql +565 -0
  365. package/packages/happy2-server/drizzle/0004_collaboration_expansion.sql +1099 -0
  366. package/packages/happy2-server/drizzle/0005_ai_agents.sql +85 -0
  367. package/packages/happy2-server/drizzle/0006_rig_global_event_queue.sql +10 -0
  368. package/packages/happy2-server/drizzle/0007_rename_server_identity.sql +3 -0
  369. package/packages/happy2-server/drizzle/0008_agent_message_streaming.sql +47 -0
  370. package/packages/happy2-server/drizzle/0009_chat_workspace_binding_lookup.sql +2 -0
  371. package/packages/happy2-server/drizzle/0010_rig_secret_assignments.sql +21 -0
  372. package/packages/happy2-server/drizzle/meta/_journal.json +83 -0
  373. package/packages/happy2-server/happy2.example.toml +104 -0
@@ -0,0 +1,522 @@
1
+ import { execFile } from "node:child_process";
2
+ import { chmod, mkdir, readFile } from "node:fs/promises";
3
+ import { request as httpRequest } from "node:http";
4
+ export class RigDaemonClient {
5
+ config;
6
+ sessionSecretReconciliations = new Map();
7
+ token;
8
+ ready;
9
+ constructor(config) {
10
+ this.config = config;
11
+ }
12
+ async ensureGlobalEventQueue(signal) {
13
+ const current = await this.connectedRequest("GET", "/config", undefined, signal);
14
+ if (current.config.settings.durableGlobalEventQueue)
15
+ return;
16
+ await this.connectedRequest("PATCH", "/config", { settings: { durableGlobalEventQueue: true } }, signal);
17
+ }
18
+ async createSession(cwd, containerName, signal) {
19
+ const response = await this.connectedRequest("POST", "/sessions", {
20
+ cwd,
21
+ docker: { container: containerName, workingDirectory: "/workspace" },
22
+ permissionMode: "workspace_write",
23
+ }, signal);
24
+ return { id: response.session.id };
25
+ }
26
+ async listSecrets(signal) {
27
+ const response = await this.connectedRequest("GET", "/secrets", undefined, signal);
28
+ return response.secrets;
29
+ }
30
+ async registerSecret(secret, signal) {
31
+ const response = await this.connectedRequest("POST", "/secrets", secret, signal);
32
+ return response.secret;
33
+ }
34
+ async unregisterSecret(secretId, signal) {
35
+ const response = await this.connectedRequest("DELETE", `/secrets/${encodeURIComponent(secretId)}`, undefined, signal);
36
+ return response.removed;
37
+ }
38
+ async reconcileSessionSecrets(sessionId, loadPlan, signal) {
39
+ const previous = this.sessionSecretReconciliations.get(sessionId) ?? Promise.resolve();
40
+ const reconciliation = previous
41
+ .catch(() => undefined)
42
+ .then(async () => {
43
+ const { desiredSecretIds, managedSecretIds } = await loadPlan();
44
+ const desired = new Set(desiredSecretIds);
45
+ const managed = new Set(managedSecretIds);
46
+ const session = await this.session(sessionId, signal);
47
+ const attached = new Set(session.sessionSecretIds);
48
+ for (const secretId of [...desired].sort()) {
49
+ if (attached.has(secretId))
50
+ continue;
51
+ await this.connectedRequest("POST", `/sessions/${encodeURIComponent(sessionId)}/secrets`, { secretId, scope: "session" }, signal);
52
+ }
53
+ for (const secretId of [...attached].sort()) {
54
+ if (!managed.has(secretId) || desired.has(secretId))
55
+ continue;
56
+ await this.connectedRequest("DELETE", `/sessions/${encodeURIComponent(sessionId)}/secrets/${encodeURIComponent(secretId)}?scope=session`, undefined, signal);
57
+ }
58
+ });
59
+ this.sessionSecretReconciliations.set(sessionId, reconciliation);
60
+ try {
61
+ await reconciliation;
62
+ }
63
+ finally {
64
+ if (this.sessionSecretReconciliations.get(sessionId) === reconciliation)
65
+ this.sessionSecretReconciliations.delete(sessionId);
66
+ }
67
+ }
68
+ async watchGlobalEvents(after, onEvent, signal) {
69
+ const parameters = new URLSearchParams();
70
+ if (after !== undefined)
71
+ parameters.set("after", String(after));
72
+ const path = `/events/stream${parameters.size ? `?${parameters.toString()}` : ""}`;
73
+ await this.ensureReady();
74
+ try {
75
+ await this.stream(path, onEvent, signal);
76
+ }
77
+ catch (error) {
78
+ if (error instanceof RigHttpError && error.status === 404) {
79
+ await this.ensureGlobalEventQueue(signal);
80
+ await this.stream(path, onEvent, signal);
81
+ return;
82
+ }
83
+ if (error instanceof RigTransportError ||
84
+ (error instanceof RigHttpError && error.status === 401)) {
85
+ this.ready = undefined;
86
+ this.token = undefined;
87
+ }
88
+ throw error;
89
+ }
90
+ }
91
+ async watchSessionEvents(sessionId, after, onEvent, signal) {
92
+ const path = after === undefined
93
+ ? `/sessions/${encodeURIComponent(sessionId)}/stream`
94
+ : `/sessions/${encodeURIComponent(sessionId)}/stream?after=${encodeURIComponent(after)}`;
95
+ await this.ensureReady();
96
+ try {
97
+ return await this.sessionStream(path, after, onEvent, signal);
98
+ }
99
+ catch (error) {
100
+ if (error instanceof RigTransportError ||
101
+ (error instanceof RigHttpError && error.status === 401)) {
102
+ this.ready = undefined;
103
+ this.token = undefined;
104
+ }
105
+ throw error;
106
+ }
107
+ }
108
+ async trimGlobalEvents(through, signal) {
109
+ await this.connectedRequest("POST", "/events/trim", { through }, signal);
110
+ }
111
+ async sessionCheckpoint(sessionId, signal) {
112
+ const session = await this.session(sessionId, signal);
113
+ return {
114
+ messageCount: session.snapshot.messages.length,
115
+ ...(session.lastEventId === undefined ? {} : { lastEventId: session.lastEventId }),
116
+ };
117
+ }
118
+ async submittedTurnBaseline(sessionId, text, signal) {
119
+ const messages = (await this.session(sessionId, signal)).snapshot.messages;
120
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
121
+ const message = messages[index];
122
+ if (message.role === "user" && messageText(message) === text)
123
+ return index;
124
+ }
125
+ throw new Error("Rig session no longer contains the submitted agent turn.");
126
+ }
127
+ async inspectTurn(sessionId, baselineMessageCount, text, signal) {
128
+ const session = await this.session(sessionId, signal);
129
+ const turnMessages = session.snapshot.messages.slice(baselineMessageCount);
130
+ const submitted = turnMessages.some((message) => message.role === "user" && messageText(message) === text);
131
+ if (!submitted)
132
+ return { kind: "not_submitted" };
133
+ if (session.status === "queued" || session.status === "running")
134
+ return { kind: "running" };
135
+ const answer = agentText(turnMessages);
136
+ if (answer)
137
+ return { kind: "completed", text: answer };
138
+ return {
139
+ error: session.status === "error"
140
+ ? "Rig ended the turn with an error."
141
+ : "Rig completed without an assistant response.",
142
+ kind: "failed",
143
+ };
144
+ }
145
+ async submitTurn(sessionId, text, signal) {
146
+ return this.connectedRequest("POST", `/sessions/${encodeURIComponent(sessionId)}/messages`, { text }, signal);
147
+ }
148
+ session(sessionId, signal) {
149
+ return this.connectedRequest("GET", `/sessions/${encodeURIComponent(sessionId)}`, undefined, signal).then((response) => response.session);
150
+ }
151
+ async connectedRequest(method, path, body, signal) {
152
+ await this.ensureReady();
153
+ try {
154
+ return await this.request(method, path, body, signal);
155
+ }
156
+ catch (error) {
157
+ if (error instanceof RigTransportError ||
158
+ (error instanceof RigHttpError && error.status === 401)) {
159
+ this.ready = undefined;
160
+ this.token = undefined;
161
+ }
162
+ throw error;
163
+ }
164
+ }
165
+ ensureReady() {
166
+ if (!this.ready) {
167
+ this.ready = this.connect().catch((error) => {
168
+ this.ready = undefined;
169
+ throw error;
170
+ });
171
+ }
172
+ return this.ready;
173
+ }
174
+ async connect() {
175
+ this.token = await readToken(this.config.tokenPath);
176
+ if (this.token && (await this.healthy()))
177
+ return;
178
+ await mkdir(this.config.directory, { recursive: true, mode: 0o700 });
179
+ await chmod(this.config.directory, 0o700);
180
+ await execute(this.config.command, ["daemon", "start"], {
181
+ RIG_HOME: this.config.directory,
182
+ RIG_SERVER_DIRECTORY: "",
183
+ RIG_SERVER_SOCKET_PATH: this.config.socketPath,
184
+ RIG_SERVER_TOKEN_PATH: this.config.tokenPath,
185
+ });
186
+ const deadline = Date.now() + 10_000;
187
+ while (Date.now() < deadline) {
188
+ this.token = await readToken(this.config.tokenPath);
189
+ if (this.token && (await this.healthy()))
190
+ return;
191
+ await delay(100);
192
+ }
193
+ throw new Error("Rig daemon did not become ready within 10 seconds.");
194
+ }
195
+ async healthy() {
196
+ try {
197
+ const health = await this.request("GET", "/health");
198
+ return health.healthy && health.ready;
199
+ }
200
+ catch {
201
+ return false;
202
+ }
203
+ }
204
+ request(method, path, body, signal) {
205
+ if (!this.token)
206
+ return Promise.reject(new RigTransportError("Rig daemon token is unavailable."));
207
+ if (signal?.aborted)
208
+ return Promise.reject(shutdownError());
209
+ const payload = body === undefined ? undefined : JSON.stringify(body);
210
+ return new Promise((resolve, reject) => {
211
+ let settled = false;
212
+ let responseEnded = false;
213
+ const finish = (action) => {
214
+ if (settled)
215
+ return;
216
+ settled = true;
217
+ action();
218
+ };
219
+ const request = httpRequest({
220
+ socketPath: this.config.socketPath,
221
+ method,
222
+ path,
223
+ headers: {
224
+ accept: "application/json",
225
+ authorization: `Bearer ${this.token}`,
226
+ ...(payload === undefined
227
+ ? {}
228
+ : {
229
+ "content-type": "application/json; charset=utf-8",
230
+ "content-length": Buffer.byteLength(payload),
231
+ }),
232
+ },
233
+ }, (response) => {
234
+ const chunks = [];
235
+ response.on("data", (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
236
+ response.on("end", () => {
237
+ responseEnded = true;
238
+ const contents = Buffer.concat(chunks).toString("utf8");
239
+ if ((response.statusCode ?? 500) >= 400) {
240
+ finish(() => reject(new RigHttpError(response.statusCode ?? 500, rigError(contents, response.statusCode))));
241
+ return;
242
+ }
243
+ try {
244
+ finish(() => resolve((contents ? JSON.parse(contents) : {})));
245
+ }
246
+ catch (error) {
247
+ finish(() => reject(error));
248
+ }
249
+ });
250
+ response.on("aborted", () => finish(() => reject(new RigTransportError("Rig response aborted."))));
251
+ response.on("error", (error) => finish(() => reject(asTransportError(error))));
252
+ response.on("close", () => {
253
+ if (!responseEnded)
254
+ finish(() => reject(new RigTransportError("Rig response closed unexpectedly.")));
255
+ });
256
+ });
257
+ const abort = () => request.destroy(shutdownError());
258
+ signal?.addEventListener("abort", abort, { once: true });
259
+ request.setTimeout(10_000, () => request.destroy(new Error("Rig daemon request timed out after 10 seconds.")));
260
+ request.once("close", () => signal?.removeEventListener("abort", abort));
261
+ request.on("error", (error) => finish(() => reject(asTransportError(error))));
262
+ if (payload)
263
+ request.write(payload);
264
+ request.end();
265
+ });
266
+ }
267
+ stream(path, onEvent, signal) {
268
+ if (!this.token)
269
+ return Promise.reject(new RigTransportError("Rig daemon token is unavailable."));
270
+ if (signal?.aborted)
271
+ return Promise.reject(shutdownError());
272
+ return new Promise((resolve, reject) => {
273
+ let settled = false;
274
+ const finish = (action) => {
275
+ if (settled)
276
+ return;
277
+ settled = true;
278
+ action();
279
+ };
280
+ const request = httpRequest({
281
+ socketPath: this.config.socketPath,
282
+ method: "GET",
283
+ path,
284
+ headers: {
285
+ accept: "text/event-stream",
286
+ authorization: `Bearer ${this.token}`,
287
+ },
288
+ }, (response) => {
289
+ if ((response.statusCode ?? 500) >= 400) {
290
+ const chunks = [];
291
+ response.on("data", (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
292
+ response.on("end", () => {
293
+ const contents = Buffer.concat(chunks).toString("utf8");
294
+ finish(() => reject(new RigHttpError(response.statusCode ?? 500, rigError(contents, response.statusCode))));
295
+ });
296
+ return;
297
+ }
298
+ response.setEncoding("utf8");
299
+ void consumeGlobalEventStream(response, onEvent, signal).then(() => finish(() => signal?.aborted
300
+ ? resolve()
301
+ : reject(new RigTransportError("Rig global event stream ended unexpectedly."))), (error) => finish(() => reject(asTransportError(error))));
302
+ });
303
+ const abort = () => request.destroy(shutdownError());
304
+ signal?.addEventListener("abort", abort, { once: true });
305
+ request.once("close", () => signal?.removeEventListener("abort", abort));
306
+ request.on("error", (error) => {
307
+ if (signal?.aborted)
308
+ finish(resolve);
309
+ else
310
+ finish(() => reject(asTransportError(error)));
311
+ });
312
+ request.end();
313
+ });
314
+ }
315
+ sessionStream(path, after, onEvent, signal) {
316
+ if (!this.token)
317
+ return Promise.reject(new RigTransportError("Rig daemon token is unavailable."));
318
+ if (signal?.aborted)
319
+ return Promise.resolve(after);
320
+ return new Promise((resolve, reject) => {
321
+ let settled = false;
322
+ const finish = (action) => {
323
+ if (settled)
324
+ return;
325
+ settled = true;
326
+ action();
327
+ };
328
+ const request = httpRequest({
329
+ socketPath: this.config.socketPath,
330
+ method: "GET",
331
+ path,
332
+ headers: {
333
+ accept: "text/event-stream",
334
+ authorization: `Bearer ${this.token}`,
335
+ },
336
+ }, (response) => {
337
+ if ((response.statusCode ?? 500) >= 400) {
338
+ const chunks = [];
339
+ response.on("data", (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
340
+ response.on("end", () => {
341
+ const contents = Buffer.concat(chunks).toString("utf8");
342
+ finish(() => reject(new RigHttpError(response.statusCode ?? 500, rigError(contents, response.statusCode))));
343
+ });
344
+ return;
345
+ }
346
+ response.setEncoding("utf8");
347
+ void consumeSessionEventStream(response, after, onEvent, signal).then((cursor) => finish(() => signal?.aborted
348
+ ? resolve(cursor)
349
+ : reject(new RigTransportError("Rig session event stream ended unexpectedly."))), (error) => finish(() => reject(asTransportError(error))));
350
+ });
351
+ const abort = () => request.destroy(shutdownError());
352
+ signal?.addEventListener("abort", abort, { once: true });
353
+ request.once("close", () => signal?.removeEventListener("abort", abort));
354
+ request.on("error", (error) => {
355
+ if (signal?.aborted)
356
+ finish(() => resolve(after));
357
+ else
358
+ finish(() => reject(asTransportError(error)));
359
+ });
360
+ request.end();
361
+ });
362
+ }
363
+ }
364
+ async function consumeGlobalEventStream(response, onEvent, signal) {
365
+ let buffer = "";
366
+ for await (const chunk of response) {
367
+ if (signal?.aborted)
368
+ return;
369
+ buffer += Buffer.isBuffer(chunk) ? chunk.toString("utf8") : chunk;
370
+ for (;;) {
371
+ const boundary = buffer.match(/\r?\n\r?\n/u);
372
+ if (!boundary?.index && boundary?.index !== 0)
373
+ break;
374
+ const frame = buffer.slice(0, boundary.index);
375
+ buffer = buffer.slice(boundary.index + boundary[0].length);
376
+ const event = parseGlobalEventFrame(frame);
377
+ if (event)
378
+ await onEvent(event);
379
+ }
380
+ }
381
+ }
382
+ async function consumeSessionEventStream(response, after, onEvent, signal) {
383
+ let buffer = "";
384
+ let cursor = after;
385
+ for await (const chunk of response) {
386
+ if (signal?.aborted)
387
+ return cursor;
388
+ buffer += Buffer.isBuffer(chunk) ? chunk.toString("utf8") : chunk;
389
+ for (;;) {
390
+ const boundary = buffer.match(/\r?\n\r?\n/u);
391
+ if (!boundary?.index && boundary?.index !== 0)
392
+ break;
393
+ const frame = buffer.slice(0, boundary.index);
394
+ buffer = buffer.slice(boundary.index + boundary[0].length);
395
+ const event = parseSessionEventFrame(frame);
396
+ if (!event)
397
+ continue;
398
+ await onEvent(event);
399
+ cursor = event.id;
400
+ }
401
+ }
402
+ return cursor;
403
+ }
404
+ function parseGlobalEventFrame(frame) {
405
+ let id;
406
+ const data = [];
407
+ for (const line of frame.split(/\r?\n/u)) {
408
+ if (line.startsWith(":"))
409
+ continue;
410
+ const separator = line.indexOf(":");
411
+ const field = separator < 0 ? line : line.slice(0, separator);
412
+ let value = separator < 0 ? "" : line.slice(separator + 1);
413
+ if (value.startsWith(" "))
414
+ value = value.slice(1);
415
+ if (field === "id")
416
+ id = value;
417
+ if (field === "data")
418
+ data.push(value);
419
+ }
420
+ if (!id || data.length === 0)
421
+ return undefined;
422
+ const cursor = Number(id);
423
+ if (!Number.isSafeInteger(cursor) || cursor < 0)
424
+ throw new RigTransportError(`Rig sent an invalid global event cursor: ${id}`);
425
+ return { cursor, event: JSON.parse(data.join("\n")) };
426
+ }
427
+ function parseSessionEventFrame(frame) {
428
+ let id;
429
+ const data = [];
430
+ for (const line of frame.split(/\r?\n/u)) {
431
+ if (line.startsWith(":"))
432
+ continue;
433
+ const separator = line.indexOf(":");
434
+ const field = separator < 0 ? line : line.slice(0, separator);
435
+ let value = separator < 0 ? "" : line.slice(separator + 1);
436
+ if (value.startsWith(" "))
437
+ value = value.slice(1);
438
+ if (field === "id")
439
+ id = value;
440
+ if (field === "data")
441
+ data.push(value);
442
+ }
443
+ if (!id || data.length === 0)
444
+ return undefined;
445
+ const event = JSON.parse(data.join("\n"));
446
+ if (event.id !== id)
447
+ throw new RigTransportError("Rig session event id does not match its SSE cursor.");
448
+ return event;
449
+ }
450
+ export function isRetryableRigError(error) {
451
+ return (error instanceof RigTransportError ||
452
+ (error instanceof RigHttpError && (error.status === 401 || error.status >= 500)));
453
+ }
454
+ function agentText(messages) {
455
+ return messages
456
+ .filter((message) => message.role === "agent")
457
+ .map((message) => messageText(message) ?? "")
458
+ .filter((text) => text.length > 0)
459
+ .join("\n\n");
460
+ }
461
+ function messageText(message) {
462
+ return message?.blocks
463
+ .filter((block) => block.type === "text" && block.text)
464
+ .map((block) => block.text)
465
+ .join("");
466
+ }
467
+ async function readToken(path) {
468
+ try {
469
+ const token = (await readFile(path, "utf8")).trim();
470
+ return token || undefined;
471
+ }
472
+ catch {
473
+ return undefined;
474
+ }
475
+ }
476
+ function execute(command, arguments_, environment) {
477
+ return new Promise((resolve, reject) => {
478
+ execFile(command, arguments_, { env: { ...process.env, ...environment } }, (error) => {
479
+ if (error)
480
+ reject(new Error(`Could not start Rig daemon: ${error.message}`));
481
+ else
482
+ resolve();
483
+ });
484
+ });
485
+ }
486
+ function rigError(contents, status) {
487
+ try {
488
+ const body = JSON.parse(contents);
489
+ if (body.error)
490
+ return body.error;
491
+ }
492
+ catch {
493
+ // Fall back to the response body below.
494
+ }
495
+ return contents || `Rig daemon returned HTTP ${status ?? 500}.`;
496
+ }
497
+ class RigHttpError extends Error {
498
+ status;
499
+ constructor(status, message) {
500
+ super(message);
501
+ this.status = status;
502
+ this.name = "RigHttpError";
503
+ }
504
+ }
505
+ class RigTransportError extends Error {
506
+ constructor(message) {
507
+ super(message);
508
+ this.name = "RigTransportError";
509
+ }
510
+ }
511
+ function asTransportError(error) {
512
+ return error instanceof RigTransportError
513
+ ? error
514
+ : new RigTransportError(error instanceof Error ? error.message : String(error));
515
+ }
516
+ function shutdownError() {
517
+ return new Error("Rig request was stopped because the server is shutting down.");
518
+ }
519
+ function delay(milliseconds) {
520
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
521
+ }
522
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../sources/modules/agents/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export interface AgentImageBuildInput {
2
+ buildContext?: string;
3
+ dockerfile: string;
4
+ tag: string;
5
+ }
6
+ export interface AgentImageBuildUpdate {
7
+ logChunk: string;
8
+ /** Best-effort completion percentage. Docker only exposes step-level progress. */
9
+ progress?: number;
10
+ }
11
+ export interface AgentImageBuildOptions {
12
+ onUpdate?: (update: AgentImageBuildUpdate) => void;
13
+ signal?: AbortSignal;
14
+ }
15
+ export interface AgentContainerInput {
16
+ agentUserId: string;
17
+ containerName: string;
18
+ homeDirectory: string;
19
+ imageId: string;
20
+ imageTag: string;
21
+ security: {
22
+ init: true;
23
+ readonlyRootFilesystem: true;
24
+ sharedMemoryBytes: number;
25
+ tmpfs: ReadonlyArray<{
26
+ mode: number;
27
+ target: string;
28
+ }>;
29
+ };
30
+ workspaceDirectory: string;
31
+ }
32
+ export interface AgentDockerRuntime {
33
+ buildImage(input: AgentImageBuildInput, options?: AgentImageBuildOptions): Promise<{
34
+ imageId: string;
35
+ }>;
36
+ createContainer(input: AgentContainerInput, signal?: AbortSignal): Promise<void>;
37
+ removeContainer(containerName: string): Promise<void>;
38
+ }
39
+ /** Uses the local Docker CLI so builds honor the administrator's active Docker context. */
40
+ export declare class LocalAgentDockerRuntime implements AgentDockerRuntime {
41
+ private readonly command;
42
+ constructor(command?: string);
43
+ buildImage(input: AgentImageBuildInput, options?: AgentImageBuildOptions): Promise<{
44
+ imageId: string;
45
+ }>;
46
+ createContainer(input: AgentContainerInput, signal?: AbortSignal): Promise<void>;
47
+ removeContainer(containerName: string): Promise<void>;
48
+ private createWithBindMountRetry;
49
+ private run;
50
+ }
51
+ //# sourceMappingURL=docker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../sources/modules/agents/docker.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QACN,IAAI,EAAE,IAAI,CAAC;QACX,sBAAsB,EAAE,IAAI,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC1D,CAAC;IACF,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CACN,KAAK,EAAE,oBAAoB,EAC3B,OAAO,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,2FAA2F;AAC3F,qBAAa,uBAAwB,YAAW,kBAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,SAAW,EAAI;IAE7C,UAAU,CACZ,KAAK,EAAE,oBAAoB,EAC3B,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CA4C9B;IAEK,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CrF;IAEK,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;YAEa,wBAAwB;IAkBtC,OAAO,CAAC,GAAG;CA0Dd"}