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
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1290:()=>{},2455:(e,t,a)=>{Promise.resolve().then(a.bind(a,3455)),Promise.resolve().then(a.bind(a,7438)),Promise.resolve().then(a.t.bind(a,2295,23)),Promise.resolve().then(a.t.bind(a,1290,23))},3455:(e,t,a)=>{"use strict";a.d(t,{default:()=>g});var s=a(5155),r=a(2115),n=a(63);let l=[{id:"set-anthropic-key",title:"Set Anthropic API key",category:"Credentials",keywords:["anthropic","api key","claude","apikey","llm","token","cloud engine"],kind:"secret",secretName:"ANTHROPIC_API_KEY",field:{label:"ANTHROPIC_API_KEY",type:"password",placeholder:"sk-ant-…",help:"Used by the Anthropic cloud engine. Stored encrypted in the secrets vault."},settingsHref:"/settings/tools",docSlug:"set-anthropic-key"},{id:"set-resend-key",title:"Set Resend API key (email)",category:"Credentials",keywords:["resend","email","api key","smtp","send mail"],kind:"secret",secretName:"RESEND_API_KEY",field:{label:"RESEND_API_KEY",type:"password",placeholder:"re_…",help:"Enables the email tool. Encrypted at rest."},settingsHref:"/settings/connectors",docSlug:"set-resend-key"},{id:"set-github-token",title:"Set GitHub token",category:"Credentials",keywords:["github","token","pat","api key","git","repo"],kind:"secret",secretName:"GITHUB_TOKEN",field:{label:"GITHUB_TOKEN",type:"password",placeholder:"ghp_… / github_pat_…",help:"Personal access token for the GitHub tool adapter."},settingsHref:"/settings/connectors",docSlug:"set-github-token"},{id:"set-supabase-url",title:"Set Supabase URL",category:"Credentials",keywords:["supabase","url","database","project url","connect"],kind:"secret",secretName:"SUPABASE_URL",field:{label:"SUPABASE_URL",type:"text",placeholder:"https://xxxx.supabase.co",help:"Project URL for Supabase writes + shared cloud layer."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-supabase-service-key",title:"Set Supabase service-role key",category:"Credentials",keywords:["supabase","service role","key","api key","secret","database"],kind:"secret",secretName:"SUPABASE_SERVICE_ROLE_KEY",field:{label:"SUPABASE_SERVICE_ROLE_KEY",type:"password",placeholder:"eyJ…",help:"Server-side service-role key. Never exposed to the browser."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-default-model",title:"Set default model",category:"Agent runtime",keywords:["model","default model","llm","opus","sonnet","haiku","picker"],kind:"config",configKey:"model",field:{label:"Default model",type:"select",help:"Model the main agent uses by default.",options:[{value:"claude-opus-4-7",label:"Opus 4.7"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6"},{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5"}]},settingsHref:"/settings/engines",docSlug:"choose-agent-engine"},{id:"set-design-style",title:"Set artifact design style",category:"Agent runtime",keywords:["design","style","aesthetic","minimal","bold","soft","balanced","artifact"],kind:"config",configKey:"designStyle",field:{label:"Design style",type:"select",help:"Visual style agents use when producing artifacts.",options:[{value:"balanced",label:"Balanced"},{value:"minimal",label:"Minimal"},{value:"bold",label:"Bold"},{value:"soft",label:"Soft"}]},settingsHref:"/settings/brand",docSlug:null},{id:"set-trust-mode",title:"Set main-agent trust mode",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","permission","gate"],kind:"trust-mode",field:{label:"Trust mode",type:"select",help:"Warning: auto lets the main agent run high-and-below risk tool calls WITHOUT asking you first (irreversible_external is always gated). Saving auto confirms this. approval_required is the safe default.",options:[{value:"approval_required",label:"Approval required (safe default)"},{value:"auto",label:"Auto (skip gate for ≤ high risk)"}]},settingsHref:"/settings/advanced",docSlug:"set-trust-mode"}],i=[{id:"start-whatsapp-bridge",slug:"start-whatsapp-bridge",title:"Start the WhatsApp bridge",summary:"Pair a dedicated WhatsApp number and run the gateway daemon so agents can send and receive messages.",category:"Channels",keywords:["whatsapp","bridge","gateway","baileys","pair","daemon","messages"],related:["secrets-vault-overview"]},{id:"set-api-key",slug:"set-api-key",title:"Set an API key",summary:"How API keys and secrets are stored, and the fastest way to add one from anywhere with Cmd+K.",category:"Credentials",keywords:["api key","secret","credential","token","vault","set key"],related:["set-anthropic-key","connect-supabase","secrets-vault-overview"]},{id:"set-anthropic-key",slug:"set-anthropic-key",title:"Set the Anthropic API key",summary:"Add the Anthropic key that powers the cloud engine.",category:"Credentials",keywords:["anthropic","api key","claude","cloud engine","llm"],related:["choose-agent-engine","set-api-key"]},{id:"set-resend-key",slug:"set-resend-key",title:"Set the Resend API key (email)",summary:"Enable the email tool by adding a Resend key.",category:"Credentials",keywords:["resend","email","api key","send mail"],related:["set-api-key"]},{id:"set-github-token",slug:"set-github-token",title:"Set a GitHub token",summary:"Add a personal access token to unlock the GitHub tool adapter.",category:"Credentials",keywords:["github","token","pat","repo","api key"],related:["set-api-key"]},{id:"connect-supabase",slug:"connect-supabase",title:"Connect Supabase",summary:"Wire up Supabase URL and keys for database writes and the shared cloud layer.",category:"Credentials",keywords:["supabase","database","connect","url","service role","shared cloud"],related:["set-api-key","secrets-vault-overview"]},{id:"choose-agent-engine",slug:"choose-agent-engine",title:"Choose an agent engine",summary:"Pick between claude-code, anthropic, ollama, codex, and hermes — and what each needs.",category:"Agent runtime",keywords:["engine","model","claude-code","ollama","codex","hermes","anthropic","local"],related:["set-anthropic-key"]},{id:"set-trust-mode",slug:"set-trust-mode",title:"Set trust mode",summary:"Control whether the main agent gates risky tool calls or runs them automatically.",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","risk","gate"],related:["create-agent"]},{id:"create-agent",slug:"create-agent",title:"Create an agent",summary:"Spin up a worker, set its schedule, scope its tools, and run it.",category:"Getting started",keywords:["agent","create","worker","new agent","caretaker","roster"],related:["schedules-and-cron","set-trust-mode"]},{id:"schedules-and-cron",slug:"schedules-and-cron",title:"Schedules and cron",summary:"How schedules queue durable heartbeat work, backfill missed windows, and run automatically.",category:"Getting started",keywords:["schedule","cron","daily","heartbeat","backfill","recurring"],related:["create-agent"]},{id:"secrets-vault-overview",slug:"secrets-vault-overview",title:"Secrets vault overview",summary:"Where credentials live, how they are encrypted, and why values are never shown back.",category:"Credentials",keywords:["secrets","vault","encryption","aes","master key","security"],related:["set-api-key"]},{id:"keyboard-shortcuts",slug:"keyboard-shortcuts",title:"Keyboard shortcuts",summary:"Every shortcut, including Cmd+K smart search and the composer keys.",category:"Getting started",keywords:["keyboard","shortcut","cmd k","command","hotkey","search"],related:[]}];function o(e){var t,a;let{action:l,current:i,onClose:o,onSaved:c}=e;(0,n.useRouter)();let d=(0,r.useRef)(null),u=l.field,[h,p]=(0,r.useState)("select"===u.type&&((null==i?void 0:i.value)||(null==(a=u.options)||null==(t=a[0])?void 0:t.value))||""),[m,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)(""),[v,b]=(0,r.useState)(!1);async function k(e){if(e.preventDefault(),m)return;let t=String(h).trim();if(!t)return void y("Enter a value.");g(!0),y("");try{let{endpoint:e,method:s,body:r}=function(e,t){switch(e.kind){case"secret":return{endpoint:"/api/secrets",method:"POST",body:{name:e.secretName,value:t,scope:"global",source:"help-modal"}};case"config":return{endpoint:"/api/config",method:"PUT",body:{[e.configKey]:t}};case"trust-mode":return{endpoint:"/api/settings/trust-mode",method:"PATCH",body:"auto"===t?{mode:t,confirm:!0}:{mode:t}};default:throw Error("unknown action kind: ".concat(e.kind))}}(l,t),n=await fetch(e,{method:s,headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!n.ok){if(403===n.status)y("You need admin or owner access to change this.");else if(401===n.status)y("Sign in to change this setting.");else{let e=await n.text().catch(()=>""),t=e;try{var a;t=(null==(a=JSON.parse(e))?void 0:a.error)||e}catch(e){}y(t||"Failed (".concat(n.status,")."))}g(!1);return}b(!0),g(!1),null==c||c(l),window.setTimeout(()=>o(),700)}catch(e){y((null==e?void 0:e.message)||"Network error."),g(!1)}}(0,r.useEffect)(()=>{let e=window.setTimeout(()=>{var e;return null==(e=d.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&(e.preventDefault(),o())}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]);let x=function(e,t){if(!t)return null;if("secret"===e.kind)return"set"===t.status?"Currently set":"Not set";if(null!=t.value){var a;let s=null==(a=e.field.options)?void 0:a.find(e=>e.value===t.value);return"Currently: ".concat(s?s.label:t.value)}return null}(l,i);return(0,s.jsx)("div",{className:"help-value-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,s.jsxs)("form",{className:"help-value-modal",role:"dialog","aria-modal":"true","aria-label":l.title,onSubmit:k,children:[(0,s.jsxs)("header",{className:"help-value-head",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("small",{children:l.category}),(0,s.jsx)("h2",{children:l.title})]}),(0,s.jsx)("button",{type:"button",className:"help-value-close",onClick:o,"aria-label":"Close",children:"esc"})]}),(0,s.jsxs)("div",{className:"help-value-body",children:[(0,s.jsxs)("label",{className:"help-value-field",children:[(0,s.jsxs)("span",{className:"help-value-label",children:[u.label,x?(0,s.jsx)("em",{className:"help-value-status",children:x}):null]}),"select"===u.type?(0,s.jsx)("select",{ref:d,value:h,onChange:e=>p(e.target.value),disabled:m||v,children:u.options.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,s.jsx)("input",{ref:d,type:"password"===u.type?"password":"text",value:h,placeholder:u.placeholder||"",onChange:e=>p(e.target.value),disabled:m||v,autoComplete:"off",spellCheck:!1})]}),u.help?(0,s.jsx)("p",{className:"help-value-help",children:u.help}):null,f?(0,s.jsx)("p",{className:"help-value-error",role:"alert",children:f}):null,v?(0,s.jsx)("p",{className:"help-value-ok",role:"status",children:"Saved."}):null]}),(0,s.jsxs)("footer",{className:"help-value-foot",children:[(0,s.jsxs)("div",{className:"help-value-links",children:[(0,s.jsx)("a",{href:l.settingsHref,onClick:o,children:"Open full settings"}),l.docSlug?(0,s.jsx)("a",{href:"/help/".concat(l.docSlug),onClick:o,children:"Read the guide"}):null]}),(0,s.jsxs)("div",{className:"help-value-actions",children:[(0,s.jsx)("button",{type:"button",className:"help-value-btn ghost",onClick:o,disabled:m,children:"Cancel"}),(0,s.jsx)("button",{type:"submit",className:"help-value-btn primary",disabled:m||v,children:m?"Saving…":"Save"})]})]})]})})}let c=[{title:"Overview",href:"/",section:"Navigate",keys:["dashboard","home","canvas","main"]},{title:"Agents",href:"/agents",section:"Navigate",keys:["agent","worker","roster","team"]},{title:"Tasks",href:"/tasks",section:"Navigate",keys:["task","work","todo","kanban"]},{title:"Approvals",href:"/approvals",section:"Navigate",keys:["approve","permission","review"]},{title:"Tools",href:"/tools",section:"Navigate",keys:["tool","connector","capability"]},{title:"Schedules",href:"/schedules",section:"Navigate",keys:["cron","schedule","calendar"]},{title:"Reports",href:"/reports",section:"Navigate",keys:["report","artifact","brief"]},{title:"Activity",href:"/activity",section:"Navigate",keys:["activity","runs","history"]},{title:"Runtime",href:"/runtime",section:"Navigate",keys:["runtime","diagnostics","heartbeat","process"]},{title:"Brand",href:"/brand",section:"Navigate",keys:["brand","identity","design"]},{title:"Settings",href:"/settings",section:"Navigate",keys:["settings","config","preferences"]},{title:"Help",href:"/help",section:"Navigate",keys:["help","guide","docs","documentation","shortcuts"]}],d=[{id:"focus-main-agent",title:"Focus main agent composer",detail:"Jump to the prompt box without leaving the keyboard.",section:"Action",shortcut:"⌘J",keys:["chat","composer","prompt","ask","agent"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:focus-composer")),180)):window.dispatchEvent(new Event("madarx:focus-composer"))}},{id:"new-chat",title:"New main-agent chat",detail:"Fresh conversation without using ⌘N, which belongs to the browser.",section:"Action",shortcut:"⌘⇧J",keys:["new","session","chat","fresh"],run:e=>{let{router:t,pathname:a}=e;"/"!==a&&t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:new-chat")),180*("/"!==a))}},{id:"settings-modal",title:"Open agent configuration",detail:"Close to the right thumb, but avoids browser-level ⌘, preferences.",section:"Action",shortcut:"⌘;",keys:["settings","preferences","config","model"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:open-config")),180)):window.dispatchEvent(new Event("madarx:open-config"))}},{id:"shortcut-help",title:"Show keyboard shortcuts",detail:"Open this palette and filter to shortcut help.",section:"Action",shortcut:"⌘/",keys:["keyboard","shortcut","help","command"],run:e=>{let{openWithQuery:t}=e;return t("shortcuts")}}],u=[{title:"Open smart search",detail:"⌘Space or ⌘K. Thumb + home-row fallback; Ctrl Space also works when macOS owns Spotlight.",section:"Shortcuts",keys:["shortcut","search","spotlight","command space"]},{title:"Focus main agent",detail:"⌘J. Right thumb + index on home row; avoids browser shortcuts.",section:"Shortcuts",keys:["shortcut","composer","prompt"]},{title:"New chat",detail:"⌘⇧J. Same hand position as focus, with Shift; avoids ⌘N.",section:"Shortcuts",keys:["shortcut","new chat","session"]},{title:"Agents / Tasks / Runtime",detail:"⌘⇧A, ⌘⇧T, ⌘⇧D. Left-hand clusters for common operating surfaces.",section:"Shortcuts",keys:["shortcut","navigation","agents","tasks","runtime"]},{title:"Agent settings",detail:"⌘; sits under the right hand and avoids browser Preferences on ⌘,.",section:"Shortcuts",keys:["shortcut","settings","preferences"]}];function h(e){return String(e||"").toLowerCase().trim()}function p(){let e=(0,n.useRouter)(),t=(0,n.usePathname)(),a=(0,r.useRef)(null),[p,m]=(0,r.useState)(!1),[g,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(0),[b,k]=(0,r.useState)({}),[x,w]=(0,r.useState)(!1),[j,N]=(0,r.useState)(null),S=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/help",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),a={};for(let e of t.actions||[])a[e.id]=e.current;k(a),w(!0)}catch(e){}},[]),A=(0,r.useMemo)(()=>{let e=c.map(e=>({...e,id:"nav:".concat(e.href),kind:"nav",detail:"/"===e.href?"Return to the main command center.":"Open ".concat(e.href),run:t=>{let{router:a}=t;return a.push(e.href)}}));return[...d,...l.map(e=>{var t;return{id:"set:".concat(e.id),kind:"setting",action:e,title:e.title,detail:(null==(t=e.field)?void 0:t.help)||"Set this value.",section:"Set",keys:e.keywords}}),...i.map(e=>({id:"doc:".concat(e.slug),kind:"doc",title:e.title,detail:e.summary,section:"Doc",href:"/help/".concat(e.slug),keys:e.keywords})),...e,...u]},[]),E=(0,r.useMemo)(()=>{let e=h(g);if(!e)return A.slice(0,10);let t=e.split(/\s+/).filter(Boolean);return A.map(a=>{let s=[a.title,a.detail,a.section,a.href,...a.keys||[]].filter(Boolean).join(" ").toLowerCase(),r=t.reduce((e,t)=>e+ +!!s.includes(t),0),n=3*!!h(a.title).startsWith(e);return{item:a,score:r+n}}).filter(e=>{let{score:t}=e;return t>0}).sort((e,t)=>t.score-e.score||e.item.title.localeCompare(t.item.title)).map(e=>{let{item:t}=e;return t}).slice(0,12)},[A,g]),C=e=>{f(e||""),m(!0),v(0)},_=()=>{m(!1),f(""),v(0)},P=(0,r.useCallback)(e=>{let t=l.find(t=>t.id===e);t&&N(t)},[]),T=(0,r.useCallback)(()=>N(null),[]),K=a=>{if(a){if("setting"===a.kind){N(a.action),_();return}if("doc"===a.kind){e.push(a.href),_();return}a.run&&(a.run({router:e,pathname:t,openWithQuery:C}),"Shortcuts"!==a.section&&_())}};(0,r.useEffect)(()=>{(p||j)&&!x&&S()},[p,j,x,S]),(0,r.useEffect)(()=>{if(!p)return;let e=window.setTimeout(()=>{var e;return null==(e=a.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[p]),(0,r.useEffect)(()=>{v(0)},[g,p]),(0,r.useEffect)(()=>{function e(e){var t;let a=null==e||null==(t=e.detail)?void 0:t.id;a&&P(a)}return window.addEventListener("madarx:open-setting",e),()=>window.removeEventListener("madarx:open-setting",e)},[P]),(0,r.useEffect)(()=>{function a(a){let s=a.key.toLowerCase(),r=a.metaKey||a.ctrlKey,n=function(e){var t;let a=null==e||null==(t=e.tagName)?void 0:t.toLowerCase();return(null==e?void 0:e.isContentEditable)||"input"===a||"textarea"===a||"select"===a}(a.target);if(p){if("Escape"===a.key){a.preventDefault(),_();return}if("ArrowDown"===a.key){a.preventDefault(),v(e=>Math.min(e+1,Math.max(0,E.length-1)));return}if("ArrowUp"===a.key){a.preventDefault(),v(e=>Math.max(0,e-1));return}if("Enter"===a.key){a.preventDefault(),K(E[y]);return}}if(a.metaKey&&"Space"===a.code||a.metaKey&&"k"===s||a.ctrlKey&&"Space"===a.code){a.preventDefault(),m(e=>(e||N(null),!e));return}if(r&&!n){if(a.metaKey&&"j"===s&&!a.shiftKey){a.preventDefault(),d[0].run({router:e,pathname:t});return}if(a.metaKey&&"j"===s&&a.shiftKey){a.preventDefault(),d[1].run({router:e,pathname:t});return}if(a.metaKey&&";"===s){a.preventDefault(),d[2].run({router:e,pathname:t});return}if(a.metaKey&&"/"===s){a.preventDefault(),C("shortcuts");return}a.metaKey&&a.shiftKey&&["a","t","d"].includes(s)&&(a.preventDefault(),e.push("a"===s?"/agents":"t"===s?"/tasks":"/runtime"))}}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[y,p,t,E,e]);let R=j?(0,s.jsx)(o,{action:j,current:b[j.id],onClose:T,onSaved:S}):null;return p?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"smart-search-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&_()},children:(0,s.jsxs)("section",{className:"smart-search-panel",role:"dialog","aria-modal":"true","aria-label":"Smart search",children:[(0,s.jsxs)("div",{className:"smart-search-head",children:[(0,s.jsx)("span",{className:"smart-search-orb","aria-hidden":"true"}),(0,s.jsx)("input",{ref:a,value:g,onChange:e=>f(e.target.value),placeholder:"Search docs, settings, pages…","aria-label":"Search madarX OS"}),(0,s.jsx)("kbd",{children:"esc"})]}),(0,s.jsx)("div",{className:"smart-search-results",role:"listbox","aria-label":"Smart search results",children:E.length?E.map((e,t)=>{let a="setting"===e.kind?b[e.action.id]:null,r=a&&"secret"===e.action.kind&&"set"===a.status?"Set":null;return(0,s.jsxs)("button",{type:"button",className:"smart-search-row"+(t===y?" is-active":""),onMouseEnter:()=>v(t),onClick:()=>K(e),role:"option","aria-selected":t===y,children:[(0,s.jsxs)("span",{className:"smart-search-row-main",children:[(0,s.jsxs)("small",{children:[(0,s.jsx)("span",{className:"smart-search-kind kind-".concat(e.kind||"nav"),children:e.section}),r?(0,s.jsx)("span",{className:"smart-search-pill",children:r}):null]}),(0,s.jsx)("b",{children:e.title}),(0,s.jsx)("em",{children:e.detail})]}),e.shortcut?(0,s.jsx)("kbd",{children:e.shortcut}):e.href?(0,s.jsx)("kbd",{children:e.href}):null]},e.id||e.title)}):(0,s.jsx)("div",{className:"smart-search-empty",children:"No matches. Try “api key”, “whatsapp”, “agent”, or “shortcut”."})}),(0,s.jsxs)("footer",{className:"smart-search-foot",children:[(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"↑"}),(0,s.jsx)("kbd",{children:"↓"})," select"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"return"})," open"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"⌘J"})," composer"]})]})]})}),R]}):R}let m=["/login","/share"];function g(e){let{children:t,sidebar:a}=e,l=(0,n.usePathname)();return(0,r.useMemo)(()=>m.some(e=>l===e||(null==l?void 0:l.startsWith("".concat(e,"/")))),[l])?(0,s.jsx)("div",{className:"chromeless-page",children:t}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"app-shell",children:[(0,s.jsx)("div",{className:"app-rail",children:null!=a?a:null}),(0,s.jsx)("div",{className:"app-content",children:t})]}),(0,s.jsx)(p,{})]})}},7438:(e,t,a)=>{"use strict";a.d(t,{default:()=>R});var s=a(5155),r=a(2115),n=a(2619),l=a.n(n),i=a(63),o=a(9565),c=a(7629),d=a(8987),u=a(5709),h=a(1516),p=a(4733),m=a(1745),g=a(4597),f=a(1092),y=a(5893),v=a(6351),b=a(7657),k=a(3437),x=a(6898),w=a(4227),j=a(1042),N=a(1510),S=a(8080),A=a(4333);let E=[{group:"work",name:"Overview",href:"/",icon:d.A},{group:"work",name:"Projects",href:"/projects",icon:u.A},{group:"work",name:"Agents",href:"/agents",icon:h.A},{group:"work",name:"Tasks",href:"/tasks",icon:p.A},{group:"work",name:"Workflows",href:"/workflows",icon:m.A},{group:"work",name:"Approvals",href:"/approvals",icon:g.A},{group:"library",name:"Marketplace",href:"/marketplace",icon:f.A}],C={Pickaxe:y.A,Boxes:v.A,Gem:b.A,FlaskConical:k.A,Factory:x.A,Building2:w.A,Package:f.A,FolderOpen:u.A,Workflow:m.A},_=[{name:"Settings",icon:j.A,href:"/settings"}];function P(e,t){return!!e&&("/"===t?"/"===e:e===t||e.startsWith("".concat(t,"/")))}function T(e){var t,a;null==(a=e.currentTarget)||null==(t=a.blur)||t.call(a)}function K(e){let{item:t,active:a}=e,r=t.icon;return(0,s.jsxs)(l(),{href:t.href,prefetch:!0,"aria-label":t.name,"aria-current":a?"page":void 0,"data-active":a?"true":void 0,onClick:T,className:"".concat("relative flex items-center justify-center p-2 rounded-lg transition-colors duration-150 group"," ").concat(a?"text-[#C2452A]":"text-[#69707a] hover:text-[#111318] hover:bg-[rgba(17,19,24,0.08)] active:bg-[rgba(17,19,24,0.12)]"),children:[(0,s.jsx)(r,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"}),(0,s.jsx)("span",{className:"absolute left-12 px-2 py-1 rounded-md whitespace-nowrap text-xs text-white bg-[#111318] hidden group-hover:inline-block group-focus-visible:inline-block z-50 shadow-lg pointer-events-none",children:t.name})]})}function R(e){let{moduleNav:t=[]}=e,a=(0,i.usePathname)(),{session:n,signOut:d}=function(){let[e,t]=(0,r.useState)(null),a=(0,i.useRouter)();return(0,r.useEffect)(()=>{let e=!0;return fetch("/api/auth/session",{cache:"no-store"}).then(e=>e.json()).then(a=>{e&&t((null==a?void 0:a.user)||null)}).catch(()=>{e&&t(null)}),()=>{e=!1}},[]),{session:e,signOut:async function(){await fetch("/api/auth/session",{method:"DELETE"}).catch(()=>null),a.replace("/login"),a.refresh()}}}(),[u,h]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!0;return fetch("/api/system/update").then(e=>e.ok?e.json():null).then(t=>{e&&t&&h(t)}).catch(()=>{}),()=>{e=!1}},[]);let p=(Array.isArray(t)?t:[]).map(e=>({group:"module",name:e.label,href:e.href,icon:C[e.icon]||v.A})),m=[...E.filter(e=>"work"===e.group),...p,...E.filter(e=>"library"===e.group)],g=(null==n?void 0:n.email)||"Local owner",f="local"===((null==n?void 0:n.auth_mode)||"local"),y=((null==n?void 0:n.email)||(null==n?void 0:n.display_name)||"AK").slice(0,2).toUpperCase();return(0,s.jsxs)("aside",{className:"relative z-30 h-full w-full rounded-[18px] border border-white/75 bg-[var(--glass)] backdrop-blur-[22px] backdrop-saturate-150 shadow-[0_18px_54px_rgba(37,36,34,0.16)] flex flex-col","aria-label":"Primary navigation",children:[(0,s.jsx)("div",{className:"h-20 flex items-center justify-center px-3 shrink-0",children:(0,s.jsx)(l(),{href:"/",prefetch:!0,className:"flex-none","aria-label":"madarX home",onClick:T,children:(0,s.jsx)("img",{src:"/madarx-mark.svg",alt:"madarX",width:32,height:32,className:"block text-[#111318]"})})}),(0,s.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 text-sm font-medium flex-1 space-y-1",children:m.map((e,t)=>{let r=m[t-1],n=r&&r.group!==e.group,l=P(a,e.href);return(0,s.jsxs)("li",{children:[n?(0,s.jsx)("div",{"aria-hidden":"true",className:"mx-2 my-2 h-px bg-[rgba(20,22,26,0.09)]"}):null,(0,s.jsx)(K,{item:e,active:l})]},e.name)})}),(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 pb-3 pt-2 text-sm font-medium space-y-1",children:_.map(e=>{let t=P(a,e.href);return(0,s.jsx)("li",{children:(0,s.jsx)(K,{item:e,active:t})},e.name)})}),(0,s.jsx)("div",{className:"relative py-4 px-3 border-t border-[rgba(20,22,26,0.09)] flex justify-center",children:(0,s.jsxs)(o.bL,{children:[(0,s.jsx)(o.l9,{className:"outline-none rounded-full border-0 bg-transparent p-0 appearance-none cursor-pointer focus-visible:ring-2 focus-visible:ring-[#111318] focus-visible:ring-offset-2 focus-visible:ring-offset-white/50","aria-label":"Account menu",children:(0,s.jsxs)(c.bL,{className:"w-10 h-10 rounded-full overflow-hidden cursor-pointer block",children:[(0,s.jsx)(c._V,{className:"w-full h-full object-cover",src:"/madarx-mark.svg",alt:"AK"}),(0,s.jsx)(c.H4,{className:"flex w-full h-full items-center justify-center text-white text-xs font-bold tracking-wider bg-gradient-to-br from-[#111318] to-[#565d6b]",delayMs:150,children:y})]})}),(0,s.jsx)(o.ZL,{children:(0,s.jsxs)(o.UC,{side:"right",align:"end",sideOffset:12,className:"w-64 rounded-xl bg-white shadow-[0_22px_60px_rgba(17,19,24,0.20)] border border-[rgba(20,22,26,0.09)] text-sm text-[#59606b] p-2 z-[100]",children:[(0,s.jsx)("div",{className:"px-2 py-1.5 text-[11px] uppercase tracking-[0.14em] text-[var(--accent-600)] font-bold",children:f?"Local operator":"Signed in"}),(0,s.jsx)("span",{className:"block text-[#68707b] px-2 pb-2 truncate",children:g}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Dashboard"})}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/settings",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Settings"})}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),(null==u?void 0:u.behind)&&(null==u?void 0:u.latest)?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/",className:"flex items-center justify-between gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-x-2",children:[(0,s.jsx)(N.A,{className:"w-4 h-4 text-[var(--accent-600)]",strokeWidth:1.75}),"Update available"]}),(0,s.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--accent-600)]",children:["v",u.latest]})]})}):(0,s.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-[12px] text-[#9aa1ab]",children:[(0,s.jsx)("span",{children:"Version"}),(0,s.jsx)("span",{className:"font-medium text-[#68707b]",children:(null==u?void 0:u.current)?"v".concat(u.current):"—"})]}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),f?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/settings/account",className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsx)(S.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign in with an account"]})}):(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)("button",{type:"button",onClick:d,className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer text-[#313740]",children:[(0,s.jsx)(A.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign out"]})})]})})]})})]})]})}}},e=>{e.O(0,[3045,1741,2619,7597,8441,1255,7358],()=>e(e.s=2455)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1290:()=>{},2455:(e,t,a)=>{Promise.resolve().then(a.bind(a,3455)),Promise.resolve().then(a.bind(a,7438)),Promise.resolve().then(a.t.bind(a,2295,23)),Promise.resolve().then(a.t.bind(a,1290,23))},3455:(e,t,a)=>{"use strict";a.d(t,{default:()=>g});var s=a(5155),r=a(2115),n=a(63);let l=[{id:"set-anthropic-key",title:"Set Anthropic API key",category:"Credentials",keywords:["anthropic","api key","claude","apikey","llm","token","cloud engine"],kind:"secret",secretName:"ANTHROPIC_API_KEY",field:{label:"ANTHROPIC_API_KEY",type:"password",placeholder:"sk-ant-…",help:"Used by the Anthropic cloud engine. Stored encrypted in the secrets vault."},settingsHref:"/settings/tools",docSlug:"set-anthropic-key"},{id:"set-resend-key",title:"Set Resend API key (email)",category:"Credentials",keywords:["resend","email","api key","smtp","send mail"],kind:"secret",secretName:"RESEND_API_KEY",field:{label:"RESEND_API_KEY",type:"password",placeholder:"re_…",help:"Enables the email tool. Encrypted at rest."},settingsHref:"/settings/connectors",docSlug:"set-resend-key"},{id:"set-github-token",title:"Set GitHub token",category:"Credentials",keywords:["github","token","pat","api key","git","repo"],kind:"secret",secretName:"GITHUB_TOKEN",field:{label:"GITHUB_TOKEN",type:"password",placeholder:"ghp_… / github_pat_…",help:"Personal access token for the GitHub tool adapter."},settingsHref:"/settings/connectors",docSlug:"set-github-token"},{id:"set-supabase-url",title:"Set Supabase URL",category:"Credentials",keywords:["supabase","url","database","project url","connect"],kind:"secret",secretName:"SUPABASE_URL",field:{label:"SUPABASE_URL",type:"text",placeholder:"https://xxxx.supabase.co",help:"Project URL for Supabase writes + shared cloud layer."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-supabase-service-key",title:"Set Supabase service-role key",category:"Credentials",keywords:["supabase","service role","key","api key","secret","database"],kind:"secret",secretName:"SUPABASE_SERVICE_ROLE_KEY",field:{label:"SUPABASE_SERVICE_ROLE_KEY",type:"password",placeholder:"eyJ…",help:"Server-side service-role key. Never exposed to the browser."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-default-model",title:"Set default model",category:"Agent runtime",keywords:["model","default model","llm","opus","sonnet","haiku","picker"],kind:"config",configKey:"model",field:{label:"Default model",type:"select",help:"Model the main agent uses by default.",options:[{value:"claude-opus-4-7",label:"Opus 4.7"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6"},{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5"}]},settingsHref:"/settings/engines",docSlug:"choose-agent-engine"},{id:"set-design-style",title:"Set artifact design style",category:"Agent runtime",keywords:["design","style","aesthetic","minimal","bold","soft","balanced","artifact"],kind:"config",configKey:"designStyle",field:{label:"Design style",type:"select",help:"Visual style agents use when producing artifacts.",options:[{value:"balanced",label:"Balanced"},{value:"minimal",label:"Minimal"},{value:"bold",label:"Bold"},{value:"soft",label:"Soft"}]},settingsHref:"/settings/brand",docSlug:null},{id:"set-trust-mode",title:"Set main-agent trust mode",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","permission","gate"],kind:"trust-mode",field:{label:"Trust mode",type:"select",help:"Warning: auto lets the main agent run high-and-below risk tool calls WITHOUT asking you first (irreversible_external is always gated). Saving auto confirms this. approval_required is the safe default.",options:[{value:"approval_required",label:"Approval required (safe default)"},{value:"auto",label:"Auto (skip gate for ≤ high risk)"}]},settingsHref:"/settings/advanced",docSlug:"set-trust-mode"}],i=[{id:"start-whatsapp-bridge",slug:"start-whatsapp-bridge",title:"Start the WhatsApp bridge",summary:"Pair a dedicated WhatsApp number and run the gateway daemon so agents can send and receive messages.",category:"Channels",keywords:["whatsapp","bridge","gateway","baileys","pair","daemon","messages"],related:["secrets-vault-overview"]},{id:"set-api-key",slug:"set-api-key",title:"Set an API key",summary:"How API keys and secrets are stored, and the fastest way to add one from anywhere with Cmd+K.",category:"Credentials",keywords:["api key","secret","credential","token","vault","set key"],related:["set-anthropic-key","connect-supabase","secrets-vault-overview"]},{id:"set-anthropic-key",slug:"set-anthropic-key",title:"Set the Anthropic API key",summary:"Add the Anthropic key that powers the cloud engine.",category:"Credentials",keywords:["anthropic","api key","claude","cloud engine","llm"],related:["choose-agent-engine","set-api-key"]},{id:"set-resend-key",slug:"set-resend-key",title:"Set the Resend API key (email)",summary:"Enable the email tool by adding a Resend key.",category:"Credentials",keywords:["resend","email","api key","send mail"],related:["set-api-key"]},{id:"set-github-token",slug:"set-github-token",title:"Set a GitHub token",summary:"Add a personal access token to unlock the GitHub tool adapter.",category:"Credentials",keywords:["github","token","pat","repo","api key"],related:["set-api-key"]},{id:"connect-supabase",slug:"connect-supabase",title:"Connect Supabase",summary:"Wire up Supabase URL and keys for database writes and the shared cloud layer.",category:"Credentials",keywords:["supabase","database","connect","url","service role","shared cloud"],related:["set-api-key","secrets-vault-overview"]},{id:"choose-agent-engine",slug:"choose-agent-engine",title:"Choose an agent engine",summary:"Pick between claude-code, anthropic, ollama, codex, and hermes — and what each needs.",category:"Agent runtime",keywords:["engine","model","claude-code","ollama","codex","hermes","anthropic","local"],related:["set-anthropic-key"]},{id:"set-trust-mode",slug:"set-trust-mode",title:"Set trust mode",summary:"Control whether the main agent gates risky tool calls or runs them automatically.",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","risk","gate"],related:["create-agent"]},{id:"create-agent",slug:"create-agent",title:"Create an agent",summary:"Spin up a worker, set its schedule, scope its tools, and run it.",category:"Getting started",keywords:["agent","create","worker","new agent","caretaker","roster"],related:["schedules-and-cron","set-trust-mode"]},{id:"schedules-and-cron",slug:"schedules-and-cron",title:"Schedules and cron",summary:"How schedules queue durable heartbeat work, backfill missed windows, and run automatically.",category:"Getting started",keywords:["schedule","cron","daily","heartbeat","backfill","recurring"],related:["create-agent"]},{id:"secrets-vault-overview",slug:"secrets-vault-overview",title:"Secrets vault overview",summary:"Where credentials live, how they are encrypted, and why values are never shown back.",category:"Credentials",keywords:["secrets","vault","encryption","aes","master key","security"],related:["set-api-key"]},{id:"keyboard-shortcuts",slug:"keyboard-shortcuts",title:"Keyboard shortcuts",summary:"Every shortcut, including Cmd+K smart search and the composer keys.",category:"Getting started",keywords:["keyboard","shortcut","cmd k","command","hotkey","search"],related:[]}];function o(e){var t,a;let{action:l,current:i,onClose:o,onSaved:c}=e;(0,n.useRouter)();let d=(0,r.useRef)(null),u=l.field,[h,p]=(0,r.useState)("select"===u.type&&((null==i?void 0:i.value)||(null==(a=u.options)||null==(t=a[0])?void 0:t.value))||""),[m,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)(""),[v,b]=(0,r.useState)(!1);async function k(e){if(e.preventDefault(),m)return;let t=String(h).trim();if(!t)return void y("Enter a value.");g(!0),y("");try{let{endpoint:e,method:s,body:r}=function(e,t){switch(e.kind){case"secret":return{endpoint:"/api/secrets",method:"POST",body:{name:e.secretName,value:t,scope:"global",source:"help-modal"}};case"config":return{endpoint:"/api/config",method:"PUT",body:{[e.configKey]:t}};case"trust-mode":return{endpoint:"/api/settings/trust-mode",method:"PATCH",body:"auto"===t?{mode:t,confirm:!0}:{mode:t}};default:throw Error("unknown action kind: ".concat(e.kind))}}(l,t),n=await fetch(e,{method:s,headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!n.ok){if(403===n.status)y("You need admin or owner access to change this.");else if(401===n.status)y("Sign in to change this setting.");else{let e=await n.text().catch(()=>""),t=e;try{var a;t=(null==(a=JSON.parse(e))?void 0:a.error)||e}catch(e){}y(t||"Failed (".concat(n.status,")."))}g(!1);return}b(!0),g(!1),null==c||c(l),window.setTimeout(()=>o(),700)}catch(e){y((null==e?void 0:e.message)||"Network error."),g(!1)}}(0,r.useEffect)(()=>{let e=window.setTimeout(()=>{var e;return null==(e=d.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&(e.preventDefault(),o())}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]);let x=function(e,t){if(!t)return null;if("secret"===e.kind)return"set"===t.status?"Currently set":"Not set";if(null!=t.value){var a;let s=null==(a=e.field.options)?void 0:a.find(e=>e.value===t.value);return"Currently: ".concat(s?s.label:t.value)}return null}(l,i);return(0,s.jsx)("div",{className:"help-value-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,s.jsxs)("form",{className:"help-value-modal",role:"dialog","aria-modal":"true","aria-label":l.title,onSubmit:k,children:[(0,s.jsxs)("header",{className:"help-value-head",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("small",{children:l.category}),(0,s.jsx)("h2",{children:l.title})]}),(0,s.jsx)("button",{type:"button",className:"help-value-close",onClick:o,"aria-label":"Close",children:"esc"})]}),(0,s.jsxs)("div",{className:"help-value-body",children:[(0,s.jsxs)("label",{className:"help-value-field",children:[(0,s.jsxs)("span",{className:"help-value-label",children:[u.label,x?(0,s.jsx)("em",{className:"help-value-status",children:x}):null]}),"select"===u.type?(0,s.jsx)("select",{ref:d,value:h,onChange:e=>p(e.target.value),disabled:m||v,children:u.options.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,s.jsx)("input",{ref:d,type:"password"===u.type?"password":"text",value:h,placeholder:u.placeholder||"",onChange:e=>p(e.target.value),disabled:m||v,autoComplete:"off",spellCheck:!1})]}),u.help?(0,s.jsx)("p",{className:"help-value-help",children:u.help}):null,f?(0,s.jsx)("p",{className:"help-value-error",role:"alert",children:f}):null,v?(0,s.jsx)("p",{className:"help-value-ok",role:"status",children:"Saved."}):null]}),(0,s.jsxs)("footer",{className:"help-value-foot",children:[(0,s.jsxs)("div",{className:"help-value-links",children:[(0,s.jsx)("a",{href:l.settingsHref,onClick:o,children:"Open full settings"}),l.docSlug?(0,s.jsx)("a",{href:"/help/".concat(l.docSlug),onClick:o,children:"Read the guide"}):null]}),(0,s.jsxs)("div",{className:"help-value-actions",children:[(0,s.jsx)("button",{type:"button",className:"help-value-btn ghost",onClick:o,disabled:m,children:"Cancel"}),(0,s.jsx)("button",{type:"submit",className:"help-value-btn primary",disabled:m||v,children:m?"Saving…":"Save"})]})]})]})})}let c=[{title:"Overview",href:"/",section:"Navigate",keys:["dashboard","home","canvas","main"]},{title:"Agents",href:"/agents",section:"Navigate",keys:["agent","worker","roster","team"]},{title:"Tasks",href:"/tasks",section:"Navigate",keys:["task","work","todo","kanban"]},{title:"Approvals",href:"/approvals",section:"Navigate",keys:["approve","permission","review"]},{title:"Tools",href:"/tools",section:"Navigate",keys:["tool","connector","capability"]},{title:"Schedules",href:"/schedules",section:"Navigate",keys:["cron","schedule","calendar"]},{title:"Reports",href:"/reports",section:"Navigate",keys:["report","artifact","brief"]},{title:"Activity",href:"/activity",section:"Navigate",keys:["activity","runs","history"]},{title:"Runtime",href:"/runtime",section:"Navigate",keys:["runtime","diagnostics","heartbeat","process"]},{title:"Brand",href:"/brand",section:"Navigate",keys:["brand","identity","design"]},{title:"Settings",href:"/settings",section:"Navigate",keys:["settings","config","preferences"]},{title:"Help",href:"/help",section:"Navigate",keys:["help","guide","docs","documentation","shortcuts"]}],d=[{id:"focus-main-agent",title:"Focus main agent composer",detail:"Jump to the prompt box without leaving the keyboard.",section:"Action",shortcut:"⌘J",keys:["chat","composer","prompt","ask","agent"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:focus-composer")),180)):window.dispatchEvent(new Event("madarx:focus-composer"))}},{id:"new-chat",title:"New main-agent chat",detail:"Fresh conversation without using ⌘N, which belongs to the browser.",section:"Action",shortcut:"⌘⇧J",keys:["new","session","chat","fresh"],run:e=>{let{router:t,pathname:a}=e;"/"!==a&&t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:new-chat")),180*("/"!==a))}},{id:"settings-modal",title:"Open agent configuration",detail:"Close to the right thumb, but avoids browser-level ⌘, preferences.",section:"Action",shortcut:"⌘;",keys:["settings","preferences","config","model"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:open-config")),180)):window.dispatchEvent(new Event("madarx:open-config"))}},{id:"shortcut-help",title:"Show keyboard shortcuts",detail:"Open this palette and filter to shortcut help.",section:"Action",shortcut:"⌘/",keys:["keyboard","shortcut","help","command"],run:e=>{let{openWithQuery:t}=e;return t("shortcuts")}}],u=[{title:"Open smart search",detail:"⌘Space or ⌘K. Thumb + home-row fallback; Ctrl Space also works when macOS owns Spotlight.",section:"Shortcuts",keys:["shortcut","search","spotlight","command space"]},{title:"Focus main agent",detail:"⌘J. Right thumb + index on home row; avoids browser shortcuts.",section:"Shortcuts",keys:["shortcut","composer","prompt"]},{title:"New chat",detail:"⌘⇧J. Same hand position as focus, with Shift; avoids ⌘N.",section:"Shortcuts",keys:["shortcut","new chat","session"]},{title:"Agents / Tasks / Runtime",detail:"⌘⇧A, ⌘⇧T, ⌘⇧D. Left-hand clusters for common operating surfaces.",section:"Shortcuts",keys:["shortcut","navigation","agents","tasks","runtime"]},{title:"Agent settings",detail:"⌘; sits under the right hand and avoids browser Preferences on ⌘,.",section:"Shortcuts",keys:["shortcut","settings","preferences"]}];function h(e){return String(e||"").toLowerCase().trim()}function p(){let e=(0,n.useRouter)(),t=(0,n.usePathname)(),a=(0,r.useRef)(null),[p,m]=(0,r.useState)(!1),[g,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(0),[b,k]=(0,r.useState)({}),[x,w]=(0,r.useState)(!1),[j,N]=(0,r.useState)(null),S=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/help",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),a={};for(let e of t.actions||[])a[e.id]=e.current;k(a),w(!0)}catch(e){}},[]),A=(0,r.useMemo)(()=>{let e=c.map(e=>({...e,id:"nav:".concat(e.href),kind:"nav",detail:"/"===e.href?"Return to the main command center.":"Open ".concat(e.href),run:t=>{let{router:a}=t;return a.push(e.href)}}));return[...d,...l.map(e=>{var t;return{id:"set:".concat(e.id),kind:"setting",action:e,title:e.title,detail:(null==(t=e.field)?void 0:t.help)||"Set this value.",section:"Set",keys:e.keywords}}),...i.map(e=>({id:"doc:".concat(e.slug),kind:"doc",title:e.title,detail:e.summary,section:"Doc",href:"/help/".concat(e.slug),keys:e.keywords})),...e,...u]},[]),E=(0,r.useMemo)(()=>{let e=h(g);if(!e)return A.slice(0,10);let t=e.split(/\s+/).filter(Boolean);return A.map(a=>{let s=[a.title,a.detail,a.section,a.href,...a.keys||[]].filter(Boolean).join(" ").toLowerCase(),r=t.reduce((e,t)=>e+ +!!s.includes(t),0),n=3*!!h(a.title).startsWith(e);return{item:a,score:r+n}}).filter(e=>{let{score:t}=e;return t>0}).sort((e,t)=>t.score-e.score||e.item.title.localeCompare(t.item.title)).map(e=>{let{item:t}=e;return t}).slice(0,12)},[A,g]),C=e=>{f(e||""),m(!0),v(0)},_=()=>{m(!1),f(""),v(0)},P=(0,r.useCallback)(e=>{let t=l.find(t=>t.id===e);t&&N(t)},[]),T=(0,r.useCallback)(()=>N(null),[]),K=a=>{if(a){if("setting"===a.kind){N(a.action),_();return}if("doc"===a.kind){e.push(a.href),_();return}a.run&&(a.run({router:e,pathname:t,openWithQuery:C}),"Shortcuts"!==a.section&&_())}};(0,r.useEffect)(()=>{(p||j)&&!x&&S()},[p,j,x,S]),(0,r.useEffect)(()=>{if(!p)return;let e=window.setTimeout(()=>{var e;return null==(e=a.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[p]),(0,r.useEffect)(()=>{v(0)},[g,p]),(0,r.useEffect)(()=>{function e(e){var t;let a=null==e||null==(t=e.detail)?void 0:t.id;a&&P(a)}return window.addEventListener("madarx:open-setting",e),()=>window.removeEventListener("madarx:open-setting",e)},[P]),(0,r.useEffect)(()=>{function a(a){let s=(a.key||"").toLowerCase(),r=a.metaKey||a.ctrlKey,n=function(e){var t;let a=null==e||null==(t=e.tagName)?void 0:t.toLowerCase();return(null==e?void 0:e.isContentEditable)||"input"===a||"textarea"===a||"select"===a}(a.target);if(p){if("Escape"===a.key){a.preventDefault(),_();return}if("ArrowDown"===a.key){a.preventDefault(),v(e=>Math.min(e+1,Math.max(0,E.length-1)));return}if("ArrowUp"===a.key){a.preventDefault(),v(e=>Math.max(0,e-1));return}if("Enter"===a.key){a.preventDefault(),K(E[y]);return}}if(a.metaKey&&"Space"===a.code||a.metaKey&&"k"===s||a.ctrlKey&&"Space"===a.code){a.preventDefault(),m(e=>(e||N(null),!e));return}if(r&&!n){if(a.metaKey&&"j"===s&&!a.shiftKey){a.preventDefault(),d[0].run({router:e,pathname:t});return}if(a.metaKey&&"j"===s&&a.shiftKey){a.preventDefault(),d[1].run({router:e,pathname:t});return}if(a.metaKey&&";"===s){a.preventDefault(),d[2].run({router:e,pathname:t});return}if(a.metaKey&&"/"===s){a.preventDefault(),C("shortcuts");return}a.metaKey&&a.shiftKey&&["a","t","d"].includes(s)&&(a.preventDefault(),e.push("a"===s?"/agents":"t"===s?"/tasks":"/runtime"))}}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[y,p,t,E,e]);let R=j?(0,s.jsx)(o,{action:j,current:b[j.id],onClose:T,onSaved:S}):null;return p?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"smart-search-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&_()},children:(0,s.jsxs)("section",{className:"smart-search-panel",role:"dialog","aria-modal":"true","aria-label":"Smart search",children:[(0,s.jsxs)("div",{className:"smart-search-head",children:[(0,s.jsx)("span",{className:"smart-search-orb","aria-hidden":"true"}),(0,s.jsx)("input",{ref:a,value:g,onChange:e=>f(e.target.value),placeholder:"Search docs, settings, pages…","aria-label":"Search madarX OS"}),(0,s.jsx)("kbd",{children:"esc"})]}),(0,s.jsx)("div",{className:"smart-search-results",role:"listbox","aria-label":"Smart search results",children:E.length?E.map((e,t)=>{let a="setting"===e.kind?b[e.action.id]:null,r=a&&"secret"===e.action.kind&&"set"===a.status?"Set":null;return(0,s.jsxs)("button",{type:"button",className:"smart-search-row"+(t===y?" is-active":""),onMouseEnter:()=>v(t),onClick:()=>K(e),role:"option","aria-selected":t===y,children:[(0,s.jsxs)("span",{className:"smart-search-row-main",children:[(0,s.jsxs)("small",{children:[(0,s.jsx)("span",{className:"smart-search-kind kind-".concat(e.kind||"nav"),children:e.section}),r?(0,s.jsx)("span",{className:"smart-search-pill",children:r}):null]}),(0,s.jsx)("b",{children:e.title}),(0,s.jsx)("em",{children:e.detail})]}),e.shortcut?(0,s.jsx)("kbd",{children:e.shortcut}):e.href?(0,s.jsx)("kbd",{children:e.href}):null]},e.id||e.title)}):(0,s.jsx)("div",{className:"smart-search-empty",children:"No matches. Try “api key”, “whatsapp”, “agent”, or “shortcut”."})}),(0,s.jsxs)("footer",{className:"smart-search-foot",children:[(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"↑"}),(0,s.jsx)("kbd",{children:"↓"})," select"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"return"})," open"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"⌘J"})," composer"]})]})]})}),R]}):R}let m=["/login","/share"];function g(e){let{children:t,sidebar:a}=e,l=(0,n.usePathname)();return(0,r.useMemo)(()=>m.some(e=>l===e||(null==l?void 0:l.startsWith("".concat(e,"/")))),[l])?(0,s.jsx)("div",{className:"chromeless-page",children:t}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"app-shell",children:[(0,s.jsx)("div",{className:"app-rail",children:null!=a?a:null}),(0,s.jsx)("div",{className:"app-content",children:t})]}),(0,s.jsx)(p,{})]})}},7438:(e,t,a)=>{"use strict";a.d(t,{default:()=>R});var s=a(5155),r=a(2115),n=a(2619),l=a.n(n),i=a(63),o=a(9565),c=a(7629),d=a(8987),u=a(5709),h=a(1516),p=a(4733),m=a(1745),g=a(4597),f=a(1092),y=a(5893),v=a(6351),b=a(7657),k=a(3437),x=a(6898),w=a(4227),j=a(1042),N=a(1510),S=a(8080),A=a(4333);let E=[{group:"work",name:"Overview",href:"/",icon:d.A},{group:"work",name:"Projects",href:"/projects",icon:u.A},{group:"work",name:"Agents",href:"/agents",icon:h.A},{group:"work",name:"Tasks",href:"/tasks",icon:p.A},{group:"work",name:"Workflows",href:"/workflows",icon:m.A},{group:"work",name:"Approvals",href:"/approvals",icon:g.A},{group:"library",name:"Marketplace",href:"/marketplace",icon:f.A}],C={Pickaxe:y.A,Boxes:v.A,Gem:b.A,FlaskConical:k.A,Factory:x.A,Building2:w.A,Package:f.A,FolderOpen:u.A,Workflow:m.A},_=[{name:"Settings",icon:j.A,href:"/settings"}];function P(e,t){return!!e&&("/"===t?"/"===e:e===t||e.startsWith("".concat(t,"/")))}function T(e){var t,a;null==(a=e.currentTarget)||null==(t=a.blur)||t.call(a)}function K(e){let{item:t,active:a}=e,r=t.icon;return(0,s.jsxs)(l(),{href:t.href,prefetch:!0,"aria-label":t.name,"aria-current":a?"page":void 0,"data-active":a?"true":void 0,onClick:T,className:"".concat("relative flex items-center justify-center p-2 rounded-lg transition-colors duration-150 group"," ").concat(a?"text-[#C2452A]":"text-[#69707a] hover:text-[#111318] hover:bg-[rgba(17,19,24,0.08)] active:bg-[rgba(17,19,24,0.12)]"),children:[(0,s.jsx)(r,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"}),(0,s.jsx)("span",{className:"absolute left-12 px-2 py-1 rounded-md whitespace-nowrap text-xs text-white bg-[#111318] hidden group-hover:inline-block group-focus-visible:inline-block z-50 shadow-lg pointer-events-none",children:t.name})]})}function R(e){let{moduleNav:t=[]}=e,a=(0,i.usePathname)(),{session:n,signOut:d}=function(){let[e,t]=(0,r.useState)(null),a=(0,i.useRouter)();return(0,r.useEffect)(()=>{let e=!0;return fetch("/api/auth/session",{cache:"no-store"}).then(e=>e.json()).then(a=>{e&&t((null==a?void 0:a.user)||null)}).catch(()=>{e&&t(null)}),()=>{e=!1}},[]),{session:e,signOut:async function(){await fetch("/api/auth/session",{method:"DELETE"}).catch(()=>null),a.replace("/login"),a.refresh()}}}(),[u,h]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!0;return fetch("/api/system/update").then(e=>e.ok?e.json():null).then(t=>{e&&t&&h(t)}).catch(()=>{}),()=>{e=!1}},[]);let p=(Array.isArray(t)?t:[]).map(e=>({group:"module",name:e.label,href:e.href,icon:C[e.icon]||v.A})),m=[...E.filter(e=>"work"===e.group),...p,...E.filter(e=>"library"===e.group)],g=(null==n?void 0:n.email)||"Local owner",f="local"===((null==n?void 0:n.auth_mode)||"local"),y=((null==n?void 0:n.email)||(null==n?void 0:n.display_name)||"AK").slice(0,2).toUpperCase();return(0,s.jsxs)("aside",{className:"relative z-30 h-full w-full rounded-[18px] border border-white/75 bg-[var(--glass)] backdrop-blur-[22px] backdrop-saturate-150 shadow-[0_18px_54px_rgba(37,36,34,0.16)] flex flex-col","aria-label":"Primary navigation",children:[(0,s.jsx)("div",{className:"h-20 flex items-center justify-center px-3 shrink-0",children:(0,s.jsx)(l(),{href:"/",prefetch:!0,className:"flex-none","aria-label":"madarX home",onClick:T,children:(0,s.jsx)("img",{src:"/madarx-mark.svg",alt:"madarX",width:32,height:32,className:"block text-[#111318]"})})}),(0,s.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 text-sm font-medium flex-1 space-y-1",children:m.map((e,t)=>{let r=m[t-1],n=r&&r.group!==e.group,l=P(a,e.href);return(0,s.jsxs)("li",{children:[n?(0,s.jsx)("div",{"aria-hidden":"true",className:"mx-2 my-2 h-px bg-[rgba(20,22,26,0.09)]"}):null,(0,s.jsx)(K,{item:e,active:l})]},e.name)})}),(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 pb-3 pt-2 text-sm font-medium space-y-1",children:_.map(e=>{let t=P(a,e.href);return(0,s.jsx)("li",{children:(0,s.jsx)(K,{item:e,active:t})},e.name)})}),(0,s.jsx)("div",{className:"relative py-4 px-3 border-t border-[rgba(20,22,26,0.09)] flex justify-center",children:(0,s.jsxs)(o.bL,{children:[(0,s.jsx)(o.l9,{className:"outline-none rounded-full border-0 bg-transparent p-0 appearance-none cursor-pointer focus-visible:ring-2 focus-visible:ring-[#111318] focus-visible:ring-offset-2 focus-visible:ring-offset-white/50","aria-label":"Account menu",children:(0,s.jsxs)(c.bL,{className:"w-10 h-10 rounded-full overflow-hidden cursor-pointer block",children:[(0,s.jsx)(c._V,{className:"w-full h-full object-cover",src:"/madarx-mark.svg",alt:"AK"}),(0,s.jsx)(c.H4,{className:"flex w-full h-full items-center justify-center text-white text-xs font-bold tracking-wider bg-gradient-to-br from-[#111318] to-[#565d6b]",delayMs:150,children:y})]})}),(0,s.jsx)(o.ZL,{children:(0,s.jsxs)(o.UC,{side:"right",align:"end",sideOffset:12,className:"w-64 rounded-xl bg-white shadow-[0_22px_60px_rgba(17,19,24,0.20)] border border-[rgba(20,22,26,0.09)] text-sm text-[#59606b] p-2 z-[100]",children:[(0,s.jsx)("div",{className:"px-2 py-1.5 text-[11px] uppercase tracking-[0.14em] text-[var(--accent-600)] font-bold",children:f?"Local operator":"Signed in"}),(0,s.jsx)("span",{className:"block text-[#68707b] px-2 pb-2 truncate",children:g}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Dashboard"})}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/settings",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Settings"})}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),(null==u?void 0:u.behind)&&(null==u?void 0:u.latest)?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/",className:"flex items-center justify-between gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-x-2",children:[(0,s.jsx)(N.A,{className:"w-4 h-4 text-[var(--accent-600)]",strokeWidth:1.75}),"Update available"]}),(0,s.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--accent-600)]",children:["v",u.latest]})]})}):(0,s.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-[12px] text-[#9aa1ab]",children:[(0,s.jsx)("span",{children:"Version"}),(0,s.jsx)("span",{className:"font-medium text-[#68707b]",children:(null==u?void 0:u.current)?"v".concat(u.current):"—"})]}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),f?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/settings/account",className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsx)(S.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign in with an account"]})}):(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)("button",{type:"button",onClick:d,className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer text-[#313740]",children:[(0,s.jsx)(A.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign out"]})})]})})]})})]})]})}}},e=>{e.O(0,[3045,1741,2619,7597,8441,1255,7358],()=>e(e.s=2455)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8419],{45:(e,t,r)=>{"use strict";r.d(t,{default:()=>i});var a=r(2115),n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},o=r(4250);let l=(0,a.createContext)({}),i=(0,a.forwardRef)((e,t)=>{var r,i,s;let{color:c,size:d,strokeWidth:u,absoluteStrokeWidth:h,className:p="",children:m,iconNode:f,...b}=e,{size:v=24,strokeWidth:j=2,absoluteStrokeWidth:y=!1,color:g="currentColor",className:k=""}=null!=(r=(0,a.useContext)(l))?r:{},w=(null!=h?h:y)?24*Number(null!=u?u:j)/Number(null!=d?d:v):null!=u?u:j;return(0,a.createElement)("svg",{ref:t,...n,width:null!=(i=null!=d?d:v)?i:n.width,height:null!=(s=null!=d?d:v)?s:n.height,stroke:null!=c?c:g,strokeWidth:w,className:(0,o.z)("lucide",k,p),...!m&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(b)&&{"aria-hidden":"true"},...b},[...f.map(e=>{let[t,r]=e;return(0,a.createElement)(t,r)}),...Array.isArray(m)?m:[m]])})},63:(e,t,r)=>{"use strict";var a=r(7260);r.o(a,"usePathname")&&r.d(t,{usePathname:function(){return a.usePathname}}),r.o(a,"useRouter")&&r.d(t,{useRouter:function(){return a.useRouter}}),r.o(a,"useSearchParams")&&r.d(t,{useSearchParams:function(){return a.useSearchParams}})},677:(e,t,r)=>{"use strict";r.d(t,{default:()=>o});var a=r(5155),n=r(2115);function o(){let[e,t]=(0,n.useState)([]),[r,o]=(0,n.useState)("");return(0,n.useEffect)(()=>{o(localStorage.getItem("madarx.activeProjectId")||""),fetch("/api/projects").then(e=>e.json()).then(e=>t(e.projects||[])).catch(()=>{})},[]),(0,a.jsx)("div",{className:"project-switcher","data-project-switcher":!0,children:(0,a.jsxs)("select",{value:r,onChange:e=>{var t;o(t=e.target.value),t?localStorage.setItem("madarx.activeProjectId",t):localStorage.removeItem("madarx.activeProjectId"),window.dispatchEvent(new CustomEvent("madarx:project-change",{detail:{project_id:t||null}}))},"aria-label":"Active project",children:[(0,a.jsx)("option",{value:"",children:"All projects"}),e.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})})}},1236:(e,t,r)=>{Promise.resolve().then(r.bind(r,677)),Promise.resolve().then(r.bind(r,6391)),Promise.resolve().then(r.bind(r,4073)),Promise.resolve().then(r.bind(r,2835)),Promise.resolve().then(r.bind(r,2074)),Promise.resolve().then(r.t.bind(r,2619,23))},2074:(e,t,r)=>{"use strict";r.d(t,{default:()=>i});var a=r(5155),n=r(2115),o=r(2835);let l=new Set(["html","htm"]);function i(e){let{projectId:t,children:r}=e,{refreshLibrary:i}=(0,o.c)(),[m,f]=n.useState(!1),[,b]=n.useState(!1),v=n.useRef(!1),j=n.useRef(null),[y,g]=n.useState(null),k=n.useRef(0);n.useEffect(()=>{function e(e){e.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes("Files")&&(k.current+=1,f(!0))}function t(){k.current=Math.max(0,k.current-1),0===k.current&&f(!1)}function r(e){e.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes("Files")&&(e.preventDefault(),e.dataTransfer.dropEffect="copy")}function a(e){var t;e.dataTransfer&&e.dataTransfer.files&&e.dataTransfer.files.length&&(e.preventDefault(),k.current=0,f(!1),null==(t=j.current)||t.call(j,Array.from(e.dataTransfer.files)))}return window.addEventListener("dragenter",e),window.addEventListener("dragleave",t),window.addEventListener("dragover",r),window.addEventListener("drop",a),()=>{window.removeEventListener("dragenter",e),window.removeEventListener("dragleave",t),window.removeEventListener("dragover",r),window.removeEventListener("drop",a)}},[]);let w=n.useCallback(async e=>{if(e.size>0x1900000)return{ok:!1,name:e.name,error:"Too large (>".concat(0x1900000," bytes)")};let r=function(e){let t=(String((null==e?void 0:e.name)||"").toLowerCase().match(/\.([a-z0-9]+)$/)||[,""])[1],r=String((null==e?void 0:e.type)||"").toLowerCase();return l.has(t)||"text/html"===r?"html":"disk"}(e),a=new FormData;if(a.set("project_id",t),"html"===r){a.set("file",e);let t=await fetch("/api/artifacts/upload",{method:"POST",body:a}),r=await t.json().catch(()=>({}));return{ok:t.ok,name:e.name,error:null==r?void 0:r.error}}a.set("files",e);let n=await fetch("/api/disk/files",{method:"POST",body:a}),o=await n.json().catch(()=>({}));return{ok:n.ok,name:e.name,error:null==o?void 0:o.error}},[t]),x=n.useCallback(async e=>{if(e.length&&!v.current){v.current=!0,b(!0);try{g({kind:"info",text:"Uploading ".concat(e.length," file").concat(e.length>1?"s":"","…")});let t=await Promise.all(e.map(w)),r=t.filter(e=>e.ok).length,a=t.filter(e=>!e.ok);0===a.length?g({kind:"ok",text:"Uploaded ".concat(r," file").concat(r>1?"s":"",".")}):r>0?g({kind:"warn",text:"Uploaded ".concat(r,", ").concat(a.length," failed (").concat(a[0].error||"error",").")}):g({kind:"err",text:"Upload failed: ".concat(a[0].error||"unknown error")}),r>0&&await i(),setTimeout(()=>g(null),4500)}finally{v.current=!1,b(!1)}}},[i,w]);return n.useEffect(()=>{j.current=x},[x]),(0,a.jsxs)(a.Fragment,{children:[r,m?(0,a.jsx)("div",{role:"status","aria-live":"polite",style:s,children:(0,a.jsxs)("div",{style:c,children:[(0,a.jsx)("div",{style:d,children:"Drop to upload"}),(0,a.jsx)("div",{style:u,children:"HTML files become artifacts \xb7 others land in Disk"})]})}):null,y?(0,a.jsx)("div",{role:"status","aria-live":"polite",style:{...h,...p[y.kind]},children:y.text}):null]})}let s={position:"fixed",inset:0,zIndex:9e3,background:"rgba(10, 8, 6, 0.45)",backdropFilter:"blur(6px)",WebkitBackdropFilter:"blur(6px)",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",transition:"opacity 120ms ease"},c={border:"2px dashed rgba(255,255,255,0.6)",borderRadius:16,padding:"32px 48px",background:"rgba(20,16,12,0.7)",color:"#f5efe7",textAlign:"center",fontFamily:"inherit"},d={fontSize:22,fontWeight:600,letterSpacing:"0.01em",marginBottom:6},u={fontSize:13,opacity:.75},h={position:"fixed",bottom:24,right:24,zIndex:9100,padding:"10px 14px",borderRadius:10,fontSize:13,fontFamily:"inherit",boxShadow:"0 8px 24px rgba(0,0,0,0.25)",maxWidth:380},p={info:{background:"#1f1b16",color:"#f5efe7",border:"1px solid rgba(245,239,231,0.18)"},ok:{background:"#1c2a1d",color:"#e6f3df",border:"1px solid rgba(120,180,90,0.35)"},warn:{background:"#2c2519",color:"#f4e6c5",border:"1px solid rgba(220,170,60,0.35)"},err:{background:"#2c1816",color:"#f4d8d2",border:"1px solid rgba(194,69,42,0.55)"}}},2835:(e,t,r)=>{"use strict";r.d(t,{ProjectAlbumProvider:()=>v,c:()=>j});var a=r(5155),n=r(2115);let o="madarx-privacy-unlocked",l="madarx-privacy-unlock-at",i="madarx-privacy-fail-count",s="madarx-privacy-fail-window-start",c="madarx-privacy-lockout-until";function d(e){try{return window.sessionStorage.getItem(e)}catch(e){return null}}function u(e,t){try{window.sessionStorage.setItem(e,String(t))}catch(e){}}function h(e){try{window.sessionStorage.removeItem(e)}catch(e){}}let p=0;function m(e,t){return new Promise((r,a)=>{let n=p+=1,o=t=>{var l;(null==(l=t.data)?void 0:l.id)===n&&(e.removeEventListener("message",o),!1===t.data.ok&&t.data.error?a(Error(t.data.error)):r(t.data))};e.addEventListener("message",o),e.postMessage({id:n,...t})})}let f=(0,n.createContext)(null);function b(e){return"".concat(e.source_type,"-").concat(e.id)}function v(e){let{children:t,initialItems:r=[],initialFolders:p=[],projectId:v,projectSlug:j,rootFolderId:y=null,currentFolderId:g=null,liveDeltasEnabled:k=!1}=e,w=function(){let{projectId:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[t,r]=(0,n.useState)(null),[a,p]=(0,n.useState)(!1),[f,b]=(0,n.useState)(!1),[v,j]=(0,n.useState)(null),[y,g]=(0,n.useState)(0),[k,w]=(0,n.useState)(0),x=(0,n.useRef)(null),C=(0,n.useRef)(Date.now()),S=(0,n.useCallback)(()=>{let e="1"===d(o),t=Number(d(l)||0);p(e&&t>0);let r=Number(d(i)||0),a=Number(d(c)||0);g(r),w(a>Date.now()?a:0)},[]),_=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/privacy/config"),t=await e.json();return r(t),t}catch(e){return r({configured:!1}),console.error("[usePrivacy] fetchConfig error:",e),{configured:!1}}},[]);(0,n.useEffect)(()=>(x.current=new Worker("/privacy.worker.js"),S(),_(),()=>{var e;null==(e=x.current)||e.terminate(),x.current=null}),[_,S]),(0,n.useEffect)(()=>{let e=()=>_(),t=()=>{p(!0),_()},r=()=>{p(!1)};return window.addEventListener("privacy:configured",e),window.addEventListener("privacy:unlocked",t),window.addEventListener("privacy:locked",r),()=>{window.removeEventListener("privacy:configured",e),window.removeEventListener("privacy:unlocked",t),window.removeEventListener("privacy:locked",r)}},[_]),(0,n.useEffect)(()=>{let e=()=>{C.current=Date.now()};window.addEventListener("mousemove",e,{passive:!0}),window.addEventListener("keydown",e,{passive:!0}),window.addEventListener("pointerdown",e,{passive:!0});let t=setInterval(()=>{a&&Date.now()-C.current>9e5&&(h(o),h(l),p(!1))},6e4);return()=>{window.removeEventListener("mousemove",e),window.removeEventListener("keydown",e),window.removeEventListener("pointerdown",e),clearInterval(t)}},[a]);let N=(0,n.useCallback)(()=>{h(o),h(l),p(!1);try{window.dispatchEvent(new CustomEvent("privacy:locked"))}catch(e){}},[]),L=(0,n.useCallback)(async r=>{if(!(null==t?void 0:t.configured))return{ok:!1,error:"No passphrase configured."};let a=x.current;if(!a)return{ok:!1,error:"Worker not ready."};let n=Number(d(c)||0);if(n>Date.now())return{ok:!1,error:"lockout",lockoutUntil:n};b(!0),j(null);try{if((await m(a,{op:"verify",passphrase:r,salt:t.salt_b64,iter:t.iterations,mac:t.hmac_b64})).match)return u(o,"1"),u(l,String(Date.now())),h(i),h(s),h(c),p(!0),g(0),w(0),fetch("/api/privacy/verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({success:!0,project_id:e||null})}).catch(()=>{}),{ok:!0};let n=Number(d(i)||0)+1,f=Number(d(s)||Date.now());u(i,String(n)),u(s,String(f)),g(n);let b=0;if(n>=5&&Date.now()-f<3e5)return b=Date.now()+9e5,u(c,String(b)),w(b),fetch("/api/privacy/verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({success:!1,attempt_count:n,lockout_until:new Date(b).toISOString(),project_id:e||null})}).catch(()=>{}),{ok:!1,error:"lockout",lockoutUntil:b};return Date.now()-f>=3e5&&(u(i,"1"),u(s,String(Date.now())),g(1)),fetch("/api/privacy/verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({success:!1,attempt_count:n,project_id:e||null})}).catch(()=>{}),{ok:!1,error:"wrong_passphrase",failCount:n}}catch(t){let e=(null==t?void 0:t.message)||"Crypto error.";return j(e),{ok:!1,error:e}}finally{b(!1)}},[t,e]),E=(0,n.useCallback)(async e=>{let r=x.current;if(!r)return{ok:!1,error:"Worker not ready."};b(!0),j(null);try{let a=await m(r,{op:"setup",passphrase:e,iter:6e5});if(!a.ok)throw Error(a.error||"Worker failed.");let n=!!(null==t?void 0:t.configured),i=await fetch("/api/privacy/config",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kdf:"PBKDF2-SHA256",iterations:6e5,salt_b64:a.salt_b64,hmac_b64:a.hmac_b64,idle_timeout_ms:9e5,is_change:n})}),s=await i.json();if(!s.ok)throw Error(s.error||"Server rejected config.");return u(o,"1"),u(l,String(Date.now())),p(!0),await _(),window.dispatchEvent(new CustomEvent("privacy:configured")),{ok:!0}}catch(t){let e=(null==t?void 0:t.message)||"Setup failed.";return j(e),{ok:!1,error:e}}finally{b(!1)}},[t,_]),D=(0,n.useCallback)(async()=>{b(!0),j(null);try{let e=await fetch("/api/privacy/config",{method:"DELETE"}),t=await e.json();if(!t.ok)throw Error(t.error||"Reset failed.");return N(),h(i),h(s),h(c),g(0),w(0),await _(),{ok:!0,artifacts_cleared:t.artifacts_cleared}}catch(t){let e=(null==t?void 0:t.message)||"Reset failed.";return j(e),{ok:!1,error:e}}finally{b(!1)}},[N,_]),I=!!(null==t?void 0:t.configured);return{config:t,configured:I,unlocked:a,busy:f,error:v,failCount:y,lockoutUntil:k,lock:N,unlock:L,setupPassphrase:E,resetPassphrase:D,refetchConfig:_}}({projectId:v}),x=function(){let e=(0,n.useRef)(new Map),[t,r]=(0,n.useState)(0),a=(0,n.useCallback)(async function(t){var a;let{force:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return null;if(!n&&e.current.has(t))return e.current.get(t);let[o,l,i]=await Promise.all([fetch("/api/artifacts/".concat(t,"/acl")),fetch("/api/artifacts/".concat(t,"/share-link")),fetch("/api/audit/search?action_target_type=artifact&action_target_id=".concat(t,"&limit=5"))]),s={acl:null,links:[],auditRows:[]};if(o.ok){let{data:e}=await o.json();s.acl=e}if(l.ok){let{data:e}=await l.json();s.links=Array.isArray(e)?e:[]}return i.ok&&(s.auditRows=(Array.isArray(a=await i.json())?a:Array.isArray(null==a?void 0:a.rows)?a.rows:Array.isArray(null==a?void 0:a.data)?a.data:[]).slice(0,5)),e.current.set(t,s),r(e=>e+1),s},[]),o=(0,n.useCallback)(t=>{t?e.current.delete(t):e.current.clear(),r(e=>e+1)},[]);return{readArtifactShareData:a,invalidateArtifactShareData:o,readProjectShareData:(0,n.useCallback)(async function(t){var a;let{force:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return null;let o="project:".concat(t);if(!n&&e.current.has(o))return e.current.get(o);let l={status:null,cloudReady:!1,grants:[],members:[],orgId:null,error:null},[i,s]=await Promise.all([fetch("/api/shared/spaces/status?local_space_id=".concat(encodeURIComponent(t),"&space_type=project")),fetch("/api/orgs")]);if(i.ok){let e=await i.json();l.status=e.status||null,l.cloudReady=!!e.cloud_ready}if(s.ok){let{orgs:e}=await s.json();l.orgId=Array.isArray(e)&&e.length&&(e[0].org_id||e[0].id)||null}if(null==(a=l.status)?void 0:a.shared){let e=await fetch("/api/shared/spaces/".concat(encodeURIComponent(t),"/acl?space_type=project"));if(e.ok){let{data:t}=await e.json();l.grants=Array.isArray(t)?t:[]}}if(l.orgId){let e=await fetch("/api/orgs/".concat(encodeURIComponent(l.orgId),"/members"));if(e.ok){let{members:t}=await e.json();l.members=Array.isArray(t)?t:[]}}return e.current.set(o,l),r(e=>e+1),l},[]),invalidateProjectShareData:(0,n.useCallback)(t=>{t?e.current.delete("project:".concat(t)):e.current.clear(),r(e=>e+1)},[]),shareDataVersion:t}}(),[C,S]=(0,n.useState)(r),[_,N]=(0,n.useState)(p),[L,E]=(0,n.useState)(!1),[D,I]=(0,n.useState)(!1);(0,n.useEffect)(()=>{S(r)},[r]),(0,n.useEffect)(()=>{N(p)},[p]);let A=(0,n.useCallback)(async()=>{if(!j)return;let e=await fetch("/api/projects/".concat(encodeURIComponent(j),"/library"),{cache:"no-store"});if(!e.ok)throw Error("library refresh failed (".concat(e.status,")"));let t=await e.json();S(Array.isArray(t.libraryItems)?t.libraryItems:[]),N(Array.isArray(t.folders)?t.folders:[])},[j]);(0,n.useEffect)(()=>{if(!k)return;let e=new EventSource("/api/events/stream"),t=null,r=null,a=()=>{t&&window.clearTimeout(t),t=window.setTimeout(()=>{t=null,A().catch(e=>{console.warn("[project-album] live library refresh failed",e)})},250)},n=["state.disk.changed","state.artifacts.changed","state.acl.changed","state.share_links.changed"];for(let t of n)e.addEventListener(t,a);let o=()=>{"visible"===document.visibilityState&&a()};return document.addEventListener("visibilitychange",o),r=window.setInterval(a,6e4),()=>{for(let t of n)e.removeEventListener(t,a);document.removeEventListener("visibilitychange",o),t&&window.clearTimeout(t),r&&window.clearInterval(r),e.close()}},[k,A]);let P=(0,n.useCallback)(e=>{S(t=>(function(e,t){if(!(null==t?void 0:t.id)||!(null==t?void 0:t.source_type))return e;let r=b(t),a=!1,n=e.map(e=>b(e)!==r?e:(a=!0,{...e,...t}));return a?n:[t,...n]})(t,e))},[]),M=(0,n.useCallback)(e=>{let t="string"==typeof e?e:b(e);S(e=>e.filter(e=>b(e)!==t))},[]),T=(0,n.useMemo)(()=>({items:C,folders:_,setItems:S,setFolders:N,applyItemPatch:P,removeItem:M,refreshLibrary:A,liveDeltasEnabled:k,projectId:v,projectSlug:j,rootFolderId:y,currentFolderId:g,privacy:w,shareData:x,setupModalOpen:L,unlockModalOpen:D,openSetupModal:()=>E(!0),closeSetupModal:()=>E(!1),openUnlockModal:()=>I(!0),closeUnlockModal:()=>I(!1)}),[C,_,P,M,A,k,v,j,y,g,w,x,L,D]);return(0,a.jsx)(f.Provider,{value:T,children:t})}function j(){let e=(0,n.useContext)(f);if(!e)throw Error("useProjectAlbum must be used inside ProjectAlbumProvider");return e}},3185:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var a=r(2115),n=r(4250);let o=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var l=r(45);let i=(e,t)=>{let r=(0,a.forwardRef)((r,i)=>{let{className:s,...c}=r;return(0,a.createElement)(l.default,{ref:i,iconNode:t,className:(0,n.z)("lucide-".concat(o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),s),...c})});return r.displayName=o(e),r}},4073:(e,t,r)=>{"use strict";r.d(t,{default:()=>p});var a=r(5155),n=r(2619),o=r.n(n),l=r(7909),i=r(2115),s=r(5649),c=r(2835);let d=(0,l.default)(()=>r.e(1517).then(r.bind(r,1517)).then(e=>e.PrivacyPassphraseModal),{loadableGenerated:{webpack:()=>[1517]}}),u=(0,l.default)(()=>r.e(4797).then(r.bind(r,4797)).then(e=>e.PrivacyUnlockModal),{loadableGenerated:{webpack:()=>[4797]}}),h=(0,l.default)(()=>r.e(9867).then(r.bind(r,9867)),{loadableGenerated:{webpack:()=>[9867]}});function p(e){let{projectId:t,projectName:r="",slug:n,lockedCount:l=0,currentFolderId:p=null,rootFolderId:b=null}=e,{privacy:v,setupModalOpen:j,unlockModalOpen:y,openSetupModal:g,closeSetupModal:k,openUnlockModal:w,closeUnlockModal:x,refreshLibrary:C}=(0,c.c)(),{configured:S,unlocked:_,lock:N}=v,[L,E]=(0,i.useState)(!1),[D,I]=(0,i.useState)(!1),[A,P]=(0,i.useState)(""),[M,T]=(0,i.useState)(null),[F,O]=(0,i.useState)(!1),R=(0,i.useCallback)(()=>{P(""),T(null),I(!0)},[]),U=(0,i.useCallback)(()=>{F||I(!1)},[F]),W=(0,i.useCallback)(async e=>{if(e&&e.preventDefault(),F)return;let r=String(A||"").trim();if(!r)return void T("Name is required.");if(/[\\/]/.test(r))return void T("Name cannot contain slashes.");O(!0),T(null);try{let e=p&&p!==b?p:null,a=await fetch("/api/disk/folders",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({project_id:t,name:r,parent_id:e})}),n=await a.json().catch(()=>({}));if(!a.ok)throw Error((null==n?void 0:n.error)||"create failed (".concat(a.status,")"));I(!1),P(""),await C()}catch(e){console.error("[project-header] create folder failed",e),T((null==e?void 0:e.message)||String(e))}finally{O(!1)}},[F,A,t,p,b,C]),B=S?_?(0,a.jsx)("button",{type:"button",className:"project-album-lock-chip unlocked",onClick:N,"aria-label":"Lock protected artifacts",title:"Click to lock",children:(0,a.jsx)(f,{})}):(0,a.jsxs)("button",{type:"button",className:"project-album-lock-chip locked",onClick:w,"aria-label":"Unlock ".concat(l," protected artifacts"),title:"Click to unlock",children:[(0,a.jsx)(m,{}),l>0?(0,a.jsx)("span",{className:"project-album-lock-chip-count",children:l}):null]}):(0,a.jsx)("button",{type:"button",className:"project-album-lock-chip no-passphrase",onClick:g,"aria-label":"Set up passphrase protection",title:"Protect individual artifacts with a passphrase",children:(0,a.jsx)(m,{})});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o(),{className:"project-activity-link icon-only",href:"/projects/".concat(n,"/log"),"aria-label":"Open project activity",title:"Activity",children:(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,a.jsx)("path",{d:"M8 5v3.5l2.2 1.3"})]})}),B,(0,a.jsxs)("button",{type:"button",className:"project-album-folder-new",onClick:()=>E(!0),"aria-label":"Share this project",title:"Share this project with your organization",children:[(0,a.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"3.5",r:"2"}),(0,a.jsx)("circle",{cx:"4",cy:"8",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"12.5",r:"2"}),(0,a.jsx)("path",{d:"M5.7 7 10.3 4.5M5.7 9l4.6 2.5"})]}),"Share"]}),(0,a.jsxs)("button",{type:"button",className:"project-album-folder-new",onClick:R,"aria-label":"Create new folder",title:"Create a new folder on disk",children:[(0,a.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M2 5a1 1 0 0 1 1-1h3.5l1.5 1.5H13a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5Z"}),(0,a.jsx)("path",{d:"M8 8v4M6 10h4"})]}),"New folder"]}),(0,a.jsx)(s.A,{open:D,onClose:U,eyebrow:"Library",title:"New folder",children:(0,a.jsxs)("form",{className:"agents-modal-form",onSubmit:W,children:[(0,a.jsx)("p",{className:"agents-modal-help",children:"Creates a real folder on disk under this project. Use it to organize uploaded documents and artifacts."}),(0,a.jsxs)("section",{className:"agents-modal-section",children:[(0,a.jsxs)("label",{className:"agents-modal-field wide",children:[(0,a.jsx)("span",{children:"Folder name"}),(0,a.jsx)("input",{type:"text",value:A,onChange:e=>{P(e.target.value),M&&T(null)},placeholder:"e.g. Research, Drafts, 2026-Q2",autoComplete:"off",spellCheck:!1,autoFocus:!0,maxLength:120,disabled:F})]}),M?(0,a.jsx)("p",{className:"agents-modal-feedback error",role:"alert","aria-live":"polite",children:M}):(0,a.jsx)("small",{className:"project-album-folder-hint",children:"Letters, numbers, spaces, dashes. No slashes."})]}),(0,a.jsxs)("footer",{className:"agents-modal-foot",children:[(0,a.jsx)("button",{type:"button",className:"admin-button secondary",onClick:U,disabled:F,children:"Cancel"}),(0,a.jsx)("button",{type:"submit",className:"admin-button",disabled:F||!A.trim(),children:F?"Creating…":"Create folder"})]})]})}),(0,a.jsx)(d,{open:j,onClose:k,projectId:t,privacy:v}),(0,a.jsx)(u,{open:y,onClose:x,projectId:t,privacy:v}),L?(0,a.jsx)(h,{item:{source_type:"project",id:t,name:r},onClose:()=>E(!1)}):null]})}function m(){return(0,a.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1.5"}),(0,a.jsx)("path",{d:"M5 7V5a3 3 0 0 1 6 0v2"})]})}function f(){return(0,a.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1.5"}),(0,a.jsx)("path",{d:"M5 7V5a3 3 0 0 1 6 0v0"})]})}},4250:(e,t,r)=>{"use strict";r.d(t,{z:()=>a});let a=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()}},4788:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3185).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},5649:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var a=r(5155),n=r(2115),o=r(4788);function l(e){let{open:t,onClose:r,eyebrow:l,title:i,tone:s="default",size:c="default",children:d}=e,u=n.useRef(null);return n.useEffect(()=>{let e=u.current;e&&(t&&!e.open&&("function"==typeof e.showModal?e.showModal():e.setAttribute("open","")),!t&&e.open&&e.close())},[t]),n.useEffect(()=>{let e=u.current;if(!e)return;let t=e=>{e.preventDefault(),r()};return e.addEventListener("cancel",t),()=>e.removeEventListener("cancel",t)},[r]),(0,a.jsx)("dialog",{ref:u,className:"agents-modal".concat("wide"===c?" agents-modal--wide":""),onClick:e=>{e.target===u.current&&r()},children:t?(0,a.jsxs)("div",{className:"agents-modal-card".concat("danger"===s?" agents-modal-card--danger":""),onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("header",{className:"agents-modal-head",children:[(0,a.jsxs)("div",{children:[l?(0,a.jsx)("span",{className:"admin-kicker",children:l}):null,(0,a.jsx)("h2",{children:i})]}),(0,a.jsx)("button",{type:"button",className:"agents-modal-close",onClick:r,"aria-label":"Close",children:(0,a.jsx)(o.A,{size:14})})]}),d]}):null})}},6391:(e,t,r)=>{"use strict";r.d(t,{default:()=>k});var a=r(5155),n=r(7909),o=r(2115),l=r(63);function i(e){if(!Number.isFinite(e)||e<=0)return"0 B";let t=["B","KB","MB","GB"],r=0,a=e;for(;a>=1024&&r<t.length-1;)a/=1024,r+=1;return"".concat(a.toFixed(a>=10||0===r?0:1)," ").concat(t[r])}function s(e){return"".concat(e.source_type,"-").concat(e.id)}function c(e){let{breadcrumb:t,dragOverFolderId:r,setDragOverFolderId:n,navigateToFolder:o,albumItems:l,moveItem:i,rootFolderId:c}=e;if(!t.length)return null;let d=e=>({onDragOver:t=>{t.preventDefault(),n(e||"__root__")},onDragLeave:()=>n(null),onDrop:t=>((e,t)=>{e.preventDefault(),n(null);let r=e.dataTransfer.getData("text/madarx-item-key"),a=l.find(e=>s(e)===r);a&&i(a,t)})(t,e||c)});return(0,a.jsxs)("nav",{className:"project-album-breadcrumb","aria-label":"Folder",children:[(0,a.jsxs)("button",{type:"button",className:"project-album-crumb".concat("__root__"===r?" drop-target":""),onClick:()=>o(null),...d(null),children:[(0,a.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M2 8l6-5 6 5v5a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8z"})}),(0,a.jsx)("span",{children:"Library"})]}),t.map((e,n)=>{let l=n===t.length-1;return(0,a.jsxs)("span",{className:"project-album-crumb-row",children:[(0,a.jsx)("svg",{className:"project-album-crumb-sep",width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M3 1l4 4-4 4"})}),l?(0,a.jsx)("span",{className:"project-album-crumb current","aria-current":"page",children:e.name}):(0,a.jsx)("button",{type:"button",className:"project-album-crumb".concat(r===e.id?" drop-target":""),onClick:()=>o(e.id),...d(e.id),children:e.name})]},e.id)})]})}var d=r(8219);function u(e){let{item:t,MarkdownThumbnail:r}=e;if("file"===t.source_type&&t.local_only)return(0,a.jsxs)("div",{className:"project-album-thumb-tile","data-kind":"local",children:[(0,a.jsx)("span",{children:"LOCAL"}),(0,a.jsx)("small",{children:i(t.size_bytes)})]});if("html"===t.render_kind&&t.body)return(0,a.jsxs)("div",{className:"project-album-thumb-iframe-wrap","aria-hidden":"true",children:[(0,a.jsx)("iframe",{className:"project-album-thumb-iframe",srcDoc:(0,d.sV)(t.body),sandbox:"",loading:"lazy",tabIndex:-1,title:""}),(0,a.jsx)("div",{className:"project-album-thumb-shield"})]});if("markdown"===t.render_kind&&t.body)return(0,a.jsx)("div",{className:"project-album-thumb-md","aria-hidden":"true",children:(0,a.jsx)("div",{className:"project-album-thumb-md-inner",children:(0,a.jsx)(r,{children:String(t.body).slice(0,800)})})});let n=String(t.kind||"FILE").toUpperCase().slice(0,6);return(0,a.jsxs)("div",{className:"project-album-thumb-tile","data-kind":String(t.kind||"file").toLowerCase(),children:[(0,a.jsx)("span",{children:n}),"file"===t.source_type?(0,a.jsx)("small",{children:i(t.size_bytes)}):null]})}function h(e){let{item:t,onOpen:r,onDoubleOpen:n,onOpenUnlock:o,blurred:l=!1,highlighted:i=!1,protectedFlag:s=!1,keyHintVisible:c=!1,onShowKeyHint:d,onHideKeyHint:h,draggable:p=!1,onDragStart:m,moving:f=!1,MarkdownThumbnail:b}=e,v="artifact"===t.source_type?t.title||t.path||t.id:t.name,j="artifact"===t.source_type?t.kind||"artifact":t.local_only?"local":t.kind||"file",y=function(e){if("artifact"===e.source_type){let t=e.agent_id||"";return t?"main-orchestrator"===t?"Main agent":"ops-agent"===t?"Caretaker":t:"Agent"}return"You"}(t),g=t.updated_at||t.created_at,k=["project-album-card"];return l&&k.push("blurred"),i&&k.push("highlighted"),s&&k.push("is-protected"),f&&k.push("moving"),(0,a.jsxs)("button",{type:"button",className:k.join(" "),onClick:r,onDoubleClick:n,onKeyDown:e=>{if(l){if("d"===e.key||"D"===e.key){e.preventDefault(),o();return}("Enter"===e.key||" "===e.key)&&(e.preventDefault(),d(),setTimeout(h,2500))}},tabIndex:0,"aria-label":l?"".concat(v," — protected. Double-click or press D to unlock."):"Open ".concat(v),"aria-disabled":l||void 0,style:l?{userSelect:"none"}:void 0,draggable:p&&!l,onDragStart:p&&!l?m:void 0,children:[(0,a.jsxs)("div",{className:"project-album-thumb","data-render":t.render_kind||"text","data-source":t.source_type,"aria-hidden":l?"true":void 0,children:[(0,a.jsx)(u,{item:t,MarkdownThumbnail:b}),l?(0,a.jsx)("div",{className:"project-album-thumb-lock","aria-hidden":"true",children:(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1.5"}),(0,a.jsx)("path",{d:"M5 7V5a3 3 0 0 1 6 0v2"})]})}):null,s&&!l?(0,a.jsx)("div",{className:"project-album-thumb-badge","aria-hidden":"true",title:"Protected",children:(0,a.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1.5"}),(0,a.jsx)("path",{d:"M5 7V5a3 3 0 0 1 6 0v2"})]})}):null]}),(0,a.jsxs)("div",{className:"project-album-card-body",children:[(0,a.jsx)("b",{title:v,children:v}),(0,a.jsxs)("small",{className:"project-album-card-meta",children:[(0,a.jsx)("span",{className:"project-album-kind",children:j}),(0,a.jsx)("span",{"aria-hidden":"true",children:" \xb7 "}),(0,a.jsx)("span",{children:y}),g?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{"aria-hidden":"true",children:" \xb7 "}),(0,a.jsx)("time",{dateTime:g,children:function(e){if(!e)return"";try{return new Intl.DateTimeFormat("en",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(new Date(e))}catch(t){return e}}(g)})]}):null]})]}),c?(0,a.jsx)("div",{className:"project-album-key-hint","aria-live":"polite",role:"status",children:"Double-click or press D to unlock."}):null]})}function p(e){let{folder:t,dragOver:r,onOpen:n,onDragOver:o,onDragLeave:l,onDrop:i}=e,s=["project-album-folder-card"];return r&&s.push("drop-target"),(0,a.jsxs)("button",{type:"button",className:s.join(" "),onClick:n,onDragOver:o,onDragLeave:l,onDrop:i,"aria-label":"Open folder ".concat(t.name),children:[(0,a.jsx)("span",{className:"project-album-folder-card-icon","aria-hidden":"true",children:(0,a.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"})})}),(0,a.jsxs)("span",{className:"project-album-folder-card-body",children:[(0,a.jsx)("b",{children:t.name}),(0,a.jsx)("small",{children:"Folder"})]})]})}function m(e){let{subFolders:t,dragOverFolderId:r,setDragOverFolderId:n,navigateToFolder:o,albumItems:l,moveItem:i}=e;return t.length?(0,a.jsx)("div",{className:"project-album-folders",children:t.map(e=>(0,a.jsx)(p,{folder:e,dragOver:r===e.id,onOpen:()=>o(e.id),onDragOver:t=>{t.preventDefault(),n(e.id)},onDragLeave:()=>n(null),onDrop:t=>{t.preventDefault(),n(null);let r=t.dataTransfer.getData("text/madarx-item-key"),a=l.find(e=>s(e)===r);a&&i(a,e.id)}},e.id))}):null}function f(e){let{query:t,setQuery:r,filters:n,filterId:o,setFilterId:l,itemsInFolder:i}=e;return(0,a.jsxs)("div",{className:"project-album-toolbar",children:[(0,a.jsxs)("label",{className:"project-album-search",children:[(0,a.jsxs)("svg",{className:"project-album-search-icon",width:"15",height:"15",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"7",cy:"7",r:"5"}),(0,a.jsx)("line",{x1:"10.6",y1:"10.6",x2:"14",y2:"14"})]}),(0,a.jsx)("input",{type:"search",value:t,onChange:e=>r(e.target.value),placeholder:"Search artifacts, documents, and content…","aria-label":"Search project library"}),t?(0,a.jsx)("button",{type:"button",className:"project-album-search-clear",onClick:()=>r(""),"aria-label":"Clear search",children:"\xd7"}):null]}),(0,a.jsx)("div",{className:"project-album-filters",role:"tablist","aria-label":"Filter",children:n.map(e=>{let t=i.filter(e.match).length,r=o===e.id;return(0,a.jsxs)("button",{type:"button",role:"tab","aria-selected":r,className:"project-album-filter".concat(r?" on":""),onClick:()=>l(e.id),children:[(0,a.jsx)("span",{children:e.label}),(0,a.jsx)("code",{children:t})]},e.id)})})]})}function b(e){let{onSetup:t,onDismiss:r}=e;return(0,a.jsxs)("div",{className:"project-album-migration-banner",role:"status",children:[(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1.5"}),(0,a.jsx)("path",{d:"M5 7V5a3 3 0 0 1 6 0v2"})]}),(0,a.jsx)("p",{children:"You had privacy blur enabled. Set a passphrase to protect individual artifacts, or dismiss to skip."}),(0,a.jsxs)("div",{className:"project-album-migration-actions",children:[(0,a.jsx)("button",{type:"button",className:"project-album-migration-cta",onClick:t,children:"Set up passphrase"}),(0,a.jsx)("button",{type:"button",className:"project-album-migration-dismiss",onClick:r,children:"Dismiss"})]})]})}var v=r(2835);let j=[{id:"all",label:"All",match:()=>!0},{id:"artifact",label:"Artifacts",match:e=>"artifact"===e.source_type},{id:"document",label:"Documents",match:e=>"file"===e.source_type},{id:"local",label:"Local-only",match:e=>"file"===e.source_type&&e.local_only}],y=(0,n.default)(()=>Promise.all([r.e(930),r.e(2713)]).then(r.bind(r,5094)),{loadableGenerated:{webpack:()=>[5094]}}),g=(0,n.default)(()=>Promise.all([r.e(930),r.e(9863)]).then(r.bind(r,9863)),{loadableGenerated:{webpack:()=>[9863]},loading:()=>(0,a.jsx)("div",{className:"project-album-thumb-tile","data-kind":"markdown",children:(0,a.jsx)("span",{children:"MD"})})});function k(e){let{items:t,folders:r=[],projectId:n,projectSlug:i,rootFolderId:d=null,currentFolderId:u=null}=e,p=(0,l.useRouter)(),[k,w]=(0,o.useState)(null),[x,C]=(0,o.useState)(null),[S,_]=(0,o.useState)(null),[N,L]=(0,o.useState)(null),[E,D]=(0,o.useState)(!1),[I,A]=(0,o.useState)(null),[P,M]=(0,o.useState)([]),[T,F]=(0,o.useState)(null),{privacy:O,openSetupModal:R,openUnlockModal:U,applyItemPatch:W,removeItem:B,items:z,folders:H}=(0,v.c)(),V=z||t,K=H||r,{configured:J,unlocked:G}=O,q=function(e){let{items:t,folders:r,currentFolderId:a,rootFolderId:n,unlocked:l}=e,[i,s]=(0,o.useState)("all"),[c,d]=(0,o.useState)(""),[u,h]=(0,o.useState)(null),p=(0,o.useDeferredValue)(c),m=!a||a===n,f=(0,o.useMemo)(()=>r.find(e=>e.id===a)||null,[r,a]),b=(0,o.useMemo)(()=>{if(m)return[];let e=[],t=new Map(r.map(e=>[e.id,e])),n=t.get(a);for(;n;)e.unshift(n),n=n.parent_id?t.get(n.parent_id):null;return e},[r,a,m]),v=(0,o.useMemo)(()=>{let e=m?n:a;return r.filter(t=>t.parent_id===e)},[r,a,m,n]),y=(0,o.useMemo)(()=>t.filter(e=>{let t=e.folder_id||null;return m?!t||t===n:t===a}),[t,a,m,n]),g=(0,o.useMemo)(()=>{let e=(j.find(e=>e.id===i)||j[0]).match;return y.filter(e)},[y,i]),k=(0,o.useMemo)(()=>{let e=String(p||"").trim().toLowerCase();return e?g.filter(t=>(function(e){let{sessionUnlocked:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.is_protected&&!t?"":String(e.body||e.preview||"").slice(0,4e3);return[e.title||"",e.name||"",e.path||"",r,e.agent_id||"",function(e){if("artifact"===e.source_type){let t=e.agent_id||"";return t?"main-orchestrator"===t?"Main agent":"ops-agent"===t?"Caretaker":t:"Agent"}return"You"}(e)].join(" ").toLowerCase()})(t,{sessionUnlocked:l}).includes(e)):g},[g,p,l]),w=String(p||"").trim().toLowerCase(),x=(0,o.useCallback)(e=>!!w&&[e.title||"",e.name||"",e.path||""].join(" ").toLowerCase().includes(w),[w]),C=(0,o.useMemo)(()=>t.find(e=>"".concat(e.source_type,"-").concat(e.id)===u)||null,[t,u]);return{FILTERS:j,filterId:i,setFilterId:s,query:c,setQuery:d,selectedKey:u,setSelectedKey:h,isRoot:m,currentFolder:f,breadcrumb:b,subFolders:v,itemsInFolder:y,visible:k,queryLower:w,titleMatchesQuery:x,selected:C}}({items:V,folders:K,currentFolderId:u,rootFolderId:d,unlocked:G});(0,o.useEffect)(()=>{try{if("1"!==window.localStorage.getItem("madarx-album-privacy-blur"))return;J?window.localStorage.removeItem("madarx-album-privacy-blur"):D(!0)}catch(e){}},[J]),(0,o.useEffect)(()=>{let e=!1;return fetch("/api/dashboard/spaces").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&Array.isArray(t.spaces)&&M(t.spaces)}).catch(()=>{}),()=>{e=!0}},[]);let Q=(0,o.useCallback)(async(e,t)=>{if(e&&"artifact"===e.source_type&&t){F(s(e));try{let r=await fetch("/api/dashboard/spaces/".concat(encodeURIComponent(t),"/move"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({artifact_id:e.id})});if(!r.ok)throw Error(await r.text().catch(()=>"")||"bookmark failed (".concat(r.status,")"));W({...e,space_id:t})}catch(e){console.error("[project-album] bookmark to space failed",e),window.alert("Could not pin this artifact to the space.\n".concat((null==e?void 0:e.message)||e))}finally{F(null)}}},[W]),Y=(0,o.useCallback)(()=>{try{window.localStorage.removeItem("madarx-album-privacy-blur")}catch(e){}D(!1)},[]),Z=(0,o.useCallback)(async e=>{if(e&&!k){w(s(e));try{let t="artifact"===e.source_type?"/api/artifacts/".concat(encodeURIComponent(e.id)):"/api/disk/files/".concat(encodeURIComponent(e.id)),r=await fetch(t,{method:"DELETE"});if(!r.ok)throw Error(await r.text().catch(()=>"")||"delete failed (".concat(r.status,")"));q.setSelectedKey(null),B(e)}catch(e){console.error("[project-album] delete failed",e),window.alert("Could not delete this item. See console for details.")}finally{w(null)}}},[q,k,B]),$=(0,o.useCallback)(async(e,t)=>{L(null);try{let r=await fetch("/api/artifacts/".concat(e.id,"/protect"),{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({is_protected:!t})}),a=await r.json();if(a.need_passphrase_setup){q.setSelectedKey(null),R();return}if(!r.ok)return void L(a.error||"protect failed (".concat(r.status,")"));W({...e,is_protected:a.is_protected})}catch(e){L((null==e?void 0:e.message)||"Protect toggle failed.")}},[q,W,R]),X=(0,o.useCallback)(e=>{let t=e&&e!==d?"/projects/".concat(i,"?folder=").concat(encodeURIComponent(e)):"/projects/".concat(i);p.push(t)},[i,d,p]),ee=(0,o.useCallback)(async(e,t)=>{if(!e)return;let r="artifact"===e.source_type?"/api/artifacts/".concat(encodeURIComponent(e.id)):"/api/disk/files/".concat(encodeURIComponent(e.id));C(s(e));try{let a=await fetch(r,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({folder_id:t||null})});if(!a.ok)throw Error(await a.text().catch(()=>"")||"move failed (".concat(a.status,")"));let n=await a.json().catch(()=>({}));W(n.artifact||n.file||{...e,folder_id:t||null})}catch(e){console.error("[project-album] move failed",e),window.alert("Could not move this item.\n".concat((null==e?void 0:e.message)||e))}finally{C(null)}},[W]);return(0,a.jsxs)("div",{className:"project-album",children:[(0,a.jsx)(f,{query:q.query,setQuery:q.setQuery,filters:q.FILTERS,filterId:q.filterId,setFilterId:q.setFilterId,itemsInFolder:q.itemsInFolder}),E?(0,a.jsx)(b,{onSetup:()=>{D(!1),R()},onDismiss:Y}):null,(0,a.jsx)(c,{breadcrumb:q.breadcrumb,dragOverFolderId:S,setDragOverFolderId:_,navigateToFolder:X,albumItems:V,moveItem:ee,rootFolderId:d}),(0,a.jsx)(m,{subFolders:q.subFolders,dragOverFolderId:S,setDragOverFolderId:_,navigateToFolder:X,albumItems:V,moveItem:ee}),q.visible.length?(0,a.jsx)("div",{className:"project-album-grid",children:q.visible.map(e=>{let t=e.is_protected&&!G&&!q.titleMatchesQuery(e),r=e.is_protected&&!t&&!!q.queryLower,n=s(e);return(0,a.jsx)(h,{item:e,onOpen:()=>{e.is_protected&&!G&&!q.titleMatchesQuery(e)||q.setSelectedKey(s(e))},onDoubleOpen:()=>{!e.is_protected||G||q.titleMatchesQuery(e)?q.setSelectedKey(s(e)):U()},onOpenUnlock:U,blurred:t,highlighted:r,protectedFlag:!!e.is_protected,keyHintVisible:I===n,onShowKeyHint:()=>A(n),onHideKeyHint:()=>A(null),draggable:!0,onDragStart:e=>{e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/madarx-item-key",n)},moving:x===n,MarkdownThumbnail:g},n)})}):(0,a.jsx)("div",{className:"project-album-empty",children:q.query?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("b",{children:["No matches for “",q.query,"”."]}),(0,a.jsx)("small",{children:"Try a different keyword, or clear the search."})]}):q.isRoot?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("b",{children:"Nothing here yet."}),(0,a.jsx)("small",{children:"Upload a document, create an artifact, or add a folder."})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("b",{children:"This folder is empty."}),(0,a.jsx)("small",{children:"Drag an item here, or upload directly to this folder."})]})}),(0,a.jsx)(y,{item:q.selected,onClose:()=>{q.setSelectedKey(null),L(null)},isProtected:!!q.selected&&!!q.selected.is_protected,onToggleProtect:()=>q.selected&&$(q.selected,!!q.selected.is_protected),protectError:N,onDelete:()=>q.selected&&Z(q.selected),deleting:!!q.selected&&k===s(q.selected),folders:K,rootFolderId:d,onMove:e=>q.selected&&ee(q.selected,e),moving:!!q.selected&&x===s(q.selected),spaces:P,onBookmarkToSpace:e=>q.selected&&Q(q.selected,e),bookmarking:!!q.selected&&T===s(q.selected)})]})}(0,n.default)(()=>r.e(9867).then(r.bind(r,9867)),{loadableGenerated:{webpack:()=>[9867]}})}},e=>{e.O(0,[2619,1231,8441,1255,7358],()=>e(e.s=1236)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{45:(e,a,t)=>{"use strict";t.d(a,{default:()=>o});var s=t(2115),n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},l=t(4250);let r=(0,s.createContext)({}),o=(0,s.forwardRef)((e,a)=>{var t,o,c;let{color:i,size:d,strokeWidth:u,absoluteStrokeWidth:m,className:h="",children:p,iconNode:f,...j}=e,{size:x=24,strokeWidth:g=2,absoluteStrokeWidth:v=!1,color:b="currentColor",className:y=""}=null!=(t=(0,s.useContext)(r))?t:{},k=(null!=m?m:v)?24*Number(null!=u?u:g)/Number(null!=d?d:x):null!=u?u:g;return(0,s.createElement)("svg",{ref:a,...n,width:null!=(o=null!=d?d:x)?o:n.width,height:null!=(c=null!=d?d:x)?c:n.height,stroke:null!=i?i:b,strokeWidth:k,className:(0,l.z)("lucide",y,h),...!p&&!(e=>{for(let a in e)if(a.startsWith("aria-")||"role"===a||"title"===a)return!0;return!1})(j)&&{"aria-hidden":"true"},...j},[...f.map(e=>{let[a,t]=e;return(0,s.createElement)(a,t)}),...Array.isArray(p)?p:[p]])})},677:(e,a,t)=>{"use strict";t.d(a,{default:()=>l});var s=t(5155),n=t(2115);function l(){let[e,a]=(0,n.useState)([]),[t,l]=(0,n.useState)("");return(0,n.useEffect)(()=>{l(localStorage.getItem("madarx.activeProjectId")||""),fetch("/api/projects").then(e=>e.json()).then(e=>a(e.projects||[])).catch(()=>{})},[]),(0,s.jsx)("div",{className:"project-switcher","data-project-switcher":!0,children:(0,s.jsxs)("select",{value:t,onChange:e=>{var a;l(a=e.target.value),a?localStorage.setItem("madarx.activeProjectId",a):localStorage.removeItem("madarx.activeProjectId"),window.dispatchEvent(new CustomEvent("madarx:project-change",{detail:{project_id:a||null}}))},"aria-label":"Active project",children:[(0,s.jsx)("option",{value:"",children:"All projects"}),e.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})})}},926:(e,a,t)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,a){for(var t in a)Object.defineProperty(e,t,{enumerable:!0,get:a[t]})}(a,{callServer:function(){return s.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return n.findSourceMapURL}});let s=t(1209),n=t(5153),l=t(7197)},3185:(e,a,t)=>{"use strict";t.d(a,{A:()=>o});var s=t(2115),n=t(4250);let l=e=>{let a=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,a,t)=>t?t.toUpperCase():a.toLowerCase());return a.charAt(0).toUpperCase()+a.slice(1)};var r=t(45);let o=(e,a)=>{let t=(0,s.forwardRef)((t,o)=>{let{className:c,...i}=t;return(0,s.createElement)(r.default,{ref:o,iconNode:a,className:(0,n.z)("lucide-".concat(l(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),c),...i})});return t.displayName=l(e),t}},4250:(e,a,t)=>{"use strict";t.d(a,{z:()=>s});let s=function(){for(var e=arguments.length,a=Array(e),t=0;t<e;t++)a[t]=arguments[t];return a.filter((e,a,t)=>!!e&&""!==e.trim()&&t.indexOf(e)===a).join(" ").trim()}},4788:(e,a,t)=>{"use strict";t.d(a,{A:()=>s});let s=(0,t(3185).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},5407:(e,a,t)=>{"use strict";t.d(a,{default:()=>d});var s=t(5155),n=t(2115),l=t(7650),r=t(5649),o=t(926);let c=(0,o.createServerReference)("400fc7ee1083524750d811f6e09478c8bbb5a59f72",o.callServer,void 0,o.findSourceMapURL,"deleteProjectAction");function i(e){let{disabled:a}=e,{pending:t}=(0,l.useFormStatus)();return(0,s.jsx)("button",{type:"submit",className:"admin-button danger",disabled:t||a,"aria-busy":t?"true":void 0,children:t?"Deleting…":"Delete project"})}function d(e){let{projectId:a,projectName:t,projectSlug:l,isProtected:o}=e,[d,u]=n.useState(!1),[m,h]=n.useState("");if(o)return(0,s.jsxs)("span",{className:"admin-button secondary project-delete is-locked","aria-disabled":"true",title:"The Personal project is the default scope and cannot be deleted.",children:[(0,s.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{marginRight:6,verticalAlign:"-1px"},children:[(0,s.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2"}),(0,s.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"Protected"]});n.useEffect(()=>{d||h("")},[d]);let p=m.trim()===l;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",className:"admin-button secondary project-delete",onClick:()=>u(!0),"aria-label":"Delete ".concat(t),children:"Delete"}),(0,s.jsx)(r.A,{open:d,onClose:()=>u(!1),eyebrow:"Delete project",title:"Delete ".concat(t,"?"),tone:"danger",children:(0,s.jsxs)("form",{className:"agents-modal-form",action:c,children:[(0,s.jsx)("input",{type:"hidden",name:"project_id",value:a}),(0,s.jsx)("p",{className:"agents-modal-help",children:"This removes the project, its agents, Disk files, memory, secrets, and audit history. The folder on your local drive is left untouched."}),(0,s.jsx)("section",{className:"agents-modal-section",children:(0,s.jsxs)("label",{className:"agents-modal-field wide",children:[(0,s.jsxs)("span",{children:["Type ",(0,s.jsx)("code",{className:"agents-modal-inline-code",children:l})," to confirm"]}),(0,s.jsx)("input",{type:"text",autoComplete:"off",spellCheck:!1,value:m,onChange:e=>h(e.target.value),placeholder:l,autoFocus:!0})]})}),(0,s.jsxs)("footer",{className:"agents-modal-foot",children:[(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>u(!1),children:"Cancel"}),(0,s.jsx)(i,{disabled:!p})]})]})})]})}},5649:(e,a,t)=>{"use strict";t.d(a,{A:()=>r});var s=t(5155),n=t(2115),l=t(4788);function r(e){let{open:a,onClose:t,eyebrow:r,title:o,tone:c="default",size:i="default",children:d}=e,u=n.useRef(null);return n.useEffect(()=>{let e=u.current;e&&(a&&!e.open&&("function"==typeof e.showModal?e.showModal():e.setAttribute("open","")),!a&&e.open&&e.close())},[a]),n.useEffect(()=>{let e=u.current;if(!e)return;let a=e=>{e.preventDefault(),t()};return e.addEventListener("cancel",a),()=>e.removeEventListener("cancel",a)},[t]),(0,s.jsx)("dialog",{ref:u,className:"agents-modal".concat("wide"===i?" agents-modal--wide":""),onClick:e=>{e.target===u.current&&t()},children:a?(0,s.jsxs)("div",{className:"agents-modal-card".concat("danger"===c?" agents-modal-card--danger":""),onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("header",{className:"agents-modal-head",children:[(0,s.jsxs)("div",{children:[r?(0,s.jsx)("span",{className:"admin-kicker",children:r}):null,(0,s.jsx)("h2",{children:o})]}),(0,s.jsx)("button",{type:"button",className:"agents-modal-close",onClick:t,"aria-label":"Close",children:(0,s.jsx)(l.A,{size:14})})]}),d]}):null})}},6787:(e,a,t)=>{Promise.resolve().then(t.bind(t,677)),Promise.resolve().then(t.bind(t,5407)),Promise.resolve().then(t.bind(t,9020)),Promise.resolve().then(t.bind(t,8473)),Promise.resolve().then(t.t.bind(t,2619,23))},8473:(e,a,t)=>{"use strict";t.d(a,{default:()=>m});var s=t(5155),n=t(2115),l=t(7650),r=t(5649),o=t(926);let c=(0,o.createServerReference)("40e0d415e25a2989b94e38244cb01379d3f03ea01b",o.callServer,void 0,o.findSourceMapURL,"createProjectAction");var i=t(9097);let d=[{value:"#c2452a",name:"Mars Red"},{value:"#a83a22",name:"Deep Red"},{value:"#7c2b19",name:"Dark Red"},{value:"#111318",name:"Charcoal"},{value:"#3f3a30",name:"Warm Black"},{value:"#68707b",name:"Slate"},{value:"#cdb78a",name:"Warm Sand"},{value:"#1f6c9f",name:"Skill Blue"}];function u(){let{pending:e}=(0,l.useFormStatus)();return(0,s.jsx)("button",{type:"submit",className:"admin-button",disabled:e,"aria-busy":e?"true":void 0,children:e?"Creating…":"Create project"})}function m(e){let{workspaceRoot:a="~/workspace/projects"}=e,[t,l]=n.useState(!1),[o,m]=n.useState(""),[h,p]=n.useState("workspace"),[f,j]=n.useState(""),x=n.useRef(null),g=n.useMemo(()=>"".concat(a.replace(/\/$/,""),"/").concat(String(o||"").toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)||"project"),[a,o]);return n.useEffect(()=>{var e;"custom"===h&&(null==(e=x.current)||e.focus())},[h]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{type:"button",className:"admin-button agents-new-cta",onClick:()=>l(!0),children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"agents-new-cta-glyph",children:"+"}),"New project"]}),(0,s.jsx)(r.A,{open:t,onClose:()=>l(!1),eyebrow:"New project",title:"Create a project",children:(0,s.jsxs)("form",{className:"agents-modal-form",action:c,children:[(0,s.jsx)("p",{className:"agents-modal-help",children:"Scope agents, documents, memory, and integrations together."}),(0,s.jsx)("section",{className:"agents-modal-section",children:(0,s.jsxs)("label",{className:"agents-modal-field wide",children:[(0,s.jsx)("span",{children:"Name"}),(0,s.jsx)("input",{name:"name",type:"text",required:!0,placeholder:"Acme Co.",autoComplete:"off",value:o,onChange:e=>m(e.target.value),autoFocus:!0})]})}),(0,s.jsxs)("section",{className:"agents-modal-section",children:[(0,s.jsxs)("div",{className:"agents-modal-section-head",children:[(0,s.jsx)("span",{children:"Folder location"}),(0,s.jsx)("small",{children:"Where this project lives on disk."})]}),(0,s.jsxs)("div",{className:"agents-modal-radio-group",children:[(0,s.jsxs)("label",{className:"agents-modal-radio ".concat("workspace"===h?"on":""),children:[(0,s.jsx)("input",{type:"radio",name:"folder_mode",value:"workspace",checked:"workspace"===h,onChange:()=>p("workspace")}),(0,s.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,s.jsx)("b",{children:"madarX workspace"}),(0,s.jsx)("code",{title:g,children:function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:48;if(!e||e.length<=a)return e;let t=e.slice(0,Math.floor(a/2)-1),s=e.slice(e.length-Math.floor(a/2)+2);return"".concat(t,"…").concat(s)}(g)})]})]}),(0,s.jsxs)("label",{className:"agents-modal-radio ".concat("custom"===h?"on":""),children:[(0,s.jsx)("input",{type:"radio",name:"folder_mode",value:"custom",checked:"custom"===h,onChange:()=>p("custom")}),(0,s.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,s.jsx)("b",{children:"Custom path"}),(0,s.jsx)("small",{children:"Any absolute folder. Created if missing."})]})]})]}),"custom"===h?(0,s.jsx)(i.A,{inputRef:x,value:f,onChange:j}):(0,s.jsx)("input",{type:"hidden",name:"folder_path",value:""})]}),(0,s.jsxs)("section",{className:"agents-modal-section",children:[(0,s.jsxs)("div",{className:"agents-modal-section-head",children:[(0,s.jsx)("span",{children:"Color"}),(0,s.jsx)("small",{children:"Used for the project tile across the app."})]}),(0,s.jsxs)("fieldset",{className:"agents-modal-swatches",children:[(0,s.jsx)("legend",{className:"visually-hidden",children:"Project color"}),d.map(e=>(0,s.jsxs)("label",{className:"agents-modal-swatch",style:{"--swatch":e.value},children:[(0,s.jsx)("input",{type:"radio",name:"color",value:e.value,defaultChecked:"#c2452a"===e.value}),(0,s.jsx)("span",{className:"agents-modal-swatch-ring","aria-hidden":"true"}),(0,s.jsx)("span",{className:"visually-hidden",children:e.name})]},e.value))]})]}),(0,s.jsxs)("section",{className:"agents-modal-section",children:[(0,s.jsxs)("div",{className:"agents-modal-section-head",children:[(0,s.jsx)("span",{children:"Description"}),(0,s.jsx)("small",{children:"Used as context for agents working in this project."})]}),(0,s.jsx)("label",{className:"agents-modal-field wide",children:(0,s.jsx)("textarea",{name:"description",rows:3,placeholder:"What is this project for? Goals, audience, voice, constraints."})})]}),(0,s.jsxs)("footer",{className:"agents-modal-foot",children:[(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>l(!1),children:"Cancel"}),(0,s.jsx)(u,{})]})]})})]})}},9020:(e,a,t)=>{"use strict";t.d(a,{default:()=>m});var s=t(5155),n=t(2115),l=t(7650),r=t(5649),o=t(926);let c=(0,o.createServerReference)("40281d896809d9c296146721aefa88a456d7c5bf72",o.callServer,void 0,o.findSourceMapURL,"updateProjectAction");var i=t(9097);let d=[{value:"#c2452a",name:"Mars Red"},{value:"#a83a22",name:"Deep Red"},{value:"#7c2b19",name:"Dark Red"},{value:"#111318",name:"Charcoal"},{value:"#3f3a30",name:"Warm Black"},{value:"#68707b",name:"Slate"},{value:"#cdb78a",name:"Warm Sand"},{value:"#1f6c9f",name:"Skill Blue"}];function u(){let{pending:e}=(0,l.useFormStatus)();return(0,s.jsx)("button",{type:"submit",className:"admin-button",disabled:e,"aria-busy":e?"true":void 0,children:e?"Saving…":"Save changes"})}function m(e){let{projectId:a,projectName:t,projectColor:l,projectDescription:o,projectFolderPath:m}=e,[h,p]=n.useState(!1),[f,j]=n.useState("keep"),[x,g]=n.useState(m||""),v=n.useRef(null);return n.useEffect(()=>{h&&(j("keep"),g(m||""))},[h,m]),n.useEffect(()=>{var e;"custom"===f&&(null==(e=v.current)||e.focus())},[f]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",className:"admin-button secondary project-edit",onClick:()=>p(!0),"aria-label":"Edit ".concat(t),children:"Edit"}),(0,s.jsx)(r.A,{open:h,onClose:()=>p(!1),eyebrow:"Edit project",title:"Edit ".concat(t),children:(0,s.jsxs)("form",{className:"agents-modal-form",action:c,children:[(0,s.jsx)("input",{type:"hidden",name:"project_id",value:a}),(0,s.jsx)("section",{className:"agents-modal-section",children:(0,s.jsxs)("label",{className:"agents-modal-field wide",children:[(0,s.jsx)("span",{children:"Name"}),(0,s.jsx)("input",{name:"name",type:"text",defaultValue:t,autoComplete:"off",required:!0})]})}),(0,s.jsxs)("section",{className:"agents-modal-section",children:[(0,s.jsxs)("div",{className:"agents-modal-section-head",children:[(0,s.jsx)("span",{children:"Folder location"}),(0,s.jsx)("small",{children:"Where project files live on disk. Move only if you've already moved the folder yourself."})]}),(0,s.jsxs)("div",{className:"agents-modal-radio-group",children:[(0,s.jsxs)("label",{className:"agents-modal-radio ".concat("keep"===f?"on":""),children:[(0,s.jsx)("input",{type:"radio",name:"folder_mode",value:"keep",checked:"keep"===f,onChange:()=>j("keep")}),(0,s.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,s.jsx)("b",{children:"Keep current"}),(0,s.jsx)("code",{title:m||"",children:function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:48;if(!e||e.length<=a)return e;let t=e.slice(0,Math.floor(a/2)-1),s=e.slice(e.length-Math.floor(a/2)+2);return"".concat(t,"…").concat(s)}(m)||"(not set)"})]})]}),(0,s.jsxs)("label",{className:"agents-modal-radio ".concat("custom"===f?"on":""),children:[(0,s.jsx)("input",{type:"radio",name:"folder_mode",value:"custom",checked:"custom"===f,onChange:()=>j("custom")}),(0,s.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,s.jsx)("b",{children:"Change to…"}),(0,s.jsx)("small",{children:"Absolute path. Must already exist or be writable."})]})]})]}),"custom"===f?(0,s.jsx)(i.A,{inputRef:v,value:x,onChange:g}):(0,s.jsx)("input",{type:"hidden",name:"folder_path",value:""})]}),(0,s.jsxs)("section",{className:"agents-modal-section",children:[(0,s.jsxs)("div",{className:"agents-modal-section-head",children:[(0,s.jsx)("span",{children:"Color"}),(0,s.jsx)("small",{children:"Tile color across the app."})]}),(0,s.jsxs)("fieldset",{className:"agents-modal-swatches",children:[(0,s.jsx)("legend",{className:"visually-hidden",children:"Project color"}),d.map(e=>(0,s.jsxs)("label",{className:"agents-modal-swatch",style:{"--swatch":e.value},children:[(0,s.jsx)("input",{type:"radio",name:"color",value:e.value,defaultChecked:e.value===(l||"#c2452a")}),(0,s.jsx)("span",{className:"agents-modal-swatch-ring","aria-hidden":"true"}),(0,s.jsx)("span",{className:"visually-hidden",children:e.name})]},e.value))]})]}),(0,s.jsxs)("section",{className:"agents-modal-section",children:[(0,s.jsxs)("div",{className:"agents-modal-section-head",children:[(0,s.jsx)("span",{children:"Description"}),(0,s.jsx)("small",{children:"Used as context for agents working in this project."})]}),(0,s.jsx)("label",{className:"agents-modal-field wide",children:(0,s.jsx)("textarea",{name:"description",rows:3,defaultValue:o||"",placeholder:"What is this project for? Goals, audience, voice, constraints."})})]}),(0,s.jsxs)("footer",{className:"agents-modal-foot",children:[(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>p(!1),children:"Cancel"}),(0,s.jsx)(u,{})]})]})})]})}},9097:(e,a,t)=>{"use strict";t.d(a,{A:()=>l});var s=t(5155),n=t(2115);function l(e){let{name:a="folder_path",value:t,onChange:l,inputRef:r,placeholder:o="/Users/you/Documents/my-project"}=e,[c,i]=n.useState(null),[d,u]=n.useState(!1),[m,h]=n.useState(""),[p,f]=n.useState(""),[j,x]=n.useState(null);async function g(){var e;let a;if(i(null),!(null==(e=navigator.clipboard)?void 0:e.readText))return void i({kind:"error",message:"Clipboard not available."});try{a=await navigator.clipboard.readText()}catch(e){i({kind:"error",message:"Allow clipboard access."});return}let t=(a||"").trim();if((t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.slice(1,-1)),t.startsWith("file://"))try{t=decodeURI(t.slice(7))}catch(e){}return t?t.startsWith("/")||t.startsWith("~")?void(l(t),i({kind:"success",message:"Pasted."})):void i({kind:"error",message:"Path must be absolute."}):void i({kind:"error",message:"Clipboard is empty."})}async function v(){i(null),x("pick");try{let e=await fetch("/api/fs/pick-folder",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({title:"Choose project folder",start_path:t&&t.startsWith("/")?t:void 0})});if(499===e.status)return void i({kind:"error",message:"Cancelled."});let a=await e.json();if(!e.ok)return void i({kind:"error",message:a.error||"Picker failed."});l(a.folder_path),i({kind:"success",message:"Selected ".concat(a.folder_path)})}catch(e){i({kind:"error",message:String((null==e?void 0:e.message)||e)})}finally{x(null)}}async function b(){if(i(null),!m.trim()||!p.trim())return void i({kind:"error",message:"Parent and name required."});x("create");try{let e=await fetch("/api/fs/create-folder",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({parent:m.trim(),name:p.trim()})}),a=await e.json();if(!e.ok)return void i({kind:"error",message:a.error||"Create failed."});l(a.folder_path),u(!1),f(""),i({kind:"success",message:"Created ".concat(a.folder_path)})}catch(e){i({kind:"error",message:String((null==e?void 0:e.message)||e)})}finally{x(null)}}return n.useEffect(()=>{d&&!m&&h(t||"~/Documents")},[d,t,m]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"agents-modal-paste-row",children:[(0,s.jsx)("input",{ref:r,name:a,type:"text",placeholder:o,autoComplete:"off",spellCheck:!1,value:t||"",onChange:e=>{l(e.target.value),c&&i(null)},required:!0}),(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:v,disabled:"pick"===j,children:"pick"===j?"Opening…":"Choose folder…"})]}),(0,s.jsxs)("div",{className:"agents-modal-folder-tools",children:[(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:g,children:"Paste from clipboard"}),(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>l("~/Documents"),children:"~/Documents"}),(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>l("~/Desktop"),children:"~/Desktop"}),(0,s.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>u(e=>!e),children:d?"Cancel new folder":"+ New folder"})]}),d?(0,s.jsxs)("div",{className:"agents-modal-create-folder",children:[(0,s.jsx)("small",{children:"Create a folder anywhere outside system directories. Parent must exist."}),(0,s.jsx)("div",{className:"agents-modal-create-row",children:(0,s.jsx)("input",{type:"text",placeholder:"Parent (e.g. ~/Documents)",value:m,onChange:e=>h(e.target.value),spellCheck:!1,autoComplete:"off"})}),(0,s.jsxs)("div",{className:"agents-modal-create-row",children:[(0,s.jsx)("input",{type:"text",placeholder:"New folder name",value:p,onChange:e=>f(e.target.value),spellCheck:!1,autoComplete:"off"}),(0,s.jsx)("button",{type:"button",className:"admin-button",onClick:b,disabled:"create"===j,children:"create"===j?"Creating…":"Create"})]})]}):null,c?(0,s.jsx)("p",{className:"agents-modal-feedback ".concat(c.kind),role:"status","aria-live":"polite",children:c.message}):null]})}}},e=>{e.O(0,[2619,8441,1255,7358],()=>e(e.s=6787)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (()=>{"use strict";var e={},t={};function r(o){var a=t[o];if(void 0!==a)return a.exports;var n=t[o]={exports:{}},c=!0;try{e[o].call(n.exports,n,n.exports,r),c=!1}finally{c&&delete t[o]}return n.exports}r.m=e,(()=>{var e=[];r.O=(t,o,a,n)=>{if(o){n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[o,a,n];return}for(var i=1/0,c=0;c<e.length;c++){for(var[o,a,n]=e[c],d=!0,u=0;u<o.length;u++)(!1&n||i>=n)&&Object.keys(r.O).every(e=>r.O[e](o[u]))?o.splice(u--,1):(d=!1,n<i&&(i=n));if(d){e.splice(c--,1);var s=a();void 0!==s&&(t=s)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,a){if(1&a&&(o=this(o)),8&a||"object"==typeof o&&o&&(4&a&&o.__esModule||16&a&&"function"==typeof o.then))return o;var n=Object.create(null);r.r(n);var c={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&o;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(e=>c[e]=()=>o[e]);return c.default=()=>o,r.d(n,c),n}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>2769===e?"static/chunks/2769-5ea87fab731b4c4d.js":4119===e?"static/chunks/4119-5297b212ff79d264.js":930===e?"static/chunks/930-de78056b2dc197a2.js":"static/chunks/"+(5730===e?"44530001":e)+"."+({840:"c27c21f4787aea90",1517:"be5e2c446b38c681",2713:"4f4ae8af4e5bf2ee",3168:"3b5e35036a18bdd3",4797:"5d0d513a724ca684",5730:"ef2edd53e6cfdfa8",5938:"238480f58c343b6b",7130:"5de172d005b1e866",8217:"93f3920e3c35c748",9863:"8c29a80e7d210e46",9867:"fc6d7dc10dd6c262"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,a,n,c)=>{if(e[o])return void e[o].push(a);if(void 0!==n)for(var i,d,u=document.getElementsByTagName("script"),s=0;s<u.length;s++){var l=u[s];if(l.getAttribute("src")==o||l.getAttribute("data-webpack")==t+n){i=l;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,r.nc&&i.setAttribute("nonce",r.nc),i.setAttribute("data-webpack",t+n),i.src=r.tu(o)),e[o]=[a];var f=(t,r)=>{i.onerror=i.onload=null,clearTimeout(b);var a=e[o];if(delete e[o],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(r)),t)return t(r)},b=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),d&&document.head.appendChild(i)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={8068:0,3045:0,1741:0,8422:0,1776:0};r.f.j=(t,o)=>{var a=r.o(e,t)?e[t]:void 0;if(0!==a)if(a)o.push(a[2]);else if(/^(17(41|76)|3045|8068|8422)$/.test(t))e[t]=0;else{var n=new Promise((r,o)=>a=e[t]=[r,o]);o.push(a[2]=n);var c=r.p+r.u(t),i=Error();r.l(c,o=>{if(r.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=o&&("load"===o.type?"missing":o.type),c=o&&o.target&&o.target.src;i.message="Loading chunk "+t+" failed.\n("+n+": "+c+")",i.name="ChunkLoadError",i.type=n,i.request=c,a[1](i)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var a,n,[c,i,d]=o,u=0;if(c.some(t=>0!==e[t])){for(a in i)r.o(i,a)&&(r.m[a]=i[a]);if(d)var s=d(r)}for(t&&t(o);u<c.length;u++)n=c[u],r.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return r.O(s)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0})();
1
+ (()=>{"use strict";var e={},t={};function r(o){var a=t[o];if(void 0!==a)return a.exports;var n=t[o]={exports:{}},c=!0;try{e[o].call(n.exports,n,n.exports,r),c=!1}finally{c&&delete t[o]}return n.exports}r.m=e,(()=>{var e=[];r.O=(t,o,a,n)=>{if(o){n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[o,a,n];return}for(var i=1/0,c=0;c<e.length;c++){for(var[o,a,n]=e[c],d=!0,u=0;u<o.length;u++)(!1&n||i>=n)&&Object.keys(r.O).every(e=>r.O[e](o[u]))?o.splice(u--,1):(d=!1,n<i&&(i=n));if(d){e.splice(c--,1);var s=a();void 0!==s&&(t=s)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,a){if(1&a&&(o=this(o)),8&a||"object"==typeof o&&o&&(4&a&&o.__esModule||16&a&&"function"==typeof o.then))return o;var n=Object.create(null);r.r(n);var c={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&o;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(e=>c[e]=()=>o[e]);return c.default=()=>o,r.d(n,c),n}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>2769===e?"static/chunks/2769-5ea87fab731b4c4d.js":4119===e?"static/chunks/4119-5297b212ff79d264.js":930===e?"static/chunks/930-de78056b2dc197a2.js":"static/chunks/"+(5730===e?"44530001":e)+"."+({840:"c27c21f4787aea90",1517:"be5e2c446b38c681",2713:"4f4ae8af4e5bf2ee",3168:"3b5e35036a18bdd3",4797:"5d0d513a724ca684",5730:"ef2edd53e6cfdfa8",5938:"238480f58c343b6b",7130:"5de172d005b1e866",8217:"93f3920e3c35c748",9863:"8c29a80e7d210e46",9867:"fc6d7dc10dd6c262"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,a,n,c)=>{if(e[o])return void e[o].push(a);if(void 0!==n)for(var i,d,u=document.getElementsByTagName("script"),s=0;s<u.length;s++){var l=u[s];if(l.getAttribute("src")==o||l.getAttribute("data-webpack")==t+n){i=l;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,r.nc&&i.setAttribute("nonce",r.nc),i.setAttribute("data-webpack",t+n),i.src=r.tu(o)),e[o]=[a];var f=(t,r)=>{i.onerror=i.onload=null,clearTimeout(b);var a=e[o];if(delete e[o],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(r)),t)return t(r)},b=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),d&&document.head.appendChild(i)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={8068:0,3045:0,1741:0,1776:0,8422:0};r.f.j=(t,o)=>{var a=r.o(e,t)?e[t]:void 0;if(0!==a)if(a)o.push(a[2]);else if(/^(17(41|76)|3045|8068|8422)$/.test(t))e[t]=0;else{var n=new Promise((r,o)=>a=e[t]=[r,o]);o.push(a[2]=n);var c=r.p+r.u(t),i=Error();r.l(c,o=>{if(r.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=o&&("load"===o.type?"missing":o.type),c=o&&o.target&&o.target.src;i.message="Loading chunk "+t+" failed.\n("+n+": "+c+")",i.name="ChunkLoadError",i.type=n,i.request=c,a[1](i)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var a,n,[c,i,d]=o,u=0;if(c.some(t=>0!==e[t])){for(a in i)r.o(i,a)&&(r.m[a]=i[a]);if(d)var s=d(r)}for(t&&t(o);u<c.length;u++)n=c[u],r.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return r.O(s)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0})();
@@ -1,4 +1,4 @@
1
- 2026-06-02T11:59:18.316Z
1
+ 2026-06-02T20:41:32.064Z
2
2
  {
3
3
  "moved": 0,
4
4
  "rewritten": 0,
@@ -1 +1 @@
1
- 2026-06-02T11:59:18.312Z
1
+ 2026-06-02T20:41:32.062Z
Binary file
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "madarx",
3
- "version": "2.9.12",
3
+ "version": "2.9.13",
4
4
  "type": "module",
5
5
  "description": "Madarx OS — Next.js product with SQLite-backed runtime, scheduled cron daemon, and approval-gated local runners.",
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1290:()=>{},2455:(e,t,a)=>{Promise.resolve().then(a.bind(a,3455)),Promise.resolve().then(a.bind(a,7438)),Promise.resolve().then(a.t.bind(a,2295,23)),Promise.resolve().then(a.t.bind(a,1290,23))},3455:(e,t,a)=>{"use strict";a.d(t,{default:()=>g});var s=a(5155),r=a(2115),n=a(63);let l=[{id:"set-anthropic-key",title:"Set Anthropic API key",category:"Credentials",keywords:["anthropic","api key","claude","apikey","llm","token","cloud engine"],kind:"secret",secretName:"ANTHROPIC_API_KEY",field:{label:"ANTHROPIC_API_KEY",type:"password",placeholder:"sk-ant-…",help:"Used by the Anthropic cloud engine. Stored encrypted in the secrets vault."},settingsHref:"/settings/tools",docSlug:"set-anthropic-key"},{id:"set-resend-key",title:"Set Resend API key (email)",category:"Credentials",keywords:["resend","email","api key","smtp","send mail"],kind:"secret",secretName:"RESEND_API_KEY",field:{label:"RESEND_API_KEY",type:"password",placeholder:"re_…",help:"Enables the email tool. Encrypted at rest."},settingsHref:"/settings/connectors",docSlug:"set-resend-key"},{id:"set-github-token",title:"Set GitHub token",category:"Credentials",keywords:["github","token","pat","api key","git","repo"],kind:"secret",secretName:"GITHUB_TOKEN",field:{label:"GITHUB_TOKEN",type:"password",placeholder:"ghp_… / github_pat_…",help:"Personal access token for the GitHub tool adapter."},settingsHref:"/settings/connectors",docSlug:"set-github-token"},{id:"set-supabase-url",title:"Set Supabase URL",category:"Credentials",keywords:["supabase","url","database","project url","connect"],kind:"secret",secretName:"SUPABASE_URL",field:{label:"SUPABASE_URL",type:"text",placeholder:"https://xxxx.supabase.co",help:"Project URL for Supabase writes + shared cloud layer."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-supabase-service-key",title:"Set Supabase service-role key",category:"Credentials",keywords:["supabase","service role","key","api key","secret","database"],kind:"secret",secretName:"SUPABASE_SERVICE_ROLE_KEY",field:{label:"SUPABASE_SERVICE_ROLE_KEY",type:"password",placeholder:"eyJ…",help:"Server-side service-role key. Never exposed to the browser."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-default-model",title:"Set default model",category:"Agent runtime",keywords:["model","default model","llm","opus","sonnet","haiku","picker"],kind:"config",configKey:"model",field:{label:"Default model",type:"select",help:"Model the main agent uses by default.",options:[{value:"claude-opus-4-7",label:"Opus 4.7"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6"},{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5"}]},settingsHref:"/settings/engines",docSlug:"choose-agent-engine"},{id:"set-design-style",title:"Set artifact design style",category:"Agent runtime",keywords:["design","style","aesthetic","minimal","bold","soft","balanced","artifact"],kind:"config",configKey:"designStyle",field:{label:"Design style",type:"select",help:"Visual style agents use when producing artifacts.",options:[{value:"balanced",label:"Balanced"},{value:"minimal",label:"Minimal"},{value:"bold",label:"Bold"},{value:"soft",label:"Soft"}]},settingsHref:"/settings/brand",docSlug:null},{id:"set-trust-mode",title:"Set main-agent trust mode",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","permission","gate"],kind:"trust-mode",field:{label:"Trust mode",type:"select",help:"Warning: auto lets the main agent run high-and-below risk tool calls WITHOUT asking you first (irreversible_external is always gated). Saving auto confirms this. approval_required is the safe default.",options:[{value:"approval_required",label:"Approval required (safe default)"},{value:"auto",label:"Auto (skip gate for ≤ high risk)"}]},settingsHref:"/settings/advanced",docSlug:"set-trust-mode"}],i=[{id:"start-whatsapp-bridge",slug:"start-whatsapp-bridge",title:"Start the WhatsApp bridge",summary:"Pair a dedicated WhatsApp number and run the gateway daemon so agents can send and receive messages.",category:"Channels",keywords:["whatsapp","bridge","gateway","baileys","pair","daemon","messages"],related:["secrets-vault-overview"]},{id:"set-api-key",slug:"set-api-key",title:"Set an API key",summary:"How API keys and secrets are stored, and the fastest way to add one from anywhere with Cmd+K.",category:"Credentials",keywords:["api key","secret","credential","token","vault","set key"],related:["set-anthropic-key","connect-supabase","secrets-vault-overview"]},{id:"set-anthropic-key",slug:"set-anthropic-key",title:"Set the Anthropic API key",summary:"Add the Anthropic key that powers the cloud engine.",category:"Credentials",keywords:["anthropic","api key","claude","cloud engine","llm"],related:["choose-agent-engine","set-api-key"]},{id:"set-resend-key",slug:"set-resend-key",title:"Set the Resend API key (email)",summary:"Enable the email tool by adding a Resend key.",category:"Credentials",keywords:["resend","email","api key","send mail"],related:["set-api-key"]},{id:"set-github-token",slug:"set-github-token",title:"Set a GitHub token",summary:"Add a personal access token to unlock the GitHub tool adapter.",category:"Credentials",keywords:["github","token","pat","repo","api key"],related:["set-api-key"]},{id:"connect-supabase",slug:"connect-supabase",title:"Connect Supabase",summary:"Wire up Supabase URL and keys for database writes and the shared cloud layer.",category:"Credentials",keywords:["supabase","database","connect","url","service role","shared cloud"],related:["set-api-key","secrets-vault-overview"]},{id:"choose-agent-engine",slug:"choose-agent-engine",title:"Choose an agent engine",summary:"Pick between claude-code, anthropic, ollama, codex, and hermes — and what each needs.",category:"Agent runtime",keywords:["engine","model","claude-code","ollama","codex","hermes","anthropic","local"],related:["set-anthropic-key"]},{id:"set-trust-mode",slug:"set-trust-mode",title:"Set trust mode",summary:"Control whether the main agent gates risky tool calls or runs them automatically.",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","risk","gate"],related:["create-agent"]},{id:"create-agent",slug:"create-agent",title:"Create an agent",summary:"Spin up a worker, set its schedule, scope its tools, and run it.",category:"Getting started",keywords:["agent","create","worker","new agent","caretaker","roster"],related:["schedules-and-cron","set-trust-mode"]},{id:"schedules-and-cron",slug:"schedules-and-cron",title:"Schedules and cron",summary:"How schedules queue durable heartbeat work, backfill missed windows, and run automatically.",category:"Getting started",keywords:["schedule","cron","daily","heartbeat","backfill","recurring"],related:["create-agent"]},{id:"secrets-vault-overview",slug:"secrets-vault-overview",title:"Secrets vault overview",summary:"Where credentials live, how they are encrypted, and why values are never shown back.",category:"Credentials",keywords:["secrets","vault","encryption","aes","master key","security"],related:["set-api-key"]},{id:"keyboard-shortcuts",slug:"keyboard-shortcuts",title:"Keyboard shortcuts",summary:"Every shortcut, including Cmd+K smart search and the composer keys.",category:"Getting started",keywords:["keyboard","shortcut","cmd k","command","hotkey","search"],related:[]}];function o(e){var t,a;let{action:l,current:i,onClose:o,onSaved:c}=e;(0,n.useRouter)();let d=(0,r.useRef)(null),u=l.field,[h,p]=(0,r.useState)("select"===u.type&&((null==i?void 0:i.value)||(null==(a=u.options)||null==(t=a[0])?void 0:t.value))||""),[m,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)(""),[v,b]=(0,r.useState)(!1);async function k(e){if(e.preventDefault(),m)return;let t=String(h).trim();if(!t)return void y("Enter a value.");g(!0),y("");try{let{endpoint:e,method:s,body:r}=function(e,t){switch(e.kind){case"secret":return{endpoint:"/api/secrets",method:"POST",body:{name:e.secretName,value:t,scope:"global",source:"help-modal"}};case"config":return{endpoint:"/api/config",method:"PUT",body:{[e.configKey]:t}};case"trust-mode":return{endpoint:"/api/settings/trust-mode",method:"PATCH",body:"auto"===t?{mode:t,confirm:!0}:{mode:t}};default:throw Error("unknown action kind: ".concat(e.kind))}}(l,t),n=await fetch(e,{method:s,headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!n.ok){if(403===n.status)y("You need admin or owner access to change this.");else if(401===n.status)y("Sign in to change this setting.");else{let e=await n.text().catch(()=>""),t=e;try{var a;t=(null==(a=JSON.parse(e))?void 0:a.error)||e}catch(e){}y(t||"Failed (".concat(n.status,")."))}g(!1);return}b(!0),g(!1),null==c||c(l),window.setTimeout(()=>o(),700)}catch(e){y((null==e?void 0:e.message)||"Network error."),g(!1)}}(0,r.useEffect)(()=>{let e=window.setTimeout(()=>{var e;return null==(e=d.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&(e.preventDefault(),o())}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]);let x=function(e,t){if(!t)return null;if("secret"===e.kind)return"set"===t.status?"Currently set":"Not set";if(null!=t.value){var a;let s=null==(a=e.field.options)?void 0:a.find(e=>e.value===t.value);return"Currently: ".concat(s?s.label:t.value)}return null}(l,i);return(0,s.jsx)("div",{className:"help-value-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,s.jsxs)("form",{className:"help-value-modal",role:"dialog","aria-modal":"true","aria-label":l.title,onSubmit:k,children:[(0,s.jsxs)("header",{className:"help-value-head",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("small",{children:l.category}),(0,s.jsx)("h2",{children:l.title})]}),(0,s.jsx)("button",{type:"button",className:"help-value-close",onClick:o,"aria-label":"Close",children:"esc"})]}),(0,s.jsxs)("div",{className:"help-value-body",children:[(0,s.jsxs)("label",{className:"help-value-field",children:[(0,s.jsxs)("span",{className:"help-value-label",children:[u.label,x?(0,s.jsx)("em",{className:"help-value-status",children:x}):null]}),"select"===u.type?(0,s.jsx)("select",{ref:d,value:h,onChange:e=>p(e.target.value),disabled:m||v,children:u.options.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,s.jsx)("input",{ref:d,type:"password"===u.type?"password":"text",value:h,placeholder:u.placeholder||"",onChange:e=>p(e.target.value),disabled:m||v,autoComplete:"off",spellCheck:!1})]}),u.help?(0,s.jsx)("p",{className:"help-value-help",children:u.help}):null,f?(0,s.jsx)("p",{className:"help-value-error",role:"alert",children:f}):null,v?(0,s.jsx)("p",{className:"help-value-ok",role:"status",children:"Saved."}):null]}),(0,s.jsxs)("footer",{className:"help-value-foot",children:[(0,s.jsxs)("div",{className:"help-value-links",children:[(0,s.jsx)("a",{href:l.settingsHref,onClick:o,children:"Open full settings"}),l.docSlug?(0,s.jsx)("a",{href:"/help/".concat(l.docSlug),onClick:o,children:"Read the guide"}):null]}),(0,s.jsxs)("div",{className:"help-value-actions",children:[(0,s.jsx)("button",{type:"button",className:"help-value-btn ghost",onClick:o,disabled:m,children:"Cancel"}),(0,s.jsx)("button",{type:"submit",className:"help-value-btn primary",disabled:m||v,children:m?"Saving…":"Save"})]})]})]})})}let c=[{title:"Overview",href:"/",section:"Navigate",keys:["dashboard","home","canvas","main"]},{title:"Agents",href:"/agents",section:"Navigate",keys:["agent","worker","roster","team"]},{title:"Tasks",href:"/tasks",section:"Navigate",keys:["task","work","todo","kanban"]},{title:"Approvals",href:"/approvals",section:"Navigate",keys:["approve","permission","review"]},{title:"Tools",href:"/tools",section:"Navigate",keys:["tool","connector","capability"]},{title:"Schedules",href:"/schedules",section:"Navigate",keys:["cron","schedule","calendar"]},{title:"Reports",href:"/reports",section:"Navigate",keys:["report","artifact","brief"]},{title:"Activity",href:"/activity",section:"Navigate",keys:["activity","runs","history"]},{title:"Runtime",href:"/runtime",section:"Navigate",keys:["runtime","diagnostics","heartbeat","process"]},{title:"Brand",href:"/brand",section:"Navigate",keys:["brand","identity","design"]},{title:"Settings",href:"/settings",section:"Navigate",keys:["settings","config","preferences"]},{title:"Help",href:"/help",section:"Navigate",keys:["help","guide","docs","documentation","shortcuts"]}],d=[{id:"focus-main-agent",title:"Focus main agent composer",detail:"Jump to the prompt box without leaving the keyboard.",section:"Action",shortcut:"⌘J",keys:["chat","composer","prompt","ask","agent"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:focus-composer")),180)):window.dispatchEvent(new Event("madarx:focus-composer"))}},{id:"new-chat",title:"New main-agent chat",detail:"Fresh conversation without using ⌘N, which belongs to the browser.",section:"Action",shortcut:"⌘⇧J",keys:["new","session","chat","fresh"],run:e=>{let{router:t,pathname:a}=e;"/"!==a&&t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:new-chat")),180*("/"!==a))}},{id:"settings-modal",title:"Open agent configuration",detail:"Close to the right thumb, but avoids browser-level ⌘, preferences.",section:"Action",shortcut:"⌘;",keys:["settings","preferences","config","model"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:open-config")),180)):window.dispatchEvent(new Event("madarx:open-config"))}},{id:"shortcut-help",title:"Show keyboard shortcuts",detail:"Open this palette and filter to shortcut help.",section:"Action",shortcut:"⌘/",keys:["keyboard","shortcut","help","command"],run:e=>{let{openWithQuery:t}=e;return t("shortcuts")}}],u=[{title:"Open smart search",detail:"⌘Space or ⌘K. Thumb + home-row fallback; Ctrl Space also works when macOS owns Spotlight.",section:"Shortcuts",keys:["shortcut","search","spotlight","command space"]},{title:"Focus main agent",detail:"⌘J. Right thumb + index on home row; avoids browser shortcuts.",section:"Shortcuts",keys:["shortcut","composer","prompt"]},{title:"New chat",detail:"⌘⇧J. Same hand position as focus, with Shift; avoids ⌘N.",section:"Shortcuts",keys:["shortcut","new chat","session"]},{title:"Agents / Tasks / Runtime",detail:"⌘⇧A, ⌘⇧T, ⌘⇧D. Left-hand clusters for common operating surfaces.",section:"Shortcuts",keys:["shortcut","navigation","agents","tasks","runtime"]},{title:"Agent settings",detail:"⌘; sits under the right hand and avoids browser Preferences on ⌘,.",section:"Shortcuts",keys:["shortcut","settings","preferences"]}];function h(e){return String(e||"").toLowerCase().trim()}function p(){let e=(0,n.useRouter)(),t=(0,n.usePathname)(),a=(0,r.useRef)(null),[p,m]=(0,r.useState)(!1),[g,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(0),[b,k]=(0,r.useState)({}),[x,w]=(0,r.useState)(!1),[j,N]=(0,r.useState)(null),S=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/help",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),a={};for(let e of t.actions||[])a[e.id]=e.current;k(a),w(!0)}catch(e){}},[]),A=(0,r.useMemo)(()=>{let e=c.map(e=>({...e,id:"nav:".concat(e.href),kind:"nav",detail:"/"===e.href?"Return to the main command center.":"Open ".concat(e.href),run:t=>{let{router:a}=t;return a.push(e.href)}}));return[...d,...l.map(e=>{var t;return{id:"set:".concat(e.id),kind:"setting",action:e,title:e.title,detail:(null==(t=e.field)?void 0:t.help)||"Set this value.",section:"Set",keys:e.keywords}}),...i.map(e=>({id:"doc:".concat(e.slug),kind:"doc",title:e.title,detail:e.summary,section:"Doc",href:"/help/".concat(e.slug),keys:e.keywords})),...e,...u]},[]),E=(0,r.useMemo)(()=>{let e=h(g);if(!e)return A.slice(0,10);let t=e.split(/\s+/).filter(Boolean);return A.map(a=>{let s=[a.title,a.detail,a.section,a.href,...a.keys||[]].filter(Boolean).join(" ").toLowerCase(),r=t.reduce((e,t)=>e+ +!!s.includes(t),0),n=3*!!h(a.title).startsWith(e);return{item:a,score:r+n}}).filter(e=>{let{score:t}=e;return t>0}).sort((e,t)=>t.score-e.score||e.item.title.localeCompare(t.item.title)).map(e=>{let{item:t}=e;return t}).slice(0,12)},[A,g]),C=e=>{f(e||""),m(!0),v(0)},_=()=>{m(!1),f(""),v(0)},P=(0,r.useCallback)(e=>{let t=l.find(t=>t.id===e);t&&N(t)},[]),T=(0,r.useCallback)(()=>N(null),[]),K=a=>{if(a){if("setting"===a.kind){N(a.action),_();return}if("doc"===a.kind){e.push(a.href),_();return}a.run&&(a.run({router:e,pathname:t,openWithQuery:C}),"Shortcuts"!==a.section&&_())}};(0,r.useEffect)(()=>{(p||j)&&!x&&S()},[p,j,x,S]),(0,r.useEffect)(()=>{if(!p)return;let e=window.setTimeout(()=>{var e;return null==(e=a.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[p]),(0,r.useEffect)(()=>{v(0)},[g,p]),(0,r.useEffect)(()=>{function e(e){var t;let a=null==e||null==(t=e.detail)?void 0:t.id;a&&P(a)}return window.addEventListener("madarx:open-setting",e),()=>window.removeEventListener("madarx:open-setting",e)},[P]),(0,r.useEffect)(()=>{function a(a){let s=a.key.toLowerCase(),r=a.metaKey||a.ctrlKey,n=function(e){var t;let a=null==e||null==(t=e.tagName)?void 0:t.toLowerCase();return(null==e?void 0:e.isContentEditable)||"input"===a||"textarea"===a||"select"===a}(a.target);if(p){if("Escape"===a.key){a.preventDefault(),_();return}if("ArrowDown"===a.key){a.preventDefault(),v(e=>Math.min(e+1,Math.max(0,E.length-1)));return}if("ArrowUp"===a.key){a.preventDefault(),v(e=>Math.max(0,e-1));return}if("Enter"===a.key){a.preventDefault(),K(E[y]);return}}if(a.metaKey&&"Space"===a.code||a.metaKey&&"k"===s||a.ctrlKey&&"Space"===a.code){a.preventDefault(),m(e=>(e||N(null),!e));return}if(r&&!n){if(a.metaKey&&"j"===s&&!a.shiftKey){a.preventDefault(),d[0].run({router:e,pathname:t});return}if(a.metaKey&&"j"===s&&a.shiftKey){a.preventDefault(),d[1].run({router:e,pathname:t});return}if(a.metaKey&&";"===s){a.preventDefault(),d[2].run({router:e,pathname:t});return}if(a.metaKey&&"/"===s){a.preventDefault(),C("shortcuts");return}a.metaKey&&a.shiftKey&&["a","t","d"].includes(s)&&(a.preventDefault(),e.push("a"===s?"/agents":"t"===s?"/tasks":"/runtime"))}}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[y,p,t,E,e]);let R=j?(0,s.jsx)(o,{action:j,current:b[j.id],onClose:T,onSaved:S}):null;return p?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"smart-search-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&_()},children:(0,s.jsxs)("section",{className:"smart-search-panel",role:"dialog","aria-modal":"true","aria-label":"Smart search",children:[(0,s.jsxs)("div",{className:"smart-search-head",children:[(0,s.jsx)("span",{className:"smart-search-orb","aria-hidden":"true"}),(0,s.jsx)("input",{ref:a,value:g,onChange:e=>f(e.target.value),placeholder:"Search docs, settings, pages…","aria-label":"Search madarX OS"}),(0,s.jsx)("kbd",{children:"esc"})]}),(0,s.jsx)("div",{className:"smart-search-results",role:"listbox","aria-label":"Smart search results",children:E.length?E.map((e,t)=>{let a="setting"===e.kind?b[e.action.id]:null,r=a&&"secret"===e.action.kind&&"set"===a.status?"Set":null;return(0,s.jsxs)("button",{type:"button",className:"smart-search-row"+(t===y?" is-active":""),onMouseEnter:()=>v(t),onClick:()=>K(e),role:"option","aria-selected":t===y,children:[(0,s.jsxs)("span",{className:"smart-search-row-main",children:[(0,s.jsxs)("small",{children:[(0,s.jsx)("span",{className:"smart-search-kind kind-".concat(e.kind||"nav"),children:e.section}),r?(0,s.jsx)("span",{className:"smart-search-pill",children:r}):null]}),(0,s.jsx)("b",{children:e.title}),(0,s.jsx)("em",{children:e.detail})]}),e.shortcut?(0,s.jsx)("kbd",{children:e.shortcut}):e.href?(0,s.jsx)("kbd",{children:e.href}):null]},e.id||e.title)}):(0,s.jsx)("div",{className:"smart-search-empty",children:"No matches. Try “api key”, “whatsapp”, “agent”, or “shortcut”."})}),(0,s.jsxs)("footer",{className:"smart-search-foot",children:[(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"↑"}),(0,s.jsx)("kbd",{children:"↓"})," select"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"return"})," open"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"⌘J"})," composer"]})]})]})}),R]}):R}let m=["/login","/share"];function g(e){let{children:t,sidebar:a}=e,l=(0,n.usePathname)();return(0,r.useMemo)(()=>m.some(e=>l===e||(null==l?void 0:l.startsWith("".concat(e,"/")))),[l])?(0,s.jsx)("div",{className:"chromeless-page",children:t}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"app-shell",children:[(0,s.jsx)("div",{className:"app-rail",children:null!=a?a:null}),(0,s.jsx)("div",{className:"app-content",children:t})]}),(0,s.jsx)(p,{})]})}},7438:(e,t,a)=>{"use strict";a.d(t,{default:()=>R});var s=a(5155),r=a(2115),n=a(2619),l=a.n(n),i=a(63),o=a(9565),c=a(7629),d=a(8987),u=a(5709),h=a(1516),p=a(4733),m=a(1745),g=a(4597),f=a(1092),y=a(5893),v=a(6351),b=a(7657),k=a(3437),x=a(6898),w=a(4227),j=a(1042),N=a(1510),S=a(8080),A=a(4333);let E=[{group:"work",name:"Overview",href:"/",icon:d.A},{group:"work",name:"Projects",href:"/projects",icon:u.A},{group:"work",name:"Agents",href:"/agents",icon:h.A},{group:"work",name:"Tasks",href:"/tasks",icon:p.A},{group:"work",name:"Workflows",href:"/workflows",icon:m.A},{group:"work",name:"Approvals",href:"/approvals",icon:g.A},{group:"library",name:"Marketplace",href:"/marketplace",icon:f.A}],C={Pickaxe:y.A,Boxes:v.A,Gem:b.A,FlaskConical:k.A,Factory:x.A,Building2:w.A,Package:f.A,FolderOpen:u.A,Workflow:m.A},_=[{name:"Settings",icon:j.A,href:"/settings"}];function P(e,t){return!!e&&("/"===t?"/"===e:e===t||e.startsWith("".concat(t,"/")))}function T(e){var t,a;null==(a=e.currentTarget)||null==(t=a.blur)||t.call(a)}function K(e){let{item:t,active:a}=e,r=t.icon;return(0,s.jsxs)(l(),{href:t.href,prefetch:!0,"aria-label":t.name,"aria-current":a?"page":void 0,"data-active":a?"true":void 0,onClick:T,className:"".concat("relative flex items-center justify-center p-2 rounded-lg transition-colors duration-150 group"," ").concat(a?"text-[#C2452A]":"text-[#69707a] hover:text-[#111318] hover:bg-[rgba(17,19,24,0.08)] active:bg-[rgba(17,19,24,0.12)]"),children:[(0,s.jsx)(r,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"}),(0,s.jsx)("span",{className:"absolute left-12 px-2 py-1 rounded-md whitespace-nowrap text-xs text-white bg-[#111318] hidden group-hover:inline-block group-focus-visible:inline-block z-50 shadow-lg pointer-events-none",children:t.name})]})}function R(e){let{moduleNav:t=[]}=e,a=(0,i.usePathname)(),{session:n,signOut:d}=function(){let[e,t]=(0,r.useState)(null),a=(0,i.useRouter)();return(0,r.useEffect)(()=>{let e=!0;return fetch("/api/auth/session",{cache:"no-store"}).then(e=>e.json()).then(a=>{e&&t((null==a?void 0:a.user)||null)}).catch(()=>{e&&t(null)}),()=>{e=!1}},[]),{session:e,signOut:async function(){await fetch("/api/auth/session",{method:"DELETE"}).catch(()=>null),a.replace("/login"),a.refresh()}}}(),[u,h]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!0;return fetch("/api/system/update").then(e=>e.ok?e.json():null).then(t=>{e&&t&&h(t)}).catch(()=>{}),()=>{e=!1}},[]);let p=(Array.isArray(t)?t:[]).map(e=>({group:"module",name:e.label,href:e.href,icon:C[e.icon]||v.A})),m=[...E.filter(e=>"work"===e.group),...p,...E.filter(e=>"library"===e.group)],g=(null==n?void 0:n.email)||"Local owner",f="local"===((null==n?void 0:n.auth_mode)||"local"),y=((null==n?void 0:n.email)||(null==n?void 0:n.display_name)||"AK").slice(0,2).toUpperCase();return(0,s.jsxs)("aside",{className:"relative z-30 h-full w-full rounded-[18px] border border-white/75 bg-[var(--glass)] backdrop-blur-[22px] backdrop-saturate-150 shadow-[0_18px_54px_rgba(37,36,34,0.16)] flex flex-col","aria-label":"Primary navigation",children:[(0,s.jsx)("div",{className:"h-20 flex items-center justify-center px-3 shrink-0",children:(0,s.jsx)(l(),{href:"/",prefetch:!0,className:"flex-none","aria-label":"madarX home",onClick:T,children:(0,s.jsx)("img",{src:"/madarx-mark.svg",alt:"madarX",width:32,height:32,className:"block text-[#111318]"})})}),(0,s.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 text-sm font-medium flex-1 space-y-1",children:m.map((e,t)=>{let r=m[t-1],n=r&&r.group!==e.group,l=P(a,e.href);return(0,s.jsxs)("li",{children:[n?(0,s.jsx)("div",{"aria-hidden":"true",className:"mx-2 my-2 h-px bg-[rgba(20,22,26,0.09)]"}):null,(0,s.jsx)(K,{item:e,active:l})]},e.name)})}),(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 pb-3 pt-2 text-sm font-medium space-y-1",children:_.map(e=>{let t=P(a,e.href);return(0,s.jsx)("li",{children:(0,s.jsx)(K,{item:e,active:t})},e.name)})}),(0,s.jsx)("div",{className:"relative py-4 px-3 border-t border-[rgba(20,22,26,0.09)] flex justify-center",children:(0,s.jsxs)(o.bL,{children:[(0,s.jsx)(o.l9,{className:"outline-none rounded-full border-0 bg-transparent p-0 appearance-none cursor-pointer focus-visible:ring-2 focus-visible:ring-[#111318] focus-visible:ring-offset-2 focus-visible:ring-offset-white/50","aria-label":"Account menu",children:(0,s.jsxs)(c.bL,{className:"w-10 h-10 rounded-full overflow-hidden cursor-pointer block",children:[(0,s.jsx)(c._V,{className:"w-full h-full object-cover",src:"/madarx-mark.svg",alt:"AK"}),(0,s.jsx)(c.H4,{className:"flex w-full h-full items-center justify-center text-white text-xs font-bold tracking-wider bg-gradient-to-br from-[#111318] to-[#565d6b]",delayMs:150,children:y})]})}),(0,s.jsx)(o.ZL,{children:(0,s.jsxs)(o.UC,{side:"right",align:"end",sideOffset:12,className:"w-64 rounded-xl bg-white shadow-[0_22px_60px_rgba(17,19,24,0.20)] border border-[rgba(20,22,26,0.09)] text-sm text-[#59606b] p-2 z-[100]",children:[(0,s.jsx)("div",{className:"px-2 py-1.5 text-[11px] uppercase tracking-[0.14em] text-[var(--accent-600)] font-bold",children:f?"Local operator":"Signed in"}),(0,s.jsx)("span",{className:"block text-[#68707b] px-2 pb-2 truncate",children:g}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Dashboard"})}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/settings",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Settings"})}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),(null==u?void 0:u.behind)&&(null==u?void 0:u.latest)?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/",className:"flex items-center justify-between gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-x-2",children:[(0,s.jsx)(N.A,{className:"w-4 h-4 text-[var(--accent-600)]",strokeWidth:1.75}),"Update available"]}),(0,s.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--accent-600)]",children:["v",u.latest]})]})}):(0,s.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-[12px] text-[#9aa1ab]",children:[(0,s.jsx)("span",{children:"Version"}),(0,s.jsx)("span",{className:"font-medium text-[#68707b]",children:(null==u?void 0:u.current)?"v".concat(u.current):"—"})]}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),f?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/settings/account",className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsx)(S.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign in with an account"]})}):(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)("button",{type:"button",onClick:d,className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer text-[#313740]",children:[(0,s.jsx)(A.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign out"]})})]})})]})})]})]})}}},e=>{e.O(0,[3045,1741,2619,7597,8441,1255,7358],()=>e(e.s=2455)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1290:()=>{},2455:(e,t,a)=>{Promise.resolve().then(a.bind(a,3455)),Promise.resolve().then(a.bind(a,7438)),Promise.resolve().then(a.t.bind(a,2295,23)),Promise.resolve().then(a.t.bind(a,1290,23))},3455:(e,t,a)=>{"use strict";a.d(t,{default:()=>g});var s=a(5155),r=a(2115),n=a(63);let l=[{id:"set-anthropic-key",title:"Set Anthropic API key",category:"Credentials",keywords:["anthropic","api key","claude","apikey","llm","token","cloud engine"],kind:"secret",secretName:"ANTHROPIC_API_KEY",field:{label:"ANTHROPIC_API_KEY",type:"password",placeholder:"sk-ant-…",help:"Used by the Anthropic cloud engine. Stored encrypted in the secrets vault."},settingsHref:"/settings/tools",docSlug:"set-anthropic-key"},{id:"set-resend-key",title:"Set Resend API key (email)",category:"Credentials",keywords:["resend","email","api key","smtp","send mail"],kind:"secret",secretName:"RESEND_API_KEY",field:{label:"RESEND_API_KEY",type:"password",placeholder:"re_…",help:"Enables the email tool. Encrypted at rest."},settingsHref:"/settings/connectors",docSlug:"set-resend-key"},{id:"set-github-token",title:"Set GitHub token",category:"Credentials",keywords:["github","token","pat","api key","git","repo"],kind:"secret",secretName:"GITHUB_TOKEN",field:{label:"GITHUB_TOKEN",type:"password",placeholder:"ghp_… / github_pat_…",help:"Personal access token for the GitHub tool adapter."},settingsHref:"/settings/connectors",docSlug:"set-github-token"},{id:"set-supabase-url",title:"Set Supabase URL",category:"Credentials",keywords:["supabase","url","database","project url","connect"],kind:"secret",secretName:"SUPABASE_URL",field:{label:"SUPABASE_URL",type:"text",placeholder:"https://xxxx.supabase.co",help:"Project URL for Supabase writes + shared cloud layer."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-supabase-service-key",title:"Set Supabase service-role key",category:"Credentials",keywords:["supabase","service role","key","api key","secret","database"],kind:"secret",secretName:"SUPABASE_SERVICE_ROLE_KEY",field:{label:"SUPABASE_SERVICE_ROLE_KEY",type:"password",placeholder:"eyJ…",help:"Server-side service-role key. Never exposed to the browser."},settingsHref:"/settings/connectors",docSlug:"connect-supabase"},{id:"set-default-model",title:"Set default model",category:"Agent runtime",keywords:["model","default model","llm","opus","sonnet","haiku","picker"],kind:"config",configKey:"model",field:{label:"Default model",type:"select",help:"Model the main agent uses by default.",options:[{value:"claude-opus-4-7",label:"Opus 4.7"},{value:"claude-sonnet-4-6",label:"Sonnet 4.6"},{value:"claude-haiku-4-5-20251001",label:"Haiku 4.5"}]},settingsHref:"/settings/engines",docSlug:"choose-agent-engine"},{id:"set-design-style",title:"Set artifact design style",category:"Agent runtime",keywords:["design","style","aesthetic","minimal","bold","soft","balanced","artifact"],kind:"config",configKey:"designStyle",field:{label:"Design style",type:"select",help:"Visual style agents use when producing artifacts.",options:[{value:"balanced",label:"Balanced"},{value:"minimal",label:"Minimal"},{value:"bold",label:"Bold"},{value:"soft",label:"Soft"}]},settingsHref:"/settings/brand",docSlug:null},{id:"set-trust-mode",title:"Set main-agent trust mode",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","permission","gate"],kind:"trust-mode",field:{label:"Trust mode",type:"select",help:"Warning: auto lets the main agent run high-and-below risk tool calls WITHOUT asking you first (irreversible_external is always gated). Saving auto confirms this. approval_required is the safe default.",options:[{value:"approval_required",label:"Approval required (safe default)"},{value:"auto",label:"Auto (skip gate for ≤ high risk)"}]},settingsHref:"/settings/advanced",docSlug:"set-trust-mode"}],i=[{id:"start-whatsapp-bridge",slug:"start-whatsapp-bridge",title:"Start the WhatsApp bridge",summary:"Pair a dedicated WhatsApp number and run the gateway daemon so agents can send and receive messages.",category:"Channels",keywords:["whatsapp","bridge","gateway","baileys","pair","daemon","messages"],related:["secrets-vault-overview"]},{id:"set-api-key",slug:"set-api-key",title:"Set an API key",summary:"How API keys and secrets are stored, and the fastest way to add one from anywhere with Cmd+K.",category:"Credentials",keywords:["api key","secret","credential","token","vault","set key"],related:["set-anthropic-key","connect-supabase","secrets-vault-overview"]},{id:"set-anthropic-key",slug:"set-anthropic-key",title:"Set the Anthropic API key",summary:"Add the Anthropic key that powers the cloud engine.",category:"Credentials",keywords:["anthropic","api key","claude","cloud engine","llm"],related:["choose-agent-engine","set-api-key"]},{id:"set-resend-key",slug:"set-resend-key",title:"Set the Resend API key (email)",summary:"Enable the email tool by adding a Resend key.",category:"Credentials",keywords:["resend","email","api key","send mail"],related:["set-api-key"]},{id:"set-github-token",slug:"set-github-token",title:"Set a GitHub token",summary:"Add a personal access token to unlock the GitHub tool adapter.",category:"Credentials",keywords:["github","token","pat","repo","api key"],related:["set-api-key"]},{id:"connect-supabase",slug:"connect-supabase",title:"Connect Supabase",summary:"Wire up Supabase URL and keys for database writes and the shared cloud layer.",category:"Credentials",keywords:["supabase","database","connect","url","service role","shared cloud"],related:["set-api-key","secrets-vault-overview"]},{id:"choose-agent-engine",slug:"choose-agent-engine",title:"Choose an agent engine",summary:"Pick between claude-code, anthropic, ollama, codex, and hermes — and what each needs.",category:"Agent runtime",keywords:["engine","model","claude-code","ollama","codex","hermes","anthropic","local"],related:["set-anthropic-key"]},{id:"set-trust-mode",slug:"set-trust-mode",title:"Set trust mode",summary:"Control whether the main agent gates risky tool calls or runs them automatically.",category:"Agent runtime",keywords:["trust","trust mode","auto","approval","safety","risk","gate"],related:["create-agent"]},{id:"create-agent",slug:"create-agent",title:"Create an agent",summary:"Spin up a worker, set its schedule, scope its tools, and run it.",category:"Getting started",keywords:["agent","create","worker","new agent","caretaker","roster"],related:["schedules-and-cron","set-trust-mode"]},{id:"schedules-and-cron",slug:"schedules-and-cron",title:"Schedules and cron",summary:"How schedules queue durable heartbeat work, backfill missed windows, and run automatically.",category:"Getting started",keywords:["schedule","cron","daily","heartbeat","backfill","recurring"],related:["create-agent"]},{id:"secrets-vault-overview",slug:"secrets-vault-overview",title:"Secrets vault overview",summary:"Where credentials live, how they are encrypted, and why values are never shown back.",category:"Credentials",keywords:["secrets","vault","encryption","aes","master key","security"],related:["set-api-key"]},{id:"keyboard-shortcuts",slug:"keyboard-shortcuts",title:"Keyboard shortcuts",summary:"Every shortcut, including Cmd+K smart search and the composer keys.",category:"Getting started",keywords:["keyboard","shortcut","cmd k","command","hotkey","search"],related:[]}];function o(e){var t,a;let{action:l,current:i,onClose:o,onSaved:c}=e;(0,n.useRouter)();let d=(0,r.useRef)(null),u=l.field,[h,p]=(0,r.useState)("select"===u.type&&((null==i?void 0:i.value)||(null==(a=u.options)||null==(t=a[0])?void 0:t.value))||""),[m,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)(""),[v,b]=(0,r.useState)(!1);async function k(e){if(e.preventDefault(),m)return;let t=String(h).trim();if(!t)return void y("Enter a value.");g(!0),y("");try{let{endpoint:e,method:s,body:r}=function(e,t){switch(e.kind){case"secret":return{endpoint:"/api/secrets",method:"POST",body:{name:e.secretName,value:t,scope:"global",source:"help-modal"}};case"config":return{endpoint:"/api/config",method:"PUT",body:{[e.configKey]:t}};case"trust-mode":return{endpoint:"/api/settings/trust-mode",method:"PATCH",body:"auto"===t?{mode:t,confirm:!0}:{mode:t}};default:throw Error("unknown action kind: ".concat(e.kind))}}(l,t),n=await fetch(e,{method:s,headers:{"content-type":"application/json"},body:JSON.stringify(r)});if(!n.ok){if(403===n.status)y("You need admin or owner access to change this.");else if(401===n.status)y("Sign in to change this setting.");else{let e=await n.text().catch(()=>""),t=e;try{var a;t=(null==(a=JSON.parse(e))?void 0:a.error)||e}catch(e){}y(t||"Failed (".concat(n.status,")."))}g(!1);return}b(!0),g(!1),null==c||c(l),window.setTimeout(()=>o(),700)}catch(e){y((null==e?void 0:e.message)||"Network error."),g(!1)}}(0,r.useEffect)(()=>{let e=window.setTimeout(()=>{var e;return null==(e=d.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&(e.preventDefault(),o())}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]);let x=function(e,t){if(!t)return null;if("secret"===e.kind)return"set"===t.status?"Currently set":"Not set";if(null!=t.value){var a;let s=null==(a=e.field.options)?void 0:a.find(e=>e.value===t.value);return"Currently: ".concat(s?s.label:t.value)}return null}(l,i);return(0,s.jsx)("div",{className:"help-value-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,s.jsxs)("form",{className:"help-value-modal",role:"dialog","aria-modal":"true","aria-label":l.title,onSubmit:k,children:[(0,s.jsxs)("header",{className:"help-value-head",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("small",{children:l.category}),(0,s.jsx)("h2",{children:l.title})]}),(0,s.jsx)("button",{type:"button",className:"help-value-close",onClick:o,"aria-label":"Close",children:"esc"})]}),(0,s.jsxs)("div",{className:"help-value-body",children:[(0,s.jsxs)("label",{className:"help-value-field",children:[(0,s.jsxs)("span",{className:"help-value-label",children:[u.label,x?(0,s.jsx)("em",{className:"help-value-status",children:x}):null]}),"select"===u.type?(0,s.jsx)("select",{ref:d,value:h,onChange:e=>p(e.target.value),disabled:m||v,children:u.options.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,s.jsx)("input",{ref:d,type:"password"===u.type?"password":"text",value:h,placeholder:u.placeholder||"",onChange:e=>p(e.target.value),disabled:m||v,autoComplete:"off",spellCheck:!1})]}),u.help?(0,s.jsx)("p",{className:"help-value-help",children:u.help}):null,f?(0,s.jsx)("p",{className:"help-value-error",role:"alert",children:f}):null,v?(0,s.jsx)("p",{className:"help-value-ok",role:"status",children:"Saved."}):null]}),(0,s.jsxs)("footer",{className:"help-value-foot",children:[(0,s.jsxs)("div",{className:"help-value-links",children:[(0,s.jsx)("a",{href:l.settingsHref,onClick:o,children:"Open full settings"}),l.docSlug?(0,s.jsx)("a",{href:"/help/".concat(l.docSlug),onClick:o,children:"Read the guide"}):null]}),(0,s.jsxs)("div",{className:"help-value-actions",children:[(0,s.jsx)("button",{type:"button",className:"help-value-btn ghost",onClick:o,disabled:m,children:"Cancel"}),(0,s.jsx)("button",{type:"submit",className:"help-value-btn primary",disabled:m||v,children:m?"Saving…":"Save"})]})]})]})})}let c=[{title:"Overview",href:"/",section:"Navigate",keys:["dashboard","home","canvas","main"]},{title:"Agents",href:"/agents",section:"Navigate",keys:["agent","worker","roster","team"]},{title:"Tasks",href:"/tasks",section:"Navigate",keys:["task","work","todo","kanban"]},{title:"Approvals",href:"/approvals",section:"Navigate",keys:["approve","permission","review"]},{title:"Tools",href:"/tools",section:"Navigate",keys:["tool","connector","capability"]},{title:"Schedules",href:"/schedules",section:"Navigate",keys:["cron","schedule","calendar"]},{title:"Reports",href:"/reports",section:"Navigate",keys:["report","artifact","brief"]},{title:"Activity",href:"/activity",section:"Navigate",keys:["activity","runs","history"]},{title:"Runtime",href:"/runtime",section:"Navigate",keys:["runtime","diagnostics","heartbeat","process"]},{title:"Brand",href:"/brand",section:"Navigate",keys:["brand","identity","design"]},{title:"Settings",href:"/settings",section:"Navigate",keys:["settings","config","preferences"]},{title:"Help",href:"/help",section:"Navigate",keys:["help","guide","docs","documentation","shortcuts"]}],d=[{id:"focus-main-agent",title:"Focus main agent composer",detail:"Jump to the prompt box without leaving the keyboard.",section:"Action",shortcut:"⌘J",keys:["chat","composer","prompt","ask","agent"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:focus-composer")),180)):window.dispatchEvent(new Event("madarx:focus-composer"))}},{id:"new-chat",title:"New main-agent chat",detail:"Fresh conversation without using ⌘N, which belongs to the browser.",section:"Action",shortcut:"⌘⇧J",keys:["new","session","chat","fresh"],run:e=>{let{router:t,pathname:a}=e;"/"!==a&&t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:new-chat")),180*("/"!==a))}},{id:"settings-modal",title:"Open agent configuration",detail:"Close to the right thumb, but avoids browser-level ⌘, preferences.",section:"Action",shortcut:"⌘;",keys:["settings","preferences","config","model"],run:e=>{let{router:t,pathname:a}=e;"/"!==a?(t.push("/"),window.setTimeout(()=>window.dispatchEvent(new Event("madarx:open-config")),180)):window.dispatchEvent(new Event("madarx:open-config"))}},{id:"shortcut-help",title:"Show keyboard shortcuts",detail:"Open this palette and filter to shortcut help.",section:"Action",shortcut:"⌘/",keys:["keyboard","shortcut","help","command"],run:e=>{let{openWithQuery:t}=e;return t("shortcuts")}}],u=[{title:"Open smart search",detail:"⌘Space or ⌘K. Thumb + home-row fallback; Ctrl Space also works when macOS owns Spotlight.",section:"Shortcuts",keys:["shortcut","search","spotlight","command space"]},{title:"Focus main agent",detail:"⌘J. Right thumb + index on home row; avoids browser shortcuts.",section:"Shortcuts",keys:["shortcut","composer","prompt"]},{title:"New chat",detail:"⌘⇧J. Same hand position as focus, with Shift; avoids ⌘N.",section:"Shortcuts",keys:["shortcut","new chat","session"]},{title:"Agents / Tasks / Runtime",detail:"⌘⇧A, ⌘⇧T, ⌘⇧D. Left-hand clusters for common operating surfaces.",section:"Shortcuts",keys:["shortcut","navigation","agents","tasks","runtime"]},{title:"Agent settings",detail:"⌘; sits under the right hand and avoids browser Preferences on ⌘,.",section:"Shortcuts",keys:["shortcut","settings","preferences"]}];function h(e){return String(e||"").toLowerCase().trim()}function p(){let e=(0,n.useRouter)(),t=(0,n.usePathname)(),a=(0,r.useRef)(null),[p,m]=(0,r.useState)(!1),[g,f]=(0,r.useState)(""),[y,v]=(0,r.useState)(0),[b,k]=(0,r.useState)({}),[x,w]=(0,r.useState)(!1),[j,N]=(0,r.useState)(null),S=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/help",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),a={};for(let e of t.actions||[])a[e.id]=e.current;k(a),w(!0)}catch(e){}},[]),A=(0,r.useMemo)(()=>{let e=c.map(e=>({...e,id:"nav:".concat(e.href),kind:"nav",detail:"/"===e.href?"Return to the main command center.":"Open ".concat(e.href),run:t=>{let{router:a}=t;return a.push(e.href)}}));return[...d,...l.map(e=>{var t;return{id:"set:".concat(e.id),kind:"setting",action:e,title:e.title,detail:(null==(t=e.field)?void 0:t.help)||"Set this value.",section:"Set",keys:e.keywords}}),...i.map(e=>({id:"doc:".concat(e.slug),kind:"doc",title:e.title,detail:e.summary,section:"Doc",href:"/help/".concat(e.slug),keys:e.keywords})),...e,...u]},[]),E=(0,r.useMemo)(()=>{let e=h(g);if(!e)return A.slice(0,10);let t=e.split(/\s+/).filter(Boolean);return A.map(a=>{let s=[a.title,a.detail,a.section,a.href,...a.keys||[]].filter(Boolean).join(" ").toLowerCase(),r=t.reduce((e,t)=>e+ +!!s.includes(t),0),n=3*!!h(a.title).startsWith(e);return{item:a,score:r+n}}).filter(e=>{let{score:t}=e;return t>0}).sort((e,t)=>t.score-e.score||e.item.title.localeCompare(t.item.title)).map(e=>{let{item:t}=e;return t}).slice(0,12)},[A,g]),C=e=>{f(e||""),m(!0),v(0)},_=()=>{m(!1),f(""),v(0)},P=(0,r.useCallback)(e=>{let t=l.find(t=>t.id===e);t&&N(t)},[]),T=(0,r.useCallback)(()=>N(null),[]),K=a=>{if(a){if("setting"===a.kind){N(a.action),_();return}if("doc"===a.kind){e.push(a.href),_();return}a.run&&(a.run({router:e,pathname:t,openWithQuery:C}),"Shortcuts"!==a.section&&_())}};(0,r.useEffect)(()=>{(p||j)&&!x&&S()},[p,j,x,S]),(0,r.useEffect)(()=>{if(!p)return;let e=window.setTimeout(()=>{var e;return null==(e=a.current)?void 0:e.focus()},0);return()=>window.clearTimeout(e)},[p]),(0,r.useEffect)(()=>{v(0)},[g,p]),(0,r.useEffect)(()=>{function e(e){var t;let a=null==e||null==(t=e.detail)?void 0:t.id;a&&P(a)}return window.addEventListener("madarx:open-setting",e),()=>window.removeEventListener("madarx:open-setting",e)},[P]),(0,r.useEffect)(()=>{function a(a){let s=(a.key||"").toLowerCase(),r=a.metaKey||a.ctrlKey,n=function(e){var t;let a=null==e||null==(t=e.tagName)?void 0:t.toLowerCase();return(null==e?void 0:e.isContentEditable)||"input"===a||"textarea"===a||"select"===a}(a.target);if(p){if("Escape"===a.key){a.preventDefault(),_();return}if("ArrowDown"===a.key){a.preventDefault(),v(e=>Math.min(e+1,Math.max(0,E.length-1)));return}if("ArrowUp"===a.key){a.preventDefault(),v(e=>Math.max(0,e-1));return}if("Enter"===a.key){a.preventDefault(),K(E[y]);return}}if(a.metaKey&&"Space"===a.code||a.metaKey&&"k"===s||a.ctrlKey&&"Space"===a.code){a.preventDefault(),m(e=>(e||N(null),!e));return}if(r&&!n){if(a.metaKey&&"j"===s&&!a.shiftKey){a.preventDefault(),d[0].run({router:e,pathname:t});return}if(a.metaKey&&"j"===s&&a.shiftKey){a.preventDefault(),d[1].run({router:e,pathname:t});return}if(a.metaKey&&";"===s){a.preventDefault(),d[2].run({router:e,pathname:t});return}if(a.metaKey&&"/"===s){a.preventDefault(),C("shortcuts");return}a.metaKey&&a.shiftKey&&["a","t","d"].includes(s)&&(a.preventDefault(),e.push("a"===s?"/agents":"t"===s?"/tasks":"/runtime"))}}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[y,p,t,E,e]);let R=j?(0,s.jsx)(o,{action:j,current:b[j.id],onClose:T,onSaved:S}):null;return p?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"smart-search-overlay",role:"presentation",onMouseDown:e=>{e.target===e.currentTarget&&_()},children:(0,s.jsxs)("section",{className:"smart-search-panel",role:"dialog","aria-modal":"true","aria-label":"Smart search",children:[(0,s.jsxs)("div",{className:"smart-search-head",children:[(0,s.jsx)("span",{className:"smart-search-orb","aria-hidden":"true"}),(0,s.jsx)("input",{ref:a,value:g,onChange:e=>f(e.target.value),placeholder:"Search docs, settings, pages…","aria-label":"Search madarX OS"}),(0,s.jsx)("kbd",{children:"esc"})]}),(0,s.jsx)("div",{className:"smart-search-results",role:"listbox","aria-label":"Smart search results",children:E.length?E.map((e,t)=>{let a="setting"===e.kind?b[e.action.id]:null,r=a&&"secret"===e.action.kind&&"set"===a.status?"Set":null;return(0,s.jsxs)("button",{type:"button",className:"smart-search-row"+(t===y?" is-active":""),onMouseEnter:()=>v(t),onClick:()=>K(e),role:"option","aria-selected":t===y,children:[(0,s.jsxs)("span",{className:"smart-search-row-main",children:[(0,s.jsxs)("small",{children:[(0,s.jsx)("span",{className:"smart-search-kind kind-".concat(e.kind||"nav"),children:e.section}),r?(0,s.jsx)("span",{className:"smart-search-pill",children:r}):null]}),(0,s.jsx)("b",{children:e.title}),(0,s.jsx)("em",{children:e.detail})]}),e.shortcut?(0,s.jsx)("kbd",{children:e.shortcut}):e.href?(0,s.jsx)("kbd",{children:e.href}):null]},e.id||e.title)}):(0,s.jsx)("div",{className:"smart-search-empty",children:"No matches. Try “api key”, “whatsapp”, “agent”, or “shortcut”."})}),(0,s.jsxs)("footer",{className:"smart-search-foot",children:[(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"↑"}),(0,s.jsx)("kbd",{children:"↓"})," select"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"return"})," open"]}),(0,s.jsxs)("span",{children:[(0,s.jsx)("kbd",{children:"⌘J"})," composer"]})]})]})}),R]}):R}let m=["/login","/share"];function g(e){let{children:t,sidebar:a}=e,l=(0,n.usePathname)();return(0,r.useMemo)(()=>m.some(e=>l===e||(null==l?void 0:l.startsWith("".concat(e,"/")))),[l])?(0,s.jsx)("div",{className:"chromeless-page",children:t}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"app-shell",children:[(0,s.jsx)("div",{className:"app-rail",children:null!=a?a:null}),(0,s.jsx)("div",{className:"app-content",children:t})]}),(0,s.jsx)(p,{})]})}},7438:(e,t,a)=>{"use strict";a.d(t,{default:()=>R});var s=a(5155),r=a(2115),n=a(2619),l=a.n(n),i=a(63),o=a(9565),c=a(7629),d=a(8987),u=a(5709),h=a(1516),p=a(4733),m=a(1745),g=a(4597),f=a(1092),y=a(5893),v=a(6351),b=a(7657),k=a(3437),x=a(6898),w=a(4227),j=a(1042),N=a(1510),S=a(8080),A=a(4333);let E=[{group:"work",name:"Overview",href:"/",icon:d.A},{group:"work",name:"Projects",href:"/projects",icon:u.A},{group:"work",name:"Agents",href:"/agents",icon:h.A},{group:"work",name:"Tasks",href:"/tasks",icon:p.A},{group:"work",name:"Workflows",href:"/workflows",icon:m.A},{group:"work",name:"Approvals",href:"/approvals",icon:g.A},{group:"library",name:"Marketplace",href:"/marketplace",icon:f.A}],C={Pickaxe:y.A,Boxes:v.A,Gem:b.A,FlaskConical:k.A,Factory:x.A,Building2:w.A,Package:f.A,FolderOpen:u.A,Workflow:m.A},_=[{name:"Settings",icon:j.A,href:"/settings"}];function P(e,t){return!!e&&("/"===t?"/"===e:e===t||e.startsWith("".concat(t,"/")))}function T(e){var t,a;null==(a=e.currentTarget)||null==(t=a.blur)||t.call(a)}function K(e){let{item:t,active:a}=e,r=t.icon;return(0,s.jsxs)(l(),{href:t.href,prefetch:!0,"aria-label":t.name,"aria-current":a?"page":void 0,"data-active":a?"true":void 0,onClick:T,className:"".concat("relative flex items-center justify-center p-2 rounded-lg transition-colors duration-150 group"," ").concat(a?"text-[#C2452A]":"text-[#69707a] hover:text-[#111318] hover:bg-[rgba(17,19,24,0.08)] active:bg-[rgba(17,19,24,0.12)]"),children:[(0,s.jsx)(r,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"}),(0,s.jsx)("span",{className:"absolute left-12 px-2 py-1 rounded-md whitespace-nowrap text-xs text-white bg-[#111318] hidden group-hover:inline-block group-focus-visible:inline-block z-50 shadow-lg pointer-events-none",children:t.name})]})}function R(e){let{moduleNav:t=[]}=e,a=(0,i.usePathname)(),{session:n,signOut:d}=function(){let[e,t]=(0,r.useState)(null),a=(0,i.useRouter)();return(0,r.useEffect)(()=>{let e=!0;return fetch("/api/auth/session",{cache:"no-store"}).then(e=>e.json()).then(a=>{e&&t((null==a?void 0:a.user)||null)}).catch(()=>{e&&t(null)}),()=>{e=!1}},[]),{session:e,signOut:async function(){await fetch("/api/auth/session",{method:"DELETE"}).catch(()=>null),a.replace("/login"),a.refresh()}}}(),[u,h]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!0;return fetch("/api/system/update").then(e=>e.ok?e.json():null).then(t=>{e&&t&&h(t)}).catch(()=>{}),()=>{e=!1}},[]);let p=(Array.isArray(t)?t:[]).map(e=>({group:"module",name:e.label,href:e.href,icon:C[e.icon]||v.A})),m=[...E.filter(e=>"work"===e.group),...p,...E.filter(e=>"library"===e.group)],g=(null==n?void 0:n.email)||"Local owner",f="local"===((null==n?void 0:n.auth_mode)||"local"),y=((null==n?void 0:n.email)||(null==n?void 0:n.display_name)||"AK").slice(0,2).toUpperCase();return(0,s.jsxs)("aside",{className:"relative z-30 h-full w-full rounded-[18px] border border-white/75 bg-[var(--glass)] backdrop-blur-[22px] backdrop-saturate-150 shadow-[0_18px_54px_rgba(37,36,34,0.16)] flex flex-col","aria-label":"Primary navigation",children:[(0,s.jsx)("div",{className:"h-20 flex items-center justify-center px-3 shrink-0",children:(0,s.jsx)(l(),{href:"/",prefetch:!0,className:"flex-none","aria-label":"madarX home",onClick:T,children:(0,s.jsx)("img",{src:"/madarx-mark.svg",alt:"madarX",width:32,height:32,className:"block text-[#111318]"})})}),(0,s.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 text-sm font-medium flex-1 space-y-1",children:m.map((e,t)=>{let r=m[t-1],n=r&&r.group!==e.group,l=P(a,e.href);return(0,s.jsxs)("li",{children:[n?(0,s.jsx)("div",{"aria-hidden":"true",className:"mx-2 my-2 h-px bg-[rgba(20,22,26,0.09)]"}):null,(0,s.jsx)(K,{item:e,active:l})]},e.name)})}),(0,s.jsx)("ul",{className:"list-none m-0 p-0 px-3 pb-3 pt-2 text-sm font-medium space-y-1",children:_.map(e=>{let t=P(a,e.href);return(0,s.jsx)("li",{children:(0,s.jsx)(K,{item:e,active:t})},e.name)})}),(0,s.jsx)("div",{className:"relative py-4 px-3 border-t border-[rgba(20,22,26,0.09)] flex justify-center",children:(0,s.jsxs)(o.bL,{children:[(0,s.jsx)(o.l9,{className:"outline-none rounded-full border-0 bg-transparent p-0 appearance-none cursor-pointer focus-visible:ring-2 focus-visible:ring-[#111318] focus-visible:ring-offset-2 focus-visible:ring-offset-white/50","aria-label":"Account menu",children:(0,s.jsxs)(c.bL,{className:"w-10 h-10 rounded-full overflow-hidden cursor-pointer block",children:[(0,s.jsx)(c._V,{className:"w-full h-full object-cover",src:"/madarx-mark.svg",alt:"AK"}),(0,s.jsx)(c.H4,{className:"flex w-full h-full items-center justify-center text-white text-xs font-bold tracking-wider bg-gradient-to-br from-[#111318] to-[#565d6b]",delayMs:150,children:y})]})}),(0,s.jsx)(o.ZL,{children:(0,s.jsxs)(o.UC,{side:"right",align:"end",sideOffset:12,className:"w-64 rounded-xl bg-white shadow-[0_22px_60px_rgba(17,19,24,0.20)] border border-[rgba(20,22,26,0.09)] text-sm text-[#59606b] p-2 z-[100]",children:[(0,s.jsx)("div",{className:"px-2 py-1.5 text-[11px] uppercase tracking-[0.14em] text-[var(--accent-600)] font-bold",children:f?"Local operator":"Signed in"}),(0,s.jsx)("span",{className:"block text-[#68707b] px-2 pb-2 truncate",children:g}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Dashboard"})}),(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsx)(l(),{href:"/settings",className:"block w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:"Settings"})}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),(null==u?void 0:u.behind)&&(null==u?void 0:u.latest)?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/",className:"flex items-center justify-between gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-x-2",children:[(0,s.jsx)(N.A,{className:"w-4 h-4 text-[var(--accent-600)]",strokeWidth:1.75}),"Update available"]}),(0,s.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--accent-600)]",children:["v",u.latest]})]})}):(0,s.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-[12px] text-[#9aa1ab]",children:[(0,s.jsx)("span",{children:"Version"}),(0,s.jsx)("span",{className:"font-medium text-[#68707b]",children:(null==u?void 0:u.current)?"v".concat(u.current):"—"})]}),(0,s.jsx)(o.wv,{className:"my-1 h-px bg-[rgba(20,22,26,0.09)]"}),f?(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)(l(),{href:"/settings/account",className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer no-underline text-[#313740]",children:[(0,s.jsx)(S.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign in with an account"]})}):(0,s.jsx)(o.q7,{asChild:!0,className:"outline-none",children:(0,s.jsxs)("button",{type:"button",onClick:d,className:"flex items-center gap-x-2 w-full p-2 text-left rounded-md hover:bg-[rgba(17,19,24,0.05)] active:bg-[rgba(17,19,24,0.1)] duration-150 cursor-pointer text-[#313740]",children:[(0,s.jsx)(A.A,{className:"w-4 h-4",strokeWidth:1.75}),"Sign out"]})})]})})]})})]})]})}}},e=>{e.O(0,[3045,1741,2619,7597,8441,1255,7358],()=>e(e.s=2455)),_N_E=e.O()}]);