madarx 2.9.12 → 2.9.13

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 (324) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +552 -552
  3. package/.next/standalone/.next/app-path-routes-manifest.json +82 -82
  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/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  8. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  9. package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/admin/page.js +2 -2
  11. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/agents/[id]/page.js +3 -3
  13. package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/agents/page.js +1 -1
  15. package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/approvals/page.js +1 -1
  190. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/architecture.html +2 -2
  193. package/.next/standalone/.next/server/app/architecture.rsc +3 -3
  194. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  196. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/brand.html +1 -1
  198. package/.next/standalone/.next/server/app/brand.rsc +3 -3
  199. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  202. package/.next/standalone/.next/server/app/federated-ai.rsc +3 -3
  203. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
  205. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/hail/[id]/page.js +1 -1
  207. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
  209. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/hail/page.js +2 -2
  211. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/index.html +2 -2
  215. package/.next/standalone/.next/server/app/index.rsc +3 -3
  216. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/join.html +1 -1
  218. package/.next/standalone/.next/server/app/join.rsc +3 -3
  219. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/marketplace/page.js +1 -1
  221. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/missions/page.js +2 -2
  226. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  230. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  231. package/.next/standalone/.next/server/app/org/page.js +1 -1
  232. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/projects/new/page.js +1 -1
  238. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/projects/new.html +1 -1
  240. package/.next/standalone/.next/server/app/projects/new.rsc +4 -4
  241. package/.next/standalone/.next/server/app/projects/page.js +8 -8
  242. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  245. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  247. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  248. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  253. package/.next/standalone/.next/server/app/settings/brand.rsc +3 -3
  254. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  258. package/.next/standalone/.next/server/app/settings/onboarding.rsc +3 -3
  259. package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
  260. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  261. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/settings.html +2 -2
  266. package/.next/standalone/.next/server/app/settings.rsc +3 -3
  267. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  269. package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
  270. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  271. package/.next/standalone/.next/server/app/tasks/page.js +1 -1
  272. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  274. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/whatsapp.html +1 -1
  278. package/.next/standalone/.next/server/app/whatsapp.rsc +3 -3
  279. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/workflows/new/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  285. package/.next/standalone/.next/server/app-paths-manifest.json +82 -82
  286. package/.next/standalone/.next/server/chunks/1699.js +7 -7
  287. package/.next/standalone/.next/server/chunks/1997.js +2 -2
  288. package/.next/standalone/.next/server/chunks/6700.js +3 -3
  289. package/.next/standalone/.next/server/chunks/9430.js +1 -0
  290. package/.next/standalone/.next/server/functions-config-manifest.json +28 -28
  291. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  292. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  293. package/.next/standalone/.next/server/pages/404.html +1 -1
  294. package/.next/standalone/.next/server/pages/500.html +1 -1
  295. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  296. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  298. package/.next/{static/chunks/app/layout-3c5a2ec0922a44da.js → standalone/.next/static/chunks/app/layout-01269582605f37ea.js} +1 -1
  299. package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +1 -0
  300. package/.next/standalone/.next/static/chunks/app/projects/page-99d221c5fd54c0e3.js +1 -0
  301. package/.next/standalone/.next/static/chunks/{webpack-9b86a02e210b78df.js → webpack-ce537f60727acb61.js} +1 -1
  302. package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
  303. package/.next/standalone/data/.default-project-seeded +1 -1
  304. package/.next/standalone/data/madarx.sqlite +0 -0
  305. package/.next/standalone/data/madarx.sqlite-shm +0 -0
  306. package/.next/standalone/data/madarx.sqlite-wal +0 -0
  307. package/.next/standalone/package.json +1 -1
  308. package/.next/{standalone/.next/static/chunks/app/layout-3c5a2ec0922a44da.js → static/chunks/app/layout-01269582605f37ea.js} +1 -1
  309. package/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +1 -0
  310. package/.next/static/chunks/app/projects/page-99d221c5fd54c0e3.js +1 -0
  311. package/.next/static/chunks/{webpack-9b86a02e210b78df.js → webpack-ce537f60727acb61.js} +1 -1
  312. package/app/components/smart-search.jsx +1 -1
  313. package/lib/auth.js +62 -0
  314. package/lib/shared-cloud.js +88 -0
  315. package/package.json +1 -1
  316. package/.next/standalone/.next/server/chunks/8677.js +0 -1
  317. package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +0 -1
  318. package/.next/standalone/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +0 -1
  319. package/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +0 -1
  320. package/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +0 -1
  321. /package/.next/standalone/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_buildManifest.js +0 -0
  322. /package/.next/standalone/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_ssgManifest.js +0 -0
  323. /package/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_buildManifest.js +0 -0
  324. /package/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_ssgManifest.js +0 -0
@@ -9,59 +9,59 @@
9
9
  "/api/agent-memory/route": "app/api/agent-memory/route.js",
10
10
  "/api/agent-runs/[id]/cancel/route": "app/api/agent-runs/[id]/cancel/route.js",
11
11
  "/api/agent-runs/[id]/events/route": "app/api/agent-runs/[id]/events/route.js",
12
- "/api/agent-runs/[id]/log/route": "app/api/agent-runs/[id]/log/route.js",
13
12
  "/api/agent-runs/[id]/route": "app/api/agent-runs/[id]/route.js",
13
+ "/api/agent-runs/[id]/log/route": "app/api/agent-runs/[id]/log/route.js",
14
14
  "/api/agent-runs/route": "app/api/agent-runs/route.js",
15
- "/api/admin/audit-export/route": "app/api/admin/audit-export/route.js",
16
15
  "/api/agents/[id]/chain/route": "app/api/agents/[id]/chain/route.js",
17
16
  "/api/agents/[id]/memory/route": "app/api/agents/[id]/memory/route.js",
18
17
  "/api/agents/[id]/reports/route": "app/api/agents/[id]/reports/route.js",
19
- "/api/agents/[id]/run/route": "app/api/agents/[id]/run/route.js",
18
+ "/api/admin/audit-export/route": "app/api/admin/audit-export/route.js",
20
19
  "/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
21
20
  "/api/agents/create/route": "app/api/agents/create/route.js",
22
21
  "/api/agents/ops/route": "app/api/agents/ops/route.js",
23
22
  "/api/approvals/[id]/route": "app/api/approvals/[id]/route.js",
24
23
  "/api/approvals/route": "app/api/approvals/route.js",
25
- "/api/artifacts/[id]/protect/route": "app/api/artifacts/[id]/protect/route.js",
24
+ "/api/artifacts/[id]/acl/route": "app/api/artifacts/[id]/acl/route.js",
25
+ "/api/agents/[id]/run/route": "app/api/agents/[id]/run/route.js",
26
26
  "/api/artifacts/[id]/raw/route": "app/api/artifacts/[id]/raw/route.js",
27
27
  "/api/artifacts/[id]/route": "app/api/artifacts/[id]/route.js",
28
28
  "/api/artifacts/[id]/share-link/[linkId]/route": "app/api/artifacts/[id]/share-link/[linkId]/route.js",
29
29
  "/api/artifacts/[id]/share-link/route": "app/api/artifacts/[id]/share-link/route.js",
30
+ "/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
30
31
  "/api/audit/list/route": "app/api/audit/list/route.js",
31
32
  "/api/audit/search/route": "app/api/audit/search/route.js",
32
- "/api/auth/config/route": "app/api/auth/config/route.js",
33
33
  "/api/auth/callback/route": "app/api/auth/callback/route.js",
34
+ "/api/artifacts/[id]/protect/route": "app/api/artifacts/[id]/protect/route.js",
34
35
  "/api/auth/join-bootstrap/route": "app/api/auth/join-bootstrap/route.js",
35
- "/api/brand/route": "app/api/brand/route.js",
36
+ "/api/auth/session/route": "app/api/auth/session/route.js",
36
37
  "/api/chat/sessions/[id]/route": "app/api/chat/sessions/[id]/route.js",
37
38
  "/api/chat/sessions/route": "app/api/chat/sessions/route.js",
38
39
  "/api/config/env/route": "app/api/config/env/route.js",
39
- "/api/artifacts/[id]/acl/route": "app/api/artifacts/[id]/acl/route.js",
40
- "/api/connections/[service]/route": "app/api/connections/[service]/route.js",
41
- "/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
40
+ "/api/config/route": "app/api/config/route.js",
41
+ "/api/brand/route": "app/api/brand/route.js",
42
42
  "/api/connections/route": "app/api/connections/route.js",
43
- "/api/cron/tick/route": "app/api/cron/tick/route.js",
43
+ "/api/auth/config/route": "app/api/auth/config/route.js",
44
44
  "/api/dashboard/spaces/[id]/share-link/[linkId]/route": "app/api/dashboard/spaces/[id]/share-link/[linkId]/route.js",
45
45
  "/api/dashboard/spaces/[id]/share-link/route": "app/api/dashboard/spaces/[id]/share-link/route.js",
46
- "/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
46
+ "/api/connections/[service]/route": "app/api/connections/[service]/route.js",
47
47
  "/api/disk/files/[id]/route": "app/api/disk/files/[id]/route.js",
48
48
  "/api/disk/files/[id]/transcribe/route": "app/api/disk/files/[id]/transcribe/route.js",
49
49
  "/api/disk/files/route": "app/api/disk/files/route.js",
50
50
  "/api/disk/folders/route": "app/api/disk/folders/route.js",
51
+ "/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
51
52
  "/api/events/since/[cursor]/route": "app/api/events/since/[cursor]/route.js",
52
- "/api/auth/session/route": "app/api/auth/session/route.js",
53
53
  "/api/fs/create-folder/route": "app/api/fs/create-folder/route.js",
54
- "/api/fs/pick-folder/route": "app/api/fs/pick-folder/route.js",
54
+ "/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
55
55
  "/api/hail/engagements/[id]/blueprint/route": "app/api/hail/engagements/[id]/blueprint/route.js",
56
56
  "/api/hail/engagements/[id]/diagnostic/route": "app/api/hail/engagements/[id]/diagnostic/route.js",
57
- "/api/hail/engagements/[id]/governance/route": "app/api/hail/engagements/[id]/governance/route.js",
58
- "/api/config/route": "app/api/config/route.js",
57
+ "/api/cron/tick/route": "app/api/cron/tick/route.js",
58
+ "/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
59
59
  "/api/hail/engagements/[id]/pilot/route": "app/api/hail/engagements/[id]/pilot/route.js",
60
- "/api/hail/engagements/[id]/quarterly/route": "app/api/hail/engagements/[id]/quarterly/route.js",
61
- "/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
60
+ "/api/hail/engagements/[id]/governance/route": "app/api/hail/engagements/[id]/governance/route.js",
62
61
  "/api/hail/engagements/[id]/setup-package/route": "app/api/hail/engagements/[id]/setup-package/route.js",
63
- "/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
64
- "/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
62
+ "/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
63
+ "/api/hail/engagements/[id]/quarterly/route": "app/api/hail/engagements/[id]/quarterly/route.js",
64
+ "/api/hail/engagements/route": "app/api/hail/engagements/route.js",
65
65
  "/api/hail/interviews/[id]/responses/route": "app/api/hail/interviews/[id]/responses/route.js",
66
66
  "/api/hail/setup-packages/[id]/apply/route": "app/api/hail/setup-packages/[id]/apply/route.js",
67
67
  "/api/hail/interviews/[id]/route": "app/api/hail/interviews/[id]/route.js",
@@ -69,110 +69,110 @@
69
69
  "/api/heartbeat/tick/route": "app/api/heartbeat/tick/route.js",
70
70
  "/api/heartbeat/worker/route": "app/api/heartbeat/worker/route.js",
71
71
  "/api/help/route": "app/api/help/route.js",
72
- "/api/hermes/jobs/[id]/route": "app/api/hermes/jobs/[id]/route.js",
73
72
  "/api/hermes/jobs/[id]/events/route": "app/api/hermes/jobs/[id]/events/route.js",
74
73
  "/api/hermes/jobs/route": "app/api/hermes/jobs/route.js",
75
74
  "/api/integrations/google/callback/route": "app/api/integrations/google/callback/route.js",
76
75
  "/api/integrations/google/oauth/route": "app/api/integrations/google/oauth/route.js",
76
+ "/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
77
77
  "/api/events/stream/route": "app/api/events/stream/route.js",
78
- "/api/marketplace/open-design/route": "app/api/marketplace/open-design/route.js",
79
78
  "/api/marketplace/route": "app/api/marketplace/route.js",
80
79
  "/api/mines/import-roots/route": "app/api/mines/import-roots/route.js",
81
80
  "/api/mines/portfolio/route": "app/api/mines/portfolio/route.js",
81
+ "/api/hermes/jobs/[id]/route": "app/api/hermes/jobs/[id]/route.js",
82
82
  "/api/mines/projects/[id]/chunks/route": "app/api/mines/projects/[id]/chunks/route.js",
83
+ "/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
83
84
  "/api/mines/projects/[id]/diligence/route": "app/api/mines/projects/[id]/diligence/route.js",
84
- "/api/mines/projects/[id]/publish/route": "app/api/mines/projects/[id]/publish/route.js",
85
85
  "/api/mines/projects/route": "app/api/mines/projects/route.js",
86
+ "/api/mines/projects/[id]/publish/route": "app/api/mines/projects/[id]/publish/route.js",
86
87
  "/api/missions/route": "app/api/missions/route.js",
87
88
  "/api/models/route": "app/api/models/route.js",
88
- "/api/onboarding/blueprint/route": "app/api/onboarding/blueprint/route.js",
89
89
  "/api/onboarding/launch/route": "app/api/onboarding/launch/route.js",
90
- "/api/hail/engagements/route": "app/api/hail/engagements/route.js",
91
- "/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
90
+ "/api/orchestrator/command/route": "app/api/orchestrator/command/route.js",
91
+ "/api/fs/pick-folder/route": "app/api/fs/pick-folder/route.js",
92
92
  "/api/org/route": "app/api/org/route.js",
93
93
  "/api/orgs/[id]/invites/[inviteId]/route": "app/api/orgs/[id]/invites/[inviteId]/route.js",
94
94
  "/api/orgs/[id]/invites/route": "app/api/orgs/[id]/invites/route.js",
95
95
  "/api/orgs/[id]/members/[userId]/role/route": "app/api/orgs/[id]/members/[userId]/role/route.js",
96
96
  "/api/orgs/[id]/members/[userId]/route": "app/api/orgs/[id]/members/[userId]/route.js",
