madarx 2.24.0 → 2.24.1

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 (1244) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +756 -735
  3. package/.next/standalone/.next/app-path-routes-manifest.json +92 -89
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/react-loadable-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/(home)/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  10. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  11. package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/admin/page.js +2 -2
  13. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/agents/[id]/page.js +4 -4
  15. package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/agents/page.js +1 -1
  17. package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/agents/[id]/active-run/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/agents/active-runs/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/agents/resume-approval/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/brand/share/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/cloud/schema/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/compliance/export/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route.js +1 -1
  62. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/connectivity/allowlist/route.js +28 -0
  65. package/.next/standalone/.next/server/app/api/connectivity/allowlist/route.js.nft.json +1 -0
  66. package/.next/standalone/.next/server/app/api/connectivity/allowlist/route_client-reference-manifest.js +1 -0
  67. package/.next/standalone/.next/server/app/api/connectivity/smoke/route.js +28 -0
  68. package/.next/standalone/.next/server/app/api/connectivity/smoke/route.js.nft.json +1 -0
  69. package/.next/standalone/.next/server/app/api/connectivity/smoke/route_client-reference-manifest.js +1 -0
  70. package/.next/standalone/.next/server/app/api/connectivity/status/route.js +28 -0
  71. package/.next/standalone/.next/server/app/api/connectivity/status/route.js.nft.json +1 -0
  72. package/.next/standalone/.next/server/app/api/connectivity/status/route_client-reference-manifest.js +1 -0
  73. package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/dashboard/spaces/layout/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/orchestrator/stream/attach/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/orchestrator/upload/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/share/[token]/route.js +1 -1
  170. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
  196. package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route.js +1 -1
  209. package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/whatsapp/qr/route.js +1 -1
  212. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/whatsapp/send/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/approvals/page.js +1 -1
  217. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/architecture.html +2 -2
  220. package/.next/standalone/.next/server/app/architecture.rsc +3 -3
  221. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/brand.html +2 -2
  225. package/.next/standalone/.next/server/app/brand.rsc +3 -3
  226. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  229. package/.next/standalone/.next/server/app/federated-ai.rsc +3 -3
  230. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
  232. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/hail/[id]/page.js +2 -2
  234. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
  236. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/hail/page.js +2 -2
  238. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/index.html +2 -2
  242. package/.next/standalone/.next/server/app/index.rsc +3 -3
  243. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/join.html +1 -1
  245. package/.next/standalone/.next/server/app/join.rsc +3 -3
  246. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/marketplace/page.js +2 -2
  248. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/missions/page.js +2 -2
  253. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/onboarding/team/page_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  258. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  259. package/.next/standalone/.next/server/app/org/page.js +1 -1
  260. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  261. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/projects/new/page.js +2 -2
  265. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/projects/new.html +2 -2
  267. package/.next/standalone/.next/server/app/projects/new.rsc +4 -4
  268. package/.next/standalone/.next/server/app/projects/page.js +20 -9
  269. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  271. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  272. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  274. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  278. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  280. package/.next/standalone/.next/server/app/settings/brand.rsc +3 -3
  281. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  285. package/.next/standalone/.next/server/app/settings/onboarding.rsc +3 -3
  286. package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
  287. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  288. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  289. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  290. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
  292. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  293. package/.next/standalone/.next/server/app/settings.html +2 -2
  294. package/.next/standalone/.next/server/app/settings.rsc +3 -3
  295. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  296. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
  298. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  299. package/.next/standalone/.next/server/app/tasks/page.js +1 -1
  300. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  301. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  302. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  303. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  304. package/.next/standalone/.next/server/app/whatsapp/page.js +1 -1
  305. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/whatsapp.html +2 -2
  307. package/.next/standalone/.next/server/app/whatsapp.rsc +4 -4
  308. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  310. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  311. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  312. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  313. package/.next/standalone/.next/server/app-paths-manifest.json +92 -89
  314. package/.next/standalone/.next/server/chunks/1699.js +12 -1
  315. package/.next/standalone/.next/server/chunks/4143.js +1 -1
  316. package/.next/standalone/.next/server/chunks/4949.js +1 -0
  317. package/.next/standalone/.next/server/chunks/511.js +1 -1
  318. package/.next/standalone/.next/server/chunks/6059.js +1 -1
  319. package/.next/standalone/.next/server/chunks/8390.js +29 -6
  320. package/.next/standalone/.next/server/functions-config-manifest.json +40 -37
  321. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  322. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  323. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  324. package/.next/standalone/.next/server/pages/404.html +2 -2
  325. package/.next/standalone/.next/server/pages/500.html +1 -1
  326. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  327. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  328. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  329. package/.next/standalone/.next/static/DolrPgGSY-J2Mq_5nw2iX/_buildManifest.js +1 -0
  330. package/.next/standalone/.next/static/chunks/3168.bfda0afc8c838efd.js +1 -0
  331. package/.next/standalone/.next/static/chunks/4119-88678985133f8e3e.js +1 -0
  332. package/.next/standalone/.next/static/chunks/app/activity/loading-50b3fa7d503e745e.js +1 -0
  333. package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-50b3fa7d503e745e.js +1 -0
  334. package/.next/standalone/.next/static/chunks/app/agents/loading-50b3fa7d503e745e.js +1 -0
  335. package/.next/standalone/.next/static/chunks/app/api/activity/route-50b3fa7d503e745e.js +1 -0
  336. package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-50b3fa7d503e745e.js +1 -0
  337. package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-50b3fa7d503e745e.js +1 -0
  338. package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-50b3fa7d503e745e.js +1 -0
  339. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-50b3fa7d503e745e.js +1 -0
  340. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-50b3fa7d503e745e.js +1 -0
  341. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-50b3fa7d503e745e.js +1 -0
  342. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-50b3fa7d503e745e.js +1 -0
  343. package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-50b3fa7d503e745e.js +1 -0
  344. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-50b3fa7d503e745e.js +1 -0
  345. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-50b3fa7d503e745e.js +1 -0
  346. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-50b3fa7d503e745e.js +1 -0
  347. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-50b3fa7d503e745e.js +1 -0
  348. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-50b3fa7d503e745e.js +1 -0
  349. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-50b3fa7d503e745e.js +1 -0
  350. package/.next/standalone/.next/static/chunks/app/api/agents/active-runs/route-50b3fa7d503e745e.js +1 -0
  351. package/.next/standalone/.next/static/chunks/app/api/agents/create/route-50b3fa7d503e745e.js +1 -0
  352. package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-50b3fa7d503e745e.js +1 -0
  353. package/.next/standalone/.next/static/chunks/app/api/agents/resume-approval/route-50b3fa7d503e745e.js +1 -0
  354. package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-50b3fa7d503e745e.js +1 -0
  355. package/.next/standalone/.next/static/chunks/app/api/approvals/route-50b3fa7d503e745e.js +1 -0
  356. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-50b3fa7d503e745e.js +1 -0
  357. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-50b3fa7d503e745e.js +1 -0
  358. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-50b3fa7d503e745e.js +1 -0
  359. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-50b3fa7d503e745e.js +1 -0
  360. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-50b3fa7d503e745e.js +1 -0
  361. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-50b3fa7d503e745e.js +1 -0
  362. package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-50b3fa7d503e745e.js +1 -0
  363. package/.next/standalone/.next/static/chunks/app/api/audit/list/route-50b3fa7d503e745e.js +1 -0
  364. package/.next/standalone/.next/static/chunks/app/api/audit/search/route-50b3fa7d503e745e.js +1 -0
  365. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-50b3fa7d503e745e.js +1 -0
  366. package/.next/standalone/.next/static/chunks/app/api/auth/config/route-50b3fa7d503e745e.js +1 -0
  367. package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-50b3fa7d503e745e.js +1 -0
  368. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-50b3fa7d503e745e.js +1 -0
  369. package/.next/standalone/.next/static/chunks/app/api/brand/route-50b3fa7d503e745e.js +1 -0
  370. package/.next/standalone/.next/static/chunks/app/api/brand/share/route-50b3fa7d503e745e.js +1 -0
  371. package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-50b3fa7d503e745e.js +1 -0
  372. package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-50b3fa7d503e745e.js +1 -0
  373. package/.next/standalone/.next/static/chunks/app/api/cloud/schema/route-50b3fa7d503e745e.js +1 -0
  374. package/.next/standalone/.next/static/chunks/app/api/compliance/export/route-50b3fa7d503e745e.js +1 -0
  375. package/.next/standalone/.next/static/chunks/app/api/config/env/route-50b3fa7d503e745e.js +1 -0
  376. package/.next/standalone/.next/static/chunks/app/api/config/route-50b3fa7d503e745e.js +1 -0
  377. package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-50b3fa7d503e745e.js +1 -0
  378. package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-50b3fa7d503e745e.js +1 -0
  379. package/.next/standalone/.next/static/chunks/app/api/connections/route-50b3fa7d503e745e.js +1 -0
  380. package/.next/standalone/.next/static/chunks/app/api/connectivity/allowlist/route-50b3fa7d503e745e.js +1 -0
  381. package/.next/standalone/.next/static/chunks/app/api/connectivity/smoke/route-50b3fa7d503e745e.js +1 -0
  382. package/.next/standalone/.next/static/chunks/app/api/connectivity/status/route-50b3fa7d503e745e.js +1 -0
  383. package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-50b3fa7d503e745e.js +1 -0
  384. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-50b3fa7d503e745e.js +1 -0
  385. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-50b3fa7d503e745e.js +1 -0
  386. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-50b3fa7d503e745e.js +1 -0
  387. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-50b3fa7d503e745e.js +1 -0
  388. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-50b3fa7d503e745e.js +1 -0
  389. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/layout/route-50b3fa7d503e745e.js +1 -0
  390. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-50b3fa7d503e745e.js +1 -0
  391. package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-50b3fa7d503e745e.js +1 -0
  392. package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-50b3fa7d503e745e.js +1 -0
  393. package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-50b3fa7d503e745e.js +1 -0
  394. package/.next/standalone/.next/static/chunks/app/api/disk/files/route-50b3fa7d503e745e.js +1 -0
  395. package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-50b3fa7d503e745e.js +1 -0
  396. package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-50b3fa7d503e745e.js +1 -0
  397. package/.next/standalone/.next/static/chunks/app/api/events/stream/route-50b3fa7d503e745e.js +1 -0
  398. package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-50b3fa7d503e745e.js +1 -0
  399. package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-50b3fa7d503e745e.js +1 -0
  400. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-50b3fa7d503e745e.js +1 -0
  401. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-50b3fa7d503e745e.js +1 -0
  402. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-50b3fa7d503e745e.js +1 -0
  403. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-50b3fa7d503e745e.js +1 -0
  404. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-50b3fa7d503e745e.js +1 -0
  405. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-50b3fa7d503e745e.js +1 -0
  406. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-50b3fa7d503e745e.js +1 -0
  407. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-50b3fa7d503e745e.js +1 -0
  408. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-50b3fa7d503e745e.js +1 -0
  409. package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-50b3fa7d503e745e.js +1 -0
  410. package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-50b3fa7d503e745e.js +1 -0
  411. package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-50b3fa7d503e745e.js +1 -0
  412. package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-50b3fa7d503e745e.js +1 -0
  413. package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-50b3fa7d503e745e.js +1 -0
  414. package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-50b3fa7d503e745e.js +1 -0
  415. package/.next/standalone/.next/static/chunks/app/api/help/route-50b3fa7d503e745e.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-50b3fa7d503e745e.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-50b3fa7d503e745e.js +1 -0
  418. package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-50b3fa7d503e745e.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-50b3fa7d503e745e.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-50b3fa7d503e745e.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-50b3fa7d503e745e.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-50b3fa7d503e745e.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/api/marketplace/route-50b3fa7d503e745e.js +1 -0
  424. package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-50b3fa7d503e745e.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-50b3fa7d503e745e.js +1 -0
  426. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-50b3fa7d503e745e.js +1 -0
  427. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-50b3fa7d503e745e.js +1 -0
  428. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-50b3fa7d503e745e.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-50b3fa7d503e745e.js +1 -0
  430. package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-50b3fa7d503e745e.js +1 -0
  431. package/.next/standalone/.next/static/chunks/app/api/missions/route-50b3fa7d503e745e.js +1 -0
  432. package/.next/standalone/.next/static/chunks/app/api/models/route-50b3fa7d503e745e.js +1 -0
  433. package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-50b3fa7d503e745e.js +1 -0
  434. package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-50b3fa7d503e745e.js +1 -0
  435. package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-50b3fa7d503e745e.js +1 -0
  436. package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/attach/route-50b3fa7d503e745e.js +1 -0
  437. package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-50b3fa7d503e745e.js +1 -0
  438. package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-50b3fa7d503e745e.js +1 -0
  439. package/.next/standalone/.next/static/chunks/app/api/org/route-50b3fa7d503e745e.js +1 -0
  440. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-50b3fa7d503e745e.js +1 -0
  441. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-50b3fa7d503e745e.js +1 -0
  442. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-50b3fa7d503e745e.js +1 -0
  443. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-50b3fa7d503e745e.js +1 -0
  444. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-50b3fa7d503e745e.js +1 -0
  445. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-50b3fa7d503e745e.js +1 -0
  446. package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-50b3fa7d503e745e.js +1 -0
  447. package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-50b3fa7d503e745e.js +1 -0
  448. package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-50b3fa7d503e745e.js +1 -0
  449. package/.next/standalone/.next/static/chunks/app/api/orgs/route-50b3fa7d503e745e.js +1 -0
  450. package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-50b3fa7d503e745e.js +1 -0
  451. package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-50b3fa7d503e745e.js +1 -0
  452. package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-50b3fa7d503e745e.js +1 -0
  453. package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-50b3fa7d503e745e.js +1 -0
  454. package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-50b3fa7d503e745e.js +1 -0
  455. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-50b3fa7d503e745e.js +1 -0
  456. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-50b3fa7d503e745e.js +1 -0
  457. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-50b3fa7d503e745e.js +1 -0
  458. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-50b3fa7d503e745e.js +1 -0
  459. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-50b3fa7d503e745e.js +1 -0
  460. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-50b3fa7d503e745e.js +1 -0
  461. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-50b3fa7d503e745e.js +1 -0
  462. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-50b3fa7d503e745e.js +1 -0
  463. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-50b3fa7d503e745e.js +1 -0
  464. package/.next/standalone/.next/static/chunks/app/api/processes/route-50b3fa7d503e745e.js +1 -0
  465. package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-50b3fa7d503e745e.js +1 -0
  466. package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-50b3fa7d503e745e.js +1 -0
  467. package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-50b3fa7d503e745e.js +1 -0
  468. package/.next/standalone/.next/static/chunks/app/api/projects/route-50b3fa7d503e745e.js +1 -0
  469. package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-50b3fa7d503e745e.js +1 -0
  470. package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-50b3fa7d503e745e.js +1 -0
  471. package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-50b3fa7d503e745e.js +1 -0
  472. package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-50b3fa7d503e745e.js +1 -0
  473. package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-50b3fa7d503e745e.js +1 -0
  474. package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-50b3fa7d503e745e.js +1 -0
  475. package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-50b3fa7d503e745e.js +1 -0
  476. package/.next/standalone/.next/static/chunks/app/api/secrets/route-50b3fa7d503e745e.js +1 -0
  477. package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-50b3fa7d503e745e.js +1 -0
  478. package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-50b3fa7d503e745e.js +1 -0
  479. package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-50b3fa7d503e745e.js +1 -0
  480. package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-50b3fa7d503e745e.js +1 -0
  481. package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-50b3fa7d503e745e.js +1 -0
  482. package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-50b3fa7d503e745e.js +1 -0
  483. package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-50b3fa7d503e745e.js +1 -0
  484. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-50b3fa7d503e745e.js +1 -0
  485. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-50b3fa7d503e745e.js +1 -0
  486. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-50b3fa7d503e745e.js +1 -0
  487. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-50b3fa7d503e745e.js +1 -0
  488. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-50b3fa7d503e745e.js +1 -0
  489. package/.next/standalone/.next/static/chunks/app/api/state/route-50b3fa7d503e745e.js +1 -0
  490. package/.next/standalone/.next/static/chunks/app/api/system/update/route-50b3fa7d503e745e.js +1 -0
  491. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-50b3fa7d503e745e.js +1 -0
  492. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-50b3fa7d503e745e.js +1 -0
  493. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-50b3fa7d503e745e.js +1 -0
  494. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-50b3fa7d503e745e.js +1 -0
  495. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-50b3fa7d503e745e.js +1 -0
  496. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-50b3fa7d503e745e.js +1 -0
  497. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-50b3fa7d503e745e.js +1 -0
  498. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-50b3fa7d503e745e.js +1 -0
  499. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-50b3fa7d503e745e.js +1 -0
  500. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-50b3fa7d503e745e.js +1 -0
  501. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-50b3fa7d503e745e.js +1 -0
  502. package/.next/standalone/.next/static/chunks/app/api/tasks/route-50b3fa7d503e745e.js +1 -0
  503. package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-50b3fa7d503e745e.js +1 -0
  504. package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-50b3fa7d503e745e.js +1 -0
  505. package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-50b3fa7d503e745e.js +1 -0
  506. package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-50b3fa7d503e745e.js +1 -0
  507. package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-50b3fa7d503e745e.js +1 -0
  508. package/.next/standalone/.next/static/chunks/app/api/tools/route-50b3fa7d503e745e.js +1 -0
  509. package/.next/standalone/.next/static/chunks/app/api/transcripts/route-50b3fa7d503e745e.js +1 -0
  510. package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-50b3fa7d503e745e.js +1 -0
  511. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-50b3fa7d503e745e.js +1 -0
  512. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-50b3fa7d503e745e.js +1 -0
  513. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-50b3fa7d503e745e.js +1 -0
  514. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-50b3fa7d503e745e.js +1 -0
  515. package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-50b3fa7d503e745e.js +1 -0
  516. package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-50b3fa7d503e745e.js +1 -0
  517. package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-50b3fa7d503e745e.js +1 -0
  518. package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-50b3fa7d503e745e.js +1 -0
  519. package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-50b3fa7d503e745e.js +1 -0
  520. package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-50b3fa7d503e745e.js +1 -0
  521. package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-50b3fa7d503e745e.js +1 -0
  522. package/.next/standalone/.next/static/chunks/app/approvals/loading-50b3fa7d503e745e.js +1 -0
  523. package/.next/standalone/.next/static/chunks/app/architecture/loading-50b3fa7d503e745e.js +1 -0
  524. package/.next/standalone/.next/static/chunks/app/audit/loading-50b3fa7d503e745e.js +1 -0
  525. package/.next/standalone/.next/static/chunks/app/brand/loading-50b3fa7d503e745e.js +1 -0
  526. package/.next/standalone/.next/static/chunks/app/disk/loading-50b3fa7d503e745e.js +1 -0
  527. package/.next/standalone/.next/static/chunks/app/federated-ai/loading-50b3fa7d503e745e.js +1 -0
  528. package/.next/standalone/.next/static/chunks/app/help/loading-50b3fa7d503e745e.js +1 -0
  529. package/.next/standalone/.next/static/chunks/app/layout-1fe56531c37a6849.js +1 -0
  530. package/.next/standalone/.next/static/chunks/app/loading-50b3fa7d503e745e.js +1 -0
  531. package/.next/standalone/.next/static/chunks/app/marketplace/loading-50b3fa7d503e745e.js +1 -0
  532. package/.next/standalone/.next/static/chunks/app/missions/loading-50b3fa7d503e745e.js +1 -0
  533. package/.next/standalone/.next/static/chunks/app/onboarding/loading-50b3fa7d503e745e.js +1 -0
  534. package/.next/standalone/.next/static/chunks/app/org/loading-50b3fa7d503e745e.js +1 -0
  535. package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-50b3fa7d503e745e.js +1 -0
  536. package/.next/standalone/.next/static/chunks/app/projects/loading-50b3fa7d503e745e.js +1 -0
  537. package/.next/standalone/.next/static/chunks/app/projects/page-8efb69f23edca22d.js +1 -0
  538. package/.next/standalone/.next/static/chunks/app/reports/[file]/route-50b3fa7d503e745e.js +1 -0
  539. package/.next/standalone/.next/static/chunks/app/reports/loading-50b3fa7d503e745e.js +1 -0
  540. package/.next/standalone/.next/static/chunks/app/runtime/loading-50b3fa7d503e745e.js +1 -0
  541. package/.next/standalone/.next/static/chunks/app/schedules/loading-50b3fa7d503e745e.js +1 -0
  542. package/.next/standalone/.next/static/chunks/app/settings/loading-50b3fa7d503e745e.js +1 -0
  543. package/.next/standalone/.next/static/chunks/app/settings/page-50b3fa7d503e745e.js +1 -0
  544. package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-50b3fa7d503e745e.js +1 -0
  545. package/.next/standalone/.next/static/chunks/app/tasks/loading-50b3fa7d503e745e.js +1 -0
  546. package/.next/standalone/.next/static/chunks/app/tools/loading-50b3fa7d503e745e.js +1 -0
  547. package/.next/standalone/.next/static/chunks/app/tools/page-50b3fa7d503e745e.js +1 -0
  548. package/.next/standalone/.next/static/chunks/app/whatsapp/loading-50b3fa7d503e745e.js +1 -0
  549. package/.next/standalone/.next/static/chunks/app/whatsapp/page-0a722b2ff89d8fb0.js +1 -0
  550. package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-50b3fa7d503e745e.js +1 -0
  551. package/.next/standalone/.next/static/chunks/webpack-898ec578bfafc53f.js +1 -0
  552. package/.next/standalone/CHANGELOG.md +14 -8
  553. package/.next/standalone/package.json +2 -1
  554. package/.next/static/DolrPgGSY-J2Mq_5nw2iX/_buildManifest.js +1 -0
  555. package/.next/static/chunks/3168.bfda0afc8c838efd.js +1 -0
  556. package/.next/static/chunks/4119-88678985133f8e3e.js +1 -0
  557. package/.next/static/chunks/app/activity/loading-50b3fa7d503e745e.js +1 -0
  558. package/.next/static/chunks/app/agents/[id]/loading-50b3fa7d503e745e.js +1 -0
  559. package/.next/static/chunks/app/agents/loading-50b3fa7d503e745e.js +1 -0
  560. package/.next/static/chunks/app/api/activity/route-50b3fa7d503e745e.js +1 -0
  561. package/.next/static/chunks/app/api/admin/audit-export/route-50b3fa7d503e745e.js +1 -0
  562. package/.next/static/chunks/app/api/admin/share-links/route-50b3fa7d503e745e.js +1 -0
  563. package/.next/static/chunks/app/api/agent-memory/route-50b3fa7d503e745e.js +1 -0
  564. package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-50b3fa7d503e745e.js +1 -0
  565. package/.next/static/chunks/app/api/agent-runs/[id]/events/route-50b3fa7d503e745e.js +1 -0
  566. package/.next/static/chunks/app/api/agent-runs/[id]/log/route-50b3fa7d503e745e.js +1 -0
  567. package/.next/static/chunks/app/api/agent-runs/[id]/route-50b3fa7d503e745e.js +1 -0
  568. package/.next/static/chunks/app/api/agent-runs/route-50b3fa7d503e745e.js +1 -0
  569. package/.next/static/chunks/app/api/agents/[id]/active-run/route-50b3fa7d503e745e.js +1 -0
  570. package/.next/static/chunks/app/api/agents/[id]/chain/route-50b3fa7d503e745e.js +1 -0
  571. package/.next/static/chunks/app/api/agents/[id]/memory/route-50b3fa7d503e745e.js +1 -0
  572. package/.next/static/chunks/app/api/agents/[id]/reports/route-50b3fa7d503e745e.js +1 -0
  573. package/.next/static/chunks/app/api/agents/[id]/run/route-50b3fa7d503e745e.js +1 -0
  574. package/.next/static/chunks/app/api/agents/[id]/skills/route-50b3fa7d503e745e.js +1 -0
  575. package/.next/static/chunks/app/api/agents/active-runs/route-50b3fa7d503e745e.js +1 -0
  576. package/.next/static/chunks/app/api/agents/create/route-50b3fa7d503e745e.js +1 -0
  577. package/.next/static/chunks/app/api/agents/ops/route-50b3fa7d503e745e.js +1 -0
  578. package/.next/static/chunks/app/api/agents/resume-approval/route-50b3fa7d503e745e.js +1 -0
  579. package/.next/static/chunks/app/api/approvals/[id]/route-50b3fa7d503e745e.js +1 -0
  580. package/.next/static/chunks/app/api/approvals/route-50b3fa7d503e745e.js +1 -0
  581. package/.next/static/chunks/app/api/artifacts/[id]/acl/route-50b3fa7d503e745e.js +1 -0
  582. package/.next/static/chunks/app/api/artifacts/[id]/protect/route-50b3fa7d503e745e.js +1 -0
  583. package/.next/static/chunks/app/api/artifacts/[id]/raw/route-50b3fa7d503e745e.js +1 -0
  584. package/.next/static/chunks/app/api/artifacts/[id]/route-50b3fa7d503e745e.js +1 -0
  585. package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-50b3fa7d503e745e.js +1 -0
  586. package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-50b3fa7d503e745e.js +1 -0
  587. package/.next/static/chunks/app/api/artifacts/upload/route-50b3fa7d503e745e.js +1 -0
  588. package/.next/static/chunks/app/api/audit/list/route-50b3fa7d503e745e.js +1 -0
  589. package/.next/static/chunks/app/api/audit/search/route-50b3fa7d503e745e.js +1 -0
  590. package/.next/static/chunks/app/api/auth/callback/route-50b3fa7d503e745e.js +1 -0
  591. package/.next/static/chunks/app/api/auth/config/route-50b3fa7d503e745e.js +1 -0
  592. package/.next/static/chunks/app/api/auth/join-bootstrap/route-50b3fa7d503e745e.js +1 -0
  593. package/.next/static/chunks/app/api/auth/session/route-50b3fa7d503e745e.js +1 -0
  594. package/.next/static/chunks/app/api/brand/route-50b3fa7d503e745e.js +1 -0
  595. package/.next/static/chunks/app/api/brand/share/route-50b3fa7d503e745e.js +1 -0
  596. package/.next/static/chunks/app/api/chat/sessions/[id]/route-50b3fa7d503e745e.js +1 -0
  597. package/.next/static/chunks/app/api/chat/sessions/route-50b3fa7d503e745e.js +1 -0
  598. package/.next/static/chunks/app/api/cloud/schema/route-50b3fa7d503e745e.js +1 -0
  599. package/.next/static/chunks/app/api/compliance/export/route-50b3fa7d503e745e.js +1 -0
  600. package/.next/static/chunks/app/api/config/env/route-50b3fa7d503e745e.js +1 -0
  601. package/.next/static/chunks/app/api/config/route-50b3fa7d503e745e.js +1 -0
  602. package/.next/static/chunks/app/api/connections/[service]/route-50b3fa7d503e745e.js +1 -0
  603. package/.next/static/chunks/app/api/connections/[service]/verify/route-50b3fa7d503e745e.js +1 -0
  604. package/.next/static/chunks/app/api/connections/route-50b3fa7d503e745e.js +1 -0
  605. package/.next/static/chunks/app/api/connectivity/allowlist/route-50b3fa7d503e745e.js +1 -0
  606. package/.next/static/chunks/app/api/connectivity/smoke/route-50b3fa7d503e745e.js +1 -0
  607. package/.next/static/chunks/app/api/connectivity/status/route-50b3fa7d503e745e.js +1 -0
  608. package/.next/static/chunks/app/api/cron/tick/route-50b3fa7d503e745e.js +1 -0
  609. package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-50b3fa7d503e745e.js +1 -0
  610. package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-50b3fa7d503e745e.js +1 -0
  611. package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-50b3fa7d503e745e.js +1 -0
  612. package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-50b3fa7d503e745e.js +1 -0
  613. package/.next/static/chunks/app/api/dashboard/spaces/import/route-50b3fa7d503e745e.js +1 -0
  614. package/.next/static/chunks/app/api/dashboard/spaces/layout/route-50b3fa7d503e745e.js +1 -0
  615. package/.next/static/chunks/app/api/dashboard/spaces/route-50b3fa7d503e745e.js +1 -0
  616. package/.next/static/chunks/app/api/disk/files/[id]/blob/route-50b3fa7d503e745e.js +1 -0
  617. package/.next/static/chunks/app/api/disk/files/[id]/route-50b3fa7d503e745e.js +1 -0
  618. package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-50b3fa7d503e745e.js +1 -0
  619. package/.next/static/chunks/app/api/disk/files/route-50b3fa7d503e745e.js +1 -0
  620. package/.next/static/chunks/app/api/disk/folders/route-50b3fa7d503e745e.js +1 -0
  621. package/.next/static/chunks/app/api/events/since/[cursor]/route-50b3fa7d503e745e.js +1 -0
  622. package/.next/static/chunks/app/api/events/stream/route-50b3fa7d503e745e.js +1 -0
  623. package/.next/static/chunks/app/api/fs/create-folder/route-50b3fa7d503e745e.js +1 -0
  624. package/.next/static/chunks/app/api/fs/pick-folder/route-50b3fa7d503e745e.js +1 -0
  625. package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-50b3fa7d503e745e.js +1 -0
  626. package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-50b3fa7d503e745e.js +1 -0
  627. package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-50b3fa7d503e745e.js +1 -0
  628. package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-50b3fa7d503e745e.js +1 -0
  629. package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-50b3fa7d503e745e.js +1 -0
  630. package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-50b3fa7d503e745e.js +1 -0
  631. package/.next/static/chunks/app/api/hail/engagements/[id]/route-50b3fa7d503e745e.js +1 -0
  632. package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-50b3fa7d503e745e.js +1 -0
  633. package/.next/static/chunks/app/api/hail/engagements/route-50b3fa7d503e745e.js +1 -0
  634. package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-50b3fa7d503e745e.js +1 -0
  635. package/.next/static/chunks/app/api/hail/interviews/[id]/route-50b3fa7d503e745e.js +1 -0
  636. package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-50b3fa7d503e745e.js +1 -0
  637. package/.next/static/chunks/app/api/hail/setup-packages/validate/route-50b3fa7d503e745e.js +1 -0
  638. package/.next/static/chunks/app/api/heartbeat/tick/route-50b3fa7d503e745e.js +1 -0
  639. package/.next/static/chunks/app/api/heartbeat/worker/route-50b3fa7d503e745e.js +1 -0
  640. package/.next/static/chunks/app/api/help/route-50b3fa7d503e745e.js +1 -0
  641. package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-50b3fa7d503e745e.js +1 -0
  642. package/.next/static/chunks/app/api/hermes/jobs/[id]/route-50b3fa7d503e745e.js +1 -0
  643. package/.next/static/chunks/app/api/hermes/jobs/route-50b3fa7d503e745e.js +1 -0
  644. package/.next/static/chunks/app/api/integrations/google/callback/route-50b3fa7d503e745e.js +1 -0
  645. package/.next/static/chunks/app/api/integrations/google/oauth/route-50b3fa7d503e745e.js +1 -0
  646. package/.next/static/chunks/app/api/marketplace/[id]/route-50b3fa7d503e745e.js +1 -0
  647. package/.next/static/chunks/app/api/marketplace/open-design/route-50b3fa7d503e745e.js +1 -0
  648. package/.next/static/chunks/app/api/marketplace/route-50b3fa7d503e745e.js +1 -0
  649. package/.next/static/chunks/app/api/mines/import-roots/route-50b3fa7d503e745e.js +1 -0
  650. package/.next/static/chunks/app/api/mines/portfolio/route-50b3fa7d503e745e.js +1 -0
  651. package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-50b3fa7d503e745e.js +1 -0
  652. package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-50b3fa7d503e745e.js +1 -0
  653. package/.next/static/chunks/app/api/mines/projects/[id]/import/route-50b3fa7d503e745e.js +1 -0
  654. package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-50b3fa7d503e745e.js +1 -0
  655. package/.next/static/chunks/app/api/mines/projects/route-50b3fa7d503e745e.js +1 -0
  656. package/.next/static/chunks/app/api/missions/route-50b3fa7d503e745e.js +1 -0
  657. package/.next/static/chunks/app/api/models/route-50b3fa7d503e745e.js +1 -0
  658. package/.next/static/chunks/app/api/onboarding/blueprint/route-50b3fa7d503e745e.js +1 -0
  659. package/.next/static/chunks/app/api/onboarding/launch/route-50b3fa7d503e745e.js +1 -0
  660. package/.next/static/chunks/app/api/orchestrator/command/route-50b3fa7d503e745e.js +1 -0
  661. package/.next/static/chunks/app/api/orchestrator/stream/attach/route-50b3fa7d503e745e.js +1 -0
  662. package/.next/static/chunks/app/api/orchestrator/stream/route-50b3fa7d503e745e.js +1 -0
  663. package/.next/static/chunks/app/api/orchestrator/upload/route-50b3fa7d503e745e.js +1 -0
  664. package/.next/static/chunks/app/api/org/route-50b3fa7d503e745e.js +1 -0
  665. package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-50b3fa7d503e745e.js +1 -0
  666. package/.next/static/chunks/app/api/orgs/[id]/invites/route-50b3fa7d503e745e.js +1 -0
  667. package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-50b3fa7d503e745e.js +1 -0
  668. package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-50b3fa7d503e745e.js +1 -0
  669. package/.next/static/chunks/app/api/orgs/[id]/members/route-50b3fa7d503e745e.js +1 -0
  670. package/.next/static/chunks/app/api/orgs/[id]/route-50b3fa7d503e745e.js +1 -0
  671. package/.next/static/chunks/app/api/orgs/invites/pending/route-50b3fa7d503e745e.js +1 -0
  672. package/.next/static/chunks/app/api/orgs/join/route-50b3fa7d503e745e.js +1 -0
  673. package/.next/static/chunks/app/api/orgs/join-complete/route-50b3fa7d503e745e.js +1 -0
  674. package/.next/static/chunks/app/api/orgs/route-50b3fa7d503e745e.js +1 -0
  675. package/.next/static/chunks/app/api/printing-press/clis/route-50b3fa7d503e745e.js +1 -0
  676. package/.next/static/chunks/app/api/printing-press/install/route-50b3fa7d503e745e.js +1 -0
  677. package/.next/static/chunks/app/api/printing-press/security-mode/route-50b3fa7d503e745e.js +1 -0
  678. package/.next/static/chunks/app/api/privacy/config/route-50b3fa7d503e745e.js +1 -0
  679. package/.next/static/chunks/app/api/privacy/verify/route-50b3fa7d503e745e.js +1 -0
  680. package/.next/static/chunks/app/api/processes/[id]/route-50b3fa7d503e745e.js +1 -0
  681. package/.next/static/chunks/app/api/processes/[id]/share-link/route-50b3fa7d503e745e.js +1 -0
  682. package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-50b3fa7d503e745e.js +1 -0
  683. package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-50b3fa7d503e745e.js +1 -0
  684. package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-50b3fa7d503e745e.js +1 -0
  685. package/.next/static/chunks/app/api/processes/definitions/[slug]/route-50b3fa7d503e745e.js +1 -0
  686. package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-50b3fa7d503e745e.js +1 -0
  687. package/.next/static/chunks/app/api/processes/definitions/route-50b3fa7d503e745e.js +1 -0
  688. package/.next/static/chunks/app/api/processes/definitions/validate/route-50b3fa7d503e745e.js +1 -0
  689. package/.next/static/chunks/app/api/processes/route-50b3fa7d503e745e.js +1 -0
  690. package/.next/static/chunks/app/api/processes/start-and-route/route-50b3fa7d503e745e.js +1 -0
  691. package/.next/static/chunks/app/api/projects/[slug]/library/route-50b3fa7d503e745e.js +1 -0
  692. package/.next/static/chunks/app/api/projects/[slug]/route-50b3fa7d503e745e.js +1 -0
  693. package/.next/static/chunks/app/api/projects/route-50b3fa7d503e745e.js +1 -0
  694. package/.next/static/chunks/app/api/runs/approve-claude-run/route-50b3fa7d503e745e.js +1 -0
  695. package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-50b3fa7d503e745e.js +1 -0
  696. package/.next/static/chunks/app/api/runs/competitor-report/route-50b3fa7d503e745e.js +1 -0
  697. package/.next/static/chunks/app/api/runs/engine-ping/route-50b3fa7d503e745e.js +1 -0
  698. package/.next/static/chunks/app/api/runs/marketing-plan/route-50b3fa7d503e745e.js +1 -0
  699. package/.next/static/chunks/app/api/schedules/upsert/route-50b3fa7d503e745e.js +1 -0
  700. package/.next/static/chunks/app/api/secrets/[name]/route-50b3fa7d503e745e.js +1 -0
  701. package/.next/static/chunks/app/api/secrets/route-50b3fa7d503e745e.js +1 -0
  702. package/.next/static/chunks/app/api/settings/trust-mode/route-50b3fa7d503e745e.js +1 -0
  703. package/.next/static/chunks/app/api/share/[token]/otp/route-50b3fa7d503e745e.js +1 -0
  704. package/.next/static/chunks/app/api/share/[token]/route-50b3fa7d503e745e.js +1 -0
  705. package/.next/static/chunks/app/api/share/[token]/verify/route-50b3fa7d503e745e.js +1 -0
  706. package/.next/static/chunks/app/api/share/space/[token]/otp/route-50b3fa7d503e745e.js +1 -0
  707. package/.next/static/chunks/app/api/share/space/[token]/route-50b3fa7d503e745e.js +1 -0
  708. package/.next/static/chunks/app/api/share/space/[token]/verify/route-50b3fa7d503e745e.js +1 -0
  709. package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-50b3fa7d503e745e.js +1 -0
  710. package/.next/static/chunks/app/api/shared/spaces/publish/route-50b3fa7d503e745e.js +1 -0
  711. package/.next/static/chunks/app/api/shared/spaces/route-50b3fa7d503e745e.js +1 -0
  712. package/.next/static/chunks/app/api/shared/spaces/status/route-50b3fa7d503e745e.js +1 -0
  713. package/.next/static/chunks/app/api/shared/spaces/unpublish/route-50b3fa7d503e745e.js +1 -0
  714. package/.next/static/chunks/app/api/state/route-50b3fa7d503e745e.js +1 -0
  715. package/.next/static/chunks/app/api/system/update/route-50b3fa7d503e745e.js +1 -0
  716. package/.next/static/chunks/app/api/tasks/[id]/active-run/route-50b3fa7d503e745e.js +1 -0
  717. package/.next/static/chunks/app/api/tasks/[id]/attachments/route-50b3fa7d503e745e.js +1 -0
  718. package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-50b3fa7d503e745e.js +1 -0
  719. package/.next/static/chunks/app/api/tasks/[id]/checklist/route-50b3fa7d503e745e.js +1 -0
  720. package/.next/static/chunks/app/api/tasks/[id]/checkout/route-50b3fa7d503e745e.js +1 -0
  721. package/.next/static/chunks/app/api/tasks/[id]/children/route-50b3fa7d503e745e.js +1 -0
  722. package/.next/static/chunks/app/api/tasks/[id]/comments/route-50b3fa7d503e745e.js +1 -0
  723. package/.next/static/chunks/app/api/tasks/[id]/events/route-50b3fa7d503e745e.js +1 -0
  724. package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-50b3fa7d503e745e.js +1 -0
  725. package/.next/static/chunks/app/api/tasks/[id]/release/route-50b3fa7d503e745e.js +1 -0
  726. package/.next/static/chunks/app/api/tasks/[id]/route-50b3fa7d503e745e.js +1 -0
  727. package/.next/static/chunks/app/api/tasks/route-50b3fa7d503e745e.js +1 -0
  728. package/.next/static/chunks/app/api/tool-allowlists/[id]/route-50b3fa7d503e745e.js +1 -0
  729. package/.next/static/chunks/app/api/tool-allowlists/route-50b3fa7d503e745e.js +1 -0
  730. package/.next/static/chunks/app/api/tool-egress/route-50b3fa7d503e745e.js +1 -0
  731. package/.next/static/chunks/app/api/tools/[name]/approve/route-50b3fa7d503e745e.js +1 -0
  732. package/.next/static/chunks/app/api/tools/[name]/route-50b3fa7d503e745e.js +1 -0
  733. package/.next/static/chunks/app/api/tools/route-50b3fa7d503e745e.js +1 -0
  734. package/.next/static/chunks/app/api/transcripts/route-50b3fa7d503e745e.js +1 -0
  735. package/.next/static/chunks/app/api/voice/providers/route-50b3fa7d503e745e.js +1 -0
  736. package/.next/static/chunks/app/api/voice/realtime/context/route-50b3fa7d503e745e.js +1 -0
  737. package/.next/static/chunks/app/api/voice/realtime/session/route-50b3fa7d503e745e.js +1 -0
  738. package/.next/static/chunks/app/api/voice/realtime/tool-result/route-50b3fa7d503e745e.js +1 -0
  739. package/.next/static/chunks/app/api/voice/realtime/tools/route-50b3fa7d503e745e.js +1 -0
  740. package/.next/static/chunks/app/api/voice/tts/route-50b3fa7d503e745e.js +1 -0
  741. package/.next/static/chunks/app/api/whatsapp/allowlist/route-50b3fa7d503e745e.js +1 -0
  742. package/.next/static/chunks/app/api/whatsapp/disconnect/route-50b3fa7d503e745e.js +1 -0
  743. package/.next/static/chunks/app/api/whatsapp/messages/route-50b3fa7d503e745e.js +1 -0
  744. package/.next/static/chunks/app/api/whatsapp/qr/route-50b3fa7d503e745e.js +1 -0
  745. package/.next/static/chunks/app/api/whatsapp/send/route-50b3fa7d503e745e.js +1 -0
  746. package/.next/static/chunks/app/api/whatsapp/status/route-50b3fa7d503e745e.js +1 -0
  747. package/.next/static/chunks/app/approvals/loading-50b3fa7d503e745e.js +1 -0
  748. package/.next/static/chunks/app/architecture/loading-50b3fa7d503e745e.js +1 -0
  749. package/.next/static/chunks/app/audit/loading-50b3fa7d503e745e.js +1 -0
  750. package/.next/static/chunks/app/brand/loading-50b3fa7d503e745e.js +1 -0
  751. package/.next/static/chunks/app/disk/loading-50b3fa7d503e745e.js +1 -0
  752. package/.next/static/chunks/app/federated-ai/loading-50b3fa7d503e745e.js +1 -0
  753. package/.next/static/chunks/app/help/loading-50b3fa7d503e745e.js +1 -0
  754. package/.next/static/chunks/app/layout-1fe56531c37a6849.js +1 -0
  755. package/.next/static/chunks/app/loading-50b3fa7d503e745e.js +1 -0
  756. package/.next/static/chunks/app/marketplace/loading-50b3fa7d503e745e.js +1 -0
  757. package/.next/static/chunks/app/missions/loading-50b3fa7d503e745e.js +1 -0
  758. package/.next/static/chunks/app/onboarding/loading-50b3fa7d503e745e.js +1 -0
  759. package/.next/static/chunks/app/org/loading-50b3fa7d503e745e.js +1 -0
  760. package/.next/static/chunks/app/projects/[slug]/loading-50b3fa7d503e745e.js +1 -0
  761. package/.next/static/chunks/app/projects/loading-50b3fa7d503e745e.js +1 -0
  762. package/.next/static/chunks/app/projects/page-8efb69f23edca22d.js +1 -0
  763. package/.next/static/chunks/app/reports/[file]/route-50b3fa7d503e745e.js +1 -0
  764. package/.next/static/chunks/app/reports/loading-50b3fa7d503e745e.js +1 -0
  765. package/.next/static/chunks/app/runtime/loading-50b3fa7d503e745e.js +1 -0
  766. package/.next/static/chunks/app/schedules/loading-50b3fa7d503e745e.js +1 -0
  767. package/.next/static/chunks/app/settings/loading-50b3fa7d503e745e.js +1 -0
  768. package/.next/static/chunks/app/settings/page-50b3fa7d503e745e.js +1 -0
  769. package/.next/static/chunks/app/tasks/[id]/loading-50b3fa7d503e745e.js +1 -0
  770. package/.next/static/chunks/app/tasks/loading-50b3fa7d503e745e.js +1 -0
  771. package/.next/static/chunks/app/tools/loading-50b3fa7d503e745e.js +1 -0
  772. package/.next/static/chunks/app/tools/page-50b3fa7d503e745e.js +1 -0
  773. package/.next/static/chunks/app/whatsapp/loading-50b3fa7d503e745e.js +1 -0
  774. package/.next/static/chunks/app/whatsapp/page-0a722b2ff89d8fb0.js +1 -0
  775. package/.next/static/chunks/app/workflows/share/[caseId]/page-50b3fa7d503e745e.js +1 -0
  776. package/.next/static/chunks/webpack-898ec578bfafc53f.js +1 -0
  777. package/CHANGELOG.md +14 -8
  778. package/ai-docs/api-surface.md +6 -2
  779. package/ai-docs/key-constraints.md +1 -1
  780. package/app/api/connectivity/allowlist/route.js +72 -0
  781. package/app/api/connectivity/smoke/route.js +40 -0
  782. package/app/api/connectivity/status/route.js +18 -0
  783. package/app/components/app-topbar.jsx +22 -13
  784. package/app/components/dashboard/config-panel.jsx +6 -6
  785. package/app/components/dashboard/whatsapp-section.jsx +85 -20
  786. package/app/whatsapp/page.js +4 -4
  787. package/lib/channel-allowlist.js +144 -0
  788. package/lib/channels/discord-adapter.js +117 -0
  789. package/lib/channels/imessage-adapter.js +106 -0
  790. package/lib/channels/index.js +40 -3
  791. package/lib/channels/signal-adapter.js +96 -0
  792. package/lib/channels/slack-adapter.js +86 -0
  793. package/lib/channels/smoke.js +36 -0
  794. package/lib/channels/telegram-adapter.js +89 -0
  795. package/lib/channels/webhook-adapter.js +64 -0
  796. package/lib/connectivity-status.js +110 -0
  797. package/lib/sandbox/index.js +334 -49
  798. package/lib/schema.js +11 -0
  799. package/lib/whatsapp-router.js +22 -12
  800. package/package.json +2 -1
  801. package/scripts/vreach-channel-smoke.mjs +105 -0
  802. package/.next/standalone/.next/server/chunks/8460.js +0 -1
  803. package/.next/standalone/.next/static/-RjcZjzMx7XdfCnofRZHf/_buildManifest.js +0 -1
  804. package/.next/standalone/.next/static/chunks/3168.9b96304f6b1d2346.js +0 -1
  805. package/.next/standalone/.next/static/chunks/4119-cfb6260557a0a3d2.js +0 -1
  806. package/.next/standalone/.next/static/chunks/app/activity/loading-330c75ad96940fb9.js +0 -1
  807. package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-330c75ad96940fb9.js +0 -1
  808. package/.next/standalone/.next/static/chunks/app/agents/loading-330c75ad96940fb9.js +0 -1
  809. package/.next/standalone/.next/static/chunks/app/api/activity/route-330c75ad96940fb9.js +0 -1
  810. package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-330c75ad96940fb9.js +0 -1
  811. package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-330c75ad96940fb9.js +0 -1
  812. package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-330c75ad96940fb9.js +0 -1
  813. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-330c75ad96940fb9.js +0 -1
  814. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-330c75ad96940fb9.js +0 -1
  815. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-330c75ad96940fb9.js +0 -1
  816. package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-330c75ad96940fb9.js +0 -1
  817. package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-330c75ad96940fb9.js +0 -1
  818. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-330c75ad96940fb9.js +0 -1
  819. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-330c75ad96940fb9.js +0 -1
  820. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-330c75ad96940fb9.js +0 -1
  821. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-330c75ad96940fb9.js +0 -1
  822. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-330c75ad96940fb9.js +0 -1
  823. package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-330c75ad96940fb9.js +0 -1
  824. package/.next/standalone/.next/static/chunks/app/api/agents/active-runs/route-330c75ad96940fb9.js +0 -1
  825. package/.next/standalone/.next/static/chunks/app/api/agents/create/route-330c75ad96940fb9.js +0 -1
  826. package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-330c75ad96940fb9.js +0 -1
  827. package/.next/standalone/.next/static/chunks/app/api/agents/resume-approval/route-330c75ad96940fb9.js +0 -1
  828. package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-330c75ad96940fb9.js +0 -1
  829. package/.next/standalone/.next/static/chunks/app/api/approvals/route-330c75ad96940fb9.js +0 -1
  830. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-330c75ad96940fb9.js +0 -1
  831. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-330c75ad96940fb9.js +0 -1
  832. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-330c75ad96940fb9.js +0 -1
  833. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-330c75ad96940fb9.js +0 -1
  834. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-330c75ad96940fb9.js +0 -1
  835. package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-330c75ad96940fb9.js +0 -1
  836. package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-330c75ad96940fb9.js +0 -1
  837. package/.next/standalone/.next/static/chunks/app/api/audit/list/route-330c75ad96940fb9.js +0 -1
  838. package/.next/standalone/.next/static/chunks/app/api/audit/search/route-330c75ad96940fb9.js +0 -1
  839. package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-330c75ad96940fb9.js +0 -1
  840. package/.next/standalone/.next/static/chunks/app/api/auth/config/route-330c75ad96940fb9.js +0 -1
  841. package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-330c75ad96940fb9.js +0 -1
  842. package/.next/standalone/.next/static/chunks/app/api/auth/session/route-330c75ad96940fb9.js +0 -1
  843. package/.next/standalone/.next/static/chunks/app/api/brand/route-330c75ad96940fb9.js +0 -1
  844. package/.next/standalone/.next/static/chunks/app/api/brand/share/route-330c75ad96940fb9.js +0 -1
  845. package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-330c75ad96940fb9.js +0 -1
  846. package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-330c75ad96940fb9.js +0 -1
  847. package/.next/standalone/.next/static/chunks/app/api/cloud/schema/route-330c75ad96940fb9.js +0 -1
  848. package/.next/standalone/.next/static/chunks/app/api/compliance/export/route-330c75ad96940fb9.js +0 -1
  849. package/.next/standalone/.next/static/chunks/app/api/config/env/route-330c75ad96940fb9.js +0 -1
  850. package/.next/standalone/.next/static/chunks/app/api/config/route-330c75ad96940fb9.js +0 -1
  851. package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-330c75ad96940fb9.js +0 -1
  852. package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-330c75ad96940fb9.js +0 -1
  853. package/.next/standalone/.next/static/chunks/app/api/connections/route-330c75ad96940fb9.js +0 -1
  854. package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-330c75ad96940fb9.js +0 -1
  855. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-330c75ad96940fb9.js +0 -1
  856. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-330c75ad96940fb9.js +0 -1
  857. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-330c75ad96940fb9.js +0 -1
  858. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-330c75ad96940fb9.js +0 -1
  859. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-330c75ad96940fb9.js +0 -1
  860. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/layout/route-330c75ad96940fb9.js +0 -1
  861. package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-330c75ad96940fb9.js +0 -1
  862. package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-330c75ad96940fb9.js +0 -1
  863. package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-330c75ad96940fb9.js +0 -1
  864. package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-330c75ad96940fb9.js +0 -1
  865. package/.next/standalone/.next/static/chunks/app/api/disk/files/route-330c75ad96940fb9.js +0 -1
  866. package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-330c75ad96940fb9.js +0 -1
  867. package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-330c75ad96940fb9.js +0 -1
  868. package/.next/standalone/.next/static/chunks/app/api/events/stream/route-330c75ad96940fb9.js +0 -1
  869. package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-330c75ad96940fb9.js +0 -1
  870. package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-330c75ad96940fb9.js +0 -1
  871. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-330c75ad96940fb9.js +0 -1
  872. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-330c75ad96940fb9.js +0 -1
  873. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-330c75ad96940fb9.js +0 -1
  874. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-330c75ad96940fb9.js +0 -1
  875. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-330c75ad96940fb9.js +0 -1
  876. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-330c75ad96940fb9.js +0 -1
  877. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-330c75ad96940fb9.js +0 -1
  878. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-330c75ad96940fb9.js +0 -1
  879. package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-330c75ad96940fb9.js +0 -1
  880. package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-330c75ad96940fb9.js +0 -1
  881. package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-330c75ad96940fb9.js +0 -1
  882. package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-330c75ad96940fb9.js +0 -1
  883. package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-330c75ad96940fb9.js +0 -1
  884. package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-330c75ad96940fb9.js +0 -1
  885. package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-330c75ad96940fb9.js +0 -1
  886. package/.next/standalone/.next/static/chunks/app/api/help/route-330c75ad96940fb9.js +0 -1
  887. package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-330c75ad96940fb9.js +0 -1
  888. package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-330c75ad96940fb9.js +0 -1
  889. package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-330c75ad96940fb9.js +0 -1
  890. package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-330c75ad96940fb9.js +0 -1
  891. package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-330c75ad96940fb9.js +0 -1
  892. package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-330c75ad96940fb9.js +0 -1
  893. package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-330c75ad96940fb9.js +0 -1
  894. package/.next/standalone/.next/static/chunks/app/api/marketplace/route-330c75ad96940fb9.js +0 -1
  895. package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-330c75ad96940fb9.js +0 -1
  896. package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-330c75ad96940fb9.js +0 -1
  897. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-330c75ad96940fb9.js +0 -1
  898. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-330c75ad96940fb9.js +0 -1
  899. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-330c75ad96940fb9.js +0 -1
  900. package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-330c75ad96940fb9.js +0 -1
  901. package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-330c75ad96940fb9.js +0 -1
  902. package/.next/standalone/.next/static/chunks/app/api/missions/route-330c75ad96940fb9.js +0 -1
  903. package/.next/standalone/.next/static/chunks/app/api/models/route-330c75ad96940fb9.js +0 -1
  904. package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-330c75ad96940fb9.js +0 -1
  905. package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-330c75ad96940fb9.js +0 -1
  906. package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-330c75ad96940fb9.js +0 -1
  907. package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/attach/route-330c75ad96940fb9.js +0 -1
  908. package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-330c75ad96940fb9.js +0 -1
  909. package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-330c75ad96940fb9.js +0 -1
  910. package/.next/standalone/.next/static/chunks/app/api/org/route-330c75ad96940fb9.js +0 -1
  911. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-330c75ad96940fb9.js +0 -1
  912. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-330c75ad96940fb9.js +0 -1
  913. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-330c75ad96940fb9.js +0 -1
  914. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-330c75ad96940fb9.js +0 -1
  915. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-330c75ad96940fb9.js +0 -1
  916. package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-330c75ad96940fb9.js +0 -1
  917. package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-330c75ad96940fb9.js +0 -1
  918. package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-330c75ad96940fb9.js +0 -1
  919. package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-330c75ad96940fb9.js +0 -1
  920. package/.next/standalone/.next/static/chunks/app/api/orgs/route-330c75ad96940fb9.js +0 -1
  921. package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-330c75ad96940fb9.js +0 -1
  922. package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-330c75ad96940fb9.js +0 -1
  923. package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-330c75ad96940fb9.js +0 -1
  924. package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-330c75ad96940fb9.js +0 -1
  925. package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-330c75ad96940fb9.js +0 -1
  926. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-330c75ad96940fb9.js +0 -1
  927. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-330c75ad96940fb9.js +0 -1
  928. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-330c75ad96940fb9.js +0 -1
  929. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-330c75ad96940fb9.js +0 -1
  930. package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-330c75ad96940fb9.js +0 -1
  931. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-330c75ad96940fb9.js +0 -1
  932. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-330c75ad96940fb9.js +0 -1
  933. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-330c75ad96940fb9.js +0 -1
  934. package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-330c75ad96940fb9.js +0 -1
  935. package/.next/standalone/.next/static/chunks/app/api/processes/route-330c75ad96940fb9.js +0 -1
  936. package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-330c75ad96940fb9.js +0 -1
  937. package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-330c75ad96940fb9.js +0 -1
  938. package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-330c75ad96940fb9.js +0 -1
  939. package/.next/standalone/.next/static/chunks/app/api/projects/route-330c75ad96940fb9.js +0 -1
  940. package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-330c75ad96940fb9.js +0 -1
  941. package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-330c75ad96940fb9.js +0 -1
  942. package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-330c75ad96940fb9.js +0 -1
  943. package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-330c75ad96940fb9.js +0 -1
  944. package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-330c75ad96940fb9.js +0 -1
  945. package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-330c75ad96940fb9.js +0 -1
  946. package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-330c75ad96940fb9.js +0 -1
  947. package/.next/standalone/.next/static/chunks/app/api/secrets/route-330c75ad96940fb9.js +0 -1
  948. package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-330c75ad96940fb9.js +0 -1
  949. package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-330c75ad96940fb9.js +0 -1
  950. package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-330c75ad96940fb9.js +0 -1
  951. package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-330c75ad96940fb9.js +0 -1
  952. package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-330c75ad96940fb9.js +0 -1
  953. package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-330c75ad96940fb9.js +0 -1
  954. package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-330c75ad96940fb9.js +0 -1
  955. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-330c75ad96940fb9.js +0 -1
  956. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-330c75ad96940fb9.js +0 -1
  957. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-330c75ad96940fb9.js +0 -1
  958. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-330c75ad96940fb9.js +0 -1
  959. package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-330c75ad96940fb9.js +0 -1
  960. package/.next/standalone/.next/static/chunks/app/api/state/route-330c75ad96940fb9.js +0 -1
  961. package/.next/standalone/.next/static/chunks/app/api/system/update/route-330c75ad96940fb9.js +0 -1
  962. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-330c75ad96940fb9.js +0 -1
  963. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-330c75ad96940fb9.js +0 -1
  964. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-330c75ad96940fb9.js +0 -1
  965. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-330c75ad96940fb9.js +0 -1
  966. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-330c75ad96940fb9.js +0 -1
  967. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-330c75ad96940fb9.js +0 -1
  968. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-330c75ad96940fb9.js +0 -1
  969. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-330c75ad96940fb9.js +0 -1
  970. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-330c75ad96940fb9.js +0 -1
  971. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-330c75ad96940fb9.js +0 -1
  972. package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-330c75ad96940fb9.js +0 -1
  973. package/.next/standalone/.next/static/chunks/app/api/tasks/route-330c75ad96940fb9.js +0 -1
  974. package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-330c75ad96940fb9.js +0 -1
  975. package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-330c75ad96940fb9.js +0 -1
  976. package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-330c75ad96940fb9.js +0 -1
  977. package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-330c75ad96940fb9.js +0 -1
  978. package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-330c75ad96940fb9.js +0 -1
  979. package/.next/standalone/.next/static/chunks/app/api/tools/route-330c75ad96940fb9.js +0 -1
  980. package/.next/standalone/.next/static/chunks/app/api/transcripts/route-330c75ad96940fb9.js +0 -1
  981. package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-330c75ad96940fb9.js +0 -1
  982. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-330c75ad96940fb9.js +0 -1
  983. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-330c75ad96940fb9.js +0 -1
  984. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-330c75ad96940fb9.js +0 -1
  985. package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-330c75ad96940fb9.js +0 -1
  986. package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-330c75ad96940fb9.js +0 -1
  987. package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-330c75ad96940fb9.js +0 -1
  988. package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-330c75ad96940fb9.js +0 -1
  989. package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-330c75ad96940fb9.js +0 -1
  990. package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-330c75ad96940fb9.js +0 -1
  991. package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-330c75ad96940fb9.js +0 -1
  992. package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-330c75ad96940fb9.js +0 -1
  993. package/.next/standalone/.next/static/chunks/app/approvals/loading-330c75ad96940fb9.js +0 -1
  994. package/.next/standalone/.next/static/chunks/app/architecture/loading-330c75ad96940fb9.js +0 -1
  995. package/.next/standalone/.next/static/chunks/app/audit/loading-330c75ad96940fb9.js +0 -1
  996. package/.next/standalone/.next/static/chunks/app/brand/loading-330c75ad96940fb9.js +0 -1
  997. package/.next/standalone/.next/static/chunks/app/disk/loading-330c75ad96940fb9.js +0 -1
  998. package/.next/standalone/.next/static/chunks/app/federated-ai/loading-330c75ad96940fb9.js +0 -1
  999. package/.next/standalone/.next/static/chunks/app/help/loading-330c75ad96940fb9.js +0 -1
  1000. package/.next/standalone/.next/static/chunks/app/layout-212e0d6723e7eb38.js +0 -1
  1001. package/.next/standalone/.next/static/chunks/app/loading-330c75ad96940fb9.js +0 -1
  1002. package/.next/standalone/.next/static/chunks/app/marketplace/loading-330c75ad96940fb9.js +0 -1
  1003. package/.next/standalone/.next/static/chunks/app/missions/loading-330c75ad96940fb9.js +0 -1
  1004. package/.next/standalone/.next/static/chunks/app/onboarding/loading-330c75ad96940fb9.js +0 -1
  1005. package/.next/standalone/.next/static/chunks/app/org/loading-330c75ad96940fb9.js +0 -1
  1006. package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-330c75ad96940fb9.js +0 -1
  1007. package/.next/standalone/.next/static/chunks/app/projects/loading-330c75ad96940fb9.js +0 -1
  1008. package/.next/standalone/.next/static/chunks/app/projects/page-4917c27caba276a2.js +0 -1
  1009. package/.next/standalone/.next/static/chunks/app/reports/[file]/route-330c75ad96940fb9.js +0 -1
  1010. package/.next/standalone/.next/static/chunks/app/reports/loading-330c75ad96940fb9.js +0 -1
  1011. package/.next/standalone/.next/static/chunks/app/runtime/loading-330c75ad96940fb9.js +0 -1
  1012. package/.next/standalone/.next/static/chunks/app/schedules/loading-330c75ad96940fb9.js +0 -1
  1013. package/.next/standalone/.next/static/chunks/app/settings/loading-330c75ad96940fb9.js +0 -1
  1014. package/.next/standalone/.next/static/chunks/app/settings/page-330c75ad96940fb9.js +0 -1
  1015. package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-330c75ad96940fb9.js +0 -1
  1016. package/.next/standalone/.next/static/chunks/app/tasks/loading-330c75ad96940fb9.js +0 -1
  1017. package/.next/standalone/.next/static/chunks/app/tools/loading-330c75ad96940fb9.js +0 -1
  1018. package/.next/standalone/.next/static/chunks/app/tools/page-330c75ad96940fb9.js +0 -1
  1019. package/.next/standalone/.next/static/chunks/app/whatsapp/loading-330c75ad96940fb9.js +0 -1
  1020. package/.next/standalone/.next/static/chunks/app/whatsapp/page-e68333286b73e532.js +0 -1
  1021. package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-330c75ad96940fb9.js +0 -1
  1022. package/.next/standalone/.next/static/chunks/webpack-70fa3d729cba3d69.js +0 -1
  1023. package/.next/static/-RjcZjzMx7XdfCnofRZHf/_buildManifest.js +0 -1
  1024. package/.next/static/chunks/3168.9b96304f6b1d2346.js +0 -1
  1025. package/.next/static/chunks/4119-cfb6260557a0a3d2.js +0 -1
  1026. package/.next/static/chunks/app/activity/loading-330c75ad96940fb9.js +0 -1
  1027. package/.next/static/chunks/app/agents/[id]/loading-330c75ad96940fb9.js +0 -1
  1028. package/.next/static/chunks/app/agents/loading-330c75ad96940fb9.js +0 -1
  1029. package/.next/static/chunks/app/api/activity/route-330c75ad96940fb9.js +0 -1
  1030. package/.next/static/chunks/app/api/admin/audit-export/route-330c75ad96940fb9.js +0 -1
  1031. package/.next/static/chunks/app/api/admin/share-links/route-330c75ad96940fb9.js +0 -1
  1032. package/.next/static/chunks/app/api/agent-memory/route-330c75ad96940fb9.js +0 -1
  1033. package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-330c75ad96940fb9.js +0 -1
  1034. package/.next/static/chunks/app/api/agent-runs/[id]/events/route-330c75ad96940fb9.js +0 -1
  1035. package/.next/static/chunks/app/api/agent-runs/[id]/log/route-330c75ad96940fb9.js +0 -1
  1036. package/.next/static/chunks/app/api/agent-runs/[id]/route-330c75ad96940fb9.js +0 -1
  1037. package/.next/static/chunks/app/api/agent-runs/route-330c75ad96940fb9.js +0 -1
  1038. package/.next/static/chunks/app/api/agents/[id]/active-run/route-330c75ad96940fb9.js +0 -1
  1039. package/.next/static/chunks/app/api/agents/[id]/chain/route-330c75ad96940fb9.js +0 -1
  1040. package/.next/static/chunks/app/api/agents/[id]/memory/route-330c75ad96940fb9.js +0 -1
  1041. package/.next/static/chunks/app/api/agents/[id]/reports/route-330c75ad96940fb9.js +0 -1
  1042. package/.next/static/chunks/app/api/agents/[id]/run/route-330c75ad96940fb9.js +0 -1
  1043. package/.next/static/chunks/app/api/agents/[id]/skills/route-330c75ad96940fb9.js +0 -1
  1044. package/.next/static/chunks/app/api/agents/active-runs/route-330c75ad96940fb9.js +0 -1
  1045. package/.next/static/chunks/app/api/agents/create/route-330c75ad96940fb9.js +0 -1
  1046. package/.next/static/chunks/app/api/agents/ops/route-330c75ad96940fb9.js +0 -1
  1047. package/.next/static/chunks/app/api/agents/resume-approval/route-330c75ad96940fb9.js +0 -1
  1048. package/.next/static/chunks/app/api/approvals/[id]/route-330c75ad96940fb9.js +0 -1
  1049. package/.next/static/chunks/app/api/approvals/route-330c75ad96940fb9.js +0 -1
  1050. package/.next/static/chunks/app/api/artifacts/[id]/acl/route-330c75ad96940fb9.js +0 -1
  1051. package/.next/static/chunks/app/api/artifacts/[id]/protect/route-330c75ad96940fb9.js +0 -1
  1052. package/.next/static/chunks/app/api/artifacts/[id]/raw/route-330c75ad96940fb9.js +0 -1
  1053. package/.next/static/chunks/app/api/artifacts/[id]/route-330c75ad96940fb9.js +0 -1
  1054. package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-330c75ad96940fb9.js +0 -1
  1055. package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-330c75ad96940fb9.js +0 -1
  1056. package/.next/static/chunks/app/api/artifacts/upload/route-330c75ad96940fb9.js +0 -1
  1057. package/.next/static/chunks/app/api/audit/list/route-330c75ad96940fb9.js +0 -1
  1058. package/.next/static/chunks/app/api/audit/search/route-330c75ad96940fb9.js +0 -1
  1059. package/.next/static/chunks/app/api/auth/callback/route-330c75ad96940fb9.js +0 -1
  1060. package/.next/static/chunks/app/api/auth/config/route-330c75ad96940fb9.js +0 -1
  1061. package/.next/static/chunks/app/api/auth/join-bootstrap/route-330c75ad96940fb9.js +0 -1
  1062. package/.next/static/chunks/app/api/auth/session/route-330c75ad96940fb9.js +0 -1
  1063. package/.next/static/chunks/app/api/brand/route-330c75ad96940fb9.js +0 -1
  1064. package/.next/static/chunks/app/api/brand/share/route-330c75ad96940fb9.js +0 -1
  1065. package/.next/static/chunks/app/api/chat/sessions/[id]/route-330c75ad96940fb9.js +0 -1
  1066. package/.next/static/chunks/app/api/chat/sessions/route-330c75ad96940fb9.js +0 -1
  1067. package/.next/static/chunks/app/api/cloud/schema/route-330c75ad96940fb9.js +0 -1
  1068. package/.next/static/chunks/app/api/compliance/export/route-330c75ad96940fb9.js +0 -1
  1069. package/.next/static/chunks/app/api/config/env/route-330c75ad96940fb9.js +0 -1
  1070. package/.next/static/chunks/app/api/config/route-330c75ad96940fb9.js +0 -1
  1071. package/.next/static/chunks/app/api/connections/[service]/route-330c75ad96940fb9.js +0 -1
  1072. package/.next/static/chunks/app/api/connections/[service]/verify/route-330c75ad96940fb9.js +0 -1
  1073. package/.next/static/chunks/app/api/connections/route-330c75ad96940fb9.js +0 -1
  1074. package/.next/static/chunks/app/api/cron/tick/route-330c75ad96940fb9.js +0 -1
  1075. package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-330c75ad96940fb9.js +0 -1
  1076. package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-330c75ad96940fb9.js +0 -1
  1077. package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-330c75ad96940fb9.js +0 -1
  1078. package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-330c75ad96940fb9.js +0 -1
  1079. package/.next/static/chunks/app/api/dashboard/spaces/import/route-330c75ad96940fb9.js +0 -1
  1080. package/.next/static/chunks/app/api/dashboard/spaces/layout/route-330c75ad96940fb9.js +0 -1
  1081. package/.next/static/chunks/app/api/dashboard/spaces/route-330c75ad96940fb9.js +0 -1
  1082. package/.next/static/chunks/app/api/disk/files/[id]/blob/route-330c75ad96940fb9.js +0 -1
  1083. package/.next/static/chunks/app/api/disk/files/[id]/route-330c75ad96940fb9.js +0 -1
  1084. package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-330c75ad96940fb9.js +0 -1
  1085. package/.next/static/chunks/app/api/disk/files/route-330c75ad96940fb9.js +0 -1
  1086. package/.next/static/chunks/app/api/disk/folders/route-330c75ad96940fb9.js +0 -1
  1087. package/.next/static/chunks/app/api/events/since/[cursor]/route-330c75ad96940fb9.js +0 -1
  1088. package/.next/static/chunks/app/api/events/stream/route-330c75ad96940fb9.js +0 -1
  1089. package/.next/static/chunks/app/api/fs/create-folder/route-330c75ad96940fb9.js +0 -1
  1090. package/.next/static/chunks/app/api/fs/pick-folder/route-330c75ad96940fb9.js +0 -1
  1091. package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-330c75ad96940fb9.js +0 -1
  1092. package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-330c75ad96940fb9.js +0 -1
  1093. package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-330c75ad96940fb9.js +0 -1
  1094. package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-330c75ad96940fb9.js +0 -1
  1095. package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-330c75ad96940fb9.js +0 -1
  1096. package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-330c75ad96940fb9.js +0 -1
  1097. package/.next/static/chunks/app/api/hail/engagements/[id]/route-330c75ad96940fb9.js +0 -1
  1098. package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-330c75ad96940fb9.js +0 -1
  1099. package/.next/static/chunks/app/api/hail/engagements/route-330c75ad96940fb9.js +0 -1
  1100. package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-330c75ad96940fb9.js +0 -1
  1101. package/.next/static/chunks/app/api/hail/interviews/[id]/route-330c75ad96940fb9.js +0 -1
  1102. package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-330c75ad96940fb9.js +0 -1
  1103. package/.next/static/chunks/app/api/hail/setup-packages/validate/route-330c75ad96940fb9.js +0 -1
  1104. package/.next/static/chunks/app/api/heartbeat/tick/route-330c75ad96940fb9.js +0 -1
  1105. package/.next/static/chunks/app/api/heartbeat/worker/route-330c75ad96940fb9.js +0 -1
  1106. package/.next/static/chunks/app/api/help/route-330c75ad96940fb9.js +0 -1
  1107. package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-330c75ad96940fb9.js +0 -1
  1108. package/.next/static/chunks/app/api/hermes/jobs/[id]/route-330c75ad96940fb9.js +0 -1
  1109. package/.next/static/chunks/app/api/hermes/jobs/route-330c75ad96940fb9.js +0 -1
  1110. package/.next/static/chunks/app/api/integrations/google/callback/route-330c75ad96940fb9.js +0 -1
  1111. package/.next/static/chunks/app/api/integrations/google/oauth/route-330c75ad96940fb9.js +0 -1
  1112. package/.next/static/chunks/app/api/marketplace/[id]/route-330c75ad96940fb9.js +0 -1
  1113. package/.next/static/chunks/app/api/marketplace/open-design/route-330c75ad96940fb9.js +0 -1
  1114. package/.next/static/chunks/app/api/marketplace/route-330c75ad96940fb9.js +0 -1
  1115. package/.next/static/chunks/app/api/mines/import-roots/route-330c75ad96940fb9.js +0 -1
  1116. package/.next/static/chunks/app/api/mines/portfolio/route-330c75ad96940fb9.js +0 -1
  1117. package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-330c75ad96940fb9.js +0 -1
  1118. package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-330c75ad96940fb9.js +0 -1
  1119. package/.next/static/chunks/app/api/mines/projects/[id]/import/route-330c75ad96940fb9.js +0 -1
  1120. package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-330c75ad96940fb9.js +0 -1
  1121. package/.next/static/chunks/app/api/mines/projects/route-330c75ad96940fb9.js +0 -1
  1122. package/.next/static/chunks/app/api/missions/route-330c75ad96940fb9.js +0 -1
  1123. package/.next/static/chunks/app/api/models/route-330c75ad96940fb9.js +0 -1
  1124. package/.next/static/chunks/app/api/onboarding/blueprint/route-330c75ad96940fb9.js +0 -1
  1125. package/.next/static/chunks/app/api/onboarding/launch/route-330c75ad96940fb9.js +0 -1
  1126. package/.next/static/chunks/app/api/orchestrator/command/route-330c75ad96940fb9.js +0 -1
  1127. package/.next/static/chunks/app/api/orchestrator/stream/attach/route-330c75ad96940fb9.js +0 -1
  1128. package/.next/static/chunks/app/api/orchestrator/stream/route-330c75ad96940fb9.js +0 -1
  1129. package/.next/static/chunks/app/api/orchestrator/upload/route-330c75ad96940fb9.js +0 -1
  1130. package/.next/static/chunks/app/api/org/route-330c75ad96940fb9.js +0 -1
  1131. package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-330c75ad96940fb9.js +0 -1
  1132. package/.next/static/chunks/app/api/orgs/[id]/invites/route-330c75ad96940fb9.js +0 -1
  1133. package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-330c75ad96940fb9.js +0 -1
  1134. package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-330c75ad96940fb9.js +0 -1
  1135. package/.next/static/chunks/app/api/orgs/[id]/members/route-330c75ad96940fb9.js +0 -1
  1136. package/.next/static/chunks/app/api/orgs/[id]/route-330c75ad96940fb9.js +0 -1
  1137. package/.next/static/chunks/app/api/orgs/invites/pending/route-330c75ad96940fb9.js +0 -1
  1138. package/.next/static/chunks/app/api/orgs/join/route-330c75ad96940fb9.js +0 -1
  1139. package/.next/static/chunks/app/api/orgs/join-complete/route-330c75ad96940fb9.js +0 -1
  1140. package/.next/static/chunks/app/api/orgs/route-330c75ad96940fb9.js +0 -1
  1141. package/.next/static/chunks/app/api/printing-press/clis/route-330c75ad96940fb9.js +0 -1
  1142. package/.next/static/chunks/app/api/printing-press/install/route-330c75ad96940fb9.js +0 -1
  1143. package/.next/static/chunks/app/api/printing-press/security-mode/route-330c75ad96940fb9.js +0 -1
  1144. package/.next/static/chunks/app/api/privacy/config/route-330c75ad96940fb9.js +0 -1
  1145. package/.next/static/chunks/app/api/privacy/verify/route-330c75ad96940fb9.js +0 -1
  1146. package/.next/static/chunks/app/api/processes/[id]/route-330c75ad96940fb9.js +0 -1
  1147. package/.next/static/chunks/app/api/processes/[id]/share-link/route-330c75ad96940fb9.js +0 -1
  1148. package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-330c75ad96940fb9.js +0 -1
  1149. package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-330c75ad96940fb9.js +0 -1
  1150. package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-330c75ad96940fb9.js +0 -1
  1151. package/.next/static/chunks/app/api/processes/definitions/[slug]/route-330c75ad96940fb9.js +0 -1
  1152. package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-330c75ad96940fb9.js +0 -1
  1153. package/.next/static/chunks/app/api/processes/definitions/route-330c75ad96940fb9.js +0 -1
  1154. package/.next/static/chunks/app/api/processes/definitions/validate/route-330c75ad96940fb9.js +0 -1
  1155. package/.next/static/chunks/app/api/processes/route-330c75ad96940fb9.js +0 -1
  1156. package/.next/static/chunks/app/api/processes/start-and-route/route-330c75ad96940fb9.js +0 -1
  1157. package/.next/static/chunks/app/api/projects/[slug]/library/route-330c75ad96940fb9.js +0 -1
  1158. package/.next/static/chunks/app/api/projects/[slug]/route-330c75ad96940fb9.js +0 -1
  1159. package/.next/static/chunks/app/api/projects/route-330c75ad96940fb9.js +0 -1
  1160. package/.next/static/chunks/app/api/runs/approve-claude-run/route-330c75ad96940fb9.js +0 -1
  1161. package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-330c75ad96940fb9.js +0 -1
  1162. package/.next/static/chunks/app/api/runs/competitor-report/route-330c75ad96940fb9.js +0 -1
  1163. package/.next/static/chunks/app/api/runs/engine-ping/route-330c75ad96940fb9.js +0 -1
  1164. package/.next/static/chunks/app/api/runs/marketing-plan/route-330c75ad96940fb9.js +0 -1
  1165. package/.next/static/chunks/app/api/schedules/upsert/route-330c75ad96940fb9.js +0 -1
  1166. package/.next/static/chunks/app/api/secrets/[name]/route-330c75ad96940fb9.js +0 -1
  1167. package/.next/static/chunks/app/api/secrets/route-330c75ad96940fb9.js +0 -1
  1168. package/.next/static/chunks/app/api/settings/trust-mode/route-330c75ad96940fb9.js +0 -1
  1169. package/.next/static/chunks/app/api/share/[token]/otp/route-330c75ad96940fb9.js +0 -1
  1170. package/.next/static/chunks/app/api/share/[token]/route-330c75ad96940fb9.js +0 -1
  1171. package/.next/static/chunks/app/api/share/[token]/verify/route-330c75ad96940fb9.js +0 -1
  1172. package/.next/static/chunks/app/api/share/space/[token]/otp/route-330c75ad96940fb9.js +0 -1
  1173. package/.next/static/chunks/app/api/share/space/[token]/route-330c75ad96940fb9.js +0 -1
  1174. package/.next/static/chunks/app/api/share/space/[token]/verify/route-330c75ad96940fb9.js +0 -1
  1175. package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-330c75ad96940fb9.js +0 -1
  1176. package/.next/static/chunks/app/api/shared/spaces/publish/route-330c75ad96940fb9.js +0 -1
  1177. package/.next/static/chunks/app/api/shared/spaces/route-330c75ad96940fb9.js +0 -1
  1178. package/.next/static/chunks/app/api/shared/spaces/status/route-330c75ad96940fb9.js +0 -1
  1179. package/.next/static/chunks/app/api/shared/spaces/unpublish/route-330c75ad96940fb9.js +0 -1
  1180. package/.next/static/chunks/app/api/state/route-330c75ad96940fb9.js +0 -1
  1181. package/.next/static/chunks/app/api/system/update/route-330c75ad96940fb9.js +0 -1
  1182. package/.next/static/chunks/app/api/tasks/[id]/active-run/route-330c75ad96940fb9.js +0 -1
  1183. package/.next/static/chunks/app/api/tasks/[id]/attachments/route-330c75ad96940fb9.js +0 -1
  1184. package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-330c75ad96940fb9.js +0 -1
  1185. package/.next/static/chunks/app/api/tasks/[id]/checklist/route-330c75ad96940fb9.js +0 -1
  1186. package/.next/static/chunks/app/api/tasks/[id]/checkout/route-330c75ad96940fb9.js +0 -1
  1187. package/.next/static/chunks/app/api/tasks/[id]/children/route-330c75ad96940fb9.js +0 -1
  1188. package/.next/static/chunks/app/api/tasks/[id]/comments/route-330c75ad96940fb9.js +0 -1
  1189. package/.next/static/chunks/app/api/tasks/[id]/events/route-330c75ad96940fb9.js +0 -1
  1190. package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-330c75ad96940fb9.js +0 -1
  1191. package/.next/static/chunks/app/api/tasks/[id]/release/route-330c75ad96940fb9.js +0 -1
  1192. package/.next/static/chunks/app/api/tasks/[id]/route-330c75ad96940fb9.js +0 -1
  1193. package/.next/static/chunks/app/api/tasks/route-330c75ad96940fb9.js +0 -1
  1194. package/.next/static/chunks/app/api/tool-allowlists/[id]/route-330c75ad96940fb9.js +0 -1
  1195. package/.next/static/chunks/app/api/tool-allowlists/route-330c75ad96940fb9.js +0 -1
  1196. package/.next/static/chunks/app/api/tool-egress/route-330c75ad96940fb9.js +0 -1
  1197. package/.next/static/chunks/app/api/tools/[name]/approve/route-330c75ad96940fb9.js +0 -1
  1198. package/.next/static/chunks/app/api/tools/[name]/route-330c75ad96940fb9.js +0 -1
  1199. package/.next/static/chunks/app/api/tools/route-330c75ad96940fb9.js +0 -1
  1200. package/.next/static/chunks/app/api/transcripts/route-330c75ad96940fb9.js +0 -1
  1201. package/.next/static/chunks/app/api/voice/providers/route-330c75ad96940fb9.js +0 -1
  1202. package/.next/static/chunks/app/api/voice/realtime/context/route-330c75ad96940fb9.js +0 -1
  1203. package/.next/static/chunks/app/api/voice/realtime/session/route-330c75ad96940fb9.js +0 -1
  1204. package/.next/static/chunks/app/api/voice/realtime/tool-result/route-330c75ad96940fb9.js +0 -1
  1205. package/.next/static/chunks/app/api/voice/realtime/tools/route-330c75ad96940fb9.js +0 -1
  1206. package/.next/static/chunks/app/api/voice/tts/route-330c75ad96940fb9.js +0 -1
  1207. package/.next/static/chunks/app/api/whatsapp/allowlist/route-330c75ad96940fb9.js +0 -1
  1208. package/.next/static/chunks/app/api/whatsapp/disconnect/route-330c75ad96940fb9.js +0 -1
  1209. package/.next/static/chunks/app/api/whatsapp/messages/route-330c75ad96940fb9.js +0 -1
  1210. package/.next/static/chunks/app/api/whatsapp/qr/route-330c75ad96940fb9.js +0 -1
  1211. package/.next/static/chunks/app/api/whatsapp/send/route-330c75ad96940fb9.js +0 -1
  1212. package/.next/static/chunks/app/api/whatsapp/status/route-330c75ad96940fb9.js +0 -1
  1213. package/.next/static/chunks/app/approvals/loading-330c75ad96940fb9.js +0 -1
  1214. package/.next/static/chunks/app/architecture/loading-330c75ad96940fb9.js +0 -1
  1215. package/.next/static/chunks/app/audit/loading-330c75ad96940fb9.js +0 -1
  1216. package/.next/static/chunks/app/brand/loading-330c75ad96940fb9.js +0 -1
  1217. package/.next/static/chunks/app/disk/loading-330c75ad96940fb9.js +0 -1
  1218. package/.next/static/chunks/app/federated-ai/loading-330c75ad96940fb9.js +0 -1
  1219. package/.next/static/chunks/app/help/loading-330c75ad96940fb9.js +0 -1
  1220. package/.next/static/chunks/app/layout-212e0d6723e7eb38.js +0 -1
  1221. package/.next/static/chunks/app/loading-330c75ad96940fb9.js +0 -1
  1222. package/.next/static/chunks/app/marketplace/loading-330c75ad96940fb9.js +0 -1
  1223. package/.next/static/chunks/app/missions/loading-330c75ad96940fb9.js +0 -1
  1224. package/.next/static/chunks/app/onboarding/loading-330c75ad96940fb9.js +0 -1
  1225. package/.next/static/chunks/app/org/loading-330c75ad96940fb9.js +0 -1
  1226. package/.next/static/chunks/app/projects/[slug]/loading-330c75ad96940fb9.js +0 -1
  1227. package/.next/static/chunks/app/projects/loading-330c75ad96940fb9.js +0 -1
  1228. package/.next/static/chunks/app/projects/page-4917c27caba276a2.js +0 -1
  1229. package/.next/static/chunks/app/reports/[file]/route-330c75ad96940fb9.js +0 -1
  1230. package/.next/static/chunks/app/reports/loading-330c75ad96940fb9.js +0 -1
  1231. package/.next/static/chunks/app/runtime/loading-330c75ad96940fb9.js +0 -1
  1232. package/.next/static/chunks/app/schedules/loading-330c75ad96940fb9.js +0 -1
  1233. package/.next/static/chunks/app/settings/loading-330c75ad96940fb9.js +0 -1
  1234. package/.next/static/chunks/app/settings/page-330c75ad96940fb9.js +0 -1
  1235. package/.next/static/chunks/app/tasks/[id]/loading-330c75ad96940fb9.js +0 -1
  1236. package/.next/static/chunks/app/tasks/loading-330c75ad96940fb9.js +0 -1
  1237. package/.next/static/chunks/app/tools/loading-330c75ad96940fb9.js +0 -1
  1238. package/.next/static/chunks/app/tools/page-330c75ad96940fb9.js +0 -1
  1239. package/.next/static/chunks/app/whatsapp/loading-330c75ad96940fb9.js +0 -1
  1240. package/.next/static/chunks/app/whatsapp/page-e68333286b73e532.js +0 -1
  1241. package/.next/static/chunks/app/workflows/share/[caseId]/page-330c75ad96940fb9.js +0 -1
  1242. package/.next/static/chunks/webpack-70fa3d729cba3d69.js +0 -1
  1243. /package/.next/standalone/.next/static/{-RjcZjzMx7XdfCnofRZHf → DolrPgGSY-J2Mq_5nw2iX}/_ssgManifest.js +0 -0
  1244. /package/.next/static/{-RjcZjzMx7XdfCnofRZHf → DolrPgGSY-J2Mq_5nw2iX}/_ssgManifest.js +0 -0
