madarx 2.9.10 → 2.9.12

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 (326) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +337 -337
  3. package/.next/standalone/.next/app-path-routes-manifest.json +82 -82
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  8. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  9. package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/admin/page.js +3 -3
  11. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/agents/[id]/page.js +3 -3
  13. package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/agents/page.js +1 -1
  15. package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route.js +1 -1
  88. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route.js +1 -1
  90. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/hermes/jobs/route.js +1 -1
  92. package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/api/marketplace/open-design/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/state/route.js +1 -1
  162. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
  164. package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
  167. package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  176. package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
  179. package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
  185. package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
  188. package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/approvals/page.js +1 -1
  195. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  196. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/architecture.html +2 -2
  198. package/.next/standalone/.next/server/app/architecture.rsc +1 -1
  199. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  200. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/brand.html +1 -1
  203. package/.next/standalone/.next/server/app/brand.rsc +1 -1
  204. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  205. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  207. package/.next/standalone/.next/server/app/federated-ai.rsc +1 -1
  208. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +2 -2
  210. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/hail/[id]/page.js +2 -2
  212. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +1 -1
  214. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  215. package/.next/standalone/.next/server/app/hail/page.js +2 -2
  216. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/index.html +2 -2
  220. package/.next/standalone/.next/server/app/index.rsc +1 -1
  221. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/join.html +1 -1
  223. package/.next/standalone/.next/server/app/join.rsc +1 -1
  224. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/marketplace/page.js +2 -2
  226. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/missions/page.js +2 -2
  231. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  235. package/.next/standalone/.next/server/app/onboarding.rsc +1 -1
  236. package/.next/standalone/.next/server/app/org/page.js +1 -1
  237. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  238. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  239. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  242. package/.next/standalone/.next/server/app/projects/new/page.js +2 -2
  243. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/projects/new.html +1 -1
  245. package/.next/standalone/.next/server/app/projects/new.rsc +2 -2
  246. package/.next/standalone/.next/server/app/projects/page.js +13 -13
  247. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  248. package/.next/standalone/.next/server/app/reports/[file]/route.js +1 -1
  249. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  253. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  259. package/.next/standalone/.next/server/app/settings/brand.rsc +1 -1
  260. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  264. package/.next/standalone/.next/server/app/settings/onboarding.rsc +1 -1
  265. package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
  266. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  267. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  269. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  271. package/.next/standalone/.next/server/app/settings.html +2 -2
  272. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  273. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  274. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
  276. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/tasks/page.js +2 -2
  278. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  281. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/whatsapp.html +1 -1
  284. package/.next/standalone/.next/server/app/whatsapp.rsc +1 -1
  285. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  286. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/workflows/new/page_client-reference-manifest.js +1 -1
  289. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  290. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app-paths-manifest.json +82 -82
  292. package/.next/standalone/.next/server/chunks/1699.js +4 -4
  293. package/.next/standalone/.next/server/chunks/4740.js +1 -1
  294. package/.next/standalone/.next/server/chunks/511.js +1 -1
  295. package/.next/standalone/.next/server/chunks/8677.js +1 -0
  296. package/.next/standalone/.next/server/functions-config-manifest.json +34 -34
  297. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  298. package/.next/standalone/.next/server/pages/404.html +1 -1
  299. package/.next/standalone/.next/server/pages/500.html +1 -1
  300. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  301. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  302. package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +1 -0
  303. package/.next/standalone/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +1 -0
  304. package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
  305. package/.next/standalone/data/.default-project-seeded +1 -1
  306. package/.next/standalone/data/madarx.sqlite +0 -0
  307. package/.next/standalone/data/madarx.sqlite-shm +0 -0
  308. package/.next/standalone/data/madarx.sqlite-wal +0 -0
  309. package/.next/standalone/package.json +1 -1
  310. package/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +1 -0
  311. package/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +1 -0
  312. package/lib/agent-engines.js +101 -12
  313. package/lib/cli/run.js +5 -0
  314. package/lib/hermes-jobs.js +8 -3
  315. package/lib/paths.js +21 -0
  316. package/lib/tools/adapters/browser-harness.js +6 -2
  317. package/package.json +1 -1
  318. package/.next/standalone/.next/server/chunks/9529.js +0 -1
  319. package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +0 -1
  320. package/.next/standalone/.next/static/chunks/app/projects/page-3ceae5509d4021ea.js +0 -1
  321. package/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +0 -1
  322. package/.next/static/chunks/app/projects/page-3ceae5509d4021ea.js +0 -1
  323. /package/.next/standalone/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_buildManifest.js +0 -0
  324. /package/.next/standalone/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_ssgManifest.js +0 -0
  325. /package/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_buildManifest.js +0 -0
  326. /package/.next/static/{djmJKoDEHJKOoTVF49zJN → Ggj14oXXrOVWG6lsx-BHT}/_ssgManifest.js +0 -0
@@ -2,177 +2,177 @@
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/api/dashboard/spaces/[id]/move/route": "app/api/dashboard/spaces/[id]/move/route.js",
4
4
  "/api/dashboard/spaces/[id]/route": "app/api/dashboard/spaces/[id]/route.js",
5
- "/api/dashboard/spaces/route": "app/api/dashboard/spaces/route.js",
6
5
  "/api/dashboard/spaces/import/route": "app/api/dashboard/spaces/import/route.js",
6
+ "/api/dashboard/spaces/route": "app/api/dashboard/spaces/route.js",
7
7
  "/api/activity/route": "app/api/activity/route.js",
8
8
  "/api/admin/share-links/route": "app/api/admin/share-links/route.js",
9
+ "/api/agent-memory/route": "app/api/agent-memory/route.js",
9
10
  "/api/agent-runs/[id]/cancel/route": "app/api/agent-runs/[id]/cancel/route.js",
11
+ "/api/agent-runs/[id]/events/route": "app/api/agent-runs/[id]/events/route.js",
10
12
  "/api/agent-runs/[id]/log/route": "app/api/agent-runs/[id]/log/route.js",
11
13
  "/api/agent-runs/[id]/route": "app/api/agent-runs/[id]/route.js",
12
- "/api/agent-runs/[id]/events/route": "app/api/agent-runs/[id]/events/route.js",
14
+ "/api/agent-runs/route": "app/api/agent-runs/route.js",
13
15
  "/api/admin/audit-export/route": "app/api/admin/audit-export/route.js",
14
16
  "/api/agents/[id]/chain/route": "app/api/agents/[id]/chain/route.js",
15
- "/api/agent-runs/route": "app/api/agent-runs/route.js",
16
- "/api/agents/[id]/reports/route": "app/api/agents/[id]/reports/route.js",
17
17
  "/api/agents/[id]/memory/route": "app/api/agents/[id]/memory/route.js",
18
+ "/api/agents/[id]/reports/route": "app/api/agents/[id]/reports/route.js",
18
19
  "/api/agents/[id]/run/route": "app/api/agents/[id]/run/route.js",
20
+ "/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
19
21
  "/api/agents/create/route": "app/api/agents/create/route.js",
20
22
  "/api/agents/ops/route": "app/api/agents/ops/route.js",
21
- "/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
22
- "/api/approvals/route": "app/api/approvals/route.js",
23
23
  "/api/approvals/[id]/route": "app/api/approvals/[id]/route.js",
24
- "/api/artifacts/[id]/acl/route": "app/api/artifacts/[id]/acl/route.js",
24
+ "/api/approvals/route": "app/api/approvals/route.js",
25
25
  "/api/artifacts/[id]/protect/route": "app/api/artifacts/[id]/protect/route.js",
26
- "/api/artifacts/[id]/route": "app/api/artifacts/[id]/route.js",
27
26
  "/api/artifacts/[id]/raw/route": "app/api/artifacts/[id]/raw/route.js",
27
+ "/api/artifacts/[id]/route": "app/api/artifacts/[id]/route.js",
28
28
  "/api/artifacts/[id]/share-link/[linkId]/route": "app/api/artifacts/[id]/share-link/[linkId]/route.js",
29
29
  "/api/artifacts/[id]/share-link/route": "app/api/artifacts/[id]/share-link/route.js",
30
30
  "/api/audit/list/route": "app/api/audit/list/route.js",
31
31
  "/api/audit/search/route": "app/api/audit/search/route.js",
32
- "/api/auth/callback/route": "app/api/auth/callback/route.js",
33
32
  "/api/auth/config/route": "app/api/auth/config/route.js",
33
+ "/api/auth/callback/route": "app/api/auth/callback/route.js",
34
34
  "/api/auth/join-bootstrap/route": "app/api/auth/join-bootstrap/route.js",
35
- "/api/auth/session/route": "app/api/auth/session/route.js",
35
+ "/api/brand/route": "app/api/brand/route.js",
36
36
  "/api/chat/sessions/[id]/route": "app/api/chat/sessions/[id]/route.js",
37
37
  "/api/chat/sessions/route": "app/api/chat/sessions/route.js",
38
38
  "/api/config/env/route": "app/api/config/env/route.js",
39
- "/api/agent-memory/route": "app/api/agent-memory/route.js",
40
- "/api/config/route": "app/api/config/route.js",
39
+ "/api/artifacts/[id]/acl/route": "app/api/artifacts/[id]/acl/route.js",
41
40
  "/api/connections/[service]/route": "app/api/connections/[service]/route.js",
41
+ "/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
42
42
  "/api/connections/route": "app/api/connections/route.js",
43
43
  "/api/cron/tick/route": "app/api/cron/tick/route.js",
44
- "/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
45
44
  "/api/dashboard/spaces/[id]/share-link/[linkId]/route": "app/api/dashboard/spaces/[id]/share-link/[linkId]/route.js",
46
- "/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
47
45
  "/api/dashboard/spaces/[id]/share-link/route": "app/api/dashboard/spaces/[id]/share-link/route.js",
46
+ "/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
48
47
  "/api/disk/files/[id]/route": "app/api/disk/files/[id]/route.js",
49
48
  "/api/disk/files/[id]/transcribe/route": "app/api/disk/files/[id]/transcribe/route.js",
50
- "/api/events/since/[cursor]/route": "app/api/events/since/[cursor]/route.js",
51
- "/api/disk/folders/route": "app/api/disk/folders/route.js",
52
49
  "/api/disk/files/route": "app/api/disk/files/route.js",
53
- "/api/events/stream/route": "app/api/events/stream/route.js",
50
+ "/api/disk/folders/route": "app/api/disk/folders/route.js",
51
+ "/api/events/since/[cursor]/route": "app/api/events/since/[cursor]/route.js",
52
+ "/api/auth/session/route": "app/api/auth/session/route.js",
54
53
  "/api/fs/create-folder/route": "app/api/fs/create-folder/route.js",
55
- "/api/hail/engagements/[id]/blueprint/route": "app/api/hail/engagements/[id]/blueprint/route.js",
56
54
  "/api/fs/pick-folder/route": "app/api/fs/pick-folder/route.js",
57
- "/api/hail/engagements/[id]/governance/route": "app/api/hail/engagements/[id]/governance/route.js",
55
+ "/api/hail/engagements/[id]/blueprint/route": "app/api/hail/engagements/[id]/blueprint/route.js",
58
56
  "/api/hail/engagements/[id]/diagnostic/route": "app/api/hail/engagements/[id]/diagnostic/route.js",
59
- "/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
57
+ "/api/hail/engagements/[id]/governance/route": "app/api/hail/engagements/[id]/governance/route.js",
58
+ "/api/config/route": "app/api/config/route.js",
60
59
  "/api/hail/engagements/[id]/pilot/route": "app/api/hail/engagements/[id]/pilot/route.js",
61
- "/api/hail/engagements/[id]/setup-package/route": "app/api/hail/engagements/[id]/setup-package/route.js",
62
- "/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
63
60
  "/api/hail/engagements/[id]/quarterly/route": "app/api/hail/engagements/[id]/quarterly/route.js",
64
- "/api/hail/engagements/route": "app/api/hail/engagements/route.js",
61
+ "/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
62
+ "/api/hail/engagements/[id]/setup-package/route": "app/api/hail/engagements/[id]/setup-package/route.js",
63
+ "/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
64
+ "/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
65
65
  "/api/hail/interviews/[id]/responses/route": "app/api/hail/interviews/[id]/responses/route.js",
66
66
  "/api/hail/setup-packages/[id]/apply/route": "app/api/hail/setup-packages/[id]/apply/route.js",
67
- "/api/hail/setup-packages/validate/route": "app/api/hail/setup-packages/validate/route.js",
68
67
  "/api/hail/interviews/[id]/route": "app/api/hail/interviews/[id]/route.js",
68
+ "/api/hail/setup-packages/validate/route": "app/api/hail/setup-packages/validate/route.js",
69
69
  "/api/heartbeat/tick/route": "app/api/heartbeat/tick/route.js",
70
70
  "/api/heartbeat/worker/route": "app/api/heartbeat/worker/route.js",
71
+ "/api/help/route": "app/api/help/route.js",
71
72
  "/api/hermes/jobs/[id]/route": "app/api/hermes/jobs/[id]/route.js",
72
73
  "/api/hermes/jobs/[id]/events/route": "app/api/hermes/jobs/[id]/events/route.js",
73
74
  "/api/hermes/jobs/route": "app/api/hermes/jobs/route.js",
74
- "/api/brand/route": "app/api/brand/route.js",
75
- "/api/help/route": "app/api/help/route.js",
76
75
  "/api/integrations/google/callback/route": "app/api/integrations/google/callback/route.js",
77
76
  "/api/integrations/google/oauth/route": "app/api/integrations/google/oauth/route.js",
77
+ "/api/events/stream/route": "app/api/events/stream/route.js",
78
78
  "/api/marketplace/open-design/route": "app/api/marketplace/open-design/route.js",
79
- "/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
80
79
  "/api/marketplace/route": "app/api/marketplace/route.js",
81
- "/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
82
80
  "/api/mines/import-roots/route": "app/api/mines/import-roots/route.js",
83
81
  "/api/mines/portfolio/route": "app/api/mines/portfolio/route.js",
84
82
  "/api/mines/projects/[id]/chunks/route": "app/api/mines/projects/[id]/chunks/route.js",
85
- "/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
86
83
  "/api/mines/projects/[id]/diligence/route": "app/api/mines/projects/[id]/diligence/route.js",
87
84
  "/api/mines/projects/[id]/publish/route": "app/api/mines/projects/[id]/publish/route.js",
85
+ "/api/mines/projects/route": "app/api/mines/projects/route.js",
88
86
  "/api/missions/route": "app/api/missions/route.js",
89
87
  "/api/models/route": "app/api/models/route.js",
90
88
  "/api/onboarding/blueprint/route": "app/api/onboarding/blueprint/route.js",
91
89
  "/api/onboarding/launch/route": "app/api/onboarding/launch/route.js",
92
- "/api/orchestrator/command/route": "app/api/orchestrator/command/route.js",
90
+ "/api/hail/engagements/route": "app/api/hail/engagements/route.js",
91
+ "/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
93
92
  "/api/org/route": "app/api/org/route.js",
94
- "/api/orgs/[id]/invites/route": "app/api/orgs/[id]/invites/route.js",
95
93
  "/api/orgs/[id]/invites/[inviteId]/route": "app/api/orgs/[id]/invites/[inviteId]/route.js",
94
+ "/api/orgs/[id]/invites/route": "app/api/orgs/[id]/invites/route.js",
96
95
  "/api/orgs/[id]/members/[userId]/role/route": "app/api/orgs/[id]/members/[userId]/role/route.js",
