madarx 2.12.1 → 2.13.0

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 (328) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +544 -544
  3. package/.next/standalone/.next/app-path-routes-manifest.json +78 -78
  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 +1 -1
  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 +4 -4
  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/orchestrator/upload/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/approvals/page.js +2 -2
  193. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/architecture.html +2 -2
  196. package/.next/standalone/.next/server/app/architecture.rsc +1 -1
  197. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/brand.html +1 -1
  201. package/.next/standalone/.next/server/app/brand.rsc +1 -1
  202. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  205. package/.next/standalone/.next/server/app/federated-ai.rsc +1 -1
  206. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
  208. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/hail/[id]/page.js +1 -1
  210. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
  212. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/hail/page.js +2 -2
  214. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/index.html +2 -2
  218. package/.next/standalone/.next/server/app/index.rsc +1 -1
  219. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/join.html +1 -1
  221. package/.next/standalone/.next/server/app/join.rsc +1 -1
  222. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/marketplace/page.js +2 -2
  224. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/missions/page.js +2 -2
  229. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  233. package/.next/standalone/.next/server/app/onboarding.rsc +1 -1
  234. package/.next/standalone/.next/server/app/org/page.js +1 -1
  235. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  238. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/projects/new/page.js +1 -1
  241. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  242. package/.next/standalone/.next/server/app/projects/new.html +1 -1
  243. package/.next/standalone/.next/server/app/projects/new.rsc +2 -2
  244. package/.next/standalone/.next/server/app/projects/page.js +27 -27
  245. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  248. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  250. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  256. package/.next/standalone/.next/server/app/settings/brand.rsc +1 -1
  257. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  259. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  260. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  261. package/.next/standalone/.next/server/app/settings/onboarding.rsc +1 -1
  262. package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
  263. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  264. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  269. package/.next/standalone/.next/server/app/settings.html +2 -2
  270. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  271. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  272. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
  274. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/tasks/page.js +1 -1
  276. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  278. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/whatsapp.html +1 -1
  282. package/.next/standalone/.next/server/app/whatsapp.rsc +1 -1
  283. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  285. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  286. package/.next/standalone/.next/server/app/workflows/new/page_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  289. package/.next/standalone/.next/server/app-paths-manifest.json +78 -78
  290. package/.next/standalone/.next/server/chunks/{3784.js → 1092.js} +1 -1
  291. package/.next/standalone/.next/server/chunks/1699.js +27 -27
  292. package/.next/standalone/.next/server/functions-config-manifest.json +22 -22
  293. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  294. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  295. package/.next/standalone/.next/server/pages/404.html +1 -1
  296. package/.next/standalone/.next/server/pages/500.html +1 -1
  297. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  299. package/.next/standalone/.next/static/chunks/app/projects/page-2166c214f854766e.js +1 -0
  300. package/.next/standalone/.next/static/chunks/{webpack-86ee88827adb756d.js → webpack-0cfb048137bd7fce.js} +1 -1
  301. package/.next/standalone/CHANGELOG.md +15 -0
  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 +4 -1
  308. package/.next/standalone/workspace/agents/ops-agent/skills.md +24 -0
  309. package/.next/standalone/workspace/agents/tool-smith-agent/skills.md +24 -0
  310. package/.next/static/chunks/app/projects/page-2166c214f854766e.js +1 -0
  311. package/.next/static/chunks/{webpack-86ee88827adb756d.js → webpack-0cfb048137bd7fce.js} +1 -1
  312. package/CHANGELOG.md +15 -0
  313. package/lib/cli/banner.js +200 -21
  314. package/lib/cli/run.js +33 -11
  315. package/lib/cli/splash.js +120 -0
  316. package/lib/marketplace-seeds.js +141 -3
  317. package/lib/runtime.js +52 -3
  318. package/lib/seeds.js +5 -1
  319. package/lib/tools/registry.js +20 -0
  320. package/package.json +4 -1
  321. package/scripts/postinstall-splash.mjs +81 -0
  322. package/scripts/preview-banner.mjs +24 -0
  323. package/.next/standalone/.next/static/chunks/app/projects/page-7b6c6e010183e070.js +0 -1
  324. package/.next/static/chunks/app/projects/page-7b6c6e010183e070.js +0 -1
  325. /package/.next/standalone/.next/static/{BTzAhaVl8-xEC5Te-d7Ns → cR6E_4o8_rHXujVNesWiZ}/_buildManifest.js +0 -0
  326. /package/.next/standalone/.next/static/{BTzAhaVl8-xEC5Te-d7Ns → cR6E_4o8_rHXujVNesWiZ}/_ssgManifest.js +0 -0
  327. /package/.next/static/{BTzAhaVl8-xEC5Te-d7Ns → cR6E_4o8_rHXujVNesWiZ}/_buildManifest.js +0 -0
  328. /package/.next/static/{BTzAhaVl8-xEC5Te-d7Ns → cR6E_4o8_rHXujVNesWiZ}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- 2026-06-04T14:34:07.513Z