@@ -25,12 +25,24 @@
25
25
  // 4. (R4) A real, EXPLICITLY OPT-IN docker execution helper:
26
26
  // `executeSandboxedSpawn` actually spawns `docker run` — but only when
27
27
  // `MADARX_SANDBOX_LIVE_DOCKER` is enabled. Otherwise it refuses clearly and
28
- // returns the inspectable plan without spawning. SSH/local backends remain
29
- // deferred stubs that refuse rather than run unconfined.
28
+ // returns the inspectable plan without spawning.
29
+ // 5. (R4) A production-safe, EXPLICITLY OPT-IN SSH execution backend. The plan
30
+ // builder `buildSshExecSpec` is pure + deterministic: it produces an `ssh`
31
+ // argv plus a hardened remote shell command (host absolute CLI paths
32
+ // normalized to a basename, only sanitized env exported on the remote, PATH
33
+ // dropped so the remote's own PATH applies). A real SSH command is only ever
34
+ // produced/run when ALL of these hold: `MADARX_SANDBOX_LIVE_SSH` is on AND a
35
+ // host + user are configured. Missing any of these → a deferred refusal stub
36
+ // (no unconfined host fallback). The `local` backend is intentionally never
37
+ // wired — it cannot confine on the host — and stays a refusal stub.
38
+ // 6. (R4) Richer artifact/sync-back metadata via `describeArtifactSync`:
39
+ // deterministic, backend-aware description of how files written by a run are
40
+ // recovered (docker bind-mount cache vs. operator-driven scp from the remote
41
+ // SSH workdir).
30
42
  //