97
- "/api/mines/projects/route": "app/api/mines/projects/route.js",
98
96
  "/api/orgs/[id]/members/[userId]/route": "app/api/orgs/[id]/members/[userId]/route.js",
99
97
  "/api/orgs/[id]/members/route": "app/api/orgs/[id]/members/route.js",
98
+ "/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
100
99
  "/api/orgs/invites/pending/route": "app/api/orgs/invites/pending/route.js",
100
+ "/api/orgs/[id]/route": "app/api/orgs/[id]/route.js",
101
101
  "/api/orgs/join/route": "app/api/orgs/join/route.js",
102
102
  "/api/orgs/route": "app/api/orgs/route.js",
103
103
  "/api/printing-press/install/route": "app/api/printing-press/install/route.js",
104
104
  "/api/printing-press/clis/route": "app/api/printing-press/clis/route.js",
105
105
  "/api/printing-press/security-mode/route": "app/api/printing-press/security-mode/route.js",
106
- "/api/privacy/verify/route": "app/api/privacy/verify/route.js",
106
+ "/api/orchestrator/command/route": "app/api/orchestrator/command/route.js",
107
107
  "/api/processes/[id]/route": "app/api/processes/[id]/route.js",
108
+ "/api/processes/[id]/share-link/route": "app/api/processes/[id]/share-link/route.js",
108
109
  "/api/processes/[id]/stages/[stageId]/override/route": "app/api/processes/[id]/stages/[stageId]/override/route.js",
109
- "/api/processes/[id]/stages/[stageId]/submit/route": "app/api/processes/[id]/stages/[stageId]/submit/route.js",
110
- "/api/privacy/config/route": "app/api/privacy/config/route.js",
111
110
  "/api/processes/[id]/stages/[stageId]/retry/route": "app/api/processes/[id]/stages/[stageId]/retry/route.js",
112
- "/api/processes/definitions/[slug]/route": "app/api/processes/definitions/[slug]/route.js",
111
+ "/api/processes/[id]/stages/[stageId]/submit/route": "app/api/processes/[id]/stages/[stageId]/submit/route.js",
112
+ "/api/privacy/verify/route": "app/api/privacy/verify/route.js",
113
113
  "/api/processes/definitions/[slug]/settings/route": "app/api/processes/definitions/[slug]/settings/route.js",
114
- "/api/orgs/[id]/route": "app/api/orgs/[id]/route.js",
115
- "/api/processes/definitions/validate/route": "app/api/processes/definitions/validate/route.js",
116
114
  "/api/processes/definitions/route": "app/api/processes/definitions/route.js",
115
+ "/api/processes/definitions/validate/route": "app/api/processes/definitions/validate/route.js",
117
116
  "/api/processes/route": "app/api/processes/route.js",
118
117
  "/api/processes/start-and-route/route": "app/api/processes/start-and-route/route.js",
119
118
  "/api/projects/[slug]/library/route": "app/api/projects/[slug]/library/route.js",
120
119
  "/api/projects/[slug]/route": "app/api/projects/[slug]/route.js",
121
120
  "/api/projects/route": "app/api/projects/route.js",
121
+ "/api/privacy/config/route": "app/api/privacy/config/route.js",
122
122
  "/api/runs/claude-code-dry-run/route": "app/api/runs/claude-code-dry-run/route.js",
123
123
  "/api/runs/competitor-report/route": "app/api/runs/competitor-report/route.js",
124
- "/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
125
124
  "/api/runs/engine-ping/route": "app/api/runs/engine-ping/route.js",
125
+ "/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
126
126
  "/api/schedules/upsert/route": "app/api/schedules/upsert/route.js",
127
- "/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
128
- "/api/settings/trust-mode/route": "app/api/settings/trust-mode/route.js",
129
- "/api/secrets/route": "app/api/secrets/route.js",
127
+ "/api/runs/approve-claude-run/route": "app/api/runs/approve-claude-run/route.js",
130
128
  "/api/secrets/[name]/route": "app/api/secrets/[name]/route.js",
131
- "/api/processes/[id]/share-link/route": "app/api/processes/[id]/share-link/route.js",
132
- "/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
133
- "/api/share/[token]/route": "app/api/share/[token]/route.js",
129
+ "/api/secrets/route": "app/api/secrets/route.js",
130
+ "/api/settings/trust-mode/route": "app/api/settings/trust-mode/route.js",
131
+ "/api/share/[token]/otp/route": "app/api/share/[token]/otp/route.js",
132
+ "/api/processes/definitions/[slug]/route": "app/api/processes/definitions/[slug]/route.js",
134
133
  "/api/share/space/[token]/otp/route": "app/api/share/space/[token]/otp/route.js",
134
+ "/api/share/space/[token]/route": "app/api/share/space/[token]/route.js",
135
135
  "/api/share/space/[token]/verify/route": "app/api/share/space/[token]/verify/route.js",
136
- "/api/runs/approve-claude-run/route": "app/api/runs/approve-claude-run/route.js",
137
- "/api/shared/spaces/publish/route": "app/api/shared/spaces/publish/route.js",
136
+ "/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
137
+ "/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
138
138
  "/api/shared/spaces/route": "app/api/shared/spaces/route.js",
139
+ "/api/shared/spaces/publish/route": "app/api/shared/spaces/publish/route.js",
139
140
  "/api/shared/spaces/status/route": "app/api/shared/spaces/status/route.js",
140
141
  "/api/state/route": "app/api/state/route.js",
141
142
  "/api/shared/spaces/unpublish/route": "app/api/shared/spaces/unpublish/route.js",
142
- "/api/share/space/[token]/route": "app/api/share/space/[token]/route.js",
143
143
  "/api/tasks/[id]/active-run/route": "app/api/tasks/[id]/active-run/route.js",
144
144
  "/api/tasks/[id]/attachments/route": "app/api/tasks/[id]/attachments/route.js",
145
+ "/api/system/update/route": "app/api/system/update/route.js",
145
146
  "/api/tasks/[id]/checklist/[itemId]/route": "app/api/tasks/[id]/checklist/[itemId]/route.js",
146
147
  "/api/tasks/[id]/checklist/route": "app/api/tasks/[id]/checklist/route.js",
147
- "/api/system/update/route": "app/api/system/update/route.js",
148
+ "/api/tasks/[id]/checkout/route": "app/api/tasks/[id]/checkout/route.js",
148
149
  "/api/tasks/[id]/children/route": "app/api/tasks/[id]/children/route.js",
149
- "/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
150
150
  "/api/tasks/[id]/events/route": "app/api/tasks/[id]/events/route.js",
151
+ "/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
151
152
  "/api/tasks/[id]/live-runs/route": "app/api/tasks/[id]/live-runs/route.js",
152
153
  "/api/tasks/[id]/release/route": "app/api/tasks/[id]/release/route.js",
153
- "/api/share/[token]/otp/route": "app/api/share/[token]/otp/route.js",
154
- "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
155
154
  "/api/tasks/route": "app/api/tasks/route.js",
156
155
  "/api/tool-allowlists/[id]/route": "app/api/tool-allowlists/[id]/route.js",
157
156
  "/api/tool-allowlists/route": "app/api/tool-allowlists/route.js",
158
- "/api/tools/[name]/approve/route": "app/api/tools/[name]/approve/route.js",
159
157
  "/api/tool-egress/route": "app/api/tool-egress/route.js",
160
- "/api/tools/route": "app/api/tools/route.js",
158
+ "/api/tools/[name]/approve/route": "app/api/tools/[name]/approve/route.js",
161
159
  "/api/tools/[name]/route": "app/api/tools/[name]/route.js",
160
+ "/api/share/[token]/route": "app/api/share/[token]/route.js",
162
161
  "/api/transcripts/route": "app/api/transcripts/route.js",
163
162
  "/api/voice/providers/route": "app/api/voice/providers/route.js",
164
- "/api/voice/realtime/tool-result/route": "app/api/voice/realtime/tool-result/route.js",
163
+ "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
165
164
  "/api/voice/realtime/context/route": "app/api/voice/realtime/context/route.js",
165
+ "/api/voice/realtime/tool-result/route": "app/api/voice/realtime/tool-result/route.js",
166
166
  "/api/voice/realtime/tools/route": "app/api/voice/realtime/tools/route.js",
167
167
  "/api/voice/realtime/session/route": "app/api/voice/realtime/session/route.js",
168
168
  "/api/voice/tts/route": "app/api/voice/tts/route.js",
169
169
  "/api/whatsapp/messages/route": "app/api/whatsapp/messages/route.js",
170
- "/api/whatsapp/send/route": "app/api/whatsapp/send/route.js",
170
+ "/api/whatsapp/allowlist/route": "app/api/whatsapp/allowlist/route.js",
171
171
  "/api/whatsapp/qr/route": "app/api/whatsapp/qr/route.js",
172
172
  "/api/whatsapp/status/route": "app/api/whatsapp/status/route.js",
173
- "/api/whatsapp/allowlist/route": "app/api/whatsapp/allowlist/route.js",
174
- "/api/tasks/[id]/checkout/route": "app/api/tasks/[id]/checkout/route.js",
173
+ "/api/whatsapp/send/route": "app/api/whatsapp/send/route.js",
175
174
  "/api/shared/spaces/[id]/acl/route": "app/api/shared/spaces/[id]/acl/route.js",
175
+ "/api/tools/route": "app/api/tools/route.js",
176
176
  "/reports/[file]/route": "app/reports/[file]/route.js",
177
177
  "/brand/page": "app/brand/page.js",
178
178
  "/join/page": "app/join/page.js",
@@ -182,57 +182,57 @@
182
182
  "/whatsapp/page": "app/whatsapp/page.js",
183
183
  "/activity/page": "app/activity/page.js",
184
184
  "/agents/page": "app/agents/page.js",
185
- "/agents/[id]/page": "app/agents/[id]/page.js",
186
185
  "/admin/page": "app/admin/page.js",
186
+ "/agents/[id]/page": "app/agents/[id]/page.js",
187
+ "/audit/page": "app/audit/page.js",
187
188
  "/audit/live/page": "app/audit/live/page.js",
188
189
  "/disk/page": "app/disk/page.js",
189
- "/audit/page": "app/audit/page.js",
190
+ "/approvals/page": "app/approvals/page.js",
190
191
  "/hail/[id]/governance/page": "app/hail/[id]/governance/page.js",
191
192
  "/hail/[id]/interview/page": "app/hail/[id]/interview/page.js",
192
- "/approvals/page": "app/approvals/page.js",
193
193
  "/hail/[id]/setup/page": "app/hail/[id]/setup/page.js",
194
194
  "/hail/page": "app/hail/page.js",
195
- "/federated-ai/page": "app/federated-ai/page.js",
196
195
  "/help/[slug]/page": "app/help/[slug]/page.js",
196
+ "/hail/[id]/page": "app/hail/[id]/page.js",
197
197
  "/login/page": "app/login/page.js",
198
198
  "/marketplace/page": "app/marketplace/page.js",
199
- "/hail/[id]/page": "app/hail/[id]/page.js",
200
199
  "/help/page": "app/help/page.js",
200
+ "/federated-ai/page": "app/federated-ai/page.js",
201
201
  "/mines/page": "app/mines/page.js",
202
202
  "/missions/page": "app/missions/page.js",
203
- "/onboarding/org/page": "app/onboarding/org/page.js",
203
+ "/architecture/page": "app/architecture/page.js",
204
204
  "/mines/[projectId]/page": "app/mines/[projectId]/page.js",
205
- "/projects/[slug]/page": "app/projects/[slug]/page.js",
206
205
  "/org/page": "app/org/page.js",
207
- "/projects/page": "app/projects/page.js",
208
- "/projects/[slug]/log/page": "app/projects/[slug]/log/page.js",
206
+ "/projects/[slug]/page": "app/projects/[slug]/page.js",
207
+ "/onboarding/org/page": "app/onboarding/org/page.js",
209
208
  "/reports/page": "app/reports/page.js",
209
+ "/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
210
210
  "/schedules/page": "app/schedules/page.js",
211
+ "/projects/page": "app/projects/page.js",
212
+ "/projects/[slug]/log/page": "app/projects/[slug]/log/page.js",
213
+ "/share/space/[token]/page": "app/share/space/[token]/page.js",
211
214
  "/runtime/page": "app/runtime/page.js",
212
- "/architecture/page": "app/architecture/page.js",
213
- "/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
214
- "/share/[token]/page": "app/share/[token]/page.js",
215
215
  "/tasks/page": "app/tasks/page.js",
216
- "/share/space/[token]/page": "app/share/space/[token]/page.js",
217
216
  "/team/[agentId]/page": "app/team/[agentId]/page.js",
218
- "/team/page": "app/team/page.js",
219
- "/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
220
- "/workflows/new/[caseId]/page": "app/workflows/new/[caseId]/page.js",
221
- "/workflows/new/definition/page": "app/workflows/new/definition/page.js",
222
217
  "/tools/page": "app/tools/page.js",
218
+ "/team/page": "app/team/page.js",
219
+ "/workflows/new/page": "app/workflows/new/page.js",
223
220
  "/workflows/share/[caseId]/page": "app/workflows/share/[caseId]/page.js",
221
+ "/share/[token]/page": "app/share/[token]/page.js",
224
222
  "/tasks/[id]/page": "app/tasks/[id]/page.js",
225
223
  "/workflows/page": "app/workflows/page.js",
226
- "/workflows/new/page": "app/workflows/new/page.js",
227
- "/settings/onboarding/page": "app/settings/onboarding/page.js",
224
+ "/workflows/new/definition/page": "app/workflows/new/definition/page.js",
225
+ "/workflows/new/[caseId]/page": "app/workflows/new/[caseId]/page.js",
226
+ "/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
228
227
  "/settings/brand/page": "app/settings/brand/page.js",
228
+ "/settings/onboarding/page": "app/settings/onboarding/page.js",
229
+ "/settings/advanced/page": "app/settings/advanced/page.js",
229
230
  "/settings/appearance/page": "app/settings/appearance/page.js",
231
+ "/settings/connectors/page": "app/settings/connectors/page.js",
230
232
  "/settings/organization/page": "app/settings/organization/page.js",
231
- "/settings/account/page": "app/settings/account/page.js",
232
- "/settings/engines/page": "app/settings/engines/page.js",
233
233
  "/settings/page": "app/settings/page.js",
234
234
  "/settings/runtime/page": "app/settings/runtime/page.js",
235
- "/settings/advanced/page": "app/settings/advanced/page.js",
236
- "/settings/tools/page": "app/settings/tools/page.js",
237
- "/settings/connectors/page": "app/settings/connectors/page.js"
235
+ "/settings/engines/page": "app/settings/engines/page.js",
236
+ "/settings/account/page": "app/settings/account/page.js",
237
+ "/settings/tools/page": "app/settings/tools/page.js"
238
238
  }
@@ -383,7 +383,7 @@ ${u}`,t=d?`<div class="doc-meta" style="margin-top:14px;font-size:13px;color:var
383
383
  INSERT INTO process_stages
384
384
  (id, definition_id, position, slug, name, kind, config_json, on_pass_stage_slug, on_fail_stage_slug, required)
