4runr-os 2.10.85 → 2.10.86

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 (871) hide show
  1. package/README.md +2 -2
  2. package/SETUP.md +2 -2
  3. package/USER-PRIVACY.md +2 -2
  4. package/apps/os-server/DEPLOYMENT.md +426 -0
  5. package/apps/os-server/JWT-RATE-LIMIT-VALIDATION.md +462 -0
  6. package/apps/os-server/PERSISTENCE-AND-AUTH.md +227 -0
  7. package/apps/os-server/PHASE5-TESTING.md +222 -0
  8. package/apps/os-server/README.md +368 -0
  9. package/apps/os-server/TROUBLESHOOTING.md +541 -0
  10. package/apps/os-server/dist/apps/os-server/src/adapters/gateway-cancel-adapter.d.ts +3 -0
  11. package/apps/os-server/dist/apps/os-server/src/adapters/gateway-cancel-adapter.d.ts.map +1 -0
  12. package/apps/os-server/dist/apps/os-server/src/adapters/gateway-cancel-adapter.js +28 -0
  13. package/apps/os-server/dist/apps/os-server/src/adapters/gateway-cancel-adapter.js.map +1 -0
  14. package/apps/os-server/dist/apps/os-server/src/adapters/redis-sentinel-publisher.d.ts +23 -0
  15. package/apps/os-server/dist/apps/os-server/src/adapters/redis-sentinel-publisher.d.ts.map +1 -0
  16. package/apps/os-server/dist/apps/os-server/src/adapters/redis-sentinel-publisher.js +95 -0
  17. package/apps/os-server/dist/apps/os-server/src/adapters/redis-sentinel-publisher.js.map +1 -0
  18. package/apps/os-server/dist/apps/os-server/src/adapters/sentinel-event-stream.d.ts +14 -0
  19. package/apps/os-server/dist/apps/os-server/src/adapters/sentinel-event-stream.d.ts.map +1 -0
  20. package/apps/os-server/dist/apps/os-server/src/adapters/sentinel-event-stream.js +69 -0
  21. package/apps/os-server/dist/apps/os-server/src/adapters/sentinel-event-stream.js.map +1 -0
  22. package/apps/os-server/dist/apps/os-server/src/agents/definitions-simple.d.ts +10 -0
  23. package/apps/os-server/dist/apps/os-server/src/agents/definitions-simple.d.ts.map +1 -0
  24. package/apps/os-server/dist/apps/os-server/src/agents/definitions-simple.js +377 -0
  25. package/apps/os-server/dist/apps/os-server/src/agents/definitions-simple.js.map +1 -0
  26. package/apps/os-server/dist/apps/os-server/src/agents/definitions.d.ts +14 -0
  27. package/apps/os-server/dist/apps/os-server/src/agents/definitions.d.ts.map +1 -0
  28. package/apps/os-server/dist/apps/os-server/src/agents/definitions.js +210 -0
  29. package/apps/os-server/dist/apps/os-server/src/agents/definitions.js.map +1 -0
  30. package/apps/os-server/dist/apps/os-server/src/agents/local-model-provider.d.ts +25 -0
  31. package/apps/os-server/dist/apps/os-server/src/agents/local-model-provider.d.ts.map +1 -0
  32. package/apps/os-server/dist/apps/os-server/src/agents/local-model-provider.js +144 -0
  33. package/apps/os-server/dist/apps/os-server/src/agents/local-model-provider.js.map +1 -0
  34. package/apps/os-server/dist/apps/os-server/src/agents/tools.d.ts +24 -0
  35. package/apps/os-server/dist/apps/os-server/src/agents/tools.d.ts.map +1 -0
  36. package/apps/os-server/dist/apps/os-server/src/agents/tools.js +110 -0
  37. package/apps/os-server/dist/apps/os-server/src/agents/tools.js.map +1 -0
  38. package/apps/os-server/dist/apps/os-server/src/ai-providers/anthropic-provider.d.ts +14 -0
  39. package/apps/os-server/dist/apps/os-server/src/ai-providers/anthropic-provider.d.ts.map +1 -0
  40. package/apps/os-server/dist/apps/os-server/src/ai-providers/anthropic-provider.js +139 -0
  41. package/apps/os-server/dist/apps/os-server/src/ai-providers/anthropic-provider.js.map +1 -0
  42. package/apps/os-server/dist/apps/os-server/src/ai-providers/index.d.ts +6 -0
  43. package/apps/os-server/dist/apps/os-server/src/ai-providers/index.d.ts.map +1 -0
  44. package/apps/os-server/dist/apps/os-server/src/ai-providers/index.js +6 -0
  45. package/apps/os-server/dist/apps/os-server/src/ai-providers/index.js.map +1 -0
  46. package/apps/os-server/dist/apps/os-server/src/ai-providers/openai-provider.d.ts +14 -0
  47. package/apps/os-server/dist/apps/os-server/src/ai-providers/openai-provider.d.ts.map +1 -0
  48. package/apps/os-server/dist/apps/os-server/src/ai-providers/openai-provider.js +136 -0
  49. package/apps/os-server/dist/apps/os-server/src/ai-providers/openai-provider.js.map +1 -0
  50. package/apps/os-server/dist/apps/os-server/src/ai-providers/provider-manager.d.ts +18 -0
  51. package/apps/os-server/dist/apps/os-server/src/ai-providers/provider-manager.d.ts.map +1 -0
  52. package/apps/os-server/dist/apps/os-server/src/ai-providers/provider-manager.js +91 -0
  53. package/apps/os-server/dist/apps/os-server/src/ai-providers/provider-manager.js.map +1 -0
  54. package/apps/os-server/dist/apps/os-server/src/ai-providers/redis-credentials-store.d.ts +15 -0
  55. package/apps/os-server/dist/apps/os-server/src/ai-providers/redis-credentials-store.d.ts.map +1 -0
  56. package/apps/os-server/dist/apps/os-server/src/ai-providers/redis-credentials-store.js +181 -0
  57. package/apps/os-server/dist/apps/os-server/src/ai-providers/redis-credentials-store.js.map +1 -0
  58. package/apps/os-server/dist/apps/os-server/src/ai-providers/types.d.ts +54 -0
  59. package/apps/os-server/dist/apps/os-server/src/ai-providers/types.d.ts.map +1 -0
  60. package/apps/os-server/dist/apps/os-server/src/ai-providers/types.js +2 -0
  61. package/apps/os-server/dist/apps/os-server/src/ai-providers/types.js.map +1 -0
  62. package/apps/os-server/dist/apps/os-server/src/config/persistence.d.ts +5 -0
  63. package/apps/os-server/dist/apps/os-server/src/config/persistence.d.ts.map +1 -0
  64. package/apps/os-server/dist/apps/os-server/src/config/persistence.js +14 -0
  65. package/apps/os-server/dist/apps/os-server/src/config/persistence.js.map +1 -0
  66. package/apps/os-server/dist/apps/os-server/src/crypto/envelope.d.ts +28 -0
  67. package/apps/os-server/dist/apps/os-server/src/crypto/envelope.d.ts.map +1 -0
  68. package/apps/os-server/dist/apps/os-server/src/crypto/envelope.js +111 -0
  69. package/apps/os-server/dist/apps/os-server/src/crypto/envelope.js.map +1 -0
  70. package/apps/os-server/dist/apps/os-server/src/crypto/mfa-storage.d.ts +6 -0
  71. package/apps/os-server/dist/apps/os-server/src/crypto/mfa-storage.d.ts.map +1 -0
  72. package/apps/os-server/dist/apps/os-server/src/crypto/mfa-storage.js +61 -0
  73. package/apps/os-server/dist/apps/os-server/src/crypto/mfa-storage.js.map +1 -0
  74. package/apps/os-server/dist/apps/os-server/src/db/docker-manager.d.ts +21 -0
  75. package/apps/os-server/dist/apps/os-server/src/db/docker-manager.d.ts.map +1 -0
  76. package/apps/os-server/dist/apps/os-server/src/db/docker-manager.js +166 -0
  77. package/apps/os-server/dist/apps/os-server/src/db/docker-manager.js.map +1 -0
  78. package/apps/os-server/dist/apps/os-server/src/db/init.d.ts +11 -0
  79. package/apps/os-server/dist/apps/os-server/src/db/init.d.ts.map +1 -0
  80. package/apps/os-server/dist/apps/os-server/src/db/init.js +202 -0
  81. package/apps/os-server/dist/apps/os-server/src/db/init.js.map +1 -0
  82. package/apps/os-server/dist/apps/os-server/src/db/memory-db.d.ts +149 -0
  83. package/apps/os-server/dist/apps/os-server/src/db/memory-db.d.ts.map +1 -0
  84. package/apps/os-server/dist/apps/os-server/src/db/memory-db.js +295 -0
  85. package/apps/os-server/dist/apps/os-server/src/db/memory-db.js.map +1 -0
  86. package/apps/os-server/dist/apps/os-server/src/db/prisma.d.ts +4 -0
  87. package/apps/os-server/dist/apps/os-server/src/db/prisma.d.ts.map +1 -0
  88. package/apps/os-server/dist/apps/os-server/src/db/prisma.js +31 -0
  89. package/apps/os-server/dist/apps/os-server/src/db/prisma.js.map +1 -0
  90. package/apps/os-server/dist/apps/os-server/src/db/redis.d.ts +5 -0
  91. package/apps/os-server/dist/apps/os-server/src/db/redis.d.ts.map +1 -0
  92. package/apps/os-server/dist/apps/os-server/src/db/redis.js +69 -0
  93. package/apps/os-server/dist/apps/os-server/src/db/redis.js.map +1 -0
  94. package/apps/os-server/dist/apps/os-server/src/devkit/agents-api.d.ts +3 -0
  95. package/apps/os-server/dist/apps/os-server/src/devkit/agents-api.d.ts.map +1 -0
  96. package/apps/os-server/dist/apps/os-server/src/devkit/agents-api.js +369 -0
  97. package/apps/os-server/dist/apps/os-server/src/devkit/agents-api.js.map +1 -0
  98. package/apps/os-server/dist/apps/os-server/src/devkit/metrics-parser.d.ts +46 -0
  99. package/apps/os-server/dist/apps/os-server/src/devkit/metrics-parser.d.ts.map +1 -0
  100. package/apps/os-server/dist/apps/os-server/src/devkit/metrics-parser.js +114 -0
  101. package/apps/os-server/dist/apps/os-server/src/devkit/metrics-parser.js.map +1 -0
  102. package/apps/os-server/dist/apps/os-server/src/devkit/middleware.d.ts +9 -0
  103. package/apps/os-server/dist/apps/os-server/src/devkit/middleware.d.ts.map +1 -0
  104. package/apps/os-server/dist/apps/os-server/src/devkit/middleware.js +23 -0
  105. package/apps/os-server/dist/apps/os-server/src/devkit/middleware.js.map +1 -0
  106. package/apps/os-server/dist/apps/os-server/src/devkit/routes.d.ts +3 -0
  107. package/apps/os-server/dist/apps/os-server/src/devkit/routes.d.ts.map +1 -0
  108. package/apps/os-server/dist/apps/os-server/src/devkit/routes.js +270 -0
  109. package/apps/os-server/dist/apps/os-server/src/devkit/routes.js.map +1 -0
  110. package/apps/os-server/dist/apps/os-server/src/devkit/tools-api.d.ts +3 -0
  111. package/apps/os-server/dist/apps/os-server/src/devkit/tools-api.d.ts.map +1 -0
  112. package/apps/os-server/dist/apps/os-server/src/devkit/tools-api.js +183 -0
  113. package/apps/os-server/dist/apps/os-server/src/devkit/tools-api.js.map +1 -0
  114. package/apps/os-server/dist/apps/os-server/src/health/index.d.ts +36 -0
  115. package/apps/os-server/dist/apps/os-server/src/health/index.d.ts.map +1 -0
  116. package/apps/os-server/dist/apps/os-server/src/health/index.js +275 -0
  117. package/apps/os-server/dist/apps/os-server/src/health/index.js.map +1 -0
  118. package/apps/os-server/dist/apps/os-server/src/index.d.ts +2 -0
  119. package/apps/os-server/dist/apps/os-server/src/index.d.ts.map +1 -0
  120. package/apps/os-server/dist/apps/os-server/src/index.js +1131 -0
  121. package/apps/os-server/dist/apps/os-server/src/index.js.map +1 -0
  122. package/apps/os-server/dist/apps/os-server/src/metrics/index.d.ts +48 -0
  123. package/apps/os-server/dist/apps/os-server/src/metrics/index.d.ts.map +1 -0
  124. package/apps/os-server/dist/apps/os-server/src/metrics/index.js +296 -0
  125. package/apps/os-server/dist/apps/os-server/src/metrics/index.js.map +1 -0
  126. package/apps/os-server/dist/apps/os-server/src/metrics/monitoring-detail.d.ts +18 -0
  127. package/apps/os-server/dist/apps/os-server/src/metrics/monitoring-detail.d.ts.map +1 -0
  128. package/apps/os-server/dist/apps/os-server/src/metrics/monitoring-detail.js +117 -0
  129. package/apps/os-server/dist/apps/os-server/src/metrics/monitoring-detail.js.map +1 -0
  130. package/apps/os-server/dist/apps/os-server/src/middleware/auth.d.ts +5 -0
  131. package/apps/os-server/dist/apps/os-server/src/middleware/auth.d.ts.map +1 -0
  132. package/apps/os-server/dist/apps/os-server/src/middleware/auth.js +64 -0
  133. package/apps/os-server/dist/apps/os-server/src/middleware/auth.js.map +1 -0
  134. package/apps/os-server/dist/apps/os-server/src/middleware/authApiKey.d.ts +4 -0
  135. package/apps/os-server/dist/apps/os-server/src/middleware/authApiKey.d.ts.map +1 -0
  136. package/apps/os-server/dist/apps/os-server/src/middleware/authApiKey.js +105 -0
  137. package/apps/os-server/dist/apps/os-server/src/middleware/authApiKey.js.map +1 -0
  138. package/apps/os-server/dist/apps/os-server/src/middleware/authJwt.d.ts +12 -0
  139. package/apps/os-server/dist/apps/os-server/src/middleware/authJwt.d.ts.map +1 -0
  140. package/apps/os-server/dist/apps/os-server/src/middleware/authJwt.js +75 -0
  141. package/apps/os-server/dist/apps/os-server/src/middleware/authJwt.js.map +1 -0
  142. package/apps/os-server/dist/apps/os-server/src/middleware/correlationId.d.ts +6 -0
  143. package/apps/os-server/dist/apps/os-server/src/middleware/correlationId.d.ts.map +1 -0
  144. package/apps/os-server/dist/apps/os-server/src/middleware/correlationId.js +21 -0
  145. package/apps/os-server/dist/apps/os-server/src/middleware/correlationId.js.map +1 -0
  146. package/apps/os-server/dist/apps/os-server/src/middleware/ddos-protection.d.ts +13 -0
  147. package/apps/os-server/dist/apps/os-server/src/middleware/ddos-protection.d.ts.map +1 -0
  148. package/apps/os-server/dist/apps/os-server/src/middleware/ddos-protection.js +202 -0
  149. package/apps/os-server/dist/apps/os-server/src/middleware/ddos-protection.js.map +1 -0
  150. package/apps/os-server/dist/apps/os-server/src/middleware/errorHandler.d.ts +14 -0
  151. package/apps/os-server/dist/apps/os-server/src/middleware/errorHandler.d.ts.map +1 -0
  152. package/apps/os-server/dist/apps/os-server/src/middleware/errorHandler.js +98 -0
  153. package/apps/os-server/dist/apps/os-server/src/middleware/errorHandler.js.map +1 -0
  154. package/apps/os-server/dist/apps/os-server/src/middleware/log-capture.d.ts +2 -0
  155. package/apps/os-server/dist/apps/os-server/src/middleware/log-capture.d.ts.map +1 -0
  156. package/apps/os-server/dist/apps/os-server/src/middleware/log-capture.js +63 -0
  157. package/apps/os-server/dist/apps/os-server/src/middleware/log-capture.js.map +1 -0
  158. package/apps/os-server/dist/apps/os-server/src/middleware/mfa.d.ts +3 -0
  159. package/apps/os-server/dist/apps/os-server/src/middleware/mfa.d.ts.map +1 -0
  160. package/apps/os-server/dist/apps/os-server/src/middleware/mfa.js +96 -0
  161. package/apps/os-server/dist/apps/os-server/src/middleware/mfa.js.map +1 -0
  162. package/apps/os-server/dist/apps/os-server/src/middleware/rateLimit.d.ts +6 -0
  163. package/apps/os-server/dist/apps/os-server/src/middleware/rateLimit.d.ts.map +1 -0
  164. package/apps/os-server/dist/apps/os-server/src/middleware/rateLimit.js +54 -0
  165. package/apps/os-server/dist/apps/os-server/src/middleware/rateLimit.js.map +1 -0
  166. package/apps/os-server/dist/apps/os-server/src/middleware/rbac.d.ts +19 -0
  167. package/apps/os-server/dist/apps/os-server/src/middleware/rbac.d.ts.map +1 -0
  168. package/apps/os-server/dist/apps/os-server/src/middleware/rbac.js +229 -0
  169. package/apps/os-server/dist/apps/os-server/src/middleware/rbac.js.map +1 -0
  170. package/apps/os-server/dist/apps/os-server/src/middleware/security.d.ts +10 -0
  171. package/apps/os-server/dist/apps/os-server/src/middleware/security.d.ts.map +1 -0
  172. package/apps/os-server/dist/apps/os-server/src/middleware/security.js +146 -0
  173. package/apps/os-server/dist/apps/os-server/src/middleware/security.js.map +1 -0
  174. package/apps/os-server/dist/apps/os-server/src/middleware/validate.d.ts +7 -0
  175. package/apps/os-server/dist/apps/os-server/src/middleware/validate.d.ts.map +1 -0
  176. package/apps/os-server/dist/apps/os-server/src/middleware/validate.js +156 -0
  177. package/apps/os-server/dist/apps/os-server/src/middleware/validate.js.map +1 -0
  178. package/apps/os-server/dist/apps/os-server/src/queue/config.d.ts +26 -0
  179. package/apps/os-server/dist/apps/os-server/src/queue/config.d.ts.map +1 -0
  180. package/apps/os-server/dist/apps/os-server/src/queue/config.js +21 -0
  181. package/apps/os-server/dist/apps/os-server/src/queue/config.js.map +1 -0
  182. package/apps/os-server/dist/apps/os-server/src/queue/index.d.ts +13 -0
  183. package/apps/os-server/dist/apps/os-server/src/queue/index.d.ts.map +1 -0
  184. package/apps/os-server/dist/apps/os-server/src/queue/index.js +152 -0
  185. package/apps/os-server/dist/apps/os-server/src/queue/index.js.map +1 -0
  186. package/apps/os-server/dist/apps/os-server/src/queue/processor.d.ts +16 -0
  187. package/apps/os-server/dist/apps/os-server/src/queue/processor.d.ts.map +1 -0
  188. package/apps/os-server/dist/apps/os-server/src/queue/processor.js +378 -0
  189. package/apps/os-server/dist/apps/os-server/src/queue/processor.js.map +1 -0
  190. package/apps/os-server/dist/apps/os-server/src/queue/sentinel-execute-watch.d.ts +7 -0
  191. package/apps/os-server/dist/apps/os-server/src/queue/sentinel-execute-watch.d.ts.map +1 -0
  192. package/apps/os-server/dist/apps/os-server/src/queue/sentinel-execute-watch.js +22 -0
  193. package/apps/os-server/dist/apps/os-server/src/queue/sentinel-execute-watch.js.map +1 -0
  194. package/apps/os-server/dist/apps/os-server/src/routes/ai-providers-simple.d.ts +3 -0
  195. package/apps/os-server/dist/apps/os-server/src/routes/ai-providers-simple.d.ts.map +1 -0
  196. package/apps/os-server/dist/apps/os-server/src/routes/ai-providers-simple.js +175 -0
  197. package/apps/os-server/dist/apps/os-server/src/routes/ai-providers-simple.js.map +1 -0
  198. package/apps/os-server/dist/apps/os-server/src/routes/chats.d.ts +3 -0
  199. package/apps/os-server/dist/apps/os-server/src/routes/chats.d.ts.map +1 -0
  200. package/apps/os-server/dist/apps/os-server/src/routes/chats.js +150 -0
  201. package/apps/os-server/dist/apps/os-server/src/routes/chats.js.map +1 -0
  202. package/apps/os-server/dist/apps/os-server/src/routes/gdpr.d.ts +3 -0
  203. package/apps/os-server/dist/apps/os-server/src/routes/gdpr.d.ts.map +1 -0
  204. package/apps/os-server/dist/apps/os-server/src/routes/gdpr.js +252 -0
  205. package/apps/os-server/dist/apps/os-server/src/routes/gdpr.js.map +1 -0
  206. package/apps/os-server/dist/apps/os-server/src/routes/mfa.d.ts +3 -0
  207. package/apps/os-server/dist/apps/os-server/src/routes/mfa.d.ts.map +1 -0
  208. package/apps/os-server/dist/apps/os-server/src/routes/mfa.js +240 -0
  209. package/apps/os-server/dist/apps/os-server/src/routes/mfa.js.map +1 -0
  210. package/apps/os-server/dist/apps/os-server/src/routes/monitoring.d.ts +16 -0
  211. package/apps/os-server/dist/apps/os-server/src/routes/monitoring.d.ts.map +1 -0
  212. package/apps/os-server/dist/apps/os-server/src/routes/monitoring.js +168 -0
  213. package/apps/os-server/dist/apps/os-server/src/routes/monitoring.js.map +1 -0
  214. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-policies.d.ts +3 -0
  215. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-policies.d.ts.map +1 -0
  216. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-policies.js +209 -0
  217. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-policies.js.map +1 -0
  218. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-predictive.d.ts +3 -0
  219. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-predictive.d.ts.map +1 -0
  220. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-predictive.js +88 -0
  221. package/apps/os-server/dist/apps/os-server/src/routes/sentinel-predictive.js.map +1 -0
  222. package/apps/os-server/dist/apps/os-server/src/routes/shield.d.ts +3 -0
  223. package/apps/os-server/dist/apps/os-server/src/routes/shield.d.ts.map +1 -0
  224. package/apps/os-server/dist/apps/os-server/src/routes/shield.js +85 -0
  225. package/apps/os-server/dist/apps/os-server/src/routes/shield.js.map +1 -0
  226. package/apps/os-server/dist/apps/os-server/src/routes/tool-credentials.d.ts +3 -0
  227. package/apps/os-server/dist/apps/os-server/src/routes/tool-credentials.d.ts.map +1 -0
  228. package/apps/os-server/dist/apps/os-server/src/routes/tool-credentials.js +209 -0
  229. package/apps/os-server/dist/apps/os-server/src/routes/tool-credentials.js.map +1 -0
  230. package/apps/os-server/dist/apps/os-server/src/routes/tool-proxy.d.ts +3 -0
  231. package/apps/os-server/dist/apps/os-server/src/routes/tool-proxy.d.ts.map +1 -0
  232. package/apps/os-server/dist/apps/os-server/src/routes/tool-proxy.js +206 -0
  233. package/apps/os-server/dist/apps/os-server/src/routes/tool-proxy.js.map +1 -0
  234. package/apps/os-server/dist/apps/os-server/src/runs/index.d.ts +5 -0
  235. package/apps/os-server/dist/apps/os-server/src/runs/index.d.ts.map +1 -0
  236. package/apps/os-server/dist/apps/os-server/src/runs/index.js +19 -0
  237. package/apps/os-server/dist/apps/os-server/src/runs/index.js.map +1 -0
  238. package/apps/os-server/dist/apps/os-server/src/runs/memoryRunStore.d.ts +12 -0
  239. package/apps/os-server/dist/apps/os-server/src/runs/memoryRunStore.d.ts.map +1 -0
  240. package/apps/os-server/dist/apps/os-server/src/runs/memoryRunStore.js +78 -0
  241. package/apps/os-server/dist/apps/os-server/src/runs/memoryRunStore.js.map +1 -0
  242. package/apps/os-server/dist/apps/os-server/src/runs/postgresRunStore.d.ts +15 -0
  243. package/apps/os-server/dist/apps/os-server/src/runs/postgresRunStore.d.ts.map +1 -0
  244. package/apps/os-server/dist/apps/os-server/src/runs/postgresRunStore.js +148 -0
  245. package/apps/os-server/dist/apps/os-server/src/runs/postgresRunStore.js.map +1 -0
  246. package/apps/os-server/dist/apps/os-server/src/runs/run-kill.d.ts +20 -0
  247. package/apps/os-server/dist/apps/os-server/src/runs/run-kill.d.ts.map +1 -0
  248. package/apps/os-server/dist/apps/os-server/src/runs/run-kill.js +69 -0
  249. package/apps/os-server/dist/apps/os-server/src/runs/run-kill.js.map +1 -0
  250. package/apps/os-server/dist/apps/os-server/src/runs/run-retention.d.ts +17 -0
  251. package/apps/os-server/dist/apps/os-server/src/runs/run-retention.d.ts.map +1 -0
  252. package/apps/os-server/dist/apps/os-server/src/runs/run-retention.js +124 -0
  253. package/apps/os-server/dist/apps/os-server/src/runs/run-retention.js.map +1 -0
  254. package/apps/os-server/dist/apps/os-server/src/runs/runStore.d.ts +10 -0
  255. package/apps/os-server/dist/apps/os-server/src/runs/runStore.d.ts.map +1 -0
  256. package/apps/os-server/dist/apps/os-server/src/runs/runStore.js +2 -0
  257. package/apps/os-server/dist/apps/os-server/src/runs/runStore.js.map +1 -0
  258. package/apps/os-server/dist/apps/os-server/src/runs/types.d.ts +44 -0
  259. package/apps/os-server/dist/apps/os-server/src/runs/types.d.ts.map +1 -0
  260. package/apps/os-server/dist/apps/os-server/src/runs/types.js +2 -0
  261. package/apps/os-server/dist/apps/os-server/src/runs/types.js.map +1 -0
  262. package/apps/os-server/dist/apps/os-server/src/schemas/runs.d.ts +126 -0
  263. package/apps/os-server/dist/apps/os-server/src/schemas/runs.d.ts.map +1 -0
  264. package/apps/os-server/dist/apps/os-server/src/schemas/runs.js +63 -0
  265. package/apps/os-server/dist/apps/os-server/src/schemas/runs.js.map +1 -0
  266. package/apps/os-server/dist/apps/os-server/src/security/agent-token.d.ts +51 -0
  267. package/apps/os-server/dist/apps/os-server/src/security/agent-token.d.ts.map +1 -0
  268. package/apps/os-server/dist/apps/os-server/src/security/agent-token.js +161 -0
  269. package/apps/os-server/dist/apps/os-server/src/security/agent-token.js.map +1 -0
  270. package/apps/os-server/dist/apps/os-server/src/security/outbound-url.d.ts +2 -0
  271. package/apps/os-server/dist/apps/os-server/src/security/outbound-url.d.ts.map +1 -0
  272. package/apps/os-server/dist/apps/os-server/src/security/outbound-url.js +65 -0
  273. package/apps/os-server/dist/apps/os-server/src/security/outbound-url.js.map +1 -0
  274. package/apps/os-server/dist/apps/os-server/src/security/sentinel-config-store.d.ts +14 -0
  275. package/apps/os-server/dist/apps/os-server/src/security/sentinel-config-store.d.ts.map +1 -0
  276. package/apps/os-server/dist/apps/os-server/src/security/sentinel-config-store.js +168 -0
  277. package/apps/os-server/dist/apps/os-server/src/security/sentinel-config-store.js.map +1 -0
  278. package/apps/os-server/dist/apps/os-server/src/security/sentinel-run-failure.d.ts +25 -0
  279. package/apps/os-server/dist/apps/os-server/src/security/sentinel-run-failure.d.ts.map +1 -0
  280. package/apps/os-server/dist/apps/os-server/src/security/sentinel-run-failure.js +46 -0
  281. package/apps/os-server/dist/apps/os-server/src/security/sentinel-run-failure.js.map +1 -0
  282. package/apps/os-server/dist/apps/os-server/src/security/shield-config.d.ts +14 -0
  283. package/apps/os-server/dist/apps/os-server/src/security/shield-config.d.ts.map +1 -0
  284. package/apps/os-server/dist/apps/os-server/src/security/shield-config.js +70 -0
  285. package/apps/os-server/dist/apps/os-server/src/security/shield-config.js.map +1 -0
  286. package/apps/os-server/dist/apps/os-server/src/utils/circuit-breaker.d.ts +13 -0
  287. package/apps/os-server/dist/apps/os-server/src/utils/circuit-breaker.d.ts.map +1 -0
  288. package/apps/os-server/dist/apps/os-server/src/utils/circuit-breaker.js +72 -0
  289. package/apps/os-server/dist/apps/os-server/src/utils/circuit-breaker.js.map +1 -0
  290. package/apps/os-server/dist/apps/os-server/src/utils/log-encryption.d.ts +10 -0
  291. package/apps/os-server/dist/apps/os-server/src/utils/log-encryption.d.ts.map +1 -0
  292. package/apps/os-server/dist/apps/os-server/src/utils/log-encryption.js +140 -0
  293. package/apps/os-server/dist/apps/os-server/src/utils/log-encryption.js.map +1 -0
  294. package/apps/os-server/docker-compose.local.yml +46 -0
  295. package/apps/os-server/find-gateway.sh +37 -0
  296. package/apps/os-server/jest.config.cjs +52 -0
  297. package/apps/os-server/package-lock.json +8809 -0
  298. package/apps/os-server/package.json +66 -0
  299. package/apps/os-server/scripts/setup-test-env.sh +67 -0
  300. package/apps/os-server/src/__tests__/integration/README.md +92 -0
  301. package/apps/os-server/src/__tests__/integration/helpers/test-server.ts +178 -0
  302. package/apps/os-server/src/__tests__/integration/sentinel.test.ts +364 -0
  303. package/apps/os-server/src/adapters/redis-sentinel-publisher.ts +176 -0
  304. package/apps/os-server/src/agents/definitions-simple.ts +536 -0
  305. package/apps/os-server/src/ai-providers/anthropic-provider.ts +194 -0
  306. package/apps/os-server/src/ai-providers/openai-provider.ts +193 -0
  307. package/apps/os-server/src/ai-providers/redis-credentials-store.ts +224 -0
  308. package/apps/os-server/src/db/docker-manager.ts +262 -0
  309. package/apps/os-server/src/db/init.ts +292 -0
  310. package/apps/os-server/src/devkit/routes.ts +349 -0
  311. package/apps/os-server/src/health/index.ts +375 -0
  312. package/apps/os-server/src/index.ts +1506 -0
  313. package/apps/os-server/src/middleware/correlationId.ts +56 -0
  314. package/apps/os-server/src/middleware/ddos-protection.ts +318 -0
  315. package/apps/os-server/src/middleware/log-capture.ts +92 -0
  316. package/apps/os-server/src/middleware/security.ts +222 -0
  317. package/apps/os-server/src/routes/ai-providers-simple.ts +220 -0
  318. package/apps/os-server/src/routes/gdpr.ts +337 -0
  319. package/apps/os-server/src/routes/monitoring.ts +315 -0
  320. package/apps/os-server/src/routes/sentinel-policies.ts +293 -0
  321. package/apps/os-server/src/routes/sentinel-predictive.ts +129 -0
  322. package/apps/os-server/src/routes/tool-proxy.ts +285 -0
  323. package/apps/os-server/src/security/outbound-url.ts +83 -0
  324. package/apps/os-server/update-and-test.sh +36 -0
  325. package/dist/boot-sequence.js +1 -1
  326. package/dist/boot-sequence.js.map +1 -1
  327. package/dist/gateway-api-key-bootstrap.js +1 -1
  328. package/dist/gateway-api-key-bootstrap.js.map +1 -1
  329. package/dist/gateway-prisma-bootstrap.d.ts +1 -1
  330. package/dist/gateway-prisma-bootstrap.js +1 -1
  331. package/dist/index.js +8 -8
  332. package/dist/index.js.map +1 -1
  333. package/dist/local-gateway-pid.d.ts +1 -1
  334. package/dist/local-gateway-pid.js +1 -1
  335. package/dist/os-tui-binary-bootstrap.d.ts +18 -0
  336. package/dist/os-tui-binary-bootstrap.d.ts.map +1 -0
  337. package/dist/os-tui-binary-bootstrap.js +175 -0
  338. package/dist/os-tui-binary-bootstrap.js.map +1 -0
  339. package/dist/rust-check.js +2 -2
  340. package/dist/rust-check.js.map +1 -1
  341. package/dist/system-verify.js +8 -8
  342. package/dist/system-verify.js.map +1 -1
  343. package/dist/tui-handlers.js +12 -12
  344. package/dist/tui-handlers.js.map +1 -1
  345. package/dist/watchdog.js +73 -73
  346. package/os-tui/Cargo.lock +1118 -0
  347. package/os-tui/Cargo.toml +17 -0
  348. package/os-tui/bin/os-tui.js +63 -0
  349. package/os-tui/binaries/win32-x64/os-tui.exe +0 -0
  350. package/os-tui/src/app/render_scheduler.rs +111 -0
  351. package/os-tui/src/app.rs +3814 -0
  352. package/os-tui/src/debug_log.rs +131 -0
  353. package/os-tui/src/io/mod.rs +63 -0
  354. package/os-tui/src/io/protocol.rs +14 -0
  355. package/os-tui/src/io/stdio.rs +31 -0
  356. package/os-tui/src/io/ws.rs +25 -0
  357. package/os-tui/src/main.rs +2090 -0
  358. package/os-tui/src/monitoring/mod.rs +439 -0
  359. package/os-tui/src/screens/mod.rs +254 -0
  360. package/os-tui/src/storage/cache.rs +221 -0
  361. package/os-tui/src/storage/mod.rs +5 -0
  362. package/os-tui/src/ui/agent_builder.rs +1148 -0
  363. package/os-tui/src/ui/agent_list.rs +344 -0
  364. package/os-tui/src/ui/boot.rs +145 -0
  365. package/os-tui/src/ui/connection_portal.rs +839 -0
  366. package/os-tui/src/ui/help.rs +340 -0
  367. package/os-tui/src/ui/layout.rs +978 -0
  368. package/os-tui/src/ui/mod.rs +13 -0
  369. package/os-tui/src/ui/portal_monitoring.rs +1128 -0
  370. package/os-tui/src/ui/run_manager.rs +922 -0
  371. package/os-tui/src/ui/safe_viewport.rs +236 -0
  372. package/os-tui/src/ui/sentinel_config.rs +828 -0
  373. package/os-tui/src/ui/settings.rs +414 -0
  374. package/os-tui/src/ui/setup_portal.rs +547 -0
  375. package/os-tui/src/ui/shield_dashboard.rs +1081 -0
  376. package/os-tui/src/websocket.rs +315 -0
  377. package/package.json +121 -121
  378. package/prisma/schema.prisma +470 -470
  379. package/scripts/cleanup-build-artifacts.js +2 -2
  380. package/scripts/os-tools-smoke.cjs +549 -549
  381. package/scripts/postinstall-os-server.js +63 -0
  382. package/scripts/postinstall-os-tui.js +64 -0
  383. package/scripts/seed-os-server-api-key.cjs +77 -0
  384. package/scripts/setup.js +11 -11
  385. package/src/security/package-integrity.ts +188 -188
  386. package/src/security/ssrf-protection.ts +147 -147
  387. package/apps/gateway/DEPLOYMENT.md +0 -426
  388. package/apps/gateway/JWT-RATE-LIMIT-VALIDATION.md +0 -462
  389. package/apps/gateway/PERSISTENCE-AND-AUTH.md +0 -227
  390. package/apps/gateway/PHASE5-TESTING.md +0 -222
  391. package/apps/gateway/README.md +0 -368
  392. package/apps/gateway/TROUBLESHOOTING.md +0 -541
  393. package/apps/gateway/docker-compose.local.yml +0 -46
  394. package/apps/gateway/find-gateway.sh +0 -37
  395. package/apps/gateway/jest.config.cjs +0 -52
  396. package/apps/gateway/package-lock.json +0 -8810
  397. package/apps/gateway/package.json +0 -66
  398. package/apps/gateway/scripts/setup-test-env.sh +0 -67
  399. package/apps/gateway/src/__tests__/integration/README.md +0 -92
  400. package/apps/gateway/src/__tests__/integration/helpers/test-server.ts +0 -178
  401. package/apps/gateway/src/__tests__/integration/sentinel.test.ts +0 -364
  402. package/apps/gateway/src/adapters/redis-sentinel-publisher.ts +0 -176
  403. package/apps/gateway/src/agents/definitions-simple.ts +0 -536
  404. package/apps/gateway/src/ai-providers/anthropic-provider.ts +0 -194
  405. package/apps/gateway/src/ai-providers/openai-provider.ts +0 -193
  406. package/apps/gateway/src/ai-providers/redis-credentials-store.ts +0 -224
  407. package/apps/gateway/src/db/docker-manager.ts +0 -262
  408. package/apps/gateway/src/db/init.ts +0 -292
  409. package/apps/gateway/src/devkit/routes.ts +0 -349
  410. package/apps/gateway/src/health/index.ts +0 -375
  411. package/apps/gateway/src/index.ts +0 -1506
  412. package/apps/gateway/src/middleware/correlationId.ts +0 -56
  413. package/apps/gateway/src/middleware/ddos-protection.ts +0 -318
  414. package/apps/gateway/src/middleware/log-capture.ts +0 -92
  415. package/apps/gateway/src/middleware/security.ts +0 -222
  416. package/apps/gateway/src/routes/ai-providers-simple.ts +0 -220
  417. package/apps/gateway/src/routes/gdpr.ts +0 -337
  418. package/apps/gateway/src/routes/monitoring.ts +0 -315
  419. package/apps/gateway/src/routes/sentinel-policies.ts +0 -293
  420. package/apps/gateway/src/routes/sentinel-predictive.ts +0 -129
  421. package/apps/gateway/src/routes/tool-proxy.ts +0 -285
  422. package/apps/gateway/src/security/outbound-url.ts +0 -83
  423. package/apps/gateway/update-and-test.sh +0 -36
  424. package/mk3-tui/Cargo.lock +0 -1118
  425. package/mk3-tui/Cargo.toml +0 -17
  426. package/mk3-tui/bin/mk3-tui.js +0 -63
  427. package/mk3-tui/binaries/win32-x64/mk3-tui.exe +0 -0
  428. package/mk3-tui/src/app/render_scheduler.rs +0 -111
  429. package/mk3-tui/src/app.rs +0 -3813
  430. package/mk3-tui/src/debug_log.rs +0 -131
  431. package/mk3-tui/src/io/mod.rs +0 -63
  432. package/mk3-tui/src/io/protocol.rs +0 -14
  433. package/mk3-tui/src/io/stdio.rs +0 -31
  434. package/mk3-tui/src/io/ws.rs +0 -25
  435. package/mk3-tui/src/main.rs +0 -2090
  436. package/mk3-tui/src/monitoring/mod.rs +0 -439
  437. package/mk3-tui/src/screens/mod.rs +0 -254
  438. package/mk3-tui/src/storage/cache.rs +0 -221
  439. package/mk3-tui/src/storage/mod.rs +0 -5
  440. package/mk3-tui/src/ui/agent_builder.rs +0 -1148
  441. package/mk3-tui/src/ui/agent_list.rs +0 -344
  442. package/mk3-tui/src/ui/boot.rs +0 -145
  443. package/mk3-tui/src/ui/connection_portal.rs +0 -839
  444. package/mk3-tui/src/ui/help.rs +0 -340
  445. package/mk3-tui/src/ui/layout.rs +0 -978
  446. package/mk3-tui/src/ui/mod.rs +0 -13
  447. package/mk3-tui/src/ui/portal_monitoring.rs +0 -1128
  448. package/mk3-tui/src/ui/run_manager.rs +0 -913
  449. package/mk3-tui/src/ui/safe_viewport.rs +0 -236
  450. package/mk3-tui/src/ui/sentinel_config.rs +0 -828
  451. package/mk3-tui/src/ui/settings.rs +0 -414
  452. package/mk3-tui/src/ui/setup_portal.rs +0 -547
  453. package/mk3-tui/src/ui/shield_dashboard.rs +0 -1081
  454. package/mk3-tui/src/websocket.rs +0 -315
  455. package/scripts/postinstall-gateway.js +0 -63
  456. package/scripts/postinstall-mk3.js +0 -64
  457. package/scripts/seed-gateway-api-key.cjs +0 -77
  458. /package/apps/{gateway → os-server}/.dockerignore +0 -0
  459. /package/apps/{gateway → os-server}/.eslintrc.json +0 -0
  460. /package/apps/{gateway → os-server}/Dockerfile +0 -0
  461. /package/apps/{gateway → os-server}/Dockerfile.bak +0 -0
  462. /package/apps/{gateway → os-server}/ENV_VARIABLES.md +0 -0
  463. /package/apps/{gateway → os-server}/create-test-script.sh +0 -0
  464. /package/apps/{gateway → os-server}/debug-api-responses.sh +0 -0
  465. /package/apps/{gateway → os-server}/debug-failing-tests-v2.sh +0 -0
  466. /package/apps/{gateway → os-server}/debug-failing-tests.sh +0 -0
  467. /package/apps/{gateway → os-server}/debug-responses.sh +0 -0
  468. /package/apps/{gateway → os-server}/debug-test-responses.sh +0 -0
  469. /package/apps/{gateway → os-server}/debug-tests.sh +0 -0
  470. /package/apps/{gateway → os-server}/diagnose-test-failure.sh +0 -0
  471. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/gateway-cancel-adapter.d.ts +0 -0
  472. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/gateway-cancel-adapter.d.ts.map +0 -0
  473. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/gateway-cancel-adapter.js +0 -0
  474. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/gateway-cancel-adapter.js.map +0 -0
  475. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/redis-sentinel-publisher.d.ts +0 -0
  476. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/redis-sentinel-publisher.d.ts.map +0 -0
  477. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/redis-sentinel-publisher.js +0 -0
  478. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/redis-sentinel-publisher.js.map +0 -0
  479. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/sentinel-event-stream.d.ts +0 -0
  480. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/sentinel-event-stream.d.ts.map +0 -0
  481. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/sentinel-event-stream.js +0 -0
  482. /package/apps/{gateway → os-server}/dist/apps/gateway/src/adapters/sentinel-event-stream.js.map +0 -0
  483. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions-simple.d.ts +0 -0
  484. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions-simple.d.ts.map +0 -0
  485. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions-simple.js +0 -0
  486. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions-simple.js.map +0 -0
  487. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions.d.ts +0 -0
  488. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions.d.ts.map +0 -0
  489. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions.js +0 -0
  490. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/definitions.js.map +0 -0
  491. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/local-model-provider.d.ts +0 -0
  492. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/local-model-provider.d.ts.map +0 -0
  493. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/local-model-provider.js +0 -0
  494. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/local-model-provider.js.map +0 -0
  495. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/tools.d.ts +0 -0
  496. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/tools.d.ts.map +0 -0
  497. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/tools.js +0 -0
  498. /package/apps/{gateway → os-server}/dist/apps/gateway/src/agents/tools.js.map +0 -0
  499. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/anthropic-provider.d.ts +0 -0
  500. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/anthropic-provider.d.ts.map +0 -0
  501. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/anthropic-provider.js +0 -0
  502. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/anthropic-provider.js.map +0 -0
  503. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/index.d.ts +0 -0
  504. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/index.d.ts.map +0 -0
  505. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/index.js +0 -0
  506. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/index.js.map +0 -0
  507. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/openai-provider.d.ts +0 -0
  508. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/openai-provider.d.ts.map +0 -0
  509. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/openai-provider.js +0 -0
  510. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/openai-provider.js.map +0 -0
  511. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/provider-manager.d.ts +0 -0
  512. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/provider-manager.d.ts.map +0 -0
  513. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/provider-manager.js +0 -0
  514. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/provider-manager.js.map +0 -0
  515. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/redis-credentials-store.d.ts +0 -0
  516. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/redis-credentials-store.d.ts.map +0 -0
  517. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/redis-credentials-store.js +0 -0
  518. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/redis-credentials-store.js.map +0 -0
  519. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/types.d.ts +0 -0
  520. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/types.d.ts.map +0 -0
  521. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/types.js +0 -0
  522. /package/apps/{gateway → os-server}/dist/apps/gateway/src/ai-providers/types.js.map +0 -0
  523. /package/apps/{gateway → os-server}/dist/apps/gateway/src/config/persistence.d.ts +0 -0
  524. /package/apps/{gateway → os-server}/dist/apps/gateway/src/config/persistence.d.ts.map +0 -0
  525. /package/apps/{gateway → os-server}/dist/apps/gateway/src/config/persistence.js +0 -0
  526. /package/apps/{gateway → os-server}/dist/apps/gateway/src/config/persistence.js.map +0 -0
  527. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/envelope.d.ts +0 -0
  528. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/envelope.d.ts.map +0 -0
  529. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/envelope.js +0 -0
  530. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/envelope.js.map +0 -0
  531. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/mfa-storage.d.ts +0 -0
  532. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/mfa-storage.d.ts.map +0 -0
  533. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/mfa-storage.js +0 -0
  534. /package/apps/{gateway → os-server}/dist/apps/gateway/src/crypto/mfa-storage.js.map +0 -0
  535. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/docker-manager.d.ts +0 -0
  536. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/docker-manager.d.ts.map +0 -0
  537. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/docker-manager.js +0 -0
  538. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/docker-manager.js.map +0 -0
  539. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/init.d.ts +0 -0
  540. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/init.d.ts.map +0 -0
  541. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/init.js +0 -0
  542. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/init.js.map +0 -0
  543. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/memory-db.d.ts +0 -0
  544. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/memory-db.d.ts.map +0 -0
  545. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/memory-db.js +0 -0
  546. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/memory-db.js.map +0 -0
  547. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/prisma.d.ts +0 -0
  548. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/prisma.d.ts.map +0 -0
  549. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/prisma.js +0 -0
  550. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/prisma.js.map +0 -0
  551. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/redis.d.ts +0 -0
  552. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/redis.d.ts.map +0 -0
  553. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/redis.js +0 -0
  554. /package/apps/{gateway → os-server}/dist/apps/gateway/src/db/redis.js.map +0 -0
  555. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/agents-api.d.ts +0 -0
  556. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/agents-api.d.ts.map +0 -0
  557. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/agents-api.js +0 -0
  558. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/agents-api.js.map +0 -0
  559. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/metrics-parser.d.ts +0 -0
  560. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/metrics-parser.d.ts.map +0 -0
  561. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/metrics-parser.js +0 -0
  562. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/metrics-parser.js.map +0 -0
  563. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/middleware.d.ts +0 -0
  564. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/middleware.d.ts.map +0 -0
  565. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/middleware.js +0 -0
  566. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/middleware.js.map +0 -0
  567. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/routes.d.ts +0 -0
  568. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/routes.d.ts.map +0 -0
  569. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/routes.js +0 -0
  570. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/routes.js.map +0 -0
  571. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/tools-api.d.ts +0 -0
  572. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/tools-api.d.ts.map +0 -0
  573. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/tools-api.js +0 -0
  574. /package/apps/{gateway → os-server}/dist/apps/gateway/src/devkit/tools-api.js.map +0 -0
  575. /package/apps/{gateway → os-server}/dist/apps/gateway/src/health/index.d.ts +0 -0
  576. /package/apps/{gateway → os-server}/dist/apps/gateway/src/health/index.d.ts.map +0 -0
  577. /package/apps/{gateway → os-server}/dist/apps/gateway/src/health/index.js +0 -0
  578. /package/apps/{gateway → os-server}/dist/apps/gateway/src/health/index.js.map +0 -0
  579. /package/apps/{gateway → os-server}/dist/apps/gateway/src/index.d.ts +0 -0
  580. /package/apps/{gateway → os-server}/dist/apps/gateway/src/index.d.ts.map +0 -0
  581. /package/apps/{gateway → os-server}/dist/apps/gateway/src/index.js +0 -0
  582. /package/apps/{gateway → os-server}/dist/apps/gateway/src/index.js.map +0 -0
  583. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/index.d.ts +0 -0
  584. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/index.d.ts.map +0 -0
  585. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/index.js +0 -0
  586. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/index.js.map +0 -0
  587. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/monitoring-detail.d.ts +0 -0
  588. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/monitoring-detail.d.ts.map +0 -0
  589. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/monitoring-detail.js +0 -0
  590. /package/apps/{gateway → os-server}/dist/apps/gateway/src/metrics/monitoring-detail.js.map +0 -0
  591. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/auth.d.ts +0 -0
  592. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/auth.d.ts.map +0 -0
  593. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/auth.js +0 -0
  594. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/auth.js.map +0 -0
  595. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authApiKey.d.ts +0 -0
  596. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authApiKey.d.ts.map +0 -0
  597. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authApiKey.js +0 -0
  598. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authApiKey.js.map +0 -0
  599. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authJwt.d.ts +0 -0
  600. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authJwt.d.ts.map +0 -0
  601. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authJwt.js +0 -0
  602. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/authJwt.js.map +0 -0
  603. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/correlationId.d.ts +0 -0
  604. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/correlationId.d.ts.map +0 -0
  605. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/correlationId.js +0 -0
  606. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/correlationId.js.map +0 -0
  607. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/ddos-protection.d.ts +0 -0
  608. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/ddos-protection.d.ts.map +0 -0
  609. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/ddos-protection.js +0 -0
  610. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/ddos-protection.js.map +0 -0
  611. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/errorHandler.d.ts +0 -0
  612. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/errorHandler.d.ts.map +0 -0
  613. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/errorHandler.js +0 -0
  614. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/errorHandler.js.map +0 -0
  615. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/log-capture.d.ts +0 -0
  616. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/log-capture.d.ts.map +0 -0
  617. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/log-capture.js +0 -0
  618. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/log-capture.js.map +0 -0
  619. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/mfa.d.ts +0 -0
  620. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/mfa.d.ts.map +0 -0
  621. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/mfa.js +0 -0
  622. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/mfa.js.map +0 -0
  623. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rateLimit.d.ts +0 -0
  624. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rateLimit.d.ts.map +0 -0
  625. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rateLimit.js +0 -0
  626. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rateLimit.js.map +0 -0
  627. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rbac.d.ts +0 -0
  628. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rbac.d.ts.map +0 -0
  629. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rbac.js +0 -0
  630. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/rbac.js.map +0 -0
  631. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/security.d.ts +0 -0
  632. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/security.d.ts.map +0 -0
  633. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/security.js +0 -0
  634. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/security.js.map +0 -0
  635. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/validate.d.ts +0 -0
  636. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/validate.d.ts.map +0 -0
  637. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/validate.js +0 -0
  638. /package/apps/{gateway → os-server}/dist/apps/gateway/src/middleware/validate.js.map +0 -0
  639. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/config.d.ts +0 -0
  640. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/config.d.ts.map +0 -0
  641. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/config.js +0 -0
  642. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/config.js.map +0 -0
  643. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/index.d.ts +0 -0
  644. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/index.d.ts.map +0 -0
  645. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/index.js +0 -0
  646. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/index.js.map +0 -0
  647. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/processor.d.ts +0 -0
  648. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/processor.d.ts.map +0 -0
  649. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/processor.js +0 -0
  650. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/processor.js.map +0 -0
  651. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/sentinel-execute-watch.d.ts +0 -0
  652. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/sentinel-execute-watch.d.ts.map +0 -0
  653. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/sentinel-execute-watch.js +0 -0
  654. /package/apps/{gateway → os-server}/dist/apps/gateway/src/queue/sentinel-execute-watch.js.map +0 -0
  655. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/ai-providers-simple.d.ts +0 -0
  656. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/ai-providers-simple.d.ts.map +0 -0
  657. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/ai-providers-simple.js +0 -0
  658. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/ai-providers-simple.js.map +0 -0
  659. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/chats.d.ts +0 -0
  660. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/chats.d.ts.map +0 -0
  661. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/chats.js +0 -0
  662. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/chats.js.map +0 -0
  663. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/gdpr.d.ts +0 -0
  664. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/gdpr.d.ts.map +0 -0
  665. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/gdpr.js +0 -0
  666. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/gdpr.js.map +0 -0
  667. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/mfa.d.ts +0 -0
  668. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/mfa.d.ts.map +0 -0
  669. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/mfa.js +0 -0
  670. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/mfa.js.map +0 -0
  671. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/monitoring.d.ts +0 -0
  672. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/monitoring.d.ts.map +0 -0
  673. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/monitoring.js +0 -0
  674. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/monitoring.js.map +0 -0
  675. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-policies.d.ts +0 -0
  676. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-policies.d.ts.map +0 -0
  677. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-policies.js +0 -0
  678. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-policies.js.map +0 -0
  679. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-predictive.d.ts +0 -0
  680. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-predictive.d.ts.map +0 -0
  681. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-predictive.js +0 -0
  682. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/sentinel-predictive.js.map +0 -0
  683. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/shield.d.ts +0 -0
  684. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/shield.d.ts.map +0 -0
  685. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/shield.js +0 -0
  686. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/shield.js.map +0 -0
  687. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-credentials.d.ts +0 -0
  688. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-credentials.d.ts.map +0 -0
  689. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-credentials.js +0 -0
  690. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-credentials.js.map +0 -0
  691. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-proxy.d.ts +0 -0
  692. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-proxy.d.ts.map +0 -0
  693. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-proxy.js +0 -0
  694. /package/apps/{gateway → os-server}/dist/apps/gateway/src/routes/tool-proxy.js.map +0 -0
  695. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/index.d.ts +0 -0
  696. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/index.d.ts.map +0 -0
  697. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/index.js +0 -0
  698. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/index.js.map +0 -0
  699. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/memoryRunStore.d.ts +0 -0
  700. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/memoryRunStore.d.ts.map +0 -0
  701. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/memoryRunStore.js +0 -0
  702. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/memoryRunStore.js.map +0 -0
  703. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/postgresRunStore.d.ts +0 -0
  704. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/postgresRunStore.d.ts.map +0 -0
  705. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/postgresRunStore.js +0 -0
  706. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/postgresRunStore.js.map +0 -0
  707. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-kill.d.ts +0 -0
  708. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-kill.d.ts.map +0 -0
  709. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-kill.js +0 -0
  710. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-kill.js.map +0 -0
  711. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-retention.d.ts +0 -0
  712. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-retention.d.ts.map +0 -0
  713. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-retention.js +0 -0
  714. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/run-retention.js.map +0 -0
  715. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/runStore.d.ts +0 -0
  716. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/runStore.d.ts.map +0 -0
  717. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/runStore.js +0 -0
  718. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/runStore.js.map +0 -0
  719. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/types.d.ts +0 -0
  720. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/types.d.ts.map +0 -0
  721. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/types.js +0 -0
  722. /package/apps/{gateway → os-server}/dist/apps/gateway/src/runs/types.js.map +0 -0
  723. /package/apps/{gateway → os-server}/dist/apps/gateway/src/schemas/runs.d.ts +0 -0
  724. /package/apps/{gateway → os-server}/dist/apps/gateway/src/schemas/runs.d.ts.map +0 -0
  725. /package/apps/{gateway → os-server}/dist/apps/gateway/src/schemas/runs.js +0 -0
  726. /package/apps/{gateway → os-server}/dist/apps/gateway/src/schemas/runs.js.map +0 -0
  727. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/agent-token.d.ts +0 -0
  728. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/agent-token.d.ts.map +0 -0
  729. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/agent-token.js +0 -0
  730. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/agent-token.js.map +0 -0
  731. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/outbound-url.d.ts +0 -0
  732. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/outbound-url.d.ts.map +0 -0
  733. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/outbound-url.js +0 -0
  734. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/outbound-url.js.map +0 -0
  735. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-config-store.d.ts +0 -0
  736. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-config-store.d.ts.map +0 -0
  737. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-config-store.js +0 -0
  738. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-config-store.js.map +0 -0
  739. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-run-failure.d.ts +0 -0
  740. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-run-failure.d.ts.map +0 -0
  741. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-run-failure.js +0 -0
  742. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/sentinel-run-failure.js.map +0 -0
  743. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/shield-config.d.ts +0 -0
  744. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/shield-config.d.ts.map +0 -0
  745. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/shield-config.js +0 -0
  746. /package/apps/{gateway → os-server}/dist/apps/gateway/src/security/shield-config.js.map +0 -0
  747. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/circuit-breaker.d.ts +0 -0
  748. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/circuit-breaker.d.ts.map +0 -0
  749. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/circuit-breaker.js +0 -0
  750. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/circuit-breaker.js.map +0 -0
  751. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/log-encryption.d.ts +0 -0
  752. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/log-encryption.d.ts.map +0 -0
  753. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/log-encryption.js +0 -0
  754. /package/apps/{gateway → os-server}/dist/apps/gateway/src/utils/log-encryption.js.map +0 -0
  755. /package/apps/{gateway → os-server}/dist/index.js +0 -0
  756. /package/apps/{gateway → os-server}/dist/packages/adapters/redis/IdempotencyStore.d.ts +0 -0
  757. /package/apps/{gateway → os-server}/dist/packages/adapters/redis/IdempotencyStore.d.ts.map +0 -0
  758. /package/apps/{gateway → os-server}/dist/packages/adapters/redis/IdempotencyStore.js +0 -0
  759. /package/apps/{gateway → os-server}/dist/packages/adapters/redis/IdempotencyStore.js.map +0 -0
  760. /package/apps/{gateway → os-server}/dist/packages/middleware/idempotency/idempotency.d.ts +0 -0
  761. /package/apps/{gateway → os-server}/dist/packages/middleware/idempotency/idempotency.d.ts.map +0 -0
  762. /package/apps/{gateway → os-server}/dist/packages/middleware/idempotency/idempotency.js +0 -0
  763. /package/apps/{gateway → os-server}/dist/packages/middleware/idempotency/idempotency.js.map +0 -0
  764. /package/apps/{gateway → os-server}/load-tests/README.md +0 -0
  765. /package/apps/{gateway → os-server}/load-tests/k6-basic.js +0 -0
  766. /package/apps/{gateway → os-server}/load-tests/k6-rate-limit.js +0 -0
  767. /package/apps/{gateway → os-server}/minimal-test.sh +0 -0
  768. /package/apps/{gateway → os-server}/public/sentinel-dashboard.html +0 -0
  769. /package/apps/{gateway → os-server}/quick-debug.sh +0 -0
  770. /package/apps/{gateway → os-server}/scripts/seed-api-key.ts +0 -0
  771. /package/apps/{gateway → os-server}/scripts/verify-sentinel-persist.mjs +0 -0
  772. /package/apps/{gateway → os-server}/simple-test.sh +0 -0
  773. /package/apps/{gateway → os-server}/src/__tests__/agent-token.test.ts +0 -0
  774. /package/apps/{gateway → os-server}/src/__tests__/auth.test.ts +0 -0
  775. /package/apps/{gateway → os-server}/src/__tests__/correlationId.test.ts +0 -0
  776. /package/apps/{gateway → os-server}/src/__tests__/devkit-api.test.ts +0 -0
  777. /package/apps/{gateway → os-server}/src/__tests__/integration/authentication.test.ts +0 -0
  778. /package/apps/{gateway → os-server}/src/__tests__/integration/e2e-comprehensive-fixed.test.ts +0 -0
  779. /package/apps/{gateway → os-server}/src/__tests__/integration/e2e-workflow.test.ts +0 -0
  780. /package/apps/{gateway → os-server}/src/__tests__/integration/idempotency.test.ts +0 -0
  781. /package/apps/{gateway → os-server}/src/__tests__/integration/postgres-persistence.test.ts +0 -0
  782. /package/apps/{gateway → os-server}/src/__tests__/integration/rate-limiting.test.ts +0 -0
  783. /package/apps/{gateway → os-server}/src/__tests__/integration/shield.test.ts +0 -0
  784. /package/apps/{gateway → os-server}/src/__tests__/log-capture.test.ts +0 -0
  785. /package/apps/{gateway → os-server}/src/__tests__/no-persistence-mode.test.ts +0 -0
  786. /package/apps/{gateway → os-server}/src/__tests__/outbound-url.test.ts +0 -0
  787. /package/apps/{gateway → os-server}/src/__tests__/rateLimit.test.ts +0 -0
  788. /package/apps/{gateway → os-server}/src/__tests__/run-kill.test.ts +0 -0
  789. /package/apps/{gateway → os-server}/src/__tests__/run-retention.test.ts +0 -0
  790. /package/apps/{gateway → os-server}/src/__tests__/sentinel-config-persist-http.test.ts +0 -0
  791. /package/apps/{gateway → os-server}/src/__tests__/sentinel-config-store.test.ts +0 -0
  792. /package/apps/{gateway → os-server}/src/__tests__/sentinel-events.test.ts +0 -0
  793. /package/apps/{gateway → os-server}/src/__tests__/sentinel-execute-watch.test.ts +0 -0
  794. /package/apps/{gateway → os-server}/src/__tests__/sentinel-policies.test.ts +0 -0
  795. /package/apps/{gateway → os-server}/src/__tests__/sentinel-publish-kill.test.ts +0 -0
  796. /package/apps/{gateway → os-server}/src/__tests__/sentinel-run-failure.test.ts +0 -0
  797. /package/apps/{gateway → os-server}/src/__tests__/shield-config.test.ts +0 -0
  798. /package/apps/{gateway → os-server}/src/__tests__/shield-health.test.ts +0 -0
  799. /package/apps/{gateway → os-server}/src/__tests__/shield-metrics.test.ts +0 -0
  800. /package/apps/{gateway → os-server}/src/__tests__/tool-proxy.test.ts +0 -0
  801. /package/apps/{gateway → os-server}/src/__tests__/validateSecrets.test.ts +0 -0
  802. /package/apps/{gateway → os-server}/src/__tests__/validation.test.ts +0 -0
  803. /package/apps/{gateway → os-server}/src/adapters/gateway-cancel-adapter.ts +0 -0
  804. /package/apps/{gateway → os-server}/src/adapters/sentinel-event-stream.ts +0 -0
  805. /package/apps/{gateway → os-server}/src/agents/definitions.ts +0 -0
  806. /package/apps/{gateway → os-server}/src/agents/local-model-provider.ts +0 -0
  807. /package/apps/{gateway → os-server}/src/agents/tools.ts +0 -0
  808. /package/apps/{gateway → os-server}/src/ai-providers/index.ts +0 -0
  809. /package/apps/{gateway → os-server}/src/ai-providers/provider-manager.ts +0 -0
  810. /package/apps/{gateway → os-server}/src/ai-providers/types.ts +0 -0
  811. /package/apps/{gateway → os-server}/src/config/persistence.ts +0 -0
  812. /package/apps/{gateway → os-server}/src/crypto/envelope.ts +0 -0
  813. /package/apps/{gateway → os-server}/src/crypto/mfa-storage.ts +0 -0
  814. /package/apps/{gateway → os-server}/src/db/memory-db.ts +0 -0
  815. /package/apps/{gateway → os-server}/src/db/prisma.ts +0 -0
  816. /package/apps/{gateway → os-server}/src/db/redis.ts +0 -0
  817. /package/apps/{gateway → os-server}/src/devkit/agents-api.ts +0 -0
  818. /package/apps/{gateway → os-server}/src/devkit/metrics-parser.ts +0 -0
  819. /package/apps/{gateway → os-server}/src/devkit/middleware.ts +0 -0
  820. /package/apps/{gateway → os-server}/src/devkit/tools-api.ts +0 -0
  821. /package/apps/{gateway → os-server}/src/metrics/index.ts +0 -0
  822. /package/apps/{gateway → os-server}/src/metrics/monitoring-detail.ts +0 -0
  823. /package/apps/{gateway → os-server}/src/middleware/auth.ts +0 -0
  824. /package/apps/{gateway → os-server}/src/middleware/authApiKey.ts +0 -0
  825. /package/apps/{gateway → os-server}/src/middleware/authJwt.ts +0 -0
  826. /package/apps/{gateway → os-server}/src/middleware/errorHandler.ts +0 -0
  827. /package/apps/{gateway → os-server}/src/middleware/mfa.ts +0 -0
  828. /package/apps/{gateway → os-server}/src/middleware/rateLimit.ts +0 -0
  829. /package/apps/{gateway → os-server}/src/middleware/rbac.ts +0 -0
  830. /package/apps/{gateway → os-server}/src/middleware/validate.ts +0 -0
  831. /package/apps/{gateway → os-server}/src/middleware/validate.ts.backup +0 -0
  832. /package/apps/{gateway → os-server}/src/queue/config.ts +0 -0
  833. /package/apps/{gateway → os-server}/src/queue/index.ts +0 -0
  834. /package/apps/{gateway → os-server}/src/queue/processor.ts +0 -0
  835. /package/apps/{gateway → os-server}/src/queue/sentinel-execute-watch.ts +0 -0
  836. /package/apps/{gateway → os-server}/src/routes/chats.ts +0 -0
  837. /package/apps/{gateway → os-server}/src/routes/mfa.ts +0 -0
  838. /package/apps/{gateway → os-server}/src/routes/shield.ts +0 -0
  839. /package/apps/{gateway → os-server}/src/routes/tool-credentials.ts +0 -0
  840. /package/apps/{gateway → os-server}/src/runs/index.ts +0 -0
  841. /package/apps/{gateway → os-server}/src/runs/memoryRunStore.ts +0 -0
  842. /package/apps/{gateway → os-server}/src/runs/postgresRunStore.ts +0 -0
  843. /package/apps/{gateway → os-server}/src/runs/run-kill.ts +0 -0
  844. /package/apps/{gateway → os-server}/src/runs/run-retention.ts +0 -0
  845. /package/apps/{gateway → os-server}/src/runs/runStore.ts +0 -0
  846. /package/apps/{gateway → os-server}/src/runs/types.ts +0 -0
  847. /package/apps/{gateway → os-server}/src/schemas/runs.ts +0 -0
  848. /package/apps/{gateway → os-server}/src/security/agent-token.ts +0 -0
  849. /package/apps/{gateway → os-server}/src/security/sentinel-config-store.ts +0 -0
  850. /package/apps/{gateway → os-server}/src/security/sentinel-run-failure.ts +0 -0
  851. /package/apps/{gateway → os-server}/src/security/shield-config.ts +0 -0
  852. /package/apps/{gateway → os-server}/src/types/fastify-rate-limit.d.ts +0 -0
  853. /package/apps/{gateway → os-server}/src/utils/circuit-breaker.ts +0 -0
  854. /package/apps/{gateway → os-server}/src/utils/log-encryption.ts +0 -0
  855. /package/apps/{gateway → os-server}/test-all-individual.sh +0 -0
  856. /package/apps/{gateway → os-server}/test-all-phases-final.sh +0 -0
  857. /package/apps/{gateway → os-server}/test-all-phases-fixed-v2.sh +0 -0
  858. /package/apps/{gateway → os-server}/test-all-phases-fixed.sh +0 -0
  859. /package/apps/{gateway → os-server}/test-all-phases.sh +0 -0
  860. /package/apps/{gateway → os-server}/test-concurrency.sh +0 -0
  861. /package/apps/{gateway → os-server}/test-debug.sh +0 -0
  862. /package/apps/{gateway → os-server}/test-e2e.sh +0 -0
  863. /package/apps/{gateway → os-server}/test-extraction.sh +0 -0
  864. /package/apps/{gateway → os-server}/test-full-operations-final.sh +0 -0
  865. /package/apps/{gateway → os-server}/test-full-operations.sh +0 -0
  866. /package/apps/{gateway → os-server}/test-idempotency-only.sh +0 -0
  867. /package/apps/{gateway → os-server}/test-idempotency.sh +0 -0
  868. /package/apps/{gateway → os-server}/test-individual.sh +0 -0
  869. /package/apps/{gateway → os-server}/test-queue.sh +0 -0
  870. /package/apps/{gateway → os-server}/tsconfig.json +0 -0
  871. /package/{mk3-tui → os-tui}/src/ui/connection_portal.rs.backup +0 -0