31
43
  // Spec building stays pure + deterministic so it can be unit-tested without ever
32
- // invoking docker; `executeSandboxedSpawn` lazy-imports node:child_process and
33
- // only runs behind the live flag.
44
+ // invoking docker or ssh; `executeSandboxedSpawn` lazy-imports
45
+ // node:child_process and only runs behind the matching live flag.
34
46
 
35
47
  import path from 'node:path';
36
48
 
@@ -41,6 +53,12 @@ export const SANDBOX_BACKENDS = ['docker', 'ssh', 'local'];
41
53
  const DEFAULT_IMAGE = 'madarx/sandbox:latest';
42
54
  const DEFAULT_WORKDIR = '/sandbox';
43
55
 
56
+ // R4 SSH backend defaults. The remote workdir is a dedicated scratch dir, not a
57
+ // home/system path; artifacts land in a fixed subdir under it for sync-back.
58
+ const DEFAULT_SSH_PORT = 22;
59
+ const DEFAULT_SSH_WORKDIR = '/tmp/madarx-sandbox';
60
+ export const SSH_ARTIFACT_SUBDIR = 'artifacts';
61
+
44
62
  // Container-side mount targets. The artifact dir is the agent's only writable
45
63
  // host-backed path; the auth dir (if any) is read-only.
