madarx 2.13.0 → 2.14.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 (390) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +552 -559
  3. package/.next/standalone/.next/app-path-routes-manifest.json +79 -80
  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/routes-manifest.json +0 -6
  7. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  9. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  10. package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/admin/page.js +3 -3
  12. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/agents/[id]/page.js +4 -4
  14. package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/agents/page.js +1 -1
  16. package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/hail/engagements/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/heartbeat/worker/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/orchestrator/upload/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/processes/[id]/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/processes/start-and-route/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/processes/start-and-route/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
  196. package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
  208. package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/approvals/page.js +2 -2
  215. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/architecture.html +2 -2
  218. package/.next/standalone/.next/server/app/architecture.rsc +1 -1
  219. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/brand.html +1 -1
  223. package/.next/standalone/.next/server/app/brand.rsc +1 -1
  224. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  227. package/.next/standalone/.next/server/app/federated-ai.rsc +1 -1
  228. package/.next/standalone/.next/server/app/hail/[id]/governance/page.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
  231. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/hail/[id]/page.js +2 -2
  234. package/.next/standalone/.next/server/app/hail/[id]/page.js.nft.json +1 -1
  235. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
  237. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js.nft.json +1 -1
  238. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/hail/page.js +3 -3
  240. package/.next/standalone/.next/server/app/hail/page.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  242. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/index.html +2 -2
  245. package/.next/standalone/.next/server/app/index.rsc +1 -1
  246. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/join.html +1 -1
  248. package/.next/standalone/.next/server/app/join.rsc +1 -1
  249. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/marketplace/page.js +1 -1
  251. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/missions/page.js +1 -1
  256. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  259. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  260. package/.next/standalone/.next/server/app/onboarding.rsc +1 -1
  261. package/.next/standalone/.next/server/app/org/page.js +1 -1
  262. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/projects/new/page.js +1 -1
  268. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  269. package/.next/standalone/.next/server/app/projects/new.html +1 -1
  270. package/.next/standalone/.next/server/app/projects/new.rsc +2 -2
  271. package/.next/standalone/.next/server/app/projects/page.js +11 -11
  272. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  274. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  277. package/.next/standalone/.next/server/app/schedules/page.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  284. package/.next/standalone/.next/server/app/settings/brand.rsc +1 -1
  285. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  286. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  289. package/.next/standalone/.next/server/app/settings/onboarding.rsc +1 -1
  290. package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
  291. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  293. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  295. package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
  296. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/settings.html +2 -2
  298. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  299. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  300. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  301. package/.next/standalone/.next/server/app/tasks/[id]/page.js +1 -1
  302. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  303. package/.next/standalone/.next/server/app/tasks/page.js +2 -2
  304. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  305. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  307. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  308. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/whatsapp.html +1 -1
  310. package/.next/standalone/.next/server/app/whatsapp.rsc +1 -1
  311. package/.next/standalone/.next/server/app/workflows/[caseId]/page.js +1 -1
  312. package/.next/standalone/.next/server/app/workflows/[caseId]/page.js.nft.json +1 -1
  313. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  314. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js +1 -1
  315. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js.nft.json +1 -1
  316. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  317. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  318. package/.next/standalone/.next/server/app/workflows/page.js +1 -1
  319. package/.next/standalone/.next/server/app/workflows/page.js.nft.json +1 -1
  320. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  321. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js +1 -1
  322. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js.nft.json +1 -1
  323. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  324. package/.next/standalone/.next/server/app-paths-manifest.json +79 -80
  325. package/.next/standalone/.next/server/chunks/1699.js +1 -1
  326. package/.next/standalone/.next/server/chunks/5185.js +4 -27
  327. package/.next/standalone/.next/server/chunks/5257.js +1 -1
  328. package/.next/standalone/.next/server/chunks/6355.js +1 -0
  329. package/.next/standalone/.next/server/chunks/{1092.js → 6474.js} +1 -1
  330. package/.next/standalone/.next/server/functions-config-manifest.json +34 -34
  331. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  332. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  333. package/.next/standalone/.next/server/pages/404.html +1 -1
  334. package/.next/standalone/.next/server/pages/500.html +1 -1
  335. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  336. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  337. package/.next/standalone/.next/static/-LlttjOnKZXGqZXDKcj-4/_buildManifest.js +1 -0
  338. package/.next/standalone/.next/static/chunks/app/projects/page-09e5c527e3ba83e2.js +1 -0
  339. package/.next/standalone/.next/static/chunks/app/workflows/[caseId]/page-9949ff1c223e771d.js +1 -0
  340. package/.next/{static/chunks/app/workflows/page-25cb2c4cb90273a8.js → standalone/.next/static/chunks/app/workflows/page-d0484521369bce4c.js} +1 -1
  341. package/.next/standalone/.next/static/chunks/{webpack-0cfb048137bd7fce.js → webpack-86ee88827adb756d.js} +1 -1
  342. package/.next/standalone/CHANGELOG.md +16 -0
  343. package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
  344. package/.next/standalone/data/.default-project-seeded +1 -1
  345. package/.next/standalone/data/madarx.sqlite +0 -0
  346. package/.next/standalone/data/madarx.sqlite-shm +0 -0
  347. package/.next/standalone/data/madarx.sqlite-wal +0 -0
  348. package/.next/standalone/lib/process/seeds/specs/mine-project-intake.json +12 -4
  349. package/.next/standalone/lib/process/seeds/specs/mine-valuation.json +6 -2
  350. package/.next/standalone/lib/process/stages/policy-dsl-legacy.js +178 -0
  351. package/.next/standalone/lib/process/stages/policy-gate.js +24 -168
  352. package/.next/standalone/package.json +1 -1
  353. package/.next/static/-LlttjOnKZXGqZXDKcj-4/_buildManifest.js +1 -0
  354. package/.next/static/chunks/app/projects/page-09e5c527e3ba83e2.js +1 -0
  355. package/.next/static/chunks/app/workflows/[caseId]/page-9949ff1c223e771d.js +1 -0
  356. package/.next/{standalone/.next/static/chunks/app/workflows/page-25cb2c4cb90273a8.js → static/chunks/app/workflows/page-d0484521369bce4c.js} +1 -1
  357. package/.next/static/chunks/{webpack-0cfb048137bd7fce.js → webpack-86ee88827adb756d.js} +1 -1
  358. package/CHANGELOG.md +16 -0
  359. package/ai-docs/process-engine.md +33 -1
  360. package/app/api/processes/start-and-route/route.js +5 -3
  361. package/app/workflows/[caseId]/case-detail-client.jsx +2 -2
  362. package/app/workflows/definition-card.jsx +12 -18
  363. package/app/workflows/new/[caseId]/page.js +8 -8
  364. package/app/workflows/page.js +0 -5
  365. package/app/workflows/share/[caseId]/page.js +0 -1
  366. package/lib/process/artifacts.js +12 -60
  367. package/lib/process/engine.js +5 -5
  368. package/lib/process/policy-predicates.js +116 -0
  369. package/lib/process/seeds/specs/mine-project-intake.json +12 -4
  370. package/lib/process/seeds/specs/mine-valuation.json +6 -2
  371. package/lib/process/spec-validator.js +46 -1
  372. package/lib/process/stages/policy-dsl-legacy.js +178 -0
  373. package/lib/process/stages/policy-gate.js +24 -168
  374. package/package.json +1 -1
  375. package/scripts/postbuild-standalone.mjs +9 -0
  376. package/.next/standalone/.next/server/app/workflows/new/page.js +0 -2
  377. package/.next/standalone/.next/server/app/workflows/new/page.js.nft.json +0 -1
  378. package/.next/standalone/.next/server/app/workflows/new/page_client-reference-manifest.js +0 -1
  379. package/.next/standalone/.next/static/cR6E_4o8_rHXujVNesWiZ/_buildManifest.js +0 -1
  380. package/.next/standalone/.next/static/chunks/app/projects/page-2166c214f854766e.js +0 -1
  381. package/.next/standalone/.next/static/chunks/app/workflows/[caseId]/page-423e4c194c7f5bf5.js +0 -1
  382. package/.next/standalone/.next/static/chunks/app/workflows/new/page-1eda41616cbfc4f3.js +0 -1
  383. package/.next/static/cR6E_4o8_rHXujVNesWiZ/_buildManifest.js +0 -1
  384. package/.next/static/chunks/app/projects/page-2166c214f854766e.js +0 -1
  385. package/.next/static/chunks/app/workflows/[caseId]/page-423e4c194c7f5bf5.js +0 -1
  386. package/.next/static/chunks/app/workflows/new/page-1eda41616cbfc4f3.js +0 -1
  387. package/app/workflows/new/new-case-flow.jsx +0 -256
  388. package/app/workflows/new/page.js +0 -27
  389. /package/.next/standalone/.next/static/{cR6E_4o8_rHXujVNesWiZ → -LlttjOnKZXGqZXDKcj-4}/_ssgManifest.js +0 -0
  390. /package/.next/static/{cR6E_4o8_rHXujVNesWiZ → -LlttjOnKZXGqZXDKcj-4}/_ssgManifest.js +0 -0
