madarx 2.15.1 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +322 -321
  3. package/.next/standalone/.next/app-path-routes-manifest.json +81 -81
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +9 -9
  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 +2 -2
  9. package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/admin/page.js +2 -2
  11. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/agents/[id]/page.js +6 -6
  13. package/.next/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/agents/page.js +1 -1
  16. package/.next/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route.js +2 -2
  56. package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
  83. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.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_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
  100. package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
  111. package/.next/standalone/.next/server/app/api/orchestrator/upload/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/join-complete/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
  127. package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
  138. package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  142. package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
  144. package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
  148. package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  153. package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
  157. package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
  159. package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.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/disconnect/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/approvals/page.js +1 -1
  196. package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/architecture.html +2 -2
  199. package/.next/standalone/.next/server/app/architecture.rsc +2 -2
  200. package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/brand.html +1 -1
  204. package/.next/standalone/.next/server/app/brand.rsc +2 -2
  205. package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
  206. package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/federated-ai.html +2 -2
  208. package/.next/standalone/.next/server/app/federated-ai.rsc +2 -2
  209. package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +1 -1
  211. package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/hail/[id]/page.js +1 -1
  213. package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
  215. package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/hail/page.js +1 -1
  217. package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/index.html +2 -2
  221. package/.next/standalone/.next/server/app/index.rsc +2 -2
  222. package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/join.html +1 -1
  224. package/.next/standalone/.next/server/app/join.rsc +2 -2
  225. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/marketplace/page.js +4 -3
  227. package/.next/standalone/.next/server/app/marketplace/page.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/missions/page.js +2 -2
  233. package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  237. package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
  238. package/.next/standalone/.next/server/app/org/page.js +1 -1
  239. package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  242. package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/projects/new/page.js +3 -2
  245. package/.next/standalone/.next/server/app/projects/new/page.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
  247. package/.next/standalone/.next/server/app/projects/new.html +1 -1
  248. package/.next/standalone/.next/server/app/projects/new.rsc +3 -3
  249. package/.next/standalone/.next/server/app/projects/page.js +32 -15
  250. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/schedules/page.js +2 -2
  255. package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  256. package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/settings/appearance/page.js +1 -1
  259. package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
  260. package/.next/standalone/.next/server/app/settings/brand/page.js +1 -1
  261. package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/settings/brand.html +2 -2
  263. package/.next/standalone/.next/server/app/settings/brand.rsc +3 -3
  264. package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/settings/onboarding/page.js +1 -1
  267. package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
  269. package/.next/standalone/.next/server/app/settings/onboarding.rsc +3 -3
  270. package/.next/standalone/.next/server/app/settings/organization/page.js +2 -2
  271. package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/settings/page.js +1 -1
  274. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/settings/runtime/page.js +1 -1
  276. package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
  277. package/.next/standalone/.next/server/app/settings/team/page.js +1 -1
  278. package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
  280. package/.next/standalone/.next/server/app/settings.html +2 -2
  281. package/.next/standalone/.next/server/app/settings.rsc +3 -3
  282. package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
  284. package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
  285. package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  286. package/.next/standalone/.next/server/app/tasks/page.js +2 -2
  287. package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
  289. package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
  290. package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
  292. package/.next/standalone/.next/server/app/whatsapp.html +1 -1
  293. package/.next/standalone/.next/server/app/whatsapp.rsc +2 -2
  294. package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
  295. package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
  296. package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
  299. package/.next/standalone/.next/server/app-paths-manifest.json +81 -81
  300. package/.next/standalone/.next/server/chunks/1648.js +1 -1
  301. package/.next/standalone/.next/server/chunks/1699.js +39 -22
  302. package/.next/standalone/.next/server/chunks/3230.js +2 -2
  303. package/.next/standalone/.next/server/chunks/5093.js +1 -0
  304. package/.next/standalone/.next/server/chunks/5864.js +1 -0
  305. package/.next/standalone/.next/server/chunks/{9801.js → 7500.js} +1 -1
  306. package/.next/standalone/.next/server/functions-config-manifest.json +42 -42
  307. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  308. package/.next/standalone/.next/server/pages/404.html +1 -1
  309. package/.next/standalone/.next/server/pages/500.html +1 -1
  310. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  311. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  312. package/.next/standalone/.next/static/chunks/7695-04c7f1a5233de027.js +1 -0
  313. package/.next/standalone/.next/static/chunks/app/agents/[id]/page-474f640e84f7b4b5.js +1 -0
  314. package/.next/standalone/.next/static/chunks/app/agents/page-b79b611acd56712b.js +1 -0
  315. package/.next/standalone/.next/static/chunks/app/marketplace/page-0b7d3a6309302de3.js +1 -0
  316. package/.next/standalone/.next/static/chunks/app/projects/page-e1cfb0b17418e719.js +1 -0
  317. package/.next/standalone/.next/static/chunks/app/settings/layout-08f6b30132b26dd1.js +1 -0
  318. package/.next/standalone/.next/static/chunks/app/settings/team/page-9a2e675124de6aac.js +1 -0
  319. package/.next/standalone/.next/static/css/{65c472079b6fd086.css → 9fbf057b7ce95c36.css} +1 -1
  320. package/.next/standalone/CHANGELOG.md +14 -0
  321. package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
  322. package/.next/standalone/data/.default-project-seeded +1 -1
  323. package/.next/standalone/data/madarx.sqlite +0 -0
  324. package/.next/standalone/data/madarx.sqlite-shm +0 -0
  325. package/.next/standalone/data/madarx.sqlite-wal +0 -0
  326. package/.next/standalone/package.json +1 -1
  327. package/.next/static/chunks/7695-04c7f1a5233de027.js +1 -0
  328. package/.next/static/chunks/app/agents/[id]/page-474f640e84f7b4b5.js +1 -0
  329. package/.next/static/chunks/app/agents/page-b79b611acd56712b.js +1 -0
  330. package/.next/static/chunks/app/marketplace/page-0b7d3a6309302de3.js +1 -0
  331. package/.next/static/chunks/app/projects/page-e1cfb0b17418e719.js +1 -0
  332. package/.next/static/chunks/app/settings/layout-08f6b30132b26dd1.js +1 -0
  333. package/.next/static/chunks/app/settings/team/page-9a2e675124de6aac.js +1 -0
  334. package/.next/static/css/{65c472079b6fd086.css → 9fbf057b7ce95c36.css} +1 -1
  335. package/CHANGELOG.md +14 -0
  336. package/app/agents/[id]/agent-activity-feed.tsx +96 -0
  337. package/app/agents/[id]/agent-detail-simple.tsx +71 -83
  338. package/app/agents/[id]/agent-quick-controls.tsx +497 -0
  339. package/app/agents/[id]/page.js +90 -2
  340. package/app/api/connections/[service]/verify/route.js +17 -2
  341. package/app/globals.css +347 -32
  342. package/lib/agent-templates.js +12 -0
  343. package/lib/connection-grant.js +106 -0
  344. package/lib/connection-seeds.js +126 -0
  345. package/lib/connections/health-check-verify.js +114 -0
  346. package/lib/connections/manifest-validator.js +161 -0
  347. package/lib/marketplace-modules.js +45 -0
  348. package/lib/marketplace-seeds.js +105 -0
  349. package/lib/marketplace.js +1 -0
  350. package/lib/oauth/flow.js +204 -0
  351. package/lib/oauth/provider-registry.js +102 -0
  352. package/lib/runtime.js +74 -1
  353. package/lib/schema.js +17 -0
  354. package/lib/tools/adapters/http-api-call.js +92 -28
  355. package/lib/tools/connectors/connector-validator.js +27 -1
  356. package/package.json +1 -1
  357. package/.next/standalone/.next/server/chunks/1887.js +0 -2
  358. package/.next/standalone/.next/server/chunks/3711.js +0 -1
  359. package/.next/standalone/.next/server/chunks/6098.js +0 -1
  360. package/.next/standalone/.next/static/chunks/9077-f54ea987eb597e43.js +0 -1
  361. package/.next/standalone/.next/static/chunks/app/agents/[id]/page-66477263de089865.js +0 -1
  362. package/.next/standalone/.next/static/chunks/app/agents/page-64d6bdc6ba3ad4d7.js +0 -1
  363. package/.next/standalone/.next/static/chunks/app/marketplace/page-45c6d49f8eddad67.js +0 -1
  364. package/.next/standalone/.next/static/chunks/app/projects/page-15a7a85fa216b575.js +0 -1
  365. package/.next/standalone/.next/static/chunks/app/settings/layout-2c1e6807acb6fdad.js +0 -1
  366. package/.next/standalone/.next/static/chunks/app/settings/team/page-0aee40dfa9e7a430.js +0 -1
  367. package/.next/static/chunks/9077-f54ea987eb597e43.js +0 -1
  368. package/.next/static/chunks/app/agents/[id]/page-66477263de089865.js +0 -1
  369. package/.next/static/chunks/app/agents/page-64d6bdc6ba3ad4d7.js +0 -1
  370. package/.next/static/chunks/app/marketplace/page-45c6d49f8eddad67.js +0 -1
  371. package/.next/static/chunks/app/projects/page-15a7a85fa216b575.js +0 -1
  372. package/.next/static/chunks/app/settings/layout-2c1e6807acb6fdad.js +0 -1
  373. package/.next/static/chunks/app/settings/team/page-0aee40dfa9e7a430.js +0 -1
  374. /package/.next/standalone/.next/static/{JcJc6PlL89SQvtZvP-LnU → JGJBLnQfb05RAKCcECbJt}/_buildManifest.js +0 -0
  375. /package/.next/standalone/.next/static/{JcJc6PlL89SQvtZvP-LnU → JGJBLnQfb05RAKCcECbJt}/_ssgManifest.js +0 -0
  376. /package/.next/static/{JcJc6PlL89SQvtZvP-LnU → JGJBLnQfb05RAKCcECbJt}/_buildManifest.js +0 -0
  377. /package/.next/static/{JcJc6PlL89SQvtZvP-LnU → JGJBLnQfb05RAKCcECbJt}/_ssgManifest.js +0 -0
