4runr-os 2.10.84 → 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 -8809
  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,462 @@
1
+ # JWT Authentication, Rate Limiting & Schema Validation
2
+
3
+ ## Summary
4
+
5
+ This document describes the JWT authentication, rate limiting, and schema validation features added to the 4Runr Gateway.
6
+
7
+ ## Features Implemented
8
+
9
+ ### 1. JWT Authentication Layer
10
+
11
+ **New Files:**
12
+ - `apps/os-server/src/middleware/authJwt.ts` - JWT validation middleware
13
+ - `apps/os-server/src/middleware/auth.ts` - Auth orchestrator for multiple auth modes
14
+
15
+ **Key Features:**
16
+ - Full JWT token validation with HS256/HS384/HS512 support
17
+ - Expiration checking
18
+ - Signature verification
19
+ - Payload extraction and attachment to request context
20
+
21
+ **Configuration:**
22
+ ```bash
23
+ JWT_SECRET=your-secret-at-least-32-characters-long
24
+ JWT_ALG=HS256
25
+ AUTH_MODE=jwt # or mixed
26
+ ```
27
+
28
+ **JWT Payload Structure:**
29
+ ```typescript
30
+ interface AuthContext {
31
+ sub?: string; // Subject (user ID)
32
+ tenantId?: string; // Tenant/organization ID
33
+ roles?: string[]; // User roles
34
+ exp?: number; // Expiration time
35
+ iat?: number; // Issued at
36
+ [key: string]: any; // Additional custom claims
37
+ }
38
+ ```
39
+
40
+ **Usage:**
41
+ ```bash
42
+ curl -H "Authorization: Bearer <your-jwt-token>" \
43
+ http://localhost:3000/api/runs
44
+ ```
45
+
46
+ ### 2. Authentication Modes
47
+
48
+ The gateway now supports three authentication modes:
49
+
50
+ #### Mode 1: `api_key` (Default)
51
+ Only API key authentication via `x-api-key` header.
52
+
53
+ ```bash
54
+ AUTH_MODE=api_key
55
+ API_KEY=test-key
56
+
57
+ # Usage
58
+ curl -H "x-api-key: test-key" http://localhost:3000/api/runs
59
+ ```
60
+
61
+ #### Mode 2: `jwt`
62
+ Only JWT authentication via `Authorization: Bearer <token>` header.
63
+
64
+ ```bash
65
+ AUTH_MODE=jwt
66
+ JWT_SECRET=your-secret-key
67
+
68
+ # Usage
69
+ curl -H "Authorization: Bearer <token>" http://localhost:3000/api/runs
70
+ ```
71
+
72
+ #### Mode 3: `mixed`
73
+ Accept either API key OR JWT. Useful for:
74
+ - Migration scenarios
75
+ - Supporting multiple client types
76
+ - Gradual JWT adoption
77
+
78
+ ```bash
79
+ AUTH_MODE=mixed
80
+ API_KEY=test-key
81
+ JWT_SECRET=your-secret-key
82
+
83
+ # Usage (either works)
84
+ curl -H "x-api-key: test-key" http://localhost:3000/api/runs
85
+ curl -H "Authorization: Bearer <token>" http://localhost:3000/api/runs
86
+ ```
87
+
88
+ ### 3. Rate Limiting
89
+
90
+ **New Files:**
91
+ - `apps/os-server/src/middleware/rateLimit.ts` - Rate limiting middleware
92
+
93
+ **Key Features:**
94
+ - Identity-based rate limiting (API key, JWT sub, or IP)
95
+ - Different limits for read/write/expensive operations
96
+ - Configurable window and max requests
97
+ - Machine-consumable error responses
98
+ - Bypass for health/metrics endpoints
99
+
100
+ **Configuration:**
101
+ ```bash
102
+ RATE_LIMIT_ENABLED=true
103
+ RATE_LIMIT_MAX=60 # Max requests per window
104
+ RATE_LIMIT_WINDOW_MS=60000 # Window in ms (60000 = 1 minute)
105
+ ```
106
+
107
+ **Rate Limit Tiers:**
108
+ | Operation Type | Limit |
109
+ |----------------|-------|
110
+ | Read operations | 100% (60/min) |
111
+ | Write operations | 75% (45/min) |
112
+ | Expensive operations | 50% (30/min) |
113
+
114
+ **Error Response (429):**
115
+ ```json
116
+ {
117
+ "error": "rate_limited",
118
+ "message": "Too many requests, please try again later",
119
+ "retry_after_ms": 45000,
120
+ "limit": 60,
121
+ "window_ms": 60000
122
+ }
123
+ ```
124
+
125
+ **Identity Priority:**
126
+ 1. API key (`x-api-key` header)
127
+ 2. JWT subject (`sub` claim)
128
+ 3. JWT tenant ID (`tenantId` claim)
129
+ 4. IP address (fallback)
130
+
131
+ ### 4. Schema Validation
132
+
133
+ **New Files:**
134
+ - `apps/os-server/src/middleware/validate.ts` - Validation middleware
135
+ - `apps/os-server/src/schemas/runs.ts` - Schema definitions
136
+
137
+ **Key Features:**
138
+ - Runtime type validation using Zod
139
+ - Automatic data transformation (e.g., string → number)
140
+ - Detailed error messages with field-level feedback
141
+ - Request body, query params, route params, and header validation
142
+
143
+ **Validation Helpers:**
144
+ - `validateBody(schema)` - Validate request body
145
+ - `validateQuery(schema)` - Validate query parameters
146
+ - `validateParams(schema)` - Validate route parameters
147
+ - `validateHeaders(schema)` - Validate headers
148
+
149
+ **Example Schema:**
150
+ ```typescript
151
+ const createRunSchema = z.object({
152
+ name: z.string().min(1).max(200),
153
+ input: z.unknown().optional(),
154
+ clientToken: z.string().min(1).max(200).optional(),
155
+ tags: z.array(z.string().min(1).max(50)).max(20).optional(),
156
+ });
157
+ ```
158
+
159
+ **Validation Error Response (400):**
160
+ ```json
161
+ {
162
+ "error": "invalid_request",
163
+ "message": "Request body validation failed",
164
+ "details": {
165
+ "fieldErrors": {
166
+ "name": ["Name is required"],
167
+ "email": ["Invalid email format"]
168
+ },
169
+ "formErrors": []
170
+ }
171
+ }
172
+ ```
173
+
174
+ ## Updated Routes
175
+
176
+ All protected routes now use:
177
+ 1. **Auth orchestrator** (`requireAuth`) instead of `requireApiKey`
178
+ 2. **Rate limiting** (read/write/strict tiers)
179
+ 3. **Schema validation** for inputs
180
+
181
+ **Example:**
182
+ ```typescript
183
+ fastify.post('/api/runs', {
184
+ preHandler: [requireAuth, validateBody(createRunSchema)],
185
+ ...writeRateLimit
186
+ }, async (request, reply) => {
187
+ // Handler code
188
+ });
189
+ ```
190
+
191
+ **Updated Endpoints:**
192
+ - `POST /api/workspace/plan` - Write rate limit + validation
193
+ - `POST /api/runs` - Write rate limit + validation
194
+ - `GET /api/runs` - Read rate limit + validation
195
+ - `GET /api/runs/:id` - Read rate limit + validation
196
+ - `POST /api/runs/:id/start` - Write rate limit + validation
197
+ - `GET /api/runs/:id/logs/stream` - Read rate limit + validation
198
+ - `POST /api/registry/publish` - Write rate limit + validation
199
+ - `POST /api/privacy/toggle` - Write rate limit + validation
200
+
201
+ **Unchanged Endpoints (no auth/limits):**
202
+ - `GET /health`
203
+ - `GET /ready`
204
+ - `GET /metrics`
205
+ - `GET /debug/*` (in memory mode)
206
+
207
+ ## Environment Variables
208
+
209
+ ### New Variables
210
+
211
+ | Variable | Default | Description |
212
+ |----------|---------|-------------|
213
+ | `AUTH_MODE` | `api_key` | `api_key`, `jwt`, or `mixed` |
214
+ | `JWT_SECRET` | - | JWT signing secret (min 32 chars) |
215
+ | `JWT_ALG` | `HS256` | `HS256`, `HS384`, or `HS512` |
216
+ | `RATE_LIMIT_ENABLED` | `true` | Enable/disable rate limiting |
217
+ | `RATE_LIMIT_MAX` | `60` | Max requests per window |
218
+ | `RATE_LIMIT_WINDOW_MS` | `60000` | Time window in milliseconds |
219
+
220
+ See `apps/os-server/ENV_VARIABLES.md` for complete documentation.
221
+
222
+ ## Testing
223
+
224
+ ### Unit Tests
225
+
226
+ **Test Files:**
227
+ - `apps/os-server/src/__tests__/auth.test.ts` - JWT & auth orchestrator tests
228
+ - `apps/os-server/src/__tests__/validation.test.ts` - Schema validation tests
229
+ - `apps/os-server/src/__tests__/rateLimit.test.ts` - Rate limiting tests
230
+
231
+ **Run Tests:**
232
+ ```bash
233
+ cd apps/os-server
234
+ pnpm test
235
+ ```
236
+
237
+ ### Manual Testing
238
+
239
+ #### Test JWT Authentication
240
+
241
+ 1. **Generate a JWT token** (using your preferred tool or online JWT generator):
242
+ - Payload: `{"sub":"user-123","exp":9999999999}`
243
+ - Secret: Your `JWT_SECRET`
244
+ - Algorithm: `HS256`
245
+
246
+ 2. **Test with valid JWT:**
247
+ ```bash
248
+ AUTH_MODE=jwt
249
+ curl -H "Authorization: Bearer <your-token>" \
250
+ http://localhost:3000/api/runs
251
+ ```
252
+
253
+ 3. **Test with invalid/expired JWT:**
254
+ ```bash
255
+ curl -H "Authorization: Bearer invalid-token" \
256
+ http://localhost:3000/api/runs
257
+ # Expected: 401 Unauthorized
258
+ ```
259
+
260
+ #### Test Rate Limiting
261
+
262
+ 1. **Send requests rapidly:**
263
+ ```bash
264
+ for i in {1..65}; do
265
+ curl -H "x-api-key: test-key" http://localhost:3000/api/runs
266
+ done
267
+ ```
268
+
269
+ 2. **Expected:** First 60 succeed, then 429 errors
270
+
271
+ 3. **Verify error response:**
272
+ ```json
273
+ {
274
+ "error": "rate_limited",
275
+ "retry_after_ms": 45000,
276
+ ...
277
+ }
278
+ ```
279
+
280
+ #### Test Validation
281
+
282
+ 1. **Send invalid request:**
283
+ ```bash
284
+ curl -X POST http://localhost:3000/api/runs \
285
+ -H "x-api-key: test-key" \
286
+ -H "Content-Type: application/json" \
287
+ -d '{"name":"","input":"invalid"}'
288
+ ```
289
+
290
+ 2. **Expected 400 error with field details:**
291
+ ```json
292
+ {
293
+ "error": "invalid_request",
294
+ "details": {
295
+ "fieldErrors": {
296
+ "name": ["String must contain at least 1 character(s)"]
297
+ }
298
+ }
299
+ }
300
+ ```
301
+
302
+ 3. **Send valid request:**
303
+ ```bash
304
+ curl -X POST http://localhost:3000/api/runs \
305
+ -H "x-api-key: test-key" \
306
+ -H "Content-Type: application/json" \
307
+ -d '{"name":"Test Run","input":{"foo":"bar"}}'
308
+ # Expected: 201 Created
309
+ ```
310
+
311
+ ## Health Check
312
+
313
+ The `/health` endpoint now reports auth and rate limiting configuration:
314
+
315
+ ```bash
316
+ curl http://localhost:3000/health
317
+ ```
318
+
319
+ **Response:**
320
+ ```json
321
+ {
322
+ "ok": true,
323
+ "version": "1.0.0",
324
+ "time": "2025-11-16T...",
325
+ "persistence": "postgres",
326
+ "auth": {
327
+ "enabled": true,
328
+ "mode": "mixed"
329
+ },
330
+ "rateLimit": {
331
+ "enabled": true,
332
+ "max": 60,
333
+ "window_ms": 60000
334
+ }
335
+ }
336
+ ```
337
+
338
+ ## Migration Guide
339
+
340
+ ### From API Key Only to JWT
341
+
342
+ 1. **Add JWT configuration:**
343
+ ```bash
344
+ AUTH_MODE=mixed # Accept both during migration
345
+ JWT_SECRET=<your-secret>
346
+ ```
347
+
348
+ 2. **Deploy and test:** Both API keys and JWT work
349
+
350
+ 3. **Switch clients to JWT** (gradual migration)
351
+
352
+ 4. **Once complete, switch to JWT-only:**
353
+ ```bash
354
+ AUTH_MODE=jwt
355
+ ```
356
+
357
+ ### Disabling Features (Development Only)
358
+
359
+ ```bash
360
+ # Disable authentication
361
+ AUTH_ENABLED=false
362
+
363
+ # Disable rate limiting
364
+ RATE_LIMIT_ENABLED=false
365
+ ```
366
+
367
+ **⚠️ Never disable in production!**
368
+
369
+ ## Error Response Reference
370
+
371
+ | Status | Error Code | Description |
372
+ |--------|------------|-------------|
373
+ | 400 | `invalid_request` | Request body validation failed |
374
+ | 400 | `invalid_query` | Query parameter validation failed |
375
+ | 400 | `invalid_params` | Route parameter validation failed |
376
+ | 401 | `unauthorized` | Missing or invalid credentials |
377
+ | 403 | `forbidden` | Valid credentials but insufficient permissions |
378
+ | 429 | `rate_limited` | Too many requests |
379
+
380
+ ## Security Considerations
381
+
382
+ 1. **JWT Secrets:**
383
+ - Use strong, random secrets (32+ characters)
384
+ - Generate with: `openssl rand -base64 32`
385
+ - Never commit secrets to git
386
+
387
+ 2. **Rate Limiting:**
388
+ - Adjust limits based on expected traffic
389
+ - Monitor for abuse patterns
390
+ - Consider using Redis for distributed systems
391
+
392
+ 3. **Validation:**
393
+ - All inputs are validated before processing
394
+ - Unknown fields are stripped
395
+ - Type coercion is explicit
396
+
397
+ 4. **Production:**
398
+ - Always enable `AUTH_ENABLED=true`
399
+ - Use `AUTH_MODE=jwt` or `mixed` for better security
400
+ - Set appropriate rate limits
401
+ - Use HTTPS in production
402
+
403
+ ## Troubleshooting
404
+
405
+ ### JWT Validation Fails
406
+
407
+ **Problem:** 401 error with valid-looking JWT
408
+
409
+ **Solutions:**
410
+ 1. Verify `JWT_SECRET` matches token generation secret
411
+ 2. Check token expiration (`exp` claim)
412
+ 3. Verify algorithm matches (`JWT_ALG`)
413
+ 4. Check token format: `Bearer <token>`
414
+
415
+ ### Rate Limit Errors
416
+
417
+ **Problem:** Getting 429 even with few requests
418
+
419
+ **Solutions:**
420
+ 1. Check if identity changes between requests (API key, JWT sub, IP)
421
+ 2. Verify `RATE_LIMIT_MAX` setting
422
+ 3. Check `RATE_LIMIT_WINDOW_MS` (default 1 minute)
423
+ 4. For development, set `RATE_LIMIT_ENABLED=false`
424
+
425
+ ### Validation Errors
426
+
427
+ **Problem:** 400 errors on valid-looking requests
428
+
429
+ **Solutions:**
430
+ 1. Check exact field requirements in schema
431
+ 2. Verify data types match (string vs number)
432
+ 3. Check for required vs optional fields
433
+ 4. Review detailed error in `details.fieldErrors`
434
+
435
+ ## Files Changed/Added
436
+
437
+ ### New Files
438
+ - `apps/os-server/src/middleware/authJwt.ts`
439
+ - `apps/os-server/src/middleware/auth.ts`
440
+ - `apps/os-server/src/middleware/rateLimit.ts`
441
+ - `apps/os-server/src/middleware/validate.ts`
442
+ - `apps/os-server/src/schemas/runs.ts`
443
+ - `apps/os-server/src/__tests__/auth.test.ts`
444
+ - `apps/os-server/src/__tests__/validation.test.ts`
445
+ - `apps/os-server/src/__tests__/rateLimit.test.ts`
446
+ - `apps/os-server/ENV_VARIABLES.md`
447
+ - `apps/os-server/JWT-RATE-LIMIT-VALIDATION.md` (this file)
448
+
449
+ ### Modified Files
450
+ - `packages/shared/src/env.ts` - Added JWT and rate limit config
451
+ - `apps/os-server/src/index.ts` - Updated all routes with new middleware
452
+ - `infra/docker-compose.yml` - Added new environment variables
453
+
454
+ ## Dependencies
455
+
456
+ All required dependencies were already installed:
457
+ - `zod` - Schema validation
458
+ - `fastify-rate-limit` - Rate limiting
459
+ - Node.js `crypto` - JWT signature verification
460
+
461
+ No new dependencies added! ✅
462
+
@@ -0,0 +1,227 @@
1
+ # Persistent Runs + PostgreSQL + Authentication
2
+
3
+ This document describes the implementation of persistent runs with PostgreSQL and API key authentication for the 4Runr Gateway.
4
+
5
+ ## Overview
6
+
7
+ The Gateway now supports two persistence modes:
8
+ - **Memory Mode** (`GATEWAY_PERSISTENCE=memory`): In-memory storage (no database)
9
+ - **PostgreSQL Mode** (`GATEWAY_PERSISTENCE=postgres` or `persistent`): Persistent storage via Prisma/PostgreSQL
10
+
11
+ All run endpoints are now protected by API key authentication (configurable via `AUTH_ENABLED`).
12
+
13
+ ## Architecture
14
+
15
+ ### Persistence Layer
16
+
17
+ The persistence layer uses an adapter pattern with two implementations:
18
+
19
+ 1. **MemoryRunStore** (`apps/os-server/src/runs/memoryRunStore.ts`)
20
+ - Stores runs in a Map
21
+ - Data is lost on restart
22
+ - No database required
23
+
24
+ 2. **PostgresRunStore** (`apps/os-server/src/runs/postgresRunStore.ts`)
25
+ - Stores runs in PostgreSQL via Prisma
26
+ - Data persists across restarts
27
+ - Requires DATABASE_URL environment variable
28
+
29
+ The store is selected automatically based on `GATEWAY_PERSISTENCE`:
30
+
31
+ ```typescript
32
+ const runStore = getRunStore(); // Returns MemoryRunStore or PostgresRunStore
33
+ ```
34
+
35
+ ### Database Schema
36
+
37
+ New Prisma models:
38
+
39
+ - **Run**: Stores run data (id, name, status, input, output, logs, clientToken, tags, timestamps)
40
+ - **ApiKey**: Stores API keys for authentication (key, label, revoked, timestamps)
41
+ - **IdempotencyToken**: For idempotency token caching (future use)
42
+ - **CacheEntry**: For general caching (future use)
43
+
44
+ ### Authentication
45
+
46
+ API key authentication is implemented via middleware (`apps/os-server/src/middleware/authApiKey.ts`):
47
+
48
+ - **Header**: `x-api-key: <token>`
49
+ - **Validation**: Checks against `api_keys` table (PostgreSQL) or `API_KEY` env var (memory mode)
50
+ - **Endpoints Protected**: All `/api/*` endpoints except `/health`, `/ready`, `/metrics`, and `/debug/*`
51
+
52
+ ## Environment Variables
53
+
54
+ ### Required (PostgreSQL Mode)
55
+
56
+ ```bash
57
+ DATABASE_URL=postgresql://user:password@postgres:5432/dbname
58
+ GATEWAY_PERSISTENCE=postgres # or 'persistent'
59
+ ```
60
+
61
+ ### Optional
62
+
63
+ ```bash
64
+ AUTH_ENABLED=true # Enable/disable API key auth (default: true)
65
+ API_KEY=your-key-here # Single API key for memory mode or quick testing
66
+ API_KEYS=key1,key2,key3 # Comma-separated list for memory mode
67
+ ```
68
+
69
+ ### Memory Mode
70
+
71
+ ```bash
72
+ GATEWAY_PERSISTENCE=memory
73
+ API_KEY=your-key-here # Required if AUTH_ENABLED=true
74
+ ```
75
+
76
+ ## Setup
77
+
78
+ ### 1. Update Prisma Schema
79
+
80
+ The schema has been updated to PostgreSQL. Run migrations:
81
+
82
+ ```bash
83
+ cd apps/os-server
84
+ pnpm db:generate
85
+ pnpm db:migrate
86
+ ```
87
+
88
+ ### 2. Create API Keys
89
+
90
+ For PostgreSQL mode, seed an API key:
91
+
92
+ ```bash
93
+ pnpm seed:api-key
94
+ # Or with custom key and label:
95
+ pnpm seed:api-key my-custom-key "Production Key"
96
+ ```
97
+
98
+ For memory mode, set the `API_KEY` environment variable:
99
+
100
+ ```bash
101
+ export API_KEY=my-secret-key
102
+ ```
103
+
104
+ ### 3. Start Gateway
105
+
106
+ ```bash
107
+ # PostgreSQL mode (default)
108
+ export GATEWAY_PERSISTENCE=postgres
109
+ export DATABASE_URL=postgresql://4runr:4runr_password@postgres:5432/4runr_gateway
110
+ pnpm start
111
+
112
+ # Memory mode
113
+ export GATEWAY_PERSISTENCE=memory
114
+ export API_KEY=my-secret-key
115
+ pnpm start
116
+ ```
117
+
118
+ ## Usage
119
+
120
+ ### Create a Run (with auth)
121
+
122
+ ```bash
123
+ curl -X POST http://localhost:3000/api/runs \
124
+ -H "Content-Type: application/json" \
125
+ -H "x-api-key: your-api-key" \
126
+ -d '{
127
+ "name": "My Run",
128
+ "input": {"foo": "bar"},
129
+ "tags": ["test"]
130
+ }'
131
+ ```
132
+
133
+ ### Get a Run
134
+
135
+ ```bash
136
+ curl http://localhost:3000/api/runs/run-id \
137
+ -H "x-api-key: your-api-key"
138
+ ```
139
+
140
+ ### Start a Run
141
+
142
+ ```bash
143
+ curl -X POST http://localhost:3000/api/runs/run-id/start \
144
+ -H "x-api-key: your-api-key"
145
+ ```
146
+
147
+ ## Testing
148
+
149
+ ### Disable Authentication (Development Only)
150
+
151
+ ```bash
152
+ export AUTH_ENABLED=false
153
+ ```
154
+
155
+ ⚠️ **Warning**: Never disable authentication in production!
156
+
157
+ ### Test Memory Mode
158
+
159
+ ```bash
160
+ export GATEWAY_PERSISTENCE=memory
161
+ export API_KEY=test-key
162
+ export AUTH_ENABLED=true
163
+ pnpm start
164
+ ```
165
+
166
+ ### Test PostgreSQL Mode
167
+
168
+ ```bash
169
+ export GATEWAY_PERSISTENCE=postgres
170
+ export DATABASE_URL=postgresql://4runr:4runr_password@postgres:5432/4runr_gateway
171
+ export AUTH_ENABLED=true
172
+ # Seed an API key first
173
+ pnpm seed:api-key test-key "Test Key"
174
+ pnpm start
175
+ ```
176
+
177
+ ## Migration Guide
178
+
179
+ ### From In-Memory to PostgreSQL
180
+
181
+ 1. Set `GATEWAY_PERSISTENCE=postgres`
182
+ 2. Provide `DATABASE_URL`
183
+ 3. Run migrations: `pnpm db:migrate`
184
+ 4. Seed API keys: `pnpm seed:api-key`
185
+ 5. Restart gateway
186
+
187
+ ### From PostgreSQL to Memory
188
+
189
+ 1. Set `GATEWAY_PERSISTENCE=memory`
190
+ 2. Set `API_KEY` environment variable
191
+ 3. Restart gateway
192
+
193
+ ⚠️ **Note**: Data in PostgreSQL will remain but won't be accessible in memory mode.
194
+
195
+ ## File Structure
196
+
197
+ ```
198
+ apps/os-server/
199
+ ├── src/
200
+ │ ├── config/
201
+ │ │ └── persistence.ts # Persistence mode resolver
202
+ │ ├── db/
203
+ │ │ └── prisma.ts # Prisma client singleton
204
+ │ ├── runs/
205
+ │ │ ├── types.ts # Run type definitions
206
+ │ │ ├── runStore.ts # RunStore interface
207
+ │ │ ├── memoryRunStore.ts # In-memory implementation
208
+ │ │ ├── postgresRunStore.ts # PostgreSQL implementation
209
+ │ │ └── index.ts # Factory function
210
+ │ ├── middleware/
211
+ │ │ └── authApiKey.ts # API key authentication
212
+ │ └── index.ts # Main gateway server
213
+ ├── scripts/
214
+ │ └── seed-api-key.ts # API key seeding script
215
+ └── prisma/
216
+ └── schema.prisma # Database schema (PostgreSQL)
217
+ ```
218
+
219
+ ## Future Enhancements
220
+
221
+ - [ ] Idempotency token store implementation
222
+ - [ ] Cache entry store implementation
223
+ - [ ] Bearer token authentication (JWT)
224
+ - [ ] API key rotation
225
+ - [ ] Rate limiting per API key
226
+ - [ ] Audit logging for API key usage
227
+