46
64
  export const ARTIFACT_CONTAINER_DIR = '/sandbox/artifacts';
@@ -71,6 +89,19 @@ function containerCommandName(command) {
71
89
  return parts.length ? parts[parts.length - 1] : value;
72
90
  }
73
91
 
92
+ // POSIX single-quote a string for safe embedding in a remote shell command:
93
+ // wrap in single quotes and escape any embedded single quote as '\''. Prevents
94
+ // argument/command injection through the SSH remote command string.
95
+ /** @param {unknown} s */
96
+ function shellQuote(s) {
97
+ return `'${String(s ?? '').replace(/'/g, `'\\''`)}'`;
98
+ }
99
+
100
+ // Only well-formed shell identifier names may be exported via `env NAME=val` on
101
+ // the remote — a defensive guard so a hostile/odd env key can't smuggle shell
102
+ // syntax into the remote command.
103
+ const ENV_NAME_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
104
+
74
105
  // Keys whose NAME signals a credential. Matches the canonical S2 set
75
106
  // (KEY / TOKEN / SECRET / PASSWORD) plus the common spellings. Case-insensitive.
76
107
  const SECRET_KEY_RE = /(?:KEY|TOKEN|SECRET|PASSWORD|PASSWD|CREDENTIAL)/i;
@@ -93,7 +124,7 @@ function pick(value, allowed, fallback) {
93
124
  * env wins over built-in defaults. Unknown / junk values fall back to the safe
94
125
  * default (mode "off"), never throw.
95
126
  *
96
- * @param {{ mode?: string, scope?: string, backend?: string, image?: string, network?: string, workdir?: string, agentId?: string, liveDocker?: boolean|string, artifactDir?: string, authDir?: string }} [opts]
127
+ * @param {{ mode?: string, scope?: string, backend?: string, image?: string, network?: string, workdir?: string, agentId?: string, liveDocker?: boolean|string, artifactDir?: string, authDir?: string, liveSsh?: boolean|string, sshHost?: string, sshUser?: string, sshPort?: string|number, sshWorkdir?: string }} [opts]
97
128
  * @param {{ env?: Record<string, string|undefined> }} [ctx]
98
129
  */
99
130
  export function buildSandboxConfig(opts = {}, ctx = {}) {
@@ -114,7 +145,22 @@ export function buildSandboxConfig(opts = {}, ctx = {}) {
114
145
  // (ro). Null when unset → no host FS mount at all (S2 default-deny preserved).
115
146
  const artifactDir = String(opts.artifactDir ?? env.MADARX_SANDBOX_ARTIFACT_DIR ?? '').trim() || null;
116
147
  const authDir = String(opts.authDir ?? env.MADARX_SANDBOX_AUTH_DIR ?? '').trim() || null;
117
- return { mode, scope, backend, image, network, workdir, agentId: opts.agentId || null, liveDocker, artifactDir, authDir };
148
+ // R4 SSH backend: real SSH execution is a SEPARATE opt-in from confinement
149
+ // mode, gated by its OWN live flag. Even with backend "ssh" + host/user set,
150
+ // no SSH command is produced or run unless `liveSsh` is also on. Host/user
151
+ // null when unset → the backend stays a deferred refusal stub (never an
152
+ // unconfined host fallback).
153
+ const liveSsh = truthyFlag(opts.liveSsh ?? env.MADARX_SANDBOX_LIVE_SSH);
154
+ const sshHost = String(opts.sshHost ?? env.MADARX_SANDBOX_SSH_HOST ?? '').trim() || null;
155
+ const sshUser = String(opts.sshUser ?? env.MADARX_SANDBOX_SSH_USER ?? '').trim() || null;
156
+ const sshPortRaw = String(opts.sshPort ?? env.MADARX_SANDBOX_SSH_PORT ?? '').trim();
157
+ const sshPort = /^\d+$/.test(sshPortRaw) ? Number(sshPortRaw) : DEFAULT_SSH_PORT;
158
+ const sshWorkdir = String(opts.sshWorkdir ?? env.MADARX_SANDBOX_SSH_WORKDIR ?? '').trim() || DEFAULT_SSH_WORKDIR;
159
+ return {
160
+ mode, scope, backend, image, network, workdir, agentId: opts.agentId || null,
161
+ liveDocker, artifactDir, authDir,
162
+ liveSsh, sshHost, sshUser, sshPort, sshWorkdir,
163
+ };
118
164
  }
119
165
 
120
166
  /**
@@ -266,6 +312,140 @@ export function buildDockerExecSpec({ config, command, args = [], env = {}, name
266
312
  return { command: 'docker', args: dockerArgs, image: cfg.image, containerEnv, dropped, rejected, mounts };
267
313
  }
268
314
 
315
+ /**
316
+ * Whether a config has the minimum SSH connection details (host + user).
317
+ * @param {ReturnType<typeof buildSandboxConfig>|null|undefined} cfg
318
+ */
319
+ export function sshConfigPresent(cfg) {
320
+ return Boolean(cfg && cfg.sshHost && cfg.sshUser);
321
+ }
322
+
323
+ /**
324
+ * Build the hardened REMOTE shell command run over SSH. It:
325
+ * - `cd`s into the dedicated remote workdir (created defensively with mkdir -p),
326
+ * - exports ONLY the sanitized env (secret-bearing + LD_/DYLD_ already stripped;
327
+ * PATH dropped so the remote's own PATH is used),
328
+ * - execs the command by BASENAME (a host absolute CLI path never reaches the
329
+ * remote), with every token POSIX-quoted.
330
+ * Pure + deterministic.
331
+ *
332
+ * @param {{ workdir: string, env: Record<string,string>, command: string, args: string[] }} p
333
+ */
334
+ function buildRemoteShellCommand({ workdir, env, command, args }) {
335
+ const artifactDir = `${String(workdir).replace(/\/+$/, '')}/${SSH_ARTIFACT_SUBDIR}`;
336
+ const parts = [];
337
+ parts.push('mkdir', '-p', shellQuote(workdir), shellQuote(artifactDir), '&&');
338
+ parts.push('cd', shellQuote(workdir), '&&');
339
+ parts.push('exec', 'env');
340
+ for (const [k, v] of Object.entries(env)) {
341
+ if (!ENV_NAME_RE.test(k)) continue; // skip non-identifier keys defensively
342
+ parts.push(`${k}=${shellQuote(v)}`);
343
+ }
344
+ parts.push(shellQuote(command), ...args.map(shellQuote));
345
+ return parts.join(' ');
346
+ }
347
+
348
+ /**
349
+ * Build a deterministic `ssh` exec spec that runs `command args` on a remote host
350
+ * with the same env-hygiene + no-host-path guarantees as the docker backend. The
351
+ * connection is non-interactive (`BatchMode=yes` → key-based only, never prompts
352
+ * for a password), with host-key TOFU (`accept-new`) and a bounded connect
353
+ * timeout. Pure — does NOT spawn ssh (that is `executeSandboxedSpawn`).
354
+ *
355
+ * Requires host + user in the config; throws (fail-loud) otherwise. The live
356
+ * flag is NOT consulted here — gating lives in `buildSandboxedSpawnPlan` /
357
+ * `executeSandboxedSpawn` so this builder stays purely deterministic + testable.
358
+ *
359
+ * @param {{ config?: ReturnType<typeof buildSandboxConfig>, command?: string, args?: string[], env?: Record<string,string|undefined> }} [params]
360
+ * @returns {{ command: 'ssh', args: string[], target: string, remoteCommand: string, remoteEnv: Record<string,string>, dropped: string[], rejected: string[], workdir: string }}
361
+ */
362
+ export function buildSshExecSpec({ config, command, args = [], env = {} } = {}) {
363
+ if (!command) throw new Error('buildSshExecSpec: command is required');
364
+ const cfg = config || buildSandboxConfig();
365
+ if (!cfg.sshHost || !cfg.sshUser) {
366
+ throw new Error('buildSshExecSpec: SSH host and user are required (set MADARX_SANDBOX_SSH_HOST / MADARX_SANDBOX_SSH_USER)');
367
+ }
368
+ // dropPath: the remote uses its own PATH; we never forward the host PATH or any
369
+ // secret-bearing / linker-override var.
370
+ const { env: remoteEnv, dropped, rejected } = sanitizeChildEnv(env, { dropPath: true });
371
+ const workdir = cfg.sshWorkdir || DEFAULT_SSH_WORKDIR;
372
+ const remoteCommand = buildRemoteShellCommand({
373
+ workdir,
374
+ env: remoteEnv,
375
+ command: containerCommandName(command), // basename only — no host absolute path
376
+ args,
377
+ });
378
+ const target = `${cfg.sshUser}@${cfg.sshHost}`;
379
+ const sshArgs = [
380
+ '-p', String(cfg.sshPort || DEFAULT_SSH_PORT),
381
+ '-o', 'BatchMode=yes',
382
+ '-o', 'StrictHostKeyChecking=accept-new',
383
+ '-o', 'ConnectTimeout=10',
384
+ target,
385
+ remoteCommand,
386
+ ];
387
+ return { command: 'ssh', args: sshArgs, target, remoteCommand, remoteEnv, dropped, rejected, workdir };
388
+ }
389
+
390
+ /**
391
+ * Deterministic, backend-aware description of how files written during a run are
392
+ * recovered after teardown. Pure — used both for the live-exec result payload and
393
+ * for operator inspection of a dry plan.
394
+ *
395
+ * - docker + artifactDir → a rw bind-mount cache that survives teardown (auto).
396
+ * - docker, no artifactDir → ephemeral container FS (nothing recoverable).
397
+ * - ssh → files stay in the remote workdir; sync-back is an operator-driven scp
398
+ * (NOT auto-run in this slice — we surface the exact command instead).
399
+ *
400
+ * @param {ReturnType<typeof buildSandboxConfig>} cfg
401
+ * @param {string} [backend]
402
+ */
403
+ export function describeArtifactSync(cfg, backend) {
404
+ const b = backend || cfg?.backend || 'docker';
405
+ if (b === 'docker') {
406
+ if (cfg?.artifactDir) {
407
+ return {
408
+ backend: 'docker',
409
+ mechanism: 'bind-mount',
410
+ hostDir: cfg.artifactDir,
411
+ containerDir: ARTIFACT_CONTAINER_DIR,
412
+ mode: 'rw',
413
+ recoverable: true,
414
+ authDir: cfg.authDir || null,
415
+ authContainerDir: cfg.authDir ? AUTH_CONTAINER_DIR : null,
416
+ note: 'Files written to /sandbox/artifacts persist on the host cache after container teardown (automatic).',
417
+ };
418
+ }
419
+ return {
420
+ backend: 'docker',
421
+ mechanism: 'none',
422
+ recoverable: false,
423
+ note: 'No MADARX_SANDBOX_ARTIFACT_DIR configured; the container filesystem is ephemeral and nothing is synced back.',
424
+ };
425
+ }
426
+ if (b === 'ssh') {
427
+ const workdir = cfg?.sshWorkdir || DEFAULT_SSH_WORKDIR;
428
+ const remoteArtifactDir = `${String(workdir).replace(/\/+$/, '')}/${SSH_ARTIFACT_SUBDIR}`;
429
+ const target = sshConfigPresent(cfg) ? `${cfg.sshUser}@${cfg.sshHost}` : null;
430
+ return {
431
+ backend: 'ssh',
432
+ mechanism: 'ssh-remote',
433
+ remoteWorkdir: workdir,
434
+ remoteArtifactDir,
435
+ target,
436
+ port: cfg?.sshPort || DEFAULT_SSH_PORT,
437
+ recoverable: false,
438
+ // The exact scp the operator runs to pull artifacts back to a local cache.
439
+ // Not auto-executed: remote sync-back policy stays an explicit operator step.
440
+ syncCommand: target
441
+ ? ['scp', '-P', String(cfg.sshPort || DEFAULT_SSH_PORT), '-r', `${target}:${remoteArtifactDir}/.`, '<local-cache-dir>']
442
+ : null,
443
+ note: 'Artifacts remain in the remote workdir; sync-back via scp/rsync is operator-driven (not auto-run in this slice).',
444
+ };
445
+ }
446
+ return { backend: b, mechanism: 'unknown', recoverable: false };
447
+ }
448
+
269
449
  /**
270
450
  * The integration seam used by the engine runners. Decides — based on config +
271
451
  * whether this is the main agent — whether to confine, and returns a concrete
@@ -273,8 +453,15 @@ export function buildDockerExecSpec({ config, command, args = [], env = {}, name
273
453
  *
274
454
  * - sandbox off / main-under-non-main → host pass-through (hardened env only).
275
455
  * - docker backend → a `docker run` wrapper (confined).
276
- * - ssh / local backends deferred stub (NOT silently run
277
- * unconfined the caller must decide).
456
+ * - ssh backend, fully opted in an `ssh` remote-exec wrapper (confined
457
+ * off-host). "Fully opted in" = live flag
458
+ * ON + host + user set. This is the SINGLE
459
+ * chokepoint both the engine runner and
460
+ * `executeSandboxedSpawn` flow through, so
461
+ * no real SSH is ever produced without the
462
+ * explicit opt-in.
463
+ * - ssh (not fully opted in) / local → deferred stub (NOT silently run
464
+ * unconfined — the caller must decide).
278
465
  *
279
466
  * @param {{ config?: ReturnType<typeof buildSandboxConfig>, isMain?: boolean, command?: string, args?: string[], env?: Record<string,string|undefined>, name?: string, mountCtx?: { home?: string, repoRoot?: string } }} [params]
280
467
  */
@@ -299,35 +486,113 @@ export function buildSandboxedSpawnPlan({ config, isMain = false, command, args
299
486
  spec,
300
487
  };
301
488
  }
302
- // ssh / local backend abstraction exists, execution still deferred. R4's
303
- // first slice wires REAL docker execution; SSH/local remain honest stubs that
304
- // refuse rather than run unconfined.
489
+ // SSH only produce a real, spawnable plan when the operator has FULLY opted
490
+ // in: the dedicated live flag is on AND a host + user are configured. This
491
+ // gate lives here (not only in executeSandboxedSpawn) because the engine runner
492
+ // spawns this plan directly — so this is the one place that guarantees no real
493
+ // ssh command is built without explicit opt-in. Anything short of that falls
494
+ // through to the deferred refusal below (never an unconfined host fallback).
495
+ if (cfg.backend === 'ssh' && cfg.liveSsh && sshConfigPresent(cfg)) {
496
+ const spec = buildSshExecSpec({ config: cfg, command, args, env });
497
+ return {
498
+ sandboxed: true,
499
+ backend: 'ssh',
500
+ command: spec.command,
501
+ args: spec.args,
502
+ // The local ssh client runs on the host; harden its env. The remote child
503
+ // receives only `spec.remoteEnv` (baked into the remote command), never the
504
+ // host secrets/linker overrides.
505
+ env: hardenChildEnv(env),
506
+ remoteEnv: spec.remoteEnv,
507
+ target: spec.target,
508
+ remoteCommand: spec.remoteCommand,
509
+ spec,
510
+ };
511
+ }
512
+ // ssh (not fully opted in) / local — honest refusal stubs. R4 wires REAL docker
513
+ // and SSH execution; the `local` backend cannot confine on the host and is
514
+ // intentionally never wired, so it always refuses rather than run unconfined.
305
515
  return {
306
516
  sandboxed: false,
307
517
  deferred: true,
308
518
  backend: cfg.backend,
309
- reason: `Sandbox backend "${cfg.backend}" is not yet implemented (Docker is the only wired backend; SSH/local remain deferred).`,
519
+ reason: deferredBackendReason(cfg),
310
520
  command,
311
521
  args: [...args],
312
522
  env: hardenChildEnv(env),
313
523
  };
314
524
  }
315
525
 
526
+ /**
527
+ * Human-readable reason a backend is deferred. SSH explains exactly which opt-in
528
+ * piece is missing (live flag / host / user); `local` explains it is unconfinable
529
+ * by design. Always contains "Sandbox backend" so callers can match generically.
530
+ *
531
+ * @param {ReturnType<typeof buildSandboxConfig>} cfg
532
+ */
533
+ function deferredBackendReason(cfg) {
534
+ if (cfg.backend === 'ssh') {
535
+ const missing = [];
536
+ if (!cfg.sshHost) missing.push('MADARX_SANDBOX_SSH_HOST');
537
+ if (!cfg.sshUser) missing.push('MADARX_SANDBOX_SSH_USER');
538
+ if (!cfg.liveSsh) missing.push('MADARX_SANDBOX_LIVE_SSH=1');
539
+ return `Sandbox backend "ssh" is not fully opted in (missing: ${missing.join(', ')}); refusing to run unconfined. Real SSH execution requires the live flag plus host + user config.`;
540
+ }
541
+ if (cfg.backend === 'local') {
542
+ return 'Sandbox backend "local" cannot confine execution on the host machine and is intentionally not wired; refusing to run unconfined (use the docker or ssh backend).';
543
+ }
544
+ return `Sandbox backend "${cfg.backend}" is not yet implemented (Docker and SSH are the wired backends).`;
545
+ }
546
+
547
+ /**
548
+ * Spawn a child via the (possibly injected) spawn function and resolve with its
549
+ * exit code + collected stdout/stderr. Pure plumbing — never decides whether a
550
+ * run is allowed (callers gate before reaching here). `shell: false` always.
551
+ *
552
+ * @param {Function} spawnFn
553
+ * @param {{ command: string, args: string[], env: Record<string,string> }} plan
554
+ */
555
+ function collectChild(spawnFn, plan) {
556
+ return new Promise((resolve, reject) => {
557
+ let child;
558
+ try {
559
+ child = spawnFn(plan.command, plan.args, { shell: false, env: plan.env });
560
+ } catch (err) {
561
+ reject(err);
562
+ return;
563
+ }
564
+ let stdout = '';
565
+ let stderr = '';
566
+ child.stdout?.on?.('data', (/** @type {Buffer} */ d) => { stdout += d.toString(); });
567
+ child.stderr?.on?.('data', (/** @type {Buffer} */ d) => { stderr += d.toString(); });
568
+ child.on?.('error', reject);
569
+ child.on?.('close', (/** @type {number} */ code) => {
570
+ resolve({ code, stdout: stdout.trim(), stderr: stderr.trim() });
571
+ });
572
+ });
573
+ }
574
+
316
575
  /**
317
576
  * R4 — the EXPLICITLY OPT-IN real execution helper. Resolves a spawn plan via
318
- * `buildSandboxedSpawnPlan`, then actually spawns `docker run` — but only when
319
- * `cfg.liveDocker` (MADARX_SANDBOX_LIVE_DOCKER) is enabled. Otherwise it refuses
320
- * clearly and returns the inspectable plan WITHOUT spawning anything.
577
+ * `buildSandboxedSpawnPlan`, then actually spawns the confined runner — but only
578
+ * behind the matching live flag:
579
+ * - docker spawns `docker run` only when `cfg.liveDocker`
580
+ * (MADARX_SANDBOX_LIVE_DOCKER); otherwise refuses + returns the plan.
581
+ * - ssh → only reached when the plan is already a real ssh plan, which
582
+ * `buildSandboxedSpawnPlan` produces ONLY when `cfg.liveSsh`
583
+ * (MADARX_SANDBOX_LIVE_SSH) + host + user are all set. A re-check here is
584
+ * belt-and-suspenders.
321
585
  *
322
586
  * Safety contract:
323
- * - Never spawns unless the plan is a confined docker plan AND the live flag is on.
324
- * - A deferred (ssh/local) backend throws — never runs unconfined on the host.
325
- * - The artifact cache dir is created on the host before the run so files the
326
- * container writes to `/sandbox/artifacts` are recoverable after teardown.
327
- * - Only the hardened host env reaches the docker CLI; only sanitized env is in
328
- * the container argv (built by `buildDockerExecSpec`).
587
+ * - Never spawns unless the plan is a confined docker/ssh plan AND its live flag is on.
588
+ * - A deferred (ssh-not-opted-in / local) backend throws — never runs unconfined.
589
+ * - docker: the artifact cache dir is created on the host before the run so files
590
+ * the container writes to `/sandbox/artifacts` survive teardown.
591
+ * - Only the hardened host env reaches the docker/ssh CLI; only sanitized env is
592
+ * in the inner command (built by `buildDockerExecSpec` / `buildSshExecSpec`).
593
+ * - The result carries `syncBack` metadata describing artifact recovery.
329
594
  *
330
- * `spawnFn` / `ensureDir` are injectable for deterministic tests (no real docker).
595
+ * `spawnFn` / `ensureDir` are injectable for deterministic tests (no real docker/ssh).
331
596
  *
332
597
  * @param {{ config?: ReturnType<typeof buildSandboxConfig>, isMain?: boolean, command?: string, args?: string[], env?: Record<string,string|undefined>, name?: string, mountCtx?: { home?: string, repoRoot?: string } }} params
333
598
  * @param {{ spawnFn?: Function, ensureDir?: (dir: string) => Promise<void> }} [deps]
@@ -341,11 +606,43 @@ export async function executeSandboxedSpawn(params = {}, deps = {}) {
341
606
  /** @type {any} */ (e).code = 'sandbox_backend_unavailable';
342
607
  throw e;
343
608
  }
344
- if (!plan.sandboxed || plan.backend !== 'docker') {
345
- const e = new Error('executeSandboxedSpawn requires an active, confined docker sandbox plan (sandbox is off or not docker-backed)');
609
+ if (!plan.sandboxed || (plan.backend !== 'docker' && plan.backend !== 'ssh')) {
610
+ const e = new Error('executeSandboxedSpawn requires an active, confined docker or ssh sandbox plan (sandbox is off or not a confined backend)');
346
611
  /** @type {any} */ (e).code = 'sandbox_not_confined';
347
612
  throw e;
348
613
  }
614
+
615
+ // --- SSH backend ---------------------------------------------------------
616
+ if (plan.backend === 'ssh') {
617
+ if (!cfg.liveSsh) {
618
+ // Defensive: buildSandboxedSpawnPlan would not have produced a real ssh
619
+ // plan without liveSsh, so this is unreachable in practice — kept as a
620
+ // hard guarantee that no ssh spawn ever happens without the live flag.
621
+ return {
622
+ executed: false,
623
+ refused: true,
624
+ backend: 'ssh',
625
+ reason: 'live SSH execution is disabled; set MADARX_SANDBOX_LIVE_SSH=1 to opt in',
626
+ plan,
627
+ syncBack: describeArtifactSync(cfg, 'ssh'),
628
+ };
629
+ }
630
+ const spawnFn = deps.spawnFn || (await import('node:child_process')).spawn;
631
+ const spawnPlan = /** @type {{ command: string, args: string[], env: Record<string,string> }} */ (plan);
632
+ const { code, stdout, stderr } = await collectChild(spawnFn, spawnPlan);
633
+ return {
634
+ executed: true,
635
+ code,
636
+ stdout,
637
+ stderr,
638
+ backend: 'ssh',
639
+ target: plan.target,
640
+ syncBack: describeArtifactSync(cfg, 'ssh'),
641
+ plan,
642
+ };
643
+ }
644
+
645
+ // --- Docker backend ------------------------------------------------------
349
646
  if (!cfg.liveDocker) {
350
647
  // Off by default: build/inspect the plan but DO NOT spawn docker.
351
648
  return {
@@ -354,6 +651,7 @@ export async function executeSandboxedSpawn(params = {}, deps = {}) {
354
651
  backend: 'docker',
355
652
  reason: 'live docker execution is disabled; set MADARX_SANDBOX_LIVE_DOCKER=1 to opt in',
356
653
  plan,
654
+ syncBack: describeArtifactSync(cfg, 'docker'),
357
655
  };
358
656
  }
359
657
 
@@ -368,29 +666,16 @@ export async function executeSandboxedSpawn(params = {}, deps = {}) {
368
666
  }
369
667
 
370
668
  const spawnFn = deps.spawnFn || (await import('node:child_process')).spawn;
371
- return await new Promise((resolve, reject) => {
372
- let child;
373
- try {
374
- child = spawnFn(plan.command, plan.args, { shell: false, env: plan.env });
375
- } catch (err) {
376
- reject(err);
377
- return;
378
- }
379
- let stdout = '';
380
- let stderr = '';
381
- child.stdout?.on?.('data', (/** @type {Buffer} */ d) => { stdout += d.toString(); });
382
- child.stderr?.on?.('data', (/** @type {Buffer} */ d) => { stderr += d.toString(); });
383
- child.on?.('error', reject);
384
- child.on?.('close', (/** @type {number} */ code) => {
385
- resolve({
386
- executed: true,
387
- code,
388
- stdout: stdout.trim(),
389
- stderr: stderr.trim(),
390
- backend: 'docker',
391
- artifactDir: cfg.artifactDir || null,
392
- plan,
393
- });
394
- });
395
- });
669
+ const spawnPlan = /** @type {{ command: string, args: string[], env: Record<string,string> }} */ (plan);
670
+ const { code, stdout, stderr } = await collectChild(spawnFn, spawnPlan);
671
+ return {
672
+ executed: true,
673
+ code,
674
+ stdout,
675
+ stderr,
676
+ backend: 'docker',
677
+ artifactDir: cfg.artifactDir || null,
678
+ syncBack: describeArtifactSync(cfg, 'docker'),
679
+ plan,
680
+ };
396
681
  }
package/lib/schema.js CHANGED
@@ -556,6 +556,17 @@ CREATE TABLE IF NOT EXISTS whatsapp_allowlist (
556
556
  UNIQUE(chat_id)
557
557
  );
558
558
 
559
+ CREATE TABLE IF NOT EXISTS channel_allowlist (
560
+ id TEXT PRIMARY KEY,
561
+ channel TEXT NOT NULL,
562
+ address TEXT NOT NULL,
563
+ kind TEXT NOT NULL DEFAULT 'dm',
564
+ label TEXT,
565
+ created_at TEXT NOT NULL,
566
+ UNIQUE(channel, address)
567
+ );
568
+ CREATE INDEX IF NOT EXISTS idx_channel_allowlist_channel ON channel_allowlist(channel);
569
+
559
570
  -- Per-chat conversation session boundary. session_started_at is the cutoff for
560
571
  -- history reconstruction: buildWhatsAppHistory only replays whatsapp_messages rows
561
572
  -- with created_at >= session_started_at. The /new command advances it to now,
@@ -1,5 +1,11 @@
1
1
  import { getDb, nowIso, newId } from './db.js';
2
2
  import { appendAudit } from './runtime.js';
3
+ import {
4
+ addChannelAllowlistEntry,
5
+ isChannelAllowed,
6
+ listChannelAllowlist,
7
+ removeChannelAllowlistEntry,
8
+ } from './channel-allowlist.js';
3
9
  import { publishLiveEvent } from './live-events.js';
4
10
  import { runWhatsAppOrchestrator } from './whatsapp-agent.js';
5
11
  import { pollIncomingMessages, sendWhatsAppDocument, sendWhatsAppMessage, setTyping } from './whatsapp.js';
@@ -35,9 +41,7 @@ function startTypingIndicator(chatId, typingFn = setTyping) {
35
41
  const recentSenders = new Map();
36
42
 
37
43
  function listAllowlistChatIds() {
38
- return new Set(
39
- getDb().prepare('SELECT chat_id FROM whatsapp_allowlist').all().map(row => row.chat_id),
40
- );
44
+ return new Set(listChannelAllowlist('whatsapp').map(row => row.address || row.chat_id));
41
45
  }
42
46
 
43
47
  function alreadySeen(messageId) {
@@ -407,23 +411,29 @@ export async function runRouterLoop({ intervalMs = 1500, signal } = {}) {
407
411
  }
408
412
 
409
413
  export function listInboundAllowlist() {
410
- return getDb().prepare('SELECT id, chat_id, kind, label, created_at FROM whatsapp_allowlist ORDER BY created_at DESC').all();
414
+ return listChannelAllowlist('whatsapp').map(row => ({
415
+ id: row.id,
416
+ channel: 'whatsapp',
417
+ address: row.address || row.chat_id,
418
+ chat_id: row.address || row.chat_id,
419
+ kind: row.kind,
420
+ label: row.label,
421
+ created_at: row.created_at,
422
+ }));
411
423
  }
412
424
 
413
425
  export function addAllowlistEntry({ chat_id, kind = 'dm', label = null }) {
414
426
  if (!chat_id) throw new Error('chat_id is required');
415
- const id = newId('waal');
416
- getDb().prepare(`
417
- INSERT INTO whatsapp_allowlist (id, chat_id, kind, label, created_at)
418
- VALUES (?, ?, ?, ?, ?)
419
- ON CONFLICT(chat_id) DO UPDATE SET kind = excluded.kind, label = excluded.label
420
- `).run(id, String(chat_id), String(kind), label ? String(label) : null, nowIso());
421
- return getDb().prepare('SELECT id, chat_id, kind, label, created_at FROM whatsapp_allowlist WHERE chat_id = ?').get(String(chat_id));
427
+ return addChannelAllowlistEntry({ channel: 'whatsapp', address: chat_id, kind, label });
422
428
  }
423
429
 
424
430
  export function removeAllowlistEntry(chatId) {
425
431
  if (!chatId) return 0;
426
- return getDb().prepare('DELETE FROM whatsapp_allowlist WHERE chat_id = ?').run(String(chatId)).changes;
432
+ return removeChannelAllowlistEntry('whatsapp', chatId);
433
+ }
434
+
435
+ export function isInboundAllowed(channel, address) {
436
+ return isChannelAllowed(channel, address);
427
437
  }
428
438
 
429
439
  export function listInboundMessages(limit = 50) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "madarx",
3
- "version": "2.24.0",
3
+ "version": "2.24.1",
4
4
  "type": "module",
5
5
  "description": "Madarx OS — Next.js product with SQLite-backed runtime, scheduled cron daemon, and approval-gated local runners.",
6
6
  "license": "MIT",
@@ -66,6 +66,7 @@
66
66
  "whatsapp:reset": "node --no-warnings --env-file-if-exists=.env.local scripts/whatsapp-reset.mjs",
67
67
  "smoke:routes": "node --no-warnings scripts/smoke-routes.mjs",
68
68
  "mcp:public-interop": "node --no-warnings --env-file-if-exists=.env.local scripts/mcp-public-interop.mjs",
69
+ "vreach:smoke": "node --no-warnings --env-file-if-exists=.env.local scripts/vreach-channel-smoke.mjs",
69
70
  "vecon:proof": "node --no-warnings --env-file-if-exists=.env.local scripts/vecon-prompt-cache-proof.mjs",
70
71
  "vendor:open-design": "node --no-warnings scripts/vendor-open-design.mjs",
71
72
  "check:disk-enc": "node --no-warnings scripts/check-disk-encryption.mjs",