@@ -0,0 +1,262 @@
1
+ import { execSync } from 'child_process';
2
+
3
+ /** Must match `container_name` in docker-compose.local.yml */
4
+ export const FOURRUNR_DB_CONTAINERS = ['4runr-postgres', '4runr-redis'] as const;
5
+
6
+ const COMPOSE_PROJECT = '4runr';
7
+
8
+ function dockerShell(): string | undefined {
9
+ return process.platform === 'win32' ? process.env['COMSPEC'] || 'cmd.exe' : undefined;
10
+ }
11
+
12
+ function dockerExec(command: string, timeoutMs: number = 30000): string {
13
+ return execSync(command, {
14
+ encoding: 'utf-8',
15
+ stdio: 'pipe',
16
+ timeout: timeoutMs,
17
+ ...(dockerShell() ? { shell: dockerShell() } : {}),
18
+ });
19
+ }
20
+
21
+ /**
22
+ * Check if Docker is installed and available
23
+ * Works with both Docker Desktop and Docker Engine
24
+ */
25
+ export async function isDockerAvailable(): Promise<boolean> {
26
+ try {
27
+ const result = dockerExec('docker --version', 5000);
28
+ return result.includes('Docker version');
29
+ } catch {
30
+ return false;
31
+ }
32
+ }
33
+
34
+ /**
35
+ * Check if Docker daemon is running
36
+ */
37
+ export async function isDockerRunning(): Promise<boolean> {
38
+ try {
39
+ dockerExec('docker info', 5000);
40
+ return true;
41
+ } catch {
42
+ return false;
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Check if a named container is running
48
+ */
49
+ export function isContainerRunning(containerName: string): boolean {
50
+ try {
51
+ const state = dockerExec(
52
+ `docker inspect --format="{{.State.Running}}" ${containerName}`,
53
+ 5000,
54
+ ).trim();
55
+ return state === 'true';
56
+ } catch {
57
+ return false;
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Check if both 4Runr Postgres and Redis containers are running
63
+ */
64
+ export async function areContainersRunning(): Promise<boolean> {
65
+ return FOURRUNR_DB_CONTAINERS.every((name) => isContainerRunning(name));
66
+ }
67
+
68
+ /**
69
+ * Start stopped 4Runr containers by name (watchdog stops them on 4r exit)
70
+ */
71
+ export async function startStoppedContainers(): Promise<void> {
72
+ const stopped = FOURRUNR_DB_CONTAINERS.filter((name) => !isContainerRunning(name));
73
+ if (stopped.length === 0) {
74
+ return;
75
+ }
76
+
77
+ try {
78
+ dockerExec(`docker start ${stopped.join(' ')}`, 60000);
79
+ } catch {
80
+ // Container may not exist yet — compose up will create it
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Start Docker Compose services
86
+ * @param composeFilePath - Absolute path to docker-compose.yml
87
+ */
88
+ export async function startDockerCompose(composeFilePath: string): Promise<void> {
89
+ const cmd = `docker compose -p ${COMPOSE_PROJECT} -f "${composeFilePath}" up -d`;
90
+ execSync(cmd, {
91
+ stdio: 'inherit',
92
+ timeout: 120000,
93
+ ...(dockerShell() ? { shell: dockerShell() } : {}),
94
+ });
95
+ }
96
+
97
+ /**
98
+ * Ensure Postgres + Redis are up: start stopped containers, then compose up if needed.
99
+ */
100
+ export async function ensure4RunrStackRunning(composeFilePath: string): Promise<void> {
101
+ await startStoppedContainers();
102
+
103
+ if (!(await areContainersRunning())) {
104
+ await startDockerCompose(composeFilePath);
105
+ }
106
+
107
+ // Watchdog may have stopped only one container — verify both after compose/start
108
+ await startStoppedContainers();
109
+ }
110
+
111
+ /**
112
+ * Stop Docker Compose services (preserves data volumes)
113
+ * @param composeFilePath - Absolute path to docker-compose.yml
114
+ */
115
+ export async function stopDockerCompose(composeFilePath: string): Promise<void> {
116
+ execSync(`docker compose -p ${COMPOSE_PROJECT} -f "${composeFilePath}" stop`, {
117
+ stdio: 'pipe',
118
+ timeout: 30000,
119
+ ...(dockerShell() ? { shell: dockerShell() } : {}),
120
+ });
121
+ }
122
+
123
+ /**
124
+ * Stop 4Runr containers by name (when compose file unavailable)
125
+ */
126
+ export async function stop4RunrContainers(): Promise<void> {
127
+ try {
128
+ if (process.platform === 'win32') {
129
+ execSync('docker stop 4runr-postgres 4runr-redis 2>nul', {
130
+ stdio: 'pipe',
131
+ timeout: 30000,
132
+ shell: process.env['COMSPEC'] || 'cmd.exe',
133
+ });
134
+ } else {
135
+ execSync('docker stop 4runr-postgres 4runr-redis 2>/dev/null || true', {
136
+ stdio: 'pipe',
137
+ timeout: 30000,
138
+ shell: '/bin/sh',
139
+ });
140
+ }
141
+ } catch {
142
+ // Ignore errors - containers might not exist
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Wait for a container to become healthy
148
+ * @param containerName - Name of the container to check
149
+ * @param timeoutMs - Maximum time to wait (default: 30 seconds)
150
+ */
151
+ export async function waitForHealthy(containerName: string, timeoutMs: number = 30000): Promise<void> {
152
+ const start = Date.now();
153
+
154
+ while (Date.now() - start < timeoutMs) {
155
+ try {
156
+ const health = dockerExec(
157
+ `docker inspect --format="{{.State.Health.Status}}" ${containerName}`,
158
+ 5000,
159
+ ).trim();
160
+
161
+ if (health === 'healthy') {
162
+ return;
163
+ }
164
+
165
+ // Also accept containers without health checks that are running
166
+ if (health === '' || health === '<no value>') {
167
+ const running = dockerExec(
168
+ `docker inspect --format="{{.State.Running}}" ${containerName}`,
169
+ 5000,
170
+ ).trim();
171
+
172
+ if (running === 'true') {
173
+ await sleep(2000);
174
+ return;
175
+ }
176
+ }
177
+ } catch {
178
+ // Container might not exist yet or Docker command failed — keep waiting
179
+ }
180
+
181
+ await sleep(1000);
182
+ }
183
+
184
+ const logs = getContainerLogs(containerName, 20);
185
+ throw new Error(
186
+ `Container ${containerName} did not become healthy within ${timeoutMs}ms. Recent logs:\n${logs}`,
187
+ );
188
+ }
189
+
190
+ /**
191
+ * Check if a port is in use
192
+ * @param port - Port number to check
193
+ */
194
+ export async function isPortInUse(port: number): Promise<boolean> {
195
+ try {
196
+ const result = dockerExec(`docker ps --filter "publish=${port}" --format "{{.Names}}"`, 5000);
197
+ return result.trim().length > 0;
198
+ } catch {
199
+ return false;
200
+ }
201
+ }
202
+
203
+ /**
204
+ * Get container logs
205
+ * @param containerName - Name of the container
206
+ * @param lines - Number of lines to retrieve (default: 50)
207
+ */
208
+ export function getContainerLogs(containerName: string, lines: number = 50): string {
209
+ try {
210
+ return dockerExec(`docker logs --tail ${lines} ${containerName}`, 10000);
211
+ } catch (err) {
212
+ return `Failed to retrieve logs: ${err instanceof Error ? err.message : String(err)}`;
213
+ }
214
+ }
215
+
216
+ /**
217
+ * Sleep helper
218
+ */
219
+ function sleep(ms: number): Promise<void> {
220
+ return new Promise((resolve) => setTimeout(resolve, ms));
221
+ }
222
+
223
+ /**
224
+ * Docker status information
225
+ */
226
+ export interface DockerStatus {
227
+ available: boolean;
228
+ running: boolean;
229
+ containersRunning: boolean;
230
+ error?: string;
231
+ }
232
+
233
+ /**
234
+ * Get comprehensive Docker status
235
+ */
236
+ export async function getDockerStatus(): Promise<DockerStatus> {
237
+ const status: DockerStatus = {
238
+ available: false,
239
+ running: false,
240
+ containersRunning: false,
241
+ };
242
+
243
+ try {
244
+ status.available = await isDockerAvailable();
245
+ if (!status.available) {
246
+ status.error = 'Docker not installed';
247
+ return status;
248
+ }
249
+
250
+ status.running = await isDockerRunning();
251
+ if (!status.running) {
252
+ status.error = 'Docker daemon not running';
253
+ return status;
254
+ }
255
+
256
+ status.containersRunning = await areContainersRunning();
257
+ return status;
258
+ } catch (err) {
259
+ status.error = err instanceof Error ? err.message : String(err);
260
+ return status;
261
+ }
262
+ }
@@ -0,0 +1,292 @@
1
+ import { execSync } from 'child_process';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import { dirname } from 'path';
6
+ import { PrismaClient } from '@prisma/client';
7
+ import { get4RunrDataDir } from '@4runr/shared';
8
+
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+ import {
12
+ isDockerAvailable,
13
+ isDockerRunning,
14
+ areContainersRunning,
15
+ startDockerCompose,
16
+ ensure4RunrStackRunning,
17
+ waitForHealthy,
18
+ getDockerStatus
19
+ } from './docker-manager.js';
20
+
21
+ /**
22
+ * Database initialization result
23
+ */
24
+ export interface DatabaseInitResult {
25
+ mode: 'docker' | 'memory';
26
+ client: PrismaClient | null;
27
+ databaseUrl?: string;
28
+ error?: string;
29
+ warnings?: string[];
30
+ }
31
+
32
+ /**
33
+ * Initialize database for Gateway
34
+ * Handles Docker auto-start, migrations, and fallback to memory mode
35
+ *
36
+ * @param logger - Fastify logger or compatible logger
37
+ */
38
+ export async function initializeDatabase(logger: any): Promise<DatabaseInitResult> {
39
+ const warnings: string[] = [];
40
+
41
+ // Check explicit memory mode
42
+ const persistenceMode = process.env['GATEWAY_PERSISTENCE'] || 'auto';
43
+ if (persistenceMode === 'memory') {
44
+ logger.info('GATEWAY_PERSISTENCE=memory - skipping database initialization');
45
+ return { mode: 'memory', client: null };
46
+ }
47
+
48
+ // Check if DATABASE_URL is explicitly provided (e.g., production)
49
+ if (process.env['DATABASE_URL'] && persistenceMode === 'postgres') {
50
+ logger.info('Using explicitly configured DATABASE_URL');
51
+ return await initializeWithExistingDatabase(logger);
52
+ }
53
+
54
+ // Auto mode: Try Docker-based local database
55
+ logger.info('Checking Docker availability for local database...');
56
+
57
+ const dockerStatus = await getDockerStatus();
58
+
59
+ if (!dockerStatus.available) {
60
+ logger.warn('⚠️ Docker not available. Falling back to memory-only mode.');
61
+ warnings.push('Docker not installed - install Docker Desktop to enable persistent storage');
62
+ return { mode: 'memory', client: null, warnings };
63
+ }
64
+
65
+ if (!dockerStatus.running) {
66
+ logger.warn('⚠️ Docker daemon not running. Falling back to memory-only mode.');
67
+ warnings.push('Docker is installed but not running - start Docker Desktop to enable persistent storage');
68
+ return { mode: 'memory', client: null, warnings };
69
+ }
70
+
71
+ // Docker is available - ensure both Postgres and Redis are running
72
+ try {
73
+ logger.info('Ensuring 4Runr Docker containers (Postgres + Redis) are running...');
74
+ await startDockerContainers(logger);
75
+
76
+ // Wait for containers to be healthy (Postgres first — slower cold start)
77
+ logger.info('Waiting for database to be ready...');
78
+ await waitForHealthy('4runr-postgres', 60000);
79
+ await waitForHealthy('4runr-redis', 15000);
80
+ logger.info('✓ Database containers healthy');
81
+
82
+ // Build DATABASE_URL and REDIS_URL for local Docker setup (localhost not 'postgres' hostname)
83
+ const databaseUrl = 'postgresql://4runr:4runr_dev_pass@localhost:5432/4runr_local';
84
+ const redisUrl = 'redis://localhost:6379';
85
+
86
+ // Set environment variables so Redis client can connect when first requested
87
+ process.env['DATABASE_URL'] = databaseUrl;
88
+ process.env['REDIS_URL'] = redisUrl;
89
+
90
+ // Run migrations
91
+ logger.info('Running database migrations...');
92
+ await runMigrations(databaseUrl, logger);
93
+ logger.info('✓ Migrations complete');
94
+
95
+ // Create Prisma client
96
+ const client = new PrismaClient({
97
+ datasources: {
98
+ db: {
99
+ url: databaseUrl
100
+ }
101
+ },
102
+ log: [
103
+ { level: 'warn', emit: 'event' },
104
+ { level: 'error', emit: 'event' }
105
+ ]
106
+ });
107
+
108
+ // Wire up Prisma logs to Fastify logger
109
+ client.$on('warn', (e: any) => logger.warn({ prisma: true }, e.message));
110
+ client.$on('error', (e: any) => logger.error({ prisma: true }, e.message));
111
+
112
+ // Test connection
113
+ await client.$connect();
114
+ logger.info('✓ Database connection established');
115
+
116
+ return {
117
+ mode: 'docker',
118
+ client,
119
+ databaseUrl
120
+ };
121
+
122
+ } catch (err) {
123
+ const errorMsg = err instanceof Error ? err.message : String(err);
124
+ logger.error({ err }, 'Failed to initialize Docker database');
125
+ logger.warn('⚠️ Falling back to memory-only mode');
126
+
127
+ return {
128
+ mode: 'memory',
129
+ client: null,
130
+ error: errorMsg,
131
+ warnings: ['Database initialization failed - running in memory-only mode', errorMsg]
132
+ };
133
+ }
134
+ }
135
+
136
+ /**
137
+ * Initialize with an existing database (production mode)
138
+ */
139
+ async function initializeWithExistingDatabase(logger: any): Promise<DatabaseInitResult> {
140
+ try {
141
+ const databaseUrl = process.env['DATABASE_URL']!;
142
+
143
+ // Run migrations
144
+ logger.info('Running database migrations...');
145
+ await runMigrations(databaseUrl, logger);
146
+ logger.info('✓ Migrations complete');
147
+
148
+ // Create Prisma client
149
+ const client = new PrismaClient({
150
+ log: [
151
+ { level: 'warn', emit: 'event' },
152
+ { level: 'error', emit: 'event' }
153
+ ]
154
+ });
155
+
156
+ client.$on('warn', (e: any) => logger.warn({ prisma: true }, e.message));
157
+ client.$on('error', (e: any) => logger.error({ prisma: true }, e.message));
158
+
159
+ await client.$connect();
160
+ logger.info('✓ Database connection established');
161
+
162
+ return {
163
+ mode: 'docker', // Could be 'postgres' but we use 'docker' as generic DB mode
164
+ client,
165
+ databaseUrl
166
+ };
167
+
168
+ } catch (err) {
169
+ const errorMsg = err instanceof Error ? err.message : String(err);
170
+ logger.error({ err }, 'Failed to connect to database');
171
+
172
+ return {
173
+ mode: 'memory',
174
+ client: null,
175
+ error: errorMsg,
176
+ warnings: ['Database connection failed - running in memory-only mode', errorMsg]
177
+ };
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Start Docker containers
183
+ */
184
+ async function startDockerContainers(logger: any): Promise<void> {
185
+ // Get user data directory
186
+ const dataDir = get4RunrDataDir();
187
+ const composeFilePath = path.join(dataDir, 'docker-compose.yml');
188
+
189
+ // Bundled template next to Gateway (global 4runr-os install). Always sync so npm updates
190
+ // (e.g. healthcheck fixes) apply without manual docker compose — users only run `4r`.
191
+ const possiblePaths = [
192
+ path.join(process.cwd(), 'docker-compose.local.yml'), // npm run start cwd = apps/os-server (global + repo)
193
+ path.join(__dirname, '../../docker-compose.local.yml'), // dist/db -> apps/os-server
194
+ path.join(__dirname, '../../../docker-compose.local.yml'), // dist/src/db or nested
195
+ path.join(__dirname, '../../../../docker-compose.local.yml'),
196
+ path.join(process.cwd(), 'apps/os-server/docker-compose.local.yml'),
197
+ ];
198
+
199
+ let templatePath: string | null = null;
200
+ for (const tryPath of possiblePaths) {
201
+ if (fs.existsSync(tryPath)) {
202
+ templatePath = tryPath;
203
+ break;
204
+ }
205
+ }
206
+
207
+ if (templatePath) {
208
+ logger.info(`Syncing Docker Compose template from ${templatePath} → ${composeFilePath}`);
209
+ fs.copyFileSync(templatePath, composeFilePath);
210
+ } else if (!fs.existsSync(composeFilePath)) {
211
+ throw new Error(`Docker Compose template not found. Tried: ${possiblePaths.join(', ')}`);
212
+ } else {
213
+ logger.warn(`Docker Compose template missing; using existing ${composeFilePath}`);
214
+ }
215
+
216
+ // Start or restart containers (watchdog stops both when 4r exits)
217
+ await ensure4RunrStackRunning(composeFilePath);
218
+ }
219
+
220
+ /**
221
+ * Run Prisma migrations
222
+ */
223
+ async function runMigrations(databaseUrl: string, logger: any): Promise<void> {
224
+ // dist/src/db -> monorepo root: ../../../../../prisma. Also support global 4runr-os (cwd often apps/os-server).
225
+ const candidates = [
226
+ path.join(process.cwd(), '..', '..', 'prisma', 'schema.prisma'),
227
+ path.join(__dirname, '../../../../../prisma/schema.prisma'),
228
+ path.join(__dirname, '../../../../prisma/schema.prisma'),
229
+ path.join(__dirname, '../../../prisma/schema.prisma'),
230
+ path.join(process.cwd(), 'prisma', 'schema.prisma'),
231
+ ];
232
+ let actualSchemaPath: string | null = null;
233
+ for (const p of candidates) {
234
+ if (fs.existsSync(p)) {
235
+ actualSchemaPath = p;
236
+ break;
237
+ }
238
+ }
239
+ if (!actualSchemaPath) {
240
+ logger.warn(
241
+ `⚠️ Prisma schema not found (tried ${candidates.length} locations relative to Gateway), skipping migrations`,
242
+ );
243
+ return;
244
+ }
245
+
246
+ try {
247
+ // For local Docker Postgres, use db push to avoid migration compatibility
248
+ // (migrations were created for SQLite, need Postgres-native approach)
249
+ const isLocalDocker = databaseUrl.includes('localhost:5432');
250
+ const command = isLocalDocker
251
+ ? `npx prisma db push --skip-generate --accept-data-loss`
252
+ : `npx prisma migrate deploy`;
253
+
254
+ execSync(command, {
255
+ env: {
256
+ ...process.env,
257
+ DATABASE_URL: databaseUrl
258
+ },
259
+ cwd: path.dirname(actualSchemaPath),
260
+ stdio: 'pipe', // Suppress output unless error
261
+ timeout: 60000 // 60 seconds
262
+ });
263
+ } catch (err) {
264
+ const errorMsg = err instanceof Error ? err.message : String(err);
265
+ logger.error(`Migration failed: ${errorMsg}`);
266
+ throw new Error(`Database migration failed: ${errorMsg}`);
267
+ }
268
+ }
269
+
270
+ /**
271
+ * Cleanup function for graceful shutdown
272
+ */
273
+ export async function shutdownDatabase(client: PrismaClient | null, logger: any): Promise<void> {
274
+ if (client) {
275
+ try {
276
+ await client.$disconnect();
277
+ logger.info('✓ Database connection closed');
278
+ } catch (err) {
279
+ logger.error({ err }, 'Error disconnecting from database');
280
+ }
281
+ }
282
+
283
+ // Stop Docker containers (preserves data volumes)
284
+ try {
285
+ const { stop4RunrContainers } = await import('./docker-manager.js');
286
+ await stop4RunrContainers();
287
+ logger.info('✓ Docker containers stopped (data preserved)');
288
+ } catch (err) {
289
+ // Ignore errors - containers might not be running or Docker unavailable
290
+ logger.debug('Could not stop Docker containers (may not be running)');
291
+ }
292
+ }