385
385
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
386
- `).run(`procstage:${a.slug}:${b.slug}`,h,d,b.slug,b.name,b.kind,JSON.stringify(b.config||{}),b.on_pass_stage_slug||null,b.on_fail_stage_slug||null,+(!1!==b.required))}),c.exec("COMMIT")}catch(a){try{c.exec("ROLLBACK")}catch{}throw a}return l(a.slug)}function t(a){if(!a)throw Error("archiveDefinition: slug required");let b=(0,e.getDb)(),c=b.prepare("SELECT * FROM process_definitions WHERE slug = ?").get(a);if(!c)return{ok:!1,error:"not_found"};let d=b.prepare("SELECT COUNT(*) AS n FROM process_cases WHERE definition_id = ? AND status NOT IN ('complete','cancelled','rejected','failed')").get(c.id).n;return d>0?{ok:!1,error:"in_flight_cases",in_flight_cases:d}:(b.prepare("UPDATE process_definitions SET status = 'archived', updated_at = ? WHERE id = ?").run((0,e.nowIso)(),c.id),{ok:!0,archived:!0,in_flight_cases:0})}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},9381:(a,b,c)=>{"use strict";c.d(b,{Dl:()=>i,Jh:()=>t,bo:()=>n,c_:()=>r,kM:()=>q,m4:()=>o,nJ:()=>l,un:()=>m,yQ:()=>p,z9:()=>u});var d=c(76760),e=c(73024),f=c(48161),g=c(73136);let h=d.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/paths.js")),i=d.resolve(h,".."),j=!1;function k(a,b,c){if(process.env[a])return d.resolve(process.env[a]);if(process.env[b]){let a=d.resolve(process.env[b]);return!function(a,b){if(j||b.startsWith(f.tmpdir()))return;j=!0;let c=a.replace("VILLA515_","MADARX_");console.warn(`[paths] ${a} is deprecated — rename it to ${c}. The old name still works for now but will be removed in a future release.`)}(b,a),a}let e=process.env.MADARX_HOME?d.resolve(process.env.MADARX_HOME):null;return e?d.join(e,c):d.join(i,c)}let l=k("MADARX_DATA_DIR","VILLA515_DATA_DIR","data"),m=k("MADARX_WORKSPACE","VILLA515_WORKSPACE","workspace"),n=d.join(m,"agents"),o=d.join(m,"reports"),p=d.join(m,"artifacts"),q=d.join(m,"brand"),r=d.join(l,"madarx.sqlite"),s=d.join(l,"whatsapp");function t(){for(let a of[l,m,n,o,p,q])e.mkdirSync(a,{recursive:!0})}function u(a){return d.relative(i,a)}d.join(s,"session"),d.join(i,"scripts","whatsapp-bridge")},13099:(a,b,c)=>{"use strict";c.d(b,{K:()=>l,r:()=>k});var d=c(31421),e=c(9381),f=c(26531);function g(){let a=Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||5e4);return!Number.isFinite(a)||a<=0?5e4:Math.min(5e4,Math.floor(a))}function h(a){return(0,f.nc)(String(a||"").slice(0,g()))}function i(a,b){let c=g();return a.length>=c?a:a+String(b).slice(0,c-a.length)}function j(a,b){try{if(a.pid&&"win32"!==process.platform)return void process.kill(-a.pid,b)}catch(a){if(a?.code!=="ESRCH")throw a;return}a.kill(b)}function k(a={}){let b=String(a.script||"").trim();if(!b)throw Error("script is required");if(b.length>2e4)throw Error(`script is too large: ${b.length} chars; max 20000`);let c=Math.max(1e3,Math.min(6e5,Number(a.timeout_ms||12e4)||12e4));return{command:String(process.env.MADARX_BROWSER_HARNESS_BIN||"browser-harness-hermes"),script:b,timeoutMs:c}}async function l(a={}){let{command:b,script:c,timeoutMs:f}=k(a),g=Date.now();return await new Promise(a=>{let k="",l="",m=!1,n=!1,o=null,p=(0,d.spawn)(b,[],{cwd:e.Dl,shell:!1,detached:"win32"!==process.platform,stdio:["pipe","pipe","pipe"],env:Object.fromEntries(["PATH","HOME","USER","LOGNAME","TMPDIR","LANG","LC_ALL","BU_CDP_URL","BU_CDP_PORT","BU_CHROME_PROFILE"].filter(a=>process.env[a]).map(a=>[a,process.env[a]]))}),q=setTimeout(()=>{m=!0,j(p,"SIGTERM"),o=setTimeout(()=>{n||j(p,"SIGKILL")},2e3)},f);p.stdout.on("data",a=>{k=i(k,a)}),p.stderr.on("data",a=>{l=i(l,a)}),p.on("error",c=>{n||(n=!0,clearTimeout(q),o&&clearTimeout(o),a({ok:!1,tool:"browser_harness_run",status:"failed",command:b,error:c.message,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g}))}),p.on("close",(c,d)=>{if(n)return;n=!0,clearTimeout(q),o&&clearTimeout(o);let e=m?"timeout":d?"failed":0===c?"complete":"failed";a({ok:0===c&&!d&&!m,tool:"browser_harness_run",status:e,command:b,exit_code:c,signal:d,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g})}),p.stdin.end(`${c}
386
+ `).run(`procstage:${a.slug}:${b.slug}`,h,d,b.slug,b.name,b.kind,JSON.stringify(b.config||{}),b.on_pass_stage_slug||null,b.on_fail_stage_slug||null,+(!1!==b.required))}),c.exec("COMMIT")}catch(a){try{c.exec("ROLLBACK")}catch{}throw a}return l(a.slug)}function t(a){if(!a)throw Error("archiveDefinition: slug required");let b=(0,e.getDb)(),c=b.prepare("SELECT * FROM process_definitions WHERE slug = ?").get(a);if(!c)return{ok:!1,error:"not_found"};let d=b.prepare("SELECT COUNT(*) AS n FROM process_cases WHERE definition_id = ? AND status NOT IN ('complete','cancelled','rejected','failed')").get(c.id).n;return d>0?{ok:!1,error:"in_flight_cases",in_flight_cases:d}:(b.prepare("UPDATE process_definitions SET status = 'archived', updated_at = ? WHERE id = ?").run((0,e.nowIso)(),c.id),{ok:!0,archived:!0,in_flight_cases:0})}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},9381:(a,b,c)=>{"use strict";c.d(b,{Dl:()=>i,Jh:()=>v,QG:()=>j,bo:()=>p,c_:()=>t,kM:()=>s,m4:()=>q,nJ:()=>n,un:()=>o,wn:()=>k,yQ:()=>r,z9:()=>w});var d=c(76760),e=c(73024),f=c(48161),g=c(73136);let h=d.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/paths.js")),i=d.resolve(h,".."),j=process.env.MADARX_PKG_ROOT?d.resolve(process.env.MADARX_PKG_ROOT):i;function k(...a){for(let b of a)try{if(b&&e.statSync(b).isDirectory())return b}catch{}return process.cwd()}let l=!1;function m(a,b,c){if(process.env[a])return d.resolve(process.env[a]);if(process.env[b]){let a=d.resolve(process.env[b]);return!function(a,b){if(l||b.startsWith(f.tmpdir()))return;l=!0;let c=a.replace("VILLA515_","MADARX_");console.warn(`[paths] ${a} is deprecated — rename it to ${c}. The old name still works for now but will be removed in a future release.`)}(b,a),a}let e=process.env.MADARX_HOME?d.resolve(process.env.MADARX_HOME):null;return e?d.join(e,c):d.join(i,c)}let n=m("MADARX_DATA_DIR","VILLA515_DATA_DIR","data"),o=m("MADARX_WORKSPACE","VILLA515_WORKSPACE","workspace"),p=d.join(o,"agents"),q=d.join(o,"reports"),r=d.join(o,"artifacts"),s=d.join(o,"brand"),t=d.join(n,"madarx.sqlite"),u=d.join(n,"whatsapp");function v(){for(let a of[n,o,p,q,r,s])e.mkdirSync(a,{recursive:!0})}function w(a){return d.relative(i,a)}d.join(u,"session"),d.join(i,"scripts","whatsapp-bridge")},13099:(a,b,c)=>{"use strict";c.d(b,{K:()=>l,r:()=>k});var d=c(31421),e=c(9381),f=c(26531);function g(){let a=Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||5e4);return!Number.isFinite(a)||a<=0?5e4:Math.min(5e4,Math.floor(a))}function h(a){return(0,f.nc)(String(a||"").slice(0,g()))}function i(a,b){let c=g();return a.length>=c?a:a+String(b).slice(0,c-a.length)}function j(a,b){try{if(a.pid&&"win32"!==process.platform)return void process.kill(-a.pid,b)}catch(a){if(a?.code!=="ESRCH")throw a;return}a.kill(b)}function k(a={}){let b=String(a.script||"").trim();if(!b)throw Error("script is required");if(b.length>2e4)throw Error(`script is too large: ${b.length} chars; max 20000`);let c=Math.max(1e3,Math.min(6e5,Number(a.timeout_ms||12e4)||12e4));return{command:String(process.env.MADARX_BROWSER_HARNESS_BIN||"browser-harness-hermes"),script:b,timeoutMs:c}}async function l(a={}){let{command:b,script:c,timeoutMs:f}=k(a),g=Date.now();return await new Promise(a=>{let k="",l="",m=!1,n=!1,o=null,p=(0,d.spawn)(b,[],{cwd:(0,e.wn)(e.QG,e.un),shell:!1,detached:"win32"!==process.platform,stdio:["pipe","pipe","pipe"],env:Object.fromEntries(["PATH","HOME","USER","LOGNAME","TMPDIR","LANG","LC_ALL","BU_CDP_URL","BU_CDP_PORT","BU_CHROME_PROFILE"].filter(a=>process.env[a]).map(a=>[a,process.env[a]]))}),q=setTimeout(()=>{m=!0,j(p,"SIGTERM"),o=setTimeout(()=>{n||j(p,"SIGKILL")},2e3)},f);p.stdout.on("data",a=>{k=i(k,a)}),p.stderr.on("data",a=>{l=i(l,a)}),p.on("error",c=>{n||(n=!0,clearTimeout(q),o&&clearTimeout(o),a({ok:!1,tool:"browser_harness_run",status:"failed",command:b,error:c.message,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g}))}),p.on("close",(c,d)=>{if(n)return;n=!0,clearTimeout(q),o&&clearTimeout(o);let e=m?"timeout":d?"failed":0===c?"complete":"failed";a({ok:0===c&&!d&&!m,tool:"browser_harness_run",status:e,command:b,exit_code:c,signal:d,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g})}),p.stdin.end(`${c}
387
387
  `)})}},13331:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Q:()=>t});var e=c(34255),f=c(60105),g=c(32688),h=c(58708),i=c(4160),j=c(16838),k=c(81833),l=a([e,f,g,h,i,k]);[e,f,g,h,i,k]=l.then?(await l)():l;let u=new Set(["data_quality_report","interpretation_memo","due_diligence_memo","investor_presentation","project_package","pfs_readiness_report"]),v=process.env.MADARX_APP_ORIGIN||"http://127.0.0.1:8787";function m(a,b=3){if(null==a||Number.isNaN(Number(a)))return null;let c=10**b;return Math.round(Number(a)*c)/c}function n(a){if(null==a||!Number.isFinite(Number(a)))return"n/a";let b=Number(a);return Math.abs(b)>=1e9?`$${(b/1e9).toFixed(2)}B`:Math.abs(b)>=1e6?`$${(b/1e6).toFixed(1)}M`:Math.abs(b)>=1e3?`$${(b/1e3).toFixed(0)}k`:`$${b.toFixed(0)}`}function o(a,b=0){return null!=a&&Number.isFinite(Number(a))?new Intl.NumberFormat("en-US",{maximumFractionDigits:b}).format(Number(a)):"n/a"}let w=RegExp("\\$\\s?\\d[\\d,]*(?:\\.\\d+)?(?:\\s?(?:B|M|bn|k))?|\\d[\\d,]*(?:\\.\\d+)?\\s?(?:%|‰)|\\b\\d[\\d,]*(?:\\.\\d+)?\\s?(?:ppm|ppb|g\\/t|gpt|oz|lbs?|kg|kt|mt|moz|mlb|tonnes?|tons?|km|cm|mm|m|ha|usd|t)(?![a-z])|\\b\\d{1,3}(?:,\\d{3})+\\b|\\b\\d+\\.\\d+\\b","gi");function p(a){return null==a?"":String(a).replace(w,"[see figures]")}function q(a,b){let c=a&&"object"==typeof a?a[b]:null;return Array.isArray(c)?c.map(a=>p(a).trim()).filter(Boolean).join("\n\n"):c?p(c).trim():""}async function r(a,b,c={}){let d=b.id,e=a.prepare(`
388
388
  SELECT COUNT(*) AS n,
389
389
  AVG(au_ppm) AS avg_au, MAX(au_ppm) AS max_au,
@@ -2947,11 +2947,11 @@ Next action: choose a specialized agent, create a local run folder, keep human-i
2947
2947
  SELECT COUNT(*) AS n,
2948
2948
  SUM(CASE WHEN au_ppm IS NOT NULL OR ag_ppm IS NOT NULL OR cu_pct IS NOT NULL THEN 1 ELSE 0 END) AS grade_n
2949
2949
  FROM mines_assay_samples WHERE project_id = ?