1
+ 2026-06-04T16:49:01.259Z
2
2
  {
3
3
  "moved": 0,
4
4
  "rewritten": 0,
@@ -1 +1 @@
1
- 2026-06-04T14:34:07.511Z
1
+ 2026-06-04T16:49:01.257Z
Binary file
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "madarx",
3
- "version": "2.12.1",
3
+ "version": "2.13.0",
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",
@@ -44,6 +44,9 @@
44
44
  "prepublishOnly": "npm run build",
45
45
  "build": "NODE_OPTIONS=--no-warnings next build",
46
46
  "postbuild": "node --no-warnings scripts/postbuild-standalone.mjs",
47
+ "postinstall": "node --no-warnings scripts/postinstall-splash.mjs",
48
+ "splash": "MADARX_FORCE_SPLASH=1 FORCE_COLOR=1 node --no-warnings scripts/postinstall-splash.mjs",
49
+ "banner": "FORCE_COLOR=1 node --no-warnings scripts/preview-banner.mjs",
47
50
  "start": "next start -p 8787 -H 127.0.0.1",
48
51
  "test": "node --no-warnings --test tests/*.test.js",
49
52
  "daemon": "node --no-warnings --env-file-if-exists=.env.local scripts/cron-daemon.mjs",
@@ -9,3 +9,27 @@ Run safe daily operations checks for madarX OS, inspect local workspace state, s
9
9
  - Save every output as a local artifact under your project's artifacts folder (workspace/projects/<slug>/artifacts/).
10
10
  - Hand off any external send, post, deployment, or destructive command to the main agent for approval.
11
11
  - After each run, update heartbeat.json with status, summary, and next-run plan.
12
+
13
+ ## Default skills
14
+
15
+ You ship with these ready-to-use business skills. Reach for them by intent;
16
+ each is backed by your enabled tools and stays within the usual approval gates.
17
+
18
+ ### Research
19
+ - **Market Research** (`/research`) — Research any market, company, or topic across the web and deliver a cited, structured brief. _Tools: web_search, web_fetch, file_write._
20
+ - **Competitor Watch** (`/watch`) — Track competitor pricing, features, and news on a schedule and alert you when something changes. _Tools: web_fetch, web_extract, email_send._
21
+
22
+ ### Comms
23
+ - **Inbox Triage** (`/inbox`) — Summarize, prioritize, and draft replies across your inbox so you act on what matters first. _Tools: gmail_messages_list, gmail_thread_read, email_send._
24
+ - **Meeting Scheduler** (`/schedule-meeting`) — Find times, schedule meetings, and send invites from your calendar and email. _Tools: calendar_events_list, calendar_event_read, email_send._
25
+
26
+ ### Documents
27
+ - **Document Extraction** (`/extract`) — Pull structured data and key facts from PDFs, documents, and audio into clean, usable output. _Tools: file_read, transcribe_audio, file_write._
28
+ - **Report Builder** (`/report`) — Turn raw data and notes into a polished, formatted report or one-pager ready to share. _Tools: file_read, file_write._
29
+
30
+ ### Data
31
+ - **Database Q&A** (`/ask-data`) — Ask questions of your database in plain English and get answers, tables, and charts. _Tools: supabase_rest_select, supabase_sql._
32
+ - **Spreadsheet Analysis** (`/analyze-sheet`) — Clean, analyze, and summarize spreadsheets and CSVs — pivots, trends, and outliers. _Tools: file_read, file_write._
33
+
34
+ ### Web
35
+ - **Web Automation** (`/automate-web`) — Fill forms, extract data, and run repetitive flows in a real browser, end to end. _Tools: browser_open, browser_act, browser_extract._
@@ -9,3 +9,27 @@ Authors reusable capabilities for the marketplace — declarative skills, compos
9
9
  - Save every output as a local artifact under your project's artifacts folder (workspace/projects/<slug>/artifacts/).
10
10
  - Hand off any external send, post, deployment, or destructive command to the main agent for approval.
11
11
  - After each run, update heartbeat.json with status, summary, and next-run plan.
12
+
13
+ ## Default skills
14
+
15
+ You ship with these ready-to-use business skills. Reach for them by intent;
16
+ each is backed by your enabled tools and stays within the usual approval gates.
17
+
18
+ ### Research
19
+ - **Market Research** (`/research`) — Research any market, company, or topic across the web and deliver a cited, structured brief. _Tools: web_search, web_fetch, file_write._
20
+ - **Competitor Watch** (`/watch`) — Track competitor pricing, features, and news on a schedule and alert you when something changes. _Tools: web_fetch, web_extract, email_send._
21
+
22
+ ### Comms
23
+ - **Inbox Triage** (`/inbox`) — Summarize, prioritize, and draft replies across your inbox so you act on what matters first. _Tools: gmail_messages_list, gmail_thread_read, email_send._
24
+ - **Meeting Scheduler** (`/schedule-meeting`) — Find times, schedule meetings, and send invites from your calendar and email. _Tools: calendar_events_list, calendar_event_read, email_send._
25
+
26
+ ### Documents
27
+ - **Document Extraction** (`/extract`) — Pull structured data and key facts from PDFs, documents, and audio into clean, usable output. _Tools: file_read, transcribe_audio, file_write._
28
+ - **Report Builder** (`/report`) — Turn raw data and notes into a polished, formatted report or one-pager ready to share. _Tools: file_read, file_write._
29
+
30
+ ### Data
31
+ - **Database Q&A** (`/ask-data`) — Ask questions of your database in plain English and get answers, tables, and charts. _Tools: supabase_rest_select, supabase_sql._
32
+ - **Spreadsheet Analysis** (`/analyze-sheet`) — Clean, analyze, and summarize spreadsheets and CSVs — pivots, trends, and outliers. _Tools: file_read, file_write._
33
+
34
+ ### Web
35
+ - **Web Automation** (`/automate-web`) — Fill forms, extract data, and run repetitive flows in a real browser, end to end. _Tools: browser_open, browser_act, browser_extract._
@@ -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(12115),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(64250);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:j,...f}=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})(f)&&{"aria-hidden":"true"},...f},[...j.map(e=>{let[a,t]=e;return(0,s.createElement)(a,t)}),...Array.isArray(p)?p:[p]])})},8707:(e,a,t)=>{"use strict";t.d(a,{default:()=>m});var s=t(95155),n=t(12115),l=t(47650),r=t(85649),o=t(30926);let c=(0,o.createServerReference)("40ab5a4206ede782a1564bd15ede8850606ae1e110",o.callServer,void 0,o.findSourceMapURL,"createProjectAction");var i=t(59097);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"),[j,f]=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:j,onChange:f}):(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,{})]})]})})]})}},10677:(e,a,t)=>{"use strict";t.d(a,{default:()=>l});var s=t(95155),n=t(12115);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))]})})}},13185:(e,a,t)=>{"use strict";t.d(a,{A:()=>o});var s=t(12115),n=t(64250);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}},16111:(e,a,t)=>{"use strict";t.d(a,{default:()=>d});var s=t(95155),n=t(12115),l=t(47650),r=t(85649),o=t(30926);let c=(0,o.createServerReference)("4042d31a1eb062b91673d5a505d5b45e67f8e7aaf3",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})]})]})})]})}},30926:(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(41209),n=t(85153),l=t(77197)},34788:(e,a,t)=>{"use strict";t.d(a,{A:()=>s});let s=(0,t(13185).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},59097:(e,a,t)=>{"use strict";t.d(a,{A:()=>l});var s=t(95155),n=t(12115);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,j]=n.useState(""),[f,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),j(""),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"===f,children:"pick"===f?"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=>j(e.target.value),spellCheck:!1,autoComplete:"off"}),(0,s.jsx)("button",{type:"button",className:"admin-button",onClick:b,disabled:"create"===f,children:"create"===f?"Creating…":"Create"})]})]}):null,c?(0,s.jsx)("p",{className:"agents-modal-feedback ".concat(c.kind),role:"status","aria-live":"polite",children:c.message}):null]})}},64250:(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()}},79350:(e,a,t)=>{"use strict";t.d(a,{default:()=>m});var s=t(95155),n=t(12115),l=t(47650),r=t(85649),o=t(30926);let c=(0,o.createServerReference)("408009ab2e25b2caddc8395de45563df06bae39d83",o.callServer,void 0,o.findSourceMapURL,"updateProjectAction");var i=t(59097);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),[j,f]=n.useState("keep"),[x,g]=n.useState(m||""),v=n.useRef(null);return n.useEffect(()=>{h&&(f("keep"),g(m||""))},[h,m]),n.useEffect(()=>{var e;"custom"===j&&(null==(e=v.current)||e.focus())},[j]),(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"===j?"on":""),children:[(0,s.jsx)("input",{type:"radio",name:"folder_mode",value:"keep",checked:"keep"===j,onChange:()=>f("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"===j?"on":""),children:[(0,s.jsx)("input",{type:"radio",name:"folder_mode",value:"custom",checked:"custom"===j,onChange:()=>f("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"===j?(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,{})]})]})})]})}},85649:(e,a,t)=>{"use strict";t.d(a,{A:()=>r});var s=t(95155),n=t(12115),l=t(34788);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})}},99168:(e,a,t)=>{Promise.resolve().then(t.bind(t,10677)),Promise.resolve().then(t.bind(t,16111)),Promise.resolve().then(t.bind(t,79350)),Promise.resolve().then(t.bind(t,8707)),Promise.resolve().then(t.t.bind(t,52619,23))}},e=>{e.O(0,[2619,8441,1255,7358],()=>e(e.s=99168)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var c=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],d=!0,u=0;u<o.length;u++)(!1&a||c>=a)&&Object.keys(r.O).every(e=>r.O[e](o[u]))?o.splice(u--,1):(d=!1,a<c&&(c=a));if(d){e.splice(i--,1);var s=n();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,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var c=2&n&&o;"object"==typeof c&&!~e.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),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-5b75c7bddf7ca30a.js":4119===e?"static/chunks/4119-3b6adff3c7187ef3.js":930===e?"static/chunks/930-721369985da388ce.js":"static/chunks/"+(5730===e?"44530001":e)+"."+({840:"e6f27edfb8124775",1517:"ebf6fe1a9c310c88",2713:"ffa893e49f7e4183",3168:"ed91d2d25b4aca3f",4797:"c676c6ac0f39449c",5730:"a9ce8b2fb3979725",5938:"9d4468131146b81c",7130:"08b2adb325a87ad8",8217:"0beb0a316c7ad5d8",9863:"cb7415f4a67d7f45",9867:"f985c0e7589f40cf"})[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,n,a,i)=>{if(e[o])return void e[o].push(n);if(void 0!==a)for(var c,d,u=document.getElementsByTagName("script"),s=0;s<u.length;s++){var f=u[s];if(f.getAttribute("src")==o||f.getAttribute("data-webpack")==t+a){c=f;break}}c||(d=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,r.nc&&c.setAttribute("nonce",r.nc),c.setAttribute("data-webpack",t+a),c.src=r.tu(o)),e[o]=[n];var l=(t,r)=>{c.onerror=c.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],c.parentNode&&c.parentNode.removeChild(c),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),d&&document.head.appendChild(c)}})(),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 n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(17(41|76)|3045|8068|8422)$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),c=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;c.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",c.name="ChunkLoadError",c.type=a,c.request=i,n[1](c)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,c,d]=o,u=0;if(i.some(t=>0!==e[t])){for(n in c)r.o(c,n)&&(r.m[n]=c[n]);if(d)var s=d(r)}for(t&&t(o);u<i.length;u++)a=i[u],r.o(e,a)&&e[a]&&e[a][0](),e[a]=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 n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var c=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],d=!0,u=0;u<o.length;u++)(!1&a||c>=a)&&Object.keys(r.O).every(e=>r.O[e](o[u]))?o.splice(u--,1):(d=!1,a<c&&(c=a));if(d){e.splice(i--,1);var s=n();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,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var c=2&n&&o;"object"==typeof c&&!~e.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),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-5b75c7bddf7ca30a.js":4119===e?"static/chunks/4119-3b6adff3c7187ef3.js":930===e?"static/chunks/930-721369985da388ce.js":"static/chunks/"+(5730===e?"44530001":e)+"."+({840:"e6f27edfb8124775",1517:"ebf6fe1a9c310c88",2713:"ffa893e49f7e4183",3168:"ed91d2d25b4aca3f",4797:"c676c6ac0f39449c",5730:"a9ce8b2fb3979725",5938:"9d4468131146b81c",7130:"08b2adb325a87ad8",8217:"0beb0a316c7ad5d8",9863:"cb7415f4a67d7f45",9867:"f985c0e7589f40cf"})[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,n,a,i)=>{if(e[o])return void e[o].push(n);if(void 0!==a)for(var c,d,u=document.getElementsByTagName("script"),s=0;s<u.length;s++){var f=u[s];if(f.getAttribute("src")==o||f.getAttribute("data-webpack")==t+a){c=f;break}}c||(d=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,r.nc&&c.setAttribute("nonce",r.nc),c.setAttribute("data-webpack",t+a),c.src=r.tu(o)),e[o]=[n];var l=(t,r)=>{c.onerror=c.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],c.parentNode&&c.parentNode.removeChild(c),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),d&&document.head.appendChild(c)}})(),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 n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(17(41|76)|3045|8068|8422)$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),c=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;c.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",c.name="ChunkLoadError",c.type=a,c.request=i,n[1](c)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,c,d]=o,u=0;if(i.some(t=>0!==e[t])){for(n in c)r.o(c,n)&&(r.m[n]=c[n]);if(d)var s=d(r)}for(t&&t(o);u<i.length;u++)a=i[u],r.o(e,a)&&e[a]&&e[a][0](),e[a]=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})();
package/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to Madarx OS. Newest first.
4
4
 