97
- "/api/orgs/[id]/members/route": "app/api/orgs/[id]/members/route.js",
98
- "/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
99
- "/api/orgs/invites/pending/route": "app/api/orgs/invites/pending/route.js",
97
+ "/api/marketplace/open-design/route": "app/api/marketplace/open-design/route.js",
100
98
  "/api/orgs/[id]/route": "app/api/orgs/[id]/route.js",
99
+ "/api/orgs/invites/pending/route": "app/api/orgs/invites/pending/route.js",
101
100
  "/api/orgs/join/route": "app/api/orgs/join/route.js",
102
- "/api/orgs/route": "app/api/orgs/route.js",
103
- "/api/printing-press/install/route": "app/api/printing-press/install/route.js",
101
+ "/api/onboarding/blueprint/route": "app/api/onboarding/blueprint/route.js",
104
102
  "/api/printing-press/clis/route": "app/api/printing-press/clis/route.js",
103
+ "/api/printing-press/install/route": "app/api/printing-press/install/route.js",
105
104
  "/api/printing-press/security-mode/route": "app/api/printing-press/security-mode/route.js",
106
- "/api/orchestrator/command/route": "app/api/orchestrator/command/route.js",
107
- "/api/processes/[id]/route": "app/api/processes/[id]/route.js",
105
+ "/api/privacy/config/route": "app/api/privacy/config/route.js",
106
+ "/api/orgs/[id]/members/route": "app/api/orgs/[id]/members/route.js",
107
+ "/api/privacy/verify/route": "app/api/privacy/verify/route.js",
108
108
  "/api/processes/[id]/share-link/route": "app/api/processes/[id]/share-link/route.js",
109
109
  "/api/processes/[id]/stages/[stageId]/override/route": "app/api/processes/[id]/stages/[stageId]/override/route.js",
110
110
  "/api/processes/[id]/stages/[stageId]/retry/route": "app/api/processes/[id]/stages/[stageId]/retry/route.js",
111
111
  "/api/processes/[id]/stages/[stageId]/submit/route": "app/api/processes/[id]/stages/[stageId]/submit/route.js",
112
- "/api/privacy/verify/route": "app/api/privacy/verify/route.js",
112
+ "/api/orgs/route": "app/api/orgs/route.js",
113
113
  "/api/processes/definitions/[slug]/settings/route": "app/api/processes/definitions/[slug]/settings/route.js",
114
- "/api/processes/definitions/route": "app/api/processes/definitions/route.js",
115
114
  "/api/processes/definitions/validate/route": "app/api/processes/definitions/validate/route.js",
116
- "/api/processes/route": "app/api/processes/route.js",
115
+ "/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
116
+ "/api/processes/definitions/route": "app/api/processes/definitions/route.js",
117
117
  "/api/processes/start-and-route/route": "app/api/processes/start-and-route/route.js",
118
118
  "/api/projects/[slug]/library/route": "app/api/projects/[slug]/library/route.js",
119
119
  "/api/projects/[slug]/route": "app/api/projects/[slug]/route.js",
120
120
  "/api/projects/route": "app/api/projects/route.js",
121
- "/api/privacy/config/route": "app/api/privacy/config/route.js",
121
+ "/api/processes/[id]/route": "app/api/processes/[id]/route.js",
122
122
  "/api/runs/claude-code-dry-run/route": "app/api/runs/claude-code-dry-run/route.js",
123
123
  "/api/runs/competitor-report/route": "app/api/runs/competitor-report/route.js",
124
124
  "/api/runs/engine-ping/route": "app/api/runs/engine-ping/route.js",
125
- "/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
126
125
  "/api/schedules/upsert/route": "app/api/schedules/upsert/route.js",
127
- "/api/runs/approve-claude-run/route": "app/api/runs/approve-claude-run/route.js",
126
+ "/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
127
+ "/api/processes/route": "app/api/processes/route.js",
128
128
  "/api/secrets/[name]/route": "app/api/secrets/[name]/route.js",
129
129
  "/api/secrets/route": "app/api/secrets/route.js",
130
130
  "/api/settings/trust-mode/route": "app/api/settings/trust-mode/route.js",
131
131
  "/api/share/[token]/otp/route": "app/api/share/[token]/otp/route.js",
132
132
  "/api/processes/definitions/[slug]/route": "app/api/processes/definitions/[slug]/route.js",
133
+ "/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
133
134
  "/api/share/space/[token]/otp/route": "app/api/share/space/[token]/otp/route.js",
134
135
  "/api/share/space/[token]/route": "app/api/share/space/[token]/route.js",
135
136
  "/api/share/space/[token]/verify/route": "app/api/share/space/[token]/verify/route.js",
136
- "/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
137
- "/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
138
- "/api/shared/spaces/route": "app/api/shared/spaces/route.js",
139
137
  "/api/shared/spaces/publish/route": "app/api/shared/spaces/publish/route.js",
138
+ "/api/shared/spaces/route": "app/api/shared/spaces/route.js",
140
139
  "/api/shared/spaces/status/route": "app/api/shared/spaces/status/route.js",
140
+ "/api/runs/approve-claude-run/route": "app/api/runs/approve-claude-run/route.js",
141
141
  "/api/state/route": "app/api/state/route.js",
142
- "/api/shared/spaces/unpublish/route": "app/api/shared/spaces/unpublish/route.js",
142
+ "/api/shared/spaces/[id]/acl/route": "app/api/shared/spaces/[id]/acl/route.js",
143
143
  "/api/tasks/[id]/active-run/route": "app/api/tasks/[id]/active-run/route.js",
144
- "/api/tasks/[id]/attachments/route": "app/api/tasks/[id]/attachments/route.js",
145
144
  "/api/system/update/route": "app/api/system/update/route.js",
145
+ "/api/tasks/[id]/attachments/route": "app/api/tasks/[id]/attachments/route.js",
146
146
  "/api/tasks/[id]/checklist/[itemId]/route": "app/api/tasks/[id]/checklist/[itemId]/route.js",
147
- "/api/tasks/[id]/checklist/route": "app/api/tasks/[id]/checklist/route.js",
148
147
  "/api/tasks/[id]/checkout/route": "app/api/tasks/[id]/checkout/route.js",
148
+ "/api/tasks/[id]/checklist/route": "app/api/tasks/[id]/checklist/route.js",
149
149
  "/api/tasks/[id]/children/route": "app/api/tasks/[id]/children/route.js",
150
- "/api/tasks/[id]/events/route": "app/api/tasks/[id]/events/route.js",
151
150
  "/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
151
+ "/api/tasks/[id]/events/route": "app/api/tasks/[id]/events/route.js",
152
152
  "/api/tasks/[id]/live-runs/route": "app/api/tasks/[id]/live-runs/route.js",
153
153
  "/api/tasks/[id]/release/route": "app/api/tasks/[id]/release/route.js",
154
+ "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
154
155
  "/api/tasks/route": "app/api/tasks/route.js",
155
156
  "/api/tool-allowlists/[id]/route": "app/api/tool-allowlists/[id]/route.js",
156
- "/api/tool-allowlists/route": "app/api/tool-allowlists/route.js",
157
- "/api/tool-egress/route": "app/api/tool-egress/route.js",
157
+ "/api/share/[token]/route": "app/api/share/[token]/route.js",
158
158
  "/api/tools/[name]/approve/route": "app/api/tools/[name]/approve/route.js",
159
159
  "/api/tools/[name]/route": "app/api/tools/[name]/route.js",
160
- "/api/share/[token]/route": "app/api/share/[token]/route.js",
160
+ "/api/tools/route": "app/api/tools/route.js",
161
161
  "/api/transcripts/route": "app/api/transcripts/route.js",
162
162
  "/api/voice/providers/route": "app/api/voice/providers/route.js",
163
- "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
164
163
  "/api/voice/realtime/context/route": "app/api/voice/realtime/context/route.js",
164
+ "/api/voice/realtime/session/route": "app/api/voice/realtime/session/route.js",
165
165
  "/api/voice/realtime/tool-result/route": "app/api/voice/realtime/tool-result/route.js",
166
+ "/api/shared/spaces/unpublish/route": "app/api/shared/spaces/unpublish/route.js",
166
167
  "/api/voice/realtime/tools/route": "app/api/voice/realtime/tools/route.js",
167
- "/api/voice/realtime/session/route": "app/api/voice/realtime/session/route.js",
168
- "/api/voice/tts/route": "app/api/voice/tts/route.js",
169
- "/api/whatsapp/messages/route": "app/api/whatsapp/messages/route.js",
170
168
  "/api/whatsapp/allowlist/route": "app/api/whatsapp/allowlist/route.js",
169
+ "/api/whatsapp/messages/route": "app/api/whatsapp/messages/route.js",
171
170
  "/api/whatsapp/qr/route": "app/api/whatsapp/qr/route.js",
172
- "/api/whatsapp/status/route": "app/api/whatsapp/status/route.js",
173
171
  "/api/whatsapp/send/route": "app/api/whatsapp/send/route.js",
174
- "/api/shared/spaces/[id]/acl/route": "app/api/shared/spaces/[id]/acl/route.js",
175
- "/api/tools/route": "app/api/tools/route.js",
172
+ "/api/whatsapp/status/route": "app/api/whatsapp/status/route.js",
173
+ "/api/tool-egress/route": "app/api/tool-egress/route.js",
174
+ "/api/tool-allowlists/route": "app/api/tool-allowlists/route.js",
175
+ "/api/voice/tts/route": "app/api/voice/tts/route.js",
176
176
  "/reports/[file]/route": "app/reports/[file]/route.js",
177
177
  "/brand/page": "app/brand/page.js",
178
178
  "/join/page": "app/join/page.js",
@@ -181,58 +181,58 @@
181
181
  "/projects/new/page": "app/projects/new/page.js",
182
182
  "/whatsapp/page": "app/whatsapp/page.js",
183
183
  "/activity/page": "app/activity/page.js",
184
- "/agents/page": "app/agents/page.js",
185
184
  "/admin/page": "app/admin/page.js",
185
+ "/agents/page": "app/agents/page.js",
186
186
  "/agents/[id]/page": "app/agents/[id]/page.js",
187
- "/audit/page": "app/audit/page.js",
188
187
  "/audit/live/page": "app/audit/live/page.js",
188
+ "/audit/page": "app/audit/page.js",
189
189
  "/disk/page": "app/disk/page.js",
190
+ "/hail/[id]/interview/page": "app/hail/[id]/interview/page.js",
190
191
  "/approvals/page": "app/approvals/page.js",
191
192
  "/hail/[id]/governance/page": "app/hail/[id]/governance/page.js",
192
- "/hail/[id]/interview/page": "app/hail/[id]/interview/page.js",
193
- "/hail/[id]/setup/page": "app/hail/[id]/setup/page.js",
194
193
  "/hail/page": "app/hail/page.js",
195
- "/help/[slug]/page": "app/help/[slug]/page.js",
194
+ "/help/page": "app/help/page.js",
196
195
  "/hail/[id]/page": "app/hail/[id]/page.js",
196
+ "/hail/[id]/setup/page": "app/hail/[id]/setup/page.js",
197
197
  "/login/page": "app/login/page.js",
198
198
  "/marketplace/page": "app/marketplace/page.js",
199
- "/help/page": "app/help/page.js",
200
- "/federated-ai/page": "app/federated-ai/page.js",
199
+ "/architecture/page": "app/architecture/page.js",
200
+ "/help/[slug]/page": "app/help/[slug]/page.js",
201
201
  "/mines/page": "app/mines/page.js",
202
202
  "/missions/page": "app/missions/page.js",
203
- "/architecture/page": "app/architecture/page.js",
204
- "/mines/[projectId]/page": "app/mines/[projectId]/page.js",
203
+ "/onboarding/org/page": "app/onboarding/org/page.js",
204
+ "/projects/[slug]/log/page": "app/projects/[slug]/log/page.js",
205
+ "/federated-ai/page": "app/federated-ai/page.js",
205
206
  "/org/page": "app/org/page.js",
206
207
  "/projects/[slug]/page": "app/projects/[slug]/page.js",
207
- "/onboarding/org/page": "app/onboarding/org/page.js",
208
- "/reports/page": "app/reports/page.js",
209
- "/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
210
- "/schedules/page": "app/schedules/page.js",
211
208
  "/projects/page": "app/projects/page.js",
212
- "/projects/[slug]/log/page": "app/projects/[slug]/log/page.js",
213
- "/share/space/[token]/page": "app/share/space/[token]/page.js",
209
+ "/mines/[projectId]/page": "app/mines/[projectId]/page.js",
210
+ "/schedules/page": "app/schedules/page.js",
214
211
  "/runtime/page": "app/runtime/page.js",
215
- "/tasks/page": "app/tasks/page.js",
212
+ "/reports/page": "app/reports/page.js",
213
+ "/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
214
+ "/share/[token]/page": "app/share/[token]/page.js",
215
+ "/team/page": "app/team/page.js",
216
216
  "/team/[agentId]/page": "app/team/[agentId]/page.js",
217
+ "/tasks/page": "app/tasks/page.js",
217
218
  "/tools/page": "app/tools/page.js",
218
- "/team/page": "app/team/page.js",
219
- "/workflows/new/page": "app/workflows/new/page.js",
220
- "/workflows/share/[caseId]/page": "app/workflows/share/[caseId]/page.js",
221
- "/share/[token]/page": "app/share/[token]/page.js",
222
- "/tasks/[id]/page": "app/tasks/[id]/page.js",
219
+ "/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
223
220
  "/workflows/page": "app/workflows/page.js",
224
- "/workflows/new/definition/page": "app/workflows/new/definition/page.js",
221
+ "/tasks/[id]/page": "app/tasks/[id]/page.js",
222
+ "/share/space/[token]/page": "app/share/space/[token]/page.js",
225
223
  "/workflows/new/[caseId]/page": "app/workflows/new/[caseId]/page.js",
226
- "/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
224
+ "/workflows/share/[caseId]/page": "app/workflows/share/[caseId]/page.js",
225
+ "/workflows/new/page": "app/workflows/new/page.js",
226
+ "/workflows/new/definition/page": "app/workflows/new/definition/page.js",
227
227
  "/settings/brand/page": "app/settings/brand/page.js",
228
228
  "/settings/onboarding/page": "app/settings/onboarding/page.js",
229
- "/settings/advanced/page": "app/settings/advanced/page.js",
230
229
  "/settings/appearance/page": "app/settings/appearance/page.js",