2950
- `).get(a)||{n:0,grade_n:0}).grade_n||0)>0,i=d.has("resource_estimate");d.has("reserve_estimate"),d.has("opex"),d.has("production_schedule");let j=h.filter(a=>!d.has(a)),k=0===j.length,l=i||f,m=String(c.asset_stage||"").toLowerCase(),n=m.includes("exploration")||m.includes("prospect")||m.includes("early");if("t1_in_situ"===b.force_tier)return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:k,t2_blocked:!0,blocking_inputs_missing:j,t2_blocking_reason:j.length?`T2 DCF blocked: missing ${j.join(", ")}.`:"T1 was explicitly requested.",confidence:i?"moderate":"indicative",reason:"T1 in-situ valuation explicitly requested."};if(k&&!n)return{status:"ok",project_id:a,tier:"t2_dcf",t1_ready:l,t2_ready:!0,t2_blocked:!1,blocking_inputs_missing:[],t2_blocking_reason:null,confidence:"modelled",reason:"Reserve estimate, production schedule, and operating-cost facts are present; DCF is allowed."};let o="t2_dcf"===b.force_tier,p=[...new Set([...j,...k&&n?["asset_stage_not_dcf_ready"]:[]])];return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:!1,t2_blocked:!0,blocking_inputs_missing:p,t2_blocking_reason:p.length?`T2 DCF blocked: missing or unsuitable inputs (${p.join(", ")}).`:"T2 DCF blocked by exploration-stage policy.",confidence:i?"moderate":"indicative",reason:o?"Forced T2 request was rejected because DCF prerequisites are incomplete or the asset stage is not DCF-ready; using T1 in-situ instead.":"Exploration/resource-stage projects use T1 in-situ until reserve, production schedule, and cost inputs are present."}}d()}catch(a){d(a)}})},72189:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>t,Z6:()=>p,dd:()=>n,mr:()=>r,sq:()=>q,sv:()=>o,vO:()=>s});var e=c(73024),f=c(76760),g=c(60105),h=c(8437),i=c(26531),j=a([g,h]);[g,h]=j.then?(await j)():j;let u=new Set([".git","node_modules",".next","data"]);function k(a,b,c={}){(0,g.appendAudit)({type:`local.${a}`,summary:`${a} ${b}`,status:b,meta:c})}function l(a,b,c){return(0,h.D6)({action_type:a,risk:"medium",summary:`${a} requested for ${c}`,payload:{input:{...b,content:b.content?`[${String(b.content).length} chars]`:void 0},path:c}})}function m(a){return b=>b.path===a}async function n(a={}){let{path:b}=(0,i.hC)(a.path),c=Number(process.env.MADARX_FILE_READ_MAX_BYTES||1e5),d=e.statSync(b);if(!d.isFile())throw Error("Path is not a file");if(d.size>c)throw Error(`File too large: ${d.size} bytes`);let f=e.readFileSync(b,"utf8").split(/\r?\n/),g=Math.max(1,Number(a.offset||1)),h=Math.max(1,Math.min(2e3,Number(a.limit||500))),j=f.slice(g-1,g-1+h).join("\n");return k("file_read","complete",{path:b,bytes:Buffer.byteLength(j)}),{ok:!0,tool:"file_read",path:b,content:(0,i.nc)(j),metadata:{line_count:f.length,offset:g,limit:h}}}async function o(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=Math.max(1,Math.min(500,Number(a.limit||100))),d=[];for(let a of e.readdirSync(b,{withFileTypes:!0})){if(d.length>=c)break;try{(0,i.hC)(f.join(b,a.name))}catch{continue}u.has(a.name)||d.push({name:a.name,type:a.isDirectory()?"directory":a.isFile()?"file":"other"})}return k("directory_list","complete",{path:b,count:d.length}),{ok:!0,tool:"directory_list",path:b,entries:d,metadata:{count:d.length}}}function p(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);return{absPath:b}}async function q(a={},b={}){let{absPath:c}=p(a);if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_write",matches:m(c)})){let b=l("file_write",a,c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File writes require approval"}}return!1!==a.create_dirs&&e.mkdirSync(f.dirname(c),{recursive:!0}),e.writeFileSync(c,String(a.content??""),"utf8"),k("file_write","complete",{path:c}),{ok:!0,tool:"file_write",path:c,metadata:{bytes:Buffer.byteLength(String(a.content??""))}}}function r(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);let c=String(a.old_string??"");if(!c)throw Error("old_string is required");let d=e.readFileSync(b,"utf8"),f=d.split(c).length-1;if(!f)throw Error("old_string not found");if(f>1&&!a.replace_all)throw Error("old_string is ambiguous");return{absPath:b,content:d,matches:f,oldString:c}}async function s(a={},b={}){let{absPath:c,content:d,matches:f,oldString:g}=r(a),i=String(a.new_string??"");if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_patch",matches:m(c)})){let b=l("file_patch",{...a,new_string:`[${i.length} chars]`},c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File patches require approval"}}return e.writeFileSync(c,a.replace_all?d.split(g).join(i):d.replace(g,i),"utf8"),k("file_patch","complete",{path:c,replacements:a.replace_all?f:1}),{ok:!0,tool:"file_patch",path:c,metadata:{replacements:a.replace_all?f:1}}}async function t(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=String(a.pattern||"");if(!c)throw Error("pattern is required");let d=Math.max(1,Math.min(200,Number(a.limit||50))),g=RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=a.target||"content",j=a.file_glob?String(a.file_glob):null,l=j?RegExp("^"+j.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"):null,m=[];for(let a of function a(b,c=[],d=1e3){if(c.length>=d)return c;for(let g of e.readdirSync(b,{withFileTypes:!0})){if(u.has(g.name))continue;let e=f.join(b,g.name);if(g.isDirectory()?a(e,c,d):g.isFile()&&c.push(e),c.length>=d)break}return c}(b,[],5e3)){if(m.length>=d)break;try{(0,i.hC)(a)}catch{continue}if(!l||l.test(f.basename(a))){if("path"===h||"name"===h){g.test("name"===h?f.basename(a):a)&&m.push({path:a});continue}e.statSync(a).size>25e4||/\.sqlite/.test(a)||/^\.env/.test(f.basename(a))||e.readFileSync(a,"utf8").split(/\r?\n/).forEach((b,c)=>{m.length<d&&g.test(b)&&m.push({path:a,line:c+1,text:(0,i.nc)(b)})})}}return k("file_search","complete",{path:b,count:m.length}),{ok:!0,tool:"file_search",path:b,results:m,metadata:{count:m.length}}}d()}catch(a){d(a)}})},72326:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>k,GK:()=>m,Iu:()=>t,M2:()=>s,No:()=>p,Qp:()=>l,bD:()=>r,d:()=>v});var e=c(76760),f=c(31421),g=c(73136),h=c(19151),i=c(9001),j=a([h,i]);[h,i]=j.then?(await j)():j;let w=e.resolve(e.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/agent-engines.js")),".."),x=process.env.OLLAMA_BASE_URL||"http://127.0.0.1:11434",y=[{id:"anthropic",label:"Anthropic API",description:"Server-native Claude Messages API brain with madarX governed tool_use.",default_model:"claude-sonnet-4-6",mode:"api"},{id:"claude-code",label:"Claude Code CLI",description:"Local Claude Code runner for developer/repo agents using the authenticated CLI.",default_model:"sonnet",mode:"local-cli"},{id:"ollama",label:"Ollama Local LLM",description:"Local or Ollama-hosted models through the Ollama chat API.",default_model:process.env.OLLAMA_MODEL||"",mode:"local-llm"},{id:"hermes",label:"Hermes",description:"Hermes as a meta-agent/router. Available through governed Hermes job tools.",default_model:"",mode:"orchestrator"},{id:"codex",label:"Codex CLI",description:"Local Codex CLI coding runner. Available through approval-gated terminal/tool workflows.",default_model:"",mode:"local-cli"}];function k(a){let b=String(a||"").trim().toLowerCase();return b?["anthropic","anthropic-api","claude-api","api"].includes(b)?"anthropic":["claude-code","claude code","claude_cli","claude-cli"].includes(b)?"claude-code":b.includes("hermes")&&b.includes("claude code")?"anthropic":["ollama","local","local-llm","local llm"].includes(b)?"ollama":["hermes","hermes-agent"].includes(b)?"hermes":["codex","codex-cli","openai-codex"].includes(b)?"codex":b:"claude-code"}function l(a){let b=k(a);return y.find(a=>a.id===b)?.default_model||""}async function m(a){let b=k(a);if("anthropic"===b){let{resolveAnthropicApiKey:a}=await Promise.resolve().then(c.bind(c,65451));if(!a()){let a=Error("The Anthropic API engine is selected but no API key is configured. Add ANTHROPIC_API_KEY to the secrets vault or .env.local, or switch to the Claude Code CLI engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("claude-code"===b){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return!0;if(!await n("claude")){let a=Error("The Claude Code CLI engine is selected but the `claude` binary is not installed or not on PATH. Install Claude Code and sign in, or switch to the Anthropic API engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("codex"===b){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return!0;if(!await n("codex")){let a=Error("The Codex CLI engine is selected but the `codex` binary is not installed or not on PATH.");throw a.code="engine_unavailable",a.engine=b,a}}return!0}async function n(a){return new Promise(b=>{let c=(0,f.spawn)("sh",["-lc",`command -v ${a}`],{shell:!1});c.on("error",()=>b(!1)),c.on("close",a=>b(0===a))})}async function o(){try{let a=await fetch(`${x}/api/tags`,{signal:AbortSignal.timeout(1500)});if(!a.ok)return[];return((await a.json()).models||[]).map(a=>({name:a.name||a.model,model:a.model||a.name,size:a.size||0,details:a.details||{},local:!a.remote_host,remote_host:a.remote_host||null})).filter(a=>a.name)}catch{return[]}}async function p(){let[a,b,c]=await Promise.all([o(),n("claude"),n("codex")]),d=process.env.OLLAMA_MODEL||(process.env.MADARX_MOCK_OLLAMA_RESPONSE?"qwen3.5:latest":""),e=a[0]?.name||d;return y.map(f=>({...f,default_model:"ollama"===f.id?e:f.default_model,available:"claude-code"===f.id?b:"codex"===f.id?c:"ollama"!==f.id||!!(a.length||process.env.MADARX_MOCK_OLLAMA_RESPONSE),models:"ollama"===f.id?a.length?a:d?[{name:d,model:d,local:!0,fallback:!0}]:[]:f.default_model?[{name:f.default_model,model:f.default_model}]:[]}))}function q(a,b,{cwd:c=process.cwd(),timeoutMs:d=12e4,closeStdin:e=!1,onChunk:g,env:h}={}){return new Promise((i,j)=>{let k=(0,f.spawn)(a,b,{shell:!1,cwd:c,env:h??{...process.env}});e&&k.stdin.end();let l="",m="",n=setTimeout(()=>{k.kill("SIGTERM"),j(Error(`${a} timed out after ${d}ms`))},d);k.stdout.on("data",a=>{let b=a.toString();l+=b,g?.(b)}),k.stderr.on("data",a=>{m+=a.toString()}),k.on("error",a=>{clearTimeout(n),j(a)}),k.on("close",b=>{if(clearTimeout(n),0===b||1===b&&l.trim())return void i(l.trim());j(Error(`${a} exited ${b}: ${m.trim()||l.trim()}`))})})}async function r({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){if(process.env.MADARX_MOCK_OLLAMA_RESPONSE)return process.env.MADARX_MOCK_OLLAMA_RESPONSE;let e=await fetch(`${x}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a||process.env.OLLAMA_MODEL,stream:!1,options:{num_predict:d},messages:[{role:"system",content:b},{role:"user",content:c}]})});if(!e.ok)throw Error(`Ollama chat failed: HTTP ${e.status}`);let f=await e.json(),g=f.message?.content||f.response||"";if(!g.trim())throw Error("Ollama returned no text");return g.trim()}async function s({model:a,systemPrompt:b,userMessage:c,maxTurns:d,allowedTools:e=[],timeoutMs:f,onChunk:g,onAssistantText:h,onToolStart:j,onToolResult:k,cwd:l,addDirs:m=[],agentId:n,agentName:o}={}){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE;let p=`${b}
2950
+ `).get(a)||{n:0,grade_n:0}).grade_n||0)>0,i=d.has("resource_estimate");d.has("reserve_estimate"),d.has("opex"),d.has("production_schedule");let j=h.filter(a=>!d.has(a)),k=0===j.length,l=i||f,m=String(c.asset_stage||"").toLowerCase(),n=m.includes("exploration")||m.includes("prospect")||m.includes("early");if("t1_in_situ"===b.force_tier)return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:k,t2_blocked:!0,blocking_inputs_missing:j,t2_blocking_reason:j.length?`T2 DCF blocked: missing ${j.join(", ")}.`:"T1 was explicitly requested.",confidence:i?"moderate":"indicative",reason:"T1 in-situ valuation explicitly requested."};if(k&&!n)return{status:"ok",project_id:a,tier:"t2_dcf",t1_ready:l,t2_ready:!0,t2_blocked:!1,blocking_inputs_missing:[],t2_blocking_reason:null,confidence:"modelled",reason:"Reserve estimate, production schedule, and operating-cost facts are present; DCF is allowed."};let o="t2_dcf"===b.force_tier,p=[...new Set([...j,...k&&n?["asset_stage_not_dcf_ready"]:[]])];return{status:"ok",project_id:a,tier:"t1_in_situ",t1_ready:l,t2_ready:!1,t2_blocked:!0,blocking_inputs_missing:p,t2_blocking_reason:p.length?`T2 DCF blocked: missing or unsuitable inputs (${p.join(", ")}).`:"T2 DCF blocked by exploration-stage policy.",confidence:i?"moderate":"indicative",reason:o?"Forced T2 request was rejected because DCF prerequisites are incomplete or the asset stage is not DCF-ready; using T1 in-situ instead.":"Exploration/resource-stage projects use T1 in-situ until reserve, production schedule, and cost inputs are present."}}d()}catch(a){d(a)}})},72189:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>t,Z6:()=>p,dd:()=>n,mr:()=>r,sq:()=>q,sv:()=>o,vO:()=>s});var e=c(73024),f=c(76760),g=c(60105),h=c(8437),i=c(26531),j=a([g,h]);[g,h]=j.then?(await j)():j;let u=new Set([".git","node_modules",".next","data"]);function k(a,b,c={}){(0,g.appendAudit)({type:`local.${a}`,summary:`${a} ${b}`,status:b,meta:c})}function l(a,b,c){return(0,h.D6)({action_type:a,risk:"medium",summary:`${a} requested for ${c}`,payload:{input:{...b,content:b.content?`[${String(b.content).length} chars]`:void 0},path:c}})}function m(a){return b=>b.path===a}async function n(a={}){let{path:b}=(0,i.hC)(a.path),c=Number(process.env.MADARX_FILE_READ_MAX_BYTES||1e5),d=e.statSync(b);if(!d.isFile())throw Error("Path is not a file");if(d.size>c)throw Error(`File too large: ${d.size} bytes`);let f=e.readFileSync(b,"utf8").split(/\r?\n/),g=Math.max(1,Number(a.offset||1)),h=Math.max(1,Math.min(2e3,Number(a.limit||500))),j=f.slice(g-1,g-1+h).join("\n");return k("file_read","complete",{path:b,bytes:Buffer.byteLength(j)}),{ok:!0,tool:"file_read",path:b,content:(0,i.nc)(j),metadata:{line_count:f.length,offset:g,limit:h}}}async function o(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=Math.max(1,Math.min(500,Number(a.limit||100))),d=[];for(let a of e.readdirSync(b,{withFileTypes:!0})){if(d.length>=c)break;try{(0,i.hC)(f.join(b,a.name))}catch{continue}u.has(a.name)||d.push({name:a.name,type:a.isDirectory()?"directory":a.isFile()?"file":"other"})}return k("directory_list","complete",{path:b,count:d.length}),{ok:!0,tool:"directory_list",path:b,entries:d,metadata:{count:d.length}}}function p(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);return{absPath:b}}async function q(a={},b={}){let{absPath:c}=p(a);if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_write",matches:m(c)})){let b=l("file_write",a,c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File writes require approval"}}return!1!==a.create_dirs&&e.mkdirSync(f.dirname(c),{recursive:!0}),e.writeFileSync(c,String(a.content??""),"utf8"),k("file_write","complete",{path:c}),{ok:!0,tool:"file_write",path:c,metadata:{bytes:Buffer.byteLength(String(a.content??""))}}}function r(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);let c=String(a.old_string??"");if(!c)throw Error("old_string is required");let d=e.readFileSync(b,"utf8"),f=d.split(c).length-1;if(!f)throw Error("old_string not found");if(f>1&&!a.replace_all)throw Error("old_string is ambiguous");return{absPath:b,content:d,matches:f,oldString:c}}async function s(a={},b={}){let{absPath:c,content:d,matches:f,oldString:g}=r(a),i=String(a.new_string??"");if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_patch",matches:m(c)})){let b=l("file_patch",{...a,new_string:`[${i.length} chars]`},c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File patches require approval"}}return e.writeFileSync(c,a.replace_all?d.split(g).join(i):d.replace(g,i),"utf8"),k("file_patch","complete",{path:c,replacements:a.replace_all?f:1}),{ok:!0,tool:"file_patch",path:c,metadata:{replacements:a.replace_all?f:1}}}async function t(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=String(a.pattern||"");if(!c)throw Error("pattern is required");let d=Math.max(1,Math.min(200,Number(a.limit||50))),g=RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=a.target||"content",j=a.file_glob?String(a.file_glob):null,l=j?RegExp("^"+j.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"):null,m=[];for(let a of function a(b,c=[],d=1e3){if(c.length>=d)return c;for(let g of e.readdirSync(b,{withFileTypes:!0})){if(u.has(g.name))continue;let e=f.join(b,g.name);if(g.isDirectory()?a(e,c,d):g.isFile()&&c.push(e),c.length>=d)break}return c}(b,[],5e3)){if(m.length>=d)break;try{(0,i.hC)(a)}catch{continue}if(!l||l.test(f.basename(a))){if("path"===h||"name"===h){g.test("name"===h?f.basename(a):a)&&m.push({path:a});continue}e.statSync(a).size>25e4||/\.sqlite/.test(a)||/^\.env/.test(f.basename(a))||e.readFileSync(a,"utf8").split(/\r?\n/).forEach((b,c)=>{m.length<d&&g.test(b)&&m.push({path:a,line:c+1,text:(0,i.nc)(b)})})}}return k("file_search","complete",{path:b,count:m.length}),{ok:!0,tool:"file_search",path:b,results:m,metadata:{count:m.length}}}d()}catch(a){d(a)}})},72326:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>n,GK:()=>p,Iu:()=>y,M2:()=>x,No:()=>u,Qp:()=>o,bD:()=>w,d:()=>B});var e=c(76760),f=c(73024),g=c(48161),h=c(31421),i=c(73136),j=c(19151),k=c(9001),l=c(9381),m=a([j,k]);[j,k]=m.then?(await m)():m;let C=e.resolve(e.dirname((0,i.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/agent-engines.js")),".."),D=process.env.OLLAMA_BASE_URL||"http://127.0.0.1:11434",E=[{id:"anthropic",label:"Anthropic API",description:"Server-native Claude Messages API brain with madarX governed tool_use.",default_model:"claude-sonnet-4-6",mode:"api"},{id:"claude-code",label:"Claude Code CLI",description:"Local Claude Code runner for developer/repo agents using the authenticated CLI.",default_model:"sonnet",mode:"local-cli"},{id:"ollama",label:"Ollama Local LLM",description:"Local or Ollama-hosted models through the Ollama chat API.",default_model:process.env.OLLAMA_MODEL||"",mode:"local-llm"},{id:"hermes",label:"Hermes",description:"Hermes as a meta-agent/router. Available through governed Hermes job tools.",default_model:"",mode:"orchestrator"},{id:"codex",label:"Codex CLI",description:"Local Codex CLI coding runner. Available through approval-gated terminal/tool workflows.",default_model:"",mode:"local-cli"}];function n(a){let b=String(a||"").trim().toLowerCase();return b?["anthropic","anthropic-api","claude-api","api"].includes(b)?"anthropic":["claude-code","claude code","claude_cli","claude-cli"].includes(b)?"claude-code":b.includes("hermes")&&b.includes("claude code")?"anthropic":["ollama","local","local-llm","local llm"].includes(b)?"ollama":["hermes","hermes-agent"].includes(b)?"hermes":["codex","codex-cli","openai-codex"].includes(b)?"codex":b:"claude-code"}function o(a){let b=n(a);return E.find(a=>a.id===b)?.default_model||""}async function p(a){let b=n(a);if("anthropic"===b){let{resolveAnthropicApiKey:a}=await Promise.resolve().then(c.bind(c,65451));if(!a()){let a=Error("The Anthropic API engine is selected but no API key is configured. Add ANTHROPIC_API_KEY to the secrets vault or .env.local, or switch to the Claude Code CLI engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("claude-code"===b){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return!0;if(!await s("claude")){let a=Error("The Claude Code CLI engine is selected but the `claude` binary is not installed or not on PATH. Install Claude Code and sign in, or switch to the Anthropic API engine.");throw a.code="engine_unavailable",a.engine=b,a}return!0}if("codex"===b){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return!0;if(!await s("codex")){let a=Error("The Codex CLI engine is selected but the `codex` binary is not installed or not on PATH.");throw a.code="engine_unavailable",a.engine=b,a}}return!0}let F=new Map;function q(a){if(F.has(a))return F.get(a);for(let b of[process.env[`MADARX_${a.toUpperCase()}_BIN`],e.join(g.homedir(),".local","bin",a),`/opt/homebrew/bin/${a}`,`/usr/local/bin/${a}`,e.join(g.homedir(),".npm-global","bin",a)].filter(Boolean))try{return f.accessSync(b,f.constants.X_OK),F.set(a,b),b}catch{}return null}function r(a){return F.get(a)||q(a)||a}async function s(a){return!!q(a)||new Promise(b=>{let c=(0,h.spawn)("sh",["-lc",`command -v ${a}`],{shell:!1}),d="";c.stdout.on("data",a=>{d+=a.toString()}),c.on("error",()=>b(!1)),c.on("close",c=>{let f=0===c?d.trim().split("\n").pop()?.trim():"";f&&e.isAbsolute(f)&&F.set(a,f),b(0===c)})})}async function t(){try{let a=await fetch(`${D}/api/tags`,{signal:AbortSignal.timeout(1500)});if(!a.ok)return[];return((await a.json()).models||[]).map(a=>({name:a.name||a.model,model:a.model||a.name,size:a.size||0,details:a.details||{},local:!a.remote_host,remote_host:a.remote_host||null})).filter(a=>a.name)}catch{return[]}}async function u(){let[a,b,c]=await Promise.all([t(),s("claude"),s("codex")]),d=process.env.OLLAMA_MODEL||(process.env.MADARX_MOCK_OLLAMA_RESPONSE?"qwen3.5:latest":""),e=a[0]?.name||d;return E.map(f=>({...f,default_model:"ollama"===f.id?e:f.default_model,available:"claude-code"===f.id?b:"codex"===f.id?c:"ollama"!==f.id||!!(a.length||process.env.MADARX_MOCK_OLLAMA_RESPONSE),models:"ollama"===f.id?a.length?a:d?[{name:d,model:d,local:!0,fallback:!0}]:[]:f.default_model?[{name:f.default_model,model:f.default_model}]:[]}))}function v(a,b,{cwd:c=process.cwd(),timeoutMs:d=12e4,closeStdin:e=!1,onChunk:f,env:g}={}){return new Promise((i,j)=>{let k=(0,h.spawn)(a,b,{shell:!1,cwd:c,env:g??{...process.env}});e&&k.stdin.end();let l="",m="",n=setTimeout(()=>{k.kill("SIGTERM"),j(Error(`${a} timed out after ${d}ms`))},d);k.stdout.on("data",a=>{let b=a.toString();l+=b,f?.(b)}),k.stderr.on("data",a=>{m+=a.toString()}),k.on("error",a=>{clearTimeout(n),j(a)}),k.on("close",b=>{if(clearTimeout(n),0===b||1===b&&l.trim())return void i(l.trim());j(Error(`${a} exited ${b}: ${m.trim()||l.trim()}`))})})}async function w({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){if(process.env.MADARX_MOCK_OLLAMA_RESPONSE)return process.env.MADARX_MOCK_OLLAMA_RESPONSE;let e=await fetch(`${D}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a||process.env.OLLAMA_MODEL,stream:!1,options:{num_predict:d},messages:[{role:"system",content:b},{role:"user",content:c}]})});if(!e.ok)throw Error(`Ollama chat failed: HTTP ${e.status}`);let f=await e.json(),g=f.message?.content||f.response||"";if(!g.trim())throw Error("Ollama returned no text");return g.trim()}async function x({model:a,systemPrompt:b,userMessage:c,maxTurns:d,allowedTools:e=[],timeoutMs:f,onChunk:g,onAssistantText:h,onToolStart:i,onToolResult:j,cwd:l,addDirs:m=[],agentId:n,agentName:o}={}){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE;let p=`${b}
2951
2951
 
2952
- ${c}`,r=Number(d||process.env.CLAUDE_CODE_MAX_TURNS||30),t=["-p",p,"--max-turns",String(r),"--output-format","stream-json","--verbose","--permission-mode","bypassPermissions","--setting-sources","project,local,user"];for(let a of m)a&&t.push("--add-dir",a);e.length&&t.push("--allowedTools",e.join(",")),a&&"claude-code"!==a&&t.splice(2,0,"--model",a);let u=[],v=[],w="",x="",y=function({agentId:a,agentName:b,onText:c,onToolStart:d,onToolResult:e,onResult:f}){let g="",h=new Map;return function(j){let k;for(g+=j;(k=g.indexOf("\n"))>=0;){let j,l=g.slice(0,k).trim();if(g=g.slice(k+1),!l||"{"!==l[0])continue;try{j=JSON.parse(l)}catch{continue}if(!j||"object"!=typeof j)continue;if("result"===j.type){"string"==typeof j.result&&j.result.trim()&&f?.(j.result.trim());continue}let m=j.message?.content;if(Array.isArray(m)){if("assistant"===j.type){let e=m.some(a=>a?.type==="tool_use"),f=m.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");for(let g of(f&&c?.(f,{isFinal:!e}),m))g?.type==="tool_use"&&(g.id&&h.set(g.id,g.name||"tool"),d?.({id:g.id,name:g.name||"tool",input:g.input}),a&&(0,i.AC)({type:"agent_tool_start",agent_id:a,agent_name:b||a,tool:g.name||"tool",input_summary:function(a,b){if(!b||"object"!=typeof b)return"";if("Bash"===a)return String(b.command||"").slice(0,120);if("WebSearch"===a)return String(b.query||"").slice(0,120);if("WebFetch"===a)return String(b.url||"").slice(0,120);if("Read"===a||"Glob"===a||"Grep"===a||"LS"===a)return String(b.file_path||b.pattern||b.path||"").slice(0,120);if("Write"===a||"Edit"===a||"MultiEdit"===a)return String(b.file_path||"").slice(0,120);if("TodoWrite"===a)return Array.isArray(b.todos)?`${b.todos.length} todos`:"";try{return JSON.stringify(b).slice(0,120)}catch{return""}}(g.name,g.input)}))}else if("user"===j.type){for(let c of m)if(c?.type==="tool_result"){let d=h.get(c.tool_use_id)||"tool";e?.({tool_use_id:c.tool_use_id,name:d,isError:!!c.is_error}),a&&(0,i.AC)({type:"agent_tool_result",agent_id:a,agent_name:b||a,tool:d,status:c.is_error?"error":"done",isError:!!c.is_error}),h.delete(c.tool_use_id)}}}}}}({agentId:n,agentName:o,onText:(a,b={})=>{u.push(a),b.isFinal?v.push(a):w=a,h?.(u.join("").trim())},onResult:a=>{x=a},onToolStart:j,onToolResult:k});await q("claude",t,{cwd:l,timeoutMs:f??Number(process.env.CLAUDE_CODE_TICK_TIMEOUT_MS||6e5),closeStdin:!0,env:function(){let a={...process.env};return"1"===process.env.MADARX_CLI_USE_API_KEY||(delete a.ANTHROPIC_API_KEY,delete a.ANTHROPIC_AUTH_TOKEN),a}(),onChunk:a=>{y(a),g?.(a)}});let z=v.join("").trim()||w.trim()||u.join("").trim()||x.trim();if(!z)throw Error("Claude Code returned no assistant text");return z}async function t({systemPrompt:a,userMessage:b,onChunk:c}){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return process.env.MADARX_MOCK_CODEX_RESPONSE;let d=a?`${a}
2952
+ ${c}`,q=Number(d||process.env.CLAUDE_CODE_MAX_TURNS||30),s=["-p",p,"--max-turns",String(q),"--output-format","stream-json","--verbose","--permission-mode","bypassPermissions","--setting-sources","project,local,user"];for(let a of m)a&&s.push("--add-dir",a);e.length&&s.push("--allowedTools",e.join(",")),a&&"claude-code"!==a&&s.splice(2,0,"--model",a);let t=[],u=[],w="",y="",z=function({agentId:a,agentName:b,onText:c,onToolStart:d,onToolResult:e,onResult:f}){let g="",h=new Map;return function(i){let j;for(g+=i;(j=g.indexOf("\n"))>=0;){let i,l=g.slice(0,j).trim();if(g=g.slice(j+1),!l||"{"!==l[0])continue;try{i=JSON.parse(l)}catch{continue}if(!i||"object"!=typeof i)continue;if("result"===i.type){"string"==typeof i.result&&i.result.trim()&&f?.(i.result.trim());continue}let m=i.message?.content;if(Array.isArray(m)){if("assistant"===i.type){let e=m.some(a=>a?.type==="tool_use"),f=m.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");for(let g of(f&&c?.(f,{isFinal:!e}),m))g?.type==="tool_use"&&(g.id&&h.set(g.id,g.name||"tool"),d?.({id:g.id,name:g.name||"tool",input:g.input}),a&&(0,k.AC)({type:"agent_tool_start",agent_id:a,agent_name:b||a,tool:g.name||"tool",input_summary:function(a,b){if(!b||"object"!=typeof b)return"";if("Bash"===a)return String(b.command||"").slice(0,120);if("WebSearch"===a)return String(b.query||"").slice(0,120);if("WebFetch"===a)return String(b.url||"").slice(0,120);if("Read"===a||"Glob"===a||"Grep"===a||"LS"===a)return String(b.file_path||b.pattern||b.path||"").slice(0,120);if("Write"===a||"Edit"===a||"MultiEdit"===a)return String(b.file_path||"").slice(0,120);if("TodoWrite"===a)return Array.isArray(b.todos)?`${b.todos.length} todos`:"";try{return JSON.stringify(b).slice(0,120)}catch{return""}}(g.name,g.input)}))}else if("user"===i.type){for(let c of m)if(c?.type==="tool_result"){let d=h.get(c.tool_use_id)||"tool";e?.({tool_use_id:c.tool_use_id,name:d,isError:!!c.is_error}),a&&(0,k.AC)({type:"agent_tool_result",agent_id:a,agent_name:b||a,tool:d,status:c.is_error?"error":"done",isError:!!c.is_error}),h.delete(c.tool_use_id)}}}}}}({agentId:n,agentName:o,onText:(a,b={})=>{t.push(a),b.isFinal?u.push(a):w=a,h?.(t.join("").trim())},onResult:a=>{y=a},onToolStart:i,onToolResult:j});await v(r("claude"),s,{cwd:l,timeoutMs:f??Number(process.env.CLAUDE_CODE_TICK_TIMEOUT_MS||6e5),closeStdin:!0,env:function(){let a={...process.env};return"1"===process.env.MADARX_CLI_USE_API_KEY||(delete a.ANTHROPIC_API_KEY,delete a.ANTHROPIC_AUTH_TOKEN),a}(),onChunk:a=>{z(a),g?.(a)}});let A=u.join("").trim()||w.trim()||t.join("").trim()||y.trim();if(!A)throw Error("Claude Code returned no assistant text");return A}async function y({systemPrompt:a,userMessage:b,onChunk:c}){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return process.env.MADARX_MOCK_CODEX_RESPONSE;let d=a?`${a}
2953
2953
 
2954
- ${b}`:b;return q("codex",["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_TIMEOUT_MS||18e4),closeStdin:!0,onChunk:c})}async function u({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){var e;let f=(e=await (0,h.bd)([{role:"user",content:c}],b,[],{max_tokens:d,model:a}),(e?.content||[]).filter(a=>a?.type==="text"||"string"==typeof a?.text).map(a=>a.text||"").join("\n").trim());if(!f)throw Error("Anthropic returned no text");return f}async function v({agent:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){let f=k(a.engine),g=a.model||l(f);if("ollama"===f)return r({model:g,systemPrompt:b,userMessage:c,maxTokens:d});if("claude-code"===f)return s({model:g,systemPrompt:b,userMessage:c,cwd:w,addDirs:[e.join(w,"workspace"),e.join(w,"data")],agentId:a.id,agentName:a.name});if("anthropic"===f)return u({model:g,systemPrompt:b,userMessage:c,maxTokens:d});if("codex"===f)return t({systemPrompt:b,userMessage:c});if("hermes"===f)throw Error("Hermes engine is registered but scheduled autonomous ticks are not enabled yet; use its governed tool runner from the console.");throw Error(`Unknown agent engine: ${a.engine}`)}d()}catch(a){d(a)}})},73066:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Kg:()=>k,kA:()=>l,v2:()=>j});var e=c(73024),f=c(76760),g=c(9381),h=c(61423),i=a([h]);h=(i.then?(await i)():i)[0];let m="artifacts";function j(a){var b;let c=null;return(c=a&&"object"==typeof a?a:(0,h.U1)(a||h.Sk)||null)?f.join((b=c,b?.folder_path?b.folder_path:b?.slug?(0,h.ct)(b.slug):(0,h.ct)(h.Sk)),m):f.join((0,h.ct)(h.Sk),m)}function k(a){let b=j(a);return e.mkdirSync(b,{recursive:!0}),b}function l(a){if(!a)return!1;let b=f.resolve(a);return[f.resolve(g.yQ),...function(){try{return(0,h.hF)({status:"all"}).map(a=>f.resolve(j(a)))}catch{return[]}}()].some(a=>b===a||b.startsWith(`${a}${f.sep}`))}d()}catch(a){d(a)}})},73899:(a,b,c)=>{"use strict";function d(a,b=null){if(!a)return b;try{return JSON.parse(a)}catch{return b}}c.d(b,{lp:()=>g,oi:()=>d,qY:()=>h});let e=/mars|accent|primary|brand|red|orange|coral/i,f=/^#?(ffffff|000000|fff|0f0f11|111318|1a1817|f7f4ee|e8e8e5|dcdcd8)$/i;function g(a){let b=Array.isArray(a?.colors)?a.colors:[];if(0===b.length)return"#c2452a";let c=b.find(a=>e.test(a?.name||""));if(c?.value)return c.value;let d=b.find(a=>a?.value&&!f.test(a.value));return d?.value||b[0].value||"#c2452a"}function h(a){try{let b=a.prepare("SELECT slug FROM marketplace_items WHERE kind = 'agent'").all();return new Set(b.map(a=>a.slug))}catch{return new Set}}},73912:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AB:()=>y,CS:()=>s,Io:()=>w,QM:()=>v,R1:()=>z,Ww:()=>x,dh:()=>q,mM:()=>u,uT:()=>p,vV:()=>r,xP:()=>t});var e=c(73024),f=c(76760),g=c(77598),h=c(34255),i=c(9381),j=c(61423),k=c(9001),l=a([h,j,k]);[h,j,k]=l.then?(await l)():l;let A=f.join(i.nJ,"disk");function m(a){return a?{...a}:null}function n(a){return a?{...a,local_only:1===a.local_only}:null}function o(a={}){try{(0,k.jO)("disk",a)}catch{}}function p(a){let b=(0,h.getDb)();return a?b.prepare("SELECT * FROM disk_folders WHERE project_id = ? ORDER BY path ASC").all(a).map(m):b.prepare("SELECT * FROM disk_folders ORDER BY path ASC").all().map(m)}function q(a){let b=(0,j.U1)(a);if(!b)throw Error("project not found");return(0,j.yK)(b.id,b.slug),m((0,h.getDb)().prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id IS NULL LIMIT 1").get(b.id))}function r(a,b,c){if("object"==typeof a&&a){let d=a;a=d.project_id||d.projectId,b=d.parent_id||d.parentId||null,c=d.name}let d=(0,j.U1)(a);if(!d)throw Error("project not found");let g=String(c||"").trim();if(!g)throw Error("name is required");let i=(0,h.getDb)(),k=b?i.prepare("SELECT * FROM disk_folders WHERE id = ?").get(b):q(d.id);if(!k)throw Error("parent folder not found");if(i.prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id = ? AND name = ? LIMIT 1").get(d.id,k.id,g)){let a=Error(`Folder "${g}" already exists.`);throw a.code="FOLDER_EXISTS",a}let l=`${k.path.replace(/\/$/,"")}/${g}/`,n=(0,h.nowIso)(),p=(0,h.newId)("df");try{i.prepare("INSERT INTO disk_folders (id, project_id, parent_id, name, path, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)").run(p,d.id,k.id,g,l,n,n)}catch(a){if(String(a?.message||"").includes("UNIQUE constraint failed")){let a=Error(`Folder "${g}" already exists.`);throw a.code="FOLDER_EXISTS",a}throw a}let r=f.join(A,l.replace(/^\/+|\/+$/g,""));e.mkdirSync(r,{recursive:!0});let s=m(i.prepare("SELECT * FROM disk_folders WHERE id = ?").get(p));return o({project_id:d.id,folder_id:s?.id||p,action:"folder.create"}),s}function s(a={}){let b=(0,h.getDb)(),c=[],d=[];a.project_id&&(c.push("project_id = ?"),d.push(a.project_id)),a.folder_id&&(c.push("folder_id = ?"),d.push(a.folder_id));let e=`SELECT * FROM disk_files ${c.length?"WHERE "+c.join(" AND "):""} ORDER BY updated_at DESC`;return b.prepare(e).all(...d).map(n)}function t(){let a=(0,h.getDb)().prepare(`SELECT project_id, COUNT(*) AS count
2954
+ ${b}`:b;return v(r("codex"),["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_TIMEOUT_MS||18e4),closeStdin:!0,onChunk:c})}async function z({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){var e;let f=(e=await (0,j.bd)([{role:"user",content:c}],b,[],{max_tokens:d,model:a}),(e?.content||[]).filter(a=>a?.type==="text"||"string"==typeof a?.text).map(a=>a.text||"").join("\n").trim());if(!f)throw Error("Anthropic returned no text");return f}function A(a){try{return!!a&&f.statSync(a).isDirectory()}catch{return!1}}async function B({agent:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){let e=n(a.engine),f=a.model||o(e);if("ollama"===e)return w({model:f,systemPrompt:b,userMessage:c,maxTokens:d});if("claude-code"===e){try{(0,l.Jh)()}catch{}let d=[l.un,l.nJ].filter(A);return x({model:f,systemPrompt:b,userMessage:c,cwd:function(){for(let a of[l.un,l.nJ,C,process.cwd()])if(A(a))return a;return process.cwd()}(),addDirs:d,agentId:a.id,agentName:a.name})}if("anthropic"===e)return z({model:f,systemPrompt:b,userMessage:c,maxTokens:d});if("codex"===e)return y({systemPrompt:b,userMessage:c});if("hermes"===e)throw Error("Hermes engine is registered but scheduled autonomous ticks are not enabled yet; use its governed tool runner from the console.");throw Error(`Unknown agent engine: ${a.engine}`)}d()}catch(a){d(a)}})},73066:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Kg:()=>k,kA:()=>l,v2:()=>j});var e=c(73024),f=c(76760),g=c(9381),h=c(61423),i=a([h]);h=(i.then?(await i)():i)[0];let m="artifacts";function j(a){var b;let c=null;return(c=a&&"object"==typeof a?a:(0,h.U1)(a||h.Sk)||null)?f.join((b=c,b?.folder_path?b.folder_path:b?.slug?(0,h.ct)(b.slug):(0,h.ct)(h.Sk)),m):f.join((0,h.ct)(h.Sk),m)}function k(a){let b=j(a);return e.mkdirSync(b,{recursive:!0}),b}function l(a){if(!a)return!1;let b=f.resolve(a);return[f.resolve(g.yQ),...function(){try{return(0,h.hF)({status:"all"}).map(a=>f.resolve(j(a)))}catch{return[]}}()].some(a=>b===a||b.startsWith(`${a}${f.sep}`))}d()}catch(a){d(a)}})},73899:(a,b,c)=>{"use strict";function d(a,b=null){if(!a)return b;try{return JSON.parse(a)}catch{return b}}c.d(b,{lp:()=>g,oi:()=>d,qY:()=>h});let e=/mars|accent|primary|brand|red|orange|coral/i,f=/^#?(ffffff|000000|fff|0f0f11|111318|1a1817|f7f4ee|e8e8e5|dcdcd8)$/i;function g(a){let b=Array.isArray(a?.colors)?a.colors:[];if(0===b.length)return"#c2452a";let c=b.find(a=>e.test(a?.name||""));if(c?.value)return c.value;let d=b.find(a=>a?.value&&!f.test(a.value));return d?.value||b[0].value||"#c2452a"}function h(a){try{let b=a.prepare("SELECT slug FROM marketplace_items WHERE kind = 'agent'").all();return new Set(b.map(a=>a.slug))}catch{return new Set}}},73912:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AB:()=>y,CS:()=>s,Io:()=>w,QM:()=>v,R1:()=>z,Ww:()=>x,dh:()=>q,mM:()=>u,uT:()=>p,vV:()=>r,xP:()=>t});var e=c(73024),f=c(76760),g=c(77598),h=c(34255),i=c(9381),j=c(61423),k=c(9001),l=a([h,j,k]);[h,j,k]=l.then?(await l)():l;let A=f.join(i.nJ,"disk");function m(a){return a?{...a}:null}function n(a){return a?{...a,local_only:1===a.local_only}:null}function o(a={}){try{(0,k.jO)("disk",a)}catch{}}function p(a){let b=(0,h.getDb)();return a?b.prepare("SELECT * FROM disk_folders WHERE project_id = ? ORDER BY path ASC").all(a).map(m):b.prepare("SELECT * FROM disk_folders ORDER BY path ASC").all().map(m)}function q(a){let b=(0,j.U1)(a);if(!b)throw Error("project not found");return(0,j.yK)(b.id,b.slug),m((0,h.getDb)().prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id IS NULL LIMIT 1").get(b.id))}function r(a,b,c){if("object"==typeof a&&a){let d=a;a=d.project_id||d.projectId,b=d.parent_id||d.parentId||null,c=d.name}let d=(0,j.U1)(a);if(!d)throw Error("project not found");let g=String(c||"").trim();if(!g)throw Error("name is required");let i=(0,h.getDb)(),k=b?i.prepare("SELECT * FROM disk_folders WHERE id = ?").get(b):q(d.id);if(!k)throw Error("parent folder not found");if(i.prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id = ? AND name = ? LIMIT 1").get(d.id,k.id,g)){let a=Error(`Folder "${g}" already exists.`);throw a.code="FOLDER_EXISTS",a}let l=`${k.path.replace(/\/$/,"")}/${g}/`,n=(0,h.nowIso)(),p=(0,h.newId)("df");try{i.prepare("INSERT INTO disk_folders (id, project_id, parent_id, name, path, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)").run(p,d.id,k.id,g,l,n,n)}catch(a){if(String(a?.message||"").includes("UNIQUE constraint failed")){let a=Error(`Folder "${g}" already exists.`);throw a.code="FOLDER_EXISTS",a}throw a}let r=f.join(A,l.replace(/^\/+|\/+$/g,""));e.mkdirSync(r,{recursive:!0});let s=m(i.prepare("SELECT * FROM disk_folders WHERE id = ?").get(p));return o({project_id:d.id,folder_id:s?.id||p,action:"folder.create"}),s}function s(a={}){let b=(0,h.getDb)(),c=[],d=[];a.project_id&&(c.push("project_id = ?"),d.push(a.project_id)),a.folder_id&&(c.push("folder_id = ?"),d.push(a.folder_id));let e=`SELECT * FROM disk_files ${c.length?"WHERE "+c.join(" AND "):""} ORDER BY updated_at DESC`;return b.prepare(e).all(...d).map(n)}function t(){let a=(0,h.getDb)().prepare(`SELECT project_id, COUNT(*) AS count
2955
2955
  FROM disk_files
2956
2956
  WHERE project_id IS NOT NULL
2957
2957
  GROUP BY project_id`).all(),b=Object.create(null);for(let c of a)b[c.project_id]=c.count;return b}function u(a){return n((0,h.getDb)().prepare("SELECT * FROM disk_files WHERE id = ?").get(a))}function v(a,b,c,d={}){if("object"==typeof a&&a){let e=a;a=e.project_id||e.projectId,b=e.folder_id||e.folderId||null,c={name:e.name,content:e.content||e.buffer||"",type:e.mime_type||e.type||""},d={...e,local_only:e.local_only}}let i=(0,j.U1)(a);if(!i)throw Error("project not found");let k=b?(0,h.getDb)().prepare("SELECT * FROM disk_folders WHERE id = ?").get(b):q(i.id);if(!k)throw Error("folder not found");let l=Buffer.isBuffer(c?.buffer)?c.buffer:Buffer.from(c?.content||""),m=String(c?.name||d.name||"upload.bin").replace(/[\\/]+/g,"-"),n=g.createHash("sha256").update(l).digest("hex"),p=f.join(A,k.path.replace(/^\/+|\/+$/g,""));e.mkdirSync(p,{recursive:!0});let r=f.join(p,`${n.slice(0,12)}-${m}`);e.existsSync(r)||e.writeFileSync(r,l);let s=(0,h.nowIso)(),t=(0,h.newId)("file");(0,h.getDb)().prepare("INSERT INTO disk_files (id, project_id, folder_id, name, kind, mime_type, size_bytes, sha256, storage_path, local_only, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(t,i.id,k.id,m,function(a,b=""){let c=f.extname(a||"").toLowerCase();return[".md",".markdown"].includes(c)?"md":".pdf"===c?"pdf":[".mp3",".wav",".m4a",".ogg",".webm"].includes(c)||b.startsWith("audio/")?"audio":[".png",".jpg",".jpeg",".webp",".gif"].includes(c)||b.startsWith("image/")?"image":[".txt",".csv",".json",".yaml",".yml"].includes(c)||b.startsWith("text/")?"text":"other"}(m,c?.type||d.mime_type||""),c?.type||d.mime_type||null,l.length,n,r,+!!d.local_only,s,s);let w=u(t);try{(0,j.Ip)(i.id,{action:"project.file.uploaded",title:`Uploaded ${m}`,summary:`Attached ${m} to the project folder`,status:"complete",source:"disk",details:{file_id:t,folder_id:k.id,kind:w.kind,size_bytes:w.size_bytes,local_only:w.local_only}})}catch{}return o({project_id:i.id,folder_id:k.id,file_id:t,action:"file.upload"}),w}function w(a,b={}){let c=["name","folder_id","local_only"],d=Object.entries(b).filter(([a,b])=>c.includes(a)&&void 0!==b);if(!d.length)return u(a);let e=d.map(([a])=>`${a} = ?`).concat("updated_at = ?").join(", "),f=d.map(([a,b])=>"local_only"===a?+!!b:b).concat((0,h.nowIso)(),a);(0,h.getDb)().prepare(`UPDATE disk_files SET ${e} WHERE id = ?`).run(...f);let g=u(a);return o({project_id:g?.project_id||null,folder_id:g?.folder_id||null,file_id:a,action:"file.update"}),g}function x(a){let b=u(a);if(!b)return!1;(0,h.getDb)().prepare("DELETE FROM disk_files WHERE id = ?").run(a);try{e.unlinkSync(b.storage_path)}catch{}return o({project_id:b.project_id,folder_id:b.folder_id||null,file_id:a,action:"file.delete"}),!0}function y(a,b){if(!b)throw Error("engine parameter required");let c=u(a);if(!c)throw Error("file not found");return c.local_only&&!["ollama","local_whisper"].includes(String(b))?{...c,content:"<redacted: local_only>",redacted:!0}:{...c,content:e.readFileSync(c.storage_path,"utf8"),redacted:!1}}function z(a,b){let c=y(a,b);if(c.redacted){let a=Error("local_only: engine not permitted");throw a.code="LOCAL_ONLY_DENIED",a}return c.storage_path}d()}catch(a){d(a)}})},78335:()=>{},78708:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$A:()=>n,Ac:()=>j,FT:()=>k,N3:()=>q,Us:()=>m,f3:()=>o,uS:()=>p});var e=c(76760),f=c(73024),g=c(34255),h=c(9381),i=a([g]);g=(i.then?(await i)():i)[0];let p=e.join(h.un,"generated-clis"),q=e.join(h.un,"skills","printing-press");e.join(h.nJ,"printing-press-clis.json");let r=/^[a-z0-9][a-z0-9-]{0,63}$/;function j(a){return"string"==typeof a&&r.test(a)}function k(a){let b=e.resolve(a),c=e.resolve(p);if(!b.startsWith(c+e.sep)&&b!==c)throw Error(`Path is not under workspace/generated-clis/: ${a}`);return b}function l(a){if(!a)return null;let b=null,c=[],d=[];try{b=a.manifest_json?JSON.parse(a.manifest_json):null}catch{b=null}try{c=a.declared_scopes?JSON.parse(a.declared_scopes):[]}catch{c=[]}try{d=a.required_secrets?JSON.parse(a.required_secrets):[]}catch{d=[]}return{slug:a.slug,source_kind:a.source_kind,source_url:a.source_url||null,installed_at:a.installed_at,updated_at:a.updated_at,path:a.path,declared_scopes:c,required_secrets:d,quota_bytes:a.quota_bytes||0x6400000,manifest:b,status:a.status}}function m({includeRemoved:a=!1}={}){let b=(0,g.getDb)();return(a?b.prepare("SELECT * FROM printing_press_clis ORDER BY installed_at DESC").all():b.prepare("SELECT * FROM printing_press_clis WHERE status != 'removed' ORDER BY installed_at DESC").all()).map(l)}function n(a){if(!j(a))return null;let b=(0,g.getDb)().prepare("SELECT * FROM printing_press_clis WHERE slug = ?").get(a);return l(b)}function o(a){let b=n(a);if(!b)return null;try{return{slug:a,bytes:function a(b){if(!f.existsSync(b))return 0;let c=0;for(let d of f.readdirSync(b,{withFileTypes:!0})){let g=e.join(b,d.name);if(d.isDirectory())c+=a(g);else if(d.isFile())try{c+=f.statSync(g).size}catch{}}return c}(b.path),quota_bytes:b.quota_bytes}}catch{return{slug:a,bytes:0,quota_bytes:b.quota_bytes,error:"measure_failed"}}}d()}catch(a){d(a)}})},79133:(a,b,c)=>{"use strict";c.d(b,{A5:()=>j,Pf:()=>h,decryptFromDiskBuffer:()=>k});var d=c(77598),e=c(87181);let f=Buffer.from("madarx-artifact-dek-v1"),g="1"===process.env.MADARX_ARTIFACT_ENCRYPTION;function h(){return g}function i(a){if(!a)throw Error("deriveOrgDek requires orgId");let b=(0,d.createHash)("sha256").update(a).digest(),c=(0,e.K2)({allowGenerate:!0});return Buffer.from((0,d.hkdfSync)("sha256",c,b,f,32))}function j(a,b){let{ciphertext:c,iv:e,authTag:f}=function(a,b){let c=i(a),e=(0,d.randomBytes)(12),f=(0,d.createCipheriv)("aes-256-gcm",c,e),g=Buffer.isBuffer(b)?b:Buffer.from(b,"utf8");return{ciphertext:Buffer.concat([f.update(g),f.final()]),iv:e,authTag:f.getAuthTag()}}(a,b);return Buffer.concat([e,f,c])}function k(a,b){if(!Buffer.isBuffer(b)||b.length<28)throw Error("Invalid encrypted artifact: too short");let c=b.subarray(0,12),e=b.subarray(12,28),f=b.subarray(28),g=i(a),h=(0,d.createDecipheriv)("aes-256-gcm",g,c);return h.setAuthTag(e),Buffer.concat([h.update(f),h.final()])}},80987:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Cw:()=>s,ID:()=>r,VC:()=>t,gE:()=>q});var e=c(31421),f=c(76760),g=c(73024),h=c(80099),i=c(9381),j=c(78708),k=c(41249),l=c(24516),m=a([j,l]);[j,l]=m.then?(await m)():m;let u=f.join(i.Dl,"scripts","printing-press"),v=f.join(u,"install.mjs"),w=f.join(u,"install-cli.mjs");function n(){return(0,k.Qw)((0,k.U5)())}function o(a,b,{cwd:c,timeoutMs:d,env:f}={}){return new Promise((g,h)=>{let i=(0,e.spawn)(a,b,{cwd:c,shell:!1,env:f||{PATH:process.env.PATH,HOME:process.env.HOME,NODE_ENV:"production"}}),j=Buffer.alloc(0),k=Buffer.alloc(0),l=!1,m=!1,n=!1,o=setTimeout(()=>{n=!0;try{i.kill("SIGKILL")}catch{}},d||6e4);i.stdout.on("data",a=>{j.length+a.length>262144?(j=Buffer.concat([j,a.slice(0,262144-j.length)]),l=!0):j=Buffer.concat([j,a])}),i.stderr.on("data",a=>{k.length+a.length>262144?(k=Buffer.concat([k,a.slice(0,262144-k.length)]),m=!0):k=Buffer.concat([k,a])}),i.on("error",a=>{clearTimeout(o),h(a)}),i.on("close",(a,b)=>{clearTimeout(o),g({exit_code:a,signal:b,timed_out:n,stdout:j.toString("utf8"),stderr:k.toString("utf8"),stdout_truncated:l,stderr_truncated:m})})})}function p(a){return(a?.declared_scopes||[]).some(a=>"string"==typeof a&&/write|mutate|delete|push/i.test(a))}async function q(a={},b={}){let c=n();if(!g.existsSync(u))return{ok:!1,status:"misconfigured",reason:`sub-package missing at ${u}`};let d=await o("node",[v],{cwd:u,timeoutMs:3e5});return d.timed_out?{ok:!1,status:"timeout",stderr:d.stderr}:0!==d.exit_code?{ok:!1,status:"failed",exit_code:d.exit_code,stderr:d.stderr,security_mode:c.mode}:{ok:!0,status:"installed",skills_dir:j.N3,security_mode:c.mode,stdout_tail:d.stdout.slice(-1024)}}async function r(a={},b={}){let c=n(),d=String(a.slug||"").trim();if(!(0,j.Ac)(d))return{ok:!1,status:"invalid_input",reason:"slug must match /^[a-z0-9][a-z0-9-]{0,63}$/"};let e=String(a.source||"starter-pack"),g=new Set(["starter-pack","github","local","spec"]);if(!g.has(e))return{ok:!1,status:"invalid_input",reason:`source must be one of ${[...g].join(", ")}`};let h=a.source_url?String(a.source_url):null;if("starter-pack"!==e&&!h)return{ok:!1,status:"invalid_input",reason:`source_url required when source=${e}`};let i=f.join(j.uS,d);try{(0,j.FT)(i)}catch(a){return{ok:!1,status:"unsafe_path",reason:a.message}}let k=[w,d,"--source",e];h&&k.push("--source-url",h);let l=await o("node",k,{cwd:u,timeoutMs:3e5});if(l.timed_out)return{ok:!1,status:"timeout",stderr:l.stderr};if(0!==l.exit_code)return{ok:!1,status:"failed",exit_code:l.exit_code,stderr:l.stderr};let m=(0,j.$A)(d);return m&&p(m)&&!c.allow_network_write_clis?{ok:!1,status:"refused",reason:`Security mode "${c.mode}" forbids CLIs declaring write scopes. Declared: ${JSON.stringify(m.declared_scopes)}`,cli:m}:{ok:!0,status:"generated",cli:m,security_mode:c.mode}}async function s(a={},b={}){let c,d,e=n(),h=String(a.slug||"").trim();if(!(0,j.Ac)(h))return{ok:!1,status:"invalid_input",reason:"invalid slug"};let i=(0,j.$A)(h);if(!i||"removed"===i.status)return{ok:!1,status:"not_installed",slug:h};if("disabled"===i.status)return{ok:!1,status:"disabled",slug:h};if(p(i)&&!e.allow_network_write_clis)return{ok:!1,status:"refused",reason:`Security mode "${e.mode}" forbids running CLIs with write scopes.`};let k=Array.isArray(a.args)?a.args.map(String):[];for(let a of k)if(/[;&|`$<>]/.test(a))return{ok:!1,status:"unsafe_args",reason:`argv contains shell metacharacter: ${a}`};try{(0,j.FT)(i.path)}catch(a){return{ok:!1,status:"unsafe_path",reason:a.message}}let m=process.env.GOBIN||(process.env.GOPATH?`${process.env.GOPATH}/bin`:null)||(process.env.HOME?`${process.env.HOME}/go/bin`:null),q=m?f.join(m,`${h}-pp-cli`):null,r=f.join(i.path,"bin"),t=f.join(i.path,"index.js");if(q&&g.existsSync(q))c=q,d=k;else if(g.existsSync(r))c=r,d=k;else{if(!g.existsSync(t))return{ok:!1,status:"no_entry_point",reason:`No entry point found. Tried: ${q||"(no go bin dir)"} , ${r}, ${t}`};c=process.execPath,d=[t,...k]}let u=function(a,b={}){let c={PATH:process.env.PATH,HOME:process.env.HOME,NODE_ENV:"production",PRINTING_PRESS_CLI_SLUG:a.slug,PRINTING_PRESS_DATA_DIR:a.path};for(let d of a.required_secrets||[])if("string"==typeof d&&/^[A-Z][A-Z0-9_]*$/.test(d))try{let a=(0,l.getSecret)(d,{agent_id:b.agent_id,project_id:b.project_id});a&&(c[d]=a)}catch{}return c}(i,b),v=Math.min(Number(a.timeout_ms)||6e4,3e5),w=await o(c,d,{cwd:i.path,timeoutMs:v,env:u});return{ok:0===w.exit_code,status:w.timed_out?"timeout":0===w.exit_code?"complete":"failed",slug:h,exit_code:w.exit_code,timed_out:w.timed_out,stdout:w.stdout,stderr:w.stderr,stdout_truncated:w.stdout_truncated,stderr_truncated:w.stderr_truncated,security_mode:e.mode}}let x=/\b(INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|REPLACE|ATTACH|DETACH|PRAGMA|VACUUM|REINDEX|TRUNCATE)\b/i;async function t(a={},b={}){let c,d=String(a.slug||"").trim();if(!(0,j.Ac)(d))return{ok:!1,status:"invalid_input",reason:"invalid slug"};let e=(0,j.$A)(d);if(!e||"removed"===e.status)return{ok:!1,status:"not_installed",slug:d};let i=String(a.sql||"").trim();if(!i)return{ok:!1,status:"invalid_input",reason:"sql is required"};if(i.includes(";"))return{ok:!1,status:"unsafe_sql",reason:"multi-statement queries are not allowed"};if(x.test(i))return{ok:!1,status:"unsafe_sql",reason:"only SELECT-style read queries are permitted"};if(!/^\s*(SELECT|WITH)\b/i.test(i))return{ok:!1,status:"unsafe_sql",reason:"query must begin with SELECT or WITH"};let k=process.env.XDG_DATA_HOME||(process.env.HOME?f.join(process.env.HOME,".local","share"):null),l=[f.join(e.path,"data.sqlite"),f.join(e.path,`${d}.sqlite`),k?f.join(k,`${d}-pp-cli`,"data.db"):null,k?f.join(k,`${d}-pp-cli`,"data.sqlite"):null].filter(Boolean),m=l.find(a=>g.existsSync(a));if(!m)return{ok:!1,status:"no_mirror",reason:"CLI has no local SQLite mirror",tried:l};if(m.startsWith(f.resolve(e.path)+f.sep))try{(0,j.FT)(m)}catch(a){return{ok:!1,status:"unsafe_path",reason:a.message}}let n=Array.isArray(a.params)?a.params:[];try{c=new h.DatabaseSync(m,{readOnly:!0})}catch(a){return{ok:!1,status:"open_failed",reason:a.message}}try{let a=c.prepare(i).all(...n).slice(0,1e3);return{ok:!0,status:"complete",slug:d,row_count:a.length,truncated:1e3===a.length,rows:a}}catch(a){return{ok:!1,status:"query_failed",reason:a.message}}finally{try{c.close()}catch{}}}d()}catch(a){d(a)}})},81553:(a,b,c)=>{"use strict";c.d(b,{YO:()=>j,ct:()=>m,mU:()=>k,rd:()=>g,runUpdateCheck:()=>n,shouldAutoApply:()=>o});var d=c(73024),e=c(76760),f=c(73136);let g="madarx",h=`https://registry.npmjs.org/${g}/latest`,i=e.dirname((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/update-check.js"));function j(){if(process.env.MADARX_VERSION)return process.env.MADARX_VERSION;for(let a of[e.join(i,"..","package.json"),e.join(process.cwd(),"package.json"),e.join(process.cwd(),".next","standalone","package.json")]){let b=function(a){try{let b=JSON.parse(d.readFileSync(a,"utf8"));if(b&&b.name===g&&b.version)return b.version}catch{}return null}(a);if(b)return b}return"0.0.0"}function k(a,b){let c=a=>String(a).split("-")[0].split(".").slice(0,3).map(a=>parseInt(a,10)||0),d=c(a),e=c(b);for(let a=0;a<Math.max(d.length,e.length);a++){let b=(d[a]||0)-(e[a]||0);if(0!==b)return b>0?1:-1}return 0}async function l({fetchImpl:a=fetch,timeoutMs:b=4e3}={}){try{let c=await a(h,{signal:AbortSignal.timeout(b)});if(!c.ok)return null;let d=await c.json();return d?.version||null}catch{return null}}function m(a){try{return JSON.parse(d.readFileSync(a,"utf8"))}catch{return null}}async function n({file:a,current:b=j(),fetchImpl:c=fetch,nowIso:f}={}){let g=await l({fetchImpl:c}),h=f||new Date().toISOString();if(!g){let c=a?m(a):null;return{ts:h,current:b,latest:c?.latest||null,behind:!1,reachable:!1}}let i=k(g,b)>0,o={ts:h,current:b,latest:g,behind:i,reachable:!0};return a&&(d.mkdirSync(e.dirname(a),{recursive:!0}),d.writeFileSync(a,JSON.stringify(o,null,2))),o}function o({behind:a,mode:b,apply:c}){return!!a&&"weekly"===b&&"auto"===c}},81833:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{BQ:()=>o,HO:()=>s,Jh:()=>n,OT:()=>r,Om:()=>k,bz:()=>m,cN:()=>p,h5:()=>q,iF:()=>i,k2:()=>l,pp:()=>j});var e=c(34255),f=a([e]);function g(a){return a?{id:String(a.id),name:String(a.name||""),position:Number(a.position)||0,is_active:1===a.is_active,created_at:a.created_at,updated_at:a.updated_at}:null}function h(a,b){return String(a||"").trim().slice(0,32)||b}function i(){let a=(0,e.getDb)();l();let b=a.prepare("SELECT * FROM dashboard_spaces ORDER BY position ASC, created_at ASC").all().map(g),c=b.find(a=>a.is_active)||b[0]||null;return{spaces:b,active_space_id:c?c.id:null}}function j(a){if(!a)return null;let b=(0,e.getDb)().prepare("SELECT * FROM dashboard_spaces WHERE id = ?").get(String(a));return g(b)}function k(a=[],{fallback:b="default"}={}){for(let b of Array.isArray(a)?a:[a])if(b&&j(b))return b;return b}function l(){let a=(0,e.getDb)(),b=a.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(0===b){let b=(0,e.nowIso)();a.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)").run("default","main",0,1,b,b)}a.prepare("UPDATE artifacts SET space_id = 'default' WHERE space_id IS NULL").run()}function m({name:a}={}){let b=(0,e.getDb)();l();let c=b.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(c>=32){let a=Error("Maximum of 32 spaces reached.");throw a.code="SPACE_LIMIT",a}let d=b.prepare("SELECT MAX(position) AS m FROM dashboard_spaces").get().m,f=(Number(d)||0)+1,g=(0,e.newId)("space"),i=(0,e.nowIso)(),k=h(a,`Space ${c+1}`);return b.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, 0, ?, ?)").run(g,k,f,i,i),j(g)}function n(a,b){let c=j(a);if(!c){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let d=h(b,c.name);return d===c.name?c:((0,e.getDb)().prepare("UPDATE dashboard_spaces SET name = ?, updated_at = ? WHERE id = ?").run(d,(0,e.nowIso)(),a),j(a))}function o(a){if(!j(a)){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let b=(0,e.getDb)(),c=(0,e.nowIso)(),d=b.prepare("BEGIN IMMEDIATE");try{d.run(),b.prepare("UPDATE dashboard_spaces SET is_active = 0, updated_at = ? WHERE is_active = 1").run(c),b.prepare("UPDATE dashboard_spaces SET is_active = 1, updated_at = ? WHERE id = ?").run(c,a),b.prepare("COMMIT").run()}catch(a){try{b.prepare("ROLLBACK").run()}catch{}throw a}return j(a)}function p(a){let b=(0,e.getDb)(),c=j(a);if(!c)return null;if(b.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n<=1){let a=Error("Cannot delete the last remaining space.");throw a.code="SPACE_LAST",a}let d=b.prepare("SELECT * FROM dashboard_spaces WHERE id != ? ORDER BY position ASC, created_at ASC LIMIT 1").get(a);if(!d){let a=Error("No fallback space available.");throw a.code="SPACE_NO_FALLBACK",a}let f=(0,e.nowIso)(),g=b.prepare("BEGIN IMMEDIATE");try{g.run(),b.prepare("UPDATE artifacts SET space_id = ? WHERE space_id = ?").run(d.id,a),b.prepare("UPDATE space_share_links SET revoked = 1 WHERE space_id = ? AND revoked = 0").run(a),b.prepare("DELETE FROM dashboard_spaces WHERE id = ?").run(a),c.is_active&&b.prepare("UPDATE dashboard_spaces SET is_active = 1, updated_at = ? WHERE id = ?").run(f,d.id),b.prepare("COMMIT").run()}catch(a){try{b.prepare("ROLLBACK").run()}catch{}throw a}return{deleted_id:a,moved_to:d.id}}function q(a,b){if(!a){let a=Error("artifact_id is required.");throw a.code="ARTIFACT_REQUIRED",a}let c=j(b);if(!c){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let d=(0,e.getDb)(),f=d.prepare("SELECT id FROM artifacts WHERE id = ?").get(String(a));if(!f){let a=Error("Artifact not found.");throw a.code="ARTIFACT_NOT_FOUND",a}return d.prepare("UPDATE artifacts SET space_id = ?, pinned_to_space_at = datetime('now') WHERE id = ?").run(c.id,f.id),{artifact_id:f.id,space_id:c.id}}function r(){let a=(0,e.getDb)();l();let b=a.prepare("SELECT * FROM dashboard_spaces ORDER BY position ASC, created_at ASC").all().map(g),c=a.prepare("SELECT id, space_id FROM artifacts WHERE space_id IS NOT NULL").all(),d=new Map(b.map(a=>[a.id,[]]));for(let a of c)d.has(a.space_id)&&d.get(a.space_id).push(String(a.id));let f=b.map(a=>({...a,artifact_ids:d.get(a.id)||[]})),h=f.find(a=>a.is_active)||f[0]||null;return{spaces:f,active_space_id:h?h.id:null}}function s({spaces:a=[],active_space_id:b=null}={}){if(!Array.isArray(a)||0===a.length)return null;let c=(0,e.getDb)();l();let d=c.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(!(1===d&&c.prepare("SELECT id FROM dashboard_spaces WHERE id = 'default'").get()))return null;let f=a.filter(a=>a&&"string"==typeof a.id&&a.id.length>0).slice(0,32);if(0===f.length)return null;let g=(0,e.nowIso)(),i=c.prepare("BEGIN IMMEDIATE");try{i.run(),c.prepare("DELETE FROM dashboard_spaces").run(),f.forEach((a,d)=>{let e=String(a.id),f=h(a.name,`Space ${d+1}`),i=b?e===String(b):0===d;c.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)").run(e,f,d,+!!i,g,g);let j=Array.isArray(a.artifactIds)?a.artifactIds:[],k=c.prepare("UPDATE artifacts SET space_id = ? WHERE id = ? AND (space_id IS NULL OR space_id = ?)");for(let a of j)"string"==typeof a&&k.run(e,a,e)});let a=c.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces WHERE is_active = 1").get().n;if(0===a){let a=c.prepare("SELECT id FROM dashboard_spaces ORDER BY position ASC, created_at ASC LIMIT 1").get();a&&c.prepare("UPDATE dashboard_spaces SET is_active = 1 WHERE id = ?").run(a.id)}c.prepare("COMMIT").run()}catch(a){try{c.prepare("ROLLBACK").run()}catch{}throw a}return r()}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},81992:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{cS:()=>j,r_:()=>i,vg:()=>k});var e=c(25938),f=a([e]);function g(a,{includeBody:b=!1}={}){let c=Object.fromEntries((a.payload?.headers||[]).map(a=>[String(a.name).toLowerCase(),a.value])),d={id:a.id,thread_id:a.threadId,from:c.from||null,subject:c.subject||null,date:c.date||null,snippet:a.snippet||""};return b&&(d.to=c.to||null,d.body_text=function a(b={}){if(b.body?.data)return function(a=""){if(!a)return"";try{return Buffer.from(String(a),"base64url").toString("utf8")}catch{return""}}(b.body.data);let c=Array.isArray(b.parts)?b.parts:[],d=c.find(a=>"text/plain"===a.mimeType&&a.body?.data)||c.find(a=>a.body?.data);return d?a(d):""}(a.payload||{})),d}async function h(a,b,c,d){let f=(0,e.s)(d,c),g=await f(a,{headers:{Authorization:`Bearer ${b}`}});if(!g.ok)throw Error(`google api failed: ${g.status}`);return g.json()}async function i(a={},b={}){let c="gmail_messages_list",d=await (0,e.r)(b,c),f=new URL("https://gmail.googleapis.com/gmail/v1/users/me/messages");for(let b of(a.max_results&&f.searchParams.set("maxResults",String(a.max_results)),a.q&&f.searchParams.set("q",a.q),a.label_ids||a.labelIds||[]))f.searchParams.append("labelIds",String(b));let j=(await h(f,d,b,c)).messages||[];return Promise.all(j.map(async a=>{let e=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.id)}?format=metadata`,d,b,c);return g(e)}))}async function j(a={},b={}){if(!a.message_id)throw Error("message_id is required");let c="gmail_message_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.message_id)}?format=full`,d,b,c);return g(f,{includeBody:!0})}async function k(a={},b={}){if(!a.thread_id)throw Error("thread_id is required");let c="gmail_thread_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/threads/${encodeURIComponent(a.thread_id)}?format=full`,d,b,c);return{id:f.id,messages:(f.messages||[]).map(a=>g(a,{includeBody:!0}))}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},83963:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dn:()=>ae,Fp:()=>aa,Fy:()=>F,G:()=>ai,HB:()=>R,Mu:()=>Y,Q4:()=>J,Qf:()=>_,Rz:()=>W,UT:()=>S,V0:()=>ag,VI:()=>P,Vk:()=>N,WH:()=>$,WX:()=>Z,X1:()=>X,eE:()=>ac,fI:()=>B,gf:()=>I,gg:()=>O,hC:()=>ap,hW:()=>ak,iR:()=>ad,ij:()=>an,jN:()=>G,kP:()=>D,lC:()=>T,n5:()=>ao,nV:()=>aj,qF:()=>am,qt:()=>ah,rN:()=>ab,s_:()=>Q,vQ:()=>V,w4:()=>al,yS:()=>U,yX:()=>E,zP:()=>H});var e=c(34255),f=c(40563),g=c(61423),h=c(18313),i=a([e,f,g]);function j(a,b=null){if(!a)return b;try{return JSON.parse(a)}catch{return b}}function k(a){return null==a?null:JSON.stringify(a)}function l(a){let b=globalThis.__madarxLiveEventBus;if(!b?.subscribers)return{id:a.id||(0,e.newId)("evt"),ts:a.ts||Date.now(),...a};let c={id:a.id||`evt-${b.nextId++}-${Math.random().toString(36).slice(2,8)}`,ts:a.ts||Date.now(),...a};for(let a of b.subscribers)try{a(c)}catch{}return c}function m(a){return a?{...a,tools:j(a.tools,[]),files:j(a.files,[]),memory:j(a.memory,[]),permissions_json:j(a.permissions_json,{}),metadata_json:j(a.metadata_json,{})}:null}function n(a){return a?{...a,parent_task_id:a.parent_task_id||null,tags:j(a.tags_json,[]),watchers:j(a.watchers_json,[]),due_at:a.due_at||null,estimate_minutes:null==a.estimate_minutes?null:Number(a.estimate_minutes),recurrence:a.recurrence||null,acceptance_criteria:a.acceptance_criteria||null}:null}function o(a){return a?{id:a.id,task_id:a.task_id,label:a.label,done:!!a.done,position:Number(a.position)||0,created_at:a.created_at,done_at:a.done_at||null}:null}function p(a){if(null==a)return null;if(Array.isArray(a)){let b=a.map(a=>String(a).trim()).filter(Boolean).slice(0,24);return b.length?b:[]}return"string"==typeof a?a.split(",").map(a=>a.trim()).filter(Boolean).slice(0,24):null}function q(a){if(null==a)return null;let b=(Array.isArray(a)?a:String(a).split(",")).map(a=>String(a).trim()).filter(Boolean).slice(0,24);return Array.from(new Set(b))}function r(a){if(!a)return null;let b=String(a).trim();if(!b)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(b))return`${b}T23:59:59.000Z`;let c=new Date(b);return Number.isNaN(c.getTime())?null:c.toISOString()}function s(a){if(null==a||""===a)return null;let b=Number(a);return!Number.isFinite(b)||b<0?null:Math.round(b)}function t(a){if(!a)return null;let b=String(a).trim();return b?b.length>64?b.slice(0,64):b:null}function u(a){return a?{...a}:null}function v(a){return a?{...a,payload:j(a.payload_json,null)}:null}function w(a){return a?{...a,usage:j(a.usage_json,null),result:j(a.result_json,null)}:null}function x(a){return a?{...a,payload:j(a.payload_json,null)}:null}function y(a){return a?{...a,details:j(a.details_json,null),cursor:a.seq}:null}function z(a){return m((0,e.getDb)().prepare("SELECT * FROM agents WHERE id = ?").get(a))}function A(a){if(!a)return null;let b=z(a);if(!b)throw Error(`Agent not found: ${a}`);if("terminated"===b.status)throw Error(`Terminated agents cannot receive assignments: ${a}`);return b}function B(a){if(!a?.type||!1===a.persist)return null;let b=function(a){let b={agent_run_start:"agent.run.status",agent_run_complete:"agent.run.status",agent_tool_start:"agent.run.event",agent_tool_result:"agent.run.event",log:"agent.run.log"},c=(0,h._d)(b[a.type]||a.type,null);return c&&h.eh.includes(c)?{actor_type:a.actor_type||(a.agent_id?"agent":"system"),actor_id:a.actor_id||a.agent_id||null,agent_id:a.agent_id||null,run_id:a.run_id||null,entity_type:a.entity_type||(a.task_id?"task":a.run_id?"agent_run":a.agent_id?"agent":"event"),entity_id:a.entity_id||a.task_id||a.run_id||a.id||null,action:c,details:{...a,legacy_type:b[a.type]?a.type:void 0},created_at:a.created_at||(0,e.nowIso)()}:null}(a);return b?C(b):null}function C({actor_type:a="system",actor_id:b=null,agent_id:c=null,run_id:d=null,entity_type:f=null,entity_id:g=null,action:h,details:i=null,created_at:j=(0,e.nowIso)()}={}){if(!h)throw Error("activity action is required");let l=(0,e.getDb)(),m=(0,e.newId)("activity");l.prepare(`