5
+ ## [2.13.0] - 2026-06-04
6
+
7
+ ### Added
8
+
9
+ - **Branded CLI experience.** `npm i -g madarx` now ends on an on-brand install splash (madarX wordmark, animated checks, "Designed in UAE" dateline), and launching `madarx` shows a Hermes-style hero banner: a 3D wordmark, a titled rule, the orbit mark (madar = "orbit"), and a two-column capability catalog. Sovereign-Mono palette, single Mars accent, zero new dependencies (embedded figlet art, pure-ANSI rendering). Honors `NO_COLOR`, non-TTY, and CI; guarded so it never slows or breaks an install. Preview with `npm run splash` / `npm run banner`.
10
+ - **Business-default skill pack.** A fresh agent now ships with nine ready-to-use business skills grouped by what most teams need first — research (market-research, competitor-watch), comms (inbox-triage, meeting-scheduler), documents (document-extraction, report-builder), data (database-q&a, spreadsheet-analysis), and web (web-automation). Each is backed by the default tools and stays within the usual approval gates. They seed as installed in the marketplace and are injected into every default agent's `skills.md`.
11
+
12
+ ### Changed
13
+
14
+ - **Banner features business tools, not internals.** The boot banner highlights the toolsets a business agent actually reaches for (web, email, calendar, files, browser, data, automations, build-tools) with friendly labels; domain/installable packs (mines, travel, …) fold into "more toolsets". The default skills showcase replaces the engineering/design skills (design-shotgun, design-review, qa-only, cso-audit), which remain in the marketplace.
15
+
16
+ ### Migration
17
+
18
+ - Existing installs' default agents (including the Caretaker) have their `skills.md` refreshed with the business-default skill pack on next launch. Idempotent and customization-safe: a user-edited `skills.md` is never overwritten.
19
+
5
20
  ## [2.12.1] - 2026-06-04
