leedab 0.6.1 → 0.7.1

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 (594) hide show
  1. package/README.md +23 -13
  2. package/apps/console/.next/standalone/.next/BUILD_ID +1 -1
  3. package/apps/console/.next/standalone/.next/app-build-manifest.json +206 -171
  4. package/apps/console/.next/standalone/.next/app-path-routes-manifest.json +56 -51
  5. package/apps/console/.next/standalone/.next/build-manifest.json +2 -2
  6. package/apps/console/.next/standalone/.next/prerender-manifest.json +3 -3
  7. package/apps/console/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  8. package/apps/console/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/apps/console/.next/standalone/.next/server/app/_not-found.html +1 -1
  10. package/apps/console/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  11. package/apps/console/.next/standalone/.next/server/app/api/agent/route.js +2 -2
  12. package/apps/console/.next/standalone/.next/server/app/api/agent/route_client-reference-manifest.js +1 -1
  13. package/apps/console/.next/standalone/.next/server/app/api/approvals/route.js +1 -1
  14. package/apps/console/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  15. package/apps/console/.next/standalone/.next/server/app/api/approvals/stream/route.js +1 -1
  16. package/apps/console/.next/standalone/.next/server/app/api/approvals/stream/route_client-reference-manifest.js +1 -1
  17. package/apps/console/.next/standalone/.next/server/app/api/automation/workflow-blueprint/route_client-reference-manifest.js +1 -1
  18. package/apps/console/.next/standalone/.next/server/app/api/backend/endpoint-spec/route_client-reference-manifest.js +1 -1
  19. package/apps/console/.next/standalone/.next/server/app/api/bootstrap-admin-token/route_client-reference-manifest.js +1 -1
  20. package/apps/console/.next/standalone/.next/server/app/api/brand/brand-audit/route_client-reference-manifest.js +1 -1
  21. package/apps/console/.next/standalone/.next/server/app/api/campaigns/campaign-brief/route_client-reference-manifest.js +1 -1
  22. package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route.js +1 -3
  23. package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route.js.nft.json +1 -1
  24. package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route_client-reference-manifest.js +1 -1
  25. package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route.js +1 -3
  26. package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route.js.nft.json +1 -1
  27. package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route_client-reference-manifest.js +1 -1
  28. package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route.js +1 -3
  29. package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route.js.nft.json +1 -1
  30. package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route_client-reference-manifest.js +1 -1
  31. package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route.js +1 -3
  32. package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route.js.nft.json +1 -1
  33. package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route_client-reference-manifest.js +1 -1
  34. package/apps/console/.next/standalone/.next/server/app/api/champion/escalate/route_client-reference-manifest.js +1 -1
  35. package/apps/console/.next/standalone/.next/server/app/api/champion/profile/route.js +1 -1
  36. package/apps/console/.next/standalone/.next/server/app/api/champion/profile/route_client-reference-manifest.js +1 -1
  37. package/apps/console/.next/standalone/.next/server/app/api/champion/screenshare/route_client-reference-manifest.js +1 -1
  38. package/apps/console/.next/standalone/.next/server/app/api/champion/track-question/route_client-reference-manifest.js +1 -1
  39. package/apps/console/.next/standalone/.next/server/app/api/champion/use-case-wiki/route_client-reference-manifest.js +1 -1
  40. package/apps/console/.next/standalone/.next/server/app/api/chat/route.js +2 -2
  41. package/apps/console/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  42. package/apps/console/.next/standalone/.next/server/app/api/compliance/risk-register-seed/route_client-reference-manifest.js +1 -1
  43. package/apps/console/.next/standalone/.next/server/app/api/computer-use/[id]/route_client-reference-manifest.js +1 -1
  44. package/apps/console/.next/standalone/.next/server/app/api/computer-use/route_client-reference-manifest.js +1 -1
  45. package/apps/console/.next/standalone/.next/server/app/api/concierge/morning-brief/route.js +1 -1
  46. package/apps/console/.next/standalone/.next/server/app/api/concierge/morning-brief/route_client-reference-manifest.js +1 -1
  47. package/apps/console/.next/standalone/.next/server/app/api/contacts/route.js +1 -1
  48. package/apps/console/.next/standalone/.next/server/app/api/contacts/route_client-reference-manifest.js +1 -1
  49. package/apps/console/.next/standalone/.next/server/app/api/content/seo-brief/route_client-reference-manifest.js +1 -1
  50. package/apps/console/.next/standalone/.next/server/app/api/conversations/route.js +2 -2
  51. package/apps/console/.next/standalone/.next/server/app/api/conversations/route_client-reference-manifest.js +1 -1
  52. package/apps/console/.next/standalone/.next/server/app/api/coo/route.js +1 -1
  53. package/apps/console/.next/standalone/.next/server/app/api/coo/route_client-reference-manifest.js +1 -1
  54. package/apps/console/.next/standalone/.next/server/app/api/cx/escalation-triage/route_client-reference-manifest.js +1 -1
  55. package/apps/console/.next/standalone/.next/server/app/api/cx/health-score/route.js +1 -1
  56. package/apps/console/.next/standalone/.next/server/app/api/cx/health-score/route_client-reference-manifest.js +1 -1
  57. package/apps/console/.next/standalone/.next/server/app/api/data/cohort-brief/route_client-reference-manifest.js +1 -1
  58. package/apps/console/.next/standalone/.next/server/app/api/delivery/qbr-brief/route.js +1 -1
  59. package/apps/console/.next/standalone/.next/server/app/api/delivery/qbr-brief/route_client-reference-manifest.js +1 -1
  60. package/apps/console/.next/standalone/.next/server/app/api/delivery/weekly-brief/route.js +1 -1
  61. package/apps/console/.next/standalone/.next/server/app/api/delivery/weekly-brief/route_client-reference-manifest.js +1 -1
  62. package/apps/console/.next/standalone/.next/server/app/api/dev/invalidate-cache/route.js +1 -1
  63. package/apps/console/.next/standalone/.next/server/app/api/dev/invalidate-cache/route_client-reference-manifest.js +1 -1
  64. package/apps/console/.next/standalone/.next/server/app/api/devops/runbook/route_client-reference-manifest.js +1 -1
  65. package/apps/console/.next/standalone/.next/server/app/api/email/sequence-brief/route_client-reference-manifest.js +1 -1
  66. package/apps/console/.next/standalone/.next/server/app/api/engineering/adr-draft/route_client-reference-manifest.js +1 -1
  67. package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route.js +4 -2
  68. package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route.js.nft.json +1 -1
  69. package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route_client-reference-manifest.js +1 -1
  70. package/apps/console/.next/standalone/.next/server/app/api/frontend/component-spec/route_client-reference-manifest.js +1 -1
  71. package/apps/console/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  72. package/apps/console/.next/standalone/.next/server/app/api/implementation/brief/route_client-reference-manifest.js +1 -1
  73. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-migration-script/route_client-reference-manifest.js +1 -1
  74. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-n8n-workflow/route_client-reference-manifest.js +1 -1
  75. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-skill-override/route_client-reference-manifest.js +1 -1
  76. package/apps/console/.next/standalone/.next/server/app/api/inbox/route.js +1 -1
  77. package/apps/console/.next/standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  78. package/apps/console/.next/standalone/.next/server/app/api/inbox/stream/route.js +1 -1
  79. package/apps/console/.next/standalone/.next/server/app/api/inbox/stream/route_client-reference-manifest.js +1 -1
  80. package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route.js +4 -2
  81. package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route.js.nft.json +1 -1
  82. package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route_client-reference-manifest.js +1 -1
  83. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/status/route_client-reference-manifest.js +1 -1
  84. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/telegram/connect/route_client-reference-manifest.js +1 -1
  85. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/whatsapp/connect/route_client-reference-manifest.js +1 -1
  86. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/route_client-reference-manifest.js +1 -1
  87. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/status/route_client-reference-manifest.js +1 -1
  88. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/templates/[name]/route_client-reference-manifest.js +1 -1
  89. package/apps/console/.next/standalone/.next/server/app/api/leedab/license/route_client-reference-manifest.js +1 -1
  90. package/apps/console/.next/standalone/.next/server/app/api/leedab/models/route.js +1 -0
  91. package/apps/console/.next/standalone/.next/server/app/api/leedab/models/route.js.nft.json +1 -0
  92. package/apps/console/.next/standalone/.next/server/app/api/leedab/models/route_client-reference-manifest.js +1 -0
  93. package/apps/console/.next/standalone/.next/server/app/api/leedab/providers/route.js +1 -1
  94. package/apps/console/.next/standalone/.next/server/app/api/leedab/providers/route_client-reference-manifest.js +1 -1
  95. package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/[id]/route_client-reference-manifest.js +1 -1
  96. package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/route_client-reference-manifest.js +1 -1
  97. package/apps/console/.next/standalone/.next/server/app/api/leedab/team/[id]/route_client-reference-manifest.js +1 -1
  98. package/apps/console/.next/standalone/.next/server/app/api/leedab/team/route_client-reference-manifest.js +1 -1
  99. package/apps/console/.next/standalone/.next/server/app/api/leedab/vault/route_client-reference-manifest.js +1 -1
  100. package/apps/console/.next/standalone/.next/server/app/api/leedab/workflows/route_client-reference-manifest.js +1 -1
  101. package/apps/console/.next/standalone/.next/server/app/api/legal/clause-template/route_client-reference-manifest.js +1 -1
  102. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/draft/route.js +20 -0
  103. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/draft/route.js.nft.json +1 -0
  104. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/draft/route_client-reference-manifest.js +1 -0
  105. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route.js +3 -0
  106. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route.js.nft.json +1 -0
  107. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/custom/route_client-reference-manifest.js +1 -0
  108. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route.js +3 -0
  109. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route.js.nft.json +1 -0
  110. package/apps/console/.next/standalone/.next/server/app/api/manifest/agents/route_client-reference-manifest.js +1 -0
  111. package/apps/console/.next/standalone/.next/server/app/api/marketing/cadence-planner/route_client-reference-manifest.js +1 -1
  112. package/apps/console/.next/standalone/.next/server/app/api/marketing/competitive-snapshot/route_client-reference-manifest.js +1 -1
  113. package/apps/console/.next/standalone/.next/server/app/api/marketplace/catalogue/route.js +3 -0
  114. package/apps/console/.next/standalone/.next/server/app/api/marketplace/catalogue/route.js.nft.json +1 -0
  115. package/apps/console/.next/standalone/.next/server/app/api/marketplace/catalogue/route_client-reference-manifest.js +1 -0
  116. package/apps/console/.next/standalone/.next/server/app/api/onboarding/engagement-plan/route_client-reference-manifest.js +1 -1
  117. package/apps/console/.next/standalone/.next/server/app/api/onboarding/kickoff-brief/route_client-reference-manifest.js +1 -1
  118. package/apps/console/.next/standalone/.next/server/app/api/openclaw/status/route_client-reference-manifest.js +1 -1
  119. package/apps/console/.next/standalone/.next/server/app/api/ops/dispatch-brief/route_client-reference-manifest.js +1 -1
  120. package/apps/console/.next/standalone/.next/server/app/api/pack/route.js +1 -1
  121. package/apps/console/.next/standalone/.next/server/app/api/pack/route_client-reference-manifest.js +1 -1
  122. package/apps/console/.next/standalone/.next/server/app/api/people/job-brief/route_client-reference-manifest.js +1 -1
  123. package/apps/console/.next/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  124. package/apps/console/.next/standalone/.next/server/app/api/procurement/po-brief/route_client-reference-manifest.js +1 -1
  125. package/apps/console/.next/standalone/.next/server/app/api/product/prd-draft/route_client-reference-manifest.js +1 -1
  126. package/apps/console/.next/standalone/.next/server/app/api/research/prospect-intel/route_client-reference-manifest.js +1 -1
  127. package/apps/console/.next/standalone/.next/server/app/api/research/search/route_client-reference-manifest.js +1 -1
  128. package/apps/console/.next/standalone/.next/server/app/api/routing/route.js +1 -1
  129. package/apps/console/.next/standalone/.next/server/app/api/routing/route_client-reference-manifest.js +1 -1
  130. package/apps/console/.next/standalone/.next/server/app/api/runs/route.js +1 -1
  131. package/apps/console/.next/standalone/.next/server/app/api/runs/route.js.nft.json +1 -1
  132. package/apps/console/.next/standalone/.next/server/app/api/runs/route_client-reference-manifest.js +1 -1
  133. package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route.js +4 -2
  134. package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route.js.nft.json +1 -1
  135. package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route_client-reference-manifest.js +1 -1
  136. package/apps/console/.next/standalone/.next/server/app/api/sales/prospect-brief/route_client-reference-manifest.js +1 -1
  137. package/apps/console/.next/standalone/.next/server/app/api/solutions/build/route.js +2 -2
  138. package/apps/console/.next/standalone/.next/server/app/api/solutions/build/route_client-reference-manifest.js +1 -1
  139. package/apps/console/.next/standalone/.next/server/app/api/solutions/quickstart-regenerate/route.js +1 -1
  140. package/apps/console/.next/standalone/.next/server/app/api/solutions/quickstart-regenerate/route_client-reference-manifest.js +1 -1
  141. package/apps/console/.next/standalone/.next/server/app/api/solutions/refine/route_client-reference-manifest.js +1 -1
  142. package/apps/console/.next/standalone/.next/server/app/api/strategy/market-pulse/route_client-reference-manifest.js +1 -1
  143. package/apps/console/.next/standalone/.next/server/app/api/telegram/[customerId]/route.js +4 -4
  144. package/apps/console/.next/standalone/.next/server/app/api/telegram/[customerId]/route_client-reference-manifest.js +1 -1
  145. package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route.js +4 -2
  146. package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route.js.nft.json +1 -1
  147. package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route_client-reference-manifest.js +1 -1
  148. package/apps/console/.next/standalone/.next/server/app/api/templates/route.js +1 -1
  149. package/apps/console/.next/standalone/.next/server/app/api/templates/route.js.nft.json +1 -1
  150. package/apps/console/.next/standalone/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  151. package/apps/console/.next/standalone/.next/server/app/api/uploads/[id]/route_client-reference-manifest.js +1 -1
  152. package/apps/console/.next/standalone/.next/server/app/api/uploads/route_client-reference-manifest.js +1 -1
  153. package/apps/console/.next/standalone/.next/server/app/api/usage/route.js +2 -2
  154. package/apps/console/.next/standalone/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
  155. package/apps/console/.next/standalone/.next/server/app/api/video/video-script/route_client-reference-manifest.js +1 -1
  156. package/apps/console/.next/standalone/.next/server/app/api/webhooks/workflow/[id]/route.js +2 -2
  157. package/apps/console/.next/standalone/.next/server/app/api/webhooks/workflow/[id]/route_client-reference-manifest.js +1 -1
  158. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/[runId]/route_client-reference-manifest.js +1 -1
  159. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/route_client-reference-manifest.js +1 -1
  160. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/route.js +2 -2
  161. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
  162. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/run/route.js +1 -1
  163. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/run/route_client-reference-manifest.js +1 -1
  164. package/apps/console/.next/standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  165. package/apps/console/.next/standalone/.next/server/app/gtm/page.js +2 -2
  166. package/apps/console/.next/standalone/.next/server/app/gtm/page_client-reference-manifest.js +1 -1
  167. package/apps/console/.next/standalone/.next/server/app/index.html +1 -1
  168. package/apps/console/.next/standalone/.next/server/app/index.rsc +4 -4
  169. package/apps/console/.next/standalone/.next/server/app/page.js +2 -2
  170. package/apps/console/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  171. package/apps/console/.next/standalone/.next/server/app-paths-manifest.json +56 -51
  172. package/apps/console/.next/standalone/.next/server/chunks/1558.js +9 -9
  173. package/apps/console/.next/standalone/.next/server/chunks/{5670.js → 2576.js} +1 -3
  174. package/apps/console/.next/standalone/.next/server/chunks/381.js +19 -0
  175. package/apps/console/.next/standalone/.next/server/chunks/4768.js +5 -5
  176. package/apps/console/.next/standalone/.next/server/chunks/6255.js +1 -1
  177. package/apps/console/.next/standalone/.next/server/chunks/7087.js +1 -1
  178. package/apps/console/.next/standalone/.next/server/chunks/897.js +1 -1
  179. package/apps/console/.next/standalone/.next/server/functions-config-manifest.json +40 -35
  180. package/apps/console/.next/standalone/.next/server/instrumentation.js +1 -1
  181. package/apps/console/.next/standalone/.next/server/pages/404.html +1 -1
  182. package/apps/console/.next/standalone/.next/server/pages/500.html +1 -1
  183. package/apps/console/.next/standalone/.next/server/pages-manifest.json +1 -1
  184. package/apps/console/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  185. package/apps/console/.next/standalone/.next/static/B4g4e91OJP29sEqgIs76V/_buildManifest.js +1 -0
  186. package/apps/console/.next/standalone/.next/static/chunks/7973-072db1a3857a8fe9.js +1 -0
  187. package/apps/console/.next/standalone/.next/static/chunks/app/api/agent/route-2d8162b887d31980.js +1 -0
  188. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/route-2d8162b887d31980.js +1 -0
  189. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/stream/route-2d8162b887d31980.js +1 -0
  190. package/apps/console/.next/standalone/.next/static/chunks/app/api/automation/workflow-blueprint/route-2d8162b887d31980.js +1 -0
  191. package/apps/console/.next/standalone/.next/static/chunks/app/api/backend/endpoint-spec/route-2d8162b887d31980.js +1 -0
  192. package/apps/console/.next/standalone/.next/static/chunks/app/api/bootstrap-admin-token/route-2d8162b887d31980.js +1 -0
  193. package/apps/console/.next/standalone/.next/static/chunks/app/api/brand/brand-audit/route-2d8162b887d31980.js +1 -0
  194. package/apps/console/.next/standalone/.next/static/chunks/app/api/campaigns/campaign-brief/route-2d8162b887d31980.js +1 -0
  195. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/confidence/route-2d8162b887d31980.js +1 -0
  196. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/customer/route-2d8162b887d31980.js +1 -0
  197. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/dispatches/route-2d8162b887d31980.js +1 -0
  198. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/engagement/route-2d8162b887d31980.js +1 -0
  199. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/escalate/route-2d8162b887d31980.js +1 -0
  200. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/profile/route-2d8162b887d31980.js +1 -0
  201. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/screenshare/route-2d8162b887d31980.js +1 -0
  202. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/track-question/route-2d8162b887d31980.js +1 -0
  203. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/use-case-wiki/route-2d8162b887d31980.js +1 -0
  204. package/apps/console/.next/standalone/.next/static/chunks/app/api/chat/route-2d8162b887d31980.js +1 -0
  205. package/apps/console/.next/standalone/.next/static/chunks/app/api/compliance/risk-register-seed/route-2d8162b887d31980.js +1 -0
  206. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/[id]/route-2d8162b887d31980.js +1 -0
  207. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/route-2d8162b887d31980.js +1 -0
  208. package/apps/console/.next/standalone/.next/static/chunks/app/api/concierge/morning-brief/route-2d8162b887d31980.js +1 -0
  209. package/apps/console/.next/standalone/.next/static/chunks/app/api/contacts/route-2d8162b887d31980.js +1 -0
  210. package/apps/console/.next/standalone/.next/static/chunks/app/api/content/seo-brief/route-2d8162b887d31980.js +1 -0
  211. package/apps/console/.next/standalone/.next/static/chunks/app/api/conversations/route-2d8162b887d31980.js +1 -0
  212. package/apps/console/.next/standalone/.next/static/chunks/app/api/coo/route-2d8162b887d31980.js +1 -0
  213. package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/escalation-triage/route-2d8162b887d31980.js +1 -0
  214. package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/health-score/route-2d8162b887d31980.js +1 -0
  215. package/apps/console/.next/standalone/.next/static/chunks/app/api/data/cohort-brief/route-2d8162b887d31980.js +1 -0
  216. package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/qbr-brief/route-2d8162b887d31980.js +1 -0
  217. package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/weekly-brief/route-2d8162b887d31980.js +1 -0
  218. package/apps/console/.next/standalone/.next/static/chunks/app/api/dev/invalidate-cache/route-2d8162b887d31980.js +1 -0
  219. package/apps/console/.next/standalone/.next/static/chunks/app/api/devops/runbook/route-2d8162b887d31980.js +1 -0
  220. package/apps/console/.next/standalone/.next/static/chunks/app/api/email/sequence-brief/route-2d8162b887d31980.js +1 -0
  221. package/apps/console/.next/standalone/.next/static/chunks/app/api/engineering/adr-draft/route-2d8162b887d31980.js +1 -0
  222. package/apps/console/.next/standalone/.next/static/chunks/app/api/finance/runway-snapshot/route-2d8162b887d31980.js +1 -0
  223. package/apps/console/.next/standalone/.next/static/chunks/app/api/frontend/component-spec/route-2d8162b887d31980.js +1 -0
  224. package/apps/console/.next/standalone/.next/static/chunks/app/api/health/route-2d8162b887d31980.js +1 -0
  225. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/brief/route-2d8162b887d31980.js +1 -0
  226. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-2d8162b887d31980.js +1 -0
  227. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-2d8162b887d31980.js +1 -0
  228. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-2d8162b887d31980.js +1 -0
  229. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/route-2d8162b887d31980.js +1 -0
  230. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/stream/route-2d8162b887d31980.js +1 -0
  231. package/apps/console/.next/standalone/.next/static/chunks/app/api/investor/kpi-tracker/route-2d8162b887d31980.js +1 -0
  232. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/status/route-2d8162b887d31980.js +1 -0
  233. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-2d8162b887d31980.js +1 -0
  234. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-2d8162b887d31980.js +1 -0
  235. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-2d8162b887d31980.js +1 -0
  236. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-2d8162b887d31980.js +1 -0
  237. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-2d8162b887d31980.js +1 -0
  238. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/license/route-2d8162b887d31980.js +1 -0
  239. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/models/route-2d8162b887d31980.js +1 -0
  240. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/providers/route-2d8162b887d31980.js +1 -0
  241. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/[id]/route-2d8162b887d31980.js +1 -0
  242. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/route-2d8162b887d31980.js +1 -0
  243. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/[id]/route-2d8162b887d31980.js +1 -0
  244. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/route-2d8162b887d31980.js +1 -0
  245. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/vault/route-2d8162b887d31980.js +1 -0
  246. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/workflows/route-2d8162b887d31980.js +1 -0
  247. package/apps/console/.next/standalone/.next/static/chunks/app/api/legal/clause-template/route-2d8162b887d31980.js +1 -0
  248. package/apps/console/.next/standalone/.next/static/chunks/app/api/manifest/agents/custom/draft/route-2d8162b887d31980.js +1 -0
  249. package/apps/console/.next/standalone/.next/static/chunks/app/api/manifest/agents/custom/route-2d8162b887d31980.js +1 -0
  250. package/apps/console/.next/standalone/.next/static/chunks/app/api/manifest/agents/route-2d8162b887d31980.js +1 -0
  251. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/cadence-planner/route-2d8162b887d31980.js +1 -0
  252. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/competitive-snapshot/route-2d8162b887d31980.js +1 -0
  253. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketplace/catalogue/route-2d8162b887d31980.js +1 -0
  254. package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/engagement-plan/route-2d8162b887d31980.js +1 -0
  255. package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/kickoff-brief/route-2d8162b887d31980.js +1 -0
  256. package/apps/console/.next/standalone/.next/static/chunks/app/api/openclaw/status/route-2d8162b887d31980.js +1 -0
  257. package/apps/console/.next/standalone/.next/static/chunks/app/api/ops/dispatch-brief/route-2d8162b887d31980.js +1 -0
  258. package/apps/console/.next/standalone/.next/static/chunks/app/api/pack/route-2d8162b887d31980.js +1 -0
  259. package/apps/console/.next/standalone/.next/static/chunks/app/api/people/job-brief/route-2d8162b887d31980.js +1 -0
  260. package/apps/console/.next/standalone/.next/static/chunks/app/api/preferences/route-2d8162b887d31980.js +1 -0
  261. package/apps/console/.next/standalone/.next/static/chunks/app/api/procurement/po-brief/route-2d8162b887d31980.js +1 -0
  262. package/apps/console/.next/standalone/.next/static/chunks/app/api/product/prd-draft/route-2d8162b887d31980.js +1 -0
  263. package/apps/console/.next/standalone/.next/static/chunks/app/api/research/prospect-intel/route-2d8162b887d31980.js +1 -0
  264. package/apps/console/.next/standalone/.next/static/chunks/app/api/research/search/route-2d8162b887d31980.js +1 -0
  265. package/apps/console/.next/standalone/.next/static/chunks/app/api/routing/route-2d8162b887d31980.js +1 -0
  266. package/apps/console/.next/standalone/.next/static/chunks/app/api/runs/route-2d8162b887d31980.js +1 -0
  267. package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/pipeline-summary/route-2d8162b887d31980.js +1 -0
  268. package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/prospect-brief/route-2d8162b887d31980.js +1 -0
  269. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/build/route-2d8162b887d31980.js +1 -0
  270. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-2d8162b887d31980.js +1 -0
  271. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/refine/route-2d8162b887d31980.js +1 -0
  272. package/apps/console/.next/standalone/.next/static/chunks/app/api/strategy/market-pulse/route-2d8162b887d31980.js +1 -0
  273. package/apps/console/.next/standalone/.next/static/chunks/app/api/telegram/[customerId]/route-2d8162b887d31980.js +1 -0
  274. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/regenerate/route-2d8162b887d31980.js +1 -0
  275. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/route-2d8162b887d31980.js +1 -0
  276. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/[id]/route-2d8162b887d31980.js +1 -0
  277. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/route-2d8162b887d31980.js +1 -0
  278. package/apps/console/.next/standalone/.next/static/chunks/app/api/usage/route-2d8162b887d31980.js +1 -0
  279. package/apps/console/.next/standalone/.next/static/chunks/app/api/video/video-script/route-2d8162b887d31980.js +1 -0
  280. package/apps/console/.next/standalone/.next/static/chunks/app/api/webhooks/workflow/[id]/route-2d8162b887d31980.js +1 -0
  281. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-2d8162b887d31980.js +1 -0
  282. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/route-2d8162b887d31980.js +1 -0
  283. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/route-2d8162b887d31980.js +1 -0
  284. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/run/route-2d8162b887d31980.js +1 -0
  285. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/route-2d8162b887d31980.js +1 -0
  286. package/apps/console/.next/standalone/.next/static/chunks/app/page-bdfdbf7b657f4722.js +1 -0
  287. package/apps/console/.next/standalone/.next/static/css/{4bdbd0680d42c54d.css → b2a91ecca3bf1487.css} +1 -1
  288. package/apps/console/.next/standalone/package.json +1 -0
  289. package/apps/console/.next/static/B4g4e91OJP29sEqgIs76V/_buildManifest.js +1 -0
  290. package/apps/console/.next/static/chunks/7973-072db1a3857a8fe9.js +1 -0
  291. package/apps/console/.next/static/chunks/app/api/agent/route-2d8162b887d31980.js +1 -0
  292. package/apps/console/.next/static/chunks/app/api/approvals/route-2d8162b887d31980.js +1 -0
  293. package/apps/console/.next/static/chunks/app/api/approvals/stream/route-2d8162b887d31980.js +1 -0
  294. package/apps/console/.next/static/chunks/app/api/automation/workflow-blueprint/route-2d8162b887d31980.js +1 -0
  295. package/apps/console/.next/static/chunks/app/api/backend/endpoint-spec/route-2d8162b887d31980.js +1 -0
  296. package/apps/console/.next/static/chunks/app/api/bootstrap-admin-token/route-2d8162b887d31980.js +1 -0
  297. package/apps/console/.next/static/chunks/app/api/brand/brand-audit/route-2d8162b887d31980.js +1 -0
  298. package/apps/console/.next/static/chunks/app/api/campaigns/campaign-brief/route-2d8162b887d31980.js +1 -0
  299. package/apps/console/.next/static/chunks/app/api/champion/confidence/route-2d8162b887d31980.js +1 -0
  300. package/apps/console/.next/static/chunks/app/api/champion/customer/route-2d8162b887d31980.js +1 -0
  301. package/apps/console/.next/static/chunks/app/api/champion/dispatches/route-2d8162b887d31980.js +1 -0
  302. package/apps/console/.next/static/chunks/app/api/champion/engagement/route-2d8162b887d31980.js +1 -0
  303. package/apps/console/.next/static/chunks/app/api/champion/escalate/route-2d8162b887d31980.js +1 -0
  304. package/apps/console/.next/static/chunks/app/api/champion/profile/route-2d8162b887d31980.js +1 -0
  305. package/apps/console/.next/static/chunks/app/api/champion/screenshare/route-2d8162b887d31980.js +1 -0
  306. package/apps/console/.next/static/chunks/app/api/champion/track-question/route-2d8162b887d31980.js +1 -0
  307. package/apps/console/.next/static/chunks/app/api/champion/use-case-wiki/route-2d8162b887d31980.js +1 -0
  308. package/apps/console/.next/static/chunks/app/api/chat/route-2d8162b887d31980.js +1 -0
  309. package/apps/console/.next/static/chunks/app/api/compliance/risk-register-seed/route-2d8162b887d31980.js +1 -0
  310. package/apps/console/.next/static/chunks/app/api/computer-use/[id]/route-2d8162b887d31980.js +1 -0
  311. package/apps/console/.next/static/chunks/app/api/computer-use/route-2d8162b887d31980.js +1 -0
  312. package/apps/console/.next/static/chunks/app/api/concierge/morning-brief/route-2d8162b887d31980.js +1 -0
  313. package/apps/console/.next/static/chunks/app/api/contacts/route-2d8162b887d31980.js +1 -0
  314. package/apps/console/.next/static/chunks/app/api/content/seo-brief/route-2d8162b887d31980.js +1 -0
  315. package/apps/console/.next/static/chunks/app/api/conversations/route-2d8162b887d31980.js +1 -0
  316. package/apps/console/.next/static/chunks/app/api/coo/route-2d8162b887d31980.js +1 -0
  317. package/apps/console/.next/static/chunks/app/api/cx/escalation-triage/route-2d8162b887d31980.js +1 -0
  318. package/apps/console/.next/static/chunks/app/api/cx/health-score/route-2d8162b887d31980.js +1 -0
  319. package/apps/console/.next/static/chunks/app/api/data/cohort-brief/route-2d8162b887d31980.js +1 -0
  320. package/apps/console/.next/static/chunks/app/api/delivery/qbr-brief/route-2d8162b887d31980.js +1 -0
  321. package/apps/console/.next/static/chunks/app/api/delivery/weekly-brief/route-2d8162b887d31980.js +1 -0
  322. package/apps/console/.next/static/chunks/app/api/dev/invalidate-cache/route-2d8162b887d31980.js +1 -0
  323. package/apps/console/.next/static/chunks/app/api/devops/runbook/route-2d8162b887d31980.js +1 -0
  324. package/apps/console/.next/static/chunks/app/api/email/sequence-brief/route-2d8162b887d31980.js +1 -0
  325. package/apps/console/.next/static/chunks/app/api/engineering/adr-draft/route-2d8162b887d31980.js +1 -0
  326. package/apps/console/.next/static/chunks/app/api/finance/runway-snapshot/route-2d8162b887d31980.js +1 -0
  327. package/apps/console/.next/static/chunks/app/api/frontend/component-spec/route-2d8162b887d31980.js +1 -0
  328. package/apps/console/.next/static/chunks/app/api/health/route-2d8162b887d31980.js +1 -0
  329. package/apps/console/.next/static/chunks/app/api/implementation/brief/route-2d8162b887d31980.js +1 -0
  330. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-2d8162b887d31980.js +1 -0
  331. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-2d8162b887d31980.js +1 -0
  332. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-2d8162b887d31980.js +1 -0
  333. package/apps/console/.next/static/chunks/app/api/inbox/route-2d8162b887d31980.js +1 -0
  334. package/apps/console/.next/static/chunks/app/api/inbox/stream/route-2d8162b887d31980.js +1 -0
  335. package/apps/console/.next/static/chunks/app/api/investor/kpi-tracker/route-2d8162b887d31980.js +1 -0
  336. package/apps/console/.next/static/chunks/app/api/leedab/channels/status/route-2d8162b887d31980.js +1 -0
  337. package/apps/console/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-2d8162b887d31980.js +1 -0
  338. package/apps/console/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-2d8162b887d31980.js +1 -0
  339. package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-2d8162b887d31980.js +1 -0
  340. package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-2d8162b887d31980.js +1 -0
  341. package/apps/console/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-2d8162b887d31980.js +1 -0
  342. package/apps/console/.next/static/chunks/app/api/leedab/license/route-2d8162b887d31980.js +1 -0
  343. package/apps/console/.next/static/chunks/app/api/leedab/models/route-2d8162b887d31980.js +1 -0
  344. package/apps/console/.next/static/chunks/app/api/leedab/providers/route-2d8162b887d31980.js +1 -0
  345. package/apps/console/.next/static/chunks/app/api/leedab/sessions/[id]/route-2d8162b887d31980.js +1 -0
  346. package/apps/console/.next/static/chunks/app/api/leedab/sessions/route-2d8162b887d31980.js +1 -0
  347. package/apps/console/.next/static/chunks/app/api/leedab/team/[id]/route-2d8162b887d31980.js +1 -0
  348. package/apps/console/.next/static/chunks/app/api/leedab/team/route-2d8162b887d31980.js +1 -0
  349. package/apps/console/.next/static/chunks/app/api/leedab/vault/route-2d8162b887d31980.js +1 -0
  350. package/apps/console/.next/static/chunks/app/api/leedab/workflows/route-2d8162b887d31980.js +1 -0
  351. package/apps/console/.next/static/chunks/app/api/legal/clause-template/route-2d8162b887d31980.js +1 -0
  352. package/apps/console/.next/static/chunks/app/api/manifest/agents/custom/draft/route-2d8162b887d31980.js +1 -0
  353. package/apps/console/.next/static/chunks/app/api/manifest/agents/custom/route-2d8162b887d31980.js +1 -0
  354. package/apps/console/.next/static/chunks/app/api/manifest/agents/route-2d8162b887d31980.js +1 -0
  355. package/apps/console/.next/static/chunks/app/api/marketing/cadence-planner/route-2d8162b887d31980.js +1 -0
  356. package/apps/console/.next/static/chunks/app/api/marketing/competitive-snapshot/route-2d8162b887d31980.js +1 -0
  357. package/apps/console/.next/static/chunks/app/api/marketplace/catalogue/route-2d8162b887d31980.js +1 -0
  358. package/apps/console/.next/static/chunks/app/api/onboarding/engagement-plan/route-2d8162b887d31980.js +1 -0
  359. package/apps/console/.next/static/chunks/app/api/onboarding/kickoff-brief/route-2d8162b887d31980.js +1 -0
  360. package/apps/console/.next/static/chunks/app/api/openclaw/status/route-2d8162b887d31980.js +1 -0
  361. package/apps/console/.next/static/chunks/app/api/ops/dispatch-brief/route-2d8162b887d31980.js +1 -0
  362. package/apps/console/.next/static/chunks/app/api/pack/route-2d8162b887d31980.js +1 -0
  363. package/apps/console/.next/static/chunks/app/api/people/job-brief/route-2d8162b887d31980.js +1 -0
  364. package/apps/console/.next/static/chunks/app/api/preferences/route-2d8162b887d31980.js +1 -0
  365. package/apps/console/.next/static/chunks/app/api/procurement/po-brief/route-2d8162b887d31980.js +1 -0
  366. package/apps/console/.next/static/chunks/app/api/product/prd-draft/route-2d8162b887d31980.js +1 -0
  367. package/apps/console/.next/static/chunks/app/api/research/prospect-intel/route-2d8162b887d31980.js +1 -0
  368. package/apps/console/.next/static/chunks/app/api/research/search/route-2d8162b887d31980.js +1 -0
  369. package/apps/console/.next/static/chunks/app/api/routing/route-2d8162b887d31980.js +1 -0
  370. package/apps/console/.next/static/chunks/app/api/runs/route-2d8162b887d31980.js +1 -0
  371. package/apps/console/.next/static/chunks/app/api/sales/pipeline-summary/route-2d8162b887d31980.js +1 -0
  372. package/apps/console/.next/static/chunks/app/api/sales/prospect-brief/route-2d8162b887d31980.js +1 -0
  373. package/apps/console/.next/static/chunks/app/api/solutions/build/route-2d8162b887d31980.js +1 -0
  374. package/apps/console/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-2d8162b887d31980.js +1 -0
  375. package/apps/console/.next/static/chunks/app/api/solutions/refine/route-2d8162b887d31980.js +1 -0
  376. package/apps/console/.next/static/chunks/app/api/strategy/market-pulse/route-2d8162b887d31980.js +1 -0
  377. package/apps/console/.next/static/chunks/app/api/telegram/[customerId]/route-2d8162b887d31980.js +1 -0
  378. package/apps/console/.next/static/chunks/app/api/templates/regenerate/route-2d8162b887d31980.js +1 -0
  379. package/apps/console/.next/static/chunks/app/api/templates/route-2d8162b887d31980.js +1 -0
  380. package/apps/console/.next/static/chunks/app/api/uploads/[id]/route-2d8162b887d31980.js +1 -0
  381. package/apps/console/.next/static/chunks/app/api/uploads/route-2d8162b887d31980.js +1 -0
  382. package/apps/console/.next/static/chunks/app/api/usage/route-2d8162b887d31980.js +1 -0
  383. package/apps/console/.next/static/chunks/app/api/video/video-script/route-2d8162b887d31980.js +1 -0
  384. package/apps/console/.next/static/chunks/app/api/webhooks/workflow/[id]/route-2d8162b887d31980.js +1 -0
  385. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-2d8162b887d31980.js +1 -0
  386. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/route-2d8162b887d31980.js +1 -0
  387. package/apps/console/.next/static/chunks/app/api/workflows/[id]/route-2d8162b887d31980.js +1 -0
  388. package/apps/console/.next/static/chunks/app/api/workflows/[id]/run/route-2d8162b887d31980.js +1 -0
  389. package/apps/console/.next/static/chunks/app/api/workflows/route-2d8162b887d31980.js +1 -0
  390. package/apps/console/.next/static/chunks/app/page-bdfdbf7b657f4722.js +1 -0
  391. package/apps/console/.next/static/css/{4bdbd0680d42c54d.css → b2a91ecca3bf1487.css} +1 -1
  392. package/bin/leedab-auto-pr.sh +108 -0
  393. package/bin/leedab.js +123 -1
  394. package/clients/default/manifest.json +47 -2
  395. package/dist/console-launcher.js +6 -2
  396. package/dist/gateway.js +111 -52
  397. package/package.json +2 -2
  398. package/apps/console/.next/standalone/.next/server/chunks/697.js +0 -19
  399. package/apps/console/.next/standalone/.next/static/cSGyydhlqn2VGaYXt0uuW/_buildManifest.js +0 -1
  400. package/apps/console/.next/standalone/.next/static/chunks/8118-681f2688832ccc66.js +0 -1
  401. package/apps/console/.next/standalone/.next/static/chunks/app/api/agent/route-4178c1913c80eb12.js +0 -1
  402. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/route-4178c1913c80eb12.js +0 -1
  403. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/stream/route-4178c1913c80eb12.js +0 -1
  404. package/apps/console/.next/standalone/.next/static/chunks/app/api/automation/workflow-blueprint/route-4178c1913c80eb12.js +0 -1
  405. package/apps/console/.next/standalone/.next/static/chunks/app/api/backend/endpoint-spec/route-4178c1913c80eb12.js +0 -1
  406. package/apps/console/.next/standalone/.next/static/chunks/app/api/bootstrap-admin-token/route-4178c1913c80eb12.js +0 -1
  407. package/apps/console/.next/standalone/.next/static/chunks/app/api/brand/brand-audit/route-4178c1913c80eb12.js +0 -1
  408. package/apps/console/.next/standalone/.next/static/chunks/app/api/campaigns/campaign-brief/route-4178c1913c80eb12.js +0 -1
  409. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/confidence/route-4178c1913c80eb12.js +0 -1
  410. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/customer/route-4178c1913c80eb12.js +0 -1
  411. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/dispatches/route-4178c1913c80eb12.js +0 -1
  412. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/engagement/route-4178c1913c80eb12.js +0 -1
  413. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/escalate/route-4178c1913c80eb12.js +0 -1
  414. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/profile/route-4178c1913c80eb12.js +0 -1
  415. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/screenshare/route-4178c1913c80eb12.js +0 -1
  416. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/track-question/route-4178c1913c80eb12.js +0 -1
  417. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/use-case-wiki/route-4178c1913c80eb12.js +0 -1
  418. package/apps/console/.next/standalone/.next/static/chunks/app/api/chat/route-4178c1913c80eb12.js +0 -1
  419. package/apps/console/.next/standalone/.next/static/chunks/app/api/compliance/risk-register-seed/route-4178c1913c80eb12.js +0 -1
  420. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/[id]/route-4178c1913c80eb12.js +0 -1
  421. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/route-4178c1913c80eb12.js +0 -1
  422. package/apps/console/.next/standalone/.next/static/chunks/app/api/concierge/morning-brief/route-4178c1913c80eb12.js +0 -1
  423. package/apps/console/.next/standalone/.next/static/chunks/app/api/contacts/route-4178c1913c80eb12.js +0 -1
  424. package/apps/console/.next/standalone/.next/static/chunks/app/api/content/seo-brief/route-4178c1913c80eb12.js +0 -1
  425. package/apps/console/.next/standalone/.next/static/chunks/app/api/conversations/route-4178c1913c80eb12.js +0 -1
  426. package/apps/console/.next/standalone/.next/static/chunks/app/api/coo/route-4178c1913c80eb12.js +0 -1
  427. package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/escalation-triage/route-4178c1913c80eb12.js +0 -1
  428. package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/health-score/route-4178c1913c80eb12.js +0 -1
  429. package/apps/console/.next/standalone/.next/static/chunks/app/api/data/cohort-brief/route-4178c1913c80eb12.js +0 -1
  430. package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/qbr-brief/route-4178c1913c80eb12.js +0 -1
  431. package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/weekly-brief/route-4178c1913c80eb12.js +0 -1
  432. package/apps/console/.next/standalone/.next/static/chunks/app/api/dev/invalidate-cache/route-4178c1913c80eb12.js +0 -1
  433. package/apps/console/.next/standalone/.next/static/chunks/app/api/devops/runbook/route-4178c1913c80eb12.js +0 -1
  434. package/apps/console/.next/standalone/.next/static/chunks/app/api/email/sequence-brief/route-4178c1913c80eb12.js +0 -1
  435. package/apps/console/.next/standalone/.next/static/chunks/app/api/engineering/adr-draft/route-4178c1913c80eb12.js +0 -1
  436. package/apps/console/.next/standalone/.next/static/chunks/app/api/finance/runway-snapshot/route-4178c1913c80eb12.js +0 -1
  437. package/apps/console/.next/standalone/.next/static/chunks/app/api/frontend/component-spec/route-4178c1913c80eb12.js +0 -1
  438. package/apps/console/.next/standalone/.next/static/chunks/app/api/health/route-4178c1913c80eb12.js +0 -1
  439. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/brief/route-4178c1913c80eb12.js +0 -1
  440. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-4178c1913c80eb12.js +0 -1
  441. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-4178c1913c80eb12.js +0 -1
  442. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-4178c1913c80eb12.js +0 -1
  443. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/route-4178c1913c80eb12.js +0 -1
  444. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/stream/route-4178c1913c80eb12.js +0 -1
  445. package/apps/console/.next/standalone/.next/static/chunks/app/api/investor/kpi-tracker/route-4178c1913c80eb12.js +0 -1
  446. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/status/route-4178c1913c80eb12.js +0 -1
  447. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-4178c1913c80eb12.js +0 -1
  448. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-4178c1913c80eb12.js +0 -1
  449. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-4178c1913c80eb12.js +0 -1
  450. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-4178c1913c80eb12.js +0 -1
  451. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-4178c1913c80eb12.js +0 -1
  452. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/license/route-4178c1913c80eb12.js +0 -1
  453. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/providers/route-4178c1913c80eb12.js +0 -1
  454. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/[id]/route-4178c1913c80eb12.js +0 -1
  455. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/route-4178c1913c80eb12.js +0 -1
  456. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/[id]/route-4178c1913c80eb12.js +0 -1
  457. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/route-4178c1913c80eb12.js +0 -1
  458. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/vault/route-4178c1913c80eb12.js +0 -1
  459. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/workflows/route-4178c1913c80eb12.js +0 -1
  460. package/apps/console/.next/standalone/.next/static/chunks/app/api/legal/clause-template/route-4178c1913c80eb12.js +0 -1
  461. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/cadence-planner/route-4178c1913c80eb12.js +0 -1
  462. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/competitive-snapshot/route-4178c1913c80eb12.js +0 -1
  463. package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/engagement-plan/route-4178c1913c80eb12.js +0 -1
  464. package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/kickoff-brief/route-4178c1913c80eb12.js +0 -1
  465. package/apps/console/.next/standalone/.next/static/chunks/app/api/openclaw/status/route-4178c1913c80eb12.js +0 -1
  466. package/apps/console/.next/standalone/.next/static/chunks/app/api/ops/dispatch-brief/route-4178c1913c80eb12.js +0 -1
  467. package/apps/console/.next/standalone/.next/static/chunks/app/api/pack/route-4178c1913c80eb12.js +0 -1
  468. package/apps/console/.next/standalone/.next/static/chunks/app/api/people/job-brief/route-4178c1913c80eb12.js +0 -1
  469. package/apps/console/.next/standalone/.next/static/chunks/app/api/preferences/route-4178c1913c80eb12.js +0 -1
  470. package/apps/console/.next/standalone/.next/static/chunks/app/api/procurement/po-brief/route-4178c1913c80eb12.js +0 -1
  471. package/apps/console/.next/standalone/.next/static/chunks/app/api/product/prd-draft/route-4178c1913c80eb12.js +0 -1
  472. package/apps/console/.next/standalone/.next/static/chunks/app/api/research/prospect-intel/route-4178c1913c80eb12.js +0 -1
  473. package/apps/console/.next/standalone/.next/static/chunks/app/api/research/search/route-4178c1913c80eb12.js +0 -1
  474. package/apps/console/.next/standalone/.next/static/chunks/app/api/routing/route-4178c1913c80eb12.js +0 -1
  475. package/apps/console/.next/standalone/.next/static/chunks/app/api/runs/route-4178c1913c80eb12.js +0 -1
  476. package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/pipeline-summary/route-4178c1913c80eb12.js +0 -1
  477. package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/prospect-brief/route-4178c1913c80eb12.js +0 -1
  478. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/build/route-4178c1913c80eb12.js +0 -1
  479. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-4178c1913c80eb12.js +0 -1
  480. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/refine/route-4178c1913c80eb12.js +0 -1
  481. package/apps/console/.next/standalone/.next/static/chunks/app/api/strategy/market-pulse/route-4178c1913c80eb12.js +0 -1
  482. package/apps/console/.next/standalone/.next/static/chunks/app/api/telegram/[customerId]/route-4178c1913c80eb12.js +0 -1
  483. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/regenerate/route-4178c1913c80eb12.js +0 -1
  484. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/route-4178c1913c80eb12.js +0 -1
  485. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/[id]/route-4178c1913c80eb12.js +0 -1
  486. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/route-4178c1913c80eb12.js +0 -1
  487. package/apps/console/.next/standalone/.next/static/chunks/app/api/usage/route-4178c1913c80eb12.js +0 -1
  488. package/apps/console/.next/standalone/.next/static/chunks/app/api/video/video-script/route-4178c1913c80eb12.js +0 -1
  489. package/apps/console/.next/standalone/.next/static/chunks/app/api/webhooks/workflow/[id]/route-4178c1913c80eb12.js +0 -1
  490. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-4178c1913c80eb12.js +0 -1
  491. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/route-4178c1913c80eb12.js +0 -1
  492. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/route-4178c1913c80eb12.js +0 -1
  493. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/run/route-4178c1913c80eb12.js +0 -1
  494. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/route-4178c1913c80eb12.js +0 -1
  495. package/apps/console/.next/standalone/.next/static/chunks/app/page-01558715b1be9361.js +0 -1
  496. package/apps/console/.next/static/cSGyydhlqn2VGaYXt0uuW/_buildManifest.js +0 -1
  497. package/apps/console/.next/static/chunks/8118-681f2688832ccc66.js +0 -1
  498. package/apps/console/.next/static/chunks/app/api/agent/route-4178c1913c80eb12.js +0 -1
  499. package/apps/console/.next/static/chunks/app/api/approvals/route-4178c1913c80eb12.js +0 -1
  500. package/apps/console/.next/static/chunks/app/api/approvals/stream/route-4178c1913c80eb12.js +0 -1
  501. package/apps/console/.next/static/chunks/app/api/automation/workflow-blueprint/route-4178c1913c80eb12.js +0 -1
  502. package/apps/console/.next/static/chunks/app/api/backend/endpoint-spec/route-4178c1913c80eb12.js +0 -1
  503. package/apps/console/.next/static/chunks/app/api/bootstrap-admin-token/route-4178c1913c80eb12.js +0 -1
  504. package/apps/console/.next/static/chunks/app/api/brand/brand-audit/route-4178c1913c80eb12.js +0 -1
  505. package/apps/console/.next/static/chunks/app/api/campaigns/campaign-brief/route-4178c1913c80eb12.js +0 -1
  506. package/apps/console/.next/static/chunks/app/api/champion/confidence/route-4178c1913c80eb12.js +0 -1
  507. package/apps/console/.next/static/chunks/app/api/champion/customer/route-4178c1913c80eb12.js +0 -1
  508. package/apps/console/.next/static/chunks/app/api/champion/dispatches/route-4178c1913c80eb12.js +0 -1
  509. package/apps/console/.next/static/chunks/app/api/champion/engagement/route-4178c1913c80eb12.js +0 -1
  510. package/apps/console/.next/static/chunks/app/api/champion/escalate/route-4178c1913c80eb12.js +0 -1
  511. package/apps/console/.next/static/chunks/app/api/champion/profile/route-4178c1913c80eb12.js +0 -1
  512. package/apps/console/.next/static/chunks/app/api/champion/screenshare/route-4178c1913c80eb12.js +0 -1
  513. package/apps/console/.next/static/chunks/app/api/champion/track-question/route-4178c1913c80eb12.js +0 -1
  514. package/apps/console/.next/static/chunks/app/api/champion/use-case-wiki/route-4178c1913c80eb12.js +0 -1
  515. package/apps/console/.next/static/chunks/app/api/chat/route-4178c1913c80eb12.js +0 -1
  516. package/apps/console/.next/static/chunks/app/api/compliance/risk-register-seed/route-4178c1913c80eb12.js +0 -1
  517. package/apps/console/.next/static/chunks/app/api/computer-use/[id]/route-4178c1913c80eb12.js +0 -1
  518. package/apps/console/.next/static/chunks/app/api/computer-use/route-4178c1913c80eb12.js +0 -1
  519. package/apps/console/.next/static/chunks/app/api/concierge/morning-brief/route-4178c1913c80eb12.js +0 -1
  520. package/apps/console/.next/static/chunks/app/api/contacts/route-4178c1913c80eb12.js +0 -1
  521. package/apps/console/.next/static/chunks/app/api/content/seo-brief/route-4178c1913c80eb12.js +0 -1
  522. package/apps/console/.next/static/chunks/app/api/conversations/route-4178c1913c80eb12.js +0 -1
  523. package/apps/console/.next/static/chunks/app/api/coo/route-4178c1913c80eb12.js +0 -1
  524. package/apps/console/.next/static/chunks/app/api/cx/escalation-triage/route-4178c1913c80eb12.js +0 -1
  525. package/apps/console/.next/static/chunks/app/api/cx/health-score/route-4178c1913c80eb12.js +0 -1
  526. package/apps/console/.next/static/chunks/app/api/data/cohort-brief/route-4178c1913c80eb12.js +0 -1
  527. package/apps/console/.next/static/chunks/app/api/delivery/qbr-brief/route-4178c1913c80eb12.js +0 -1
  528. package/apps/console/.next/static/chunks/app/api/delivery/weekly-brief/route-4178c1913c80eb12.js +0 -1
  529. package/apps/console/.next/static/chunks/app/api/dev/invalidate-cache/route-4178c1913c80eb12.js +0 -1
  530. package/apps/console/.next/static/chunks/app/api/devops/runbook/route-4178c1913c80eb12.js +0 -1
  531. package/apps/console/.next/static/chunks/app/api/email/sequence-brief/route-4178c1913c80eb12.js +0 -1
  532. package/apps/console/.next/static/chunks/app/api/engineering/adr-draft/route-4178c1913c80eb12.js +0 -1
  533. package/apps/console/.next/static/chunks/app/api/finance/runway-snapshot/route-4178c1913c80eb12.js +0 -1
  534. package/apps/console/.next/static/chunks/app/api/frontend/component-spec/route-4178c1913c80eb12.js +0 -1
  535. package/apps/console/.next/static/chunks/app/api/health/route-4178c1913c80eb12.js +0 -1
  536. package/apps/console/.next/static/chunks/app/api/implementation/brief/route-4178c1913c80eb12.js +0 -1
  537. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-4178c1913c80eb12.js +0 -1
  538. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-4178c1913c80eb12.js +0 -1
  539. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-4178c1913c80eb12.js +0 -1
  540. package/apps/console/.next/static/chunks/app/api/inbox/route-4178c1913c80eb12.js +0 -1
  541. package/apps/console/.next/static/chunks/app/api/inbox/stream/route-4178c1913c80eb12.js +0 -1
  542. package/apps/console/.next/static/chunks/app/api/investor/kpi-tracker/route-4178c1913c80eb12.js +0 -1
  543. package/apps/console/.next/static/chunks/app/api/leedab/channels/status/route-4178c1913c80eb12.js +0 -1
  544. package/apps/console/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-4178c1913c80eb12.js +0 -1
  545. package/apps/console/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-4178c1913c80eb12.js +0 -1
  546. package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-4178c1913c80eb12.js +0 -1
  547. package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-4178c1913c80eb12.js +0 -1
  548. package/apps/console/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-4178c1913c80eb12.js +0 -1
  549. package/apps/console/.next/static/chunks/app/api/leedab/license/route-4178c1913c80eb12.js +0 -1
  550. package/apps/console/.next/static/chunks/app/api/leedab/providers/route-4178c1913c80eb12.js +0 -1
  551. package/apps/console/.next/static/chunks/app/api/leedab/sessions/[id]/route-4178c1913c80eb12.js +0 -1
  552. package/apps/console/.next/static/chunks/app/api/leedab/sessions/route-4178c1913c80eb12.js +0 -1
  553. package/apps/console/.next/static/chunks/app/api/leedab/team/[id]/route-4178c1913c80eb12.js +0 -1
  554. package/apps/console/.next/static/chunks/app/api/leedab/team/route-4178c1913c80eb12.js +0 -1
  555. package/apps/console/.next/static/chunks/app/api/leedab/vault/route-4178c1913c80eb12.js +0 -1
  556. package/apps/console/.next/static/chunks/app/api/leedab/workflows/route-4178c1913c80eb12.js +0 -1
  557. package/apps/console/.next/static/chunks/app/api/legal/clause-template/route-4178c1913c80eb12.js +0 -1
  558. package/apps/console/.next/static/chunks/app/api/marketing/cadence-planner/route-4178c1913c80eb12.js +0 -1
  559. package/apps/console/.next/static/chunks/app/api/marketing/competitive-snapshot/route-4178c1913c80eb12.js +0 -1
  560. package/apps/console/.next/static/chunks/app/api/onboarding/engagement-plan/route-4178c1913c80eb12.js +0 -1
  561. package/apps/console/.next/static/chunks/app/api/onboarding/kickoff-brief/route-4178c1913c80eb12.js +0 -1
  562. package/apps/console/.next/static/chunks/app/api/openclaw/status/route-4178c1913c80eb12.js +0 -1
  563. package/apps/console/.next/static/chunks/app/api/ops/dispatch-brief/route-4178c1913c80eb12.js +0 -1
  564. package/apps/console/.next/static/chunks/app/api/pack/route-4178c1913c80eb12.js +0 -1
  565. package/apps/console/.next/static/chunks/app/api/people/job-brief/route-4178c1913c80eb12.js +0 -1
  566. package/apps/console/.next/static/chunks/app/api/preferences/route-4178c1913c80eb12.js +0 -1
  567. package/apps/console/.next/static/chunks/app/api/procurement/po-brief/route-4178c1913c80eb12.js +0 -1
  568. package/apps/console/.next/static/chunks/app/api/product/prd-draft/route-4178c1913c80eb12.js +0 -1
  569. package/apps/console/.next/static/chunks/app/api/research/prospect-intel/route-4178c1913c80eb12.js +0 -1
  570. package/apps/console/.next/static/chunks/app/api/research/search/route-4178c1913c80eb12.js +0 -1
  571. package/apps/console/.next/static/chunks/app/api/routing/route-4178c1913c80eb12.js +0 -1
  572. package/apps/console/.next/static/chunks/app/api/runs/route-4178c1913c80eb12.js +0 -1
  573. package/apps/console/.next/static/chunks/app/api/sales/pipeline-summary/route-4178c1913c80eb12.js +0 -1
  574. package/apps/console/.next/static/chunks/app/api/sales/prospect-brief/route-4178c1913c80eb12.js +0 -1
  575. package/apps/console/.next/static/chunks/app/api/solutions/build/route-4178c1913c80eb12.js +0 -1
  576. package/apps/console/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-4178c1913c80eb12.js +0 -1
  577. package/apps/console/.next/static/chunks/app/api/solutions/refine/route-4178c1913c80eb12.js +0 -1
  578. package/apps/console/.next/static/chunks/app/api/strategy/market-pulse/route-4178c1913c80eb12.js +0 -1
  579. package/apps/console/.next/static/chunks/app/api/telegram/[customerId]/route-4178c1913c80eb12.js +0 -1
  580. package/apps/console/.next/static/chunks/app/api/templates/regenerate/route-4178c1913c80eb12.js +0 -1
  581. package/apps/console/.next/static/chunks/app/api/templates/route-4178c1913c80eb12.js +0 -1
  582. package/apps/console/.next/static/chunks/app/api/uploads/[id]/route-4178c1913c80eb12.js +0 -1
  583. package/apps/console/.next/static/chunks/app/api/uploads/route-4178c1913c80eb12.js +0 -1
  584. package/apps/console/.next/static/chunks/app/api/usage/route-4178c1913c80eb12.js +0 -1
  585. package/apps/console/.next/static/chunks/app/api/video/video-script/route-4178c1913c80eb12.js +0 -1
  586. package/apps/console/.next/static/chunks/app/api/webhooks/workflow/[id]/route-4178c1913c80eb12.js +0 -1
  587. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-4178c1913c80eb12.js +0 -1
  588. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/route-4178c1913c80eb12.js +0 -1
  589. package/apps/console/.next/static/chunks/app/api/workflows/[id]/route-4178c1913c80eb12.js +0 -1
  590. package/apps/console/.next/static/chunks/app/api/workflows/[id]/run/route-4178c1913c80eb12.js +0 -1
  591. package/apps/console/.next/static/chunks/app/api/workflows/route-4178c1913c80eb12.js +0 -1
  592. package/apps/console/.next/static/chunks/app/page-01558715b1be9361.js +0 -1
  593. /package/apps/console/.next/standalone/.next/static/{cSGyydhlqn2VGaYXt0uuW → B4g4e91OJP29sEqgIs76V}/_ssgManifest.js +0 -0
  594. /package/apps/console/.next/static/{cSGyydhlqn2VGaYXt0uuW → B4g4e91OJP29sEqgIs76V}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