@@ -10,7 +10,7 @@
10
10
  timeout_ms, created_at, updated_at
11
11
  )
12
12
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
13
- `).run(r,F,C.id,"queued",u,a,p,d||null,g||null,n?Number(n):null,t,t),w(r,{type:"queued",message:"Hermes job queued."}),(0,l.appendAudit)({type:"hermes.job.create",summary:`Queued Hermes job: ${u}`,status:"queued",meta:{job_id:r,run_id:C.id,artifact_id:F}}),{...s(r),file_path:B}}function y(a){let b=(0,g.spawn)(process.execPath,["scripts/hermes-job-runner.mjs","--job-id",a],{cwd:i.Dl,env:process.env,stdio:"ignore",detached:!0});return b.unref(),w(a,{type:"status",message:`Background runner spawned with pid ${b.pid}.`}),{pid:b.pid}}function z({olderThanMs:a=18e5}={}){let b=(0,h.getDb)(),c=new Date(Date.now()-a).toISOString(),d=b.prepare(`
13
+ `).run(r,F,C.id,"queued",u,a,p,d||null,g||null,n?Number(n):null,t,t),w(r,{type:"queued",message:"Hermes job queued."}),(0,l.appendAudit)({type:"hermes.job.create",summary:`Queued Hermes job: ${u}`,status:"queued",meta:{job_id:r,run_id:C.id,artifact_id:F}}),{...s(r),file_path:B}}function y(a){let b=f.join(i.QG,"scripts","hermes-job-runner.mjs"),c=(0,g.spawn)(process.execPath,[b,"--job-id",a],{cwd:(0,i.wn)(i.QG,i.un),env:process.env,stdio:"ignore",detached:!0});return c.unref(),w(a,{type:"status",message:`Background runner spawned with pid ${c.pid}.`}),{pid:c.pid}}function z({olderThanMs:a=18e5}={}){let b=(0,h.getDb)(),c=new Date(Date.now()-a).toISOString(),d=b.prepare(`
14
14
  SELECT id FROM hermes_jobs
15
15
  WHERE status IN ('queued', 'running') AND updated_at < ?
16
16
  `).all(c);for(let a of d)!function(a,{error:b,exit_code:c=null,status:d="failed"}={}){let e=A.has(d)?d:"failed",f=(0,h.getDb)(),g=(0,h.nowIso)();f.prepare(`