6
21
 
7
22
  ### Fixed
package/lib/cli/banner.js CHANGED
@@ -12,16 +12,22 @@
12
12
 
13
13
  // ── palette ────────────────────────────────────────────────────────────────
14
14
  const PALETTE = {
15
- mars: [0xc2, 0x45, 0x2a], // brand primary
15
+ mars: [0xc2, 0x45, 0x2a], // brand primary / THE accent
16
16
  marsHi: [0xde, 0x6a, 0x53], // lighter mars (top of gradient)
17
17
  marsLo: [0x7c, 0x2b, 0x19], // dark mars (bottom of gradient)
18
18
  gold: [0xd4, 0xb7, 0x7f],
19
19
  sand: [0xf6, 0xf3, 0xed],
20
20
  ink: [0x68, 0x70, 0x7b], // "muted" — used for secondary text
21
21
  green: [0x4c, 0xae, 0x6a],
22
+ // ── Sovereign-Mono palette (brand-guidelines v1.3) — used by the splash ──
23
+ onyx: [0x0F, 0x0F, 0x11], // ground / black letter fill
24
+ platinum: [0xE8, 0xE8, 0xE5], // mark / wordmark / "done" ✓
25
+ bone: [0xDC, 0xDC, 0xD8], // body labels
26
+ graphite: [0x4A, 0x4A, 0x4D], // rules, borders, pending ·
27
+ muted: [0x8A, 0x82, 0x78], // datelines, subtitle, secondary
22
28
  };
