madarx 2.13.0 → 2.15.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 (407) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +544 -551
  3. package/.next/standalone/.next/app-path-routes-manifest.json +76 -77
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/react-loadable-manifest.json +1 -1
  7. package/.next/standalone/.next/routes-manifest.json +0 -6
  8. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  10. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  11. package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/admin/page.js +2 -2
  13. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/agents/[id]/page.js +4 -4
  15. package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/agents/page.js +1 -1
  17. package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/hail/engagements/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/heartbeat/worker/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/orchestrator/upload/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/processes/[id]/route.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/processes/start-and-route/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/processes/start-and-route/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  196. package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/approvals/page.js +2 -2
  216. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/architecture.html +2 -2
  219. package/.next/standalone/.next/server/app/architecture.rsc +2 -2
  220. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/brand.html +1 -1
  224. package/.next/standalone/.next/server/app/brand.rsc +2 -2
  225. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  228. package/.next/standalone/.next/server/app/federated-ai.rsc +2 -2
  229. package/.next/standalone/.next/server/app/hail/[id]/governance/page.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
  232. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/hail/[id]/page.js +1 -1
  235. package/.next/standalone/.next/server/app/hail/[id]/page.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
  238. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/hail/page.js +3 -3
  241. package/.next/standalone/.next/server/app/hail/page.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  245. package/.next/standalone/.next/server/app/index.html +2 -2
  246. package/.next/standalone/.next/server/app/index.rsc +2 -2
  247. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  248. package/.next/standalone/.next/server/app/join.html +1 -1
  249. package/.next/standalone/.next/server/app/join.rsc +2 -2
  250. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/marketplace/page.js +2 -2
  252. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/missions/page.js +1 -1
  257. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  259. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  260. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  261. package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
  262. package/.next/standalone/.next/server/app/org/page.js +1 -1
  263. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  264. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/projects/new/page.js +1 -1
  269. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/projects/new.html +1 -1
  271. package/.next/standalone/.next/server/app/projects/new.rsc +3 -3
  272. package/.next/standalone/.next/server/app/projects/page.js +20 -20
  273. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  274. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  278. package/.next/standalone/.next/server/app/schedules/page.js.nft.json +1 -1
  279. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  285. package/.next/standalone/.next/server/app/settings/brand.rsc +2 -2
  286. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  289. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  290. package/.next/standalone/.next/server/app/settings/onboarding.rsc +2 -2
  291. package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
  292. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  295. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  296. package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/app/settings.html +2 -2
  299. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  300. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  301. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  302. package/.next/standalone/.next/server/app/tasks/[id]/page.js +1 -1
  303. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  304. package/.next/standalone/.next/server/app/tasks/page.js +2 -2
  305. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  307. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  308. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/whatsapp/page.js +1 -1
  310. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  311. package/.next/standalone/.next/server/app/whatsapp.html +1 -1
  312. package/.next/standalone/.next/server/app/whatsapp.rsc +3 -3
  313. package/.next/standalone/.next/server/app/workflows/[caseId]/page.js +1 -1
  314. package/.next/standalone/.next/server/app/workflows/[caseId]/page.js.nft.json +1 -1
  315. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  316. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js +1 -1
  317. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js.nft.json +1 -1
  318. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  319. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  320. package/.next/standalone/.next/server/app/workflows/page.js +1 -1
  321. package/.next/standalone/.next/server/app/workflows/page.js.nft.json +1 -1
  322. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  323. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js +1 -1
  324. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js.nft.json +1 -1
  325. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  326. package/.next/standalone/.next/server/app-paths-manifest.json +76 -77
  327. package/.next/standalone/.next/server/chunks/1699.js +19 -19
  328. package/.next/standalone/.next/server/chunks/51.js +1 -0
  329. package/.next/standalone/.next/server/chunks/5185.js +4 -27
  330. package/.next/standalone/.next/server/chunks/5257.js +1 -1
  331. package/.next/standalone/.next/server/chunks/6355.js +1 -0
  332. package/.next/standalone/.next/server/functions-config-manifest.json +15 -15
  333. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  334. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  335. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  336. package/.next/standalone/.next/server/pages/404.html +1 -1
  337. package/.next/standalone/.next/server/pages/500.html +1 -1
  338. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  339. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  340. package/.next/standalone/.next/static/chunks/4119-cfb6260557a0a3d2.js +1 -0
  341. package/.next/standalone/.next/static/chunks/app/projects/page-f136822590202f9f.js +1 -0
  342. package/.next/standalone/.next/static/chunks/app/workflows/[caseId]/page-9949ff1c223e771d.js +1 -0
  343. package/.next/{static/chunks/app/workflows/page-25cb2c4cb90273a8.js → standalone/.next/static/chunks/app/workflows/page-d0484521369bce4c.js} +1 -1
  344. package/.next/standalone/.next/static/chunks/{webpack-0cfb048137bd7fce.js → webpack-f916d679fe38a701.js} +1 -1
  345. package/.next/standalone/.next/static/css/0bd4c357d4f0c4f2.css +1 -0
  346. package/.next/standalone/.next/static/tMcPS9JR5cRXSe0u5ne95/_buildManifest.js +1 -0
  347. package/.next/standalone/CHANGELOG.md +28 -0
  348. package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
  349. package/.next/standalone/data/.default-project-seeded +1 -1
  350. package/.next/standalone/data/madarx.sqlite +0 -0
  351. package/.next/standalone/data/madarx.sqlite-shm +0 -0
  352. package/.next/standalone/data/madarx.sqlite-wal +0 -0
  353. package/.next/standalone/lib/process/seeds/specs/mine-project-intake.json +12 -4
  354. package/.next/standalone/lib/process/seeds/specs/mine-valuation.json +6 -2
  355. package/.next/standalone/lib/process/stages/policy-dsl-legacy.js +178 -0
  356. package/.next/standalone/lib/process/stages/policy-gate.js +24 -168
  357. package/.next/standalone/package.json +2 -2
  358. package/.next/static/chunks/4119-cfb6260557a0a3d2.js +1 -0
  359. package/.next/static/chunks/app/projects/page-f136822590202f9f.js +1 -0
  360. package/.next/static/chunks/app/workflows/[caseId]/page-9949ff1c223e771d.js +1 -0
  361. package/.next/{standalone/.next/static/chunks/app/workflows/page-25cb2c4cb90273a8.js → static/chunks/app/workflows/page-d0484521369bce4c.js} +1 -1
  362. package/.next/static/chunks/{webpack-0cfb048137bd7fce.js → webpack-f916d679fe38a701.js} +1 -1
  363. package/.next/static/css/0bd4c357d4f0c4f2.css +1 -0
  364. package/.next/static/tMcPS9JR5cRXSe0u5ne95/_buildManifest.js +1 -0
  365. package/CHANGELOG.md +28 -0
  366. package/ai-docs/process-engine.md +33 -1
  367. package/app/api/processes/start-and-route/route.js +5 -3
  368. package/app/components/dashboard/whatsapp-section.jsx +54 -13
  369. package/app/workflows/[caseId]/case-detail-client.jsx +2 -2
  370. package/app/workflows/definition-card.jsx +12 -18
  371. package/app/workflows/new/[caseId]/page.js +8 -8
  372. package/app/workflows/page.js +0 -5
  373. package/app/workflows/share/[caseId]/page.js +0 -1
  374. package/lib/cli/prompt.js +110 -0
  375. package/lib/cli/setup.js +152 -87
  376. package/lib/process/artifacts.js +12 -60
  377. package/lib/process/engine.js +5 -5
  378. package/lib/process/policy-predicates.js +116 -0
  379. package/lib/process/seeds/specs/mine-project-intake.json +12 -4
  380. package/lib/process/seeds/specs/mine-valuation.json +6 -2
  381. package/lib/process/spec-validator.js +46 -1
  382. package/lib/process/stages/policy-dsl-legacy.js +178 -0
  383. package/lib/process/stages/policy-gate.js +24 -168
  384. package/lib/runtime.js +8 -2
  385. package/package.json +2 -2
  386. package/scripts/postbuild-standalone.mjs +9 -0
  387. package/scripts/whatsapp-reset.mjs +15 -0
  388. package/.next/standalone/.next/server/app/workflows/new/page.js +0 -2
  389. package/.next/standalone/.next/server/app/workflows/new/page.js.nft.json +0 -1
  390. package/.next/standalone/.next/server/app/workflows/new/page_client-reference-manifest.js +0 -1
  391. package/.next/standalone/.next/server/chunks/1092.js +0 -1
  392. package/.next/standalone/.next/static/cR6E_4o8_rHXujVNesWiZ/_buildManifest.js +0 -1
  393. package/.next/standalone/.next/static/chunks/4119-3b6adff3c7187ef3.js +0 -1
  394. package/.next/standalone/.next/static/chunks/app/projects/page-2166c214f854766e.js +0 -1
  395. package/.next/standalone/.next/static/chunks/app/workflows/[caseId]/page-423e4c194c7f5bf5.js +0 -1
  396. package/.next/standalone/.next/static/chunks/app/workflows/new/page-1eda41616cbfc4f3.js +0 -1
  397. package/.next/standalone/.next/static/css/0bfed9e12afa1dc1.css +0 -1
  398. package/.next/static/cR6E_4o8_rHXujVNesWiZ/_buildManifest.js +0 -1
  399. package/.next/static/chunks/4119-3b6adff3c7187ef3.js +0 -1
  400. package/.next/static/chunks/app/projects/page-2166c214f854766e.js +0 -1
  401. package/.next/static/chunks/app/workflows/[caseId]/page-423e4c194c7f5bf5.js +0 -1
  402. package/.next/static/chunks/app/workflows/new/page-1eda41616cbfc4f3.js +0 -1
  403. package/.next/static/css/0bfed9e12afa1dc1.css +0 -1
  404. package/app/workflows/new/new-case-flow.jsx +0 -256
  405. package/app/workflows/new/page.js +0 -27
  406. /package/.next/standalone/.next/static/{cR6E_4o8_rHXujVNesWiZ → tMcPS9JR5cRXSe0u5ne95}/_ssgManifest.js +0 -0
  407. /package/.next/static/{cR6E_4o8_rHXujVNesWiZ → tMcPS9JR5cRXSe0u5ne95}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:140,errorRate:1e-4,numBits:2684,numHashes:14,bitArray:[0,1,1,e,e,0,e,r,r,e,r,r,e,r,r,r,e,e,r,r,r,r,e,e,e,e,e,e,r,r,e,e,e,e,e,r,r,r,e,e,r,e,r,e,e,r,r,e,r,r,r,r,e,e,e,r,r,r,e,e,r,e,e,e,r,r,e,r,e,e,e,r,e,e,r,e,e,r,e,e,e,e,e,e,r,e,r,r,r,r,r,r,r,e,e,e,r,r,e,r,r,r,r,r,e,r,e,r,e,r,e,e,e,r,r,r,e,r,r,r,r,e,r,e,e,e,e,r,e,r,r,e,r,e,e,e,e,r,e,e,r,e,e,r,e,e,e,e,r,r,e,e,e,e,r,e,e,r,e,e,e,e,e,r,e,e,r,e,r,e,e,e,r,r,r,e,r,e,e,e,e,r,e,r,r,e,r,r,r,r,e,r,e,r,r,e,r,r,e,r,r,r,r,r,e,r,e,r,r,r,r,e,e,e,e,e,r,e,e,e,e,e,e,e,e,r,e,e,e,r,e,e,e,r,r,r,e,e,r,e,e,e,e,r,e,r,e,e,e,r,e,r,r,e,e,r,r,r,r,r,e,r,r,e,e,e,r,r,e,e,r,r,r,e,r,r,e,e,e,e,e,e,e,r,r,e,r,r,r,e,e,r,r,e,e,e,e,e,r,e,r,e,e,e,e,e,e,e,e,e,r,r,e,e,e,e,e,r,r,e,r,e,r,e,e,r,r,r,e,e,r,e,r,r,r,r,r,e,e,r,e,e,r,e,r,e,r,r,r,r,e,r,e,r,r,r,r,r,e,r,r,r,e,e,r,r,r,e,r,e,r,e,e,r,r,r,r,r,e,e,r,e,r,r,r,e,r,r,r,e,e,e,r,e,r,e,r,e,r,r,r,e,e,e,r,e,r,e,r,e,e,e,e,e,e,r,e,e,e,r,e,r,e,r,r,e,e,r,r,r,r,r,e,e,r,r,r,r,r,e,e,r,r,r,e,r,r,e,r,r,e,e,e,r,e,r,e,e,e,e,e,e,r,e,r,r,e,e,r,r,r,r,r,e,e,e,e,r,r,e,e,e,r,r,r,e,e,e,r,r,e,r,r,r,r,e,r,r,r,r,e,r,r,r,r,e,e,e,e,r,r,e,e,e,e,r,e,e,r,r,e,r,e,e,e,r,e,e,r,e,r,r,r,r,r,e,e,r,r,e,r,e,e,r,e,e,e,r,r,e,r,e,e,e,e,e,e,e,e,r,r,e,r,r,r,e,r,r,r,r,r,r,r,e,r,e,e,r,e,e,e,r,e,r,r,e,e,r,r,e,e,e,e,e,e,r,r,e,e,r,e,r,e,e,r,r,e,r,e,r,r,r,r,r,e,r,e,r,r,r,r,e,e,e,e,e,r,r,r,r,e,r,e,e,e,r,e,e,e,r,e,r,r,e,e,r,e,e,r,r,r,e,e,r,r,e,r,e,r,r,r,r,e,e,r,e,r,e,e,e,r,r,e,r,e,r,e,e,r,r,r,e,r,r,e,e,e,e,e,r,r,e,e,e,r,e,r,e,r,r,r,r,r,e,r,r,r,r,e,r,e,r,r,e,r,e,e,r,r,e,e,r,e,r,r,e,e,r,r,r,r,e,e,e,r,r,r,e,r,r,e,r,r,e,r,r,r,r,r,r,r,r,r,r,e,e,e,e,e,r,e,r,r,r,e,e,r,r,r,e,r,e,r,e,e,r,e,r,e,r,e,r,e,e,r,e,r,r,e,r,e,r,r,r,r,r,e,r,r,r,e,r,e,e,r,r,e,e,r,r,r,e,r,e,e,r,r,e,e,r,e,r,r,r,r,r,e,r,e,e,e,r,r,r,r,r,e,r,e,e,e,r,e,e,r,e,r,e,e,r,r,r,e,r,r,r,r,r,r,e,e,r,e,r,e,e,e,r,e,r,r,e,e,e,e,r,e,r,r,r,e,r,e,e,r,e,e,e,r,r,e,r,r,e,e,e,e,e,e,e,e,r,r,e,e,e,e,e,r,r,r,r,e,r,e,e,r,r,r,e,r,e,r,e,e,e,e,e,e,e,e,e,e,r,r,e,e,r,e,e,e,e,r,r,e,e,e,e,r,r,r,e,e,r,e,e,e,r,e,r,e,r,r,e,r,r,e,e,e,e,r,r,e,r,r,r,e,e,r,e,r,r,r,e,e,r,e,r,e,r,e,e,e,e,r,e,r,r,e,r,r,r,r,e,e,r,e,e,r,r,e,r,e,e,r,r,e,r,e,r,e,e,e,e,r,e,r,r,e,e,r,e,e,e,e,e,e,e,e,r,r,e,r,r,e,r,r,e,r,e,r,r,r,r,e,r,e,r,e,e,r,r,e,r,r,r,r,e,r,e,e,r,e,e,r,r,r,r,e,e,r,e,e,r,r,e,r,e,r,e,r,e,r,e,e,e,e,e,e,e,e,e,e,e,e,e,r,e,e,r,e,e,r,e,e,e,r,r,e,e,r,r,r,e,e,e,e,r,e,e,r,r,r,e,e,r,e,e,e,r,e,e,e,e,e,r,r,e,e,r,e,r,r,e,e,e,e,e,e,r,e,r,e,r,e,e,r,e,e,e,e,r,e,r,r,e,e,r,r,e,e,r,e,r,e,r,e,e,e,r,e,e,r,e,r,e,r,r,e,r,r,e,e,r,r,e,e,r,e,e,e,r,e,r,r,e,r,e,r,r,e,r,r,e,e,r,e,e,e,e,r,e,e,e,e,e,r,r,e,e,e,r,r,r,e,e,e,r,r,e,r,e,r,r,r,e,e,e,r,e,e,e,r,r,r,r,e,r,e,r,r,e,r,r,e,r,e,r,r,r,e,r,r,r,r,r,e,e,r,e,r,e,r,e,e,e,e,e,e,r,r,r,r,e,e,r,r,r,e,r,r,e,e,r,e,e,r,e,e,r,r,r,r,r,r,e,e,r,e,e,e,r,e,r,r,r,r,e,r,r,e,e,r,e,e,e,e,e,e,r,r,r,e,e,e,r,r,e,e,e,r,e,e,e,e,e,r,r,r,r,e,e,e,r,r,e,r,r,e,e,r,r,e,r,e,r,r,e,e,r,r,r,e,e,r,r,r,e,e,e,e,r,e,e,e,e,r,r,r,r,e,r,r,r,e,r,r,e,r,r,r,e,r,e,e,e,r,e,r,e,r,e,r,e,r,r,e,e,r,e,e,r,r,r,e,e,e,e,e,e,r,r,e,r,r,r,r,r,e,r,r,e,r,e,r,e,r,r,e,r,e,e,e,e,r,e,r,r,r,e,r,e,r,r,e,e,e,r,r,r,e,r,e,r,e,e,e,e,e,r,r,r,r,e,e,r,r,r,e,r,r,e,r,r,r,e,r,r,r,r,r,r,r,r,e,e,e,r,r,r,e,e,e,e,e,r,r,e,r,r,r,e,r,r,e,r,e,e,e,e,e,r,e,e,r,e,r,r,e,r,e,r,r,r,r,r,r,e,e,r,r,r,r,r,r,r,e,r,e,e,r,r,e,r,e,e,r,e,r,r,r,e,e,r,e,r,r,r,r,r,e,e,e,e,r,r,r,e,e,e,r,e,r,e,e,r,e,r,e,r,r,r,e,e,r,r,e,e,r,r,e,r,r,e,e,e,e,e,r,e,e,e,e,r,r,e,r,r,e,e,e,r,r,e,r,r,r,e,r,r,r,r,r,e,e,r,e,e,r,e,r,e,r,e,r,e,r,e,e,r,r,r,r,e,r,r,e,e,r,r,e,r,r,e,r,r,r,r,r,e,e,e,r,r,e,e,r,r,e,r,r,e,e,r,r,e,e,r,e,r,r,r,r,e,e,e,r,e,r,e,e,r,r,r,r,e,r,r,e,e,e,r,e,e,e,r,e,e,r,e,e,e,e,e,r,e,r,e,r,e,r,e,r,r,e,e,e,r,e,r,e,r,r,r,e,e,e,e,e,e,r,e,e,r,e,r,e,e,e,r,r,r,e,e,e,r,e,e,r,r,e,e,r,e,r,e,e,e,e,e,r,r,e,e,r,r,e,e,r,e,r,r,e,e,r,r,r,r,e,r,r,e,e,e,e,r,r,e,e,e,e,e,e,r,e,e,e,e,r,e,r,r,r,e,e,e,e,e,r,e,e,e,r,e,r,e,e,r,r,e,e,r,r,r,e,r,e,r,e,e,e,r,r,r,e,e,r,e,r,r,e,e,e,r,e,r,r,r,r,e,e,r,r,e,r,r,r,r,r,e,e,e,e,e,r,e,r,e,e,e,r,r,e,r,e,e,e,r,r,r,e,r,e,e,r,r,r,r,r,e,r,e,r,e,e,r,e,e,e,r,r,r,r,r,r,e,r,e,r,r,e,e,e,e,r,e,e,e,r,e,e,r,e,r,r,e,r,r,r,r,r,e,r,r,e,r,r,e,r,e,r,e,r,e,e,e,e,r,r,e,r,e,r,r,r,e,e,r,r,e,r,e,r,e,e,r,r,e,e,e,e,e,r,e,r,r,r,r,r,r,e,e,r,r,e,e,e,r,r,e,r,e,r,r,r,r,r,e,e,e,r,r,e,e,r,r,e,r,e,e,e,r,r,r,r,r,r,r,r,e,r,r,r,r,r,r,e,e,r,e,r,e,r,e,r,e,e,e,e,r,r,e,r,r,e,e,r,r,e,e,e,r,e,e,e,r,r,e,e,e,r,e,e,r,e,e,e,e,e,r,r,e,r,e,r,r,r,r,r,e,e,r,r,e,e,r,e,r,r,r,r,r,r,r,e,r,e,e,e,e,r,e,e,r,e,r,e,e,e,r,e,e,e,e,r,e,e,r,r,e,r,r,r,e,e,r,e,r,r,e,e,e,e,r,e,e,r,r,r,e,r,e,e,r,r,e,e,r,r,r,e,r,e,e,r,r,e,e,e,e,r,r,e,e,r,e,r,r,e,e,r,e,e,r,e,r,e,r,r,r,e,r,r,e,e,r,e,e,e,r,r,r,r,e,e,e,r,r,e,e,e,e,r,e,r,e,r,e,r,r,r,r,r,e,r,r,r,e,r,r,e,e,r,r,r,e,e,r,e,r,r,r,r,e,e,e,r,e,e,e,r,r,r,e,r,e,r,e,r,r,e,r,e,e,e,e,r,r,r,r,r,r,r,e,e,e,e,e,e,r,r,r,e,r,r,e,e,r,e,e,e,e,e,r,r,r,r,r,e,r,r,r,r,r,r,e,e,e,r,r,e,e,e,r,e,e,r,e,e,r,e,r,e,e,e,e,e,e,e,r,e,e,e,e,r,e,r,e,e,r,r,e,r,r,e,r,r,r,e,e,e,e,e,r,e,r,r,e,e,e,r,e,e,r,e,e,r,r,r,e,e,e,e,e,r,r,e,e,r,r,e,r,e,e,r,r,e,r,r,e,e,e,e,r,e,e,e,r,e,e,r,r,r,r,r,r,e,e,r,e,r,e,r,r,r,e,r,e,e,e,e,e,r,e,r,e,e,r,r,e,r,r,r,r,r,e,e,r,e,r,e,r,e,r,e,e,e,e,r,r,e,e,r,e,e,e,r,e,r,r,e,e,r,r,e,r,r,r,r,r,e,e,e,r,r,r,e,r,r,r,e,r,e,e,e,r,e,r,e,e,e,r,e,r,e,e,e,e,r,e,r,e,r,r,e,e,r,r,r,r,r,r,e,e,e,r,e,r,e,e,e,r,e,e,r,e,e,r,r,e,r,r,e,e,e,e,e,r,r,e,e,r,r,r,e,e,r,e,e,e,e,e,r,r,e,r,e,e,r,r,e,r,e,e,r,e,r,r,e,e,e,e,r,e,r,e,r,e,e,e,e,e,e,r,e,e,r,r,e,e,e,r,r,e,e,e,e,e,e,r,r,e,r,r,r,r,r,r,r,e,e,r,e,r,e,r,r,e,e,e,e,e,e,e,r,r,r,r,e,r,e,e,e,e,e,e,e,e,e,r,r,r,e,r]},__routerFilterDynamic:{numItems:39,errorRate:1e-4,numBits:748,numHashes:14,bitArray:[r,e,r,r,e,e,e,e,r,r,r,e,r,r,e,r,e,r,e,r,e,e,r,e,e,r,e,e,e,e,r,r,e,r,e,r,e,r,e,r,e,e,e,r,r,r,r,r,e,r,r,r,e,e,r,e,e,r,r,r,r,r,e,e,r,r,r,e,e,r,r,e,r,e,e,r,r,e,r,e,e,e,e,e,e,r,e,e,r,r,r,e,e,e,r,e,r,e,r,r,e,r,e,r,e,e,e,r,e,e,e,e,r,r,e,e,r,r,e,r,r,r,r,e,e,r,e,e,e,r,e,e,e,r,r,r,r,r,e,r,r,r,r,e,r,e,e,r,r,e,e,r,e,r,e,r,r,r,r,r,e,r,r,e,r,e,r,r,e,r,r,e,e,e,e,e,r,r,r,e,r,r,e,e,r,r,e,e,e,r,r,e,r,e,e,e,r,r,e,e,r,e,r,r,e,r,e,e,e,e,e,r,r,r,e,r,r,r,e,r,e,e,e,r,e,e,e,e,r,e,r,e,e,r,e,e,r,e,e,r,r,r,r,e,e,r,e,r,r,r,e,e,r,r,r,r,e,e,r,r,e,r,r,r,e,e,e,r,r,e,e,r,e,e,e,e,e,e,e,r,r,e,r,e,r,e,e,r,r,r,r,r,r,r,e,r,r,e,r,r,e,r,e,e,r,e,e,e,e,r,r,e,r,e,e,r,r,r,e,e,e,r,e,e,r,r,e,r,e,r,r,r,r,r,r,e,r,e,e,e,r,r,e,r,e,r,r,e,r,e,r,e,e,e,r,e,e,r,r,r,r,r,r,r,r,e,e,e,e,r,r,e,r,e,e,r,r,e,e,r,e,e,r,e,e,e,e,e,e,e,r,r,e,e,e,r,r,e,e,r,r,e,e,r,r,r,r,r,r,r,r,e,e,r,r,r,e,e,r,r,e,e,e,e,r,r,e,r,r,r,r,r,r,e,r,e,r,e,e,e,e,e,e,r,e,r,r,e,r,r,e,e,r,e,e,r,e,e,r,r,r,r,e,r,r,e,r,r,r,e,e,e,e,r,e,e,e,e,r,r,r,r,r,e,e,e,r,e,e,e,e,r,r,e,r,r,r,e,r,r,e,e,r,r,r,e,e,e,r,r,r,e,r,e,r,r,e,r,e,e,e,e,e,r,r,e,r,r,e,r,e,r,e,r,e,r,e,r,r,r,e,r,e,e,r,r,e,e,r,r,e,e,e,e,r,r,r,e,r,r,e,e,e,e,e,e,e,r,e,r,e,e,r,e,r,e,r,r,e,r,e,e,e,e,e,e,r,r,e,e,r,r,e,e,e,e,e,e,r,e,r,e,e,r,r,r,r,e,r,e,e,e,e,r,r,r,r,e,e,e,r,e,r,r,r,r,e,e,r,e,r,r,r,e,r,e,e,r,e,r,r,e,e,e,r,r,r,r,e,r,r,r,e,r,e,e,r,e,e,r,e,r,r,r,e,r,r,e,e,e,r,e,r,e,e,e,e,r,e,e,e,e,e,e,e,e,r,e,e,r,r,r,r,e,r,e,e,e,r,r,e,r,e,e,r,e,e,e,e,r,e,r,e,e,r,e,e,e,e,e,r,e,e,e,r,e,r,r,e,r,e,e,e,e,r,r,r,e,e,r,e,e,r,e,r,e,r,r]},"/_error":["static/chunks/pages/_error-c970d8b55ace1b48.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  All notable changes to Madarx OS. Newest first.
4
4
 
5
+ ## [2.15.0] - 2026-06-04
6
+
7
+ ### Added
8
+
9
+ - **Guided `madarx setup` wizard.** Setup is now an arrow-key experience (↑/↓ or j/k, Enter, number keys) that decides what shapes the whole install up front: **usage mode** — Personal (local-only) or Team (Supabase shared layer, with credential capture) — then the **main agent model** and the **default sub-agent model**, chosen from the engines actually available on your machine (it probes the Claude Code and Codex CLIs and a running Ollama, and always lists the Anthropic models). It then walks the secrets-vault master key, API keys (masked, and only flags Anthropic as *required* when your selected engine needs it), folder permissions, the WhatsApp toggle, and the auto-update policy. Re-running is safe — every step shows your current value as the default. New zero-dependency `lib/cli/prompt.js` (`select`/`confirm`).
10
+ - The sub-agent default model picked at setup is honored at runtime: `createAgent` now falls back to the `default_agent_engine` / `default_agent_model` config when a caller doesn't specify one.
11
+
12
+ ### Fixed
13
+
14
+ - **WhatsApp could get stuck "logged out" with no way to re-pair.** When WhatsApp unlinked the device server-side (you removed it from Linked Devices, the number got flagged, or its anti-unofficial-client sweep caught a fresh Baileys session), the bridge left the now-invalid credentials on disk and stopped — which silently blocked a new pairing QR (Baileys only offers a QR on an empty session). The Pairing screen sat on "Waiting for QR" forever, and the only recovery control lived in the *paired* branch of the UI, so there was no visible button to reset. The logged-out state now shows a **Reset session** button (with a confirm step) that wipes the dead session and brings up a fresh QR — the same recovery the dashboard already offered after a deliberate disconnect.
15
+ - **`npm run whatsapp:reset` wiped the wrong directory on global installs.** It hardcoded `<cwd>/data/whatsapp/session`, so for a `npm i -g madarx` install (whose data lives under `$MADARX_HOME`, default `~/.madarx`) it deleted a repo-relative path that didn't exist and never touched the real session. It now resolves the session directory from `lib/paths.js`, honoring `MADARX_HOME` / `MADARX_DATA_DIR`, via the new `scripts/whatsapp-reset.mjs`.
16
+
17
+ ## [2.14.0] - 2026-06-04
18
+
19
+ ### Changed
20
+
21
+ - **One intake form, branded by default.** Starting a workflow case now always opens the branded, interactive intake artifact — a self-contained page with real form controls that submits straight to the engine. The old bare React intake form and its route are gone, and the `MADARX_BRANDED_INTAKE` feature flag is removed (branded is no longer optional). The Start button, the Share link, and direct case links all lead to the same single intake surface, so there is no longer a "two forms running side by side" split to reason about. Share links keep working exactly as before. (Workflow simplification Phase 3.)
22
+ - **Policy gates are now JSON, not a custom mini-language.** Workflow `policy_gate` rules move from a hand-written string expression grammar (`intake.x == 'y' && prior_stage('kyc').score < 0.5`) to a declarative JSON predicate tree (`{ "op": "and", "rules": [ { "op": "eq", "path": "intake.x", "value": "y" }, … ] }`). This removes a bespoke tokenizer/parser from a security-sensitive path, makes rules validatable at authoring time, and eliminates string-escaping edge cases. Operators: `and`/`or`/`not` and `eq`/`neq`/`lt`/`lte`/`gt`/`gte`/`in`/`nin`, over `intake.*`, `prior_stage.<slug>.*`, and `context.*` paths. New `lib/process/policy-predicates.js` with a 55-case unit test. The seeded mine workflows are migrated to the new format. (Workflow simplification Phase 4.)
23
+
24
+ ### Deprecated
25
+
26
+ - **Legacy policy-gate string expressions.** The old string DSL still evaluates for one release (isolated in `lib/process/stages/policy-dsl-legacy.js`) so existing definitions keep working, but it is on a removal track. Author new gates as JSON predicates; the spec validator and `ai-docs/process-engine.md` document the canonical shape.
27
+
28
+ ### Notes
29
+
30
+ - `process_definitions.intake_form_schema_json` is intentionally retained — it is the live storage the engine reads to render the intake form. Dropping it is deferred to a future migration that first relocates the schema onto the first stage's config; intake stays backward compatible.
31
+ - Optional Phases 6 (settings-drawer preview endpoint) and 7 (audit-writer unification) are deliberately deferred — see `specs/active/simplification-dev-plan.md` for the reasons (cosmetic-vs-fragility for 6; the canonical writer the plan assumed doesn't exist and the real one is a distinct compliance channel for 7).
32
+
5
33
  ## [2.13.0] - 2026-06-04
6
34
 
7
35
  ### Added
@@ -45,10 +45,42 @@ Implementation: `lib/process/artifacts.js`. All three flow through `lib/runtime.
45
45
  |---|---|---|
46
46
  | `intake_form` | Human submitting the form via UI or `submitIntake` API | Writes `intake_payload` onto the case |
47
47
  | `agent_run` | Agent engine (`runAgentEngine`) with the configured template | Structured JSON output |
48
- | `policy_gate` | Engine — evaluates declarative rules over `intake` + `context` | `{ trace, all_pass }` |
48
+ | `policy_gate` | Engine — evaluates declarative JSON predicate rules over `intake` + `context` | `{ trace, all_pass }` |
49
49
  | `human_approval` | Approval request → `/approvals` UI or API | Approved/denied decision |
50
50
  | `package` | Engine — renders a markdown cover sheet + supporting docs into artifacts | `case_package` artifact id(s) |
51
51
 
52
+ ### `intake_form` — branded interactive artifact (only intake path as of v2.14.0)
53
+
54
+ At `startCase`, the engine renders the first `intake_form` stage as a **branded interactive HTML artifact** (`createIntakeFormArtifact` → `renderIntakeFormHtml`): a self-contained document with real form controls that POSTs to `/api/processes/<id>/stages/<slug>/submit`. The artifact id is stored on `context_json.intake_form_artifact_id`.
55
+
56
+ The Start button on `/workflows` routes through `POST /api/processes/start-and-route`, which creates the case and redirects to `/workflows/new/<case_id>` (the branded intake page) for intake-first definitions, or to `/workflows/<case_id>` for non-intake first stages. Anonymous share links (`/workflows/share/<case_id>?token=…`) render the same artifact with a one-time submit token.
57
+
58
+ The legacy read-only "preview" renderer, the bare-React intake form (`app/workflows/new/page.js` + `new-case-flow.jsx`), and the `MADARX_BRANDED_INTAKE` env flag were all removed in v2.14.0 — there is exactly one intake surface. Artifact write failure is observation-only: engine state stays the source of truth and the case still advances.
59
+
60
+ ### `policy_gate` — JSON predicate rules
61
+
62
+ `config.rules[]` is an array of rules, ALL of which must pass (implicit AND) for the gate to pass. Each rule is a **JSON predicate** (the canonical form):
63
+
64
+ ```json
65
+ {
66
+ "op": "and",
67
+ "rules": [
68
+ { "op": "eq", "path": "intake.country", "value": "US" },
69
+ { "op": "gte", "path": "prior_stage.kyc-risk.risk_score", "value": 0.3 },
70
+ { "op": "in", "path": "intake.type", "value": ["MSA", "SOW", "NDA"] }
71
+ ]
72
+ }
73
+ ```
74
+
75
+ - **Logical ops:** `and` / `or` (with `rules[]`), `not` (with `rule`).
76
+ - **Compare ops:** `eq` / `neq` (loose `==`/`!=`, so `neq null` is the "field must be provided" idiom), `lt` / `lte` / `gt` / `gte` (numeric coercion), `in` / `nin` (array `value`).
77
+ - **Path resolution:** `intake.<field…>`, `prior_stage.<slug>.<field…>`, `context.<field…>`. Missing paths resolve to `undefined`. Max nesting depth 20.
78
+ - An optional `label` on any rule is shown in the gate trace.
79
+
80
+ Evaluator: `lib/process/policy-predicates.js`. Validator: `lib/process/spec-validator.js::validatePredicate` checks predicate shape at authoring time. There is no string parsing — no tokenizer, no escaping bugs.
81
+
82
+ **Legacy string DSL (deprecated, one-release back-compat).** The old string-expression grammar (`intake.x == 'y' && prior_stage('kyc').score < 0.5`) still evaluates via `lib/process/stages/policy-dsl-legacy.js`, routed per-rule by the handler. Seeds, docs, and new authoring use predicate JSON only; the string path is on a removal track and should not be used in new workflows.
83
+
52
84
  Stage handlers live at `lib/process/stages/<kind>.js`. Each exports `executeStage({ case, stage, execution, heartbeat_task_id })` and returns an outcome envelope:
53
85
 
54
86
  ```js
@@ -4,8 +4,8 @@ export const runtime = 'nodejs';
4
4
  export const dynamic = 'force-dynamic';
5
5
 
6
6
  // One-shot create — returns the case id, the intake artifact id (when the
7
- // first stage is intake_form), and the dashboard URL to redirect to. Saves
8
- // the round-trip the bare-React form needed (POST + redirect).
7
+ // first stage is intake_form), and the dashboard URL to redirect to. The case
8
+ // always lands on the branded interactive intake artifact page.
9
9
  //
10
10
  // Body: { definition_slug, project_id, title?, created_by_user_id? }
11
11
  export async function POST(req) {
@@ -21,7 +21,9 @@ export async function POST(req) {
21
21
  });
22
22
  const fresh = getCase(c.id);
23
23
  const intake_artifact_id = fresh?.context?.intake_form_artifact_id || null;
24
- const redirect_url = process.env.MADARX_BRANDED_INTAKE === '1'
24
+ // Intake cases land on the branded interactive intake page; non-intake
25
+ // first stages go straight to the case detail view.
26
+ const redirect_url = fresh?.status === 'intake'
25
27
  ? `/workflows/new/${c.id}`
26
28
  : `/workflows/${c.id}`;
27
29
  return Response.json({
@@ -221,23 +221,64 @@ export default function WhatsAppSection() {
221
221
  <div className="config-secrets-panel" style={{ marginTop: 0 }}>
222
222
  <div className="config-secrets-head">
223
223
  <div>
224
- <span className="config-section-title">Pair device</span>
225
- <p>Open WhatsApp Settings Linked Devices Link a Device, then scan the code.</p>
224
+ <span className="config-section-title">
225
+ {pairingState === 'logged_out' ? 'Session logged out' : 'Pair device'}
226
+ </span>
227
+ <p>
228
+ {pairingState === 'logged_out'
229
+ ? 'WhatsApp unlinked this device server-side, so the stale credentials block a fresh QR. Reset the session to wipe them and generate a new pairing code.'
230
+ : 'Open WhatsApp → Settings → Linked Devices → Link a Device, then scan the code.'}
231
+ </p>
226
232
  </div>
233
+ {pairingState === 'logged_out' && (
234
+ !confirmDisconnect ? (
235
+ <button
236
+ type="button"
237
+ className="secrets-action-btn danger"
238
+ onClick={() => setConfirmDisconnect(true)}
239
+ disabled={disconnectBusy}
240
+ >
241
+ Reset session
242
+ </button>
243
+ ) : (
244
+ <div className="wa-disconnect-confirm">
245
+ <button
246
+ type="button"
247
+ className="secrets-action-btn danger"
248
+ onClick={handleDisconnect}
249
+ disabled={disconnectBusy}
250
+ >
251
+ {disconnectBusy ? 'Resetting…' : 'Confirm reset'}
252
+ </button>
253
+ <button
254
+ type="button"
255
+ className="secrets-action-btn"
256
+ onClick={() => setConfirmDisconnect(false)}
257
+ disabled={disconnectBusy}
258
+ >
259
+ Cancel
260
+ </button>
261
+ </div>
262
+ )
263
+ )}
227
264
  </div>
228
- <div className="whatsapp-pair-row">
229
- {qrDataUrl ? (
230
- <div className="whatsapp-qr-box">
231
- <img src={qrDataUrl} alt="WhatsApp pairing QR code" width={220} height={220} />
265
+ {pairingState === 'logged_out' ? (
266
+ <div className="whatsapp-pair-copy">{dedicatedNumberWarning}</div>
267
+ ) : (
268
+ <div className="whatsapp-pair-row">
269
+ {qrDataUrl ? (
270
+ <div className="whatsapp-qr-box">
271
+ <img src={qrDataUrl} alt="WhatsApp pairing QR code" width={220} height={220} />
272
+ </div>
273
+ ) : (
274
+ <div className="whatsapp-qr-pending">Waiting for QR — make sure the daemon is running.</div>
275
+ )}
276
+ <div className="whatsapp-pair-copy">
277
+ <p>Code rotates roughly every 20 seconds. The dashboard re-fetches automatically. The session is saved at <code>data/whatsapp/session/</code>.</p>
278
+ {dedicatedNumberWarning}
232
279
  </div>
233
- ) : (
234
- <div className="whatsapp-qr-pending">Waiting for QR — make sure the daemon is running.</div>
235
- )}
236
- <div className="whatsapp-pair-copy">
237
- <p>Code rotates roughly every 20 seconds. The dashboard re-fetches automatically. The session is saved at <code>data/whatsapp/session/</code>.</p>
238
- {dedicatedNumberWarning}
239
280
  </div>
240
- </div>
281
+ )}
241
282
  </div>
242
283
  ) : (
243
284
  <div className="config-secrets-panel" style={{ marginTop: 0 }}>
@@ -96,8 +96,8 @@ function IntakeStagePanel({ caseRow, artifacts, latestExec }) {
96
96
  {!caseRow.intake_payload ? (
97
97
  <p>
98
98
  Intake form not submitted yet. Submit via{' '}
99
- <a href={`/workflows/new?definition=${caseRow.definition_slug}`}>the new-case page</a>{' '}
100
- for this definition.
99
+ <a href={`/workflows/new/${caseRow.id}`}>the intake page</a>{' '}
100
+ for this case.
101
101
  </p>
102
102
  ) : null}
103
103
 
@@ -8,10 +8,9 @@ import SettingsDrawer from './settings-drawer.jsx';
8
8
  // Workflows page definition card. Kept visually aligned with Projects and
9
9
  // Marketplace: quiet white card, small tile, minimal metadata, direct actions.
10
10
  //
11
- // Start either (a) calls /api/processes/start-and-route to create the case
12
- // immediately then routes to the branded artifact page (when
13
- // MADARX_BRANDED_INTAKE=1), or (b) falls back to
14
- // /workflows/new?definition=<slug> for the bare React form.
11
+ // Start calls /api/processes/start-and-route to create the case immediately,
12
+ // then routes to the branded interactive intake artifact page (the only intake
13
+ // path as of v2.14.0).
15
14
  //
16
15
  // Configure opens a right-edge drawer (`SettingsDrawer`) for the
17
16
  // per-(definition, project) settings. Share mints + copies a share token
@@ -19,7 +18,6 @@ import SettingsDrawer from './settings-drawer.jsx';
19
18
  export default function DefinitionCard({
20
19
  definition,
21
20
  projects,
22
- brandedIntake,
23
21
  defaultProjectId,
24
22
  usage = 0,
25
23
  }) {
@@ -38,23 +36,19 @@ export default function DefinitionCard({
38
36
  setError(null);
39
37
  setStarting(true);
40
38
  try {
41
- if (brandedIntake) {
42
- const res = await fetch('/api/processes/start-and-route', {
43
- method: 'POST',
44
- headers: { 'content-type': 'application/json' },
45
- body: JSON.stringify({ definition_slug: definition.slug, project_id: initialProjectId }),
46
- });
47
- const json = await res.json();
48
- if (!res.ok) throw new Error(json.error || 'start_failed');
49
- router.push(json.redirect_url || `/workflows/${json.case_id}`);
50
- } else {
51
- router.push(`/workflows/new?definition=${definition.slug}`);
52
- }
39
+ const res = await fetch('/api/processes/start-and-route', {
40
+ method: 'POST',
41
+ headers: { 'content-type': 'application/json' },
42
+ body: JSON.stringify({ definition_slug: definition.slug, project_id: initialProjectId }),
43
+ });
44
+ const json = await res.json();
45
+ if (!res.ok) throw new Error(json.error || 'start_failed');
46
+ router.push(json.redirect_url || `/workflows/${json.case_id}`);
53
47
  } catch (err) {
54
48
  setError(String(err?.message || err));
55
49
  setStarting(false);
56
50
  }
57
- }, [brandedIntake, definition.slug, initialProjectId, router]);
51
+ }, [definition.slug, initialProjectId, router]);
58
52
 
59
53
  const onShare = useCallback(async () => {
60
54
  setShareError(null);
@@ -6,13 +6,13 @@ import { getDefinition } from '../../../../lib/process/definitions.js';
6
6
 
7
7
  export const dynamic = 'force-dynamic';
8
8
 
9
- // Branded intake artifact page. Renders the case's intake-form artifact in
10
- // a sandboxed iframe the artifact ships its own form controls and POSTs
11
- // directly to /api/processes/<id>/stages/<stage>/submit. The host page is
12
- // chrome only.
9
+ // Branded intake artifact page the canonical "start a case" intake surface.
10
+ // Renders the case's intake-form artifact in a sandboxed iframe; the artifact
11
+ // ships its own form controls and POSTs directly to
12
+ // /api/processes/<id>/stages/<stage>/submit. The host page is chrome only.
13
13
  //
14
- // Reached two ways: (a) from /workflows when MADARX_BRANDED_INTAKE=1, or
15
- // (b) by deep link to a known case.
14
+ // Reached from /workflows (Start) via /api/processes/start-and-route, or by
15
+ // deep link to a known case.
16
16
  export default async function BrandedIntakePage({ params }) {
17
17
  const { caseId } = await params;
18
18
  const c = getCase(caseId);
@@ -47,8 +47,8 @@ export default async function BrandedIntakePage({ params }) {
47
47
  ) : (
48
48
  <p className="muted">
49
49
  No intake artifact was generated. Either the first stage is not an intake_form,
50
- or the artifact write failed (engine state is unaffected). Use the standard form at{' '}
51
- <Link href={`/workflows/new?definition=${definition?.slug || ''}`}>/workflows/new</Link>.
50
+ or the artifact write failed (engine state is unaffected).{' '}
51
+ <Link href={`/workflows/${caseId}`}>Open the case ›</Link>
52
52
  </p>
53
53
  )}
54
54
  </div>
@@ -10,10 +10,6 @@ import DefinitionCard from './definition-card.jsx';
10
10
 
11
11
  export const dynamic = 'force-dynamic';
12
12
 
13
- // MADARX_BRANDED_INTAKE=1: Start → /workflows/new/<case_id> (branded
14
- // artifact). Off: Start → /workflows/new?definition=<slug> (bare form).
15
- const BRANDED_INTAKE = process.env.MADARX_BRANDED_INTAKE === '1';
16
-
17
13
  const ACTIVE_STATES = new Set(['intake', 'running', 'awaiting_approval']);
18
14
 
19
15
  function formatRelative(iso) {
@@ -94,7 +90,6 @@ export default function WorkflowsPage() {
94
90
  key={def.id}
95
91
  definition={def}
96
92
  projects={projects}
97
- brandedIntake={BRANDED_INTAKE}
98
93
  defaultProjectId={defaultProjectId}
99
94
  usage={usage.get(def.slug) || 0}
100
95
  />
@@ -56,7 +56,6 @@ export default async function ShareLinkPage({ params, searchParams }) {
56
56
  schema,
57
57
  caseRow: c,
58
58
  settings,
59
- mode: 'interactive',
60
59
  submit_endpoint: `/api/processes/${c.id}/stages/${stage.slug}/submit`,
61
60
  submit_token: token,
62
61
  });
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Interactive terminal prompts for the madarX CLI wizard.
3
+ *
4
+ * Zero dependencies — node builtins + the brand stylers in ./banner.js only.
5
+ * The headline piece is `select()`: an arrow-key menu (↑/↓ or j/k, number keys,
6
+ * Enter to choose) in the Sovereign-Mono palette with a single Mars cursor.
7
+ *
8
+ * Degrades safely: with no TTY it returns the default option without drawing.
9
+ */
10
+
11
+ import { emitKeypressEvents } from 'node:readline';
12
+ import { _palette as P, fg, bold, dim } from './banner.js';
13
+
14
+ const isTTY = () => Boolean(process.stdin.isTTY && process.stdout.isTTY);
15
+ const write = (s) => process.stdout.write(s);
16
+ const hideCursor = () => write('\x1b[?25l');
17
+ const showCursor = () => write('\x1b[?25h');
18
+
19
+ /**
20
+ * Render one menu option line.
21
+ * @param {{label:string, hint?:string, tag?:string}} opt
22
+ * @param {boolean} active
23
+ */
24
+ function optionLine(opt, active) {
25
+ const cursor = active ? fg(P.mars, '→ ') : ' ';
26
+ const label = active ? bold(fg(P.mars, opt.label)) : fg(P.bone, opt.label);
27
+ const tag = opt.tag ? ' ' + fg(opt.tag === 'recommended' ? P.platinum : P.muted, `(${opt.tag})`) : '';
28
+ const hint = opt.hint ? ' ' + dim(fg(P.muted, opt.hint)) : '';
29
+ return ` ${cursor}${label}${tag}${hint}`;
30
+ }
31
+
32
+ /**
33
+ * Arrow-key single-select menu.
34
+ *
35
+ * @param {string} title bold Mars header (e.g. "Select default model")
36
+ * @param {Array<{label:string, value:any, hint?:string, tag?:string}>} options
37
+ * @param {object} [opts]
38
+ * @param {number} [opts.default=0] initially highlighted index
39
+ * @param {string} [opts.help] a dim help line under the title
40
+ * @returns {Promise<any>} the chosen option's `value`
41
+ */
42
+ export function select(title, options, opts = {}) {
43
+ const def = Math.max(0, Math.min(opts.default ?? 0, options.length - 1));
44
+ if (!isTTY() || options.length === 0) {
45
+ return Promise.resolve(options[def]?.value);
46
+ }
47
+
48
+ return new Promise((resolve) => {
49
+ let idx = def;
50
+ const headerLines = [
51
+ fg(P.mars, bold(title)),
52
+ ...(opts.help ? [dim(fg(P.muted, opts.help))] : []),
53
+ '',
54
+ ];
55
+ const total = headerLines.length + options.length + 1; // +1 footer
56
+
57
+ const footer = dim(fg(P.muted, '↑/↓ move · enter select · ⌃C cancel'));
58
+
59
+ const draw = (first) => {
60
+ if (!first) write(`\x1b[${total}A`); // jump to top of the block
61
+ const lines = [
62
+ ...headerLines,
63
+ ...options.map((o, i) => optionLine(o, i === idx)),
64
+ footer,
65
+ ];
66
+ write('\r' + lines.map((l) => '\x1b[2K' + l).join('\n') + '\n');
67
+ };
68
+
69
+ emitKeypressEvents(process.stdin);
70
+ const wasRaw = process.stdin.isRaw;
71
+ process.stdin.setRawMode(true);
72
+ process.stdin.resume();
73
+ hideCursor();
74
+ draw(true);
75
+
76
+ const cleanup = () => {
77
+ process.stdin.removeListener('keypress', onKey);
78
+ process.stdin.setRawMode(wasRaw);
79
+ process.stdin.pause();
80
+ showCursor();
81
+ };
82
+
83
+ const onKey = (str, key = {}) => {
84
+ if (key.name === 'up' || key.name === 'k' || (key.name === 'p' && key.ctrl)) {
85
+ idx = (idx - 1 + options.length) % options.length; draw(false);
86
+ } else if (key.name === 'down' || key.name === 'j' || (key.name === 'n' && key.ctrl)) {
87
+ idx = (idx + 1) % options.length; draw(false);
88
+ } else if (str && /^[1-9]$/.test(str) && Number(str) <= options.length) {
89
+ idx = Number(str) - 1; draw(false);
90
+ } else if (key.name === 'return' || key.name === 'enter') {
91
+ cleanup(); resolve(options[idx].value);
92
+ } else if (key.name === 'escape') {
93
+ cleanup(); resolve(options[def].value);
94
+ } else if (key.ctrl && key.name === 'c') {
95
+ cleanup(); write('\n'); process.exit(130);
96
+ }
97
+ };
98
+
99
+ process.stdin.on('keypress', onKey);
100
+ });
101
+ }
102
+
103
+ /** Yes/No as a two-item arrow menu (returns boolean). */
104
+ export async function confirm(title, { default: dflt = true, help } = {}) {
105
+ const value = await select(title, [
106
+ { label: 'Yes', value: true },
107
+ { label: 'No', value: false },
108
+ ], { default: dflt ? 0 : 1, help });
109
+ return value;
110
+ }