231
- "/settings/connectors/page": "app/settings/connectors/page.js",
232
230
  "/settings/organization/page": "app/settings/organization/page.js",
231
+ "/settings/connectors/page": "app/settings/connectors/page.js",
233
232
  "/settings/page": "app/settings/page.js",
234
233
  "/settings/runtime/page": "app/settings/runtime/page.js",
234
+ "/settings/advanced/page": "app/settings/advanced/page.js",
235
+ "/settings/tools/page": "app/settings/tools/page.js",
235
236
  "/settings/engines/page": "app/settings/engines/page.js",
236
- "/settings/account/page": "app/settings/account/page.js",
237
- "/settings/tools/page": "app/settings/tools/page.js"
237
+ "/settings/account/page": "app/settings/account/page.js"
238
238
  }
@@ -19,13 +19,13 @@ Return ONLY corrected JSON in a \`\`\`json fence that matches the schema. No oth
19
19
  SELECT id, scope_value AS root_path
20
20
  FROM tool_allowlists
21
21
  WHERE id = ? AND tool_name = ? AND scope_key = ? AND COALESCE(org_id, ?) = ?
22
- `).get(String(a||""),s,t,d,d);if(!e)return{status:"error",error:"not_found"};c.prepare("DELETE FROM tool_allowlists WHERE id = ?").run(e.id);try{(0,i.appendComplianceAudit)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:d,action:"mines.import_root.removed",status:"success",summary:"Removed Mines import root: "+e.root_path,action_target_id:e.id,action_target_type:"tool_allowlist",meta:{root_path:e.root_path,org_id:d}})}catch{}return{status:"ok",id:e.id,root_path:e.root_path}}function r(a,b={}){let c=n(g.resolve(String(a||".")));return!k(c)&&o(b).some(a=>{let b=g.resolve(a.root_path),d=g.relative(b,c);return""===d||!!d&&!d.startsWith("..")&&!g.isAbsolute(d)})}d()}catch(a){d(a)}})},1511:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ht:()=>o,OC:()=>q,aS:()=>t,getAuthMode:()=>h.Im,getLocalDevUser:()=>k,vR:()=>h.vR});var e=c(77598),f=c(77030),g=c(34255),h=c(33446),i=c(36575),j=a([g,h,i]);[g,h,i]=j.then?(await j)():j;let w="phase-production-build"===process.env.NEXT_PHASE;function k(){return{user_id:"local-user-1",email:process.env.MADARX_OWNER_EMAIL||"owner@local.dev",display_name:"Local Owner",org_id:"personal-org",role:"owner",auth_mode:"local"}}"local"!==(process.env.MADARX_AUTH_MODE||"local").toLowerCase()||w||console.error("[auth] WARNING: MADARX_AUTH_MODE is not set to supabase in NODE_ENV=production. Configure Supabase auth (Settings → Account) or set MADARX_AUTH_MODE=supabase before exposing this deployment.");let x=new Map;function l(a){return(0,e.createHash)("sha256").update(a).digest("hex")}let y=null;async function m(a){let b;if(!1===y)throw Error("@supabase/ssr is not installed. Run: npm install @supabase/ssr @supabase/supabase-js");try{b=(await c.e(1658).then(c.bind(c,81658))).createServerClient,y=!0}catch{throw y=!1,Error("@supabase/ssr is not installed. Run: npm install @supabase/ssr @supabase/supabase-js")}let{url:d,anonKey:e}=(0,h.vR)();if(!d||!e)throw Error("Supabase URL and anon key are not configured. Set them in Settings → Account.");return b(d,e,{cookies:{getAll:()=>(a?.headers?.get?.("cookie")||"").split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");return{name:a.slice(0,b),value:a.slice(b+1)}}),setAll(){}}})}async function n(a,b){try{if(!a?.email||!a?.email_confirmed_at)return null;try{let{claimEmailInvitesViaCloud:d}=await c.e(6700).then(c.bind(c,66700)),e=await d({user_id:a.id,supabase_access_token:b});if(e.length)return e[0]}catch{}let d=(0,i.XJ)(a.id,a.email);return d.length?d[0]:null}catch(a){return console.warn("[auth] email-invite claim failed:",a.message),null}}async function o(a){let b;if("local"===(0,h.Im)())return k();let c=await p(a),d=function(a){let b=a.match(/sb-[^=]+-auth-token(?:-\d+)?=([^;]+)/);return b?decodeURIComponent(b[1]):null}(c);if(d){let a=function(a){let b=l(a),c=x.get(b);return c?Date.now()>c.expiresAt?(x.delete(b),null):c.session:null}(d);if(a)return a}let e=a||{headers:{get:a=>"cookie"===String(a).toLowerCase()?c:null}};try{b=await m(e)}catch(a){return console.error("[auth] getSession: failed to build Supabase client:",a.message),null}let{data:{user:f},error:i}=await b.auth.getUser();if(i||!f)return null;try{var j;let a=(0,g.getDb)(),b=(0,g.nowIso)();a.prepare(`INSERT INTO users (id, email, display_name, avatar_url, auth_provider, last_sign_in_at, created_at)
22
+ `).get(String(a||""),s,t,d,d);if(!e)return{status:"error",error:"not_found"};c.prepare("DELETE FROM tool_allowlists WHERE id = ?").run(e.id);try{(0,i.appendComplianceAudit)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:d,action:"mines.import_root.removed",status:"success",summary:"Removed Mines import root: "+e.root_path,action_target_id:e.id,action_target_type:"tool_allowlist",meta:{root_path:e.root_path,org_id:d}})}catch{}return{status:"ok",id:e.id,root_path:e.root_path}}function r(a,b={}){let c=n(g.resolve(String(a||".")));return!k(c)&&o(b).some(a=>{let b=g.resolve(a.root_path),d=g.relative(b,c);return""===d||!!d&&!d.startsWith("..")&&!g.isAbsolute(d)})}d()}catch(a){d(a)}})},1511:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ht:()=>p,OC:()=>r,aS:()=>u,getAuthMode:()=>h.Im,getLocalDevUser:()=>k,vR:()=>h.vR});var e=c(77598),f=c(77030),g=c(34255),h=c(33446),i=c(36575),j=a([g,h,i]);[g,h,i]=j.then?(await j)():j;let x="phase-production-build"===process.env.NEXT_PHASE;function k(){return{user_id:"local-user-1",email:process.env.MADARX_OWNER_EMAIL||"owner@local.dev",display_name:"Local Owner",org_id:"personal-org",role:"owner",auth_mode:"local"}}"local"!==(process.env.MADARX_AUTH_MODE||"local").toLowerCase()||x||console.error("[auth] WARNING: MADARX_AUTH_MODE is not set to supabase in NODE_ENV=production. Configure Supabase auth (Settings → Account) or set MADARX_AUTH_MODE=supabase before exposing this deployment.");let y=new Map;function l(a){return(0,e.createHash)("sha256").update(a).digest("hex")}let z=null;async function m(a){let b;if(!1===z)throw Error("@supabase/ssr is not installed. Run: npm install @supabase/ssr @supabase/supabase-js");try{b=(await c.e(1658).then(c.bind(c,81658))).createServerClient,z=!0}catch{throw z=!1,Error("@supabase/ssr is not installed. Run: npm install @supabase/ssr @supabase/supabase-js")}let{url:d,anonKey:e}=(0,h.vR)();if(!d||!e)throw Error("Supabase URL and anon key are not configured. Set them in Settings → Account.");return b(d,e,{cookies:{getAll:()=>(a?.headers?.get?.("cookie")||"").split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");return{name:a.slice(0,b),value:a.slice(b+1)}}),setAll(){}}})}async function n(a,b){try{if(!a?.email||!a?.email_confirmed_at)return null;try{let{claimEmailInvitesViaCloud:d}=await c.e(6700).then(c.bind(c,66700)),e=await d({user_id:a.id,supabase_access_token:b});if(e.length)return e[0]}catch{}let d=(0,i.XJ)(a.id,a.email);return d.length?d[0]:null}catch(a){return console.warn("[auth] email-invite claim failed:",a.message),null}}let A={owner:0,admin:1,member:2,viewer:3};async function o(a,b){try{let{mirrorCloudMembershipsForUser:d}=await c.e(6700).then(c.bind(c,66700));return await d({user_id:a.id,supabase_access_token:b})}catch(a){return console.warn("[auth] cloud membership mirror failed:",a.message),[]}}async function p(a){let b;if("local"===(0,h.Im)())return k();let c=await q(a),d=function(a){let b=a.match(/sb-[^=]+-auth-token(?:-\d+)?=([^;]+)/);return b?decodeURIComponent(b[1]):null}(c);if(d){let a=function(a){let b=l(a),c=y.get(b);return c?Date.now()>c.expiresAt?(y.delete(b),null):c.session:null}(d);if(a)return a}let e=a||{headers:{get:a=>"cookie"===String(a).toLowerCase()?c:null}};try{b=await m(e)}catch(a){return console.error("[auth] getSession: failed to build Supabase client:",a.message),null}let{data:{user:f},error:i}=await b.auth.getUser();if(i||!f)return null;try{var j;let a=(0,g.getDb)(),b=(0,g.nowIso)();a.prepare(`INSERT INTO users (id, email, display_name, avatar_url, auth_provider, last_sign_in_at, created_at)
23
23
  VALUES (?, ?, ?, ?, 'supabase', ?, ?)
24
24
  ON CONFLICT(id) DO UPDATE SET
25
25
  email = excluded.email,
26
26
  display_name = excluded.display_name,
27
27
  avatar_url = excluded.avatar_url,
28
- last_sign_in_at = excluded.last_sign_in_at`).run(f.id,f.email,f.user_metadata?.full_name||f.user_metadata?.name||null,f.user_metadata?.avatar_url||null,b,b)}catch(a){console.warn("[auth] upsertUserRow failed:",a.message)}let o=(j=f.id,(0,g.getDb)().prepare(`SELECT m.org_id, m.role
28
+ last_sign_in_at = excluded.last_sign_in_at`).run(f.id,f.email,f.user_metadata?.full_name||f.user_metadata?.name||null,f.user_metadata?.avatar_url||null,b,b)}catch(a){console.warn("[auth] upsertUserRow failed:",a.message)}let p=(j=f.id,(0,g.getDb)().prepare(`SELECT m.org_id, m.role
29
29
  FROM org_memberships m
30
30
  WHERE m.user_id = ?
31
31
  ORDER BY CASE m.role
@@ -35,13 +35,13 @@ Return ONLY corrected JSON in a \`\`\`json fence that matches the schema. No oth
35
35
  WHEN 'viewer' THEN 3
36
36
  ELSE 4
37
37
  END
38
- LIMIT 1`).get(j)||null);if(o||(o=await n(f,d)),o||(o=function(a){try{let b=(0,g.getDb)();if(b.prepare("SELECT COUNT(*) AS c FROM org_memberships WHERE user_id != 'local-user-1'").get().c>0)return null;let c=(0,g.nowIso)(),d=(0,g.newId)("org"),e=(a.email||"owner").split("@")[0].replace(/[^a-z0-9-]/gi,"").toLowerCase()||"owner",f=`${e}-org`.slice(0,60),h=a.user_metadata?.full_name||a.email||"Personal Org";return b.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
38
+ LIMIT 1`).get(j)||null);if((0,h.fo)()||!p){let a=await o(f,d);a.length&&(p=(Array.isArray(a)&&0!==a.length?[...a].sort((a,b)=>{let c=A[a.role]??4,d=A[b.role]??4;return c!==d?c-d:String(a.org_id).localeCompare(String(b.org_id))})[0]:null)||p)}if(p||(p=await n(f,d)),p||(p=function(a){try{let b=(0,g.getDb)();if(b.prepare("SELECT COUNT(*) AS c FROM org_memberships WHERE user_id != 'local-user-1'").get().c>0)return null;let c=(0,g.nowIso)(),d=(0,g.newId)("org"),e=(a.email||"owner").split("@")[0].replace(/[^a-z0-9-]/gi,"").toLowerCase()||"owner",f=`${e}-org`.slice(0,60),h=a.user_metadata?.full_name||a.email||"Personal Org";return b.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
39
39
  VALUES (?, ?, ?, 'free', ?, ?)`).run(d,f,h,c,c),b.prepare(`INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at)
40
- VALUES (?, ?, ?, 'owner', ?)`).run((0,g.newId)("mem"),d,a.id,c),{org_id:d,role:"owner"}}catch(a){return console.warn("[auth] first-login org bootstrap failed:",a.message),null}}(f)),!o)return{user_id:f.id,email:f.email,display_name:f.user_metadata?.full_name||null,org_id:null,role:null,auth_mode:"supabase",supabase_access_token:d};let q={user_id:f.id,email:f.email,display_name:f.user_metadata?.full_name||f.user_metadata?.name||null,org_id:o.org_id,role:o.role,auth_mode:"supabase",supabase_access_token:d};return d&&function(a,b){let c=l(a);x.set(c,{session:b,expiresAt:Date.now()+3e4})}(d,q),q}async function p(a,b){if(a?.headers?.get)return a.headers.get("cookie")||"";try{var d;let a=b||(async()=>{let{cookies:a}=await c.e(6802).then(c.bind(c,86802));return a()});return d=await a(),(d?.getAll?.()||[]).map(a=>`${a.name}=${a.value}`).join("; ")}catch{return""}}async function q(a){let b=await o(a);if(!b)throw{status:401,error:"unauthenticated"};if("local"===(0,h.Im)())return b;if(b.org_id)try{let d=(0,g.getDb)(),e=d.prepare("SELECT ip_allowlist_json, session_timeout_seconds FROM organizations WHERE id = ?").get(b.org_id);if(e){if(e.session_timeout_seconds){let a=d.prepare("SELECT last_sign_in_at FROM users WHERE id = ?").get(b.user_id);if(a?.last_sign_in_at&&(Date.now()-new Date(a.last_sign_in_at).getTime())/1e3>e.session_timeout_seconds)throw{status:401,error:"session_expired"}}if(e.ip_allowlist_json){var c;let h;try{h=JSON.parse(e.ip_allowlist_json)}catch{h=[]}let i=function(a){let b=a?.headers?.get?.("x-forwarded-for")||a?.headers?.["x-forwarded-for"];return b?String(b).split(",")[0].trim():null}(a);if(c=h,!(!Array.isArray(c)||0===c.length||c.some(a=>(function(a,b){if(!a||!b)return!1;let[c,d]=b.split("/");if(!c||void 0===d||!f.isIPv4(a)||!f.isIPv4(c))return!1;let e=""===d?32:parseInt(d,10);if(isNaN(e)||e<0||e>32)return!1;let g=a=>a.split(".").reduce((a,b)=>a<<8|parseInt(b,10),0)>>>0,h=g(a),i=g(c),j=0===e?0:-1<<32-e>>>0;return(h&j)==(i&j)})(i,a)))){try{d.prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id, ip)
41
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"session.ip_denied",`Access denied: IP ${i} not in allowlist`,"denied",JSON.stringify({ip:i,org_id:b.org_id}),b.user_id,b.org_id,i)}catch(a){console.error("[auth] Failed to write ip_denied audit row:",a.message)}throw{status:403,error:"ip_not_allowed"}}}}}catch(a){if(a.status)throw a;console.error("[auth] requireSession org policy check failed:",a.message)}return b}let z=new Map;function r(a,b){return`${a}:${b}`}function s(a,b,c){z.set(r(a,b),{verified_at:Date.now(),role:c})}async function t(a,b){if("local"===(0,h.Im)())return;let c=(process.env.MADARX_MEMBERSHIP_LIVE_CHECK??"on").toLowerCase();if("off"===c)return void console.warn("[auth] MADARX_MEMBERSHIP_LIVE_CHECK=off — membership revocation will not be detected. This mode is for dev/offline use only.");let d=a?.user_id,e=b||a?.org_id;if(!d||!e||function(a,b){let c=z.get(r(a,b));return c?Date.now()-c.verified_at>3e5?(z.delete(r(a,b)),null):c:null}(d,e))return;let f=(0,h.vR)().url,i=(0,h.fo)();if(f&&i)try{let a=`${f}/rest/v1/org_memberships?user_id=eq.${encodeURIComponent(d)}&org_id=eq.${encodeURIComponent(e)}&select=role&limit=1`,b=await fetch(a,{headers:{apikey:i,Authorization:`Bearer ${i}`,Accept:"application/json"},signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Supabase returned HTTP ${b.status}`);let c=await b.json();if(!Array.isArray(c)||0===c.length)throw u(d,e),{status:403,error:"membership_revoked",sign_out_required:!0};s(d,e,c[0].role);return}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership: Supabase live check failed:",a.message),v(d,e,a.message),{status:503,error:"supabase_unavailable",message:"Membership live check unavailable"}}try{let a=(0,g.getDb)().prepare(`SELECT id, role FROM org_memberships
40
+ VALUES (?, ?, ?, 'owner', ?)`).run((0,g.newId)("mem"),d,a.id,c),{org_id:d,role:"owner"}}catch(a){return console.warn("[auth] first-login org bootstrap failed:",a.message),null}}(f)),!p)return{user_id:f.id,email:f.email,display_name:f.user_metadata?.full_name||null,org_id:null,role:null,auth_mode:"supabase",supabase_access_token:d};let r={user_id:f.id,email:f.email,display_name:f.user_metadata?.full_name||f.user_metadata?.name||null,org_id:p.org_id,role:p.role,auth_mode:"supabase",supabase_access_token:d};return d&&function(a,b){let c=l(a);y.set(c,{session:b,expiresAt:Date.now()+3e4})}(d,r),r}async function q(a,b){if(a?.headers?.get)return a.headers.get("cookie")||"";try{var d;let a=b||(async()=>{let{cookies:a}=await c.e(6802).then(c.bind(c,86802));return a()});return d=await a(),(d?.getAll?.()||[]).map(a=>`${a.name}=${a.value}`).join("; ")}catch{return""}}async function r(a){let b=await p(a);if(!b)throw{status:401,error:"unauthenticated"};if("local"===(0,h.Im)())return b;if(b.org_id)try{let d=(0,g.getDb)(),e=d.prepare("SELECT ip_allowlist_json, session_timeout_seconds FROM organizations WHERE id = ?").get(b.org_id);if(e){if(e.session_timeout_seconds){let a=d.prepare("SELECT last_sign_in_at FROM users WHERE id = ?").get(b.user_id);if(a?.last_sign_in_at&&(Date.now()-new Date(a.last_sign_in_at).getTime())/1e3>e.session_timeout_seconds)throw{status:401,error:"session_expired"}}if(e.ip_allowlist_json){var c;let h;try{h=JSON.parse(e.ip_allowlist_json)}catch{h=[]}let i=function(a){let b=a?.headers?.get?.("x-forwarded-for")||a?.headers?.["x-forwarded-for"];return b?String(b).split(",")[0].trim():null}(a);if(c=h,!(!Array.isArray(c)||0===c.length||c.some(a=>(function(a,b){if(!a||!b)return!1;let[c,d]=b.split("/");if(!c||void 0===d||!f.isIPv4(a)||!f.isIPv4(c))return!1;let e=""===d?32:parseInt(d,10);if(isNaN(e)||e<0||e>32)return!1;let g=a=>a.split(".").reduce((a,b)=>a<<8|parseInt(b,10),0)>>>0,h=g(a),i=g(c),j=0===e?0:-1<<32-e>>>0;return(h&j)==(i&j)})(i,a)))){try{d.prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id, ip)
41
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"session.ip_denied",`Access denied: IP ${i} not in allowlist`,"denied",JSON.stringify({ip:i,org_id:b.org_id}),b.user_id,b.org_id,i)}catch(a){console.error("[auth] Failed to write ip_denied audit row:",a.message)}throw{status:403,error:"ip_not_allowed"}}}}}catch(a){if(a.status)throw a;console.error("[auth] requireSession org policy check failed:",a.message)}return b}let B=new Map;function s(a,b){return`${a}:${b}`}function t(a,b,c){B.set(s(a,b),{verified_at:Date.now(),role:c})}async function u(a,b){if("local"===(0,h.Im)())return;let c=(process.env.MADARX_MEMBERSHIP_LIVE_CHECK??"on").toLowerCase();if("off"===c)return void console.warn("[auth] MADARX_MEMBERSHIP_LIVE_CHECK=off — membership revocation will not be detected. This mode is for dev/offline use only.");let d=a?.user_id,e=b||a?.org_id;if(!d||!e||function(a,b){let c=B.get(s(a,b));return c?Date.now()-c.verified_at>3e5?(B.delete(s(a,b)),null):c:null}(d,e))return;let f=(0,h.vR)().url,i=(0,h.fo)();if(f&&i)try{let a=`${f}/rest/v1/org_memberships?user_id=eq.${encodeURIComponent(d)}&org_id=eq.${encodeURIComponent(e)}&select=role&limit=1`,b=await fetch(a,{headers:{apikey:i,Authorization:`Bearer ${i}`,Accept:"application/json"},signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Supabase returned HTTP ${b.status}`);let c=await b.json();if(!Array.isArray(c)||0===c.length)throw v(d,e),{status:403,error:"membership_revoked",sign_out_required:!0};t(d,e,c[0].role);return}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership: Supabase live check failed:",a.message),w(d,e,a.message),{status:503,error:"supabase_unavailable",message:"Membership live check unavailable"}}try{let a=(0,g.getDb)().prepare(`SELECT id, role FROM org_memberships
42
42
  WHERE user_id = ? AND org_id = ?
43
- LIMIT 1`).get(d,e);if(!a)throw u(d,e),{status:403,error:"membership_revoked",sign_out_required:!0};s(d,e,a.role)}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership SQLite fallback failed:",a.message),v(d,e,a.message),{status:503,error:"supabase_unavailable",message:"Membership check unavailable"}}}function u(a,b){try{(0,g.getDb)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
44
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"auth.membership.revoked_detected",`Membership revoked detected for user ${a} in org ${b}`,"denied",JSON.stringify({user_id:a,org_id:b}),a,b)}catch(a){console.error("[auth] Failed to write membership_revoked audit row:",a.message)}}function v(a,b,c){try{(0,g.getDb)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
43
+ LIMIT 1`).get(d,e);if(!a)throw v(d,e),{status:403,error:"membership_revoked",sign_out_required:!0};t(d,e,a.role)}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership SQLite fallback failed:",a.message),w(d,e,a.message),{status:503,error:"supabase_unavailable",message:"Membership check unavailable"}}}function v(a,b){try{(0,g.getDb)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
44
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"auth.membership.revoked_detected",`Membership revoked detected for user ${a} in org ${b}`,"denied",JSON.stringify({user_id:a,org_id:b}),a,b)}catch(a){console.error("[auth] Failed to write membership_revoked audit row:",a.message)}}function w(a,b,c){try{(0,g.getDb)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
45
45
  VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"auth.live_check_unavailable",`Membership live check unavailable for user ${a} in org ${b}`,"error",JSON.stringify({user_id:a,org_id:b,reason:c}),a,b)}catch(a){console.error("[auth] Failed to write live_check_unavailable audit row:",a.message)}}d()}catch(a){d(a)}})},1623:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$b:()=>l,E1:()=>q,JD:()=>j,OD:()=>z,PA:()=>i,VS:()=>k,Wr:()=>t,iS:()=>r,q9:()=>v,sR:()=>m,uR:()=>u,wA:()=>s,zr:()=>p});var e=c(34255),f=c(40718),g=c(91648),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let u=`IDENTITY
46
46
  You are madarX — Chief of Staff to the principal. Local-first orchestrator. Your job is routing, presentation, escalation. You are NOT the doer; you conduct. Every specialist, tool, or sub-agent in this workspace is an instrument you direct. You translate principal intent into action and bring back verified results.`,v=`ORCHESTRATOR_MODE (NON-NEGOTIABLE)
47
47
  For ANY task longer than a one-line factual reply, your default move is DELEGATE. Decision order on every request:
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=1997,exports.ids=[1997],exports.modules={51997:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{claimEmailInvitesViaCloud:()=>n}),c(77598);var e=c(84104),f=c(81909),g=c(16343),h=c(37937),i=c(79336),j=a([e,f,g,h,i]);function k(){}function l(a,b={}){try{let c=(0,f.r6)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}function m(a,b={}){for(let[c,d]of Object.entries(b)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);a.searchParams.set(c,String(d).includes(".")?String(d):`eq.${d}`)}}async function n(a,b={}){let c,d=a?.supabase_access_token;if(!d||!function(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_ANON_KEY",a);return!!(b&&c)}(b))return[];try{c=await (function(a,b={}){if(k(),!a)throw Error("getSharedCloudUserClient: an access token (user JWT) is required");let c=l("SUPABASE_URL",b),d=l("SUPABASE_ANON_KEY",b);if(!c||!d)throw Error("Shared cloud (user) not configured: set SUPABASE_URL and SUPABASE_ANON_KEY.");return function({baseUrl:a,apikey:b,bearer:c,agentId:d=null}){let e=`${a.replace(/\/+$/g,"")}/rest/v1`;function f(a={}){return{Authorization:`Bearer ${c}`,apikey:b,Accept:"application/json",...a}}async function h(a){let b={};try{b=await a.json()}catch{}return b.message||b.error||a.statusText||`HTTP ${a.status}`}return{async select(a,{filters:b={},select:c="*",limit:i=100}={}){let j=new URL(`${e}/${a}`);j.searchParams.set("select",c),j.searchParams.set("limit",String(Math.min(Math.max(Number(i)||1,1),1e3))),m(j,b);let k=await (0,g.N)("shared_cloud_select",d)(j,{headers:f()});if(!k.ok)throw Error(`shared_cloud select(${a}) failed: ${await h(k)}`);return k.json()},async upsert(a,b,{onConflict:c}={}){let i=Array.isArray(b)?b:[b],j=new URL(`${e}/${a}`);c&&j.searchParams.set("on_conflict",String(c));let k=await (0,g.N)("shared_cloud_upsert",d)(j,{method:"POST",headers:f({"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"}),body:JSON.stringify(i)});if(!k.ok)throw Error(`shared_cloud upsert(${a}) failed: ${await h(k)}`);return k.json()},async delete(a,{filters:b}={}){if(!b||!Object.keys(b).length)throw Error("shared_cloud delete requires filters; bulk delete is blocked.");let c=new URL(`${e}/${a}`);m(c,b);let i=await (0,g.N)("shared_cloud_delete",d)(c,{method:"DELETE",headers:f({Prefer:"return=representation"})});if(!i.ok)throw Error(`shared_cloud delete(${a}) failed: ${await h(i)}`);return i.json()},async rpc(a,b={}){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid rpc function name: ${a}`);let c=new URL(`${e}/rpc/${a}`),i=await (0,g.N)("shared_cloud_rpc",d)(c,{method:"POST",headers:f({"Content-Type":"application/json"}),body:JSON.stringify(b??{})});if(!i.ok)throw Error(`shared_cloud rpc(${a}) failed: ${await h(i)}`);return i.json()}}}({baseUrl:c,apikey:d,bearer:a,agentId:b.agent_id??null})})(d,b).rpc("claim_email_invites")}catch{return[]}let f=Array.isArray(c)?c:[],h=[];for(let b of f){let c=b.granted_role||b.role;b.org_id&&(!function(a,b,c,d){let f=(0,e.Lf)();if(!f.prepare("SELECT id FROM organizations WHERE id = ?").get(a)){let b=(0,e.kF)();f.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
2
- VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.Si)("mem"),a,b,c,(0,e.kF)())}(b.org_id,a.user_id,c),h.push({org_id:b.org_id,role:c}))}return h}[e,f,g,h,i]=j.then?(await j)():j,Object.freeze(["private","team","org","link"]),Object.freeze(["org","team","private"]),Object.freeze(["dashboard_space","project"]),Object.freeze(["folder","file","artifact"]),Object.freeze(["user","team","org"]),Object.freeze(["user","org"]),Object.freeze(["read","write","admin"]),Object.freeze({read:1,write:2,admin:3}),d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=1997,exports.ids=[1997],exports.modules={51997:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{claimEmailInvitesViaCloud:()=>r,mirrorCloudMembershipsForUser:()=>s}),c(77598);var e=c(84104),f=c(81909),g=c(16343),h=c(37937),i=c(79336),j=a([e,f,g,h,i]);function k(){}function l(a,b={}){try{let c=(0,f.r6)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}function m(a,b={}){for(let[c,d]of Object.entries(b)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);a.searchParams.set(c,String(d).includes(".")?String(d):`eq.${d}`)}}function n({baseUrl:a,apikey:b,bearer:c,agentId:d=null}){let e=`${a.replace(/\/+$/g,"")}/rest/v1`;function f(a={}){return{Authorization:`Bearer ${c}`,apikey:b,Accept:"application/json",...a}}async function h(a){let b={};try{b=await a.json()}catch{}return b.message||b.error||a.statusText||`HTTP ${a.status}`}return{async select(a,{filters:b={},select:c="*",limit:i=100}={}){let j=new URL(`${e}/${a}`);j.searchParams.set("select",c),j.searchParams.set("limit",String(Math.min(Math.max(Number(i)||1,1),1e3))),m(j,b);let k=await (0,g.N)("shared_cloud_select",d)(j,{headers:f()});if(!k.ok)throw Error(`shared_cloud select(${a}) failed: ${await h(k)}`);return k.json()},async upsert(a,b,{onConflict:c}={}){let i=Array.isArray(b)?b:[b],j=new URL(`${e}/${a}`);c&&j.searchParams.set("on_conflict",String(c));let k=await (0,g.N)("shared_cloud_upsert",d)(j,{method:"POST",headers:f({"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"}),body:JSON.stringify(i)});if(!k.ok)throw Error(`shared_cloud upsert(${a}) failed: ${await h(k)}`);return k.json()},async delete(a,{filters:b}={}){if(!b||!Object.keys(b).length)throw Error("shared_cloud delete requires filters; bulk delete is blocked.");let c=new URL(`${e}/${a}`);m(c,b);let i=await (0,g.N)("shared_cloud_delete",d)(c,{method:"DELETE",headers:f({Prefer:"return=representation"})});if(!i.ok)throw Error(`shared_cloud delete(${a}) failed: ${await h(i)}`);return i.json()},async rpc(a,b={}){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid rpc function name: ${a}`);let c=new URL(`${e}/rpc/${a}`),i=await (0,g.N)("shared_cloud_rpc",d)(c,{method:"POST",headers:f({"Content-Type":"application/json"}),body:JSON.stringify(b??{})});if(!i.ok)throw Error(`shared_cloud rpc(${a}) failed: ${await h(i)}`);return i.json()}}}function o(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_ANON_KEY",a);return!!(b&&c)}function p(a,b={}){if(k(),!a)throw Error("getSharedCloudUserClient: an access token (user JWT) is required");let c=l("SUPABASE_URL",b),d=l("SUPABASE_ANON_KEY",b);if(!c||!d)throw Error("Shared cloud (user) not configured: set SUPABASE_URL and SUPABASE_ANON_KEY.");return n({baseUrl:c,apikey:d,bearer:a,agentId:b.agent_id??null})}function q(a,b,c,d){let f=(0,e.Lf)();if(!f.prepare("SELECT id FROM organizations WHERE id = ?").get(a)){let b=(0,e.kF)();f.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
2
+ VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,d||String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.Si)("mem"),a,b,c,(0,e.kF)())}async function r(a,b={}){let c,d=a?.supabase_access_token;if(!d||!o(b))return[];try{c=await p(d,b).rpc("claim_email_invites")}catch{return[]}let e=Array.isArray(c)?c:[],f=[];for(let b of e){let c=b.granted_role||b.role;b.org_id&&(q(b.org_id,a.user_id,c),f.push({org_id:b.org_id,role:c}))}return f}async function s(a,b={}){let c,d,e=a?.user_id;if(!e)return[];let f=a?.supabase_access_token||null,g=function({serviceReady:a,userReady:b,accessToken:c}){return a?"admin":b&&c?"user":null}({serviceReady:function(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);return!!(b&&c)}(b),userReady:o(b),accessToken:f});if(!g)return[];try{c="admin"===g?function(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);if(!b||!c)throw Error("Shared cloud not configured: set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY.");return n({baseUrl:b,apikey:c,bearer:c,agentId:a.agent_id??null})}(b):p(f,b)}catch{return[]}try{d=await c.select("org_memberships",{filters:{user_id:e},select:"org_id,role",limit:100})}catch{return[]}if(!Array.isArray(d)||0===d.length)return[];let h=[...new Set(d.map(a=>a.org_id).filter(Boolean))],i=new Map;try{if(h.length){let a=await c.select("organizations",{filters:{id:`in.(${h.join(",")})`},select:"id,name",limit:1e3});for(let b of Array.isArray(a)?a:[])b.id&&i.set(b.id,b.name)}}catch{}let j=[];for(let a of d)a.org_id&&(q(a.org_id,e,a.role,i.get(a.org_id)),j.push({org_id:a.org_id,role:a.role}));return j}[e,f,g,h,i]=j.then?(await j)():j,Object.freeze(["private","team","org","link"]),Object.freeze(["org","team","private"]),Object.freeze(["dashboard_space","project"]),Object.freeze(["folder","file","artifact"]),Object.freeze(["user","team","org"]),Object.freeze(["user","org"]),Object.freeze(["read","write","admin"]),Object.freeze({read:1,write:2,admin:3}),d()}catch(a){d(a)}})}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=6700,exports.ids=[6700],exports.modules={66700:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bd:()=>x,DJ:()=>A,LC:()=>K,Zb:()=>I,bP:()=>J,claimEmailInvitesViaCloud:()=>D,fv:()=>B,getSharedCloudAdmin:()=>q,gx:()=>L,i9:()=>z,isSharedCloudReady:()=>m,p7:()=>w,redeemInviteViaCloud:()=>E}),c(77598);var e=c(34255),f=c(24516),g=c(58282),h=c(4160),i=c(61423),j=a([e,f,g,h,i]);function k(){}function l(a,b={}){try{let c=(0,f.getSecret)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}function m(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);return!!(b&&c)}function n(a,b={}){for(let[c,d]of Object.entries(b)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);a.searchParams.set(c,String(d).includes(".")?String(d):`eq.${d}`)}}function o({baseUrl:a,apikey:b,bearer:c,agentId:d=null}){let e=`${a.replace(/\/+$/g,"")}/rest/v1`;function f(a={}){return{Authorization:`Bearer ${c}`,apikey:b,Accept:"application/json",...a}}async function h(a){let b={};try{b=await a.json()}catch{}return b.message||b.error||a.statusText||`HTTP ${a.status}`}return{async select(a,{filters:b={},select:c="*",limit:i=100}={}){let j=new URL(`${e}/${a}`);j.searchParams.set("select",c),j.searchParams.set("limit",String(Math.min(Math.max(Number(i)||1,1),1e3))),n(j,b);let k=await (0,g.N)("shared_cloud_select",d)(j,{headers:f()});if(!k.ok)throw Error(`shared_cloud select(${a}) failed: ${await h(k)}`);return k.json()},async upsert(a,b,{onConflict:c}={}){let i=Array.isArray(b)?b:[b],j=new URL(`${e}/${a}`);c&&j.searchParams.set("on_conflict",String(c));let k=await (0,g.N)("shared_cloud_upsert",d)(j,{method:"POST",headers:f({"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"}),body:JSON.stringify(i)});if(!k.ok)throw Error(`shared_cloud upsert(${a}) failed: ${await h(k)}`);return k.json()},async delete(a,{filters:b}={}){if(!b||!Object.keys(b).length)throw Error("shared_cloud delete requires filters; bulk delete is blocked.");let c=new URL(`${e}/${a}`);n(c,b);let i=await (0,g.N)("shared_cloud_delete",d)(c,{method:"DELETE",headers:f({Prefer:"return=representation"})});if(!i.ok)throw Error(`shared_cloud delete(${a}) failed: ${await h(i)}`);return i.json()},async rpc(a,b={}){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid rpc function name: ${a}`);let c=new URL(`${e}/rpc/${a}`),i=await (0,g.N)("shared_cloud_rpc",d)(c,{method:"POST",headers:f({"Content-Type":"application/json"}),body:JSON.stringify(b??{})});if(!i.ok)throw Error(`shared_cloud rpc(${a}) failed: ${await h(i)}`);return i.json()}}}function p(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_ANON_KEY",a);return!!(b&&c)}function q(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);if(!b||!c)throw Error("Shared cloud not configured: set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY.");return o({baseUrl:b,apikey:c,bearer:c,agentId:a.agent_id??null})}function r(a,b={}){if(k(),!a)throw Error("getSharedCloudUserClient: an access token (user JWT) is required");let c=l("SUPABASE_URL",b),d=l("SUPABASE_ANON_KEY",b);if(!c||!d)throw Error("Shared cloud (user) not configured: set SUPABASE_URL and SUPABASE_ANON_KEY.");return o({baseUrl:c,apikey:d,bearer:a,agentId:b.agent_id??null})}[e,f,g,h,i]=j.then?(await j)():j,Object.freeze(["private","team","org","link"]);let M=Object.freeze(["org","team","private"]),N=Object.freeze(["dashboard_space","project"]),O=Object.freeze(["folder","file","artifact"]);function s(a,b){if(!M.includes(a))throw Error(`${b}: invalid visibility "${a}" (expected one of ${M.join("|")})`)}function t(a,b){if(!N.includes(a))throw Error(`${b}: invalid space_type "${a}" (expected one of ${N.join("|")})`)}function u(a,b){return(0,e.getDb)().prepare("SELECT * FROM shared_space_publications WHERE local_space_id = ? AND space_type = ?").get(a,b)||null}function v(a){let b=(0,e.getDb)(),c=b.prepare("SELECT id FROM shared_space_publications WHERE local_space_id = ? AND space_type = ?").get(a.local_space_id,a.space_type),d=c?.id||(0,e.newId)("spub");return b.prepare(`INSERT INTO shared_space_publications
1
+ "use strict";exports.id=6700,exports.ids=[6700],exports.modules={66700:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bd:()=>x,DJ:()=>A,LC:()=>L,Zb:()=>J,bP:()=>K,claimEmailInvitesViaCloud:()=>D,fv:()=>B,getSharedCloudAdmin:()=>q,gx:()=>M,i9:()=>z,isSharedCloudReady:()=>m,mirrorCloudMembershipsForUser:()=>F,p7:()=>w,redeemInviteViaCloud:()=>E}),c(77598);var e=c(34255),f=c(24516),g=c(58282),h=c(4160),i=c(61423),j=a([e,f,g,h,i]);function k(){}function l(a,b={}){try{let c=(0,f.getSecret)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}function m(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);return!!(b&&c)}function n(a,b={}){for(let[c,d]of Object.entries(b)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);a.searchParams.set(c,String(d).includes(".")?String(d):`eq.${d}`)}}function o({baseUrl:a,apikey:b,bearer:c,agentId:d=null}){let e=`${a.replace(/\/+$/g,"")}/rest/v1`;function f(a={}){return{Authorization:`Bearer ${c}`,apikey:b,Accept:"application/json",...a}}async function h(a){let b={};try{b=await a.json()}catch{}return b.message||b.error||a.statusText||`HTTP ${a.status}`}return{async select(a,{filters:b={},select:c="*",limit:i=100}={}){let j=new URL(`${e}/${a}`);j.searchParams.set("select",c),j.searchParams.set("limit",String(Math.min(Math.max(Number(i)||1,1),1e3))),n(j,b);let k=await (0,g.N)("shared_cloud_select",d)(j,{headers:f()});if(!k.ok)throw Error(`shared_cloud select(${a}) failed: ${await h(k)}`);return k.json()},async upsert(a,b,{onConflict:c}={}){let i=Array.isArray(b)?b:[b],j=new URL(`${e}/${a}`);c&&j.searchParams.set("on_conflict",String(c));let k=await (0,g.N)("shared_cloud_upsert",d)(j,{method:"POST",headers:f({"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"}),body:JSON.stringify(i)});if(!k.ok)throw Error(`shared_cloud upsert(${a}) failed: ${await h(k)}`);return k.json()},async delete(a,{filters:b}={}){if(!b||!Object.keys(b).length)throw Error("shared_cloud delete requires filters; bulk delete is blocked.");let c=new URL(`${e}/${a}`);n(c,b);let i=await (0,g.N)("shared_cloud_delete",d)(c,{method:"DELETE",headers:f({Prefer:"return=representation"})});if(!i.ok)throw Error(`shared_cloud delete(${a}) failed: ${await h(i)}`);return i.json()},async rpc(a,b={}){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid rpc function name: ${a}`);let c=new URL(`${e}/rpc/${a}`),i=await (0,g.N)("shared_cloud_rpc",d)(c,{method:"POST",headers:f({"Content-Type":"application/json"}),body:JSON.stringify(b??{})});if(!i.ok)throw Error(`shared_cloud rpc(${a}) failed: ${await h(i)}`);return i.json()}}}function p(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_ANON_KEY",a);return!!(b&&c)}function q(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);if(!b||!c)throw Error("Shared cloud not configured: set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY.");return o({baseUrl:b,apikey:c,bearer:c,agentId:a.agent_id??null})}function r(a,b={}){if(k(),!a)throw Error("getSharedCloudUserClient: an access token (user JWT) is required");let c=l("SUPABASE_URL",b),d=l("SUPABASE_ANON_KEY",b);if(!c||!d)throw Error("Shared cloud (user) not configured: set SUPABASE_URL and SUPABASE_ANON_KEY.");return o({baseUrl:c,apikey:d,bearer:a,agentId:b.agent_id??null})}[e,f,g,h,i]=j.then?(await j)():j,Object.freeze(["private","team","org","link"]);let N=Object.freeze(["org","team","private"]),O=Object.freeze(["dashboard_space","project"]),P=Object.freeze(["folder","file","artifact"]);function s(a,b){if(!N.includes(a))throw Error(`${b}: invalid visibility "${a}" (expected one of ${N.join("|")})`)}function t(a,b){if(!O.includes(a))throw Error(`${b}: invalid space_type "${a}" (expected one of ${O.join("|")})`)}function u(a,b){return(0,e.getDb)().prepare("SELECT * FROM shared_space_publications WHERE local_space_id = ? AND space_type = ?").get(a,b)||null}function v(a){let b=(0,e.getDb)(),c=b.prepare("SELECT id FROM shared_space_publications WHERE local_space_id = ? AND space_type = ?").get(a.local_space_id,a.space_type),d=c?.id||(0,e.newId)("spub");return b.prepare(`INSERT INTO shared_space_publications
2
2
  (id, local_space_id, space_type, org_id, cloud_space_id, slug, name,
3
3
  visibility, include_resource_metadata, resource_count, status, last_error,
4
4
  published_by, published_at, last_synced_at, unpublished_at)
@@ -15,5 +15,5 @@
15
15
  last_error = excluded.last_error,
16
16
  published_by = excluded.published_by,
17
17
  last_synced_at = excluded.last_synced_at,
18
- unpublished_at = excluded.unpublished_at`).run(d,a.local_space_id,a.space_type,a.org_id,a.cloud_space_id??null,a.slug??null,a.name??null,a.visibility,+!!a.include_resource_metadata,Number(a.resource_count)||0,a.status,a.last_error??null,a.published_by??null,a.published_at??(0,e.nowIso)(),a.last_synced_at??null,a.unpublished_at??null),d}function w(a,b="dashboard_space"){t(b,"getSharedSpaceStatus");let c=u(a,b);return c?{shared:"published"===c.status,status:c.status,space_type:c.space_type,local_space_id:c.local_space_id,cloud_space_id:c.cloud_space_id||null,slug:c.slug||null,name:c.name||null,visibility:c.visibility||null,include_resource_metadata:1===c.include_resource_metadata,resource_count:Number(c.resource_count)||0,last_error:c.last_error||null,published_by:c.published_by||null,published_at:c.published_at||null,last_synced_at:c.last_synced_at||null}:{shared:!1,status:"local",space_type:b,local_space_id:a,cloud_space_id:null,visibility:null,resource_count:0,last_synced_at:null}}function x({status:a,space_type:b}={}){let c=(0,e.getDb)(),d=[],f=[];a&&(d.push("status = ?"),f.push(a)),b&&(d.push("space_type = ?"),f.push(b));let g=`SELECT * FROM shared_space_publications ${d.length?`WHERE ${d.join(" AND ")}`:""} ORDER BY published_at DESC`;return c.prepare(g).all(...f)}async function y(a,{session:b,options:c,resources:d=null,include_resource_metadata:f=!1,excludedLocalOnly:g=0,target_type:i,target_id:j}){var k=a;if(!k||"object"!=typeof k)throw Error("shared space metadata must be an object");for(let a of["org_id","space_type","local_space_id","slug","name","visibility"])if(null==k[a]||""===k[a])throw Error(`shared space metadata missing required field: ${a}`);t(k.space_type,"validateSharedSpaceMetadata"),s(k.visibility,"validateSharedSpaceMetadata");let{org_id:l,space_type:n,local_space_id:o}=a;if(!m(c))throw Error(`publish ${n}: shared cloud is not configured. Set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY (vault or env) before sharing.`);let p=q(c),r=null;try{let b=await p.upsert("shared_spaces",a,{onConflict:"org_id,space_type,local_space_id"});r=Array.isArray(b)?b[0]:b}catch(c){throw v({local_space_id:o,space_type:n,org_id:l,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,status:"error",last_error:c.message,published_by:b?.user_id}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.publish.error`,action_target_id:j,action_target_type:i,status:"error",summary:`Failed to share ${n} ${o} to shared cloud`,meta:{visibility:a.visibility,error:c.message}}),c}let u=r?.id??null,x=0;if(f&&Array.isArray(d)&&u&&(await p.delete("shared_space_resources",{filters:{org_id:l,shared_space_id:u}}),d.length)){let a=d.map(a=>(function(a,b={}){if(!a||!a.local_resource_id)throw Error("mapProjectResourceMetadata: resource with local_resource_id is required");if(!b.org_id)throw Error("mapProjectResourceMetadata: org_id is required");if(!b.cloud_space_id)throw Error("mapProjectResourceMetadata: cloud_space_id is required");if(!O.includes(a.resource_type))throw Error(`mapProjectResourceMetadata: invalid resource_type "${a.resource_type}"`);return{org_id:b.org_id,shared_space_id:b.cloud_space_id,local_resource_id:String(a.local_resource_id),resource_type:a.resource_type,name:a.name||a.local_resource_id,path:a.path??null,mime_type:a.mime_type??null,kind:a.kind??null,size_bytes:"number"==typeof a.size_bytes?a.size_bytes:null,sha256:a.sha256??null,local_only:!!a.local_only,metadata:a.metadata??null}})(a,{org_id:l,cloud_space_id:u}));await p.upsert("shared_space_resources",a,{onConflict:"shared_space_id,resource_type,local_resource_id"}),x=a.length}return v({local_space_id:o,space_type:n,org_id:l,cloud_space_id:u,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,resource_count:x,status:"published",published_by:b?.user_id,published_at:(0,e.nowIso)(),last_synced_at:(0,e.nowIso)()}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.published`,action_target_id:j,action_target_type:i,status:"success",summary:`Shared ${n} ${o} to shared cloud (visibility: ${a.visibility})`,meta:{visibility:a.visibility,cloud_space_id:u,resource_count:x,excluded_local_only:g}}),w(o,n)}async function z(a={},b={}){var c;let{space_id:d,session:f,visibility:g="org"}=a;if(!d)throw Error("publishDashboardSpace: space_id is required");let h=a.org_id||f?.org_id;if(!h)throw Error("publishDashboardSpace: org_id (or session.org_id) is required");s(g,"publishDashboardSpace");let i=(0,e.getDb)().prepare("SELECT * FROM dashboard_spaces WHERE id = ?").get(String(d));if(!i)throw Error(`publishDashboardSpace: dashboard space ${d} not found locally`);let j=function(a,b={}){if(!a||!a.id)throw Error("mapDashboardSpaceToSharedSpaceMetadata: space with id is required");if(!b.org_id)throw Error("mapDashboardSpaceToSharedSpaceMetadata: org_id is required");let c=b.visibility||"org";s(c,"mapDashboardSpaceToSharedSpaceMetadata");let d=a.slug||String(a.id);return{org_id:b.org_id,space_type:"dashboard_space",local_space_id:String(a.id),local_project_id:null,slug:d,name:a.name||d,description:a.description??null,visibility:c,created_by:b.created_by??null}}(i,{org_id:h,visibility:g,created_by:a.published_by??null}),k=(c=String(d),(0,e.getDb)().prepare("SELECT id, title, kind FROM artifacts WHERE space_id = ? ORDER BY created_at DESC").all(String(c)).map(a=>({local_resource_id:a.id,resource_type:"artifact",name:a.title||a.id,kind:a.kind??null})));return y(j,{session:f,options:b,resources:k,include_resource_metadata:!0,target_type:"dashboard_space",target_id:String(d)})}async function A(a={},b={}){let{session:c,visibility:d="org",includeResourceMetadata:f=!0}=a,g=a.project_id||a.slug;if(!g)throw Error("publishProjectFolder: project_id or slug is required");let h=a.org_id||c?.org_id;if(!h)throw Error("publishProjectFolder: org_id (or session.org_id) is required");s(d,"publishProjectFolder");let j=(0,i.U1)(g);if(!j)throw Error(`publishProjectFolder: project ${g} not found locally`);let k=function(a,b={}){if(!a||!a.id)throw Error("mapProjectToSharedSpaceMetadata: project with id is required");if(!b.org_id)throw Error("mapProjectToSharedSpaceMetadata: org_id is required");let c=b.visibility||"org";return s(c,"mapProjectToSharedSpaceMetadata"),{org_id:b.org_id,space_type:"project",local_space_id:String(a.id),local_project_id:String(a.id),slug:a.slug||String(a.id),name:a.name||a.slug||String(a.id),description:a.description??null,visibility:c,created_by:b.created_by??null}}(j,{org_id:h,visibility:d,created_by:a.published_by??null}),l=null,m=0;if(f){let b=function(a,{includeLocalOnly:b=!1,allowLocalOnlyOverride:c=!1}={}){if(b&&!c)throw Error("publishProjectFolder: refusing to share local_only resources. local_only is a hard content boundary; pass allowLocalOnlyOverride:true to force metadata-only sharing of local_only files (bodies are never uploaded).");let d=(0,e.getDb)(),f=[];for(let b of d.prepare("SELECT * FROM disk_folders WHERE project_id = ? ORDER BY path ASC").all(a))f.push({local_resource_id:b.id,resource_type:"folder",name:b.name,path:b.path});let g=0;for(let c of d.prepare("SELECT * FROM disk_files WHERE project_id = ? ORDER BY updated_at DESC").all(a)){let a=1===c.local_only;if(a&&!b){g+=1;continue}f.push({local_resource_id:c.id,resource_type:"file",name:c.name,path:c.path??null,mime_type:c.mime_type??null,kind:c.kind??null,size_bytes:"number"==typeof c.size_bytes?c.size_bytes:null,sha256:c.sha256??null,local_only:a})}for(let b of d.prepare("SELECT id, title, kind FROM artifacts WHERE project_id = ? ORDER BY created_at DESC").all(a))f.push({local_resource_id:b.id,resource_type:"artifact",name:b.title||b.id,kind:b.kind??null});return{resources:f,excludedLocalOnly:g}}(j.id,{includeLocalOnly:!0===a.includeLocalOnly,allowLocalOnlyOverride:!0===a.allowLocalOnlyOverride});l=b.resources,m=b.excludedLocalOnly}return y(k,{session:c,options:b,resources:l,include_resource_metadata:f,excludedLocalOnly:m,target_type:"project",target_id:j.id})}async function B(a={},b={}){let{local_space_id:c,session:d,space_type:f="dashboard_space"}=a;if(!c)throw Error("unpublishSpace: local_space_id is required");let g=a.org_id||d?.org_id;if(!g)throw Error("unpublishSpace: org_id (or session.org_id) is required");if(t(f,"unpublishSpace"),!m(b))throw Error("unpublishSpace: shared cloud is not configured.");let i=q(b),j=u(c,f);return j?.cloud_space_id&&await i.delete("shared_space_resources",{filters:{org_id:g,shared_space_id:j.cloud_space_id}}),await i.delete("shared_spaces",{filters:{org_id:g,space_type:f,local_space_id:c}}),v({local_space_id:c,space_type:f,org_id:g,visibility:j?.visibility||"private",status:"unpublished",resource_count:0,published_by:d?.user_id,unpublished_at:(0,e.nowIso)(),last_synced_at:(0,e.nowIso)()}),(0,h.appendComplianceAudit)({user_id:d?.user_id,org_id:g,action:`${f}.shared.unpublished`,action_target_id:c,action_target_type:f,status:"success",summary:`Unshared ${f} ${c} from shared cloud`}),w(c,f)}function C(a,b,c,d){let f=(0,e.getDb)();if(!f.prepare("SELECT id FROM organizations WHERE id = ?").get(a)){let b=(0,e.nowIso)();f.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
19
- VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,d||String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.newId)("mem"),a,b,c,(0,e.nowIso)())}async function D(a,b={}){let c,d=a?.supabase_access_token;if(!d||!p(b))return[];try{c=await r(d,b).rpc("claim_email_invites")}catch{return[]}let e=Array.isArray(c)?c:[],f=[];for(let b of e){let c=b.granted_role||b.role;b.org_id&&(C(b.org_id,a.user_id,c),f.push({org_id:b.org_id,role:c}))}return f}async function E(a,b,c={}){let d=b?.supabase_access_token;if(!d)throw Error("redeemInviteViaCloud: no session access token");if(!p(c))throw Error("redeemInviteViaCloud: shared cloud (user) not configured");let e=await r(d,c).rpc("redeem_invite_token",{p_token:a}),f=Array.isArray(e)?e[0]:e;if(!f||!f.org_id)throw Object.assign(Error("invite is no longer valid (expired, revoked, or fully used)"),{code:"invite_invalid"});let g=f.granted_role||f.role;return C(f.org_id,b.user_id,g),{org_id:f.org_id,role:g}}let P=Object.freeze(["user","team","org"]),Q=Object.freeze(["user","org"]),R=Object.freeze(["read","write","admin"]),S=Object.freeze({read:1,write:2,admin:3});function F(a,b,{writableOnly:c=!1}={}){let d=c?Q:P;if(!d.includes(a))throw Error(`${b}: invalid principal_type "${a}" (expected one of ${d.join("|")})`)}function G(a,b,c,d){if("org"===a)return b||c;if(!b)throw Error(`${d}: principal_id is required for principal_type "${a}"`);return b}function H(a,b,c){let d=u(a,b);if(!d||"published"!==d.status||!d.cloud_space_id)throw Error(`${c}: ${b} ${a} is not published to the shared cloud`);return d.cloud_space_id}async function I(a={},b={}){let c,{local_space_id:d,session:f,principal_type:g,permission:i="read",space_type:j="project"}=a;if(!d)throw Error("grantSpaceAccess: local_space_id is required");let k=a.org_id||f?.org_id;if(!k)throw Error("grantSpaceAccess: org_id (or session.org_id) is required");t(j,"grantSpaceAccess"),F(g,"grantSpaceAccess",{writableOnly:!0});if(!R.includes(i))throw Error(`grantSpaceAccess: invalid permission "${i}" (expected one of ${R.join("|")})`);let l=G(g,a.principal_id,k,"grantSpaceAccess");if(!m(b))throw Error("grantSpaceAccess: shared cloud is not configured.");let n=H(d,j,"grantSpaceAccess"),o=q(b);try{let a=await o.upsert("shared_space_acl",{shared_space_id:n,org_id:k,principal_type:g,principal_id:l,permission:i,created_by:f?.user_id??null,updated_at:(0,e.nowIso)()},{onConflict:"shared_space_id,principal_type,principal_id"});c=Array.isArray(a)?a[0]:a}catch(a){throw(0,h.appendComplianceAudit)({user_id:f?.user_id,org_id:k,action:`${j}.shared.acl.grant.error`,action_target_id:d,action_target_type:j,status:"error",summary:`Failed to grant ${i} on ${j} ${d} to ${g}:${l}`,meta:{principal_type:g,principal_id:l,permission:i,error:a.message}}),a}return(0,h.appendComplianceAudit)({user_id:f?.user_id,org_id:k,action:`${j}.shared.acl.granted`,action_target_id:d,action_target_type:j,status:"success",summary:`Granted ${i} on ${j} ${d} to ${g}:${l}`,meta:{principal_type:g,principal_id:l,permission:i,cloud_space_id:n}}),c}async function J(a={},b={}){let{local_space_id:c,session:d,principal_type:e,space_type:f="project"}=a;if(!c)throw Error("revokeSpaceAccess: local_space_id is required");let g=a.org_id||d?.org_id;if(!g)throw Error("revokeSpaceAccess: org_id (or session.org_id) is required");t(f,"revokeSpaceAccess"),F(e,"revokeSpaceAccess",{writableOnly:!0});let i=G(e,a.principal_id,g,"revokeSpaceAccess");if(!m(b))throw Error("revokeSpaceAccess: shared cloud is not configured.");let j=H(c,f,"revokeSpaceAccess"),k=q(b),l=await k.delete("shared_space_acl",{filters:{shared_space_id:j,principal_type:e,principal_id:i}});return(0,h.appendComplianceAudit)({user_id:d?.user_id,org_id:g,action:`${f}.shared.acl.revoked`,action_target_id:c,action_target_type:f,status:"success",summary:`Revoked ${f} ${c} grant from ${e}:${i}`,meta:{principal_type:e,principal_id:i,cloud_space_id:j}}),{revoked:Array.isArray(l)?l.length:0,principal_type:e,principal_id:i}}async function K(a={},b={}){let{local_space_id:c,session:d,space_type:e="project"}=a;if(!c)throw Error("listSpaceAccess: local_space_id is required");if(!(a.org_id||d?.org_id))throw Error("listSpaceAccess: org_id (or session.org_id) is required");t(e,"listSpaceAccess");let f=u(c,e);if(!f||"published"!==f.status||!f.cloud_space_id)return[];if(!m(b))throw Error("listSpaceAccess: shared cloud is not configured.");return q(b).select("shared_space_acl",{filters:{shared_space_id:f.cloud_space_id},select:"*",limit:1e3})}async function L(a={},b={}){let{local_space_id:c,user_id:d,space_type:e="project",session:f}=a;if(!c)throw Error("resolveSpacePermission: local_space_id is required");t(e,"resolveSpacePermission");let g=a.org_id||f?.org_id,h=u(c,e);if(!h||"published"!==h.status)return null;let i=await K({local_space_id:c,space_type:e,org_id:g},b);return function({visibility:a,grants:b=[],userId:c,orgId:d}={}){let e=null,f=a=>{a&&S[a]&&(!e||S[a]>S[e])&&(e=a)};for(let e of("org"===a&&f("read"),b))e&&("user"===e.principal_type&&c&&e.principal_id===c?f(e.permission):"org"===e.principal_type&&(null==e.principal_id||e.principal_id===d)&&f(e.permission));return e}({visibility:h.visibility,grants:i,userId:d,orgId:g})}d()}catch(a){d(a)}})}};
18
+ unpublished_at = excluded.unpublished_at`).run(d,a.local_space_id,a.space_type,a.org_id,a.cloud_space_id??null,a.slug??null,a.name??null,a.visibility,+!!a.include_resource_metadata,Number(a.resource_count)||0,a.status,a.last_error??null,a.published_by??null,a.published_at??(0,e.nowIso)(),a.last_synced_at??null,a.unpublished_at??null),d}function w(a,b="dashboard_space"){t(b,"getSharedSpaceStatus");let c=u(a,b);return c?{shared:"published"===c.status,status:c.status,space_type:c.space_type,local_space_id:c.local_space_id,cloud_space_id:c.cloud_space_id||null,slug:c.slug||null,name:c.name||null,visibility:c.visibility||null,include_resource_metadata:1===c.include_resource_metadata,resource_count:Number(c.resource_count)||0,last_error:c.last_error||null,published_by:c.published_by||null,published_at:c.published_at||null,last_synced_at:c.last_synced_at||null}:{shared:!1,status:"local",space_type:b,local_space_id:a,cloud_space_id:null,visibility:null,resource_count:0,last_synced_at:null}}function x({status:a,space_type:b}={}){let c=(0,e.getDb)(),d=[],f=[];a&&(d.push("status = ?"),f.push(a)),b&&(d.push("space_type = ?"),f.push(b));let g=`SELECT * FROM shared_space_publications ${d.length?`WHERE ${d.join(" AND ")}`:""} ORDER BY published_at DESC`;return c.prepare(g).all(...f)}async function y(a,{session:b,options:c,resources:d=null,include_resource_metadata:f=!1,excludedLocalOnly:g=0,target_type:i,target_id:j}){var k=a;if(!k||"object"!=typeof k)throw Error("shared space metadata must be an object");for(let a of["org_id","space_type","local_space_id","slug","name","visibility"])if(null==k[a]||""===k[a])throw Error(`shared space metadata missing required field: ${a}`);t(k.space_type,"validateSharedSpaceMetadata"),s(k.visibility,"validateSharedSpaceMetadata");let{org_id:l,space_type:n,local_space_id:o}=a;if(!m(c))throw Error(`publish ${n}: shared cloud is not configured. Set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY (vault or env) before sharing.`);let p=q(c),r=null;try{let b=await p.upsert("shared_spaces",a,{onConflict:"org_id,space_type,local_space_id"});r=Array.isArray(b)?b[0]:b}catch(c){throw v({local_space_id:o,space_type:n,org_id:l,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,status:"error",last_error:c.message,published_by:b?.user_id}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.publish.error`,action_target_id:j,action_target_type:i,status:"error",summary:`Failed to share ${n} ${o} to shared cloud`,meta:{visibility:a.visibility,error:c.message}}),c}let u=r?.id??null,x=0;if(f&&Array.isArray(d)&&u&&(await p.delete("shared_space_resources",{filters:{org_id:l,shared_space_id:u}}),d.length)){let a=d.map(a=>(function(a,b={}){if(!a||!a.local_resource_id)throw Error("mapProjectResourceMetadata: resource with local_resource_id is required");if(!b.org_id)throw Error("mapProjectResourceMetadata: org_id is required");if(!b.cloud_space_id)throw Error("mapProjectResourceMetadata: cloud_space_id is required");if(!P.includes(a.resource_type))throw Error(`mapProjectResourceMetadata: invalid resource_type "${a.resource_type}"`);return{org_id:b.org_id,shared_space_id:b.cloud_space_id,local_resource_id:String(a.local_resource_id),resource_type:a.resource_type,name:a.name||a.local_resource_id,path:a.path??null,mime_type:a.mime_type??null,kind:a.kind??null,size_bytes:"number"==typeof a.size_bytes?a.size_bytes:null,sha256:a.sha256??null,local_only:!!a.local_only,metadata:a.metadata??null}})(a,{org_id:l,cloud_space_id:u}));await p.upsert("shared_space_resources",a,{onConflict:"shared_space_id,resource_type,local_resource_id"}),x=a.length}return v({local_space_id:o,space_type:n,org_id:l,cloud_space_id:u,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,resource_count:x,status:"published",published_by:b?.user_id,published_at:(0,e.nowIso)(),last_synced_at:(0,e.nowIso)()}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.published`,action_target_id:j,action_target_type:i,status:"success",summary:`Shared ${n} ${o} to shared cloud (visibility: ${a.visibility})`,meta:{visibility:a.visibility,cloud_space_id:u,resource_count:x,excluded_local_only:g}}),w(o,n)}async function z(a={},b={}){var c;let{space_id:d,session:f,visibility:g="org"}=a;if(!d)throw Error("publishDashboardSpace: space_id is required");let h=a.org_id||f?.org_id;if(!h)throw Error("publishDashboardSpace: org_id (or session.org_id) is required");s(g,"publishDashboardSpace");let i=(0,e.getDb)().prepare("SELECT * FROM dashboard_spaces WHERE id = ?").get(String(d));if(!i)throw Error(`publishDashboardSpace: dashboard space ${d} not found locally`);let j=function(a,b={}){if(!a||!a.id)throw Error("mapDashboardSpaceToSharedSpaceMetadata: space with id is required");if(!b.org_id)throw Error("mapDashboardSpaceToSharedSpaceMetadata: org_id is required");let c=b.visibility||"org";s(c,"mapDashboardSpaceToSharedSpaceMetadata");let d=a.slug||String(a.id);return{org_id:b.org_id,space_type:"dashboard_space",local_space_id:String(a.id),local_project_id:null,slug:d,name:a.name||d,description:a.description??null,visibility:c,created_by:b.created_by??null}}(i,{org_id:h,visibility:g,created_by:a.published_by??null}),k=(c=String(d),(0,e.getDb)().prepare("SELECT id, title, kind FROM artifacts WHERE space_id = ? ORDER BY created_at DESC").all(String(c)).map(a=>({local_resource_id:a.id,resource_type:"artifact",name:a.title||a.id,kind:a.kind??null})));return y(j,{session:f,options:b,resources:k,include_resource_metadata:!0,target_type:"dashboard_space",target_id:String(d)})}async function A(a={},b={}){let{session:c,visibility:d="org",includeResourceMetadata:f=!0}=a,g=a.project_id||a.slug;if(!g)throw Error("publishProjectFolder: project_id or slug is required");let h=a.org_id||c?.org_id;if(!h)throw Error("publishProjectFolder: org_id (or session.org_id) is required");s(d,"publishProjectFolder");let j=(0,i.U1)(g);if(!j)throw Error(`publishProjectFolder: project ${g} not found locally`);let k=function(a,b={}){if(!a||!a.id)throw Error("mapProjectToSharedSpaceMetadata: project with id is required");if(!b.org_id)throw Error("mapProjectToSharedSpaceMetadata: org_id is required");let c=b.visibility||"org";return s(c,"mapProjectToSharedSpaceMetadata"),{org_id:b.org_id,space_type:"project",local_space_id:String(a.id),local_project_id:String(a.id),slug:a.slug||String(a.id),name:a.name||a.slug||String(a.id),description:a.description??null,visibility:c,created_by:b.created_by??null}}(j,{org_id:h,visibility:d,created_by:a.published_by??null}),l=null,m=0;if(f){let b=function(a,{includeLocalOnly:b=!1,allowLocalOnlyOverride:c=!1}={}){if(b&&!c)throw Error("publishProjectFolder: refusing to share local_only resources. local_only is a hard content boundary; pass allowLocalOnlyOverride:true to force metadata-only sharing of local_only files (bodies are never uploaded).");let d=(0,e.getDb)(),f=[];for(let b of d.prepare("SELECT * FROM disk_folders WHERE project_id = ? ORDER BY path ASC").all(a))f.push({local_resource_id:b.id,resource_type:"folder",name:b.name,path:b.path});let g=0;for(let c of d.prepare("SELECT * FROM disk_files WHERE project_id = ? ORDER BY updated_at DESC").all(a)){let a=1===c.local_only;if(a&&!b){g+=1;continue}f.push({local_resource_id:c.id,resource_type:"file",name:c.name,path:c.path??null,mime_type:c.mime_type??null,kind:c.kind??null,size_bytes:"number"==typeof c.size_bytes?c.size_bytes:null,sha256:c.sha256??null,local_only:a})}for(let b of d.prepare("SELECT id, title, kind FROM artifacts WHERE project_id = ? ORDER BY created_at DESC").all(a))f.push({local_resource_id:b.id,resource_type:"artifact",name:b.title||b.id,kind:b.kind??null});return{resources:f,excludedLocalOnly:g}}(j.id,{includeLocalOnly:!0===a.includeLocalOnly,allowLocalOnlyOverride:!0===a.allowLocalOnlyOverride});l=b.resources,m=b.excludedLocalOnly}return y(k,{session:c,options:b,resources:l,include_resource_metadata:f,excludedLocalOnly:m,target_type:"project",target_id:j.id})}async function B(a={},b={}){let{local_space_id:c,session:d,space_type:f="dashboard_space"}=a;if(!c)throw Error("unpublishSpace: local_space_id is required");let g=a.org_id||d?.org_id;if(!g)throw Error("unpublishSpace: org_id (or session.org_id) is required");if(t(f,"unpublishSpace"),!m(b))throw Error("unpublishSpace: shared cloud is not configured.");let i=q(b),j=u(c,f);return j?.cloud_space_id&&await i.delete("shared_space_resources",{filters:{org_id:g,shared_space_id:j.cloud_space_id}}),await i.delete("shared_spaces",{filters:{org_id:g,space_type:f,local_space_id:c}}),v({local_space_id:c,space_type:f,org_id:g,visibility:j?.visibility||"private",status:"unpublished",resource_count:0,published_by:d?.user_id,unpublished_at:(0,e.nowIso)(),last_synced_at:(0,e.nowIso)()}),(0,h.appendComplianceAudit)({user_id:d?.user_id,org_id:g,action:`${f}.shared.unpublished`,action_target_id:c,action_target_type:f,status:"success",summary:`Unshared ${f} ${c} from shared cloud`}),w(c,f)}function C(a,b,c,d){let f=(0,e.getDb)();if(!f.prepare("SELECT id FROM organizations WHERE id = ?").get(a)){let b=(0,e.nowIso)();f.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
19
+ VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,d||String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.newId)("mem"),a,b,c,(0,e.nowIso)())}async function D(a,b={}){let c,d=a?.supabase_access_token;if(!d||!p(b))return[];try{c=await r(d,b).rpc("claim_email_invites")}catch{return[]}let e=Array.isArray(c)?c:[],f=[];for(let b of e){let c=b.granted_role||b.role;b.org_id&&(C(b.org_id,a.user_id,c),f.push({org_id:b.org_id,role:c}))}return f}async function E(a,b,c={}){let d=b?.supabase_access_token;if(!d)throw Error("redeemInviteViaCloud: no session access token");if(!p(c))throw Error("redeemInviteViaCloud: shared cloud (user) not configured");let e=await r(d,c).rpc("redeem_invite_token",{p_token:a}),f=Array.isArray(e)?e[0]:e;if(!f||!f.org_id)throw Object.assign(Error("invite is no longer valid (expired, revoked, or fully used)"),{code:"invite_invalid"});let g=f.granted_role||f.role;return C(f.org_id,b.user_id,g),{org_id:f.org_id,role:g}}async function F(a,b={}){let c,d,e=a?.user_id;if(!e)return[];let f=a?.supabase_access_token||null,g=function({serviceReady:a,userReady:b,accessToken:c}){return a?"admin":b&&c?"user":null}({serviceReady:m(b),userReady:p(b),accessToken:f});if(!g)return[];try{c="admin"===g?q(b):r(f,b)}catch{return[]}try{d=await c.select("org_memberships",{filters:{user_id:e},select:"org_id,role",limit:100})}catch{return[]}if(!Array.isArray(d)||0===d.length)return[];let h=[...new Set(d.map(a=>a.org_id).filter(Boolean))],i=new Map;try{if(h.length){let a=await c.select("organizations",{filters:{id:`in.(${h.join(",")})`},select:"id,name",limit:1e3});for(let b of Array.isArray(a)?a:[])b.id&&i.set(b.id,b.name)}}catch{}let j=[];for(let a of d)a.org_id&&(C(a.org_id,e,a.role,i.get(a.org_id)),j.push({org_id:a.org_id,role:a.role}));return j}let Q=Object.freeze(["user","team","org"]),R=Object.freeze(["user","org"]),S=Object.freeze(["read","write","admin"]),T=Object.freeze({read:1,write:2,admin:3});function G(a,b,{writableOnly:c=!1}={}){let d=c?R:Q;if(!d.includes(a))throw Error(`${b}: invalid principal_type "${a}" (expected one of ${d.join("|")})`)}function H(a,b,c,d){if("org"===a)return b||c;if(!b)throw Error(`${d}: principal_id is required for principal_type "${a}"`);return b}function I(a,b,c){let d=u(a,b);if(!d||"published"!==d.status||!d.cloud_space_id)throw Error(`${c}: ${b} ${a} is not published to the shared cloud`);return d.cloud_space_id}async function J(a={},b={}){let c,{local_space_id:d,session:f,principal_type:g,permission:i="read",space_type:j="project"}=a;if(!d)throw Error("grantSpaceAccess: local_space_id is required");let k=a.org_id||f?.org_id;if(!k)throw Error("grantSpaceAccess: org_id (or session.org_id) is required");t(j,"grantSpaceAccess"),G(g,"grantSpaceAccess",{writableOnly:!0});if(!S.includes(i))throw Error(`grantSpaceAccess: invalid permission "${i}" (expected one of ${S.join("|")})`);let l=H(g,a.principal_id,k,"grantSpaceAccess");if(!m(b))throw Error("grantSpaceAccess: shared cloud is not configured.");let n=I(d,j,"grantSpaceAccess"),o=q(b);try{let a=await o.upsert("shared_space_acl",{shared_space_id:n,org_id:k,principal_type:g,principal_id:l,permission:i,created_by:f?.user_id??null,updated_at:(0,e.nowIso)()},{onConflict:"shared_space_id,principal_type,principal_id"});c=Array.isArray(a)?a[0]:a}catch(a){throw(0,h.appendComplianceAudit)({user_id:f?.user_id,org_id:k,action:`${j}.shared.acl.grant.error`,action_target_id:d,action_target_type:j,status:"error",summary:`Failed to grant ${i} on ${j} ${d} to ${g}:${l}`,meta:{principal_type:g,principal_id:l,permission:i,error:a.message}}),a}return(0,h.appendComplianceAudit)({user_id:f?.user_id,org_id:k,action:`${j}.shared.acl.granted`,action_target_id:d,action_target_type:j,status:"success",summary:`Granted ${i} on ${j} ${d} to ${g}:${l}`,meta:{principal_type:g,principal_id:l,permission:i,cloud_space_id:n}}),c}async function K(a={},b={}){let{local_space_id:c,session:d,principal_type:e,space_type:f="project"}=a;if(!c)throw Error("revokeSpaceAccess: local_space_id is required");let g=a.org_id||d?.org_id;if(!g)throw Error("revokeSpaceAccess: org_id (or session.org_id) is required");t(f,"revokeSpaceAccess"),G(e,"revokeSpaceAccess",{writableOnly:!0});let i=H(e,a.principal_id,g,"revokeSpaceAccess");if(!m(b))throw Error("revokeSpaceAccess: shared cloud is not configured.");let j=I(c,f,"revokeSpaceAccess"),k=q(b),l=await k.delete("shared_space_acl",{filters:{shared_space_id:j,principal_type:e,principal_id:i}});return(0,h.appendComplianceAudit)({user_id:d?.user_id,org_id:g,action:`${f}.shared.acl.revoked`,action_target_id:c,action_target_type:f,status:"success",summary:`Revoked ${f} ${c} grant from ${e}:${i}`,meta:{principal_type:e,principal_id:i,cloud_space_id:j}}),{revoked:Array.isArray(l)?l.length:0,principal_type:e,principal_id:i}}async function L(a={},b={}){let{local_space_id:c,session:d,space_type:e="project"}=a;if(!c)throw Error("listSpaceAccess: local_space_id is required");if(!(a.org_id||d?.org_id))throw Error("listSpaceAccess: org_id (or session.org_id) is required");t(e,"listSpaceAccess");let f=u(c,e);if(!f||"published"!==f.status||!f.cloud_space_id)return[];if(!m(b))throw Error("listSpaceAccess: shared cloud is not configured.");return q(b).select("shared_space_acl",{filters:{shared_space_id:f.cloud_space_id},select:"*",limit:1e3})}async function M(a={},b={}){let{local_space_id:c,user_id:d,space_type:e="project",session:f}=a;if(!c)throw Error("resolveSpacePermission: local_space_id is required");t(e,"resolveSpacePermission");let g=a.org_id||f?.org_id,h=u(c,e);if(!h||"published"!==h.status)return null;let i=await L({local_space_id:c,space_type:e,org_id:g},b);return function({visibility:a,grants:b=[],userId:c,orgId:d}={}){let e=null,f=a=>{a&&T[a]&&(!e||T[a]>T[e])&&(e=a)};for(let e of("org"===a&&f("read"),b))e&&("user"===e.principal_type&&c&&e.principal_id===c?f(e.permission):"org"===e.principal_type&&(null==e.principal_id||e.principal_id===d)&&f(e.permission));return e}({visibility:h.visibility,grants:i,userId:d,orgId:g})}d()}catch(a){d(a)}})}};
@@ -0,0 +1 @@
1
+ exports.id=9430,exports.ids=[9430],exports.modules={5043:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"40a002fde31c37c2706e3dc5cc112a9a59ba725daf":()=>e.$$RSC_SERVER_ACTION_0});var e=c(91845),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},6974:(a,b,c)=>{Promise.resolve().then(c.bind(c,35271))},35271:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx","default")},86893:(a,b,c)=>{"use strict";c.d(b,{hI:()=>g,iN:()=>f,pp:()=>i,qs:()=>h});var d=c(75338),e=c(35271);function f({kicker:a="madarX OS v1.0",title:b,description:c,actions:f,hideProjectSwitcher:g,children:h}){return(0,d.jsxs)("main",{className:"admin-shell",children:[(0,d.jsxs)("header",{className:"admin-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"admin-kicker",children:a}),(0,d.jsx)("h1",{children:b}),c?(0,d.jsx)("p",{children:c}):null]}),(0,d.jsxs)("div",{className:"admin-header-actions",children:[g?null:(0,d.jsx)(e.default,{}),f]})]}),h]})}function g({label:a,value:b,tone:c}){return(0,d.jsxs)("div",{className:`admin-stat ${c||""}`,children:[(0,d.jsx)("b",{children:b}),(0,d.jsx)("span",{children:a})]})}function h({children:a,tone:b="neutral"}){return(0,d.jsx)("span",{className:`admin-pill ${b}`,children:a})}function i({title:a,children:b}){return(0,d.jsxs)("div",{className:"admin-empty",children:[(0,d.jsx)("b",{children:a}),(0,d.jsx)("p",{children:b})]})}},89670:(a,b,c)=>{Promise.resolve().then(c.bind(c,94657))},91845:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{$$RSC_SERVER_ACTION_0:()=>u,default:()=>p,dynamic:()=>q,runtime:()=>r});var e=c(75338),f=c(75879);c(68633);var g=c(16780),h=c(82161),i=c(86893),j=c(83963),k=c(60105),l=a([j,k]);[j,k]=l.then?(await l)():l;let q="force-dynamic",r="nodejs",s={executive:"Executive",manager:"Manager",team_lead:"Team Lead",individual_contributor:"Contributor"},t={executive:"mars",manager:"ready",team_lead:"warn",individual_contributor:"neutral"};function m(a=""){return a.split(/\s+/).map(a=>a[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"\xb7"}let u=async function(a){let b=String(a.get("agent_id")||"").trim();if(!b)return;let c=String(a.get("reports_to")||"").trim(),d={reports_to:""===c?null:c},e=String(a.get("role")||"").trim();e&&(d.role=e);let f=String(a.get("title")||"").trim();(f||a.has("title"))&&(d.title=f||null);try{(0,j.jN)(b,d)}catch(a){console.warn("updateAgentOrg failed",a?.message)}(0,g.revalidatePath)("/org"),(0,g.revalidatePath)("/agents"),(0,h.redirect)("/org")};function n({node:a,workloadById:b}){let c=function(a){if(a.role&&s[a.role])return a.role;let b=a.reports?.length||0;return b>=4?"executive":b>=2?"manager":1===b?"team_lead":"individual_contributor"}(a),d=s[c],f=t[c],g=a.reports?.length||0,h=b.get(a.id),j=Number(h?.active_tasks||0),k=Number(h?.blocked_tasks||0),l=Number(h?.completed_tasks||0),n=a.status||"created";return(0,e.jsxs)("article",{className:`org-card org-card--${c}`,"data-reports":g>0?"has":"none",children:[(0,e.jsxs)("div",{className:"org-card-head",children:[(0,e.jsx)("div",{className:"org-card-avatar","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{className:"org-card-identity",children:[(0,e.jsx)("div",{className:"org-card-name",children:a.name}),(0,e.jsx)("div",{className:"org-card-title",children:a.title||a.mission?.slice(0,64)||"No title set"})]})]}),(0,e.jsxs)("div",{className:"org-card-meta",children:[(0,e.jsx)(i.qs,{tone:f,children:d}),(0,e.jsx)(i.qs,{tone:"heartbeat ok"===n?"ready":"terminated"===n?"danger":"neutral",children:n}),g>0?(0,e.jsxs)(i.qs,{tone:"neutral",children:[g," report",1===g?"":"s"]}):null]}),(0,e.jsxs)("dl",{className:"org-card-stats",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Active"}),(0,e.jsx)("dd",{children:j})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Blocked"}),(0,e.jsx)("dd",{className:k?"is-warn":"",children:k})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Done"}),(0,e.jsx)("dd",{children:l})]})]})]})}function o({node:a,workloadById:b}){let c=(a.reports||[]).length>0;return(0,e.jsxs)("li",{className:"org-branch",children:[(0,e.jsx)(n,{node:a,workloadById:b}),c?(0,e.jsx)("ul",{className:"org-children",children:a.reports.map(a=>(0,e.jsx)(o,{node:a,workloadById:b},a.id))}):null]})}function p(){let a=(0,j.zP)(),b=(0,j.hC)(),c=(0,k.vc)(),d=new Map((b.workload||[]).map(a=>[a.agent_id,a])),f=c.filter(a=>c.some(b=>b.reports_to===a.id)).length,g=c.filter(a=>!a.reports_to&&a.id).length;return(0,e.jsxs)(i.iN,{title:"Org",description:"Company-style structure for your agent workforce. Set managers, define roles, and see workload at a glance.",children:[(0,e.jsxs)("section",{className:"admin-stats",children:[(0,e.jsx)(i.hI,{label:"Headcount",value:b.totals.active_agents}),(0,e.jsx)(i.hI,{label:"Leaders",value:f}),(0,e.jsx)(i.hI,{label:"Root nodes",value:g}),(0,e.jsx)(i.hI,{label:"Active tasks",value:b.totals.active_tasks})]}),(0,e.jsxs)("section",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Organisation chart"}),(0,e.jsx)("small",{children:"Top-down hierarchy. Each card shows role, status, and current workload."})]}),a.length?(0,e.jsx)("div",{className:"org-chart-scroll",children:(0,e.jsx)("ul",{className:"org-chart",children:a.map(a=>(0,e.jsx)(o,{node:a,workloadById:d},a.id))})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create an agent on the Agents page, then come back here to assign managers."})]}),(0,e.jsxs)("section",{className:"admin-grid reports-layout",children:[(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Reporting lines"}),(0,e.jsx)("small",{children:"Re-parent any agent. Cycles are blocked automatically."})]}),c.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:c.map(a=>{let b=a.reports_to?c.find(b=>b.id===a.reports_to):null,d=c.filter(b=>b.id!==a.id),f=a.role&&s[a.role]?a.role:"individual_contributor";return(0,e.jsxs)("form",{action:u,className:"org-reporting-row",children:[(0,e.jsx)("input",{type:"hidden",name:"agent_id",value:a.id}),(0,e.jsxs)("div",{className:"org-reporting-identity",children:[(0,e.jsx)("div",{className:"org-card-avatar small","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"org-reporting-name",children:a.name}),(0,e.jsx)("div",{className:"org-reporting-sub",children:b?`Reports to ${b.name}`:"Top of chain"})]})]}),(0,e.jsxs)("div",{className:"org-reporting-fields",children:[(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Title"}),(0,e.jsx)("input",{type:"text",name:"title",defaultValue:a.title||"",placeholder:"e.g. Marketing Manager"})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Role"}),(0,e.jsx)("select",{name:"role",defaultValue:f,children:Object.entries(s).map(([a,b])=>(0,e.jsx)("option",{value:a,children:b},a))})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Manager"}),(0,e.jsxs)("select",{name:"reports_to",defaultValue:a.reports_to||"",children:[(0,e.jsx)("option",{value:"",children:"— None (top of chain)"}),d.map(a=>(0,e.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,e.jsx)("button",{className:"admin-button",type:"submit",children:"Save"})]})]},a.id)})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create agents to start building your org."})]}),(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Workload by agent"}),(0,e.jsx)("small",{children:"Derived from active tasks."})]}),b.workload.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:b.workload.map(a=>(0,e.jsxs)("div",{className:"admin-record compact",children:[(0,e.jsxs)("div",{className:"admin-record-top",children:[(0,e.jsx)("b",{children:a.agent_name||a.agent_id}),(0,e.jsxs)(i.qs,{tone:a.blocked_tasks?"danger":a.active_tasks?"ready":"neutral",children:[a.active_tasks," active"]})]}),(0,e.jsxs)("p",{children:[a.total_tasks," total \xb7 ",a.blocked_tasks," blocked \xb7 ",a.completed_tasks," complete"]})]},a.agent_id))}):(0,e.jsx)(i.pp,{title:"No workload data",children:"Assign tasks to see workload distribution."})]})]})]})}(0,f.A)(u,"40a002fde31c37c2706e3dc5cc112a9a59ba725daf",null),d()}catch(a){d(a)}})},94657:(a,b,c)=>{"use strict";c.d(b,{default:()=>f});var d=c(21124),e=c(38301);function f(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)("");return(0,d.jsx)("div",{className:"project-switcher","data-project-switcher":!0,children:(0,d.jsxs)("select",{value:c,onChange:a=>{var b;f(b=a.target.value),b?localStorage.setItem("madarx.activeProjectId",b):localStorage.removeItem("madarx.activeProjectId"),window.dispatchEvent(new CustomEvent("madarx:project-change",{detail:{project_id:b||null}}))},"aria-label":"Active project",children:[(0,d.jsx)("option",{value:"",children:"All projects"}),a.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})})}}};