23
29
 
24
- function colorEnabled() {
30
+ export function colorEnabled() {
25
31
  if (process.env.FORCE_COLOR && process.env.FORCE_COLOR !== '0') return true;
26
32
  if (process.env.NO_COLOR) return false;
27
33
  return Boolean(process.stdout && process.stdout.isTTY);
@@ -29,32 +35,49 @@ function colorEnabled() {
29
35
 
30
36
  const ON = colorEnabled();
31
37
 
32
- function fg([r, g, b], s) {
38
+ export function fg([r, g, b], s) {
33
39
  if (!ON) return s;
34
40
  return `\x1b[38;2;${r};${g};${b}m${s}\x1b[0m`;
35
41
  }
36
- function bold(s) { return ON ? `\x1b[1m${s}\x1b[0m` : s; }
37
- function dim(s) { return ON ? `\x1b[2m${s}\x1b[0m` : s; }
42
+ export function bold(s) { return ON ? `\x1b[1m${s}\x1b[0m` : s; }
43
+ export function dim(s) { return ON ? `\x1b[2m${s}\x1b[0m` : s; }
38
44
 
39
- // ── wordmark ─────────────────────────────────────────────────────────────────
40
- // 5-row block alphabet, just the glyphs we need for "MADARX".
41
- const GLYPHS = {
42
- M: ['█ █', '██ ██', '█ █ █', '█ █', '█ █'],
43
- A: [' ███ ', '█ █', '█████', '█ █', '█ █'],
44
- D: ['████ ', '█ █', '█ █', '█ █', '████ '],
45
- R: ['████ ', '█ █', '████ ', '█ █ ', '█ █'],
46
- X: ['█ █', ' █ █ ', ' █ ', ' █ █ ', '█ █'],
47
- };
45
+ /** Visible (printable) length of a string, ignoring ANSI escape sequences. */
46
+ export function visibleLength(s) {
47
+ // eslint-disable-next-line no-control-regex
48
+ return String(s).replace(/\x1b\[[0-9;]*m/g, '').length;
49
+ }
48
50
 
49
- const ROW_TINT = [PALETTE.marsHi, PALETTE.mars, PALETTE.mars, PALETTE.marsLo, PALETTE.marsLo];
51
+ // ── wordmark ─────────────────────────────────────────────────────────────────
52
+ // Embedded figlet "Standard" font art for "madar" + "X", captured offline so the
53
+ // banner stays dependency-free (no figlet at runtime). "madar" renders in Sand,
54
+ // the "X" in Mars — the single brand accent (the X is a permanent constant, so
55
+ // it never counts against the one-Mars-per-surface rule).
56
+ const FIG_MADAR = [
57
+ ' _ ',
58
+ ' _ __ ___ __ _ __| | __ _ _ __ ',
59
+ " | '_ ` _ \\ / _` |/ _` |/ _` | '__|",
60
+ ' | | | | | | (_| | (_| | (_| | | ',
61
+ ' |_| |_| |_|\\__,_|\\__,_|\\__,_|_| ',
62
+ ' ',
63
+ ];
64
+ const FIG_X = [
65
+ ' __ __',
66
+ ' \\ \\/ /',
67
+ ' \\ / ',
68
+ ' / \\ ',
69
+ ' /_/\\_\\',
70
+ ' ',
71
+ ];
50
72
 
51
- /** The MADARX wordmark as a colored, multi-line string. */
52
- function wordmark() {
53
- const word = 'MADARX'.split('');
73
+ /** The "madarX" wordmark as a colored, multi-line string. */
74
+ export function wordmark() {
75
+ const rows = Math.max(FIG_MADAR.length, FIG_X.length);
54
76
  const lines = [];
55
- for (let row = 0; row < 5; row++) {
56
- const segs = word.map((ch) => GLYPHS[ch][row]).join(' ');
57
- lines.push(fg(ROW_TINT[row], segs));
77
+ for (let i = 0; i < rows; i++) {
78
+ const l = FIG_MADAR[i] ?? '';
79
+ const r = FIG_X[i] ?? '';
80
+ lines.push(fg(PALETTE.platinum, l) + fg(PALETTE.mars, r));
58
81
  }
59
82
  return lines.join('\n');
60
83
  }
@@ -145,4 +168,160 @@ export function renderHeader(title = 'setup', version) {
145
168
  return out.join('\n');
146
169
  }
147
170
 
171
+ // ── hero banner (Hermes-style: 3D wordmark + orbit mark + grouped catalog) ────
172
+
173
+ /**
174
+ * Hero wordmark — identical to the install splash: the lowercase Standard
175
+ * "madar" (FIG_MADAR, Platinum) beside the Standard "X" (FIG_X, Mars).
176
+ * Returns an array of lines so the hero can indent/compose them.
177
+ */
178
+ function heroWordmark() {
179
+ return wordmark().split('\n');
180
+ }
181
+
182
+ // Orbit mark — "madar" (مدار) is Arabic for orbit. Graphite ring, Mars core + bead.
183
+ const ORBIT = [
184
+ ' ╭───────╮ ● ',
185
+ ' ╭─╯ ╰─╮ ',
186
+ '│ ╲ ╱ │',
187
+ '│ ╳ │',
188
+ '│ ╱ ╲ │',
189
+ ' ╰─╮ ╭─╯ ',
190
+ ' ╰───────╯ ',
191
+ ];
192
+ function orbitMark() {
193
+ return ORBIT.map((line) => {
194
+ let out = '';
195
+ for (const ch of line) {
196
+ if (ch === ' ') out += ' ';
197
+ else if (ch === '╳' || ch === '╲' || ch === '╱' || ch === '●') out += fg(PALETTE.mars, ch);
198
+ else out += fg(PALETTE.graphite, ch);
199
+ }
200
+ return out;
201
+ });
202
+ }
203
+
204
+ /** Truncate raw (uncolored) text to a visible width with an ellipsis. */
205
+ function clip(s, width) {
206
+ if (s.length <= width) return s;
207
+ return s.slice(0, Math.max(0, width - 1)) + '…';
208
+ }
209
+
210
+ /**
211
+ * Hermes-style hero banner: a big 3D MADARX wordmark, a titled rule, then a
212
+ * two-column body — orbit mark + runtime meta on the left, a grouped capability
213
+ * catalog (tools by category, then skills) on the right.
214
+ *
215
+ * Dependency-free and DB-free: all inputs are passed in by the caller (the CLI
216
+ * supervisor), so importing this never opens the database.
217
+ *
218
+ * @param {object} info
219
+ * @param {string} info.version
220
+ * @param {string} [info.home] data home path
221
+ * @param {string} [info.url] dashboard URL
222
+ * @param {string} [info.engine] default sub-agent engine
223
+ * @param {string} [info.commit] short git hash (optional)
224
+ * @param {string} [info.session] session id (optional)
225
+ * @param {Array<{category:string,count:number,names:string[]}>} [info.toolCats]
226
+ * @param {number} [info.toolCount]
227
+ * @param {Array<{category:string,count:number,names:string[]}>} [info.skillGroups]
228
+ * @param {number} [info.skillCount]
229
+ * @param {boolean}[info.behind]
230
+ * @param {string} [info.latest]
231
+ * @returns {string}
232
+ */
233
+ export function renderHeroBanner(info = {}) {
234
+ const {
235
+ version = '0.0.0', home, url,
236
+ commit, session, toolCats = [], toolCount, skillGroups = [], skillCount,
237
+ behind = false, latest,
238
+ } = info;
239
+
240
+ const cols = (process.stdout && process.stdout.columns) || 84;
241
+ const out = [''];
242
+
243
+ // 1) 3D wordmark.
244
+ for (const l of heroWordmark()) out.push(' ' + l);
245
+ out.push('');
246
+
247
+ // 2) Titled rule: ── madarX OS v… · date · commit ─────────
248
+ const stamp = new Date().toISOString().slice(0, 10).replace(/-/g, '.');
249
+ const title = `${bold(fg(PALETTE.platinum, 'madar'))}${bold(fg(PALETTE.mars, 'X'))}${bold(fg(PALETTE.platinum, ' OS'))}`
250
+ + ` ${fg(PALETTE.mars, 'v' + version)}`
251
+ + fg(PALETTE.muted, ` · ${stamp}${commit ? ' · ' + commit : ''}`);
252
+ const titleVis = visibleLength(title);
253
+ const railLen = Math.max(3, cols - 4 - titleVis - 3);
254
+ out.push(' ' + fg(PALETTE.graphite, '── ') + title + ' ' + fg(PALETTE.graphite, '─'.repeat(railLen)));
255
+ out.push('');
256
+
257
+ // 3) Two columns. Left: orbit mark + meta. Right: catalog.
258
+ const left = orbitMark();
259
+ const leftMeta = [
260
+ '',
261
+ home ? ' ' + fg(PALETTE.muted, home.replace(process.env.HOME || '~', '~')) : '',
262
+ url ? ' ' + fg(PALETTE.muted, url) : '',
263
+ session ? ' ' + fg(PALETTE.muted, 'session ' + session) : '',
264
+ ].filter(Boolean);
265
+ const leftAll = [...left, ...leftMeta];
266
+ // Left column width = its widest line (orbit block or the longer meta lines
267
+ // like the dashboard URL / session id), so the right column never collides
268
+ // with the address/session under the logo.
269
+ const LW = Math.max(...leftAll.map(visibleLength));
270
+ const GAP = 6; // breathing room between the two columns
271
+
272
+ const right = [];
273
+ const rw = Math.max(28, cols - LW - GAP - 2);
274
+ // One "label: a, b, c…" row, clipped to the right column.
275
+ const groupLine = (label, names) => {
276
+ const body = clip(names.join(', '), rw - label.length - 2);
277
+ return `${fg(PALETTE.bone, label + ':')} ${fg(PALETTE.muted, body)}`;
278
+ };
279
+
280
+ right.push(fg(PALETTE.mars, bold('Available Tools')) + fg(PALETTE.muted, toolCount ? ` ${toolCount}` : ''));
281
+ // Feature the toolsets a business agent actually reaches for, in priority
282
+ // order — not raw count. Domain/installable packs (mines, travel,
283
+ // cli_generator, vercel, …) stay in the registry but fold into "more toolsets".
284
+ const FEATURED_TOOL_CATEGORIES = [
285
+ 'web', 'email', 'calendar', 'local_machine', 'browser',
286
+ 'supabase', 'workflow', 'authoring', 'github', 'voice',
287
+ ];
288
+ // Friendly display labels for the slugs that read like internals.
289
+ const TOOL_LABELS = {
290
+ local_machine: 'files', web: 'web', email: 'email', calendar: 'calendar',
291
+ browser: 'browser', supabase: 'data', workflow: 'automations',
292
+ authoring: 'build-tools', github: 'github', voice: 'voice',
293
+ };
294
+ const byName = new Map(toolCats.map((c) => [c.category, c]));
295
+ const featured = FEATURED_TOOL_CATEGORIES.map((n) => byName.get(n)).filter(Boolean);
296
+ const shownCats = featured.slice(0, 8);
297
+ for (const c of shownCats) right.push(groupLine(TOOL_LABELS[c.category] || c.category, c.names));
298
+ const moreCats = toolCats.length - shownCats.length;
299
+ if (moreCats > 0) right.push(fg(PALETTE.muted, `(and ${moreCats} more toolsets…)`));
300
+
301
+ right.push('');
302
+ right.push(fg(PALETTE.mars, bold('Available Skills')) + fg(PALETTE.muted, skillCount ? ` ${skillCount}` : ''));
303
+ // Business-default skills, grouped by category (research, comms, …).
304
+ for (const g of skillGroups) right.push(groupLine(g.category, g.names));
305
+
306
+ // Zip columns.
307
+ const rows = Math.max(leftAll.length, right.length);
308
+ for (let i = 0; i < rows; i++) {
309
+ const l = leftAll[i] ?? '';
310
+ const r = right[i] ?? '';
311
+ const pad = ' '.repeat(Math.max(0, LW - visibleLength(l)));
312
+ out.push(' ' + (l || '') + pad + ' '.repeat(GAP) + r);
313
+ }
314
+
315
+ // 4) Update status footer + dateline.
316
+ out.push('');
317
+ if (behind && latest) {
318
+ out.push(' ' + fg(PALETTE.mars, '▲') + ' ' + fg(PALETTE.bone, `v${latest} available`) + fg(PALETTE.muted, ' — run ') + fg(PALETTE.mars, 'madarx update'));
319
+ } else {
320
+ out.push(' ' + fg(PALETTE.muted, '● up to date'));
321
+ }
322
+ out.push(' ' + fg(PALETTE.muted, `${stamp} · Designed in UAE · v${version}`));
323
+ out.push('');
324
+ return out.join('\n');
325
+ }
326
+
148
327
  export const _palette = PALETTE;
package/lib/cli/run.js CHANGED
@@ -17,7 +17,8 @@ import fs from 'node:fs';
17
17
  import { spawn } from 'node:child_process';
18
18
  import { applyHomeEnv } from './home.js';
19
19
  import { PKG_ROOT } from './dispatch.js';
20
- import { renderBanner } from './banner.js';
20
+ import { renderBanner, renderHeroBanner } from './banner.js';
21
+ import { readyPanel } from './splash.js';
21
22
  import { readUpdateCheck } from '../update-check.js';
22
23
  import { loadProjectEnv } from '../load-env.js';
23
24
 
@@ -157,25 +158,39 @@ export async function run({ flags = {} } = {}) {
157
158
  // Catalog counts: best-effort dynamic import so a count never blocks or
158
159
  // breaks boot. These modules build static catalogs at eval time and do NOT
159
160
  // open the database, so the supervisor stays DB-free.
160
- let tools, skills;
161
+ let toolCats = [];
162
+ let toolCount;
163
+ let skillGroups = [];
164
+ let skillCount;
161
165
  try {
162
- const [{ MARKETPLACE_TOOL_COUNT }, seeds] = await Promise.all([
166
+ const [{ MARKETPLACE_TOOL_COUNT, listToolCategories }, seeds] = await Promise.all([
163
167
  import('../tools/registry.js'),
164
168
  import('../marketplace-seeds.js'),
165
169
  ]);
166
- tools = MARKETPLACE_TOOL_COUNT;
167
- skills = (seeds.PHASE1_SKILL_SLUGS?.length || 0) + (seeds.OPEN_DESIGN_SKILL_SLUGS?.length || 0);
168
- } catch { /* counts are optional */ }
170
+ toolCount = MARKETPLACE_TOOL_COUNT;
171
+ toolCats = listToolCategories();
172
+ // Showcase the business-default skill pack (research, comms, documents,
173
+ // data, web) grouped by category — what most teams need out of the box.
174
+ skillGroups = seeds.listDefaultSkillGroups ? seeds.listDefaultSkillGroups() : [];
175
+ skillCount = (seeds.DEFAULT_SKILL_SLUGS || []).length;
176
+ } catch { /* catalog is optional — banner still renders without it */ }
169
177
  const version = pkgVersion() || '0.0.0';
170
- console.log(renderBanner({
178
+ const hero = process.env.MADARX_BANNER_LEGACY !== '1';
179
+ const render = hero ? renderHeroBanner : renderBanner;
180
+ console.log(render({
171
181
  version,
172
182
  home: layout.home,
173
183
  url: BASE_URL,
174
- engine: process.env.MADARX_DEFAULT_ENGINE || 'claude-code (default)',
184
+ engine: process.env.MADARX_DEFAULT_ENGINE || 'claude-code',
185
+ commit: process.env.MADARX_COMMIT || undefined,
175
186
  latest: ledger?.latest || null,
176
187
  behind: Boolean(ledger?.latest && ledger.latest !== version && ledger?.behind),
177
- tools,
178
- skills,
188
+ toolCats,
189
+ toolCount,
190
+ skillGroups,
191
+ skillCount,
192
+ // legacy renderBanner still understands these:
193
+ tools: toolCount,
179
194
  }));
180
195
  } else {
181
196
  log(`data home: ${layout.home}`);
@@ -213,7 +228,14 @@ export async function run({ flags = {} } = {}) {
213
228
  // Health gate + browser open run alongside; never block shutdown on them.
214
229
  waitForHealth().then((ok) => {
215
230
  if (stopping) return;
216
- if (ok) { log(`ready → ${BASE_URL}`); openBrowser(BASE_URL, flags); }
231
+ if (ok) {
232
+ if (!flags.quiet && process.env.MADARX_NO_BANNER !== '1') {
233
+ console.log('\n' + readyPanel({ version: pkgVersion() || undefined, url: BASE_URL }) + '\n');
234
+ } else {
235
+ log(`ready → ${BASE_URL}`);
236
+ }
237
+ openBrowser(BASE_URL, flags);
238
+ }
217
239
  else warn(`web tier did not answer on ${BASE_URL} within the timeout — it may still be starting.`);
218
240
  });
219
241
  });