@@ -151,7 +151,7 @@ ${c}`)}catch{}return b}let x=[{id:"claude-sonnet-4-6",label:"Sonnet 4.6",engine:
151
151
  WHERE slug=?`).run(g.title,g.description,l,g.risk_level,m,j,g.slug):i.prepare(`INSERT INTO composite_tools
152
152
  (slug, title, description, spec_json, risk_level, input_schema_json, status,
153
153
  created_by_user_id, created_by_agent_id, created_at, updated_at)
154
- VALUES (?, ?, ?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run(g.slug,g.title,g.description,l,g.risk_level,m,b.created_by_user_id||null,b.created_by_agent_id||null,j,j),{slug:g.slug,risk_level:g.risk_level,warnings:d.warnings}}function i(a){let b=(0,e.getDb)();return b.prepare("SELECT slug FROM composite_tools WHERE slug=?").get(a)?(b.prepare("UPDATE composite_tools SET status='archived', updated_at=? WHERE slug=?").run((0,e.nowIso)(),a),{ok:!0,slug:a}):{ok:!1,error:"not_found",slug:a}}function j(a){return(0,e.getDb)().prepare("SELECT * FROM composite_tools WHERE slug=? AND status='active'").get(a)||null}function k(a){let b=j(a);if(!b)return null;try{return JSON.parse(b.spec_json)}catch{return null}}function l(){let a;try{a=(0,e.getDb)().prepare("SELECT * FROM composite_tools WHERE status='active' ORDER BY slug ASC").all()}catch{return[]}return a.map(a=>{let b,{approval_required:c,approval_mode:d}=function(a){let b=f.pE.indexOf(a)>=f.pE.indexOf("medium");return{approval_required:b,approval_mode:b?"approval_required":"auto"}}(a.risk_level);try{b=JSON.parse(a.input_schema_json||"")||{type:"object",properties:{}}}catch{b={type:"object",properties:{}}}return{name:a.slug,title:a.title||a.slug,description:a.description||`Composite tool: ${a.slug}`,category:"composite",risk_level:a.risk_level,approval_required:c,approval_mode:d,required_env:[],enabled:!0,available:!0,missing_env:[],allowlist_required:!1,allowlist_scope_key:null,allowlist_default_allow:!1,input_schema:b,source:{kind:"composite",composite_slug:a.slug}}})}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},5735:(a,b,c)=>{"use strict";c.d(b,{zP:()=>j});let d=new Set(["intake_form","agent_run","policy_gate","human_approval","package"]),e=new Set(["text","email","number","textarea","select","shareholders"]),f=new Set(["low","medium","high","irreversible_external"]),g=/^[a-z][a-z0-9-]{2,63}$/;function h(a,b,c){a.push(`${b}: ${c}`)}function i(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function j(a,b={}){var c;let k,l=[],m=[];try{k=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!k||"undefined"===k)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(k,"utf8")>65536)return{ok:!1,errors:[`spec: serialized length ${Buffer.byteLength(k,"utf8")} bytes exceeds 65536-byte cap`],warnings:[],normalized:null};if(!i(a))return{ok:!1,errors:["spec: must be an object"],warnings:[],normalized:null};a.slug&&"string"==typeof a.slug?g.test(a.slug)||h(l,"slug",`does not match ${g} (lowercase, starts with letter, 3-64 chars, [a-z0-9-])`):h(l,"slug","required (string)"),a.name&&"string"==typeof a.name||h(l,"name","required (string)");let n=a.schema_version??1;if(null==a.schema_version||Number.isInteger(a.schema_version)||h(l,"schema_version","must be an integer"),null!=a.version&&(!Number.isInteger(a.version)||a.version<1)&&h(l,"version","must be a positive integer"),!Array.isArray(a.stages)||0===a.stages.length)return h(l,"stages","required (non-empty array)"),{ok:!1,errors:l,warnings:m,normalized:null};let o=new Set;a.stages.forEach((a,b)=>{let c=`stages[${b}]`;if(!i(a))return void h(l,c,"must be an object");a.slug&&"string"==typeof a.slug?g.test(a.slug)?o.has(a.slug)?h(l,`${c}.slug`,`duplicate stage slug "${a.slug}"`):o.add(a.slug):h(l,`${c}.slug`,`does not match ${g}`):h(l,`${c}.slug`,"required (string)"),a.name&&"string"==typeof a.name||h(l,`${c}.name`,"required (string)"),a.kind&&d.has(a.kind)||h(l,`${c}.kind`,`unknown kind "${a.kind}" (allowed: ${[...d].join(", ")})`)});let p=a.stages[0];if(p&&p.kind&&"intake_form"!==p.kind&&h(l,"stages[0].kind",`first stage must be "intake_form" (got "${p.kind}")`),a.stages.forEach((a,c)=>{if(!a||!d.has(a.kind))return;let g=`stages[${c}]`;if(!i(a.config))return void h(l,`${g}.config`,"must be an object");switch(a.kind){case"intake_form":!function(a,b,c){let d=a?.config?.form_schema;if(!i(d))return h(b,`${c}.config.form_schema`,"required (must be object)");if(!Array.isArray(d.fields)||0===d.fields.length)return h(b,`${c}.config.form_schema.fields`,"must be a non-empty array");let f=new Set;d.fields.forEach((a,d)=>{let g=`${c}.config.form_schema.fields[${d}]`;if(!i(a))return void h(b,g,"must be an object");a.name&&"string"==typeof a.name||h(b,`${g}.name`,"required (string)"),a.label&&"string"==typeof a.label||h(b,`${g}.label`,"required (string)"),a.type&&e.has(a.type)||h(b,`${g}.type`,`unknown type "${a.type}" (allowed: ${[...e].join(", ")})`),"select"!==a.type||Array.isArray(a.options)&&0!==a.options.length||h(b,`${g}.options`,"select requires a non-empty options[] array"),a.name&&(f.has(a.name)&&h(b,`${g}.name`,`duplicate field name "${a.name}"`),f.add(a.name))})}(a,l,g);break;case"agent_run":let j=a.config||{};if(j.agent_template_slug&&"string"==typeof j.agent_template_slug?b.knownAgentTemplates&&!b.knownAgentTemplates.has(j.agent_template_slug)&&h(l,`${g}.config.agent_template_slug`,`unknown template "${j.agent_template_slug}"`):h(l,`${g}.config.agent_template_slug`,"required (string)"),j.prompt&&"string"==typeof j.prompt?j.prompt.length>8e3&&h(l,`${g}.config.prompt`,`exceeds 8000 chars (got ${j.prompt.length})`):h(l,`${g}.config.prompt`,"required (string)"),null!=j.timeout_ms&&(!Number.isInteger(j.timeout_ms)||j.timeout_ms<1e3||j.timeout_ms>6e5)&&h(l,`${g}.config.timeout_ms`,"must be integer 1000..600000"),null!=j.on_outcome)if(i(j.on_outcome))for(let[a,b]of Object.entries(j.on_outcome)){if("string"!=typeof b){h(l,`${g}.config.on_outcome.${a}`,'value must be a string (stage slug or "fail")');continue}"fail"!==b&&o&&!o.has(b)&&h(l,`${g}.config.on_outcome.${a}`,`references non-existent stage "${b}"`)}else h(l,`${g}.config.on_outcome`,"must be an object");break;case"policy_gate":!function(a,b,c){let d=a.config||{};if(!Array.isArray(d.rules)||0===d.rules.length)return h(b,`${c}.config.rules`,"required (non-empty array)");d.rules.forEach((a,d)=>{let e=`${c}.config.rules[${d}]`;"string"==typeof a?a.trim()||h(b,e,"empty rule expression"):i(a)?a.expr&&"string"==typeof a.expr&&a.expr.trim()||h(b,`${e}.expr`,"required (non-empty string)"):h(b,e,"rule must be a string or { expr, label } object")})}(a,l,g);break;case"human_approval":let k=a.config||{};k.action_type&&"string"==typeof k.action_type?k.action_type.startsWith("process.stage.")||h(l,`${g}.config.action_type`,'must start with "process.stage."'):h(l,`${g}.config.action_type`,"required (string)"),k.risk&&f.has(k.risk)||h(l,`${g}.config.risk`,`must be one of ${[...f].join(", ")}`),null!=k.summary_template&&"string"!=typeof k.summary_template&&h(l,`${g}.config.summary_template`,"must be a string");break;case"package":let m=a.config||{};m.title_template&&"string"==typeof m.title_template||h(l,`${g}.config.title_template`,"required (string)"),null!=m.include_stages&&(Array.isArray(m.include_stages)?m.include_stages.forEach((a,b)=>{"string"!=typeof a?h(l,`${g}.config.include_stages[${b}]`,"must be a string"):o.has(a)||h(l,`${g}.config.include_stages[${b}]`,`unknown stage slug "${a}"`)}):h(l,`${g}.config.include_stages`,"must be an array of stage slugs"))}}),a.stages.forEach((a,b)=>{if(!i(a))return;let c=`stages[${b}]`;null==a.on_pass_stage_slug||"fail"===a.on_pass_stage_slug||o.has(a.on_pass_stage_slug)||h(l,`${c}.on_pass_stage_slug`,`references non-existent stage "${a.on_pass_stage_slug}"`),null==a.on_fail_stage_slug||"fail"===a.on_fail_stage_slug||o.has(a.on_fail_stage_slug)||h(l,`${c}.on_fail_stage_slug`,`references non-existent stage "${a.on_fail_stage_slug}"`)}),0===l.length&&function(a){let b=new Map(a.map(a=>[a.slug,a])),c=new Map(a.map(a=>[a.slug,0]));for(let d of a)if(0===c.get(d.slug)&&function a(d){if(!b.has(d))return!1;let e=c.get(d);if(1===e)return!0;if(2===e)return!1;c.set(d,1);let f=b.get(d).on_pass_stage_slug;return!!(f&&"fail"!==f&&a(f))||(c.set(d,2),!1)}(d.slug))return!0;return!1}(a.stages)&&h(l,"stages","routing graph contains a cycle"),0===l.length){let b=new Set;a.stages.forEach(a=>{a.on_pass_stage_slug&&"fail"!==a.on_pass_stage_slug&&b.add(a.on_pass_stage_slug),a.on_fail_stage_slug&&"fail"!==a.on_fail_stage_slug&&b.add(a.on_fail_stage_slug);let c=a?.config?.on_outcome;if(i(c))for(let a of Object.values(c))"string"==typeof a&&"fail"!==a&&b.add(a)}),a.stages.forEach((a,c)=>{0!==c&&(b.has(a.slug)||m.push(`stages[${c}] "${a.slug}": orphan stage (no inbound edges)`))})}return l.length>0?{ok:!1,errors:l,warnings:m,normalized:null}:{ok:!0,errors:[],warnings:m,normalized:{schema_version:n,slug:(c=a).slug,name:c.name,version:c.version||1,description:c.description||null,category:c.category||null,source:c.source||"api",status:c.status||"draft",stages:c.stages.map(a=>({slug:a.slug,name:a.name,kind:a.kind,config:structuredClone(a.config||{}),on_pass_stage_slug:a.on_pass_stage_slug||null,on_fail_stage_slug:a.on_fail_stage_slug||null,required:!1!==a.required}))}}}},7183:(a,b,c)=>{"use strict";c.d(b,{X:()=>e});let d=Object.create(null);for(let a of["00_historic","01_arcgis_data","02_assay_labs","03_cad_files","04_official_database","05_drill_campaign","06_exploration_geos","07_geophysics","08_backup_bd","09_petrography","10_presentations","11_general_pictures","12_safety","13_reports","14_inegi_data","15_sgm_data","16_claims_properties","17_minesight","18_exported_maps","19_survey","20_geotechnical","21_general_files","22_qa_qc","uncategorized"]){let b=a.match(/^(\d{2})_/);b&&(d[b[1]]=a)}function e(a){let b=String(a||"").split(/[/\\]/).filter(Boolean),c=null;for(let a of b){let b=a.match(/^(\d{2})[-_ ]/i);if(!b)continue;let e=b[1];Object.prototype.hasOwnProperty.call(d,e)&&(c=d[e])}return c??"uncategorized"}},7945:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H6:()=>j,WV:()=>l});var e=c(73024),f=c(73136),g=c(76760),h=c(9013),i=a([h]);h=(i.then?(await i)():i)[0];let k=(0,g.dirname)((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/process/seeds/hail-engagement-lifecycle.js")),l="hail-engagement-lifecycle",m=null;function j(){let a=(m||(m=function(){let a=(0,g.join)(k,"specs","hail-engagement-lifecycle.json");return JSON.parse((0,e.readFileSync)(a,"utf8"))}()),m);return(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},8437:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D6:()=>l,ct:()=>n,jT:()=>m,r2:()=>o,t6:()=>p,v:()=>q,zU:()=>i});var e=c(34255),f=c(40563),g=c(9001),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let r=new Set;function i(a){return"function"!=typeof a?()=>{}:(r.add(a),()=>{r.delete(a)})}function j(){try{(0,g.jO)("approvals")}catch{}}function k(a){return a?{...a,payload:function(a,b=null){try{return JSON.parse(a)}catch{return b}}(a.payload,{})}:null}function l({action_type:a,risk:b="medium",summary:c,payload:d={},requested_by:f="system",expires_at:g=null,project_id:h=null}){let i=(0,e.getDb)(),k=(0,e.newId)("approval"),l=(0,e.nowIso)(),n=h||d?.project_id||d?.projectId||null;return i.prepare(`
154
+ VALUES (?, ?, ?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run(g.slug,g.title,g.description,l,g.risk_level,m,b.created_by_user_id||null,b.created_by_agent_id||null,j,j),{slug:g.slug,risk_level:g.risk_level,warnings:d.warnings}}function i(a){let b=(0,e.getDb)();return b.prepare("SELECT slug FROM composite_tools WHERE slug=?").get(a)?(b.prepare("UPDATE composite_tools SET status='archived', updated_at=? WHERE slug=?").run((0,e.nowIso)(),a),{ok:!0,slug:a}):{ok:!1,error:"not_found",slug:a}}function j(a){return(0,e.getDb)().prepare("SELECT * FROM composite_tools WHERE slug=? AND status='active'").get(a)||null}function k(a){let b=j(a);if(!b)return null;try{return JSON.parse(b.spec_json)}catch{return null}}function l(){let a;try{a=(0,e.getDb)().prepare("SELECT * FROM composite_tools WHERE status='active' ORDER BY slug ASC").all()}catch{return[]}return a.map(a=>{let b,{approval_required:c,approval_mode:d}=function(a){let b=f.pE.indexOf(a)>=f.pE.indexOf("medium");return{approval_required:b,approval_mode:b?"approval_required":"auto"}}(a.risk_level);try{b=JSON.parse(a.input_schema_json||"")||{type:"object",properties:{}}}catch{b={type:"object",properties:{}}}return{name:a.slug,title:a.title||a.slug,description:a.description||`Composite tool: ${a.slug}`,category:"composite",risk_level:a.risk_level,approval_required:c,approval_mode:d,required_env:[],enabled:!0,available:!0,missing_env:[],allowlist_required:!1,allowlist_scope_key:null,allowlist_default_allow:!1,input_schema:b,source:{kind:"composite",composite_slug:a.slug}}})}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},5735:(a,b,c)=>{"use strict";c.d(b,{zP:()=>l});let d=new Set(["intake_form","agent_run","policy_gate","human_approval","package"]),e=new Set(["text","email","number","textarea","select","shareholders"]),f=new Set(["low","medium","high","irreversible_external"]),g=/^[a-z][a-z0-9-]{2,63}$/;function h(a,b,c){a.push(`${b}: ${c}`)}function i(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}let j=new Set(["and","or"]),k=new Set(["eq","neq","lt","lte","gt","gte","in","nin"]);function l(a,b={}){var c;let m,n=[],o=[];try{m=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!m||"undefined"===m)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(m,"utf8")>65536)return{ok:!1,errors:[`spec: serialized length ${Buffer.byteLength(m,"utf8")} bytes exceeds 65536-byte cap`],warnings:[],normalized:null};if(!i(a))return{ok:!1,errors:["spec: must be an object"],warnings:[],normalized:null};a.slug&&"string"==typeof a.slug?g.test(a.slug)||h(n,"slug",`does not match ${g} (lowercase, starts with letter, 3-64 chars, [a-z0-9-])`):h(n,"slug","required (string)"),a.name&&"string"==typeof a.name||h(n,"name","required (string)");let p=a.schema_version??1;if(null==a.schema_version||Number.isInteger(a.schema_version)||h(n,"schema_version","must be an integer"),null!=a.version&&(!Number.isInteger(a.version)||a.version<1)&&h(n,"version","must be a positive integer"),!Array.isArray(a.stages)||0===a.stages.length)return h(n,"stages","required (non-empty array)"),{ok:!1,errors:n,warnings:o,normalized:null};let q=new Set;a.stages.forEach((a,b)=>{let c=`stages[${b}]`;if(!i(a))return void h(n,c,"must be an object");a.slug&&"string"==typeof a.slug?g.test(a.slug)?q.has(a.slug)?h(n,`${c}.slug`,`duplicate stage slug "${a.slug}"`):q.add(a.slug):h(n,`${c}.slug`,`does not match ${g}`):h(n,`${c}.slug`,"required (string)"),a.name&&"string"==typeof a.name||h(n,`${c}.name`,"required (string)"),a.kind&&d.has(a.kind)||h(n,`${c}.kind`,`unknown kind "${a.kind}" (allowed: ${[...d].join(", ")})`)});let r=a.stages[0];if(r&&r.kind&&"intake_form"!==r.kind&&h(n,"stages[0].kind",`first stage must be "intake_form" (got "${r.kind}")`),a.stages.forEach((a,c)=>{if(!a||!d.has(a.kind))return;let g=`stages[${c}]`;if(!i(a.config))return void h(n,`${g}.config`,"must be an object");switch(a.kind){case"intake_form":!function(a,b,c){let d=a?.config?.form_schema;if(!i(d))return h(b,`${c}.config.form_schema`,"required (must be object)");if(!Array.isArray(d.fields)||0===d.fields.length)return h(b,`${c}.config.form_schema.fields`,"must be a non-empty array");let f=new Set;d.fields.forEach((a,d)=>{let g=`${c}.config.form_schema.fields[${d}]`;if(!i(a))return void h(b,g,"must be an object");a.name&&"string"==typeof a.name||h(b,`${g}.name`,"required (string)"),a.label&&"string"==typeof a.label||h(b,`${g}.label`,"required (string)"),a.type&&e.has(a.type)||h(b,`${g}.type`,`unknown type "${a.type}" (allowed: ${[...e].join(", ")})`),"select"!==a.type||Array.isArray(a.options)&&0!==a.options.length||h(b,`${g}.options`,"select requires a non-empty options[] array"),a.name&&(f.has(a.name)&&h(b,`${g}.name`,`duplicate field name "${a.name}"`),f.add(a.name))})}(a,n,g);break;case"agent_run":let l=a.config||{};if(l.agent_template_slug&&"string"==typeof l.agent_template_slug?b.knownAgentTemplates&&!b.knownAgentTemplates.has(l.agent_template_slug)&&h(n,`${g}.config.agent_template_slug`,`unknown template "${l.agent_template_slug}"`):h(n,`${g}.config.agent_template_slug`,"required (string)"),l.prompt&&"string"==typeof l.prompt?l.prompt.length>8e3&&h(n,`${g}.config.prompt`,`exceeds 8000 chars (got ${l.prompt.length})`):h(n,`${g}.config.prompt`,"required (string)"),null!=l.timeout_ms&&(!Number.isInteger(l.timeout_ms)||l.timeout_ms<1e3||l.timeout_ms>6e5)&&h(n,`${g}.config.timeout_ms`,"must be integer 1000..600000"),null!=l.on_outcome)if(i(l.on_outcome))for(let[a,b]of Object.entries(l.on_outcome)){if("string"!=typeof b){h(n,`${g}.config.on_outcome.${a}`,'value must be a string (stage slug or "fail")');continue}"fail"!==b&&q&&!q.has(b)&&h(n,`${g}.config.on_outcome.${a}`,`references non-existent stage "${b}"`)}else h(n,`${g}.config.on_outcome`,"must be an object");break;case"policy_gate":!function(a,b,c){let d=a.config||{};if(!Array.isArray(d.rules)||0===d.rules.length)return h(b,`${c}.config.rules`,"required (non-empty array)");d.rules.forEach((a,d)=>{let e=`${c}.config.rules[${d}]`;"string"==typeof a?a.trim()||h(b,e,"empty rule expression"):i(a)&&"string"==typeof a.op?function a(b,c,d,e=0){if(e>20)return void h(c,d,"predicate nesting too deep");if(!i(b))return void h(c,d,"predicate must be an object");let f=b.op;j.has(f)?Array.isArray(b.rules)&&0!==b.rules.length?b.rules.forEach((b,f)=>a(b,c,`${d}.rules[${f}]`,e+1)):h(c,`${d}.rules`,`"${f}" requires a non-empty rules[] array`):"not"===f?i(b.rule)?a(b.rule,c,`${d}.rule`,e+1):h(c,`${d}.rule`,'"not" requires a rule object'):k.has(f)?("string"==typeof b.path&&b.path.trim()||h(c,`${d}.path`,"required (non-empty string)"),"value"in b?"in"!==f&&"nin"!==f||Array.isArray(b.value)||h(c,`${d}.value`,`"${f}" requires an array value`):h(c,`${d}.value`,"required")):h(c,`${d}.op`,`unknown predicate op "${f}"`)}(a,b,e):i(a)?a.expr&&"string"==typeof a.expr&&a.expr.trim()||h(b,`${e}.expr`,"required (non-empty string)"):h(b,e,"rule must be a JSON predicate, a string, or { expr, label }")})}(a,n,g);break;case"human_approval":let m=a.config||{};m.action_type&&"string"==typeof m.action_type?m.action_type.startsWith("process.stage.")||h(n,`${g}.config.action_type`,'must start with "process.stage."'):h(n,`${g}.config.action_type`,"required (string)"),m.risk&&f.has(m.risk)||h(n,`${g}.config.risk`,`must be one of ${[...f].join(", ")}`),null!=m.summary_template&&"string"!=typeof m.summary_template&&h(n,`${g}.config.summary_template`,"must be a string");break;case"package":let o=a.config||{};o.title_template&&"string"==typeof o.title_template||h(n,`${g}.config.title_template`,"required (string)"),null!=o.include_stages&&(Array.isArray(o.include_stages)?o.include_stages.forEach((a,b)=>{"string"!=typeof a?h(n,`${g}.config.include_stages[${b}]`,"must be a string"):q.has(a)||h(n,`${g}.config.include_stages[${b}]`,`unknown stage slug "${a}"`)}):h(n,`${g}.config.include_stages`,"must be an array of stage slugs"))}}),a.stages.forEach((a,b)=>{if(!i(a))return;let c=`stages[${b}]`;null==a.on_pass_stage_slug||"fail"===a.on_pass_stage_slug||q.has(a.on_pass_stage_slug)||h(n,`${c}.on_pass_stage_slug`,`references non-existent stage "${a.on_pass_stage_slug}"`),null==a.on_fail_stage_slug||"fail"===a.on_fail_stage_slug||q.has(a.on_fail_stage_slug)||h(n,`${c}.on_fail_stage_slug`,`references non-existent stage "${a.on_fail_stage_slug}"`)}),0===n.length&&function(a){let b=new Map(a.map(a=>[a.slug,a])),c=new Map(a.map(a=>[a.slug,0]));for(let d of a)if(0===c.get(d.slug)&&function a(d){if(!b.has(d))return!1;let e=c.get(d);if(1===e)return!0;if(2===e)return!1;c.set(d,1);let f=b.get(d).on_pass_stage_slug;return!!(f&&"fail"!==f&&a(f))||(c.set(d,2),!1)}(d.slug))return!0;return!1}(a.stages)&&h(n,"stages","routing graph contains a cycle"),0===n.length){let b=new Set;a.stages.forEach(a=>{a.on_pass_stage_slug&&"fail"!==a.on_pass_stage_slug&&b.add(a.on_pass_stage_slug),a.on_fail_stage_slug&&"fail"!==a.on_fail_stage_slug&&b.add(a.on_fail_stage_slug);let c=a?.config?.on_outcome;if(i(c))for(let a of Object.values(c))"string"==typeof a&&"fail"!==a&&b.add(a)}),a.stages.forEach((a,c)=>{0!==c&&(b.has(a.slug)||o.push(`stages[${c}] "${a.slug}": orphan stage (no inbound edges)`))})}return n.length>0?{ok:!1,errors:n,warnings:o,normalized:null}:{ok:!0,errors:[],warnings:o,normalized:{schema_version:p,slug:(c=a).slug,name:c.name,version:c.version||1,description:c.description||null,category:c.category||null,source:c.source||"api",status:c.status||"draft",stages:c.stages.map(a=>({slug:a.slug,name:a.name,kind:a.kind,config:structuredClone(a.config||{}),on_pass_stage_slug:a.on_pass_stage_slug||null,on_fail_stage_slug:a.on_fail_stage_slug||null,required:!1!==a.required}))}}}},7183:(a,b,c)=>{"use strict";c.d(b,{X:()=>e});let d=Object.create(null);for(let a of["00_historic","01_arcgis_data","02_assay_labs","03_cad_files","04_official_database","05_drill_campaign","06_exploration_geos","07_geophysics","08_backup_bd","09_petrography","10_presentations","11_general_pictures","12_safety","13_reports","14_inegi_data","15_sgm_data","16_claims_properties","17_minesight","18_exported_maps","19_survey","20_geotechnical","21_general_files","22_qa_qc","uncategorized"]){let b=a.match(/^(\d{2})_/);b&&(d[b[1]]=a)}function e(a){let b=String(a||"").split(/[/\\]/).filter(Boolean),c=null;for(let a of b){let b=a.match(/^(\d{2})[-_ ]/i);if(!b)continue;let e=b[1];Object.prototype.hasOwnProperty.call(d,e)&&(c=d[e])}return c??"uncategorized"}},7945:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H6:()=>j,WV:()=>l});var e=c(73024),f=c(73136),g=c(76760),h=c(9013),i=a([h]);h=(i.then?(await i)():i)[0];let k=(0,g.dirname)((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/process/seeds/hail-engagement-lifecycle.js")),l="hail-engagement-lifecycle",m=null;function j(){let a=(m||(m=function(){let a=(0,g.join)(k,"specs","hail-engagement-lifecycle.json");return JSON.parse((0,e.readFileSync)(a,"utf8"))}()),m);return(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},8437:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D6:()=>l,ct:()=>n,jT:()=>m,r2:()=>o,t6:()=>p,v:()=>q,zU:()=>i});var e=c(34255),f=c(40563),g=c(9001),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let r=new Set;function i(a){return"function"!=typeof a?()=>{}:(r.add(a),()=>{r.delete(a)})}function j(){try{(0,g.jO)("approvals")}catch{}}function k(a){return a?{...a,payload:function(a,b=null){try{return JSON.parse(a)}catch{return b}}(a.payload,{})}:null}function l({action_type:a,risk:b="medium",summary:c,payload:d={},requested_by:f="system",expires_at:g=null,project_id:h=null}){let i=(0,e.getDb)(),k=(0,e.newId)("approval"),l=(0,e.nowIso)(),n=h||d?.project_id||d?.projectId||null;return i.prepare(`
155
155
  INSERT INTO approval_requests (id, status, action_type, risk, summary, payload, requested_by, created_at, expires_at, project_id)
156
156
  VALUES (?, 'pending', ?, ?, ?, ?, ?, ?, ?, ?)
157
157
  `).run(k,a,b,c,JSON.stringify(d),f,l,g,n),i.prepare(`
@@ -144,7 +144,7 @@ exports.id=5185,exports.ids=[5185],exports.modules={9940:(a,b,c)=>{"use strict";
144
144
  ${c}
145
145
  </article>
146
146
  </body>
147
- </html>`}function j(a){if(null==a)return"";let b=String(a).toLowerCase();return["pass","ok","auto_pass","clear"].includes(b)?`<span class="pill ok">${h(b)}</span>`:["fail","reject","rejected","hit","denied"].includes(b)?`<span class="pill bad">${h(b)}</span>`:["needs_info","manual_review","review","warning"].includes(b)?`<span class="pill warn">${h(b)}</span>`:`<span class="pill">${h(b)}</span>`}function k(a){try{let b=(0,e.Dg)(a);return b?.artifact_id||null}catch{return null}}function l({definition:a,schema:b,caseRow:c,settings:d=null,mode:e="preview",submit_endpoint:f=null,submit_token:g=null}){if(!a||!c)return null;let j=function({definition:a,schema:b,caseRow:c,settings:d=null,mode:e="preview",submit_endpoint:f=null,submit_token:g=null}){if("interactive"===e)return function({definition:a,schema:b,caseRow:c,settings:d,submit_endpoint:e,submit_token:f}){let g=Array.isArray(b?.fields)?b.fields:[],i=d?.brand||{},j=i.accent_hex||"#c2452a",k=i.sender_name||"Madarx OS",l=i.logo_url||"",m=i.cover_image_url||"",n=i.cover_copy?.title||b?.title||`${a?.name||"Process"} — Intake`,o=i.cover_copy?.subtitle||b?.description||"Submit the details below to start.",p=g.map(a=>`
147
+ </html>`}function j(a){if(null==a)return"";let b=String(a).toLowerCase();return["pass","ok","auto_pass","clear"].includes(b)?`<span class="pill ok">${h(b)}</span>`:["fail","reject","rejected","hit","denied"].includes(b)?`<span class="pill bad">${h(b)}</span>`:["needs_info","manual_review","review","warning"].includes(b)?`<span class="pill warn">${h(b)}</span>`:`<span class="pill">${h(b)}</span>`}function k(a){try{let b=(0,e.Dg)(a);return b?.artifact_id||null}catch{return null}}function l({definition:a,schema:b,caseRow:c,settings:d=null,submit_endpoint:e=null,submit_token:f=null}){if(!a||!c)return null;let g=function({definition:a,schema:b,caseRow:c,settings:d=null,submit_endpoint:e=null,submit_token:f=null}){return function({definition:a,schema:b,caseRow:c,settings:d,submit_endpoint:e,submit_token:f}){let g=Array.isArray(b?.fields)?b.fields:[],i=d?.brand||{},j=i.accent_hex||"#c2452a",k=i.sender_name||"Madarx OS",l=i.logo_url||"",m=i.cover_image_url||"",n=i.cover_copy?.title||b?.title||`${a?.name||"Process"} — Intake`,o=i.cover_copy?.subtitle||b?.description||"Submit the details below to start.",p=g.map(a=>`
148
148
  <div class="bi-field">
149
149
  <label class="bi-label" for="bi-${h(a.name)}">${h(a.label||a.name)}${a.required?' <span class="bi-req">*</span>':""}</label>
150
150
  ${a.help?`<p class="bi-help">${h(a.help)}</p>`:""}
@@ -377,30 +377,7 @@ exports.id=5185,exports.ids=[5185],exports.modules={9940:(a,b,c)=>{"use strict";
377
377
  </div>
378
378
  <script>${w}</script>
379
379
  </body>
380
- </html>`}({definition:a,schema:b,caseRow:c,settings:d,submit_endpoint:f,submit_token:g});let j=(Array.isArray(b?.fields)?b.fields:[]).map(a=>{let b=a.required?'<span class="req"></span>':"",c=a.help?`<p class="field-help">${h(a.help)}</p>`:"",d='<em class="muted">Field will be captured at intake.</em>';return"select"===a.type&&Array.isArray(a.options)?d=`<span class="muted">Choose one of:</span> ${a.options.map(a=>`<span class="pill">${h(a)}</span>`).join(" ")}`:"shareholders"===a.type?d='<span class="muted">Repeatable rows: shareholder name + percentage (must sum to 100).</span>':a.placeholder?d=`<span class="muted">${h(a.placeholder)}</span>`:a.type&&(d=`<span class="muted">Type: ${h(a.type)}</span>`),`
381
- <div class="field">
382
- <span class="field-label">${h(a.label||a.name)}${b}</span>
383
- ${c}
384
- <div class="field-value">${d}</div>
385
- </div>`}).join(""),k=`
386
- <h1>${h(b?.title||`${a?.name||"Process"} — intake`)}</h1>
387
- <div class="meta">
388
- <span><strong>Process:</strong>&nbsp;${h(a?.name||a?.slug||"")}</span>
389
- <span><strong>Case:</strong>&nbsp;${h(c?.title||"")}</span>
390
- <span class="pill">awaiting submission</span>
391
- </div>
392
- ${b?.description?`<p class="muted">${h(b.description)}</p>`:""}
393
- <div class="note">
394
- This artifact is the source-of-record intake page for case <code>${h(c?.id||"")}</code>.
395
- Submit the live form via the workflows dashboard; on submit a companion <em>intake submission</em> artifact
396
- is generated and linked to this case.
397
- </div>
398
- <h2>Fields</h2>
399
- ${j||'<p class="muted">No fields configured.</p>'}
400
- <div class="art-footer">
401
- Generated by Madarx OS process engine \xb7 definition <code>${h(a?.slug||"")}</code>
402
- </div>
403
- `;return i({title:b?.title||`Intake — ${a?.name||""}`,kicker:"Intake form \xb7 awaiting submission",bodyHtml:k})}({definition:a,schema:b,caseRow:c,settings:d,mode:e,submit_endpoint:f,submit_token:g}),l="interactive"===e?" (branded)":"",m=`${a.name||a.slug||"Process"} — intake form${l} — ${c.title||c.id.slice(-8)}`;return k({title:m,kind:"html",content:j,project_id:c.project_id,dedupe_key:`process_intake_form:${c.id}:${e}`})}function m({definition:a,schema:b,caseRow:c,intake:d}){if(!a||!c)return null;let e=function({definition:a,schema:b,caseRow:c,intake:d}){let e=(Array.isArray(b?.fields)?b.fields:[]).map(a=>{let b=d?d[a.name]:void 0;return`
380
+ </html>`}({definition:a,schema:b,caseRow:c,settings:d,submit_endpoint:e,submit_token:f})}({definition:a,schema:b,caseRow:c,settings:d,submit_endpoint:e,submit_token:f}),i=`${a.name||a.slug||"Process"} intake form ${c.title||c.id.slice(-8)}`;return k({title:i,kind:"html",content:g,project_id:c.project_id,dedupe_key:`process_intake_form:${c.id}`})}function m({definition:a,schema:b,caseRow:c,intake:d}){if(!a||!c)return null;let e=function({definition:a,schema:b,caseRow:c,intake:d}){let e=(Array.isArray(b?.fields)?b.fields:[]).map(a=>{let b=d?d[a.name]:void 0;return`
404
381
  <div class="field">
405
382
  <span class="field-label">${h(a.label||a.name)}</span>
406
383
  <div class="field-value">${function(a,b){if(null==b||""===b)return'<em class="muted">— not provided —</em>';if(o.has(a?.name))return`<code>${h((0,f.$)(b))}</code>`;if(a?.type==="shareholders"&&Array.isArray(b)){if(0===b.length)return'<em class="muted">— none —</em>';let a=b.map((a,b)=>`
@@ -470,7 +447,7 @@ exports.id=5185,exports.ids=[5185],exports.modules={9940:(a,b,c)=>{"use strict";
470
447
  ${b?.summary?`<h2>Summary</h2><p>${h(b.summary)}</p>`:""}
471
448
  <h2>Raw output</h2>
472
449
  <pre>${h(JSON.stringify(b,null,2))}</pre>
473
- `}({stage:a,output:b}),i({title:`${a?.name||"Analysis"} — ${c?.proposed_company_name||""}`,kicker:`${a?.kind?.replace("_"," ")||"agent"} \xb7 ${a?.slug||""}`,bodyHtml:e})}({stage:b,output:c,intake:a.intake_payload||{},agentSlug:d}),f=`${b.name||b.slug} — analysis — ${a.title||a.id.slice(-8)}`;return k({title:f,kind:"html",content:e,project_id:a.project_id,dedupe_key:`process_analysis:${a.id}:${b.slug}:${Date.now()}`})}d()}catch(a){d(a)}})},18748:(a,b,c)=>{"use strict";c.d(b,{Jh:()=>g,Xx:()=>d,Zt:()=>e,hW:()=>f});let d={intake:"neutral",running:"info",awaiting_approval:"warning",complete:"success",rejected:"danger",failed:"danger",cancelled:"neutral"},e={intake:"Intake",running:"Running",awaiting_approval:"Awaiting approval",complete:"Complete",rejected:"Rejected",failed:"Failed",cancelled:"Cancelled"},f=new Set(["complete","rejected","failed","cancelled"]),g=new Set(["pass","fail","skipped","cancelled"])},21530:(a,b,c)=>{var d={"./agent-run.js":[24562,2181],"./human-approval.js":[84752,4752],"./intake-form.js":[306,306],"./package.js":[80455,455],"./policy-gate.js":[65257,5257]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c(e))}e.keys=()=>Object.keys(d),e.id=21530,a.exports=e},25185:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Cv:()=>i.Cv,Fj:()=>A,NZ:()=>x,eX:()=>t,fx:()=>y,pX:()=>E,qz:()=>s,wG:()=>G,x0:()=>B,zH:()=>D,zK:()=>r});var e=c(34255),f=c(40563),g=c(9001),h=c(8437),i=c(9013),j=c(9940),k=c(95826),l=c(80002),m=c(73899),n=c(18748),o=a([e,f,g,h,i,j,k,l]);function p(a){return a?{...a,intake_payload:(0,m.oi)(a.intake_payload_json,null),context:(0,m.oi)(a.context_json,{})}:null}function q(a){return a?{...a,artifact_ids:(0,m.oi)(a.artifact_ids_json,[]),output:(0,m.oi)(a.output_json,null)}:null}function r(a){return a?p((0,e.getDb)().prepare("SELECT * FROM process_cases WHERE id = ?").get(a)):null}function s({project_id:a,status:b,definition_slug:c,limit:d=50}={}){let f=(0,e.getDb)(),g=[],h=[];return a&&(g.push("project_id = ?"),h.push(a)),b&&(g.push("status = ?"),h.push(b)),c&&(g.push("definition_slug = ?"),h.push(c)),h.push(Math.max(1,Math.min(200,Number(d)||50))),f.prepare(`
450
+ `}({stage:a,output:b}),i({title:`${a?.name||"Analysis"} — ${c?.proposed_company_name||""}`,kicker:`${a?.kind?.replace("_"," ")||"agent"} \xb7 ${a?.slug||""}`,bodyHtml:e})}({stage:b,output:c,intake:a.intake_payload||{},agentSlug:d}),f=`${b.name||b.slug} — analysis — ${a.title||a.id.slice(-8)}`;return k({title:f,kind:"html",content:e,project_id:a.project_id,dedupe_key:`process_analysis:${a.id}:${b.slug}:${Date.now()}`})}d()}catch(a){d(a)}})},18748:(a,b,c)=>{"use strict";c.d(b,{Jh:()=>g,Xx:()=>d,Zt:()=>e,hW:()=>f});let d={intake:"neutral",running:"info",awaiting_approval:"warning",complete:"success",rejected:"danger",failed:"danger",cancelled:"neutral"},e={intake:"Intake",running:"Running",awaiting_approval:"Awaiting approval",complete:"Complete",rejected:"Rejected",failed:"Failed",cancelled:"Cancelled"},f=new Set(["complete","rejected","failed","cancelled"]),g=new Set(["pass","fail","skipped","cancelled"])},21530:(a,b,c)=>{var d={"./agent-run.js":[24562,2181],"./human-approval.js":[84752,4752],"./intake-form.js":[306,306],"./package.js":[80455,455],"./policy-dsl-legacy.js":[46355,6355],"./policy-gate.js":[65257,5257]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c(e))}e.keys=()=>Object.keys(d),e.id=21530,a.exports=e},25185:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Cv:()=>i.Cv,Fj:()=>A,NZ:()=>x,eX:()=>t,fx:()=>y,pX:()=>E,qz:()=>s,wG:()=>G,x0:()=>B,zH:()=>D,zK:()=>r});var e=c(34255),f=c(40563),g=c(9001),h=c(8437),i=c(9013),j=c(9940),k=c(95826),l=c(80002),m=c(73899),n=c(18748),o=a([e,f,g,h,i,j,k,l]);function p(a){return a?{...a,intake_payload:(0,m.oi)(a.intake_payload_json,null),context:(0,m.oi)(a.context_json,{})}:null}function q(a){return a?{...a,artifact_ids:(0,m.oi)(a.artifact_ids_json,[]),output:(0,m.oi)(a.output_json,null)}:null}function r(a){return a?p((0,e.getDb)().prepare("SELECT * FROM process_cases WHERE id = ?").get(a)):null}function s({project_id:a,status:b,definition_slug:c,limit:d=50}={}){let f=(0,e.getDb)(),g=[],h=[];return a&&(g.push("project_id = ?"),h.push(a)),b&&(g.push("status = ?"),h.push(b)),c&&(g.push("definition_slug = ?"),h.push(c)),h.push(Math.max(1,Math.min(200,Number(d)||50))),f.prepare(`
474
451
  SELECT * FROM process_cases
475
452
  ${g.length?`WHERE ${g.join(" AND ")}`:""}
476
453
  ORDER BY updated_at DESC
@@ -484,7 +461,7 @@ exports.id=5185,exports.ids=[5185],exports.modules={9940:(a,b,c)=>{"use strict";
484
461
  current_stage_id, current_stage_slug, intake_payload_json, context_json,
485
462
  created_by_user_id, created_by_agent_id, created_at, updated_at)
486
463
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
487
- `).run(n,h.id,h.slug,b,p,q,l.id,l.slug,d?JSON.stringify(d):null,JSON.stringify({}),f,g,o,o);let s=(0,k.mt)({definition_id:h.id,project_id:b}),t=(0,k.wD)({settings:s}),u=s?{...s,brand:t}:{brand:t},x={definition_settings_snapshot:u},A=function({definition:a,firstStage:b,caseRow:c,snapshot:d}){if("intake_form"!==b.kind)return null;try{let e=z(a),f="1"===process.env.MADARX_BRANDED_INTAKE;return(0,j.XJ)({definition:a,schema:e,caseRow:c,settings:d,mode:f?"interactive":"preview",submit_endpoint:f?`/api/processes/${c.id}/stages/${b.slug}/submit`:null})}catch{return null}}({definition:h,firstStage:l,caseRow:{id:n,title:p,project_id:b},snapshot:u});if(A&&(x.intake_form_artifact_id=A),Object.keys(x).length>0)try{m.prepare(`
464
+ `).run(n,h.id,h.slug,b,p,q,l.id,l.slug,d?JSON.stringify(d):null,JSON.stringify({}),f,g,o,o);let s=(0,k.mt)({definition_id:h.id,project_id:b}),t=(0,k.wD)({settings:s}),u=s?{...s,brand:t}:{brand:t},x={definition_settings_snapshot:u},A=function({definition:a,firstStage:b,caseRow:c,snapshot:d}){if("intake_form"!==b.kind)return null;try{let e=z(a);return(0,j.XJ)({definition:a,schema:e,caseRow:c,settings:d,submit_endpoint:`/api/processes/${c.id}/stages/${b.slug}/submit`})}catch{return null}}({definition:h,firstStage:l,caseRow:{id:n,title:p,project_id:b},snapshot:u});if(A&&(x.intake_form_artifact_id=A),Object.keys(x).length>0)try{m.prepare(`
488
465
  UPDATE process_cases
489
466
  SET context_json = ?, updated_at = ?
490
467
  WHERE id = ?
@@ -1 +1 @@
1
- "use strict";exports.id=5257,exports.ids=[5257],exports.modules={65257:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{STAGE_KIND:()=>j,evaluateRule:()=>h,executeStage:()=>i});var e=c(8437),f=a([e]);function g(a,b){if(a&&b)return b.split(".").reduce((a,b)=>null==a?a:a[b],a)}function h(a,{intake:b,context:c}){if(!a||"string"!=typeof a)return{result:!0,error:null};try{let d=function(a){let b=[],c=0;for(;c<a.length;){let d=a[c];if(/\s/.test(d)){c++;continue}if("("===d||")"===d||"["===d||"]"===d||","===d){b.push({type:d}),c++;continue}if("&"===d&&"&"===a[c+1]){b.push({type:"&&"}),c+=2;continue}if("|"===d&&"|"===a[c+1]){b.push({type:"||"}),c+=2;continue}if("="===d&&"="===a[c+1]){b.push({type:"op",value:"=="}),c+=2;continue}if("!"===d&&"="===a[c+1]){b.push({type:"op",value:"!="}),c+=2;continue}if("<"===d&&"="===a[c+1]){b.push({type:"op",value:"<="}),c+=2;continue}if(">"===d&&"="===a[c+1]){b.push({type:"op",value:">="}),c+=2;continue}if("<"===d||">"===d){b.push({type:"op",value:d}),c++;continue}if("'"===d||'"'===d){let e=a.indexOf(d,c+1);if(-1===e)throw Error(`policy-gate: unterminated string at ${c}`);b.push({type:"string",value:a.slice(c+1,e)}),c=e+1;continue}if(/[0-9.]/.test(d)){let d=c;for(;d<a.length&&/[0-9.]/.test(a[d]);)d++;b.push({type:"number",value:Number(a.slice(c,d))}),c=d;continue}if(/[A-Za-z_]/.test(d)){let d=c;for(;d<a.length&&/[A-Za-z0-9_.]/.test(a[d]);)d++;let e=a.slice(c,d);if("IN"===e||"in"===e)b.push({type:"IN"});else if("true"===e)b.push({type:"boolean",value:!0});else if("false"===e)b.push({type:"boolean",value:!1});else if("prior_stage"===e&&"("===a[d]){let e=a.indexOf(")",d),f=a.slice(d+1,e).trim().replace(/^['"]|['"]$/g,""),g=e+1;if("."!==a[g])throw Error("policy-gate: expected '.' after prior_stage(...)");let h=g+1;for(;h<a.length&&/[A-Za-z0-9_.]/.test(a[h]);)h++;b.push({type:"ref",kind:"prior_stage",stage:f,path:a.slice(g+1,h)}),c=h;continue}else b.push({type:"ref",kind:"path",path:e});c=d;continue}throw Error(`policy-gate: unexpected character "${d}" at ${c}`)}return b}(a);return{result:!!function(a,b){let c=0;function d(){return a[c]}function e(b){let d=a[c];if(!d||d.type!==b)throw Error(`policy-gate: expected ${b}, got ${d?.type||"EOF"}`);return c++,d}function f(){let a=d();if(!a)throw Error("policy-gate: unexpected end of expression");if("("===a.type){c++;let a=j();return e(")"),a}if("number"===a.type||"string"===a.type||"boolean"===a.type)return c++,a.value;if("ref"===a.type)return c++,"prior_stage"===a.kind?g(b.context?.[a.stage],a.path):a.path.startsWith("intake.")?g(b.intake,a.path.slice(7)):a.path.startsWith("context.")?g(b.context,a.path.slice(8)):g(b,a.path);throw Error(`policy-gate: unexpected token ${a.type}`)}function h(){let a=f(),b=d();if(!b)return!!a;if("op"===b.type){c++;let d=f();switch(b.value){case"==":return a==d;case"!=":return a!=d;case"<":return Number(a)<Number(d);case"<=":return Number(a)<=Number(d);case">":return Number(a)>Number(d);case">=":return Number(a)>=Number(d)}}if("IN"===b.type){c++,e("[");let b=[];for(;d()&&"]"!==d().type;){let a=f();b.push(a),d()&&","===d().type&&c++}return e("]"),b.includes(a)}return!!a}function i(){let a=h();for(;d()&&"&&"===d().type;){c++;let b=h();a=!!a&&!!b}return a}function j(){let a=i();for(;d()&&"||"===d().type;){c++;let b=i();a=!!a||!!b}return a}let k=j();if(c!==a.length)throw Error(`policy-gate: unexpected trailing token at ${c}`);return k}(d,{intake:b,context:c}),error:null}}catch(a){return{result:!1,error:a?.message||String(a)}}}async function i({case:a,stage:b}){let c=b.config||{},d=Array.isArray(c.rules)?c.rules:[],f=a.intake_payload||{},g=a.context||{},i=[],j=!0;for(let a of d){let b="string"==typeof a?a:a?.expr,c="string"==typeof a?a:a?.label||a?.expr,{result:d,error:e}=h(b,{intake:f,context:g});i.push({rule:c,result:d,error:e}),d||(j=!1)}if(!j&&c.on_fail_create_approval){let d=(0,e.D6)({action_type:"process.stage.approve",risk:c.risk||"medium",summary:c.on_fail_create_approval.summary||`Policy gate ${b.slug} requires manual review`,payload:{case_id:a.id,stage_slug:b.slug,trace:i},project_id:a.project_id});return{kind:"pass",output:{trace:i,all_pass:!1,manual_review_approval_id:d.id},approval_required:{approval_request_id:d.id,summary:d.summary}}}return{kind:j?"pass":"fail",output:{trace:i,all_pass:j},error:j?null:"policy_gate_failed"}}e=(f.then?(await f)():f)[0];let j="policy_gate";d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=5257,exports.ids=[5257,6355],exports.modules={46355:(a,b,c)=>{function d(a,b){if(a&&b)return b.split(".").reduce((a,b)=>null==a?a:a[b],a)}function e(a,{intake:b,context:c}){if(!a||"string"!=typeof a)return{result:!0,error:null};try{let e=function(a){let b=[],c=0;for(;c<a.length;){let d=a[c];if(/\s/.test(d)){c++;continue}if("("===d||")"===d||"["===d||"]"===d||","===d){b.push({type:d}),c++;continue}if("&"===d&&"&"===a[c+1]){b.push({type:"&&"}),c+=2;continue}if("|"===d&&"|"===a[c+1]){b.push({type:"||"}),c+=2;continue}if("="===d&&"="===a[c+1]){b.push({type:"op",value:"=="}),c+=2;continue}if("!"===d&&"="===a[c+1]){b.push({type:"op",value:"!="}),c+=2;continue}if("<"===d&&"="===a[c+1]){b.push({type:"op",value:"<="}),c+=2;continue}if(">"===d&&"="===a[c+1]){b.push({type:"op",value:">="}),c+=2;continue}if("<"===d||">"===d){b.push({type:"op",value:d}),c++;continue}if("'"===d||'"'===d){let e=a.indexOf(d,c+1);if(-1===e)throw Error(`policy-gate: unterminated string at ${c}`);b.push({type:"string",value:a.slice(c+1,e)}),c=e+1;continue}if(/[0-9.]/.test(d)){let d=c;for(;d<a.length&&/[0-9.]/.test(a[d]);)d++;b.push({type:"number",value:Number(a.slice(c,d))}),c=d;continue}if(/[A-Za-z_]/.test(d)){let d=c;for(;d<a.length&&/[A-Za-z0-9_.]/.test(a[d]);)d++;let e=a.slice(c,d);if("IN"===e||"in"===e)b.push({type:"IN"});else if("true"===e)b.push({type:"boolean",value:!0});else if("false"===e)b.push({type:"boolean",value:!1});else if("prior_stage"===e&&"("===a[d]){let e=a.indexOf(")",d),f=a.slice(d+1,e).trim().replace(/^['"]|['"]$/g,""),g=e+1;if("."!==a[g])throw Error("policy-gate: expected '.' after prior_stage(...)");let h=g+1;for(;h<a.length&&/[A-Za-z0-9_.]/.test(a[h]);)h++;b.push({type:"ref",kind:"prior_stage",stage:f,path:a.slice(g+1,h)}),c=h;continue}else b.push({type:"ref",kind:"path",path:e});c=d;continue}throw Error(`policy-gate: unexpected character "${d}" at ${c}`)}return b}(a);return{result:!!function(a,b){let c=0;function e(){return a[c]}function f(b){let d=a[c];if(!d||d.type!==b)throw Error(`policy-gate: expected ${b}, got ${d?.type||"EOF"}`);return c++,d}function g(){let a=e();if(!a)throw Error("policy-gate: unexpected end of expression");if("("===a.type){c++;let a=j();return f(")"),a}if("number"===a.type||"string"===a.type||"boolean"===a.type)return c++,a.value;if("ref"===a.type)return c++,"prior_stage"===a.kind?d(b.context?.[a.stage],a.path):a.path.startsWith("intake.")?d(b.intake,a.path.slice(7)):a.path.startsWith("context.")?d(b.context,a.path.slice(8)):d(b,a.path);throw Error(`policy-gate: unexpected token ${a.type}`)}function h(){let a=g(),b=e();if(!b)return!!a;if("op"===b.type){c++;let d=g();switch(b.value){case"==":return a==d;case"!=":return a!=d;case"<":return Number(a)<Number(d);case"<=":return Number(a)<=Number(d);case">":return Number(a)>Number(d);case">=":return Number(a)>=Number(d)}}if("IN"===b.type){c++,f("[");let b=[];for(;e()&&"]"!==e().type;){let a=g();b.push(a),e()&&","===e().type&&c++}return f("]"),b.includes(a)}return!!a}function i(){let a=h();for(;e()&&"&&"===e().type;){c++;let b=h();a=!!a&&!!b}return a}function j(){let a=i();for(;e()&&"||"===e().type;){c++;let b=i();a=!!a||!!b}return a}let k=j();if(c!==a.length)throw Error(`policy-gate: unexpected trailing token at ${c}`);return k}(e,{intake:b,context:c}),error:null}}catch(a){return{result:!1,error:a?.message||String(a)}}}c.r(b),c.d(b,{evaluateRule:()=>e})},65257:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{STAGE_KIND:()=>j,evaluateRule:()=>g.evaluateRule,executeStage:()=>i});var e=c(8437),f=c(82936),g=c(46355),h=a([e]);async function i({case:a,stage:b}){let c=b.config||{},d=Array.isArray(c.rules)?c.rules:[],h=a.intake_payload||{},i=a.context||{},j=[],k=!0;for(let a of d){let{result:b,error:c,label:d}=function(a,b){if((0,f.SI)(a)){let{result:c,error:d}=(0,f.Cp)(a,b);return{result:c,error:d,label:a.label||(0,f.zZ)(a)}}let c="string"==typeof a?a:a?.expr,d="string"==typeof a?a:a?.label||a?.expr,{result:e,error:h}=(0,g.evaluateRule)(c,b);return{result:e,error:h,label:d}}(a,{intake:h,context:i});j.push({rule:d,result:b,error:c}),b||(k=!1)}if(!k&&c.on_fail_create_approval){let d=(0,e.D6)({action_type:"process.stage.approve",risk:c.risk||"medium",summary:c.on_fail_create_approval.summary||`Policy gate ${b.slug} requires manual review`,payload:{case_id:a.id,stage_slug:b.slug,trace:j},project_id:a.project_id});return{kind:"pass",output:{trace:j,all_pass:!1,manual_review_approval_id:d.id},approval_required:{approval_request_id:d.id,summary:d.summary}}}return{kind:k?"pass":"fail",output:{trace:j,all_pass:k},error:k?null:"policy_gate_failed"}}e=(h.then?(await h)():h)[0];let j="policy_gate";d()}catch(a){d(a)}})},82936:(a,b,c)=>{c.d(b,{Cp:()=>h,SI:()=>g,zZ:()=>function a(b){return e(b)?b.label?b.label:"and"===b.op||"or"===b.op?`(${(b.rules||[]).map(a).join(` ${b.op} `)})`:"not"===b.op?`not ${a(b.rule)}`:`${b.path} ${b.op} ${JSON.stringify(b.value)}`:String(b)}});let d={eq:(a,b)=>a==b,neq:(a,b)=>a!=b,lt:(a,b)=>Number(a)<Number(b),lte:(a,b)=>Number(a)<=Number(b),gt:(a,b)=>Number(a)>Number(b),gte:(a,b)=>Number(a)>=Number(b),in:(a,b)=>Array.isArray(b)&&b.some(b=>b===a),nin:(a,b)=>Array.isArray(b)&&!b.some(b=>b===a)};function e(a){return null!=a&&"object"==typeof a&&!Array.isArray(a)}function f(a,b){return b?b.split(".").reduce((a,b)=>null==a?a:a[b],a):a}function g(a){return e(a)&&"string"==typeof a.op}function h(a,b){try{return{result:!!function a(b,c,g=0){if(g>20)throw Error("policy-predicate: maximum nesting depth exceeded");if(!e(b))throw Error("policy-predicate: predicate must be an object");let h=b.op;if("and"===h||"or"===h){if(!Array.isArray(b.rules))throw Error(`policy-predicate: "${h}" requires a rules[] array`);let d=b.rules.map(b=>a(b,c,g+1));return"and"===h?d.every(Boolean):d.some(Boolean)}if("not"===h){if(!e(b.rule))throw Error('policy-predicate: "not" requires a rule object');return!a(b.rule,c,g+1)}let i=d[h];if(!i)throw Error(`policy-predicate: unknown op "${h}"`);if("string"!=typeof b.path||!b.path)throw Error(`policy-predicate: "${h}" requires a path`);return!!i(function(a,b){if("string"!=typeof a||!a)return;let c=a.indexOf("."),d=-1===c?a:a.slice(0,c),e=-1===c?"":a.slice(c+1);if("intake"===d)return f(b?.intake,e);if("context"===d)return f(b?.context,e);if("prior_stage"===d){let a=e.indexOf("."),c=-1===a?e:e.slice(0,a),d=-1===a?"":e.slice(a+1);return f(b?.context?.[c],d)}return f(b,a)}(b.path,c),b.value)}(a,b),error:null}}catch(a){return{result:!1,error:a?.message||String(a)}}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6355,exports.ids=[6355],exports.modules={46355:(a,b,c)=>{function d(a,b){if(a&&b)return b.split(".").reduce((a,b)=>null==a?a:a[b],a)}function e(a,{intake:b,context:c}){if(!a||"string"!=typeof a)return{result:!0,error:null};try{let e=function(a){let b=[],c=0;for(;c<a.length;){let d=a[c];if(/\s/.test(d)){c++;continue}if("("===d||")"===d||"["===d||"]"===d||","===d){b.push({type:d}),c++;continue}if("&"===d&&"&"===a[c+1]){b.push({type:"&&"}),c+=2;continue}if("|"===d&&"|"===a[c+1]){b.push({type:"||"}),c+=2;continue}if("="===d&&"="===a[c+1]){b.push({type:"op",value:"=="}),c+=2;continue}if("!"===d&&"="===a[c+1]){b.push({type:"op",value:"!="}),c+=2;continue}if("<"===d&&"="===a[c+1]){b.push({type:"op",value:"<="}),c+=2;continue}if(">"===d&&"="===a[c+1]){b.push({type:"op",value:">="}),c+=2;continue}if("<"===d||">"===d){b.push({type:"op",value:d}),c++;continue}if("'"===d||'"'===d){let e=a.indexOf(d,c+1);if(-1===e)throw Error(`policy-gate: unterminated string at ${c}`);b.push({type:"string",value:a.slice(c+1,e)}),c=e+1;continue}if(/[0-9.]/.test(d)){let d=c;for(;d<a.length&&/[0-9.]/.test(a[d]);)d++;b.push({type:"number",value:Number(a.slice(c,d))}),c=d;continue}if(/[A-Za-z_]/.test(d)){let d=c;for(;d<a.length&&/[A-Za-z0-9_.]/.test(a[d]);)d++;let e=a.slice(c,d);if("IN"===e||"in"===e)b.push({type:"IN"});else if("true"===e)b.push({type:"boolean",value:!0});else if("false"===e)b.push({type:"boolean",value:!1});else if("prior_stage"===e&&"("===a[d]){let e=a.indexOf(")",d),f=a.slice(d+1,e).trim().replace(/^['"]|['"]$/g,""),g=e+1;if("."!==a[g])throw Error("policy-gate: expected '.' after prior_stage(...)");let h=g+1;for(;h<a.length&&/[A-Za-z0-9_.]/.test(a[h]);)h++;b.push({type:"ref",kind:"prior_stage",stage:f,path:a.slice(g+1,h)}),c=h;continue}else b.push({type:"ref",kind:"path",path:e});c=d;continue}throw Error(`policy-gate: unexpected character "${d}" at ${c}`)}return b}(a);return{result:!!function(a,b){let c=0;function e(){return a[c]}function f(b){let d=a[c];if(!d||d.type!==b)throw Error(`policy-gate: expected ${b}, got ${d?.type||"EOF"}`);return c++,d}function g(){let a=e();if(!a)throw Error("policy-gate: unexpected end of expression");if("("===a.type){c++;let a=j();return f(")"),a}if("number"===a.type||"string"===a.type||"boolean"===a.type)return c++,a.value;if("ref"===a.type)return c++,"prior_stage"===a.kind?d(b.context?.[a.stage],a.path):a.path.startsWith("intake.")?d(b.intake,a.path.slice(7)):a.path.startsWith("context.")?d(b.context,a.path.slice(8)):d(b,a.path);throw Error(`policy-gate: unexpected token ${a.type}`)}function h(){let a=g(),b=e();if(!b)return!!a;if("op"===b.type){c++;let d=g();switch(b.value){case"==":return a==d;case"!=":return a!=d;case"<":return Number(a)<Number(d);case"<=":return Number(a)<=Number(d);case">":return Number(a)>Number(d);case">=":return Number(a)>=Number(d)}}if("IN"===b.type){c++,f("[");let b=[];for(;e()&&"]"!==e().type;){let a=g();b.push(a),e()&&","===e().type&&c++}return f("]"),b.includes(a)}return!!a}function i(){let a=h();for(;e()&&"&&"===e().type;){c++;let b=h();a=!!a&&!!b}return a}function j(){let a=i();for(;e()&&"||"===e().type;){c++;let b=i();a=!!a||!!b}return a}let k=j();if(c!==a.length)throw Error(`policy-gate: unexpected trailing token at ${c}`);return k}(e,{intake:b,context:c}),error:null}}catch(a){return{result:!1,error:a?.message||String(a)}}}c.r(b),c.d(b,{evaluateRule:()=>e})}};
@@ -1 +1 @@
1
- exports.id=1092,exports.ids=[1092],exports.modules={6974:(a,b,c)=>{Promise.resolve().then(c.bind(c,35271))},35271:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx","default")},86893:(a,b,c)=>{"use strict";c.d(b,{hI:()=>g,iN:()=>f,pp:()=>i,qs:()=>h});var d=c(75338),e=c(35271);function f({kicker:a="madarX OS v1.0",title:b,description:c,actions:f,hideProjectSwitcher:g,children:h}){return(0,d.jsxs)("main",{className:"admin-shell",children:[(0,d.jsxs)("header",{className:"admin-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"admin-kicker",children:a}),(0,d.jsx)("h1",{children:b}),c?(0,d.jsx)("p",{children:c}):null]}),(0,d.jsxs)("div",{className:"admin-header-actions",children:[g?null:(0,d.jsx)(e.default,{}),f]})]}),h]})}function g({label:a,value:b,tone:c}){return(0,d.jsxs)("div",{className:`admin-stat ${c||""}`,children:[(0,d.jsx)("b",{children:b}),(0,d.jsx)("span",{children:a})]})}function h({children:a,tone:b="neutral"}){return(0,d.jsx)("span",{className:`admin-pill ${b}`,children:a})}function i({title:a,children:b}){return(0,d.jsxs)("div",{className:"admin-empty",children:[(0,d.jsx)("b",{children:a}),(0,d.jsx)("p",{children:b})]})}},89670:(a,b,c)=>{Promise.resolve().then(c.bind(c,94657))},91462:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"40cd91abb7fe45e3fe886022d8a57f9c0183d06b56":()=>e.$$RSC_SERVER_ACTION_0});var e=c(91845),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},91845:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{$$RSC_SERVER_ACTION_0:()=>u,default:()=>p,dynamic:()=>q,runtime:()=>r});var e=c(75338),f=c(75879);c(68633);var g=c(16780),h=c(82161),i=c(86893),j=c(83963),k=c(60105),l=a([j,k]);[j,k]=l.then?(await l)():l;let q="force-dynamic",r="nodejs",s={executive:"Executive",manager:"Manager",team_lead:"Team Lead",individual_contributor:"Contributor"},t={executive:"mars",manager:"ready",team_lead:"warn",individual_contributor:"neutral"};function m(a=""){return a.split(/\s+/).map(a=>a[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"\xb7"}let u=async function(a){let b=String(a.get("agent_id")||"").trim();if(!b)return;let c=String(a.get("reports_to")||"").trim(),d={reports_to:""===c?null:c},e=String(a.get("role")||"").trim();e&&(d.role=e);let f=String(a.get("title")||"").trim();(f||a.has("title"))&&(d.title=f||null);try{(0,j.jN)(b,d)}catch(a){console.warn("updateAgentOrg failed",a?.message)}(0,g.revalidatePath)("/org"),(0,g.revalidatePath)("/agents"),(0,h.redirect)("/org")};function n({node:a,workloadById:b}){let c=function(a){if(a.role&&s[a.role])return a.role;let b=a.reports?.length||0;return b>=4?"executive":b>=2?"manager":1===b?"team_lead":"individual_contributor"}(a),d=s[c],f=t[c],g=a.reports?.length||0,h=b.get(a.id),j=Number(h?.active_tasks||0),k=Number(h?.blocked_tasks||0),l=Number(h?.completed_tasks||0),n=a.status||"created";return(0,e.jsxs)("article",{className:`org-card org-card--${c}`,"data-reports":g>0?"has":"none",children:[(0,e.jsxs)("div",{className:"org-card-head",children:[(0,e.jsx)("div",{className:"org-card-avatar","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{className:"org-card-identity",children:[(0,e.jsx)("div",{className:"org-card-name",children:a.name}),(0,e.jsx)("div",{className:"org-card-title",children:a.title||a.mission?.slice(0,64)||"No title set"})]})]}),(0,e.jsxs)("div",{className:"org-card-meta",children:[(0,e.jsx)(i.qs,{tone:f,children:d}),(0,e.jsx)(i.qs,{tone:"heartbeat ok"===n?"ready":"terminated"===n?"danger":"neutral",children:n}),g>0?(0,e.jsxs)(i.qs,{tone:"neutral",children:[g," report",1===g?"":"s"]}):null]}),(0,e.jsxs)("dl",{className:"org-card-stats",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Active"}),(0,e.jsx)("dd",{children:j})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Blocked"}),(0,e.jsx)("dd",{className:k?"is-warn":"",children:k})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Done"}),(0,e.jsx)("dd",{children:l})]})]})]})}function o({node:a,workloadById:b}){let c=(a.reports||[]).length>0;return(0,e.jsxs)("li",{className:"org-branch",children:[(0,e.jsx)(n,{node:a,workloadById:b}),c?(0,e.jsx)("ul",{className:"org-children",children:a.reports.map(a=>(0,e.jsx)(o,{node:a,workloadById:b},a.id))}):null]})}function p(){let a=(0,j.zP)(),b=(0,j.hC)(),c=(0,k.vc)(),d=new Map((b.workload||[]).map(a=>[a.agent_id,a])),f=c.filter(a=>c.some(b=>b.reports_to===a.id)).length,g=c.filter(a=>!a.reports_to&&a.id).length;return(0,e.jsxs)(i.iN,{title:"Agent chart",description:"Company-style structure for your agent workforce. Set managers, define roles, and see workload at a glance.",children:[(0,e.jsxs)("section",{className:"admin-stats",children:[(0,e.jsx)(i.hI,{label:"Headcount",value:b.totals.active_agents}),(0,e.jsx)(i.hI,{label:"Leaders",value:f}),(0,e.jsx)(i.hI,{label:"Root nodes",value:g}),(0,e.jsx)(i.hI,{label:"Active tasks",value:b.totals.active_tasks})]}),(0,e.jsxs)("section",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Agent chart"}),(0,e.jsx)("small",{children:"Top-down hierarchy. Each card shows role, status, and current workload."})]}),a.length?(0,e.jsx)("div",{className:"org-chart-scroll",children:(0,e.jsx)("ul",{className:"org-chart",children:a.map(a=>(0,e.jsx)(o,{node:a,workloadById:d},a.id))})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create an agent on the Agents page, then come back here to assign managers."})]}),(0,e.jsxs)("section",{className:"admin-grid reports-layout",children:[(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Reporting lines"}),(0,e.jsx)("small",{children:"Re-parent any agent. Cycles are blocked automatically."})]}),c.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:c.map(a=>{let b=a.reports_to?c.find(b=>b.id===a.reports_to):null,d=c.filter(b=>b.id!==a.id),f=a.role&&s[a.role]?a.role:"individual_contributor";return(0,e.jsxs)("form",{action:u,className:"org-reporting-row",children:[(0,e.jsx)("input",{type:"hidden",name:"agent_id",value:a.id}),(0,e.jsxs)("div",{className:"org-reporting-identity",children:[(0,e.jsx)("div",{className:"org-card-avatar small","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"org-reporting-name",children:a.name}),(0,e.jsx)("div",{className:"org-reporting-sub",children:b?`Reports to ${b.name}`:"Top of chain"})]})]}),(0,e.jsxs)("div",{className:"org-reporting-fields",children:[(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Title"}),(0,e.jsx)("input",{type:"text",name:"title",defaultValue:a.title||"",placeholder:"e.g. Marketing Manager"})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Role"}),(0,e.jsx)("select",{name:"role",defaultValue:f,children:Object.entries(s).map(([a,b])=>(0,e.jsx)("option",{value:a,children:b},a))})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Manager"}),(0,e.jsxs)("select",{name:"reports_to",defaultValue:a.reports_to||"",children:[(0,e.jsx)("option",{value:"",children:"— None (top of chain)"}),d.map(a=>(0,e.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,e.jsx)("button",{className:"admin-button",type:"submit",children:"Save"})]})]},a.id)})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create agents to start building your org."})]}),(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Workload by agent"}),(0,e.jsx)("small",{children:"Derived from active tasks."})]}),b.workload.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:b.workload.map(a=>(0,e.jsxs)("div",{className:"admin-record compact",children:[(0,e.jsxs)("div",{className:"admin-record-top",children:[(0,e.jsx)("b",{children:a.agent_name||a.agent_id}),(0,e.jsxs)(i.qs,{tone:a.blocked_tasks?"danger":a.active_tasks?"ready":"neutral",children:[a.active_tasks," active"]})]}),(0,e.jsxs)("p",{children:[a.total_tasks," total \xb7 ",a.blocked_tasks," blocked \xb7 ",a.completed_tasks," complete"]})]},a.agent_id))}):(0,e.jsx)(i.pp,{title:"No workload data",children:"Assign tasks to see workload distribution."})]})]})]})}(0,f.A)(u,"40cd91abb7fe45e3fe886022d8a57f9c0183d06b56",null),d()}catch(a){d(a)}})},94657:(a,b,c)=>{"use strict";c.d(b,{default:()=>f});var d=c(21124),e=c(38301);function f(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)("");return(0,d.jsx)("div",{className:"project-switcher","data-project-switcher":!0,children:(0,d.jsxs)("select",{value:c,onChange:a=>{var b;f(b=a.target.value),b?localStorage.setItem("madarx.activeProjectId",b):localStorage.removeItem("madarx.activeProjectId"),window.dispatchEvent(new CustomEvent("madarx:project-change",{detail:{project_id:b||null}}))},"aria-label":"Active project",children:[(0,d.jsx)("option",{value:"",children:"All projects"}),a.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})})}}};
1
+ exports.id=6474,exports.ids=[6474],exports.modules={6974:(a,b,c)=>{Promise.resolve().then(c.bind(c,35271))},14420:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"4045b474fc63a6a572f3ca03f813d3525209e55e2b":()=>e.$$RSC_SERVER_ACTION_0});var e=c(91845),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},35271:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx","default")},86893:(a,b,c)=>{"use strict";c.d(b,{hI:()=>g,iN:()=>f,pp:()=>i,qs:()=>h});var d=c(75338),e=c(35271);function f({kicker:a="madarX OS v1.0",title:b,description:c,actions:f,hideProjectSwitcher:g,children:h}){return(0,d.jsxs)("main",{className:"admin-shell",children:[(0,d.jsxs)("header",{className:"admin-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"admin-kicker",children:a}),(0,d.jsx)("h1",{children:b}),c?(0,d.jsx)("p",{children:c}):null]}),(0,d.jsxs)("div",{className:"admin-header-actions",children:[g?null:(0,d.jsx)(e.default,{}),f]})]}),h]})}function g({label:a,value:b,tone:c}){return(0,d.jsxs)("div",{className:`admin-stat ${c||""}`,children:[(0,d.jsx)("b",{children:b}),(0,d.jsx)("span",{children:a})]})}function h({children:a,tone:b="neutral"}){return(0,d.jsx)("span",{className:`admin-pill ${b}`,children:a})}function i({title:a,children:b}){return(0,d.jsxs)("div",{className:"admin-empty",children:[(0,d.jsx)("b",{children:a}),(0,d.jsx)("p",{children:b})]})}},89670:(a,b,c)=>{Promise.resolve().then(c.bind(c,94657))},91845:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{$$RSC_SERVER_ACTION_0:()=>u,default:()=>p,dynamic:()=>q,runtime:()=>r});var e=c(75338),f=c(75879);c(68633);var g=c(16780),h=c(82161),i=c(86893),j=c(83963),k=c(60105),l=a([j,k]);[j,k]=l.then?(await l)():l;let q="force-dynamic",r="nodejs",s={executive:"Executive",manager:"Manager",team_lead:"Team Lead",individual_contributor:"Contributor"},t={executive:"mars",manager:"ready",team_lead:"warn",individual_contributor:"neutral"};function m(a=""){return a.split(/\s+/).map(a=>a[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"\xb7"}let u=async function(a){let b=String(a.get("agent_id")||"").trim();if(!b)return;let c=String(a.get("reports_to")||"").trim(),d={reports_to:""===c?null:c},e=String(a.get("role")||"").trim();e&&(d.role=e);let f=String(a.get("title")||"").trim();(f||a.has("title"))&&(d.title=f||null);try{(0,j.jN)(b,d)}catch(a){console.warn("updateAgentOrg failed",a?.message)}(0,g.revalidatePath)("/org"),(0,g.revalidatePath)("/agents"),(0,h.redirect)("/org")};function n({node:a,workloadById:b}){let c=function(a){if(a.role&&s[a.role])return a.role;let b=a.reports?.length||0;return b>=4?"executive":b>=2?"manager":1===b?"team_lead":"individual_contributor"}(a),d=s[c],f=t[c],g=a.reports?.length||0,h=b.get(a.id),j=Number(h?.active_tasks||0),k=Number(h?.blocked_tasks||0),l=Number(h?.completed_tasks||0),n=a.status||"created";return(0,e.jsxs)("article",{className:`org-card org-card--${c}`,"data-reports":g>0?"has":"none",children:[(0,e.jsxs)("div",{className:"org-card-head",children:[(0,e.jsx)("div",{className:"org-card-avatar","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{className:"org-card-identity",children:[(0,e.jsx)("div",{className:"org-card-name",children:a.name}),(0,e.jsx)("div",{className:"org-card-title",children:a.title||a.mission?.slice(0,64)||"No title set"})]})]}),(0,e.jsxs)("div",{className:"org-card-meta",children:[(0,e.jsx)(i.qs,{tone:f,children:d}),(0,e.jsx)(i.qs,{tone:"heartbeat ok"===n?"ready":"terminated"===n?"danger":"neutral",children:n}),g>0?(0,e.jsxs)(i.qs,{tone:"neutral",children:[g," report",1===g?"":"s"]}):null]}),(0,e.jsxs)("dl",{className:"org-card-stats",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Active"}),(0,e.jsx)("dd",{children:j})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Blocked"}),(0,e.jsx)("dd",{className:k?"is-warn":"",children:k})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Done"}),(0,e.jsx)("dd",{children:l})]})]})]})}function o({node:a,workloadById:b}){let c=(a.reports||[]).length>0;return(0,e.jsxs)("li",{className:"org-branch",children:[(0,e.jsx)(n,{node:a,workloadById:b}),c?(0,e.jsx)("ul",{className:"org-children",children:a.reports.map(a=>(0,e.jsx)(o,{node:a,workloadById:b},a.id))}):null]})}function p(){let a=(0,j.zP)(),b=(0,j.hC)(),c=(0,k.vc)(),d=new Map((b.workload||[]).map(a=>[a.agent_id,a])),f=c.filter(a=>c.some(b=>b.reports_to===a.id)).length,g=c.filter(a=>!a.reports_to&&a.id).length;return(0,e.jsxs)(i.iN,{title:"Agent chart",description:"Company-style structure for your agent workforce. Set managers, define roles, and see workload at a glance.",children:[(0,e.jsxs)("section",{className:"admin-stats",children:[(0,e.jsx)(i.hI,{label:"Headcount",value:b.totals.active_agents}),(0,e.jsx)(i.hI,{label:"Leaders",value:f}),(0,e.jsx)(i.hI,{label:"Root nodes",value:g}),(0,e.jsx)(i.hI,{label:"Active tasks",value:b.totals.active_tasks})]}),(0,e.jsxs)("section",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Agent chart"}),(0,e.jsx)("small",{children:"Top-down hierarchy. Each card shows role, status, and current workload."})]}),a.length?(0,e.jsx)("div",{className:"org-chart-scroll",children:(0,e.jsx)("ul",{className:"org-chart",children:a.map(a=>(0,e.jsx)(o,{node:a,workloadById:d},a.id))})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create an agent on the Agents page, then come back here to assign managers."})]}),(0,e.jsxs)("section",{className:"admin-grid reports-layout",children:[(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Reporting lines"}),(0,e.jsx)("small",{children:"Re-parent any agent. Cycles are blocked automatically."})]}),c.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:c.map(a=>{let b=a.reports_to?c.find(b=>b.id===a.reports_to):null,d=c.filter(b=>b.id!==a.id),f=a.role&&s[a.role]?a.role:"individual_contributor";return(0,e.jsxs)("form",{action:u,className:"org-reporting-row",children:[(0,e.jsx)("input",{type:"hidden",name:"agent_id",value:a.id}),(0,e.jsxs)("div",{className:"org-reporting-identity",children:[(0,e.jsx)("div",{className:"org-card-avatar small","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"org-reporting-name",children:a.name}),(0,e.jsx)("div",{className:"org-reporting-sub",children:b?`Reports to ${b.name}`:"Top of chain"})]})]}),(0,e.jsxs)("div",{className:"org-reporting-fields",children:[(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Title"}),(0,e.jsx)("input",{type:"text",name:"title",defaultValue:a.title||"",placeholder:"e.g. Marketing Manager"})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Role"}),(0,e.jsx)("select",{name:"role",defaultValue:f,children:Object.entries(s).map(([a,b])=>(0,e.jsx)("option",{value:a,children:b},a))})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Manager"}),(0,e.jsxs)("select",{name:"reports_to",defaultValue:a.reports_to||"",children:[(0,e.jsx)("option",{value:"",children:"— None (top of chain)"}),d.map(a=>(0,e.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,e.jsx)("button",{className:"admin-button",type:"submit",children:"Save"})]})]},a.id)})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create agents to start building your org."})]}),(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Workload by agent"}),(0,e.jsx)("small",{children:"Derived from active tasks."})]}),b.workload.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:b.workload.map(a=>(0,e.jsxs)("div",{className:"admin-record compact",children:[(0,e.jsxs)("div",{className:"admin-record-top",children:[(0,e.jsx)("b",{children:a.agent_name||a.agent_id}),(0,e.jsxs)(i.qs,{tone:a.blocked_tasks?"danger":a.active_tasks?"ready":"neutral",children:[a.active_tasks," active"]})]}),(0,e.jsxs)("p",{children:[a.total_tasks," total \xb7 ",a.blocked_tasks," blocked \xb7 ",a.completed_tasks," complete"]})]},a.agent_id))}):(0,e.jsx)(i.pp,{title:"No workload data",children:"Assign tasks to see workload distribution."})]})]})]})}(0,f.A)(u,"4045b474fc63a6a572f3ca03f813d3525209e55e2b",null),d()}catch(a){d(a)}})},94657:(a,b,c)=>{"use strict";c.d(b,{default:()=>f});var d=c(21124),e=c(38301);function f(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)("");return(0,d.jsx)("div",{className:"project-switcher","data-project-switcher":!0,children:(0,d.jsxs)("select",{value:c,onChange:a=>{var b;f(b=a.target.value),b?localStorage.setItem("madarx.activeProjectId",b):localStorage.removeItem("madarx.activeProjectId"),window.dispatchEvent(new CustomEvent("madarx:project-change",{detail:{project_id:b||null}}))},"aria-label":"Active project",children:[(0,d.jsx)("option",{value:"",children:"All projects"}),a.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})})}}};
@@ -3,24 +3,24 @@
3
3
  "functions": {
4
4
  "/api/activity": {},
5
5
  "/api/admin/audit-export": {},
6
- "/api/admin/share-links": {},
7
6
  "/api/agent-memory": {},
8
7
  "/api/agent-runs/[id]/cancel": {},
9
- "/api/agent-runs/[id]/events": {},
10
- "/api/agent-runs/[id]": {},
8
+ "/api/admin/share-links": {},
11
9
  "/api/agent-runs/[id]/log": {},
10
+ "/api/agent-runs/[id]": {},
12
11
  "/api/agent-runs": {},
13
12
  "/api/agents/[id]/chain": {},
14
13
  "/api/agents/[id]/memory": {},
15
14
  "/api/agents/[id]/reports": {},
16
- "/api/agents/[id]/skills": {},
17
15
  "/api/agents/[id]/run": {},
16
+ "/api/agents/[id]/skills": {},
18
17
  "/api/agents/create": {},
19
18
  "/api/agents/ops": {},
20
- "/api/approvals/[id]": {},
19
+ "/api/agent-runs/[id]/events": {},
21
20
  "/api/approvals": {},
22
- "/api/artifacts/[id]/protect": {},
21
+ "/api/approvals/[id]": {},
23
22
  "/api/artifacts/[id]/acl": {},
23
+ "/api/artifacts/[id]/protect": {},
24
24
  "/api/artifacts/[id]/raw": {},
25
25
  "/api/artifacts/[id]": {},
26
26
  "/api/artifacts/[id]/share-link/[linkId]": {},
@@ -30,8 +30,8 @@
30
30
  "/api/audit/search": {},
31
31
  "/api/auth/callback": {},
32
32
  "/api/auth/config": {},
33
- "/api/auth/session": {},
34
33
  "/api/auth/join-bootstrap": {},
34
+ "/api/auth/session": {},
35
35
  "/api/brand": {},
36
36
  "/api/chat/sessions/[id]": {},
37
37
  "/api/chat/sessions": {},
@@ -46,8 +46,8 @@
46
46
  "/api/disk/files/[id]/blob": {},
47
47
  "/api/disk/files/[id]": {},
48
48
  "/api/disk/files/[id]/transcribe": {},
49
- "/api/disk/folders": {},
50
49
  "/api/disk/files": {},
50
+ "/api/disk/folders": {},
51
51
  "/api/events/since/[cursor]": {},
52
52
  "/api/events/stream": {},
53
53
  "/api/fs/create-folder": {},
@@ -56,24 +56,24 @@
56
56
  "/api/hail/engagements/[id]/diagnostic": {},
57
57
  "/api/hail/engagements/[id]/governance": {},
58
58
  "/api/hail/engagements/[id]/interview": {},
59
- "/api/hail/engagements/[id]/pilot": {},
60
59
  "/api/hail/engagements/[id]/quarterly": {},
61
60
  "/api/hail/engagements/[id]": {},
62
61
  "/api/hail/engagements/[id]/setup-package": {},
63
- "/api/hail/engagements": {},
62
+ "/api/hail/engagements/[id]/pilot": {},
64
63
  "/api/hail/interviews/[id]/responses": {},
64
+ "/api/hail/engagements": {},
65
65
  "/api/hail/interviews/[id]": {},
66
66
  "/api/hail/setup-packages/[id]/apply": {},
67
- "/api/heartbeat/tick": {},
68
67
  "/api/hail/setup-packages/validate": {},
68
+ "/api/heartbeat/tick": {},
69
69
  "/api/heartbeat/worker": {},
70
70
  "/api/help": {},
71
71
  "/api/hermes/jobs/[id]/events": {},
72
72
  "/api/hermes/jobs/[id]": {},
73
73
  "/api/hermes/jobs": {},
74
74
  "/api/integrations/google/callback": {},
75
- "/api/marketplace/[id]": {},
76
75
  "/api/integrations/google/oauth": {},
76
+ "/api/marketplace/[id]": {},
77
77
  "/api/marketplace/open-design": {},
78
78
  "/api/marketplace": {},
79
79
  "/api/mines/import-roots": {},
@@ -88,61 +88,61 @@
88
88
  "/api/onboarding/blueprint": {},
89
89
  "/api/onboarding/launch": {},
90
90
  "/api/orchestrator/command": {},
91
- "/api/orchestrator/stream": {},
92
91
  "/api/orchestrator/upload": {},
92
+ "/api/orchestrator/stream": {},
93
93
  "/api/org": {},
94
94
  "/api/orgs/[id]/invites/[inviteId]": {},
95
95
  "/api/orgs/[id]/invites": {},
96
- "/api/orgs/[id]/members/[userId]/role": {},
97
96
  "/api/orgs/[id]/members/[userId]": {},
97
+ "/api/orgs/[id]/members/[userId]/role": {},
98
98
  "/api/orgs/[id]/members": {},
99
99
  "/api/orgs/[id]": {},
100
100
  "/api/orgs/invites/pending": {},
101
101
  "/api/orgs/join-complete": {},
102
102
  "/api/orgs/join": {},
103
- "/api/orgs": {},
104
103
  "/api/printing-press/clis": {},
104
+ "/api/orgs": {},
105
105
  "/api/printing-press/install": {},
106
106
  "/api/printing-press/security-mode": {},
107
107
  "/api/privacy/config": {},
108
- "/api/privacy/verify": {},
109
108
  "/api/processes/[id]": {},
109
+ "/api/privacy/verify": {},
110
110
  "/api/processes/[id]/share-link": {},
111
- "/api/processes/[id]/stages/[stageId]/override": {},
112
111
  "/api/processes/[id]/stages/[stageId]/retry": {},
112
+ "/api/processes/[id]/stages/[stageId]/override": {},
113
113
  "/api/processes/[id]/stages/[stageId]/submit": {},
114
114
  "/api/processes/definitions/[slug]": {},
115
115
  "/api/processes/definitions/[slug]/settings": {},
116
116
  "/api/processes/definitions": {},
117
117
  "/api/processes/definitions/validate": {},
118
118
  "/api/processes": {},
119
- "/api/processes/start-and-route": {},
120
119
  "/api/projects/[slug]/library": {},
121
- "/api/projects": {},
120
+ "/api/processes/start-and-route": {},
122
121
  "/api/projects/[slug]": {},
122
+ "/api/projects": {},
123
123
  "/api/runs/approve-claude-run": {},
124
124
  "/api/runs/claude-code-dry-run": {},
125
125
  "/api/runs/competitor-report": {},
126
126
  "/api/runs/engine-ping": {},
127
- "/api/schedules/upsert": {},
128
127
  "/api/runs/marketing-plan": {},
129
- "/api/secrets/[name]": {},
128
+ "/api/schedules/upsert": {},
130
129
  "/api/secrets": {},
131
130
  "/api/settings/trust-mode": {},
131
+ "/api/secrets/[name]": {},
132
132
  "/api/share/[token]/otp": {},
133
133
  "/api/share/[token]": {},
134
134
  "/api/share/[token]/verify": {},
135
135
  "/api/share/space/[token]/otp": {},
136
- "/api/share/space/[token]": {},
137
136
  "/api/share/space/[token]/verify": {},
137
+ "/api/share/space/[token]": {},
138
138
  "/api/shared/spaces/[id]/acl": {},
139
139
  "/api/shared/spaces/publish": {},
140
140
  "/api/shared/spaces": {},
141
- "/api/shared/spaces/unpublish": {},
142
141
  "/api/shared/spaces/status": {},
143
142
  "/api/state": {},
144
- "/api/system/update": {},
143
+ "/api/shared/spaces/unpublish": {},
145
144
  "/api/tasks/[id]/active-run": {},
145
+ "/api/system/update": {},
146
146
  "/api/tasks/[id]/attachments": {},
147
147
  "/api/tasks/[id]/checklist/[itemId]": {},
148
148
  "/api/tasks/[id]/checklist": {},
@@ -156,8 +156,8 @@
156
156
  "/api/tasks": {},
157
157
  "/api/tool-allowlists/[id]": {},
158
158
  "/api/tool-allowlists": {},
159
- "/api/tool-egress": {},
160
159
  "/api/tools/[name]/approve": {},
160
+ "/api/tool-egress": {},
161
161
  "/api/tools/[name]": {},
162
162
  "/api/tools": {},
163
163
  "/api/transcripts": {},
@@ -165,22 +165,22 @@
165
165
  "/api/voice/realtime/context": {},
166
166
  "/api/voice/realtime/session": {},
167
167
  "/api/voice/realtime/tool-result": {},
168
- "/api/voice/realtime/tools": {},
169
168
  "/api/voice/tts": {},
169
+ "/api/voice/realtime/tools": {},
170
170
  "/api/whatsapp/allowlist": {},
171
- "/api/whatsapp/disconnect": {},
172
171
  "/api/whatsapp/messages": {},
173
- "/api/whatsapp/qr": {},
172
+ "/api/whatsapp/disconnect": {},
174
173
  "/api/whatsapp/send": {},
175
174
  "/api/whatsapp/status": {},
175
+ "/api/whatsapp/qr": {},
176
176
  "/reports/[file]": {},
177
177
  "/activity": {},
178
178
  "/admin": {},
179
- "/agents": {},
180
179
  "/agents/[id]": {},
180
+ "/agents": {},
181
181
  "/approvals": {},
182
- "/audit": {},
183
182
  "/audit/live": {},
183
+ "/audit": {},
184
184
  "/hail/[id]/governance": {},
185
185
  "/hail/[id]/interview": {},
186
186
  "/hail/[id]": {},
@@ -190,25 +190,25 @@
190
190
  "/marketplace": {},
191
191
  "/mines/[projectId]": {},
192
192
  "/mines": {},
193
- "/mines/[projectId]/results": {},
194
193
  "/missions": {},
195
194
  "/onboarding/org": {},
196
195
  "/org": {},
197
196
  "/reports": {},
197
+ "/mines/[projectId]/results": {},
198
198
  "/runtime": {},
199
199
  "/schedules": {},
200
- "/tasks/[id]": {},
201
200
  "/share/space/[token]": {},
202
201
  "/tasks": {},
202
+ "/tasks/[id]": {},
203
203
  "/tools": {},
204
204
  "/settings/account": {},
205
- "/settings/appearance": {},
206
205
  "/settings/advanced": {},
206
+ "/settings/appearance": {},
207
207
  "/settings/connectors": {},
208
208
  "/settings/engines": {},
209
209
  "/settings/organization": {},
210
- "/settings": {},
211
210
  "/settings/runtime": {},
211
+ "/settings": {},
212
212
  "/settings/team": {},
213
213
  "/settings/tools": {}
214
214
  }
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-0cfb048137bd7fce.js","static/chunks/4bd1b696-100b9d70ed4e49c1.js","static/chunks/1255-eae4096fb21f1304.js","static/chunks/main-app-46bb3335c2fc50a9.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-0cfb048137bd7fce.js","static/chunks/framework-e9384f6a6720bcd2.js","static/chunks/main-944972f800552297.js","static/chunks/pages/_app-4b3fb5e477a0267f.js"],"/_error":["static/chunks/webpack-0cfb048137bd7fce.js","static/chunks/framework-e9384f6a6720bcd2.js","static/chunks/main-944972f800552297.js","static/chunks/pages/_error-c970d8b55ace1b48.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-86ee88827adb756d.js","static/chunks/4bd1b696-100b9d70ed4e49c1.js","static/chunks/1255-eae4096fb21f1304.js","static/chunks/main-app-46bb3335c2fc50a9.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-86ee88827adb756d.js","static/chunks/framework-e9384f6a6720bcd2.js","static/chunks/main-944972f800552297.js","static/chunks/pages/_app-4b3fb5e477a0267f.js"],"/_error":["static/chunks/webpack-86ee88827adb756d.js","static/chunks/framework-e9384f6a6720bcd2.js","static/chunks/main-944972f800552297.js","static/chunks/pages/_error-c970d8b55ace1b48.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -17,11 +17,11 @@
17
17
  "wasm": [],
18
18
  "assets": [],
19
19
  "env": {
20
- "__NEXT_BUILD_ID": "cR6E_4o8_rHXujVNesWiZ",
21
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "ct2zkaoj4Qfe/+QS9uTcyMBVjFz/L2DvaE7BKijnDzc=",
22
- "__NEXT_PREVIEW_MODE_ID": "b0c54ca39bcb39dc426277233cb9d8c6",
23
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "426b79a213dcc06cdc470b7ed663700ccf3bc1c6deff44ff489976abf8352dfa",
24
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "1ee5c17d907ff3c5dc6294020f23b04750477a3b39a395795013af9f2b687562"
20
+ "__NEXT_BUILD_ID": "-LlttjOnKZXGqZXDKcj-4",
21
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "aHWx1LHpdrVVaHWdNRBeC17jyNGunKXPFwQSp8xYAMM=",
22
+ "__NEXT_PREVIEW_MODE_ID": "d603de2644643a6abb12e0027ddef63e",
23
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "a6b31db17db6eef00d85b6b13f546b42bc26687c03874caa3082befe1c5d949c",
24
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "013cb449566f385ba64287a7474f611d6f80554998778ed93359c675ca6e7625"
25
25
  }
26
26
  }
27
27
  },