package/app/globals.css CHANGED
@@ -3048,10 +3048,17 @@ a.admin-record-link{display:block;text-decoration:none;color:inherit;transition:
3048
3048
  gap: 8px;
3049
3049
  }
3050
3050
 
3051
- /* Quick factsthree calm cards: schedule, last run, status. */
3051
+ /* Controls blockfacts grid + tools strip + the shared editor drawer. */
3052
+ .mkt-page[data-page="agent-detail"] .ad-controls {
3053
+ display: flex;
3054
+ flex-direction: column;
3055
+ gap: 12px;
3056
+ }
3057
+
3058
+ /* Quick facts — calm cards: publish, model, schedule, last run, status. */
3052
3059
  .mkt-page[data-page="agent-detail"] .ad-facts {
3053
3060
  display: grid;
3054
- grid-template-columns: repeat(4, minmax(0, 1fr));
3061
+ grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
3055
3062
  gap: 10px;
3056
3063
  }
3057
3064
  .mkt-page[data-page="agent-detail"] .ad-fact {
@@ -3076,62 +3083,371 @@ a.admin-record-link{display:block;text-decoration:none;color:inherit;transition:
3076
3083
  overflow-wrap: anywhere;
3077
3084
  }
3078
3085
 
3079
- /* Artifact destination subtle, optional. Lives inside the facts grid,
3080
- next to the schedule. */
3081
- .mkt-page[data-page="agent-detail"] .ad-fact--publish {
3086
+ /* Editable fact cards (publish, model, schedule) a fact that's also a button. */
3087
+ .mkt-page[data-page="agent-detail"] .ad-fact--edit {
3088
+ position: relative;
3089
+ text-align: left;
3090
+ cursor: pointer;
3082
3091
  background: #fff;
3092
+ font: inherit;
3093
+ transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
3094
+ }
3095
+ .mkt-page[data-page="agent-detail"] .ad-fact--edit:hover {
3096
+ border-color: rgba(17, 19, 24, .18);
3097
+ }
3098
+ .mkt-page[data-page="agent-detail"] .ad-fact--edit.is-active {
3099
+ border-color: rgba(17, 19, 24, .30);
3100
+ box-shadow: 0 0 0 3px rgba(17, 19, 24, .05);
3101
+ }
3102
+ .mkt-page[data-page="agent-detail"] .ad-fact--edit .ad-fact-value { padding-right: 20px; }
3103
+ .mkt-page[data-page="agent-detail"] .ad-fact-edit {
3104
+ position: absolute;
3105
+ top: 13px;
3106
+ right: 13px;
3107
+ color: #b7bcc4;
3108
+ transition: color .15s ease;
3109
+ }
3110
+ .mkt-page[data-page="agent-detail"] .ad-fact--edit:hover .ad-fact-edit,
3111
+ .mkt-page[data-page="agent-detail"] .ad-fact--edit.is-active .ad-fact-edit { color: #6b7280; }
3112
+
3113
+ .mkt-page[data-page="agent-detail"] .ad-fact-status {
3114
+ display: inline-flex;
3115
+ align-items: center;
3116
+ gap: 7px;
3117
+ }
3118
+ .mkt-page[data-page="agent-detail"] .ad-fact-status.tone-active { color: #2d7044; }
3119
+ .mkt-page[data-page="agent-detail"] .ad-fact-status.tone-active .ad-dot { background: #3da76a; }
3120
+ .mkt-page[data-page="agent-detail"] .ad-fact-status.tone-error { color: #9a3325; }
3121
+ .mkt-page[data-page="agent-detail"] .ad-fact-status.tone-error .ad-dot { background: var(--accent-500, #c2452a); }
3122
+
3123
+ /* Tools strip — declared toolset as brand icons + one editor entry point. */
3124
+ .mkt-page[data-page="agent-detail"] .ad-tools-strip {
3125
+ display: flex;
3126
+ align-items: center;
3127
+ gap: 12px;
3128
+ flex-wrap: wrap;
3129
+ padding: 12px 16px;
3130
+ border: 1px solid rgba(17, 19, 24, .07);
3131
+ border-radius: 14px;
3132
+ background: rgba(17, 19, 24, .02);
3133
+ }
3134
+ .mkt-page[data-page="agent-detail"] .ad-tools-icons {
3135
+ display: flex;
3136
+ align-items: center;
3137
+ gap: 6px;
3138
+ flex: 1;
3139
+ flex-wrap: wrap;
3140
+ }
3141
+ .mkt-page[data-page="agent-detail"] .ad-tool-chip {
3142
+ display: inline-flex;
3143
+ align-items: center;
3144
+ justify-content: center;
3145
+ width: 30px;
3146
+ height: 30px;
3147
+ border-radius: 9px;
3148
+ border: 1px solid rgba(17, 19, 24, .08);
3149
+ background: #fff;
3150
+ }
3151
+ .mkt-page[data-page="agent-detail"] .ad-tools-empty {
3152
+ font: 500 13px/1 var(--font-sans, system-ui);
3153
+ color: #9aa0a8;
3154
+ }
3155
+ .mkt-page[data-page="agent-detail"] .ad-edit-btn {
3156
+ display: inline-flex;
3157
+ align-items: center;
3158
+ gap: 6px;
3159
+ }
3160
+
3161
+ /* Shared editor drawer — animates open via grid-template-rows. */
3162
+ .mkt-page[data-page="agent-detail"] .ad-drawer {
3163
+ display: grid;
3164
+ grid-template-rows: 0fr;
3165
+ transition: grid-template-rows .26s cubic-bezier(.22, 1, .36, 1);
3166
+ }
3167
+ .mkt-page[data-page="agent-detail"] .ad-drawer[data-open="true"] { grid-template-rows: 1fr; }
3168
+ .mkt-page[data-page="agent-detail"] .ad-drawer-inner { overflow: hidden; }
3169
+
3170
+ .mkt-page[data-page="agent-detail"] .ad-editor {
3171
+ border: 1px solid rgba(17, 19, 24, .10);
3172
+ border-radius: 16px;
3173
+ background: #fff;
3174
+ padding: 18px;
3175
+ margin-top: 2px;
3176
+ }
3177
+ .mkt-page[data-page="agent-detail"] .ad-editor-head {
3178
+ display: flex;
3179
+ align-items: center;
3180
+ justify-content: space-between;
3181
+ margin-bottom: 14px;
3182
+ }
3183
+ .mkt-page[data-page="agent-detail"] .ad-editor-head h3 {
3184
+ margin: 0;
3185
+ font: 600 15px/1.2 var(--font-sans, system-ui);
3186
+ letter-spacing: -.01em;
3187
+ color: #1d2026;
3188
+ }
3189
+ .mkt-page[data-page="agent-detail"] .ad-editor-close {
3190
+ display: inline-flex;
3191
+ border: 0;
3192
+ background: transparent;
3193
+ color: #9aa0a8;
3194
+ cursor: pointer;
3195
+ padding: 4px;
3196
+ border-radius: 8px;
3197
+ transition: color .15s ease, background .15s ease;
3198
+ }
3199
+ .mkt-page[data-page="agent-detail"] .ad-editor-close:hover { color: #1d2026; background: rgba(17, 19, 24, .05); }
3200
+
3201
+ .mkt-page[data-page="agent-detail"] .ad-editor-form {
3202
+ display: flex;
3203
+ flex-direction: column;
3204
+ gap: 14px;
3205
+ }
3206
+ .mkt-page[data-page="agent-detail"] .ad-editor-row {
3207
+ display: flex;
3208
+ gap: 10px;
3209
+ flex-wrap: wrap;
3210
+ }
3211
+ .mkt-page[data-page="agent-detail"] .ad-editor-row select,
3212
+ .mkt-page[data-page="agent-detail"] .ad-editor-row input {
3213
+ flex: 1;
3214
+ min-width: 160px;
3215
+ border: 1px solid rgba(17, 19, 24, .12);
3216
+ border-radius: 10px;
3217
+ background: #fff;
3218
+ padding: 9px 12px;
3219
+ font: 500 13px/1.4 var(--font-sans, system-ui);
3220
+ color: #1d2026;
3221
+ }
3222
+ .mkt-page[data-page="agent-detail"] .ad-editor-actions {
3223
+ display: flex;
3083
3224
  gap: 8px;
3084
3225
  }
3085
- .mkt-page[data-page="agent-detail"] .ad-space-row {
3226
+
3227
+ /* Schedule composer. */
3228
+ .mkt-page[data-page="agent-detail"] .ad-sched-grid {
3229
+ display: grid;
3230
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
3231
+ gap: 12px;
3232
+ }
3233
+ .mkt-page[data-page="agent-detail"] .ad-field {
3234
+ display: flex;
3235
+ flex-direction: column;
3236
+ gap: 6px;
3237
+ }
3238
+ .mkt-page[data-page="agent-detail"] .ad-field--wide { grid-column: 1 / -1; }
3239
+ .mkt-page[data-page="agent-detail"] .ad-field > span {
3240
+ font: 700 10.5px/1 var(--font-sans, system-ui);
3241
+ letter-spacing: .08em;
3242
+ text-transform: uppercase;
3243
+ color: #8a8f99;
3244
+ }
3245
+ .mkt-page[data-page="agent-detail"] .ad-field .admin-input {
3246
+ border-radius: 10px;
3247
+ }
3248
+ .mkt-page[data-page="agent-detail"] .ad-inline-num {
3086
3249
  display: flex;
3087
3250
  align-items: center;
3088
3251
  gap: 8px;
3089
3252
  }
3090
- .mkt-page[data-page="agent-detail"] .ad-space-select {
3253
+ .mkt-page[data-page="agent-detail"] .ad-inline-num input { width: 80px; }
3254
+ .mkt-page[data-page="agent-detail"] .ad-inline-num em {
3255
+ font: 500 13px/1 var(--font-sans, system-ui);
3256
+ font-style: normal;
3257
+ color: #6b7280;
3258
+ }
3259
+ .mkt-page[data-page="agent-detail"] .ad-sched-preview {
3260
+ margin: 0;
3261
+ font: 600 13.5px/1.4 var(--font-sans, system-ui);
3262
+ color: #2a2d33;
3263
+ }
3264
+
3265
+ /* Tools picker. */
3266
+ .mkt-page[data-page="agent-detail"] .ad-tools-search {
3267
+ display: flex;
3268
+ align-items: center;
3269
+ gap: 9px;
3270
+ padding: 9px 12px;
3271
+ border: 1px solid rgba(17, 19, 24, .12);
3272
+ border-radius: 10px;
3273
+ color: #9aa0a8;
3274
+ }
3275
+ .mkt-page[data-page="agent-detail"] .ad-tools-search input {
3091
3276
  flex: 1;
3092
- min-width: 0;
3093
- /* Custom chevron with a right offset so the arrow isn't flush to the border. */
3094
- appearance: none;
3095
- -webkit-appearance: none;
3096
- padding-right: 34px;
3097
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23111318' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
3098
- background-repeat: no-repeat;
3099
- background-position: right 12px center;
3100
- background-size: 12px 12px;
3277
+ border: 0;
3278
+ outline: 0;
3279
+ background: transparent;
3280
+ font: 500 13px/1.4 var(--font-sans, system-ui);
3281
+ color: #1d2026;
3282
+ }
3283
+ .mkt-page[data-page="agent-detail"] .ad-tools-count {
3284
+ font: 600 11.5px/1 var(--font-sans, system-ui);
3285
+ color: #8a8f99;
3286
+ white-space: nowrap;
3287
+ }
3288
+ .mkt-page[data-page="agent-detail"] .ad-tools-groups {
3289
+ display: flex;
3290
+ flex-direction: column;
3291
+ gap: 16px;
3292
+ max-height: 340px;
3293
+ overflow-y: auto;
3294
+ padding-right: 2px;
3295
+ }
3296
+ .mkt-page[data-page="agent-detail"] .ad-tools-group-head {
3297
+ display: flex;
3298
+ align-items: center;
3299
+ gap: 7px;
3300
+ margin-bottom: 9px;
3301
+ font: 700 10.5px/1 var(--font-sans, system-ui);
3302
+ letter-spacing: .08em;
3303
+ text-transform: uppercase;
3304
+ color: #6b7280;
3305
+ }
3306
+ .mkt-page[data-page="agent-detail"] .ad-tools-options {
3307
+ display: flex;
3308
+ flex-wrap: wrap;
3309
+ gap: 8px;
3310
+ }
3311
+ .mkt-page[data-page="agent-detail"] .ad-tool-option {
3312
+ display: inline-flex;
3313
+ align-items: center;
3314
+ gap: 7px;
3315
+ padding: 8px 12px;
3316
+ border: 1px solid rgba(17, 19, 24, .12);
3317
+ border-radius: 999px;
3318
+ background: #fff;
3319
+ cursor: pointer;
3320
+ font: 500 12.5px/1 var(--font-sans, system-ui);
3321
+ color: #2a2d33;
3322
+ transition: border-color .14s ease, background .14s ease, color .14s ease;
3323
+ }
3324
+ .mkt-page[data-page="agent-detail"] .ad-tool-option:hover { border-color: rgba(17, 19, 24, .26); }
3325
+ .mkt-page[data-page="agent-detail"] .ad-tool-option.is-on {
3326
+ border-color: #1d2026;
3327
+ background: #1d2026;
3328
+ color: #fff;
3329
+ }
3330
+ .mkt-page[data-page="agent-detail"] .ad-tool-tag {
3331
+ font: 700 9px/1 var(--font-sans, system-ui);
3332
+ letter-spacing: .06em;
3333
+ text-transform: uppercase;
3334
+ color: #9aa0a8;
3335
+ padding: 3px 6px;
3336
+ border-radius: 6px;
3337
+ background: rgba(17, 19, 24, .05);
3338
+ }
3339
+ .mkt-page[data-page="agent-detail"] .ad-tool-option.is-on .ad-tool-tag { color: #cfd3d9; background: rgba(255, 255, 255, .12); }
3340
+ .mkt-page[data-page="agent-detail"] .ad-tool-tag.warn { color: #9a6324; background: rgba(194, 132, 42, .12); }
3341
+ .mkt-page[data-page="agent-detail"] .ad-tools-noresult {
3342
+ font: 500 13px/1.5 var(--font-sans, system-ui);
3343
+ color: #8a8f99;
3101
3344
  }
3102
- .mkt-page[data-page="agent-detail"] .ad-space-select::-ms-expand { display: none; }
3103
3345
 
3104
- /* Recent activity. */
3346
+ /* Recent activity feed — executions + approvals, searchable. */
3105
3347
  .mkt-page[data-page="agent-detail"] .ad-activity-head {
3348
+ display: flex;
3349
+ align-items: center;
3350
+ justify-content: space-between;
3351
+ gap: 14px;
3352
+ flex-wrap: wrap;
3353
+ margin-bottom: 10px;
3354
+ }
3355
+ .mkt-page[data-page="agent-detail"] .ad-activity-title {
3106
3356
  font: 700 11px/1 var(--font-sans, system-ui);
3107
3357
  letter-spacing: .10em;
3108
3358
  text-transform: uppercase;
3109
3359
  color: #8a8f99;
3110
- margin-bottom: 6px;
3111
3360
  }
3112
- .mkt-page[data-page="agent-detail"] .ad-runs {
3361
+ .mkt-page[data-page="agent-detail"] .ad-activity-search {
3362
+ display: flex;
3363
+ align-items: center;
3364
+ gap: 8px;
3365
+ padding: 7px 11px;
3366
+ border: 1px solid rgba(17, 19, 24, .12);
3367
+ border-radius: 999px;
3368
+ color: #9aa0a8;
3369
+ min-width: 220px;
3370
+ }
3371
+ .mkt-page[data-page="agent-detail"] .ad-activity-search input {
3372
+ flex: 1;
3373
+ border: 0;
3374
+ outline: 0;
3375
+ background: transparent;
3376
+ font: 500 13px/1.2 var(--font-sans, system-ui);
3377
+ color: #1d2026;
3378
+ }
3379
+ .mkt-page[data-page="agent-detail"] .ad-feed {
3113
3380
  list-style: none;
3114
3381
  margin: 0;
3115
3382
  padding: 0;
3116
- display: flex;
3117
- flex-direction: column;
3118
3383
  }
3119
- .mkt-page[data-page="agent-detail"] .ad-run {
3120
- display: flex;
3384
+ .mkt-page[data-page="agent-detail"] .ad-feed-row {
3385
+ display: grid;
3386
+ grid-template-columns: auto 1fr auto auto;
3121
3387
  align-items: center;
3122
- justify-content: space-between;
3123
- gap: 12px;
3388
+ gap: 14px;
3124
3389
  padding: 13px 2px;
3125
3390
  border-bottom: 1px solid rgba(17, 19, 24, .06);
3126
- font: 500 13px/1.4 var(--font-sans, system-ui);
3127
3391
  }
3128
- .mkt-page[data-page="agent-detail"] .ad-run:last-child { border-bottom: 0; }
3129
- .mkt-page[data-page="agent-detail"] .ad-run-label { color: #2a2d33; font-weight: 600; }
3130
- .mkt-page[data-page="agent-detail"] .ad-run-when {
3131
- color: #8a8f99;
3392
+ .mkt-page[data-page="agent-detail"] .ad-feed-row:last-child { border-bottom: 0; }
3393
+ .mkt-page[data-page="agent-detail"] .ad-feed-icon {
3394
+ display: inline-flex;
3395
+ align-items: center;
3396
+ justify-content: center;
3397
+ width: 30px;
3398
+ height: 30px;
3399
+ border-radius: 9px;
3400
+ background: rgba(17, 19, 24, .05);
3401
+ color: #5b626c;
3402
+ }
3403
+ .mkt-page[data-page="agent-detail"] .ad-feed-icon.kind-approval { color: #1f6c9f; background: rgba(31, 108, 159, .10); }
3404
+ .mkt-page[data-page="agent-detail"] .ad-feed-main {
3405
+ display: flex;
3406
+ flex-direction: column;
3407
+ gap: 2px;
3408
+ min-width: 0;
3409
+ }
3410
+ .mkt-page[data-page="agent-detail"] .ad-feed-title {
3411
+ font: 600 13.5px/1.35 var(--font-sans, system-ui);
3412
+ color: #1d2026;
3413
+ overflow: hidden;
3414
+ text-overflow: ellipsis;
3415
+ white-space: nowrap;
3416
+ }
3417
+ .mkt-page[data-page="agent-detail"] .ad-feed-meta {
3418
+ font: 500 11.5px/1 var(--font-sans, system-ui);
3419
+ color: #9aa0a8;
3420
+ }
3421
+ .mkt-page[data-page="agent-detail"] .ad-feed-status {
3422
+ font: 600 12px/1 var(--font-sans, system-ui);
3423
+ white-space: nowrap;
3424
+ }
3425
+ .mkt-page[data-page="agent-detail"] .ad-feed-status.tone-ok { color: #2d7044; }
3426
+ .mkt-page[data-page="agent-detail"] .ad-feed-status.tone-warn { color: #9a6324; }
3427
+ .mkt-page[data-page="agent-detail"] .ad-feed-status.tone-bad { color: #9a3325; }
3428
+ .mkt-page[data-page="agent-detail"] .ad-feed-status.tone-neutral { color: #6b7280; }
3429
+ .mkt-page[data-page="agent-detail"] .ad-feed-when {
3430
+ font: 500 12px/1 var(--font-sans, system-ui);
3431
+ color: #9aa0a8;
3132
3432
  font-variant-numeric: tabular-nums;
3133
3433
  white-space: nowrap;
3134
3434
  }
3435
+ .mkt-page[data-page="agent-detail"] .ad-feed-empty {
3436
+ display: flex;
3437
+ flex-direction: column;
3438
+ gap: 4px;
3439
+ padding: 26px 2px;
3440
+ font: 500 13px/1.5 var(--font-sans, system-ui);
3441
+ color: #8a8f99;
3442
+ }
3443
+ .mkt-page[data-page="agent-detail"] .ad-feed-empty strong {
3444
+ font-weight: 600;
3445
+ color: #2a2d33;
3446
+ }
3447
+
3448
+ @media (prefers-reduced-motion: reduce) {
3449
+ .mkt-page[data-page="agent-detail"] .ad-drawer { transition: none; }
3450
+ }
3135
3451
 
3136
3452
  /* ---- Details view ------------------------------------------- */
3137
3453
  /* Compact overview — operative numbers, calm not debug-dumpy. */
@@ -3216,7 +3532,6 @@ a.admin-record-link{display:block;text-decoration:none;color:inherit;transition:
3216
3532
  .mkt-page[data-page="agent-detail"] .ad-facts,
3217
3533
  .mkt-page[data-page="agent-detail"] .ad-overview { grid-template-columns: 1fr 1fr; }
3218
3534
  .mkt-page[data-page="agent-detail"] .ad-kv-grid { grid-template-columns: 1fr; }
3219
- .mkt-page[data-page="agent-detail"] .ad-fact--publish { grid-column: 1 / -1; }
3220
3535
  }
3221
3536
 
3222
3537
  /* ============================================================== */
@@ -18,6 +18,18 @@ export const AGENT_TEMPLATES = [
18
18
  ['finance-ops','Finance and Ops','finance_ops','anthropic',['file_read','create_artifact'],[], 'Reads finance docs and drafts advisory runway and ops summaries.'],
19
19
  ['legal-compliance','Legal and Compliance','legal_compliance','anthropic',['file_read','web_fetch','create_artifact'],[], 'Reviews policy and compliance documents as advisory output only.'],
20
20
  ['customer-support','Customer Support','customer_support','anthropic',['gmail_message_read','file_write'],[], 'Drafts customer replies and escalates approval-required sends.'],
21
+ // ── Business Agent Suite roles (P4) ───────────────────────────────────────
22
+ // Each role's external-write capabilities are unlocked by connecting the
23
+ // matching service and granting through the connection grant flow; the
24
+ // template ships only the safe built-in tools so a fresh install is runnable
25
+ // and every spend/send stays approval-gated.
26
+ ['chief-of-staff','Chief of Staff','chief_of_staff','anthropic',['web_search','file_read','file_write','create_artifact','create_workflow_definition'],['report-builder','market-research'],'Translates founder intent into delegated work across the company, runs the weekly cadence, and surfaces decisions. No direct external writes.'],
27
+ ['ads-media-buyer','Ads / Media Buyer','ads_media_buyer','anthropic',['web_search','file_write','create_artifact'],['design-shotgun'],'Plans, builds, and reports on paid campaigns across Meta/Google/TikTok within budget caps. Every campaign publish and budget set is approval-gated.'],
28
+ ['content-social','Content / Social Manager','content_social','anthropic',['web_search','file_write','create_artifact','voice_speak'],['design-shotgun'],'Produces and schedules organic posts, reels, and videos and maintains brand voice. Every publish is approval-gated.'],
29
+ ['sales-bd','Sales / BD','sales_bd','anthropic',['web_search','web_fetch','gmail_messages_list','email_send','create_artifact'],['inbox-triage'],'Builds target lists, enriches leads, runs outreach, and logs CRM activity. Bulk sends and CRM writes are approval-gated.'],
30
+ ['ops-manager','Operations','ops_manager','anthropic',['calendar_events_list','calendar_event_read','file_read','file_write','create_artifact'],['meeting-scheduler','report-builder'],'Keeps the business running — scheduling, internal docs, recurring checklists, vendor coordination. Calendar invites and webhooks are approval-gated.'],
31
+ ['product-pm','Product / Project Manager','product_pm','claude-code',['gh_repo_read','gh_issue_list','gh_issue_create','gh_pr_list','file_read','file_write','create_workflow_definition'],['review'],'Maintains the roadmap, writes specs, tracks delivery, and runs standups. Issue/PR creates respect the GitHub allowlist.'],
32
+ ['web-ecommerce','Web / Ecommerce','web_ecommerce','claude-code',['web_fetch','supabase_rest_select','browser_open','file_read','file_write','create_artifact'],['web-automation'],'Manages site/store content, products, SEO, and deploys. Deploys, store writes, and DB writes are approval-gated.'],
21
33
  ].map(([slug,title,role,engine_default,tools_required,skills,description_long]) => ({
22
34
  slug, title, role, engine_default, tools_required, tools_optional: [], skills,
23
35
  memory_scopes: ['agent','project'], approval_profile: role === 'personal_assistant' ? 'strict' : 'standard', description_long,
@@ -0,0 +1,106 @@
1
+ // lib/connection-grant.js — post-connect grant foundation.
2
+ //
3
+ // After a connection verifies, the operator chooses which agents get the tools it
4
+ // unlocks. This is the missing UX glue, not a missing primitive: it composes the
5
+ // connection manifest's `unlocks_tool_slugs` with the existing per-agent
6
+ // enforcement layer (agent_tool_permissions via setAgentToolPermission).
7
+ //
8
+ // SAFE DEFAULTS (load-bearing): a granted tool's permission mode is derived from
9
+ // its registry risk tier — NEVER from the caller:
10
+ // low / medium → 'auto' (runs without a per-call gate)
11
+ // high / irreversible_* → 'approval_required' (always stops for a human)
12
+ // irreversible_external additionally ALWAYS gates at execution regardless of the
13
+ // stored mode, so 'approval_required' here is belt-and-suspenders, not the only
14
+ // guard. Unknown tools (no registry descriptor) fall back to 'approval_required'.
15
+
16
+ import { getDb, nowIso, newId } from './db.js';
17
+ import { listMarketplaceTools } from './tools/registry.js';
18
+ import { getConnection } from './connections.js';
19
+ import { setAgentToolPermission } from './runtime.js';
20
+
21
+ const AUTO_RISK = new Set(['low', 'medium']);
22
+
23
+ /** Resolve the safe default permission mode for a tool by its risk tier. */
24
+ export function defaultModeForRisk(riskLevel) {
25
+ return AUTO_RISK.has(riskLevel) ? 'auto' : 'approval_required';
26
+ }
27
+
28
+ function writeAudit(meta) {
29
+ try {
30
+ getDb().prepare(`
31
+ INSERT INTO audit_logs (id, at, type, summary, status, meta)
32
+ VALUES (?, ?, ?, ?, ?, ?)
33
+ `).run(
34
+ newId('audit'),
35
+ nowIso(),
36
+ 'connection.grant',
37
+ `Granted ${meta.service_key} tools to ${meta.agent_ids.length} agent(s)`,
38
+ 'ok',
39
+ JSON.stringify(meta),
40
+ );
41
+ } catch {
42
+ // best-effort
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Grant a connection's unlocked tools to one or more agents.
48
+ *
49
+ * @param {object} args
50
+ * @param {string} [args.service_key] connection slug; its manifest supplies unlocks_tool_slugs
51
+ * @param {string[]} [args.tool_slugs] explicit tool slugs (overrides service_key lookup)
52
+ * @param {string[]} args.agent_ids agents to grant to
53
+ * @returns {{ ok, granted: Array, skipped: Array, agent_ids: string[] }}
54
+ */
55
+ export function grantConnectionToAgents(args = {}) {
56
+ const agentIds = Array.isArray(args.agent_ids) ? args.agent_ids.filter(Boolean).map(String) : [];
57
+ if (!agentIds.length) return { ok: false, error: 'no_agents', granted: [], skipped: [] };
58
+
59
+ // Resolve the unlocked tool slugs: explicit list wins, else the connection manifest.
60
+ let toolSlugs = Array.isArray(args.tool_slugs) ? args.tool_slugs.filter(Boolean).map(String) : null;
61
+ let serviceKey = args.service_key || null;
62
+ if (!toolSlugs) {
63
+ if (!serviceKey) return { ok: false, error: 'no_service_or_tools', granted: [], skipped: [] };
64
+ const connection = getConnection(serviceKey);
65
+ if (!connection) return { ok: false, error: 'connection_not_found', granted: [], skipped: [] };
66
+ const manifest = connection.manifest || {};
67
+ toolSlugs = Array.isArray(manifest.unlocks_tool_slugs) ? manifest.unlocks_tool_slugs.map(String) : [];
68
+ }
69
+
70
+ // Risk map from the live registry (static tools + dynamic composites/connectors).
71
+ const riskByTool = new Map();
72
+ for (const tool of listMarketplaceTools()) riskByTool.set(tool.name, tool.risk_level);
73
+
74
+ const db = getDb();
75
+ const granted = [];
76
+ const skipped = [];
77
+
78
+ for (const agentId of agentIds) {
79
+ const agentRow = db.prepare('SELECT id, tools FROM agents WHERE id = ?').get(agentId);
80
+ if (!agentRow) {
81
+ skipped.push({ agent_id: agentId, reason: 'agent_not_found' });
82
+ continue;
83
+ }
84
+ // Union the declared toolset so the agent card reflects the new tools.
85
+ let declared = [];
86
+ try { declared = JSON.parse(agentRow.tools || '[]'); } catch { declared = []; }
87
+ if (!Array.isArray(declared)) declared = [];
88
+ const declaredSet = new Set(declared);
89
+
90
+ for (const slug of toolSlugs) {
91
+ const risk = riskByTool.get(slug);
92
+ const mode = defaultModeForRisk(risk);
93
+ try {
94
+ setAgentToolPermission(agentId, slug, mode);
95
+ declaredSet.add(slug);
96
+ granted.push({ agent_id: agentId, tool: slug, mode, risk_level: risk || null });
97
+ } catch (err) {
98
+ skipped.push({ agent_id: agentId, tool: slug, reason: String(err?.message || err) });
99
+ }
100
+ }
101
+ db.prepare('UPDATE agents SET tools = ? WHERE id = ?').run(JSON.stringify([...declaredSet]), agentId);
102
+ }
103
+
104
+ writeAudit({ service_key: serviceKey, agent_ids: agentIds, tool_slugs: toolSlugs, granted_count: granted.length });
105
+ return { ok: true, granted, skipped, agent_ids: agentIds };
106
+ }