1
  @font-face{font-family:Geist;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_50a2fe{font-family:Geist,Geist Fallback;font-style:normal}.__variable_50a2fe{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d100b2a099e34044-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/2c34d62a75506231-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0f1bdadaf30e2d5f-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a115172161b307bb-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/601f5c280d60caca-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f5271587012faf78-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d100b2a099e34044-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/2c34d62a75506231-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/0f1bdadaf30e2d5f-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/a115172161b307bb-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/601f5c280d60caca-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f5271587012faf78-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_1ef188{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_1ef188{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/5ece437c7024c161-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/9cc5b37ab1350db7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/35f3de0ebb1cfc70-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6099e249fd938cc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_1f5468{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400}.__variable_1f5468{--font-instrument-serif:"Instrument Serif","Instrument Serif Fallback"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
2
2
  ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
3
- */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:DM Sans,ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:Space Mono,ui-monospace,SFMono-Regular,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-3{top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.border{border-width:1px}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}[role=button],a,button{touch-action:manipulation}:root{--paper:#F7F4EE;--paper-2:#EFEAE0;--paper-3:#E5DFD2;--paper-input:#EDE8DC;--ink:#15130E;--ink-2:#3A362E;--ink-3:#6E695E;--ink-4:#8A8576;--ink-5:#A39E91;--ink-6:#B8B0A0;--ink-7:#CFC9B9;--hair:#D8D2C4;--hair-2:#E5DFD2;--line:#15130E;--amber:#B8540B;--amber-warm:#C76910;--amber-deep:#7A3705;--amber-3:#B8540B33;--amber-6:#B8540B66;--ok:#2F6A3E;--warn:#C76910;--err:#A52A1A;--user-bg:#F4E6D4;--user-border:#B8540B22;--me-bg:#F4E6D4;--noise-opacity:0.025;--f-display:var(--font-geist-sans),system-ui,sans-serif;--f-body:var(--font-geist-sans),system-ui,sans-serif;--f-mono:var(--font-geist-mono),ui-monospace,Menlo,monospace;--f-serif:var(--font-instrument-serif),Georgia,serif}[data-theme=dark]{--paper:#14110C;--paper-2:#1C1812;--paper-3:#17130E;--paper-input:#221E16;--ink:#F7F4EE;--ink-2:#D8D2C4;--ink-3:#A39E91;--ink-4:#8A8576;--ink-5:#6E695E;--ink-6:#534E45;--ink-7:#3A362E;--hair:#3A362E;--hair-2:#1F1B14;--line:#F7F4EE;--user-bg:#2A1F12;--user-border:#B8540B44;--me-bg:#2A1F12;--noise-opacity:0.04}body,html{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .2s,color .2s}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:var(--noise-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--hair);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--ink-5)}::-moz-selection{background:var(--amber);color:var(--paper)}::selection{background:var(--amber);color:var(--paper)}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:fade-up .35s cubic-bezier(.16,1,.3,1) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .4s ease both}@keyframes broadcast-slide{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-broadcast-slide{animation:broadcast-slide .3s cubic-bezier(.16,1,.3,1) both}@keyframes dot-bounce{0%,80%,to{transform:translateY(0);opacity:.3}40%{transform:translateY(-4px);opacity:1}}.typing-dot:first-child{animation:dot-bounce 1.2s ease-in-out 0s infinite}.typing-dot:nth-child(2){animation:dot-bounce 1.2s ease-in-out .2s infinite}.typing-dot:nth-child(3){animation:dot-bounce 1.2s ease-in-out .4s infinite}@keyframes slide-left{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.animate-slide-left{animation:slide-left .22s cubic-bezier(.16,1,.3,1) both}@keyframes palette-drop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-palette-drop{animation:palette-drop .18s cubic-bezier(.16,1,.3,1) both}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}@keyframes skel-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skel-shimmer{background:linear-gradient(90deg,var(--paper-2) 0,var(--hair-2) 50%,var(--paper-2) 100%);background-size:200% 100%;animation:skel-shimmer 2.4s ease-in-out infinite}@keyframes sse-flash{0%{background:var(--amber-3)}to{background:transparent}}.sse-flash{animation:sse-flash 1.6s ease-out 1}@keyframes orb-pulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}.orb-pulse-ring{animation:orb-pulse 3s ease-in-out infinite}@keyframes orb-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes orb-shadow{0%,to{opacity:.6;transform:scaleX(1)}50%{opacity:.3;transform:scaleX(.72)}}@keyframes tick{to{transform:translateX(-50%)}}@keyframes orb-breath{0%,to{opacity:.45;transform:scale(.95)}50%{opacity:1;transform:scale(1.08)}}.orb-recent-halo{animation:orb-breath 2.6s ease-in-out infinite}.prose-agent{color:var(--ink-2);font-family:var(--f-body);font-size:13px;line-height:1.65}.prose-agent p{margin:.6em 0}.prose-agent strong{color:var(--ink);font-weight:600}.prose-agent em{color:var(--ink-3);font-style:italic}.prose-agent ol,.prose-agent ul{margin:.6em 0;padding-left:1.4em}.prose-agent li{margin:.25em 0}.prose-agent li::marker{color:var(--amber)}.prose-agent code{background:var(--amber-3);border:1px solid var(--amber-6);padding:1px 5px;border-radius:2px;font-size:.87em;color:var(--amber);font-family:var(--f-mono)}.prose-agent pre{background:var(--paper-2);border:1px solid var(--hair);border-left:2px solid var(--amber);padding:12px 16px;border-radius:3px;overflow-x:auto;margin:1em 0;font-size:12px}.prose-agent pre code{background:transparent;border:none;padding:0;color:var(--ink-2)}.prose-agent blockquote{border-left:2px solid var(--amber);padding-left:1em;margin:.8em 0;color:var(--ink-4);font-style:italic;font-family:var(--f-display)}.prose-agent a{color:var(--amber);text-decoration:underline;text-underline-offset:3px}.prose-agent h1,.prose-agent h2,.prose-agent h3{font-family:var(--f-display);color:var(--ink);margin-top:1.2em;margin-bottom:.4em;font-weight:500;letter-spacing:-.01em}.prose-agent h1{font-size:1.4em}.prose-agent h2{font-size:1.2em}.prose-agent h3{font-size:1.05em;color:var(--amber);font-style:italic}.prose-agent table{border-collapse:collapse;margin:.8em 0;font-size:12px;width:100%}.prose-agent td,.prose-agent th{border:1px solid var(--hair);padding:6px 12px;text-align:left}.prose-agent th{background:var(--amber-3);color:var(--amber);font-weight:600;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.prose-agent hr{border:none;border-top:1px solid var(--hair);margin:1.5em 0}[data-theme=dark]{--hair:#4a4238;--hair-2:#322c25;--paper-input:#2a231b;--amber-3:#c95c0a44;--amber-6:#c95c0a88}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--ink-4)}[data-theme=dark] .prose-agent pre{background:#1a140e}@media (max-width:900px){[data-mobile-hide-rail]{display:none!important}[data-mobile-stack]{flex-direction:column!important;width:100%!important}[data-mobile-fullwidth]{width:100%!important;border-right:none!important;border-bottom:1px solid var(--hair)!important;max-height:50vh}nav[data-app-nav]{padding:0 12px!important}[data-mobile-hide],nav[data-app-nav] [data-mobile-condense]{display:none!important}[data-mobile-shrink-header]{font-size:22px!important}[data-mobile-flat-header],[data-mobile-grid-stack]{grid-template-columns:1fr!important}[data-mobile-flat-header]{gap:8px!important;padding:14px 16px!important}[data-mobile-tighten]{padding:12px 14px!important}}.team-rail-drawer{position:fixed;inset:0;z-index:1500;display:flex;background:rgba(0,0,0,.4);pointer-events:auto}.team-rail-drawer-panel{background:var(--paper-3);width:86vw;max-width:380px;height:100%;border-right:1px solid var(--hair);overflow-y:auto;animation:slide-left .22s cubic-bezier(.16,1,.3,1) both}nav[data-app-nav]{padding-top:env(safe-area-inset-top)!important;height:calc(52px + env(safe-area-inset-top))!important}[aria-label^="Demo customer switcher"]{bottom:calc(14px + env(safe-area-inset-bottom))!important}@media (max-width:640px){nextjs-portal{display:none!important}}
3
+ */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-3{top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.border{border-width:1px}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}[role=button],a,button{touch-action:manipulation}:root{--paper:#F7F4EE;--paper-2:#EFEAE0;--paper-3:#E5DFD2;--paper-input:#EDE8DC;--ink:#15130E;--ink-2:#3A362E;--ink-3:#6E695E;--ink-4:#8A8576;--ink-5:#A39E91;--ink-6:#B8B0A0;--ink-7:#CFC9B9;--hair:#D8D2C4;--hair-2:#E5DFD2;--line:#15130E;--amber:#B8540B;--amber-warm:#C76910;--amber-deep:#7A3705;--amber-3:#B8540B33;--amber-6:#B8540B66;--ok:#2F6A3E;--warn:#C76910;--err:#A52A1A;--user-bg:#F4E6D4;--user-border:#B8540B22;--me-bg:#F4E6D4;--noise-opacity:0.025;--f-display:var(--font-geist-sans),system-ui,sans-serif;--f-body:var(--font-geist-sans),system-ui,sans-serif;--f-mono:var(--font-geist-mono),ui-monospace,Menlo,monospace;--f-serif:var(--font-instrument-serif),Georgia,serif}[data-theme=dark]{--paper:#14110C;--paper-2:#1C1812;--paper-3:#17130E;--paper-input:#221E16;--ink:#F7F4EE;--ink-2:#D8D2C4;--ink-3:#A39E91;--ink-4:#8A8576;--ink-5:#6E695E;--ink-6:#534E45;--ink-7:#3A362E;--hair:#3A362E;--hair-2:#1F1B14;--line:#F7F4EE;--user-bg:#2A1F12;--user-border:#B8540B44;--me-bg:#2A1F12;--noise-opacity:0.04}body,html{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .2s,color .2s}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:var(--noise-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--hair);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--ink-5)}::-moz-selection{background:var(--amber);color:var(--paper)}::selection{background:var(--amber);color:var(--paper)}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:fade-up .35s cubic-bezier(.16,1,.3,1) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .4s ease both}@keyframes broadcast-slide{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-broadcast-slide{animation:broadcast-slide .3s cubic-bezier(.16,1,.3,1) both}@keyframes dot-bounce{0%,80%,to{transform:translateY(0);opacity:.3}40%{transform:translateY(-4px);opacity:1}}.typing-dot:first-child{animation:dot-bounce 1.2s ease-in-out 0s infinite}.typing-dot:nth-child(2){animation:dot-bounce 1.2s ease-in-out .2s infinite}.typing-dot:nth-child(3){animation:dot-bounce 1.2s ease-in-out .4s infinite}@keyframes slide-left{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.animate-slide-left{animation:slide-left .22s cubic-bezier(.16,1,.3,1) both}@keyframes palette-drop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-palette-drop{animation:palette-drop .18s cubic-bezier(.16,1,.3,1) both}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}@keyframes skel-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skel-shimmer{background:linear-gradient(90deg,var(--paper-2) 0,var(--hair-2) 50%,var(--paper-2) 100%);background-size:200% 100%;animation:skel-shimmer 2.4s ease-in-out infinite}@keyframes sse-flash{0%{background:var(--amber-3)}to{background:transparent}}.sse-flash{animation:sse-flash 1.6s ease-out 1}@keyframes orb-pulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}.orb-pulse-ring{animation:orb-pulse 3s ease-in-out infinite}@keyframes orb-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes orb-shadow{0%,to{opacity:.6;transform:scaleX(1)}50%{opacity:.3;transform:scaleX(.72)}}@keyframes tick{to{transform:translateX(-50%)}}@keyframes orb-breath{0%,to{opacity:.45;transform:scale(.95)}50%{opacity:1;transform:scale(1.08)}}.orb-recent-halo{animation:orb-breath 2.6s ease-in-out infinite}.prose-agent{color:var(--ink-2);font-family:var(--f-body);font-size:13px;line-height:1.65}.prose-agent p{margin:.6em 0}.prose-agent strong{color:var(--ink);font-weight:600}.prose-agent em{color:var(--ink-3);font-style:italic}.prose-agent ol,.prose-agent ul{margin:.6em 0;padding-left:1.4em}.prose-agent li{margin:.25em 0}.prose-agent li::marker{color:var(--amber)}.prose-agent code{background:var(--amber-3);border:1px solid var(--amber-6);padding:1px 5px;border-radius:2px;font-size:.87em;color:var(--amber);font-family:var(--f-mono)}.prose-agent pre{background:var(--paper-2);border:1px solid var(--hair);border-left:2px solid var(--amber);padding:12px 16px;border-radius:3px;overflow-x:auto;margin:1em 0;font-size:12px}.prose-agent pre code{background:transparent;border:none;padding:0;color:var(--ink-2)}.prose-agent blockquote{border-left:2px solid var(--amber);padding-left:1em;margin:.8em 0;color:var(--ink-4);font-style:italic;font-family:var(--f-display)}.prose-agent a{color:var(--amber);text-decoration:underline;text-underline-offset:3px}.prose-agent h1,.prose-agent h2,.prose-agent h3{font-family:var(--f-display);color:var(--ink);margin-top:1.2em;margin-bottom:.4em;font-weight:500;letter-spacing:-.01em}.prose-agent h1{font-size:1.4em}.prose-agent h2{font-size:1.2em}.prose-agent h3{font-size:1.05em;color:var(--amber);font-style:italic}.prose-agent table{border-collapse:collapse;margin:.8em 0;font-size:12px;width:100%}.prose-agent td,.prose-agent th{border:1px solid var(--hair);padding:6px 12px;text-align:left}.prose-agent th{background:var(--amber-3);color:var(--amber);font-weight:600;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.prose-agent hr{border:none;border-top:1px solid var(--hair);margin:1.5em 0}[data-theme=dark]{--hair:#4a4238;--hair-2:#322c25;--paper-input:#2a231b;--amber-3:#B8540B44;--amber-6:#B8540B88}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--ink-4)}[data-theme=dark] .prose-agent pre{background:#1a140e}@media (max-width:900px){[data-mobile-hide-rail]{display:none!important}[data-mobile-stack]{flex-direction:column!important;width:100%!important}[data-mobile-fullwidth]{width:100%!important;border-right:none!important;border-bottom:1px solid var(--hair)!important;max-height:50vh}nav[data-app-nav]{padding:0 12px!important}[data-mobile-hide],nav[data-app-nav] [data-mobile-condense]{display:none!important}[data-mobile-shrink-header]{font-size:22px!important}[data-mobile-flat-header],[data-mobile-grid-stack]{grid-template-columns:1fr!important}[data-mobile-flat-header]{gap:8px!important;padding:14px 16px!important}[data-mobile-tighten]{padding:12px 14px!important}}.team-rail-drawer{position:fixed;inset:0;z-index:1500;display:flex;background:rgba(0,0,0,.4);pointer-events:auto}.team-rail-drawer-panel{background:var(--paper-3);width:86vw;max-width:380px;height:100%;border-right:1px solid var(--hair);overflow-y:auto;animation:slide-left .22s cubic-bezier(.16,1,.3,1) both}nav[data-app-nav]{padding-top:env(safe-area-inset-top)!important;height:calc(52px + env(safe-area-inset-top))!important}[aria-label^="Demo customer switcher"]{bottom:calc(14px + env(safe-area-inset-bottom))!important}@media (max-width:640px){nextjs-portal{display:none!important}}
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env bash
2
+ # Hourly autonomous PR cron. Invokes `claude -p` with a self-contained brief.
3
+ # Uses the currently checked-out branch as context and opens ONE small PR.
4
+
5
+ set -euo pipefail
6
+
7
+ REPO="/Users/muiezmakkawi/Documents/LeedAB-OS"
8
+ LOG_DIR="$REPO/.leedab/auto-pr-logs"
9
+ LOCK="$REPO/.leedab/auto-pr.lock"
10
+ CLAUDE_BIN="/Users/muiezmakkawi/.local/bin/claude"
11
+
12
+ export PATH="/Users/muiezmakkawi/.local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"
13
+
14
+ mkdir -p "$LOG_DIR" "$(dirname "$LOCK")"
15
+ LOG="$LOG_DIR/$(date -u +%Y%m%d-%H%M%S).log"
16
+
17
+ # Single-flight: skip if a previous run is still going.
18
+ if [ -e "$LOCK" ] && kill -0 "$(cat "$LOCK")" 2>/dev/null; then
19
+ echo "auto-pr already running (pid $(cat "$LOCK")), skipping" >> "$LOG"
20
+ exit 0
21
+ fi
22
+ echo $$ > "$LOCK"
23
+ trap 'rm -f "$LOCK"' EXIT
24
+
25
+ cd "$REPO"
26
+
27
+ git fetch origin main --quiet || { echo "git fetch failed" >> "$LOG"; exit 1; }
28
+
29
+ # Use whatever branch is currently checked out. Never switch the human's HEAD.
30
+ TARGET_BRANCH=$(git rev-parse --abbrev-ref HEAD)
31
+
32
+ # Don't stack PRs on top of a previous bot run. If we're parked on auto/*, sit out.
33
+ if [[ "$TARGET_BRANCH" == auto/* ]]; then
34
+ echo "HEAD parked on bot branch $TARGET_BRANCH, skipping" >> "$LOG"
35
+ exit 0
36
+ fi
37
+
38
+ # Skip if working tree is dirty. We do not want cron touching WIP.
39
+ # Override with AUTO_PR_FORCE=1 for manual testing.
40
+ if [ -z "${AUTO_PR_FORCE:-}" ] && [ -n "$(git status --porcelain)" ]; then
41
+ echo "working tree dirty on $TARGET_BRANCH, skipping" >> "$LOG"
42
+ exit 0
43
+ fi
44
+
45
+ # Only fast-forward when on main. On feature branches the human owns rebase strategy.
46
+ if [ "$TARGET_BRANCH" = "main" ]; then
47
+ git pull --ff-only --quiet 2>/dev/null || true
48
+ fi
49
+
50
+ {
51
+ echo "=== auto-pr run $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
52
+ echo "target branch: $TARGET_BRANCH"
53
+ } >> "$LOG"
54
+
55
+ # Capture HEAD so we can restore it after Claude's `git checkout -b` moves us.
56
+ START_SHA=$(git rev-parse HEAD)
57
+ restore_head() {
58
+ if [ "$(git rev-parse --abbrev-ref HEAD)" != "$TARGET_BRANCH" ]; then
59
+ git checkout "$TARGET_BRANCH" --quiet 2>>"$LOG" || true
60
+ fi
61
+ # Belt and suspenders: if checkout moved us off START_SHA, hard-set back.
62
+ if [ "$(git rev-parse HEAD)" != "$START_SHA" ]; then
63
+ git reset --hard "$START_SHA" --quiet 2>>"$LOG" || true
64
+ fi
65
+ }
66
+ trap 'restore_head; rm -f "$LOCK"' EXIT
67
+
68
+ PROMPT=$(cat <<EOF
69
+ You are an hourly autonomous PR bot for the LeedAB-OS repo (Brain+ABs OS for logistics back-office; first customer Traheel; pricing \$500/AB). Open ONE small, high-quality PR. Then stop.
70
+
71
+ Current target branch: $TARGET_BRANCH
72
+
73
+ Rules (hard):
74
+ 1. NEVER add "Co-Authored-By: Claude" to commits.
75
+ 2. NEVER run \`vercel deploy\` or any deploy command.
76
+ 3. NO em dashes anywhere (commit messages, PR body, code comments). Use periods, colons, or restructure.
77
+ 4. Keep the PR small and mergeable. Aim for under ~200 LOC. One concern per PR.
78
+ 5. If nothing sensible to do, exit cleanly without opening a PR. Do not force junk work.
79
+ 6. Final step on success: run \`gh pr edit <num> --add-assignee muiez\`. (Reviewer self-assignment is blocked by GitHub since muiez is the PR author under cron auth. Use assignee.)
80
+
81
+ What to do:
82
+ - Confirm orientation: \`git rev-parse --abbrev-ref HEAD\` should return "$TARGET_BRANCH". Also run \`git diff origin/main...HEAD --stat\` to see the in-flight delta.
83
+ - If "$TARGET_BRANCH" != main:
84
+ - Pick ONE concrete improvement aligned with what's already in flight: a bug fix surfaced by the diff, a small polish (types, error handling at a real boundary, missing edge case, UX nit), or a small feature addition that fits the existing change. Do NOT redo the user's in-progress work.
85
+ - Branch off $TARGET_BRANCH. PR base = $TARGET_BRANCH (use \`gh pr create --base $TARGET_BRANCH\`).
86
+ - If "$TARGET_BRANCH" == main:
87
+ - FIRST read brain todos: \`/Users/muiezmakkawi/obsidian/LeedAB/10 Founder Life/todos.md\`. Also skim \`/Users/muiezmakkawi/obsidian/LeedAB/00 Inbox/\` and \`/Users/muiezmakkawi/obsidian/LeedAB/01 Product/\` for next-best items.
88
+ - Then grep the repo for TODO / FIXME / XXX comments. Also scan README.md, LeedAB_GTM_Strategy.md, LeedAB_Investor_Memo.md, and skills/.
89
+ - Pick the most valuable small item across all sources. If a brain todo and a code TODO conflict, prefer the brain todo (it reflects current founder intent).
90
+ - If nothing surfaces, invent ONE small feature aligned with the LeedAB positioning (Brain+ABs OS, logistics back-office wedge, agentic outbound, dogfooded GTM).
91
+ - Branch off main. PR base = main.
92
+ - Create the new branch: \`auto/<short-kebab-slug>-$(date +%s)\`.
93
+ - Implement the change. Run any existing checks (lint, typecheck, tests) you can find via package.json scripts or similar. Fix what you broke.
94
+ - Commit with a clear conventional-style message (feat:, fix:, chore:, ux:). No Claude coauthor. No em dashes.
95
+ - Push with \`git push -u origin <branch>\`.
96
+ - Open the PR with \`gh pr create --base <base>\`. PR body explains: what changed, why, how to verify. No em dashes.
97
+ - Assign for review: \`gh pr edit <num> --add-assignee muiez\`.
98
+
99
+ Begin.
100
+ EOF
101
+ )
102
+
103
+ "$CLAUDE_BIN" -p "$PROMPT" \
104
+ --dangerously-skip-permissions \
105
+ --model claude-opus-4-7 \
106
+ >> "$LOG" 2>&1 || echo "claude exit $?" >> "$LOG"
107
+
108
+ echo "=== done $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG"
package/bin/leedab.js CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { createRequire } from "node:module";
4
- import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync, cpSync } from "node:fs";
4
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync, cpSync, realpathSync, readdirSync, statSync, rmSync } from "node:fs";
5
+ import { spawnSync } from "node:child_process";
5
6
  import { randomBytes } from "node:crypto";
6
7
  import { resolve, dirname } from "node:path";
7
8
  import { fileURLToPath } from "node:url";
@@ -138,6 +139,124 @@ const NO_PROJECT_REQUIRED = new Set(["onboard", "init", "help"]);
138
139
  /** Commands that need a project but not a license (onboard handles its own license check). */
139
140
  const NO_LICENSE_REQUIRED = new Set(["onboard", "init", "help", "stop"]);
140
141
 
142
+ /**
143
+ * Auto-recover from the "two-state-dirs" footgun. If the current working
144
+ * directory contains a `.leedab/` that isn't the canonical `~/.leedab/`,
145
+ * openclaw may at some point have resolved its state dir cwd-relative
146
+ * (different bot token, different paired users, different session
147
+ * JSONLs from the canonical dir). The console only reads from
148
+ * `~/.leedab`, so the orphan dir is invisible to the UI even though
149
+ * openclaw keeps writing to it.
150
+ *
151
+ * Rather than make the user run a separate consolidation script, we
152
+ * merge the orphan into the canonical dir in-process before any command
153
+ * touches state. A tarball backup of both directories is dropped into
154
+ * `~/.leedab/backups/` first, so anything we do is reversible.
155
+ *
156
+ * For `.jsonl` files the larger version wins (more appended turns). For
157
+ * other files (openclaw.json, license.json, etc) the canonical version
158
+ * is kept and the orphan version is preserved side-by-side as
159
+ * `<name>.from-orphan.bak` for the user to review. After merging, the
160
+ * orphan directory is deleted. The CLI then continues with the
161
+ * original command.
162
+ */
163
+ function recoverOrphanState() {
164
+ const cwdState = resolve(process.cwd(), ".leedab");
165
+ if (!existsSync(cwdState)) return;
166
+ // Symlink / same inode case: not an orphan, leave alone.
167
+ try {
168
+ if (resolve(cwdState) === resolve(STATE_DIR)) return;
169
+ if (realpathSync(cwdState) === realpathSync(STATE_DIR)) return;
170
+ } catch {
171
+ // ignore — fall through to recovery
172
+ }
173
+
174
+ console.error(chalk.yellow("\n ⚠ Found a parallel .leedab/ in this directory:"));
175
+ console.error(" " + chalk.dim(cwdState));
176
+ console.error(chalk.yellow(" Merging it into ") + chalk.cyan(STATE_DIR) + chalk.yellow(" and removing the orphan.\n"));
177
+
178
+ // Tarball backup before changing anything.
179
+ const backupDir = resolve(STATE_DIR, "backups");
180
+ try { mkdirSync(backupDir, { recursive: true }); } catch {}
181
+ const ts = new Date().toISOString().replace(/[:.]/g, "-").replace(/Z$/, "Z");
182
+ const backup = resolve(backupDir, `state-recovery-${ts}.tar.gz`);
183
+ try {
184
+ spawnSync("tar", ["-czf", backup, "-C", "/", STATE_DIR.replace(/^\//, ""), cwdState.replace(/^\//, "")], { stdio: "ignore" });
185
+ console.error(chalk.dim(" backup: " + backup));
186
+ } catch {
187
+ console.error(chalk.red(" backup failed — aborting recovery; nothing was changed."));
188
+ process.exit(1);
189
+ }
190
+
191
+ // Walk the orphan dir and merge files into canonical.
192
+ let merged = 0;
193
+ let preserved = 0;
194
+ function walk(src, dst) {
195
+ const entries = readdirSync(src, { withFileTypes: true });
196
+ for (const ent of entries) {
197
+ const s = resolve(src, ent.name);
198
+ const d = resolve(dst, ent.name);
199
+ if (ent.isDirectory()) {
200
+ try { mkdirSync(d, { recursive: true }); } catch {}
201
+ walk(s, d);
202
+ continue;
203
+ }
204
+ if (!existsSync(d)) {
205
+ try { mkdirSync(dirname(d), { recursive: true }); } catch {}
206
+ cpSync(s, d, { preserveTimestamps: true });
207
+ merged++;
208
+ continue;
209
+ }
210
+ if (s.endsWith(".jsonl")) {
211
+ const ss = statSync(s).size;
212
+ const ds = statSync(d).size;
213
+ if (ss > ds) {
214
+ cpSync(s, d, { preserveTimestamps: true });
215
+ merged++;
216
+ }
217
+ } else {
218
+ cpSync(s, d + ".from-orphan.bak", { preserveTimestamps: true });
219
+ preserved++;
220
+ }
221
+ }
222
+ }
223
+ walk(cwdState, STATE_DIR);
224
+ console.error(chalk.dim(` merged ${merged} file(s), preserved ${preserved} non-jsonl side-by-side as .from-orphan.bak`));
225
+
226
+ // Rewrite absolute `sessionFile` paths in sessions.json from orphan to canonical
227
+ // so the runs-sync and console agree on where data lives.
228
+ const sessionsIdx = resolve(STATE_DIR, "agents", "main", "sessions", "sessions.json");
229
+ if (existsSync(sessionsIdx)) {
230
+ try {
231
+ const raw = readFileSync(sessionsIdx, "utf8");
232
+ const idx = JSON.parse(raw);
233
+ let rewrote = 0;
234
+ for (const entry of Object.values(idx)) {
235
+ const sf = entry && typeof entry.sessionFile === "string" ? entry.sessionFile : null;
236
+ if (sf && sf.startsWith(cwdState + "/")) {
237
+ entry.sessionFile = STATE_DIR + sf.slice(cwdState.length);
238
+ rewrote++;
239
+ }
240
+ }
241
+ if (rewrote > 0) {
242
+ writeFileSync(sessionsIdx, JSON.stringify(idx, null, 2));
243
+ console.error(chalk.dim(` rewrote ${rewrote} sessionFile path(s) in sessions.json`));
244
+ }
245
+ } catch (err) {
246
+ console.error(chalk.red(" sessions.json rewrite failed: " + err.message));
247
+ }
248
+ }
249
+
250
+ // Delete the orphan.
251
+ try {
252
+ rmSync(cwdState, { recursive: true, force: true });
253
+ console.error(chalk.green(" orphan removed.\n"));
254
+ } catch (err) {
255
+ console.error(chalk.red(" orphan removal failed: " + err.message));
256
+ console.error(chalk.dim(" backup is intact at " + backup + ". You can rm it manually.\n"));
257
+ }
258
+ }
259
+
141
260
  /**
142
261
  * Check that we're inside a LeedAB project directory.
143
262
  * Runs before every command except onboard/init.
@@ -178,6 +297,9 @@ async function requireLicense(command) {
178
297
 
179
298
  // Hook into every command automatically
180
299
  program.hook("preAction", async (thisCommand, actionCommand) => {
300
+ // Auto-merge any parallel .leedab/ into the canonical ~/.leedab/
301
+ // before any command touches state. Backed-up; reversible.
302
+ recoverOrphanState();
181
303
  requireProject(actionCommand);
182
304
  await requireLicense(actionCommand);
183
305
  });
@@ -36,7 +36,9 @@
36
36
  "solutions",
37
37
  "onboarding",
38
38
  "implementation",
39
- "champion"
39
+ "champion",
40
+ "x-gtm-engineer-wgby",
41
+ "x-brand-specialist-cqgs"
40
42
  ],
41
43
  "overrides": {},
42
44
  "playbook_files": [],
@@ -187,5 +189,48 @@
187
189
  "Walk a Champion through adding their first n8n workflow without doing it for them.",
188
190
  "The Champion is asking the same routing question for the third time — surface a pattern + adjust pacing."
189
191
  ]
190
- }
192
+ },
193
+ "hidden_agents": [],
194
+ "custom_agents": [
195
+ {
196
+ "id": "x-gtm-engineer-wgby",
197
+ "name": "GTM Engineer",
198
+ "tagline": "Builds outbound systems that turn target accounts into conversations",
199
+ "description": "Researches high-value accounts, identifies operational pain points, and builds personalized outbound campaigns targeting ops, supply-chain, and logistics leaders. Combines technical automation skills with sharp commercial writing to run experiments, enrich pipelines, and move prospects to discovery calls. Works directly with founders to convert early traction into a repeatable sales motion.",
200
+ "accent": "#4A6FA5",
201
+ "code": "GTE",
202
+ "team": "SALES",
203
+ "defaultModel": "claude-sonnet-4-6",
204
+ "systemPrompt": "You are the GTM Engineer operator for LeedAB. Your job is to build and run the outbound engine that takes LeedAB from early traction to a scalable sales motion. You sit between product, sales, automation, and customer discovery.\n\nYour primary objectives are: identify high-value target accounts in operations, supply chain, logistics, procurement, and back-office-heavy verticals; research their workflows and surface the specific pain points LeedAB can automate; build personalized outbound campaigns across LinkedIn, email, founder-led channels, communities, and events; and turn customer conversations into sharp ICP insights and product feedback.\n\nYou are expected to work technically. Build scraping pipelines, enrichment workflows, AI-assisted research briefs, and internal GTM automations using tools like Clay, Apollo, Instantly, Smartlead, HubSpot, Attio, Airtable, Make, Zapier, or n8n. When a manual step is repeatable, automate it. When a system is leaking data, fix it.\n\nYou are expected to write well. Every outbound message should be specific, concise, and oriented around the buyer's pain — not LeedAB's features. No filler. No generic sequences. Each campaign should have a clear hypothesis about who is in pain, why, and what a conversation with LeedAB is worth to them.\n\nYou manage CRM hygiene, lead scoring, pipeline tracking, and follow-up sequences. You flag stale leads, broken stages, and missing data. You make sure the founders always know what is in the pipeline and what needs action.\n\nYou produce sales collateral when needed: case studies, ROI narratives, demo scripts, account briefs, one-pagers. Keep them grounded in real customer language and real numbers. Do not write marketing copy — write materials that help a buyer make a decision.\n\nYou help run discovery calls and demos. Prepare call briefs before meetings. Take sharp notes during. After calls, extract what the buyer said about their workflow, their pain, their current tools, and what would make them move. Feed that back into ICP documentation and campaign targeting.\n\nYou measure what works. Every campaign has a hypothesis. Every sequence has tracked open, reply, and meeting rates. You kill what does not perform and double down on what does. You report results clearly and without spin.\n\nConstraints: never fabricate contact details, company data, or customer quotes. When researching accounts, cite the source. When writing outreach, do not claim capabilities LeedAB does not have. When you are uncertain about a product claim, flag it for the founders before it goes into a campaign. Treat every prospect's time as scarce — do not send noise.",
205
+ "createdAt": "2026-05-17T22:39:47.632Z"
206
+ },
207
+ {
208
+ "id": "x-brand-specialist-cqgs",
209
+ "name": "Brand Specialist",
210
+ "tagline": "Shapes how LeedAB looks, sounds, and lands across every touchpoint",
211
+ "description": "Defines and executes LeedAB's brand identity, voice, and visual direction across website, sales materials, pitch decks, and social content. Translates complex AI and operations concepts into clear, commercially sharp messaging. Works directly with founders to build a consistent brand system that serves GTM, investor, and customer-facing needs.",
212
+ "accent": "#7B5EA7",
213
+ "code": "BRS",
214
+ "team": "BRAND",
215
+ "defaultModel": "claude-sonnet-4-6",
216
+ "systemPrompt": "You are the Brand Specialist operator for LeedAB. Your job is to shape how LeedAB looks, sounds, and feels across every customer and investor touchpoint. You work directly with founders to define positioning, messaging, visual direction, and the content system that holds everything together.\n\nYour primary objectives are: develop and maintain a clear, consistent brand identity including voice, tone, typography, color, imagery, and layout standards; translate complex AI and operations concepts into messaging that is simple, credible, and commercially sharp; improve website copy, landing pages, pitch decks, one-pagers, and sales collateral; and create a repeatable content system for launches, outreach, social posts, and product announcements.\n\nOn messaging: every asset you produce should make LeedAB feel modern, trustworthy, and specific. Avoid vague AI superlatives. Ground claims in real workflows, real outcomes, and real customer language. When founders bring rough positioning ideas, your job is to sharpen them into something a buyer or investor would immediately understand.\n\nOn visual direction: you maintain brand guidelines the team can actually use. Typography, color palette, icon style, layout rules, image treatment. When a designer, developer, or GTM team member needs to produce something, the guidelines should be clear enough that the output looks like LeedAB without you touching every file.\n\nOn content: you produce LinkedIn posts, email campaign copy, product announcement drafts, and launch materials. Each piece should reinforce positioning, not just fill a calendar. Founder-led content should sound like the founder, not like a brand account. Customer stories and use cases should lead with the operational pain and the measurable result.\n\nOn consistency: you audit materials across website, product UI, sales collateral, and investor decks. When something is off-brand, off-tone, or visually inconsistent, you flag it and fix it. You own the single source of truth for brand standards.\n\nOn research: you monitor competitors and adjacent B2B SaaS and AI brands to keep LeedAB's positioning differentiated. When the market shifts or a competitor changes their story, you surface it and recommend adjustments.\n\nConstraints: never sacrifice clarity for creativity. If a headline sounds good but does not communicate what LeedAB actually does, rewrite it. Never publish unverified customer claims or fabricated proof points. When a metric or testimonial is used in an asset, confirm it is real and sourced before it goes out. Keep brand guidelines practical and minimal enough that the team will actually follow them.",
217
+ "createdAt": "2026-05-17T23:47:28.471Z"
218
+ }
219
+ ],
220
+ "agent_teams": [
221
+ {
222
+ "label": "SALES",
223
+ "color": "#b8633a",
224
+ "ids": [
225
+ "x-gtm-engineer-wgby"
226
+ ]
227
+ },
228
+ {
229
+ "label": "BRAND",
230
+ "color": "#b87850",
231
+ "ids": [
232
+ "x-brand-specialist-cqgs"
233
+ ]
234
+ }
235
+ ]
191
236
  }
@@ -100,11 +100,15 @@ export async function startConsole(port = 3000) {
100
100
  `This is a packaging bug, please report it.`);
101
101
  }
102
102
  process.stderr.write(`Console build missing. Running 'npm install && npm run build' in ${dir} (one-time, ~60s).\n`);
103
- const install = spawnSync("npm", ["install"], { cwd: dir, stdio: "inherit" });
103
+ // shell: true so Windows resolves `npm` `npm.cmd` via PATHEXT.
104
+ // Without it spawnSync returns status: null (process never launched),
105
+ // which surfaced as "npm install failed (exit null)".
106
+ const useShell = process.platform === "win32";
107
+ const install = spawnSync("npm", ["install"], { cwd: dir, stdio: "inherit", shell: useShell });
104
108
  if (install.status !== 0) {
105
109
  throw new Error(`npm install failed (exit ${install.status}) in ${dir}. Run manually:\n cd ${dir} && npm install && npm run build`);
106
110
  }
107
- const build = spawnSync("npm", ["run", "build"], { cwd: dir, stdio: "inherit" });
111
+ const build = spawnSync("npm", ["run", "build"], { cwd: dir, stdio: "inherit", shell: useShell });
108
112
  if (build.status !== 0) {
109
113
  throw new Error(`Console build failed (exit ${build.status}). Run manually:\n cd ${dir} && npm run build`);
110
114
  }
package/dist/gateway.js CHANGED
@@ -41,6 +41,23 @@ export async function startGateway(config) {
41
41
  env,
42
42
  stdio: ["inherit", "pipe", "pipe"],
43
43
  });
44
+ // Watch the openclaw output for the "ready (" marker so the CLI can
45
+ // unblock the instant the gateway signals it's listening, instead of
46
+ // waiting for the next health probe to land. On Windows cold-start
47
+ // openclaw can take ~200s to bind, and each `openclaw gateway health`
48
+ // probe blocks up to 30s — so only ~8 probes fit in the 240s budget
49
+ // and the timing can miss, even though the gateway actually came up.
50
+ const readyPromise = new Promise((resolve) => {
51
+ const watch = (chunk) => {
52
+ const text = typeof chunk === "string" ? chunk : chunk.toString("utf-8");
53
+ if (text.includes("ready ("))
54
+ resolve();
55
+ };
56
+ if (gatewayProcess?.stdout)
57
+ gatewayProcess.stdout.on("data", watch);
58
+ if (gatewayProcess?.stderr)
59
+ gatewayProcess.stderr.on("data", watch);
60
+ });
44
61
  if (gatewayProcess.stdout)
45
62
  gatewayProcess.stdout.pipe(logStream);
46
63
  if (gatewayProcess.stderr)
@@ -61,7 +78,7 @@ export async function startGateway(config) {
61
78
  };
62
79
  process.on("SIGTERM", cleanup);
63
80
  process.on("SIGINT", cleanup);
64
- await waitForGateway(config.gateway.port);
81
+ await waitForGateway(config.gateway.port, readyPromise);
65
82
  // Push approvals to running gateway (local set happens before start,
66
83
  // but the gateway may load its own copy on boot)
67
84
  await ensureAutoApprove(bin, env, true);
@@ -176,44 +193,76 @@ async function ensureChatCompletionsEndpoint(stateDir) {
176
193
  * Safe for local enterprise deployments where the admin controls the box.
177
194
  */
178
195
  async function ensureAutoApprove(bin, env, gateway = false) {
179
- try {
180
- // security: "full" skips all approval prompts (equivalent to elevated mode).
181
- // ask: "off" disables interactive prompts entirely.
182
- // askFallback: "full" auto-allows if no UI is reachable.
183
- const approvals = JSON.stringify({
184
- version: 1,
185
- defaults: {
196
+ // security: "full" skips all approval prompts (equivalent to elevated mode).
197
+ // ask: "off" disables interactive prompts entirely.
198
+ // askFallback: "full" auto-allows if no UI is reachable.
199
+ const approvals = JSON.stringify({
200
+ version: 1,
201
+ defaults: {
202
+ security: "full",
203
+ ask: "off",
204
+ askFallback: "full",
205
+ },
206
+ agents: {
207
+ "*": {
186
208
  security: "full",
187
209
  ask: "off",
188
210
  askFallback: "full",
189
211
  },
190
- agents: {
191
- "*": {
192
- security: "full",
193
- ask: "off",
194
- askFallback: "full",
195
- },
196
- main: {
197
- security: "full",
198
- ask: "off",
199
- askFallback: "full",
200
- },
212
+ main: {
213
+ security: "full",
214
+ ask: "off",
215
+ askFallback: "full",
201
216
  },
202
- });
203
- const args = ["approvals", "set", "--stdin"];
204
- if (gateway)
205
- args.push("--gateway");
206
- const proc = spawn(bin, openclawArgs(args), { env, stdio: ["pipe", "pipe", "pipe"] });
207
- proc.stdin.write(approvals);
208
- proc.stdin.end();
209
- await new Promise((resolve, reject) => {
210
- proc.on("close", (code) => (code === 0 ? resolve() : reject(new Error(`exit ${code}`))));
211
- proc.on("error", reject);
212
- });
213
- }
214
- catch (err) {
215
- console.warn("[leedab] auto-approve setup failed:", err);
217
+ },
218
+ });
219
+ const args = ["approvals", "set", "--stdin"];
220
+ if (gateway)
221
+ args.push("--gateway");
222
+ // Retry loop. In gateway mode the subprocess opens a WebSocket to the
223
+ // just-started gateway. The gateway is "HTTP-ready" before its WS auth
224
+ // layer is fully initialised, so the first call commonly fails with
225
+ // "closed before connect" (ws codes 1005 / 1006) and exits 1. Retrying
226
+ // a few times with backoff covers that warmup window without changing
227
+ // gateway internals. In non-gateway mode the openclaw subprocess is
228
+ // self-contained so one attempt is enough — but the retry is cheap and
229
+ // costs nothing on success, so we keep it uniform.
230
+ const delays = gateway ? [500, 1500, 3000, 5000] : [0];
231
+ let lastErr = null;
232
+ for (let i = 0; i < delays.length; i++) {
233
+ if (delays[i] > 0)
234
+ await new Promise((r) => setTimeout(r, delays[i]));
235
+ try {
236
+ const proc = spawn(bin, openclawArgs(args), { env, stdio: ["pipe", "pipe", "pipe"] });
237
+ proc.stdin.write(approvals);
238
+ proc.stdin.end();
239
+ let stderr = "";
240
+ proc.stderr.on("data", (chunk) => { stderr += chunk.toString(); });
241
+ await new Promise((resolve, reject) => {
242
+ proc.on("close", (code) => {
243
+ if (code === 0)
244
+ return resolve();
245
+ // Pull the actionable line from stderr if openclaw printed one
246
+ // ("unauthorized: gateway token missing", "closed before
247
+ // connect", etc) so logs aren't just "exit 1".
248
+ const tail = stderr.split("\n").filter(Boolean).slice(-2).join(" | ").trim();
249
+ reject(new Error(`exit ${code}${tail ? `: ${tail}` : ""}`));
250
+ });
251
+ proc.on("error", reject);
252
+ });
253
+ return; // success
254
+ }
255
+ catch (err) {
256
+ lastErr = err instanceof Error ? err : new Error(String(err));
257
+ // Don't bother retrying on hard auth failures — those won't fix
258
+ // themselves by waiting. Token-missing means the config is wrong;
259
+ // tell the user to run leedab onboard.
260
+ const msg = lastErr.message.toLowerCase();
261
+ if (msg.includes("token missing") || msg.includes("unauthorized"))
262
+ break;
263
+ }
216
264
  }
265
+ console.warn("[leedab] auto-approve setup failed:", lastErr?.message ?? lastErr);
217
266
  }
218
267
  /**
219
268
  * Copy default workspace files (AGENTS.md, SOUL.md, etc.) into workspace/
@@ -241,28 +290,38 @@ async function seedWorkspace() {
241
290
  }
242
291
  }
243
292
  async function waitForGateway(port,
244
- // 240s gives comfortable headroom on Windows, where openclaw cold-start
245
- // can take ~70s to bind (vs ~10s on macOS/Linux). Each health probe
246
- // itself can sit for the 30s execFile timeout when the gateway isn't
247
- // listening yet, so don't cut this too tight.
248
- timeoutMs = 240000) {
293
+ // Optional signal that resolves when the gateway's "ready (" line is
294
+ // observed on stdout/stderr. When provided, we return the instant the
295
+ // log marker fires the health-probe loop below stays as a fallback
296
+ // in case the marker is missed (stream buffering, format change, etc).
297
+ readySignal,
298
+ // 360s headroom for Windows, where openclaw cold-start has been
299
+ // measured at ~200s. Health probes can each block 30s, so the
300
+ // probe-only path only fits ~8 attempts — the readySignal short-
301
+ // circuits that whenever the gateway logs ready in time.
302
+ timeoutMs = 360000) {
249
303
  const bin = resolveOpenClawBin();
250
304
  const stateDir = STATE_DIR;
251
305
  const start = Date.now();
252
- while (Date.now() - start < timeoutMs) {
253
- try {
254
- // Use openclaw's own health check which knows the WS protocol.
255
- // Child timeout must exceed openclaw CLI cold-start time (~15s).
256
- await execFileAsync(bin, openclawArgs(["gateway", "health"]), {
257
- env: openclawEnv(stateDir),
258
- timeout: 30000,
259
- });
260
- return;
261
- }
262
- catch {
263
- // Not ready yet
306
+ const pollLoop = (async () => {
307
+ while (Date.now() - start < timeoutMs) {
308
+ try {
309
+ await execFileAsync(bin, openclawArgs(["gateway", "health"]), {
310
+ env: openclawEnv(stateDir),
311
+ timeout: 30000,
312
+ });
313
+ return;
314
+ }
315
+ catch {
316
+ // Not ready yet
317
+ }
318
+ await new Promise((r) => setTimeout(r, 1000));
264
319
  }
265
- await new Promise((r) => setTimeout(r, 1000));
320
+ throw new Error(`Gateway did not start within ${timeoutMs}ms`);
321
+ })();
322
+ if (readySignal) {
323
+ await Promise.race([readySignal, pollLoop]);
324
+ return;
266
325
  }
267
- throw new Error(`Gateway did not start within ${timeoutMs}ms`);
326
+ await pollLoop;
268
327
  }