leedab 0.5.3 → 0.6.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 (821) hide show
  1. package/README.md +7 -2
  2. package/_schema/customer-brain-template/01_Customers/engagement.md +42 -0
  3. package/_schema/customer-brain-template/01_Customers/qbr-template.md +49 -0
  4. package/_schema/customer-brain-template/02_Sales/pipeline.md +43 -0
  5. package/_schema/customer-brain-template/04_Operations/runbook.md +54 -0
  6. package/_schema/customer-brain-template/05_Finance/runway-snapshot.md +40 -0
  7. package/_schema/customer-brain-template/CLAUDE.md +66 -0
  8. package/_schema/customer-brain-template/README.md +43 -0
  9. package/_schema/customer-brain-template/_inbox/champion-day-0.md +69 -0
  10. package/_schema/customer-brain-template/_inbox/weekly-digest-template.md +53 -0
  11. package/_schema/customer-brain-template/_templates/customer.md +33 -0
  12. package/_schema/customer-brain-template/_templates/decision.md +30 -0
  13. package/agents/INDEX.md +151 -0
  14. package/agents/automation-agent.md +199 -0
  15. package/agents/backend-agent.md +104 -0
  16. package/agents/brand-agent.md +130 -0
  17. package/agents/campaigns-agent.md +98 -0
  18. package/agents/champion-agent.md +123 -0
  19. package/agents/compliance-agent.md +124 -0
  20. package/agents/concierge-agent.md +120 -0
  21. package/agents/content-agent.md +98 -0
  22. package/agents/coo-agent.md +191 -0
  23. package/agents/cx-agent.md +85 -0
  24. package/agents/data-agent.md +129 -0
  25. package/agents/delivery-agent.md +154 -0
  26. package/agents/devops-agent.md +117 -0
  27. package/agents/email-agent.md +114 -0
  28. package/agents/engineering-agent.md +136 -0
  29. package/agents/finance-agent.md +94 -0
  30. package/agents/frontend-agent.md +98 -0
  31. package/agents/implementation-agent.md +130 -0
  32. package/agents/investor-agent.md +127 -0
  33. package/agents/legal-agent.md +109 -0
  34. package/agents/marketing-agent.md +91 -0
  35. package/agents/onboarding-agent.md +122 -0
  36. package/agents/ops-agent.md +92 -0
  37. package/agents/people-agent.md +127 -0
  38. package/agents/procurement-agent.md +147 -0
  39. package/agents/product-agent.md +133 -0
  40. package/agents/research-agent.md +147 -0
  41. package/agents/sales-agent.md +112 -0
  42. package/agents/solutions-agent.md +111 -0
  43. package/agents/strategy-agent.md +107 -0
  44. package/agents/video-agent.md +94 -0
  45. package/apps/console/.next/standalone/.next/BUILD_ID +1 -1
  46. package/apps/console/.next/standalone/.next/app-build-manifest.json +542 -143
  47. package/apps/console/.next/standalone/.next/app-path-routes-manifest.json +77 -19
  48. package/apps/console/.next/standalone/.next/build-manifest.json +8 -8
  49. package/apps/console/.next/standalone/.next/prerender-manifest.json +39 -10
  50. package/apps/console/.next/standalone/.next/required-server-files.json +4 -0
  51. package/apps/console/.next/standalone/.next/routes-manifest.json +44 -0
  52. package/apps/console/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  53. package/apps/console/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  54. package/apps/console/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  55. package/apps/console/.next/standalone/.next/server/app/_not-found.html +1 -1
  56. package/apps/console/.next/standalone/.next/server/app/_not-found.rsc +8 -4
  57. package/apps/console/.next/standalone/.next/server/app/api/agent/route.js +2 -2
  58. package/apps/console/.next/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  59. package/apps/console/.next/standalone/.next/server/app/api/agent/route_client-reference-manifest.js +1 -1
  60. package/apps/console/.next/standalone/.next/server/app/api/approvals/route.js +1 -1
  61. package/apps/console/.next/standalone/.next/server/app/api/approvals/route.js.nft.json +1 -1
  62. package/apps/console/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
  63. package/apps/console/.next/standalone/.next/server/app/api/approvals/stream/route.js +2 -2
  64. package/apps/console/.next/standalone/.next/server/app/api/approvals/stream/route.js.nft.json +1 -1
  65. package/apps/console/.next/standalone/.next/server/app/api/approvals/stream/route_client-reference-manifest.js +1 -1
  66. package/apps/console/.next/standalone/.next/server/app/api/automation/workflow-blueprint/route.js +1 -0
  67. package/apps/console/.next/standalone/.next/server/app/api/automation/workflow-blueprint/route.js.nft.json +1 -0
  68. package/apps/console/.next/standalone/.next/server/app/api/automation/workflow-blueprint/route_client-reference-manifest.js +1 -0
  69. package/apps/console/.next/standalone/.next/server/app/api/backend/endpoint-spec/route.js +1 -0
  70. package/apps/console/.next/standalone/.next/server/app/api/backend/endpoint-spec/route.js.nft.json +1 -0
  71. package/apps/console/.next/standalone/.next/server/app/api/backend/endpoint-spec/route_client-reference-manifest.js +1 -0
  72. package/apps/console/.next/standalone/.next/server/app/api/bootstrap-admin-token/route.js +1 -0
  73. package/apps/console/.next/standalone/.next/server/app/api/bootstrap-admin-token/route.js.nft.json +1 -0
  74. package/apps/console/.next/standalone/.next/server/app/api/bootstrap-admin-token/route_client-reference-manifest.js +1 -0
  75. package/apps/console/.next/standalone/.next/server/app/api/brand/brand-audit/route.js +1 -0
  76. package/apps/console/.next/standalone/.next/server/app/api/brand/brand-audit/route.js.nft.json +1 -0
  77. package/apps/console/.next/standalone/.next/server/app/api/brand/brand-audit/route_client-reference-manifest.js +1 -0
  78. package/apps/console/.next/standalone/.next/server/app/api/campaigns/campaign-brief/route.js +1 -0
  79. package/apps/console/.next/standalone/.next/server/app/api/campaigns/campaign-brief/route.js.nft.json +1 -0
  80. package/apps/console/.next/standalone/.next/server/app/api/campaigns/campaign-brief/route_client-reference-manifest.js +1 -0
  81. package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route.js +3 -0
  82. package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route.js.nft.json +1 -0
  83. package/apps/console/.next/standalone/.next/server/app/api/champion/confidence/route_client-reference-manifest.js +1 -0
  84. package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route.js +3 -0
  85. package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route.js.nft.json +1 -0
  86. package/apps/console/.next/standalone/.next/server/app/api/champion/customer/route_client-reference-manifest.js +1 -0
  87. package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route.js +3 -0
  88. package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route.js.nft.json +1 -0
  89. package/apps/console/.next/standalone/.next/server/app/api/champion/dispatches/route_client-reference-manifest.js +1 -0
  90. package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route.js +3 -0
  91. package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route.js.nft.json +1 -0
  92. package/apps/console/.next/standalone/.next/server/app/api/champion/engagement/route_client-reference-manifest.js +1 -0
  93. package/apps/console/.next/standalone/.next/server/app/api/champion/escalate/route.js +11 -0
  94. package/apps/console/.next/standalone/.next/server/app/api/champion/escalate/route.js.nft.json +1 -0
  95. package/apps/console/.next/standalone/.next/server/app/api/champion/escalate/route_client-reference-manifest.js +1 -0
  96. package/apps/console/.next/standalone/.next/server/app/api/champion/profile/route.js +4 -0
  97. package/apps/console/.next/standalone/.next/server/app/api/champion/profile/route.js.nft.json +1 -0
  98. package/apps/console/.next/standalone/.next/server/app/api/champion/profile/route_client-reference-manifest.js +1 -0
  99. package/apps/console/.next/standalone/.next/server/app/api/champion/screenshare/route.js +36 -0
  100. package/apps/console/.next/standalone/.next/server/app/api/champion/screenshare/route.js.nft.json +1 -0
  101. package/apps/console/.next/standalone/.next/server/app/api/champion/screenshare/route_client-reference-manifest.js +1 -0
  102. package/apps/console/.next/standalone/.next/server/app/api/champion/track-question/route.js +2 -0
  103. package/apps/console/.next/standalone/.next/server/app/api/champion/track-question/route.js.nft.json +1 -0
  104. package/apps/console/.next/standalone/.next/server/app/api/champion/track-question/route_client-reference-manifest.js +1 -0
  105. package/apps/console/.next/standalone/.next/server/app/api/champion/use-case-wiki/route.js +1 -0
  106. package/apps/console/.next/standalone/.next/server/app/api/champion/use-case-wiki/route.js.nft.json +1 -0
  107. package/apps/console/.next/standalone/.next/server/app/api/champion/use-case-wiki/route_client-reference-manifest.js +1 -0
  108. package/apps/console/.next/standalone/.next/server/app/api/chat/route.js +2 -2
  109. package/apps/console/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  110. package/apps/console/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  111. package/apps/console/.next/standalone/.next/server/app/api/compliance/risk-register-seed/route.js +33 -0
  112. package/apps/console/.next/standalone/.next/server/app/api/compliance/risk-register-seed/route.js.nft.json +1 -0
  113. package/apps/console/.next/standalone/.next/server/app/api/compliance/risk-register-seed/route_client-reference-manifest.js +1 -0
  114. package/apps/console/.next/standalone/.next/server/app/api/computer-use/[id]/route.js +1 -1
  115. package/apps/console/.next/standalone/.next/server/app/api/computer-use/[id]/route.js.nft.json +1 -1
  116. package/apps/console/.next/standalone/.next/server/app/api/computer-use/[id]/route_client-reference-manifest.js +1 -1
  117. package/apps/console/.next/standalone/.next/server/app/api/computer-use/route.js +1 -1
  118. package/apps/console/.next/standalone/.next/server/app/api/computer-use/route.js.nft.json +1 -1
  119. package/apps/console/.next/standalone/.next/server/app/api/computer-use/route_client-reference-manifest.js +1 -1
  120. package/apps/console/.next/standalone/.next/server/app/api/concierge/morning-brief/route.js +3 -0
  121. package/apps/console/.next/standalone/.next/server/app/api/concierge/morning-brief/route.js.nft.json +1 -0
  122. package/apps/console/.next/standalone/.next/server/app/api/concierge/morning-brief/route_client-reference-manifest.js +1 -0
  123. package/apps/console/.next/standalone/.next/server/app/api/contacts/route.js +1 -1
  124. package/apps/console/.next/standalone/.next/server/app/api/contacts/route.js.nft.json +1 -1
  125. package/apps/console/.next/standalone/.next/server/app/api/contacts/route_client-reference-manifest.js +1 -1
  126. package/apps/console/.next/standalone/.next/server/app/api/content/seo-brief/route.js +1 -0
  127. package/apps/console/.next/standalone/.next/server/app/api/content/seo-brief/route.js.nft.json +1 -0
  128. package/apps/console/.next/standalone/.next/server/app/api/content/seo-brief/route_client-reference-manifest.js +1 -0
  129. package/apps/console/.next/standalone/.next/server/app/api/conversations/route.js +3 -9
  130. package/apps/console/.next/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  131. package/apps/console/.next/standalone/.next/server/app/api/conversations/route_client-reference-manifest.js +1 -1
  132. package/apps/console/.next/standalone/.next/server/app/api/coo/route.js +1 -0
  133. package/apps/console/.next/standalone/.next/server/app/api/coo/route.js.nft.json +1 -0
  134. package/apps/console/.next/standalone/.next/server/app/api/coo/route_client-reference-manifest.js +1 -0
  135. package/apps/console/.next/standalone/.next/server/app/api/cx/escalation-triage/route.js +1 -0
  136. package/apps/console/.next/standalone/.next/server/app/api/cx/escalation-triage/route.js.nft.json +1 -0
  137. package/apps/console/.next/standalone/.next/server/app/api/cx/escalation-triage/route_client-reference-manifest.js +1 -0
  138. package/apps/console/.next/standalone/.next/server/app/api/cx/health-score/route.js +1 -0
  139. package/apps/console/.next/standalone/.next/server/app/api/cx/health-score/route.js.nft.json +1 -0
  140. package/apps/console/.next/standalone/.next/server/app/api/cx/health-score/route_client-reference-manifest.js +1 -0
  141. package/apps/console/.next/standalone/.next/server/app/api/data/cohort-brief/route.js +1 -0
  142. package/apps/console/.next/standalone/.next/server/app/api/data/cohort-brief/route.js.nft.json +1 -0
  143. package/apps/console/.next/standalone/.next/server/app/api/data/cohort-brief/route_client-reference-manifest.js +1 -0
  144. package/apps/console/.next/standalone/.next/server/app/api/delivery/qbr-brief/route.js +57 -0
  145. package/apps/console/.next/standalone/.next/server/app/api/delivery/qbr-brief/route.js.nft.json +1 -0
  146. package/apps/console/.next/standalone/.next/server/app/api/delivery/qbr-brief/route_client-reference-manifest.js +1 -0
  147. package/apps/console/.next/standalone/.next/server/app/api/delivery/weekly-brief/route.js +1 -0
  148. package/apps/console/.next/standalone/.next/server/app/api/delivery/weekly-brief/route.js.nft.json +1 -0
  149. package/apps/console/.next/standalone/.next/server/app/api/delivery/weekly-brief/route_client-reference-manifest.js +1 -0
  150. package/apps/console/.next/standalone/.next/server/app/api/dev/invalidate-cache/route.js +3 -0
  151. package/apps/console/.next/standalone/.next/server/app/api/dev/invalidate-cache/route.js.nft.json +1 -0
  152. package/apps/console/.next/standalone/.next/server/app/api/dev/invalidate-cache/route_client-reference-manifest.js +1 -0
  153. package/apps/console/.next/standalone/.next/server/app/api/devops/runbook/route.js +1 -0
  154. package/apps/console/.next/standalone/.next/server/app/api/devops/runbook/route.js.nft.json +1 -0
  155. package/apps/console/.next/standalone/.next/server/app/api/devops/runbook/route_client-reference-manifest.js +1 -0
  156. package/apps/console/.next/standalone/.next/server/app/api/email/sequence-brief/route.js +1 -0
  157. package/apps/console/.next/standalone/.next/server/app/api/email/sequence-brief/route.js.nft.json +1 -0
  158. package/apps/console/.next/standalone/.next/server/app/api/email/sequence-brief/route_client-reference-manifest.js +1 -0
  159. package/apps/console/.next/standalone/.next/server/app/api/engineering/adr-draft/route.js +1 -0
  160. package/apps/console/.next/standalone/.next/server/app/api/engineering/adr-draft/route.js.nft.json +1 -0
  161. package/apps/console/.next/standalone/.next/server/app/api/engineering/adr-draft/route_client-reference-manifest.js +1 -0
  162. package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route.js +49 -0
  163. package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route.js.nft.json +1 -0
  164. package/apps/console/.next/standalone/.next/server/app/api/finance/runway-snapshot/route_client-reference-manifest.js +1 -0
  165. package/apps/console/.next/standalone/.next/server/app/api/frontend/component-spec/route.js +1 -0
  166. package/apps/console/.next/standalone/.next/server/app/api/frontend/component-spec/route.js.nft.json +1 -0
  167. package/apps/console/.next/standalone/.next/server/app/api/frontend/component-spec/route_client-reference-manifest.js +1 -0
  168. package/apps/console/.next/standalone/.next/server/app/api/health/route.js +1 -1
  169. package/apps/console/.next/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  170. package/apps/console/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  171. package/apps/console/.next/standalone/.next/server/app/api/implementation/brief/route.js +79 -0
  172. package/apps/console/.next/standalone/.next/server/app/api/implementation/brief/route.js.nft.json +1 -0
  173. package/apps/console/.next/standalone/.next/server/app/api/implementation/brief/route_client-reference-manifest.js +1 -0
  174. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-migration-script/route.js +1 -0
  175. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-migration-script/route.js.nft.json +1 -0
  176. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-migration-script/route_client-reference-manifest.js +1 -0
  177. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-n8n-workflow/route.js +1 -0
  178. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-n8n-workflow/route.js.nft.json +1 -0
  179. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-n8n-workflow/route_client-reference-manifest.js +1 -0
  180. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-skill-override/route.js +1 -0
  181. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-skill-override/route.js.nft.json +1 -0
  182. package/apps/console/.next/standalone/.next/server/app/api/implementation/scaffold-skill-override/route_client-reference-manifest.js +1 -0
  183. package/apps/console/.next/standalone/.next/server/app/api/inbox/route.js +1 -1
  184. package/apps/console/.next/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  185. package/apps/console/.next/standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  186. package/apps/console/.next/standalone/.next/server/app/api/inbox/stream/route.js +2 -2
  187. package/apps/console/.next/standalone/.next/server/app/api/inbox/stream/route.js.nft.json +1 -1
  188. package/apps/console/.next/standalone/.next/server/app/api/inbox/stream/route_client-reference-manifest.js +1 -1
  189. package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route.js +59 -0
  190. package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route.js.nft.json +1 -0
  191. package/apps/console/.next/standalone/.next/server/app/api/investor/kpi-tracker/route_client-reference-manifest.js +1 -0
  192. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/status/route.js +1 -1
  193. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/status/route_client-reference-manifest.js +1 -1
  194. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/telegram/connect/route.js +1 -1
  195. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/telegram/connect/route_client-reference-manifest.js +1 -1
  196. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/whatsapp/connect/route.js +1 -1
  197. package/apps/console/.next/standalone/.next/server/app/api/leedab/channels/whatsapp/connect/route_client-reference-manifest.js +1 -1
  198. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/route.js +1 -0
  199. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/route.js.nft.json +1 -0
  200. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/route_client-reference-manifest.js +1 -0
  201. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/status/route.js +1 -0
  202. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/status/route.js.nft.json +1 -0
  203. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/leads/[id]/status/route_client-reference-manifest.js +1 -0
  204. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/templates/[name]/route.js +1 -0
  205. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/templates/[name]/route.js.nft.json +1 -0
  206. package/apps/console/.next/standalone/.next/server/app/api/leedab/gtm/templates/[name]/route_client-reference-manifest.js +1 -0
  207. package/apps/console/.next/standalone/.next/server/app/api/leedab/license/route.js +3 -1
  208. package/apps/console/.next/standalone/.next/server/app/api/leedab/license/route_client-reference-manifest.js +1 -1
  209. package/apps/console/.next/standalone/.next/server/app/api/leedab/providers/route.js +1 -1
  210. package/apps/console/.next/standalone/.next/server/app/api/leedab/providers/route_client-reference-manifest.js +1 -1
  211. package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/[id]/route.js +1 -1
  212. package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/[id]/route_client-reference-manifest.js +1 -1
  213. package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/route.js +1 -1
  214. package/apps/console/.next/standalone/.next/server/app/api/leedab/sessions/route_client-reference-manifest.js +1 -1
  215. package/apps/console/.next/standalone/.next/server/app/api/leedab/team/[id]/route.js +1 -1
  216. package/apps/console/.next/standalone/.next/server/app/api/leedab/team/[id]/route_client-reference-manifest.js +1 -1
  217. package/apps/console/.next/standalone/.next/server/app/api/leedab/team/route.js +1 -1
  218. package/apps/console/.next/standalone/.next/server/app/api/leedab/team/route_client-reference-manifest.js +1 -1
  219. package/apps/console/.next/standalone/.next/server/app/api/leedab/vault/route.js +2 -2
  220. package/apps/console/.next/standalone/.next/server/app/api/leedab/vault/route_client-reference-manifest.js +1 -1
  221. package/apps/console/.next/standalone/.next/server/app/api/leedab/workflows/route.js +1 -1
  222. package/apps/console/.next/standalone/.next/server/app/api/leedab/workflows/route_client-reference-manifest.js +1 -1
  223. package/apps/console/.next/standalone/.next/server/app/api/legal/clause-template/route.js +1 -0
  224. package/apps/console/.next/standalone/.next/server/app/api/legal/clause-template/route.js.nft.json +1 -0
  225. package/apps/console/.next/standalone/.next/server/app/api/legal/clause-template/route_client-reference-manifest.js +1 -0
  226. package/apps/console/.next/standalone/.next/server/app/api/marketing/cadence-planner/route.js +35 -0
  227. package/apps/console/.next/standalone/.next/server/app/api/marketing/cadence-planner/route.js.nft.json +1 -0
  228. package/apps/console/.next/standalone/.next/server/app/api/marketing/cadence-planner/route_client-reference-manifest.js +1 -0
  229. package/apps/console/.next/standalone/.next/server/app/api/marketing/competitive-snapshot/route.js +18 -0
  230. package/apps/console/.next/standalone/.next/server/app/api/marketing/competitive-snapshot/route.js.nft.json +1 -0
  231. package/apps/console/.next/standalone/.next/server/app/api/marketing/competitive-snapshot/route_client-reference-manifest.js +1 -0
  232. package/apps/console/.next/standalone/.next/server/app/api/onboarding/engagement-plan/route.js +17 -0
  233. package/apps/console/.next/standalone/.next/server/app/api/onboarding/engagement-plan/route.js.nft.json +1 -0
  234. package/apps/console/.next/standalone/.next/server/app/api/onboarding/engagement-plan/route_client-reference-manifest.js +1 -0
  235. package/apps/console/.next/standalone/.next/server/app/api/onboarding/kickoff-brief/route.js +63 -0
  236. package/apps/console/.next/standalone/.next/server/app/api/onboarding/kickoff-brief/route.js.nft.json +1 -0
  237. package/apps/console/.next/standalone/.next/server/app/api/onboarding/kickoff-brief/route_client-reference-manifest.js +1 -0
  238. package/apps/console/.next/standalone/.next/server/app/api/openclaw/status/route.js +1 -1
  239. package/apps/console/.next/standalone/.next/server/app/api/openclaw/status/route_client-reference-manifest.js +1 -1
  240. package/apps/console/.next/standalone/.next/server/app/api/ops/dispatch-brief/route.js +1 -0
  241. package/apps/console/.next/standalone/.next/server/app/api/ops/dispatch-brief/route.js.nft.json +1 -0
  242. package/apps/console/.next/standalone/.next/server/app/api/ops/dispatch-brief/route_client-reference-manifest.js +1 -0
  243. package/apps/console/.next/standalone/.next/server/app/api/pack/route.js +3 -31
  244. package/apps/console/.next/standalone/.next/server/app/api/pack/route.js.nft.json +1 -1
  245. package/apps/console/.next/standalone/.next/server/app/api/pack/route_client-reference-manifest.js +1 -1
  246. package/apps/console/.next/standalone/.next/server/app/api/people/job-brief/route.js +1 -0
  247. package/apps/console/.next/standalone/.next/server/app/api/people/job-brief/route.js.nft.json +1 -0
  248. package/apps/console/.next/standalone/.next/server/app/api/people/job-brief/route_client-reference-manifest.js +1 -0
  249. package/apps/console/.next/standalone/.next/server/app/api/preferences/route.js +1 -1
  250. package/apps/console/.next/standalone/.next/server/app/api/preferences/route.js.nft.json +1 -1
  251. package/apps/console/.next/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  252. package/apps/console/.next/standalone/.next/server/app/api/procurement/po-brief/route.js +1 -0
  253. package/apps/console/.next/standalone/.next/server/app/api/procurement/po-brief/route.js.nft.json +1 -0
  254. package/apps/console/.next/standalone/.next/server/app/api/procurement/po-brief/route_client-reference-manifest.js +1 -0
  255. package/apps/console/.next/standalone/.next/server/app/api/product/prd-draft/route.js +1 -0
  256. package/apps/console/.next/standalone/.next/server/app/api/product/prd-draft/route.js.nft.json +1 -0
  257. package/apps/console/.next/standalone/.next/server/app/api/product/prd-draft/route_client-reference-manifest.js +1 -0
  258. package/apps/console/.next/standalone/.next/server/app/api/research/prospect-intel/route.js +15 -0
  259. package/apps/console/.next/standalone/.next/server/app/api/research/prospect-intel/route.js.nft.json +1 -0
  260. package/apps/console/.next/standalone/.next/server/app/api/research/prospect-intel/route_client-reference-manifest.js +1 -0
  261. package/apps/console/.next/standalone/.next/server/app/api/research/search/route.js +1 -0
  262. package/apps/console/.next/standalone/.next/server/app/api/research/search/route.js.nft.json +1 -0
  263. package/apps/console/.next/standalone/.next/server/app/api/research/search/route_client-reference-manifest.js +1 -0
  264. package/apps/console/.next/standalone/.next/server/app/api/routing/route.js +1 -1
  265. package/apps/console/.next/standalone/.next/server/app/api/routing/route.js.nft.json +1 -1
  266. package/apps/console/.next/standalone/.next/server/app/api/routing/route_client-reference-manifest.js +1 -1
  267. package/apps/console/.next/standalone/.next/server/app/api/runs/route.js +1 -1
  268. package/apps/console/.next/standalone/.next/server/app/api/runs/route.js.nft.json +1 -1
  269. package/apps/console/.next/standalone/.next/server/app/api/runs/route_client-reference-manifest.js +1 -1
  270. package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route.js +63 -0
  271. package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route.js.nft.json +1 -0
  272. package/apps/console/.next/standalone/.next/server/app/api/sales/pipeline-summary/route_client-reference-manifest.js +1 -0
  273. package/apps/console/.next/standalone/.next/server/app/api/sales/prospect-brief/route.js +6 -0
  274. package/apps/console/.next/standalone/.next/server/app/api/sales/prospect-brief/route.js.nft.json +1 -0
  275. package/apps/console/.next/standalone/.next/server/app/api/sales/prospect-brief/route_client-reference-manifest.js +1 -0
  276. package/apps/console/.next/standalone/.next/server/app/api/solutions/build/route.js +66 -0
  277. package/apps/console/.next/standalone/.next/server/app/api/solutions/build/route.js.nft.json +1 -0
  278. package/apps/console/.next/standalone/.next/server/app/api/solutions/build/route_client-reference-manifest.js +1 -0
  279. package/apps/console/.next/standalone/.next/server/app/api/solutions/quickstart-regenerate/route.js +3 -0
  280. package/apps/console/.next/standalone/.next/server/app/api/solutions/quickstart-regenerate/route.js.nft.json +1 -0
  281. package/apps/console/.next/standalone/.next/server/app/api/solutions/quickstart-regenerate/route_client-reference-manifest.js +1 -0
  282. package/apps/console/.next/standalone/.next/server/app/api/solutions/refine/route.js +22 -0
  283. package/apps/console/.next/standalone/.next/server/app/api/solutions/refine/route.js.nft.json +1 -0
  284. package/apps/console/.next/standalone/.next/server/app/api/solutions/refine/route_client-reference-manifest.js +1 -0
  285. package/apps/console/.next/standalone/.next/server/app/api/strategy/market-pulse/route.js +17 -0
  286. package/apps/console/.next/standalone/.next/server/app/api/strategy/market-pulse/route.js.nft.json +1 -0
  287. package/apps/console/.next/standalone/.next/server/app/api/strategy/market-pulse/route_client-reference-manifest.js +1 -0
  288. package/apps/console/.next/standalone/.next/server/app/api/telegram/[customerId]/route.js +61 -0
  289. package/apps/console/.next/standalone/.next/server/app/api/telegram/[customerId]/route.js.nft.json +1 -0
  290. package/apps/console/.next/standalone/.next/server/app/api/telegram/[customerId]/route_client-reference-manifest.js +1 -0
  291. package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route.js +23 -0
  292. package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route.js.nft.json +1 -0
  293. package/apps/console/.next/standalone/.next/server/app/api/templates/regenerate/route_client-reference-manifest.js +1 -0
  294. package/apps/console/.next/standalone/.next/server/app/api/templates/route.js +1 -31
  295. package/apps/console/.next/standalone/.next/server/app/api/templates/route.js.nft.json +1 -1
  296. package/apps/console/.next/standalone/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  297. package/apps/console/.next/standalone/.next/server/app/api/uploads/[id]/route.js +1 -1
  298. package/apps/console/.next/standalone/.next/server/app/api/uploads/[id]/route.js.nft.json +1 -1
  299. package/apps/console/.next/standalone/.next/server/app/api/uploads/[id]/route_client-reference-manifest.js +1 -1
  300. package/apps/console/.next/standalone/.next/server/app/api/uploads/route.js +1 -1
  301. package/apps/console/.next/standalone/.next/server/app/api/uploads/route.js.nft.json +1 -1
  302. package/apps/console/.next/standalone/.next/server/app/api/uploads/route_client-reference-manifest.js +1 -1
  303. package/apps/console/.next/standalone/.next/server/app/api/usage/route.js +3 -9
  304. package/apps/console/.next/standalone/.next/server/app/api/usage/route.js.nft.json +1 -1
  305. package/apps/console/.next/standalone/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
  306. package/apps/console/.next/standalone/.next/server/app/api/video/video-script/route.js +1 -0
  307. package/apps/console/.next/standalone/.next/server/app/api/video/video-script/route.js.nft.json +1 -0
  308. package/apps/console/.next/standalone/.next/server/app/api/video/video-script/route_client-reference-manifest.js +1 -0
  309. package/apps/console/.next/standalone/.next/server/app/api/webhooks/workflow/[id]/route.js +3 -1
  310. package/apps/console/.next/standalone/.next/server/app/api/webhooks/workflow/[id]/route.js.nft.json +1 -1
  311. package/apps/console/.next/standalone/.next/server/app/api/webhooks/workflow/[id]/route_client-reference-manifest.js +1 -1
  312. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/[runId]/route.js +1 -1
  313. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/[runId]/route.js.nft.json +1 -1
  314. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/[runId]/route_client-reference-manifest.js +1 -1
  315. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/route.js +1 -1
  316. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/route.js.nft.json +1 -1
  317. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/history/route_client-reference-manifest.js +1 -1
  318. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/route.js +3 -1
  319. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  320. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
  321. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/run/route.js +1 -1
  322. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/run/route.js.nft.json +1 -1
  323. package/apps/console/.next/standalone/.next/server/app/api/workflows/[id]/run/route_client-reference-manifest.js +1 -1
  324. package/apps/console/.next/standalone/.next/server/app/api/workflows/route.js +1 -1
  325. package/apps/console/.next/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  326. package/apps/console/.next/standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  327. package/apps/console/.next/standalone/.next/server/app/apple-icon.png/route.js +1 -0
  328. package/apps/console/.next/standalone/.next/server/app/apple-icon.png/route.js.nft.json +1 -0
  329. package/apps/console/.next/standalone/.next/server/app/apple-icon.png.body +0 -0
  330. package/apps/console/.next/standalone/.next/server/app/apple-icon.png.meta +1 -0
  331. package/apps/console/.next/standalone/.next/server/app/gtm/page.js +2 -0
  332. package/apps/console/.next/standalone/.next/server/app/gtm/page.js.nft.json +1 -0
  333. package/apps/console/.next/standalone/.next/server/app/gtm/page_client-reference-manifest.js +1 -0
  334. package/apps/console/.next/standalone/.next/server/app/icon.png/route.js +1 -1
  335. package/apps/console/.next/standalone/.next/server/app/index.html +1 -1
  336. package/apps/console/.next/standalone/.next/server/app/index.rsc +9 -5
  337. package/apps/console/.next/standalone/.next/server/app/page.js +5 -2
  338. package/apps/console/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  339. package/apps/console/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  340. package/apps/console/.next/standalone/.next/server/app-paths-manifest.json +77 -19
  341. package/apps/console/.next/standalone/.next/server/chunks/1372.js +9 -0
  342. package/apps/console/.next/standalone/.next/server/chunks/1558.js +38 -0
  343. package/apps/console/.next/standalone/.next/server/chunks/1692.js +1 -1
  344. package/apps/console/.next/standalone/.next/server/chunks/4768.js +17 -0
  345. package/apps/console/.next/standalone/.next/server/chunks/5611.js +3 -3
  346. package/apps/console/.next/standalone/.next/server/chunks/5670.js +3 -0
  347. package/apps/console/.next/standalone/.next/server/chunks/5873.js +10 -10
  348. package/apps/console/.next/standalone/.next/server/chunks/6150.js +22 -0
  349. package/apps/console/.next/standalone/.next/server/chunks/6235.js +9 -0
  350. package/apps/console/.next/standalone/.next/server/chunks/6255.js +1 -0
  351. package/apps/console/.next/standalone/.next/server/chunks/697.js +19 -0
  352. package/apps/console/.next/standalone/.next/server/chunks/7087.js +1 -9
  353. package/apps/console/.next/standalone/.next/server/chunks/7242.js +28 -0
  354. package/apps/console/.next/standalone/.next/server/chunks/7907.js +86 -0
  355. package/apps/console/.next/standalone/.next/server/chunks/854.js +1287 -0
  356. package/apps/console/.next/standalone/.next/server/chunks/897.js +3 -0
  357. package/apps/console/.next/standalone/.next/server/functions-config-manifest.json +73 -17
  358. package/apps/console/.next/standalone/.next/server/instrumentation.js +1 -1
  359. package/apps/console/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  360. package/apps/console/.next/standalone/.next/server/next-font-manifest.js +1 -1
  361. package/apps/console/.next/standalone/.next/server/next-font-manifest.json +1 -1
  362. package/apps/console/.next/standalone/.next/server/pages/404.html +1 -1
  363. package/apps/console/.next/standalone/.next/server/pages/500.html +1 -1
  364. package/apps/console/.next/standalone/.next/server/pages/_app.js +1 -1
  365. package/apps/console/.next/standalone/.next/server/pages/_document.js +1 -1
  366. package/apps/console/.next/standalone/.next/server/pages/_error.js +3 -3
  367. package/apps/console/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  368. package/apps/console/.next/standalone/.next/static/cSGyydhlqn2VGaYXt0uuW/_buildManifest.js +1 -0
  369. package/apps/console/.next/standalone/.next/static/chunks/1255-b28ea36bf0cdbd65.js +1 -0
  370. package/apps/console/.next/standalone/.next/static/chunks/8118-681f2688832ccc66.js +1 -0
  371. package/apps/console/.next/standalone/.next/static/chunks/app/api/agent/route-4178c1913c80eb12.js +1 -0
  372. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/route-4178c1913c80eb12.js +1 -0
  373. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/stream/route-4178c1913c80eb12.js +1 -0
  374. package/apps/console/.next/standalone/.next/static/chunks/app/api/automation/workflow-blueprint/route-4178c1913c80eb12.js +1 -0
  375. package/apps/console/.next/standalone/.next/static/chunks/app/api/backend/endpoint-spec/route-4178c1913c80eb12.js +1 -0
  376. package/apps/console/.next/standalone/.next/static/chunks/app/api/bootstrap-admin-token/route-4178c1913c80eb12.js +1 -0
  377. package/apps/console/.next/standalone/.next/static/chunks/app/api/brand/brand-audit/route-4178c1913c80eb12.js +1 -0
  378. package/apps/console/.next/standalone/.next/static/chunks/app/api/campaigns/campaign-brief/route-4178c1913c80eb12.js +1 -0
  379. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/confidence/route-4178c1913c80eb12.js +1 -0
  380. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/customer/route-4178c1913c80eb12.js +1 -0
  381. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/dispatches/route-4178c1913c80eb12.js +1 -0
  382. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/engagement/route-4178c1913c80eb12.js +1 -0
  383. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/escalate/route-4178c1913c80eb12.js +1 -0
  384. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/profile/route-4178c1913c80eb12.js +1 -0
  385. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/screenshare/route-4178c1913c80eb12.js +1 -0
  386. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/track-question/route-4178c1913c80eb12.js +1 -0
  387. package/apps/console/.next/standalone/.next/static/chunks/app/api/champion/use-case-wiki/route-4178c1913c80eb12.js +1 -0
  388. package/apps/console/.next/standalone/.next/static/chunks/app/api/chat/route-4178c1913c80eb12.js +1 -0
  389. package/apps/console/.next/standalone/.next/static/chunks/app/api/compliance/risk-register-seed/route-4178c1913c80eb12.js +1 -0
  390. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/[id]/route-4178c1913c80eb12.js +1 -0
  391. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/route-4178c1913c80eb12.js +1 -0
  392. package/apps/console/.next/standalone/.next/static/chunks/app/api/concierge/morning-brief/route-4178c1913c80eb12.js +1 -0
  393. package/apps/console/.next/standalone/.next/static/chunks/app/api/contacts/route-4178c1913c80eb12.js +1 -0
  394. package/apps/console/.next/standalone/.next/static/chunks/app/api/content/seo-brief/route-4178c1913c80eb12.js +1 -0
  395. package/apps/console/.next/standalone/.next/static/chunks/app/api/conversations/route-4178c1913c80eb12.js +1 -0
  396. package/apps/console/.next/standalone/.next/static/chunks/app/api/coo/route-4178c1913c80eb12.js +1 -0
  397. package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/escalation-triage/route-4178c1913c80eb12.js +1 -0
  398. package/apps/console/.next/standalone/.next/static/chunks/app/api/cx/health-score/route-4178c1913c80eb12.js +1 -0
  399. package/apps/console/.next/standalone/.next/static/chunks/app/api/data/cohort-brief/route-4178c1913c80eb12.js +1 -0
  400. package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/qbr-brief/route-4178c1913c80eb12.js +1 -0
  401. package/apps/console/.next/standalone/.next/static/chunks/app/api/delivery/weekly-brief/route-4178c1913c80eb12.js +1 -0
  402. package/apps/console/.next/standalone/.next/static/chunks/app/api/dev/invalidate-cache/route-4178c1913c80eb12.js +1 -0
  403. package/apps/console/.next/standalone/.next/static/chunks/app/api/devops/runbook/route-4178c1913c80eb12.js +1 -0
  404. package/apps/console/.next/standalone/.next/static/chunks/app/api/email/sequence-brief/route-4178c1913c80eb12.js +1 -0
  405. package/apps/console/.next/standalone/.next/static/chunks/app/api/engineering/adr-draft/route-4178c1913c80eb12.js +1 -0
  406. package/apps/console/.next/standalone/.next/static/chunks/app/api/finance/runway-snapshot/route-4178c1913c80eb12.js +1 -0
  407. package/apps/console/.next/standalone/.next/static/chunks/app/api/frontend/component-spec/route-4178c1913c80eb12.js +1 -0
  408. package/apps/console/.next/standalone/.next/static/chunks/app/api/health/route-4178c1913c80eb12.js +1 -0
  409. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/brief/route-4178c1913c80eb12.js +1 -0
  410. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-4178c1913c80eb12.js +1 -0
  411. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-4178c1913c80eb12.js +1 -0
  412. package/apps/console/.next/standalone/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-4178c1913c80eb12.js +1 -0
  413. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/route-4178c1913c80eb12.js +1 -0
  414. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/stream/route-4178c1913c80eb12.js +1 -0
  415. package/apps/console/.next/standalone/.next/static/chunks/app/api/investor/kpi-tracker/route-4178c1913c80eb12.js +1 -0
  416. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/status/route-4178c1913c80eb12.js +1 -0
  417. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-4178c1913c80eb12.js +1 -0
  418. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-4178c1913c80eb12.js +1 -0
  419. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-4178c1913c80eb12.js +1 -0
  420. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-4178c1913c80eb12.js +1 -0
  421. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-4178c1913c80eb12.js +1 -0
  422. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/license/route-4178c1913c80eb12.js +1 -0
  423. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/providers/route-4178c1913c80eb12.js +1 -0
  424. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/[id]/route-4178c1913c80eb12.js +1 -0
  425. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/route-4178c1913c80eb12.js +1 -0
  426. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/[id]/route-4178c1913c80eb12.js +1 -0
  427. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/route-4178c1913c80eb12.js +1 -0
  428. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/vault/route-4178c1913c80eb12.js +1 -0
  429. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/workflows/route-4178c1913c80eb12.js +1 -0
  430. package/apps/console/.next/standalone/.next/static/chunks/app/api/legal/clause-template/route-4178c1913c80eb12.js +1 -0
  431. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/cadence-planner/route-4178c1913c80eb12.js +1 -0
  432. package/apps/console/.next/standalone/.next/static/chunks/app/api/marketing/competitive-snapshot/route-4178c1913c80eb12.js +1 -0
  433. package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/engagement-plan/route-4178c1913c80eb12.js +1 -0
  434. package/apps/console/.next/standalone/.next/static/chunks/app/api/onboarding/kickoff-brief/route-4178c1913c80eb12.js +1 -0
  435. package/apps/console/.next/standalone/.next/static/chunks/app/api/openclaw/status/route-4178c1913c80eb12.js +1 -0
  436. package/apps/console/.next/standalone/.next/static/chunks/app/api/ops/dispatch-brief/route-4178c1913c80eb12.js +1 -0
  437. package/apps/console/.next/standalone/.next/static/chunks/app/api/pack/route-4178c1913c80eb12.js +1 -0
  438. package/apps/console/.next/standalone/.next/static/chunks/app/api/people/job-brief/route-4178c1913c80eb12.js +1 -0
  439. package/apps/console/.next/standalone/.next/static/chunks/app/api/preferences/route-4178c1913c80eb12.js +1 -0
  440. package/apps/console/.next/standalone/.next/static/chunks/app/api/procurement/po-brief/route-4178c1913c80eb12.js +1 -0
  441. package/apps/console/.next/standalone/.next/static/chunks/app/api/product/prd-draft/route-4178c1913c80eb12.js +1 -0
  442. package/apps/console/.next/standalone/.next/static/chunks/app/api/research/prospect-intel/route-4178c1913c80eb12.js +1 -0
  443. package/apps/console/.next/standalone/.next/static/chunks/app/api/research/search/route-4178c1913c80eb12.js +1 -0
  444. package/apps/console/.next/standalone/.next/static/chunks/app/api/routing/route-4178c1913c80eb12.js +1 -0
  445. package/apps/console/.next/standalone/.next/static/chunks/app/api/runs/route-4178c1913c80eb12.js +1 -0
  446. package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/pipeline-summary/route-4178c1913c80eb12.js +1 -0
  447. package/apps/console/.next/standalone/.next/static/chunks/app/api/sales/prospect-brief/route-4178c1913c80eb12.js +1 -0
  448. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/build/route-4178c1913c80eb12.js +1 -0
  449. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-4178c1913c80eb12.js +1 -0
  450. package/apps/console/.next/standalone/.next/static/chunks/app/api/solutions/refine/route-4178c1913c80eb12.js +1 -0
  451. package/apps/console/.next/standalone/.next/static/chunks/app/api/strategy/market-pulse/route-4178c1913c80eb12.js +1 -0
  452. package/apps/console/.next/standalone/.next/static/chunks/app/api/telegram/[customerId]/route-4178c1913c80eb12.js +1 -0
  453. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/regenerate/route-4178c1913c80eb12.js +1 -0
  454. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/route-4178c1913c80eb12.js +1 -0
  455. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/[id]/route-4178c1913c80eb12.js +1 -0
  456. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/route-4178c1913c80eb12.js +1 -0
  457. package/apps/console/.next/standalone/.next/static/chunks/app/api/usage/route-4178c1913c80eb12.js +1 -0
  458. package/apps/console/.next/standalone/.next/static/chunks/app/api/video/video-script/route-4178c1913c80eb12.js +1 -0
  459. package/apps/console/.next/standalone/.next/static/chunks/app/api/webhooks/workflow/[id]/route-4178c1913c80eb12.js +1 -0
  460. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-4178c1913c80eb12.js +1 -0
  461. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/route-4178c1913c80eb12.js +1 -0
  462. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/route-4178c1913c80eb12.js +1 -0
  463. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/run/route-4178c1913c80eb12.js +1 -0
  464. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/route-4178c1913c80eb12.js +1 -0
  465. package/apps/console/.next/standalone/.next/static/chunks/app/gtm/page-caca5eaacd3c81f2.js +1 -0
  466. package/apps/console/.next/standalone/.next/static/chunks/app/layout-bd27cc63fde6b953.js +1 -0
  467. package/apps/console/.next/standalone/.next/static/chunks/app/page-01558715b1be9361.js +1 -0
  468. package/apps/console/.next/{static/chunks/main-48aa5dd07474f897.js → standalone/.next/static/chunks/main-d8fbd90b2bd781f8.js} +1 -1
  469. package/apps/console/.next/standalone/.next/static/chunks/{webpack-cdf4ab3c7a3034db.js → webpack-43f535d639053361.js} +1 -1
  470. package/apps/console/.next/standalone/.next/static/css/4bdbd0680d42c54d.css +3 -0
  471. package/apps/console/.next/standalone/.next/static/media/0f1bdadaf30e2d5f-s.woff2 +0 -0
  472. package/apps/console/.next/standalone/.next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  473. package/apps/console/.next/standalone/.next/static/media/2c34d62a75506231-s.woff2 +0 -0
  474. package/apps/console/.next/standalone/.next/static/media/35f3de0ebb1cfc70-s.woff2 +0 -0
  475. package/apps/console/.next/standalone/.next/static/media/5ece437c7024c161-s.woff2 +0 -0
  476. package/apps/console/.next/standalone/.next/static/media/601f5c280d60caca-s.woff2 +0 -0
  477. package/apps/console/.next/standalone/.next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  478. package/apps/console/.next/standalone/.next/static/media/9cc5b37ab1350db7-s.p.woff2 +0 -0
  479. package/apps/console/.next/standalone/.next/static/media/a115172161b307bb-s.woff2 +0 -0
  480. package/apps/console/.next/standalone/.next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  481. package/apps/console/.next/standalone/.next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  482. package/apps/console/.next/standalone/.next/static/media/d100b2a099e34044-s.woff2 +0 -0
  483. package/apps/console/.next/standalone/.next/static/media/e6099e249fd938cc-s.p.woff2 +0 -0
  484. package/apps/console/.next/standalone/.next/static/media/f5271587012faf78-s.p.woff2 +0 -0
  485. package/apps/console/.next/standalone/.next/static/media/f639721981034f88-s.woff2 +0 -0
  486. package/apps/console/.next/standalone/data/conversations/coo.json +116 -1
  487. package/apps/console/.next/standalone/data/conversations/procurement.json +33 -1
  488. package/apps/console/.next/standalone/data/uploads/316e1ef7-870d-4666-93fa-e439548fc0b6.pdf +0 -0
  489. package/apps/console/.next/standalone/data/uploads/_index.json +11 -0
  490. package/apps/console/.next/standalone/data/usage.json +81 -0
  491. package/apps/console/.next/standalone/node_modules/@next/env/package.json +1 -1
  492. package/apps/console/.next/standalone/node_modules/next/dist/build/analysis/get-page-static-info.js +12 -1
  493. package/apps/console/.next/standalone/node_modules/next/dist/build/next-config-ts/transpile-config.js +2 -1
  494. package/apps/console/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  495. package/apps/console/.next/standalone/node_modules/next/dist/build/webpack-config.js +2 -2
  496. package/apps/console/.next/standalone/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +2 -2
  497. package/apps/console/.next/standalone/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +9 -2
  498. package/apps/console/.next/standalone/node_modules/next/dist/client/script.js +5 -4
  499. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +11 -11
  500. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +11 -11
  501. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +13 -13
  502. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +9 -9
  503. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
  504. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +5 -5
  505. package/apps/console/.next/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +3 -3
  506. package/apps/console/.next/standalone/node_modules/next/dist/lib/typescript/required-packages.js +40 -0
  507. package/apps/console/.next/standalone/node_modules/next/dist/lib/verify-typescript-setup.js +7 -2
  508. package/apps/console/.next/standalone/node_modules/next/dist/pages/_document.js +1 -1
  509. package/apps/console/.next/standalone/node_modules/next/dist/server/app-render/action-handler.js +3 -6
  510. package/apps/console/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +2 -1
  511. package/apps/console/.next/standalone/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +8 -20
  512. package/apps/console/.next/standalone/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +8 -7
  513. package/apps/console/.next/standalone/node_modules/next/dist/server/app-render/use-flight-response.js +2 -2
  514. package/apps/console/.next/standalone/node_modules/next/dist/server/base-server.js +12 -4
  515. package/apps/console/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
  516. package/apps/console/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  517. package/apps/console/.next/standalone/node_modules/next/dist/server/image-optimizer.js +22 -2
  518. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  519. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/is-rsc-request.js +18 -0
  520. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/mock-request.js +30 -5
  521. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/router-server.js +6 -3
  522. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +18 -4
  523. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/server-ipc/utils.js +4 -1
  524. package/apps/console/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  525. package/apps/console/.next/standalone/node_modules/next/dist/server/next-server.js +2 -1
  526. package/apps/console/.next/standalone/node_modules/next/dist/server/route-modules/route-module.js +9 -3
  527. package/apps/console/.next/standalone/node_modules/next/dist/server/web/adapter.js +2 -1
  528. package/apps/console/.next/standalone/node_modules/next/dist/shared/lib/canary-only.js +1 -1
  529. package/apps/console/.next/standalone/node_modules/next/dist/{server → shared/lib}/htmlescape.js +15 -0
  530. package/apps/console/.next/standalone/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +56 -10
  531. package/apps/console/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  532. package/apps/console/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  533. package/apps/console/.next/standalone/node_modules/next/package.json +15 -15
  534. package/apps/console/.next/standalone/package.json +6 -0
  535. package/apps/console/.next/standalone/server.js +1 -1
  536. package/apps/console/.next/static/cSGyydhlqn2VGaYXt0uuW/_buildManifest.js +1 -0
  537. package/apps/console/.next/static/chunks/1255-b28ea36bf0cdbd65.js +1 -0
  538. package/apps/console/.next/static/chunks/8118-681f2688832ccc66.js +1 -0
  539. package/apps/console/.next/static/chunks/app/api/agent/route-4178c1913c80eb12.js +1 -0
  540. package/apps/console/.next/static/chunks/app/api/approvals/route-4178c1913c80eb12.js +1 -0
  541. package/apps/console/.next/static/chunks/app/api/approvals/stream/route-4178c1913c80eb12.js +1 -0
  542. package/apps/console/.next/static/chunks/app/api/automation/workflow-blueprint/route-4178c1913c80eb12.js +1 -0
  543. package/apps/console/.next/static/chunks/app/api/backend/endpoint-spec/route-4178c1913c80eb12.js +1 -0
  544. package/apps/console/.next/static/chunks/app/api/bootstrap-admin-token/route-4178c1913c80eb12.js +1 -0
  545. package/apps/console/.next/static/chunks/app/api/brand/brand-audit/route-4178c1913c80eb12.js +1 -0
  546. package/apps/console/.next/static/chunks/app/api/campaigns/campaign-brief/route-4178c1913c80eb12.js +1 -0
  547. package/apps/console/.next/static/chunks/app/api/champion/confidence/route-4178c1913c80eb12.js +1 -0
  548. package/apps/console/.next/static/chunks/app/api/champion/customer/route-4178c1913c80eb12.js +1 -0
  549. package/apps/console/.next/static/chunks/app/api/champion/dispatches/route-4178c1913c80eb12.js +1 -0
  550. package/apps/console/.next/static/chunks/app/api/champion/engagement/route-4178c1913c80eb12.js +1 -0
  551. package/apps/console/.next/static/chunks/app/api/champion/escalate/route-4178c1913c80eb12.js +1 -0
  552. package/apps/console/.next/static/chunks/app/api/champion/profile/route-4178c1913c80eb12.js +1 -0
  553. package/apps/console/.next/static/chunks/app/api/champion/screenshare/route-4178c1913c80eb12.js +1 -0
  554. package/apps/console/.next/static/chunks/app/api/champion/track-question/route-4178c1913c80eb12.js +1 -0
  555. package/apps/console/.next/static/chunks/app/api/champion/use-case-wiki/route-4178c1913c80eb12.js +1 -0
  556. package/apps/console/.next/static/chunks/app/api/chat/route-4178c1913c80eb12.js +1 -0
  557. package/apps/console/.next/static/chunks/app/api/compliance/risk-register-seed/route-4178c1913c80eb12.js +1 -0
  558. package/apps/console/.next/static/chunks/app/api/computer-use/[id]/route-4178c1913c80eb12.js +1 -0
  559. package/apps/console/.next/static/chunks/app/api/computer-use/route-4178c1913c80eb12.js +1 -0
  560. package/apps/console/.next/static/chunks/app/api/concierge/morning-brief/route-4178c1913c80eb12.js +1 -0
  561. package/apps/console/.next/static/chunks/app/api/contacts/route-4178c1913c80eb12.js +1 -0
  562. package/apps/console/.next/static/chunks/app/api/content/seo-brief/route-4178c1913c80eb12.js +1 -0
  563. package/apps/console/.next/static/chunks/app/api/conversations/route-4178c1913c80eb12.js +1 -0
  564. package/apps/console/.next/static/chunks/app/api/coo/route-4178c1913c80eb12.js +1 -0
  565. package/apps/console/.next/static/chunks/app/api/cx/escalation-triage/route-4178c1913c80eb12.js +1 -0
  566. package/apps/console/.next/static/chunks/app/api/cx/health-score/route-4178c1913c80eb12.js +1 -0
  567. package/apps/console/.next/static/chunks/app/api/data/cohort-brief/route-4178c1913c80eb12.js +1 -0
  568. package/apps/console/.next/static/chunks/app/api/delivery/qbr-brief/route-4178c1913c80eb12.js +1 -0
  569. package/apps/console/.next/static/chunks/app/api/delivery/weekly-brief/route-4178c1913c80eb12.js +1 -0
  570. package/apps/console/.next/static/chunks/app/api/dev/invalidate-cache/route-4178c1913c80eb12.js +1 -0
  571. package/apps/console/.next/static/chunks/app/api/devops/runbook/route-4178c1913c80eb12.js +1 -0
  572. package/apps/console/.next/static/chunks/app/api/email/sequence-brief/route-4178c1913c80eb12.js +1 -0
  573. package/apps/console/.next/static/chunks/app/api/engineering/adr-draft/route-4178c1913c80eb12.js +1 -0
  574. package/apps/console/.next/static/chunks/app/api/finance/runway-snapshot/route-4178c1913c80eb12.js +1 -0
  575. package/apps/console/.next/static/chunks/app/api/frontend/component-spec/route-4178c1913c80eb12.js +1 -0
  576. package/apps/console/.next/static/chunks/app/api/health/route-4178c1913c80eb12.js +1 -0
  577. package/apps/console/.next/static/chunks/app/api/implementation/brief/route-4178c1913c80eb12.js +1 -0
  578. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-migration-script/route-4178c1913c80eb12.js +1 -0
  579. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-n8n-workflow/route-4178c1913c80eb12.js +1 -0
  580. package/apps/console/.next/static/chunks/app/api/implementation/scaffold-skill-override/route-4178c1913c80eb12.js +1 -0
  581. package/apps/console/.next/static/chunks/app/api/inbox/route-4178c1913c80eb12.js +1 -0
  582. package/apps/console/.next/static/chunks/app/api/inbox/stream/route-4178c1913c80eb12.js +1 -0
  583. package/apps/console/.next/static/chunks/app/api/investor/kpi-tracker/route-4178c1913c80eb12.js +1 -0
  584. package/apps/console/.next/static/chunks/app/api/leedab/channels/status/route-4178c1913c80eb12.js +1 -0
  585. package/apps/console/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-4178c1913c80eb12.js +1 -0
  586. package/apps/console/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-4178c1913c80eb12.js +1 -0
  587. package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/route-4178c1913c80eb12.js +1 -0
  588. package/apps/console/.next/static/chunks/app/api/leedab/gtm/leads/[id]/status/route-4178c1913c80eb12.js +1 -0
  589. package/apps/console/.next/static/chunks/app/api/leedab/gtm/templates/[name]/route-4178c1913c80eb12.js +1 -0
  590. package/apps/console/.next/static/chunks/app/api/leedab/license/route-4178c1913c80eb12.js +1 -0
  591. package/apps/console/.next/static/chunks/app/api/leedab/providers/route-4178c1913c80eb12.js +1 -0
  592. package/apps/console/.next/static/chunks/app/api/leedab/sessions/[id]/route-4178c1913c80eb12.js +1 -0
  593. package/apps/console/.next/static/chunks/app/api/leedab/sessions/route-4178c1913c80eb12.js +1 -0
  594. package/apps/console/.next/static/chunks/app/api/leedab/team/[id]/route-4178c1913c80eb12.js +1 -0
  595. package/apps/console/.next/static/chunks/app/api/leedab/team/route-4178c1913c80eb12.js +1 -0
  596. package/apps/console/.next/static/chunks/app/api/leedab/vault/route-4178c1913c80eb12.js +1 -0
  597. package/apps/console/.next/static/chunks/app/api/leedab/workflows/route-4178c1913c80eb12.js +1 -0
  598. package/apps/console/.next/static/chunks/app/api/legal/clause-template/route-4178c1913c80eb12.js +1 -0
  599. package/apps/console/.next/static/chunks/app/api/marketing/cadence-planner/route-4178c1913c80eb12.js +1 -0
  600. package/apps/console/.next/static/chunks/app/api/marketing/competitive-snapshot/route-4178c1913c80eb12.js +1 -0
  601. package/apps/console/.next/static/chunks/app/api/onboarding/engagement-plan/route-4178c1913c80eb12.js +1 -0
  602. package/apps/console/.next/static/chunks/app/api/onboarding/kickoff-brief/route-4178c1913c80eb12.js +1 -0
  603. package/apps/console/.next/static/chunks/app/api/openclaw/status/route-4178c1913c80eb12.js +1 -0
  604. package/apps/console/.next/static/chunks/app/api/ops/dispatch-brief/route-4178c1913c80eb12.js +1 -0
  605. package/apps/console/.next/static/chunks/app/api/pack/route-4178c1913c80eb12.js +1 -0
  606. package/apps/console/.next/static/chunks/app/api/people/job-brief/route-4178c1913c80eb12.js +1 -0
  607. package/apps/console/.next/static/chunks/app/api/preferences/route-4178c1913c80eb12.js +1 -0
  608. package/apps/console/.next/static/chunks/app/api/procurement/po-brief/route-4178c1913c80eb12.js +1 -0
  609. package/apps/console/.next/static/chunks/app/api/product/prd-draft/route-4178c1913c80eb12.js +1 -0
  610. package/apps/console/.next/static/chunks/app/api/research/prospect-intel/route-4178c1913c80eb12.js +1 -0
  611. package/apps/console/.next/static/chunks/app/api/research/search/route-4178c1913c80eb12.js +1 -0
  612. package/apps/console/.next/static/chunks/app/api/routing/route-4178c1913c80eb12.js +1 -0
  613. package/apps/console/.next/static/chunks/app/api/runs/route-4178c1913c80eb12.js +1 -0
  614. package/apps/console/.next/static/chunks/app/api/sales/pipeline-summary/route-4178c1913c80eb12.js +1 -0
  615. package/apps/console/.next/static/chunks/app/api/sales/prospect-brief/route-4178c1913c80eb12.js +1 -0
  616. package/apps/console/.next/static/chunks/app/api/solutions/build/route-4178c1913c80eb12.js +1 -0
  617. package/apps/console/.next/static/chunks/app/api/solutions/quickstart-regenerate/route-4178c1913c80eb12.js +1 -0
  618. package/apps/console/.next/static/chunks/app/api/solutions/refine/route-4178c1913c80eb12.js +1 -0
  619. package/apps/console/.next/static/chunks/app/api/strategy/market-pulse/route-4178c1913c80eb12.js +1 -0
  620. package/apps/console/.next/static/chunks/app/api/telegram/[customerId]/route-4178c1913c80eb12.js +1 -0
  621. package/apps/console/.next/static/chunks/app/api/templates/regenerate/route-4178c1913c80eb12.js +1 -0
  622. package/apps/console/.next/static/chunks/app/api/templates/route-4178c1913c80eb12.js +1 -0
  623. package/apps/console/.next/static/chunks/app/api/uploads/[id]/route-4178c1913c80eb12.js +1 -0
  624. package/apps/console/.next/static/chunks/app/api/uploads/route-4178c1913c80eb12.js +1 -0
  625. package/apps/console/.next/static/chunks/app/api/usage/route-4178c1913c80eb12.js +1 -0
  626. package/apps/console/.next/static/chunks/app/api/video/video-script/route-4178c1913c80eb12.js +1 -0
  627. package/apps/console/.next/static/chunks/app/api/webhooks/workflow/[id]/route-4178c1913c80eb12.js +1 -0
  628. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-4178c1913c80eb12.js +1 -0
  629. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/route-4178c1913c80eb12.js +1 -0
  630. package/apps/console/.next/static/chunks/app/api/workflows/[id]/route-4178c1913c80eb12.js +1 -0
  631. package/apps/console/.next/static/chunks/app/api/workflows/[id]/run/route-4178c1913c80eb12.js +1 -0
  632. package/apps/console/.next/static/chunks/app/api/workflows/route-4178c1913c80eb12.js +1 -0
  633. package/apps/console/.next/static/chunks/app/gtm/page-caca5eaacd3c81f2.js +1 -0
  634. package/apps/console/.next/static/chunks/app/layout-bd27cc63fde6b953.js +1 -0
  635. package/apps/console/.next/static/chunks/app/page-01558715b1be9361.js +1 -0
  636. package/apps/console/.next/{standalone/.next/static/chunks/main-48aa5dd07474f897.js → static/chunks/main-d8fbd90b2bd781f8.js} +1 -1
  637. package/apps/console/.next/static/chunks/{webpack-cdf4ab3c7a3034db.js → webpack-43f535d639053361.js} +1 -1
  638. package/apps/console/.next/static/css/4bdbd0680d42c54d.css +3 -0
  639. package/apps/console/.next/static/media/0f1bdadaf30e2d5f-s.woff2 +0 -0
  640. package/apps/console/.next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  641. package/apps/console/.next/static/media/2c34d62a75506231-s.woff2 +0 -0
  642. package/apps/console/.next/static/media/35f3de0ebb1cfc70-s.woff2 +0 -0
  643. package/apps/console/.next/static/media/5ece437c7024c161-s.woff2 +0 -0
  644. package/apps/console/.next/static/media/601f5c280d60caca-s.woff2 +0 -0
  645. package/apps/console/.next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  646. package/apps/console/.next/static/media/9cc5b37ab1350db7-s.p.woff2 +0 -0
  647. package/apps/console/.next/static/media/a115172161b307bb-s.woff2 +0 -0
  648. package/apps/console/.next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  649. package/apps/console/.next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  650. package/apps/console/.next/static/media/d100b2a099e34044-s.woff2 +0 -0
  651. package/apps/console/.next/static/media/e6099e249fd938cc-s.p.woff2 +0 -0
  652. package/apps/console/.next/static/media/f5271587012faf78-s.p.woff2 +0 -0
  653. package/apps/console/.next/static/media/f639721981034f88-s.woff2 +0 -0
  654. package/apps/console/README.md +199 -0
  655. package/bin/leedab.js +271 -2
  656. package/bin/onboard-cofounder.sh +263 -0
  657. package/bin/onboard-customer.sh +303 -0
  658. package/bin/scan-secrets-tree.sh +138 -0
  659. package/bin/seed-workflows.mjs +80 -0
  660. package/bin/validate-manifests.sh +256 -0
  661. package/bin/wiring-status.sh +123 -0
  662. package/clients/default/manifest.json +191 -0
  663. package/clients/tarheel/INSTALL.md +333 -0
  664. package/clients/tarheel/manifest.json +34 -0
  665. package/context/brand-guide.md +95 -0
  666. package/context/competitor-landscape.md +120 -0
  667. package/context/customer-personas.md +91 -0
  668. package/context/customers/acme-logistics/playbook.md +19 -0
  669. package/context/customers/bondi-bloom/playbook.md +30 -0
  670. package/context/customers/chip-pro/playbook.md +107 -0
  671. package/context/customers/coastal-built/playbook.md +31 -0
  672. package/context/customers/element-pilates/playbook.md +33 -0
  673. package/context/customers/hawkesbury-roofing/playbook.md +21 -0
  674. package/context/customers/howard-partners/playbook.md +33 -0
  675. package/context/customers/ledbetter-advisory/playbook.md +21 -0
  676. package/context/customers/sunset-cafe/playbook.md +27 -0
  677. package/context/customers/tarheel/playbook.md +28 -0
  678. package/context/metrics.md +74 -0
  679. package/context/product-brief.md +134 -0
  680. package/context/roadmap.md +76 -0
  681. package/context/skills/brand-skills.md +62 -0
  682. package/context/skills/campaigns-skills.md +161 -0
  683. package/context/skills/compliance-skills.md +83 -0
  684. package/context/skills/concierge-skills.md +55 -0
  685. package/context/skills/content-skills.md +179 -0
  686. package/context/skills/cx-skills.md +296 -0
  687. package/context/skills/dashboard-ops.md +43 -0
  688. package/context/skills/email-skills.md +137 -0
  689. package/context/skills/finance-skills.md +314 -0
  690. package/context/skills/marketing-skills.md +843 -0
  691. package/context/skills/n8n-skills.md +110 -0
  692. package/context/skills/ops-skills.md +324 -0
  693. package/context/skills/people-skills.md +52 -0
  694. package/context/skills/procurement-skills.md +69 -0
  695. package/context/skills/product-skills.md +569 -0
  696. package/context/skills/research-skills.md +62 -0
  697. package/context/skills/sales-skills.md +827 -0
  698. package/context/skills/strategy-investor-skills.md +530 -0
  699. package/context/skills/video-skills.md +109 -0
  700. package/context/use-cases/construction.md +97 -0
  701. package/context/use-cases/hospitality.md +76 -0
  702. package/context/use-cases/logistics.md +57 -0
  703. package/context/use-cases/professional.md +61 -0
  704. package/context/use-cases/retail.md +80 -0
  705. package/context/use-cases/trades.md +97 -0
  706. package/dist/console-launcher.js +9 -0
  707. package/dist/gateway.js +4 -1
  708. package/dist/gtm/templates.js +17 -3
  709. package/dist/license.d.ts +6 -0
  710. package/dist/license.js +10 -0
  711. package/package.json +13 -3
  712. package/wiki/README.md +27 -0
  713. package/wiki/customer-use-cases/README.md +26 -0
  714. package/wiki/customer-use-cases/_template.md +42 -0
  715. package/wiki/customer-use-cases/agencies.md +47 -0
  716. package/wiki/customer-use-cases/ecommerce.md +47 -0
  717. package/wiki/customer-use-cases/food-service.md +45 -0
  718. package/wiki/customer-use-cases/healthcare.md +49 -0
  719. package/wiki/customer-use-cases/hospitality.md +47 -0
  720. package/wiki/customer-use-cases/logistics.md +58 -0
  721. package/wiki/customer-use-cases/manufacturing.md +45 -0
  722. package/wiki/customer-use-cases/professional.md +48 -0
  723. package/wiki/customer-use-cases/retail.md +44 -0
  724. package/wiki/customer-use-cases/trades.md +47 -0
  725. package/apps/console/.next/standalone/.next/server/app/api/demo/route.js +0 -19
  726. package/apps/console/.next/standalone/.next/server/app/api/demo/route.js.nft.json +0 -1
  727. package/apps/console/.next/standalone/.next/server/app/api/demo/route_client-reference-manifest.js +0 -1
  728. package/apps/console/.next/standalone/.next/server/chunks/2126.js +0 -9
  729. package/apps/console/.next/standalone/.next/server/chunks/4296.js +0 -9
  730. package/apps/console/.next/standalone/.next/server/chunks/5267.js +0 -9
  731. package/apps/console/.next/standalone/.next/server/chunks/7515.js +0 -1
  732. package/apps/console/.next/standalone/.next/static/chunks/1255-5fe68596fe147850.js +0 -1
  733. package/apps/console/.next/standalone/.next/static/chunks/856-71ac9b098091e245.js +0 -1
  734. package/apps/console/.next/standalone/.next/static/chunks/app/api/agent/route-35bf83db0bc9ad19.js +0 -1
  735. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/route-35bf83db0bc9ad19.js +0 -1
  736. package/apps/console/.next/standalone/.next/static/chunks/app/api/approvals/stream/route-35bf83db0bc9ad19.js +0 -1
  737. package/apps/console/.next/standalone/.next/static/chunks/app/api/chat/route-35bf83db0bc9ad19.js +0 -1
  738. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/[id]/route-35bf83db0bc9ad19.js +0 -1
  739. package/apps/console/.next/standalone/.next/static/chunks/app/api/computer-use/route-35bf83db0bc9ad19.js +0 -1
  740. package/apps/console/.next/standalone/.next/static/chunks/app/api/contacts/route-35bf83db0bc9ad19.js +0 -1
  741. package/apps/console/.next/standalone/.next/static/chunks/app/api/conversations/route-35bf83db0bc9ad19.js +0 -1
  742. package/apps/console/.next/standalone/.next/static/chunks/app/api/demo/route-35bf83db0bc9ad19.js +0 -1
  743. package/apps/console/.next/standalone/.next/static/chunks/app/api/health/route-35bf83db0bc9ad19.js +0 -1
  744. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/route-35bf83db0bc9ad19.js +0 -1
  745. package/apps/console/.next/standalone/.next/static/chunks/app/api/inbox/stream/route-35bf83db0bc9ad19.js +0 -1
  746. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/status/route-35bf83db0bc9ad19.js +0 -1
  747. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-35bf83db0bc9ad19.js +0 -1
  748. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-35bf83db0bc9ad19.js +0 -1
  749. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/license/route-35bf83db0bc9ad19.js +0 -1
  750. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/providers/route-35bf83db0bc9ad19.js +0 -1
  751. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/[id]/route-35bf83db0bc9ad19.js +0 -1
  752. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/sessions/route-35bf83db0bc9ad19.js +0 -1
  753. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/[id]/route-35bf83db0bc9ad19.js +0 -1
  754. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/team/route-35bf83db0bc9ad19.js +0 -1
  755. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/vault/route-35bf83db0bc9ad19.js +0 -1
  756. package/apps/console/.next/standalone/.next/static/chunks/app/api/leedab/workflows/route-35bf83db0bc9ad19.js +0 -1
  757. package/apps/console/.next/standalone/.next/static/chunks/app/api/openclaw/status/route-35bf83db0bc9ad19.js +0 -1
  758. package/apps/console/.next/standalone/.next/static/chunks/app/api/pack/route-35bf83db0bc9ad19.js +0 -1
  759. package/apps/console/.next/standalone/.next/static/chunks/app/api/preferences/route-35bf83db0bc9ad19.js +0 -1
  760. package/apps/console/.next/standalone/.next/static/chunks/app/api/routing/route-35bf83db0bc9ad19.js +0 -1
  761. package/apps/console/.next/standalone/.next/static/chunks/app/api/runs/route-35bf83db0bc9ad19.js +0 -1
  762. package/apps/console/.next/standalone/.next/static/chunks/app/api/templates/route-35bf83db0bc9ad19.js +0 -1
  763. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/[id]/route-35bf83db0bc9ad19.js +0 -1
  764. package/apps/console/.next/standalone/.next/static/chunks/app/api/uploads/route-35bf83db0bc9ad19.js +0 -1
  765. package/apps/console/.next/standalone/.next/static/chunks/app/api/usage/route-35bf83db0bc9ad19.js +0 -1
  766. package/apps/console/.next/standalone/.next/static/chunks/app/api/webhooks/workflow/[id]/route-35bf83db0bc9ad19.js +0 -1
  767. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-35bf83db0bc9ad19.js +0 -1
  768. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/history/route-35bf83db0bc9ad19.js +0 -1
  769. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/route-35bf83db0bc9ad19.js +0 -1
  770. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/[id]/run/route-35bf83db0bc9ad19.js +0 -1
  771. package/apps/console/.next/standalone/.next/static/chunks/app/api/workflows/route-35bf83db0bc9ad19.js +0 -1
  772. package/apps/console/.next/standalone/.next/static/chunks/app/layout-6be76a69bef30b9d.js +0 -1
  773. package/apps/console/.next/standalone/.next/static/chunks/app/page-4b700096636d1cae.js +0 -1
  774. package/apps/console/.next/standalone/.next/static/css/5c5c01673617cce6.css +0 -3
  775. package/apps/console/.next/standalone/.next/static/waL1Qm5zCQrO1oi52jYdI/_buildManifest.js +0 -1
  776. package/apps/console/.next/static/chunks/1255-5fe68596fe147850.js +0 -1
  777. package/apps/console/.next/static/chunks/856-71ac9b098091e245.js +0 -1
  778. package/apps/console/.next/static/chunks/app/api/agent/route-35bf83db0bc9ad19.js +0 -1
  779. package/apps/console/.next/static/chunks/app/api/approvals/route-35bf83db0bc9ad19.js +0 -1
  780. package/apps/console/.next/static/chunks/app/api/approvals/stream/route-35bf83db0bc9ad19.js +0 -1
  781. package/apps/console/.next/static/chunks/app/api/chat/route-35bf83db0bc9ad19.js +0 -1
  782. package/apps/console/.next/static/chunks/app/api/computer-use/[id]/route-35bf83db0bc9ad19.js +0 -1
  783. package/apps/console/.next/static/chunks/app/api/computer-use/route-35bf83db0bc9ad19.js +0 -1
  784. package/apps/console/.next/static/chunks/app/api/contacts/route-35bf83db0bc9ad19.js +0 -1
  785. package/apps/console/.next/static/chunks/app/api/conversations/route-35bf83db0bc9ad19.js +0 -1
  786. package/apps/console/.next/static/chunks/app/api/demo/route-35bf83db0bc9ad19.js +0 -1
  787. package/apps/console/.next/static/chunks/app/api/health/route-35bf83db0bc9ad19.js +0 -1
  788. package/apps/console/.next/static/chunks/app/api/inbox/route-35bf83db0bc9ad19.js +0 -1
  789. package/apps/console/.next/static/chunks/app/api/inbox/stream/route-35bf83db0bc9ad19.js +0 -1
  790. package/apps/console/.next/static/chunks/app/api/leedab/channels/status/route-35bf83db0bc9ad19.js +0 -1
  791. package/apps/console/.next/static/chunks/app/api/leedab/channels/telegram/connect/route-35bf83db0bc9ad19.js +0 -1
  792. package/apps/console/.next/static/chunks/app/api/leedab/channels/whatsapp/connect/route-35bf83db0bc9ad19.js +0 -1
  793. package/apps/console/.next/static/chunks/app/api/leedab/license/route-35bf83db0bc9ad19.js +0 -1
  794. package/apps/console/.next/static/chunks/app/api/leedab/providers/route-35bf83db0bc9ad19.js +0 -1
  795. package/apps/console/.next/static/chunks/app/api/leedab/sessions/[id]/route-35bf83db0bc9ad19.js +0 -1
  796. package/apps/console/.next/static/chunks/app/api/leedab/sessions/route-35bf83db0bc9ad19.js +0 -1
  797. package/apps/console/.next/static/chunks/app/api/leedab/team/[id]/route-35bf83db0bc9ad19.js +0 -1
  798. package/apps/console/.next/static/chunks/app/api/leedab/team/route-35bf83db0bc9ad19.js +0 -1
  799. package/apps/console/.next/static/chunks/app/api/leedab/vault/route-35bf83db0bc9ad19.js +0 -1
  800. package/apps/console/.next/static/chunks/app/api/leedab/workflows/route-35bf83db0bc9ad19.js +0 -1
  801. package/apps/console/.next/static/chunks/app/api/openclaw/status/route-35bf83db0bc9ad19.js +0 -1
  802. package/apps/console/.next/static/chunks/app/api/pack/route-35bf83db0bc9ad19.js +0 -1
  803. package/apps/console/.next/static/chunks/app/api/preferences/route-35bf83db0bc9ad19.js +0 -1
  804. package/apps/console/.next/static/chunks/app/api/routing/route-35bf83db0bc9ad19.js +0 -1
  805. package/apps/console/.next/static/chunks/app/api/runs/route-35bf83db0bc9ad19.js +0 -1
  806. package/apps/console/.next/static/chunks/app/api/templates/route-35bf83db0bc9ad19.js +0 -1
  807. package/apps/console/.next/static/chunks/app/api/uploads/[id]/route-35bf83db0bc9ad19.js +0 -1
  808. package/apps/console/.next/static/chunks/app/api/uploads/route-35bf83db0bc9ad19.js +0 -1
  809. package/apps/console/.next/static/chunks/app/api/usage/route-35bf83db0bc9ad19.js +0 -1
  810. package/apps/console/.next/static/chunks/app/api/webhooks/workflow/[id]/route-35bf83db0bc9ad19.js +0 -1
  811. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/[runId]/route-35bf83db0bc9ad19.js +0 -1
  812. package/apps/console/.next/static/chunks/app/api/workflows/[id]/history/route-35bf83db0bc9ad19.js +0 -1
  813. package/apps/console/.next/static/chunks/app/api/workflows/[id]/route-35bf83db0bc9ad19.js +0 -1
  814. package/apps/console/.next/static/chunks/app/api/workflows/[id]/run/route-35bf83db0bc9ad19.js +0 -1
  815. package/apps/console/.next/static/chunks/app/api/workflows/route-35bf83db0bc9ad19.js +0 -1
  816. package/apps/console/.next/static/chunks/app/layout-6be76a69bef30b9d.js +0 -1
  817. package/apps/console/.next/static/chunks/app/page-4b700096636d1cae.js +0 -1
  818. package/apps/console/.next/static/css/5c5c01673617cce6.css +0 -3
  819. package/apps/console/.next/static/waL1Qm5zCQrO1oi52jYdI/_buildManifest.js +0 -1
  820. /package/apps/console/.next/standalone/.next/static/{waL1Qm5zCQrO1oi52jYdI → cSGyydhlqn2VGaYXt0uuW}/_ssgManifest.js +0 -0
  821. /package/apps/console/.next/static/{waL1Qm5zCQrO1oi52jYdI → cSGyydhlqn2VGaYXt0uuW}/_ssgManifest.js +0 -0
@@ -0,0 +1,1287 @@
1
+ exports.id=854,exports.ids=[854],exports.modules={7506:(a,b,c)=>{"use strict";c.d(b,{sb:()=>j});var d=c(73024),e=c(76760),f=c.n(e),g=c(57477);let h=/^[a-z0-9](?:[a-z0-9-]{0,58}[a-z0-9])?$/,i=/^[a-z][a-z0-9_]{1,40}\.[a-z][a-z0-9_]{1,40}$/;async function j(a){try{if(!h.test(a.clientId))return{ok:!1,error:`Invalid clientId: ${a.clientId}`};if(!i.test(a.agent))return{ok:!1,error:`Invalid agent format: ${a.agent} (expected agent.tool)`};if(!await (0,g.xB)(a.clientId))return{ok:!1,error:`No brain for ${a.clientId} — audit not written`};let b={...a,inputSummary:function(a){if(!a)return;let b={};for(let[c,d]of Object.entries(a))"string"==typeof d?b[c]=d.length>200?`${d.slice(0,200)}…[+${d.length-200} chars]`:d:"number"==typeof d||"boolean"==typeof d||null===d?b[c]=d:Array.isArray(d)?b[c]=`[array length=${d.length}]`:"object"==typeof d?b[c]=`[object keys=${Object.keys(d).length}]`:b[c]=`[${typeof d}]`;return b}(a.inputSummary)},c=function(a,b){let c=`${b.getUTCFullYear()}-${String(b.getUTCMonth()+1).padStart(2,"0")}`;return f().join((0,g.Ip)(a),"_inbox",`audit-${c}.jsonl`)}(a.clientId,new Date(a.ts));await d.promises.mkdir(f().dirname(c),{recursive:!0});let e=JSON.stringify(b)+"\n";return await d.promises.appendFile(c,e,"utf8"),{ok:!0,path:c,bytes:Buffer.byteLength(e,"utf8")}}catch(a){return{ok:!1,error:a.message}}}},11702:(a,b,c)=>{"use strict";c.d(b,{AU:()=>h,xH:()=>g});var d=c(10641),e=c(90897);function f(a){return a.ok?null:"agentId"in a?d.NextResponse.json({error:a.error,message:a.message,clientId:a.clientId,agentId:a.agentId},{status:a.status}):"reason"in a&&void 0!==a.reason?d.NextResponse.json({error:a.error,reason:a.reason,message:a.message},{status:a.status}):d.NextResponse.json({error:a.error,message:a.message},{status:a.status})}async function g(){return f(await (0,e.b)())}async function h(a,b){return f(await (0,e.s)(a,b))}},54338:(a,b,c)=>{"use strict";c.d(b,{DF:()=>w,EK:()=>u,FV:()=>r,IJ:()=>e,Jg:()=>s,MC:()=>i,Md:()=>h,Oz:()=>g,SJ:()=>p,TM:()=>o,V_:()=>l,dC:()=>k,es:()=>f,jB:()=>m,ke:()=>t,o3:()=>v,pz:()=>q,qT:()=>n,th:()=>j});var d=c(57477);function e(a,b){let c=b.triggerType??"webhook",e="schedule"===c?{parameters:{rule:{interval:[{field:"cronExpression",expression:b.cronSchedule??"0 9 * * *"}]}},id:"trigger",name:"Schedule",type:"n8n-nodes-base.scheduleTrigger",typeVersion:1,position:[240,300]}:"manual"===c?{parameters:{},id:"trigger",name:"Manual",type:"n8n-nodes-base.manualTrigger",typeVersion:1,position:[240,300]}:{parameters:{path:`${a.clientId}-${(0,d.B0)(b.name)}`,options:{}},id:"trigger",name:"Webhook",type:"n8n-nodes-base.webhook",typeVersion:1.1,position:[240,300],webhookId:`${a.clientId}-${(0,d.B0)(b.name)}`};return JSON.stringify({name:`${a.displayName} — ${b.name}`,nodes:[e,{parameters:{jsCode:`// TODO: Implementation agent — fill in the action.
2
+ // Description: ${b.description}
3
+ // Customer: ${a.displayName} (${a.clientId})
4
+
5
+ return $input.all();`},id:"action",name:"Placeholder action",type:"n8n-nodes-base.code",typeVersion:2,position:[460,300]}],connections:{[e.name]:{main:[[{node:"Placeholder action",type:"main",index:0}]]}},active:!1,settings:{executionOrder:"v1"},versionId:"scaffold",meta:{leedabClientId:a.clientId,leedabIndustry:a.industry,generatedBy:"implementation-agent.scaffold_n8n_workflow",generatedAt:(0,d.st)(),description:b.description},pinData:{},tags:[{name:"leedab"},{name:a.clientId}]},null,2)}function f(a,b){return`---
6
+ type: skill-override
7
+ agent_id: ${b.agentId}
8
+ client_id: ${a.clientId}
9
+ created: ${(0,d.st)()}
10
+ status: draft
11
+ ---
12
+
13
+ # ${b.agentId} — ${a.displayName} override
14
+
15
+ > Per-customer system-prompt append block. Once approved, paste this body
16
+ > into \`clients/${a.clientId}/manifest.json\` under
17
+ > \`overrides.${b.agentId}.append_block\`. The console's
18
+ > \`buildSystemPrompt\` will append it to the agent's base spec at runtime.
19
+
20
+ ## Why this override exists
21
+
22
+ ${b.reason.trim()}
23
+
24
+ ## Customer-specific guidance for ${b.agentId}
25
+
26
+ ${b.guidance?.trim()??`(Implementation agent — fill in. Be concrete: name the systems, terminology, decision rules, and escalation paths specific to ${a.displayName}. Anything that should change about the standard ${b.agentId} behaviour goes here.)`}
27
+
28
+ ## Hard rules added on top of base spec
29
+
30
+ 1.
31
+ 2.
32
+ 3.
33
+
34
+ ## When to escalate
35
+
36
+ (What signals warrant kicking this back to Delivery / Implementation rather than ${b.agentId} acting alone for ${a.displayName}?)
37
+
38
+ ## Examples (good / bad)
39
+
40
+ **Good response shape:**
41
+
42
+ (Concrete example specific to this customer's data + workflows.)
43
+
44
+ **Bad response shape:**
45
+
46
+ (What ${b.agentId} should NEVER do for this customer — drawn from any prior incidents.)
47
+
48
+ ## Sign-offs
49
+
50
+ - [ ] Delivery
51
+ - [ ] Onboarding
52
+ - [ ] Customer primary contact (acknowledged)
53
+
54
+ ---
55
+
56
+ _Generated by Implementation agent. After sign-off, copy the body (everything below the frontmatter) into the manifest \`append_block\`._
57
+ `}function g(a,b){let c=(0,d.B0)(b.name)||"migration";return`// One-time migration: ${b.source} → ${b.target}
58
+ // Customer: ${a.displayName} (${a.clientId})
59
+ // Generated: ${(0,d.st)()}
60
+ // Run once: \`npx tsx scripts/migrations/${a.clientId}-${c}.ts\`
61
+ //
62
+ // Implementation agent — fill in the read + transform + write steps.
63
+ // Hard rules from the spec:
64
+ // - Test on real data first (with customer permission), not synthetic.
65
+ // - Idempotent: re-running should not duplicate rows.
66
+ // - Logs every batch — \`console.log\` to stdout, capture to a file.
67
+ // - Never store customer credentials in this file. Use env vars.
68
+
69
+ ${b.description?`// Description: ${b.description}
70
+ //
71
+ `:""}import { readFile, writeFile, mkdir } from "node:fs/promises";
72
+ import path from "node:path";
73
+
74
+ type SourceRow = {
75
+ // TODO: shape of one row from ${b.source}
76
+ };
77
+
78
+ type TargetRow = {
79
+ // TODO: shape of one row in ${b.target}
80
+ };
81
+
82
+ async function readSource(): Promise<SourceRow[]> {
83
+ // TODO: read from ${b.source}
84
+ // Example for CSV/JSON-on-disk:
85
+ // const raw = await readFile(process.env.MIGRATION_SOURCE_PATH ?? "input.json", "utf8");
86
+ // return JSON.parse(raw);
87
+ throw new Error("readSource() not implemented");
88
+ }
89
+
90
+ function transform(row: SourceRow): TargetRow | null {
91
+ // TODO: map source → target. Return null to skip a row (with a logged reason).
92
+ void row;
93
+ throw new Error("transform() not implemented");
94
+ }
95
+
96
+ async function writeTarget(rows: TargetRow[]): Promise<void> {
97
+ // TODO: write to ${b.target}.
98
+ // Example for the per-customer brain:
99
+ // const outDir = path.resolve(process.env.HOME ?? "", "leedab-brains/${a.clientId}/_inbox/migrations");
100
+ // await mkdir(outDir, { recursive: true });
101
+ // await writeFile(path.join(outDir, "${c}.json"), JSON.stringify(rows, null, 2));
102
+ void rows;
103
+ void path;
104
+ void mkdir;
105
+ void writeFile;
106
+ throw new Error("writeTarget() not implemented");
107
+ }
108
+
109
+ async function main() {
110
+ console.log(\`[${c}] reading from ${b.source}\`);
111
+ const source = await readSource();
112
+ console.log(\`[${c}] read \${source.length} rows\`);
113
+
114
+ const transformed: TargetRow[] = [];
115
+ let skipped = 0;
116
+ for (const row of source) {
117
+ const out = transform(row);
118
+ if (out === null) {
119
+ skipped++;
120
+ continue;
121
+ }
122
+ transformed.push(out);
123
+ }
124
+ console.log(\`[${c}] transformed \${transformed.length} rows, skipped \${skipped}\`);
125
+
126
+ await writeTarget(transformed);
127
+ console.log(\`[${c}] wrote \${transformed.length} rows to ${b.target}\`);
128
+ }
129
+
130
+ main().catch((err) => {
131
+ console.error(\`[${c}] failed:\`, err);
132
+ process.exit(1);
133
+ });
134
+
135
+ void readFile; // silence unused — readSource may want it
136
+ `}function h(a,b){return`---
137
+ type: content-brief
138
+ format: seo-blog
139
+ client_id: ${a.clientId}
140
+ created: ${(0,d.st)()}
141
+ status: draft
142
+ review_required: yes
143
+ ---
144
+
145
+ # SEO brief — ${b.topic}
146
+
147
+ > Drafted by Content agent on ${(0,d.dR)()} for ${a.displayName}${a.industry?` (${a.industry})`:""}.
148
+ > Search-intent first; problem-first; product second.
149
+
150
+ ## Target keyword
151
+
152
+ ${b.primaryKeyword??`(Primary keyword the SMB operator would actually type — not what we wish they typed. Example shape: "how to ${b.topic.toLowerCase()} for ${a.industry??"small business"}")`}
153
+
154
+ ## Search intent
155
+
156
+ (What is the reader trying to do? Are they: comparing options, troubleshooting, learning a concept, looking to buy? Be specific — bad targeting comes from skipping this step.)
157
+
158
+ ## Audience
159
+
160
+ ${b.audience??`(Who specifically — e.g. "operations manager at a 12-truck logistics fleet" not "small businesses")`}
161
+
162
+ ## Title (H1)
163
+
164
+ (Keyword-rich but not stuffed. ≤ 60 chars for SERP fit.)
165
+
166
+ ## Meta description
167
+
168
+ (155 chars max. One promise + one specific outcome.)
169
+
170
+ ## Hook (first 2 paragraphs)
171
+
172
+ (Open with the pain. Specific scenario, not "small businesses with manual processes". The product enters AFTER the reader has nodded along for at least two paragraphs.)
173
+
174
+ ## Outline
175
+
176
+ | H2 | One-line description |
177
+ |---|---|
178
+ | | |
179
+ | | |
180
+ | | |
181
+ | | |
182
+
183
+ ## Word count target
184
+
185
+ (800–1500 for most. 2000+ only for pillar / cornerstone content. Justify if claiming pillar status.)
186
+
187
+ ## Internal links
188
+
189
+ - (Existing LeedAB content this should link to — case studies, comparison pages, related how-tos)
190
+
191
+ ## CTA
192
+
193
+ (What does the reader do at the end? Trial sign-up? Demo request? Read another article?)
194
+
195
+ ## Hard rules check
196
+
197
+ - [ ] Search intent clearly named (not "people who care about X")
198
+ - [ ] Concrete scenario in the hook (numbers, geography, tools)
199
+ - [ ] Problem-first opening — product enters paragraph 3 or later
200
+ - [ ] Internal links to existing content, not invented placeholder pages
201
+ - [ ] CTA matches the search intent (trial CTA on a how-to that solved their problem; demo CTA on a comparison piece)
202
+
203
+ ---
204
+
205
+ _Generated by Content agent. Hand off to writer or refine in next turn._
206
+ `}function i(a,b){return`---
207
+ type: product-spec
208
+ client_id: ${a.clientId}
209
+ created: ${(0,d.st)()}
210
+ status: draft
211
+ review_required: yes
212
+ ---
213
+
214
+ # Feature: ${b.feature}
215
+
216
+ > Drafted by Product agent on ${(0,d.dR)()}. Engineers should be able to build from this without further clarification.
217
+
218
+ ## Problem
219
+
220
+ ${b.problem.trim()}
221
+
222
+ ${b.audience?`**Whose problem:** ${b.audience}
223
+
224
+ `:""}**How painful, how frequent:** (specific — "12 spreadsheet edits/day" not "a lot of manual work")
225
+
226
+ ## Proposed solution
227
+
228
+ (One paragraph. Include the shape of the UX. Do NOT list technical details here — those go under Technical considerations.)
229
+
230
+ ## User stories
231
+
232
+ - As a [role], I want [capability], so that [outcome].
233
+ - As a [role], I want [capability], so that [outcome].
234
+
235
+ ## Acceptance criteria
236
+
237
+ (Specific, testable, true/false statements. Each one must be observable.)
238
+
239
+ 1.
240
+ 2.
241
+ 3.
242
+
243
+ ## UX flow
244
+
245
+ (Prose or mermaid diagram. Walk through the primary path. Note key decision points.)
246
+
247
+ ## Local-first impact
248
+
249
+ - **Where does this data live?** (default: on the user's machine)
250
+ - **Does this require cloud infrastructure?** (if yes, justify and provide local fallback)
251
+ - **What happens offline?** (must degrade gracefully)
252
+ - **What data, if any, crosses the network?** (user must understand and consent)
253
+
254
+ ## Technical considerations
255
+
256
+ - Data storage:
257
+ - AI provider implications:
258
+ - Performance expectations:
259
+ - Failure modes:
260
+
261
+ ## Edge cases
262
+
263
+ -
264
+ -
265
+
266
+ ## Out of scope (explicit)
267
+
268
+ -
269
+
270
+ ## Open questions
271
+
272
+ (Anything the founders need to weigh in on before this is buildable.)
273
+
274
+ -
275
+
276
+ ## Approvals
277
+
278
+ - [ ] Engineering (buildable as specified)
279
+ - [ ] Founders (problem worth solving + scope appropriate)
280
+
281
+ ---
282
+
283
+ _Generated by Product agent. Local-first is non-negotiable — every feature must answer the four data-locality questions._
284
+ `}function j(a,b){return`---
285
+ type: adr
286
+ status: proposed
287
+ client_id: ${a.clientId}
288
+ created: ${(0,d.st)()}
289
+ date: ${(0,d.dR)()}
290
+ ---
291
+
292
+ # ADR — ${b.title}
293
+
294
+ > Architecture Decision Record. Drafted by Engineering agent on ${(0,d.dR)()}.
295
+
296
+ ## Status
297
+
298
+ Proposed (not yet accepted).
299
+
300
+ ## Context
301
+
302
+ ${b.context.trim()}
303
+
304
+ ## Decision
305
+
306
+ ${b.decision.trim()}
307
+
308
+ ## Consequences
309
+
310
+ ### Positive
311
+
312
+ -
313
+
314
+ ### Negative / cost
315
+
316
+ -
317
+
318
+ ### Neutral
319
+
320
+ -
321
+
322
+ ## Alternatives considered
323
+
324
+ ${b.alternatives??"(List alternatives weighed. Each one: what was it, why was it rejected, what would change the answer.)"}
325
+
326
+ ## Architectural principle check
327
+
328
+ - [ ] **Local-first:** customer data stays on customer's machine; cloud is opt-in and disclosed
329
+ - [ ] **Provider-agnostic:** doesn't hard-code a single AI provider into core paths
330
+ - [ ] **Graceful degradation:** handles no-internet, provider downtime, rate limits, timeouts
331
+ - [ ] **Observable:** action is inspectable in the local audit trail
332
+ - [ ] **Security first:** no path-traversal, no credentials in repo, typed errors at boundaries
333
+
334
+ ## Implementation plan
335
+
336
+ (High-level. Detailed PRD lives in Product's output.)
337
+
338
+ 1.
339
+ 2.
340
+ 3.
341
+
342
+ ## References
343
+
344
+ - Cross-references to related ADRs:
345
+ - Spec / PRD that prompted this:
346
+
347
+ ---
348
+
349
+ _Generated by Engineering agent. Once accepted, change \`status: proposed\` → \`status: accepted\` and add the acceptance date._
350
+ `}function k(a,b){return`---
351
+ type: component-spec
352
+ client_id: ${a.clientId}
353
+ created: ${(0,d.st)()}
354
+ status: draft
355
+ ---
356
+
357
+ # Component — ${b.name}
358
+
359
+ > Drafted by Frontend agent on ${(0,d.dR)()}. Component contract first; implementation follows.
360
+
361
+ ## Purpose
362
+
363
+ ${b.purpose.trim()}
364
+
365
+ ## Component contract
366
+
367
+ \`\`\`tsx
368
+ interface ${b.name}Props {
369
+ // TODO: required props (label, value, onAction, etc.)
370
+ // TODO: optional props with defaults
371
+ // TODO: variants if any: variant?: "primary" | "ghost" | "danger";
372
+ }
373
+ \`\`\`
374
+
375
+ ## Variants
376
+
377
+ ${b.variants??`(List visual variants — primary / ghost / danger / etc — with the design intent for each. If none, write "single variant".)`}
378
+
379
+ ## States
380
+
381
+ - Default
382
+ - Hover (interactive elements only)
383
+ - Focus (must be visually distinct from hover)
384
+ - Active / pressed
385
+ - Disabled
386
+ - Loading
387
+ - Error / invalid
388
+
389
+ ## Accessibility checklist
390
+
391
+ - [ ] Keyboard focus is visible (\`outline\` or ring; never \`outline: none\` without a replacement)
392
+ - [ ] Tab order is logical
393
+ - [ ] ARIA label on icon-only buttons (\`aria-label\` or visually hidden text)
394
+ - [ ] \`role\` and \`aria-*\` for custom widgets (combobox, dialog, etc)
395
+ - [ ] Colour contrast ≥ 4.5:1 for normal text, 3:1 for large text
396
+ - [ ] Works with screen reader (announce state changes)
397
+
398
+ ## Server vs client component
399
+
400
+ - **Decision:** [Server | Client]
401
+ - **Reason:** (Server by default. Client only if event handlers, browser APIs, or React state/effects.)
402
+
403
+ ## Performance
404
+
405
+ - [ ] Images via \`next/image\` with explicit width/height
406
+ - [ ] Fonts via \`next/font\` (no layout shift)
407
+ - [ ] No \`use client\` if Server Component would suffice
408
+ - [ ] Bundle impact estimated if adding a new dependency
409
+
410
+ ## Test plan
411
+
412
+ - [ ] React Testing Library: contract (props → DOM)
413
+ - [ ] React Testing Library: state transitions (default → hover → active → disabled)
414
+ - [ ] Playwright: keyboard navigation
415
+ - [ ] Playwright: screen reader announce (where supported)
416
+
417
+ ## Design tokens used
418
+
419
+ - Colour:
420
+ - Spacing:
421
+ - Typography:
422
+ - Radius / shadow:
423
+
424
+ ---
425
+
426
+ _Generated by Frontend agent. Implementation follows the contract above; deviations require updating the contract first._
427
+ `}function l(a,b){return`---
428
+ type: endpoint-spec
429
+ client_id: ${a.clientId}
430
+ created: ${(0,d.st)()}
431
+ status: draft
432
+ ---
433
+
434
+ # ${b.method} ${b.path}
435
+
436
+ > Drafted by Backend agent on ${(0,d.dR)()}. Type the boundary; errors are data; safe paths everywhere.
437
+
438
+ ## Purpose
439
+
440
+ ${b.purpose.trim()}
441
+
442
+ ## Authentication
443
+
444
+ - [ ] License gate (\`requireLicense\`)
445
+ - [ ] Per-customer manifest gate (\`requireLicensedAgent\`) — only if endpoint serves a specific agent's tool
446
+ - [ ] Auth shape: [JWT | session | API token | public]
447
+
448
+ ## Request
449
+
450
+ ### Headers
451
+
452
+ - \`Content-Type: application/json\` (for body-bearing methods)
453
+ - (Other required headers)
454
+
455
+ ### Path params
456
+
457
+ (if any)
458
+
459
+ ### Query params
460
+
461
+ (if any)
462
+
463
+ ### Body
464
+
465
+ \`\`\`ts
466
+ import { z } from "zod";
467
+
468
+ const Body = z.object({
469
+ clientId: z.string().regex(/^[a-z0-9](?:[a-z0-9-]{0,58}[a-z0-9])?$/),
470
+ // TODO: required fields
471
+ // TODO: optional fields
472
+ });
473
+ type Body = z.infer<typeof Body>;
474
+ \`\`\`
475
+
476
+ ## Response
477
+
478
+ ### 200 OK
479
+
480
+ \`\`\`ts
481
+ type Response = {
482
+ ok: true;
483
+ // TODO: response shape
484
+ };
485
+ \`\`\`
486
+
487
+ ### Error responses
488
+
489
+ \`\`\`ts
490
+ type ApiError =
491
+ | { ok: false; error: "INVALID_BODY"; details: string }
492
+ | { ok: false; error: "NOT_FOUND"; resource: string }
493
+ | { ok: false; error: "FORBIDDEN"; reason: string };
494
+ \`\`\`
495
+
496
+ | Status | Code | When |
497
+ |---|---|---|
498
+ | 400 | INVALID_BODY | Body fails Zod validation |
499
+ | 401 | NO_LICENSE | License gate refused |
500
+ | 403 | FORBIDDEN | Agent not licensed for this customer |
501
+ | 404 | NOT_FOUND | clientId / record not found |
502
+ | 500 | INTERNAL | Unhandled — should never reach here in tests |
503
+
504
+ ## Side effects
505
+
506
+ - Filesystem:
507
+ - Database:
508
+ - External calls:
509
+ - Audit trail entry: (always — name the event type)
510
+
511
+ ## Path safety
512
+
513
+ - [ ] All filesystem paths go through \`resolvedFile()\` / \`assertSafePath()\` from \`lib/agent-tools/vault.ts\`
514
+ - [ ] No string concatenation of \`clientId\` into a path without slug-validation
515
+ - [ ] No \`..\` or absolute paths permitted in user input
516
+
517
+ ## Streaming
518
+
519
+ - [ ] If response can take > 2s, use Server-Sent Events
520
+ - [ ] Final event: \`data: {"type":"done"}\` or \`data: {"type":"error","value":"..."}\`
521
+
522
+ ## Test plan
523
+
524
+ - [ ] Happy path
525
+ - [ ] Each error response (400 / 401 / 403 / 404)
526
+ - [ ] Path traversal attempt rejected (\`clientId: "../etc"\`)
527
+ - [ ] Large body rejected (over a sane cap)
528
+ - [ ] Concurrent calls don't corrupt shared state
529
+
530
+ ---
531
+
532
+ _Generated by Backend agent. Type the boundary, name the errors._
533
+ `}function m(a,b){let c=b.incident??"service degraded";return`---
534
+ type: runbook
535
+ client_id: ${a.clientId}
536
+ service: ${b.service}
537
+ created: ${(0,d.st)()}
538
+ status: draft
539
+ ---
540
+
541
+ # Runbook — ${b.service}: ${c}
542
+
543
+ > Drafted by DevOps agent on ${(0,d.dR)()}. Designed for a founder at 2am — every step concrete, no jargon.
544
+
545
+ ## Symptom
546
+
547
+ (What does the operator / customer see? Specific — "dashboard returns 502 on /api/chat" not "things broken")
548
+
549
+ ## Severity
550
+
551
+ - [ ] **P0** — customer data at risk OR all customers down
552
+ - [ ] **P1** — one customer fully blocked, or core agent flow broken
553
+ - [ ] **P2** — degraded UX, workaround exists
554
+ - [ ] **P3** — annoying but non-urgent
555
+
556
+ ## First-30-seconds triage
557
+
558
+ 1. **Is it actually broken?**
559
+ \`\`\`bash
560
+ # health check (curl, ping, log tail — ONE command)
561
+ \`\`\`
562
+ 2. **Is it customer-specific or platform-wide?**
563
+ \`\`\`bash
564
+ # how to tell (e.g. check more than one clientId)
565
+ \`\`\`
566
+
567
+ ## Diagnosis
568
+
569
+ (What logs / dashboards / queries narrow it down? Each step a single command.)
570
+
571
+ \`\`\`bash
572
+ # Check 1
573
+ # Check 2
574
+ # Check 3
575
+ \`\`\`
576
+
577
+ ## Mitigation (immediate, reversible)
578
+
579
+ (Get the customer back to working state. Reversible — don't truncate tables, don't push hot fixes.)
580
+
581
+ \`\`\`bash
582
+ # Action 1 — what it does + why it's safe
583
+ \`\`\`
584
+
585
+ ## Resolution (root cause fix)
586
+
587
+ (After mitigation. May require a code change + deploy.)
588
+
589
+ \`\`\`bash
590
+ # Action 1
591
+ # Action 2
592
+ \`\`\`
593
+
594
+ ## Verification
595
+
596
+ \`\`\`bash
597
+ # How to confirm the issue is actually fixed (not just masked)
598
+ \`\`\`
599
+
600
+ ## Postmortem trigger
601
+
602
+ - [ ] P0 / P1 always get a postmortem within 48h
603
+ - [ ] Postmortem owner: DevOps (incident commander)
604
+ - [ ] Add learnings + new monitor / runbook step to this file
605
+
606
+ ## Known false positives
607
+
608
+ (Cases that look like this but aren't — don't waste 2am minutes here)
609
+
610
+ -
611
+
612
+ ---
613
+
614
+ _Generated by DevOps agent. Update this runbook with anything you learned during the incident._
615
+ `}function n(a,b){return`---
616
+ type: po-brief
617
+ client_id: ${a.clientId}
618
+ supplier: ${b.supplier}
619
+ created: ${(0,d.st)()}
620
+ status: draft
621
+ review_required: yes
622
+ ---
623
+
624
+ # PO brief — ${a.displayName} → ${b.supplier}
625
+
626
+ > Drafted by Procurement agent on ${(0,d.dR)()}. **Never bypass the PO system.** Confirm match against existing supplier contract before sending.
627
+
628
+ ## Items requested
629
+
630
+ ${b.items.trim()}
631
+
632
+ ## Commercial terms
633
+
634
+ - **Supplier:** ${b.supplier}
635
+ - **Budget:** ${b.budget??"(operator: confirm against contract / market quote)"}
636
+ - **Urgency:** ${b.urgency??"routine"}
637
+ - **Payment terms:** (operator: pull from supplier contract — Net 30 / Net 60 / on receipt)
638
+ - **Currency:** (default to AUD unless contract specifies otherwise)
639
+
640
+ ## Required checks (operator confirms each)
641
+
642
+ - [ ] PO number generated from internal sequence
643
+ - [ ] Supplier on approved-vendor list
644
+ - [ ] Budget approved by spend authority
645
+ - [ ] Items match a current contract / RFQ — no off-contract spend without approval
646
+ - [ ] Delivery address + receiving contact confirmed
647
+ - [ ] Insurance / compliance docs current (if vendor type requires)
648
+
649
+ ## Risks
650
+
651
+ - **Off-contract risk:** if any line item isn't on contract, escalate to Finance before send.
652
+ - **Supplier solvency:** check the last 3 invoices were paid on time both directions before issuing.
653
+ - **Spec ambiguity:** every line item has a unit + quantity + spec. Vague briefs come back wrong.
654
+
655
+ ## Approval chain
656
+
657
+ - [ ] Procurement (drafted)
658
+ - [ ] Finance (budget + spend authority)
659
+ - [ ] Operations (operational fit)
660
+ - [ ] Founder (if > approval threshold or off-contract)
661
+
662
+ ---
663
+
664
+ _Generated by Procurement agent. Suppliers are SAP-driven for ${a.displayName} — never bypass the PO system._
665
+ `}function o(a,b){let c=b.urgency??"exception";return`---
666
+ type: dispatch-brief
667
+ client_id: ${a.clientId}
668
+ urgency: ${c}
669
+ created: ${(0,d.st)()}
670
+ status: draft
671
+ review_required: yes
672
+ ---
673
+
674
+ # Dispatch brief — ${a.displayName}
675
+
676
+ > Drafted by Ops agent on ${(0,d.dR)()}. **Never auto-action exceptions.** Surface to the human; let them choose.
677
+
678
+ ## Scenario
679
+
680
+ ${b.scenario.trim()}
681
+
682
+ ## Severity
683
+
684
+ - [ ] **P0** — service-level breach OR customer escalation in progress
685
+ - [ ] **Exception** — abnormal but recoverable within shift
686
+ - [ ] **Routine** — exception is daily-shape, no escalation needed
687
+
688
+ (Auto-tagged: ${c}. Operator confirms or adjusts.)
689
+
690
+ ## Customer-side impact
691
+
692
+ ${b.customerImpact??'(operator: name the customer + the SLA touched. "Coles", "Woolworths", "3-hour delivery window" etc.)'}
693
+
694
+ ## Triage steps (in order)
695
+
696
+ 1. **Confirm dispatch ID = SAP order ID.** No exception action without ID match.
697
+ 2. **Read the manifest** — what was on the truck, who picked, which leg failed.
698
+ 3. **Driver call** — get the driver's account in their words. Quote verbatim if writing customer-side.
699
+ 4. **Customer-side comms decision** — proactive notify (preferred) vs. wait-and-see.
700
+ 5. **Resolution path** — reroute / replace / refund / dispute. Pick one before talking to customer.
701
+
702
+ ## Resolution options
703
+
704
+ - **Reroute:** another truck picks up the leg — confirm capacity + ETA before promising.
705
+ - **Replace:** issue replacement freight from depot — only if customer accepts the delay.
706
+ - **Refund:** financial-only resolution — escalate to Finance for sign-off.
707
+ - **Dispute:** customer-on-customer (e.g. wrong-address claim) — escalate to CX with documentation.
708
+
709
+ ## Escalation triggers
710
+
711
+ - Anything over $5k impact → Mina before action
712
+ - Anything customer-visible → Mina before action
713
+ - Anything touching a contractual SLA → Mina before action
714
+ - 5am Sydney shift handoff to NZ — flag in dispatch before delegation
715
+
716
+ ## Customer-side reply (if proactive notify chosen)
717
+
718
+ (Tone: terse, blue-collar, time-zoned Sydney. Sign-off: dispatch operator's name + role. No corporate-speak.)
719
+
720
+ \`\`\`
721
+ [Customer], heads up — [scenario in 1 line].
722
+ [Resolution path] — ETA [time] Sydney.
723
+ Will update if anything changes.
724
+
725
+ [Operator name], dispatch
726
+ \`\`\`
727
+
728
+ ---
729
+
730
+ _Generated by Ops agent. Surface, don't auto-action. Cross-customer isolation matters here more than usual — driver names never leak to the wrong customer._
731
+ `}function p(a,b){let c=b.length??5,e=b.channel??"lifecycle";return`---
732
+ type: email-sequence-brief
733
+ client_id: ${a.clientId}
734
+ channel: ${e}
735
+ length: ${c}
736
+ created: ${(0,d.st)()}
737
+ status: draft
738
+ review_required: yes
739
+ ---
740
+
741
+ # Email sequence brief — ${a.displayName}
742
+
743
+ > Drafted by Email agent on ${(0,d.dR)()}. **Drafts only — does not deploy.** Sequence ships through the licensed ESP after operator review.
744
+
745
+ ## Audience
746
+
747
+ ${b.audience.trim()}
748
+
749
+ ## Goal of the sequence
750
+
751
+ ${b.goal.trim()}
752
+
753
+ ## Sequence shape — ${c} emails over ${"cold"===e?"10-14 days":"winback"===e?"7 days":"30-90 days"}
754
+
755
+ | # | Send (relative) | Subject angle | One-line body intent | CTA |
756
+ |---|---|---|---|---|
757
+ ${Array.from({length:c},(a,b)=>{let c="cold"===e?`Day ${2*b}`:"winback"===e?`Day ${b+1}`:`Day ${[0,3,7,14,30,60,90][Math.min(b,6)]}`;return`| ${b+1} | ${c} | (operator: hook angle) | (one line) | (specific) |`}).join("\n")}
758
+
759
+ ## Hard rules
760
+
761
+ - **One CTA per email.** Multiple CTAs = none performs.
762
+ - **Subject under 50 chars.** Mobile clipping is real.
763
+ - **First sentence is NOT the greeting.** Hook in line 1, not "I hope this finds you well."
764
+ - **No false personalisation.** "I noticed you {{trait}}" is fine if true; never fabricate.
765
+ - **Unsubscribe in every email** (compliance + trust signal).
766
+ - **No multi-variate per email.** A/B test ONE thing per send.
767
+
768
+ ## Deliverability checklist
769
+
770
+ - [ ] SPF / DKIM / DMARC verified for sender domain
771
+ - [ ] Plain-text fallback present (60%+ of opens are mobile dark-mode now)
772
+ - [ ] No image-only emails (looks like spam)
773
+ - [ ] Sender name + reply-to is a person, not "noreply"
774
+ - [ ] Sequence-level cap: max 1 email/day per recipient
775
+
776
+ ## Performance baselines (industry${a.industry?` — ${a.industry}`:""})
777
+
778
+ - Open rate: 25-40% acceptable, < 20% = subject problem
779
+ - Reply rate (cold): 2-5% acceptable, < 1% = audience or offer mismatch
780
+ - Click rate: 2-8% depending on CTA shape
781
+
782
+ ## Approval chain
783
+
784
+ - [ ] Email (drafted)
785
+ - [ ] Marketing lead (audience + goal sanity check)
786
+ - [ ] Compliance (unsub + claims review)
787
+ - [ ] CX (escalation paths if reply patterns surface support issues)
788
+
789
+ ---
790
+
791
+ _Generated by Email agent. Drafts only — deployment requires the licensed ESP integration which Implementation owns._
792
+ `}function q(a,b){return`---
793
+ type: campaign-brief
794
+ client_id: ${a.clientId}
795
+ channel: ${b.channel}
796
+ created: ${(0,d.st)()}
797
+ status: draft
798
+ review_required: yes
799
+ ---
800
+
801
+ # Campaign brief — ${a.displayName} \xb7 ${b.channel}
802
+
803
+ > Drafted by Campaigns agent on ${(0,d.dR)()}. **Drafts the brief, not the spend.** No budget moves without Finance + founder sign-off.
804
+
805
+ ## Objective
806
+
807
+ ${b.objective.trim()}
808
+
809
+ ## Channel
810
+
811
+ ${b.channel} — chosen because: (operator: explain why this channel matches the audience + funnel stage)
812
+
813
+ ## Budget + duration
814
+
815
+ - **Total budget:** ${b.budget??"(operator: name the cap — daily / total / blended)"}
816
+ - **Duration:** ${b.duration??"(operator: name end date or always-on)"}
817
+ - **Spend pacing:** (even / front-loaded / event-aligned)
818
+
819
+ ## Audience
820
+
821
+ - **Who:** (specific segment — "ops managers at 12+ truck logistics fleets in NSW" not "small businesses")
822
+ - **Where:** (geographies, language)
823
+ - **Funnel stage:** (cold / warm / retargeting / customer-LAL)
824
+
825
+ ## Creative direction
826
+
827
+ - **Hook:** (one-line — what stops the scroll)
828
+ - **Proof:** (numbers, quote, comparison)
829
+ - **Visual:** (testimonial / product / outcome / metaphor)
830
+ - **CTA:** (specific verb + value)
831
+
832
+ ## Tracking + UTM
833
+
834
+ - **utm_source:** ${b.channel}
835
+ - **utm_medium:** (cpc / paid-social / display)
836
+ - **utm_campaign:** \`${a.clientId}-${(0,d.B0)(b.objective).slice(0,30)}\`
837
+ - **utm_content:** (creative variant)
838
+ - **utm_term:** (keyword variant for search)
839
+
840
+ ## Hard rules
841
+
842
+ - **Single objective per campaign.** Multi-objective campaigns optimise for nothing.
843
+ - **Hold creative variants stable for 7+ days.** Don't kill a variant on day-2 noise.
844
+ - **One landing page per campaign.** Generic homepage = generic conversion rate.
845
+ - **Conversion event defined BEFORE launch.** Not "we'll figure it out from data."
846
+ - **Budget cap enforced at the platform.** No "watching it" as the only safeguard.
847
+
848
+ ## Performance baselines (channel + funnel stage)
849
+
850
+ - (operator: pull last 3 campaigns of this channel + stage from analytics, paste benchmarks here)
851
+
852
+ ## Kill criteria
853
+
854
+ - (operator: name the metric + threshold + window. e.g. "if CPL > $80 over 5 days at $50 daily, pause")
855
+
856
+ ## Approval chain
857
+
858
+ - [ ] Campaigns (drafted)
859
+ - [ ] Marketing lead (positioning fit)
860
+ - [ ] Finance (budget approval)
861
+ - [ ] Founder (if > approval threshold)
862
+
863
+ ---
864
+
865
+ _Generated by Campaigns agent. Drafts only — actual spend through the licensed ad-platform integration._
866
+ `}function r(a,b){let c=b.assetType??"other";return`---
867
+ type: brand-audit
868
+ client_id: ${a.clientId}
869
+ asset_type: ${c}
870
+ created: ${(0,d.st)()}
871
+ status: draft
872
+ review_required: yes
873
+ ---
874
+
875
+ # Brand audit — ${a.displayName} \xb7 ${c}
876
+
877
+ > Drafted by Brand agent on ${(0,d.dR)()}. **Audit only, not a rewrite.** Identifies brand-fit gaps; the asset owner ships the fix.
878
+
879
+ ## Asset under review
880
+
881
+ \`\`\`
882
+ ${b.assetText.trim().slice(0,1200)}${b.assetText.length>1200?"\n... [truncated for brief]":""}
883
+ \`\`\`
884
+
885
+ ## Voice + tone check
886
+
887
+ - [ ] **Tone matches brand register** (operator: pull current register from \`Wiki/brand/voice.md\` — terse vs warm, technical vs accessible, etc.)
888
+ - [ ] **Vocabulary matches** the customer's language, not internal jargon
889
+ - [ ] **Reading level** appropriate to audience (Hemingway grade 6-8 for SMB ops; grade 4-6 for consumer)
890
+ - [ ] **Personality cues** present (humour, directness, reassurance — depending on brand)
891
+
892
+ ## Visual + structure check (when applicable)
893
+
894
+ - [ ] **Logo usage** correct (sizing, clearspace, colour treatment)
895
+ - [ ] **Colour palette** brand-compliant (hex matches token, no near-misses)
896
+ - [ ] **Typography** uses brand fonts at correct weights
897
+ - [ ] **Layout density** appropriate (whitespace = premium, density = utility)
898
+
899
+ ## Message hierarchy
900
+
901
+ - [ ] **Headline communicates the value prop** without product knowledge required
902
+ - [ ] **First subhead reframes** in customer's words / pain
903
+ - [ ] **CTA is unambiguous** about what happens on click
904
+ - [ ] **Secondary content supports**, doesn't compete with, the primary message
905
+
906
+ ## Risk flags
907
+
908
+ - **Tone drift** — asset reads like a different brand (corporate vs friendly, technical vs accessible)
909
+ - **Claim risk** — superlatives or numbers without sourcing ("the best", "10x faster")
910
+ - **Compliance flags** — financial / health / legal claims requiring substantiation
911
+ - **Asset reuse risk** — would this work in 3 other contexts, or is it brittle to one channel?
912
+
913
+ ## Recommendations
914
+
915
+ (operator: 3-5 specific, action-oriented suggestions. Each one references a hard rule above.)
916
+
917
+ 1.
918
+ 2.
919
+ 3.
920
+
921
+ ## Approval chain
922
+
923
+ - [ ] Brand (audit complete)
924
+ - [ ] Asset owner (acknowledges + commits to fix or escalates)
925
+ - [ ] Marketing lead (final fit-check before publish)
926
+
927
+ ---
928
+
929
+ _Generated by Brand agent. Brand audits are descriptive — visual fixes happen in the design tool the asset originated in (Figma / Canva / etc)._
930
+ `}function s(a,b){let c=b.durationS??60;return`---
931
+ type: video-script
932
+ client_id: ${a.clientId}
933
+ format: ${b.format}
934
+ duration_s: ${c}
935
+ created: ${(0,d.st)()}
936
+ status: draft
937
+ review_required: yes
938
+ ---
939
+
940
+ # Video script — ${a.displayName} \xb7 ${b.format} \xb7 ${c}s
941
+
942
+ > Drafted by Video agent on ${(0,d.dR)()}. Script + storyboard + B-roll cues + on-screen text.
943
+
944
+ ## Topic
945
+
946
+ ${b.topic.trim()}
947
+
948
+ ## Hook (0:00 – 0:03)
949
+
950
+ (One sentence. Stops scroll. Ideally a contrarian claim, surprising stat, or problem the viewer is living right now. NO greeting, NO logo intro.)
951
+
952
+ ## Body — beat sheet
953
+
954
+ | Time | Spoken (VO or talent) | Visual / B-roll | On-screen text |
955
+ |---|---|---|---|
956
+ | 0:03 – 0:08 | | | |
957
+ | 0:08 – 0:15 | | | |
958
+ | 0:15 – 0:30 | | | |
959
+ | 0:30 – 0:45 | | | |
960
+ | 0:45 – 0:55 | | | |
961
+ | 0:55 – ${c}:00 | | | |
962
+
963
+ ## CTA (last 3-5s)
964
+
965
+ - **What:** (specific verb + outcome)
966
+ - **Where:** (URL / button / next video)
967
+ - **Persistent on-screen:** (logo + URL throughout the CTA window)
968
+
969
+ ## Production notes
970
+
971
+ - **Aspect ratio:** (9:16 for TikTok/Reels/Shorts; 1:1 for in-feed; 16:9 for YouTube/landing)
972
+ - **Captions:** baked-in (most views are sound-off)
973
+ - **Pacing:** ${c<30?"fast — average shot 1.5-2s":c<60?"medium — average shot 2-3s":"varied — open with quick cuts to retain, slow during proof"}
974
+ - **Music:** (track licence + mood)
975
+ - **Voice:** (talent name + recording approach: studio / phone / clean room)
976
+
977
+ ## Hard rules
978
+
979
+ - **First 3s = hook.** No logo, no "hey guys", no greeting. Stop the scroll or lose the viewer.
980
+ - **One message per video.** A second message is a second video.
981
+ - **Closed captions baked in.** Not a YouTube auto-caption — properly authored.
982
+ - **Brand-compliant** colour + typography on every on-screen text card.
983
+ - **CTA visible for last 5s minimum** so the algo's preview frame includes it.
984
+
985
+ ## Approval chain
986
+
987
+ - [ ] Video (script + storyboard drafted)
988
+ - [ ] Brand (voice + visual fit)
989
+ - [ ] Marketing lead (objective alignment)
990
+ - [ ] Founder (if customer-facing claims)
991
+
992
+ ---
993
+
994
+ _Generated by Video agent. Script-only — production happens through HeyGen / Runway / talent shoot._
995
+ `}function t(a,b){return`---
996
+ type: cohort-brief
997
+ client_id: ${a.clientId}
998
+ created: ${(0,d.st)()}
999
+ status: draft
1000
+ review_required: yes
1001
+ ---
1002
+
1003
+ # Cohort analysis brief — ${a.displayName}
1004
+
1005
+ > Drafted by Data agent on ${(0,d.dR)()}. Defines the question, the data shape needed, and the chart that answers it. **Analysis spec only — execution requires DB access (Postgres / BigQuery / etc) Implementation owns.**
1006
+
1007
+ ## Question
1008
+
1009
+ ${b.question.trim()}
1010
+
1011
+ ## Why this matters
1012
+
1013
+ (operator: 1-2 lines on what decision this analysis informs. If you can't name the decision, the analysis isn't worth running yet.)
1014
+
1015
+ ## Dimensions (slice-by columns)
1016
+
1017
+ ${b.dimensions??"(operator: list the columns to slice by — date / customer-segment / product-tier / channel — and the granularity)"}
1018
+
1019
+ ## Metric definitions
1020
+
1021
+ (One row per metric. **Definitions matter** — "active user" means different things to different people.)
1022
+
1023
+ | Metric | Definition | Source table | Filter |
1024
+ |---|---|---|---|
1025
+ | | | | |
1026
+
1027
+ ## Expected output shape
1028
+
1029
+ - [ ] **Trend** — metric over time (line)
1030
+ - [ ] **Comparison** — metric across segments at a point in time (bar)
1031
+ - [ ] **Distribution** — metric values across the population (histogram / box)
1032
+ - [ ] **Funnel** — conversion across stages (funnel)
1033
+
1034
+ (Auto-tagged: ${b.expectedShape??"operator picks"})
1035
+
1036
+ ## Hypothesis
1037
+
1038
+ (operator: what do you expect to see, and what would surprise you? If the answer is "I have no idea", run a smaller exploratory query first.)
1039
+
1040
+ ## Cuts to ignore (out of scope this round)
1041
+
1042
+ - (operator: name dimensions you'll be tempted to slice by but shouldn't — keeps the analysis focused)
1043
+
1044
+ ## Validation steps
1045
+
1046
+ - [ ] Sample-size check: each cohort has > 30 observations (else trend is noise)
1047
+ - [ ] Outlier check: top/bottom 1% inspected — included or excluded with reason
1048
+ - [ ] Duplicate check: row counts match expected join cardinality
1049
+ - [ ] Time-zone check: timestamps in customer-local zone, not UTC by accident
1050
+ - [ ] Definition cross-check: pulled metric matches the canonical definition in \`05_Finance/metrics.md\` (or equivalent)
1051
+
1052
+ ## Approval chain
1053
+
1054
+ - [ ] Data (analysis spec)
1055
+ - [ ] Engineering (query feasibility check)
1056
+ - [ ] Founder (decision owner — accepts the framing or refines)
1057
+
1058
+ ---
1059
+
1060
+ _Generated by Data agent. Cite or shut up — every chart in the final analysis names its source table + filter._
1061
+ `}function u(a,b){let c=b.level??"mid";return`---
1062
+ type: job-brief
1063
+ client_id: ${a.clientId}
1064
+ role: ${b.role}
1065
+ level: ${c}
1066
+ created: ${(0,d.st)()}
1067
+ status: draft
1068
+ review_required: yes
1069
+ ---
1070
+
1071
+ # Job brief — ${a.displayName} \xb7 ${c} ${b.role}
1072
+
1073
+ > Drafted by People agent on ${(0,d.dR)()}. JD + interview rubric + decision criteria. **Drafts only — ATS posting + scheduling go through the licensed integration.**
1074
+
1075
+ ## What they actually do (day 1, week 4, month 6)
1076
+
1077
+ - **Day 1:** (concrete onboarding tasks)
1078
+ - **Week 4:** (first owned outcome)
1079
+ - **Month 6:** (proficient + delivering)
1080
+
1081
+ ## Why this role exists
1082
+
1083
+ (operator: 1-2 lines on the gap this role fills. If you can't name the gap, the role isn't ready to hire for.)
1084
+
1085
+ ## Must-haves (hard requirements)
1086
+
1087
+ (Each is interview-able; vague ones get cut.)
1088
+
1089
+ 1.
1090
+ 2.
1091
+ 3.
1092
+
1093
+ ## Nice-to-haves
1094
+
1095
+ 1.
1096
+ 2.
1097
+
1098
+ ## Won't-haves (explicit anti-patterns)
1099
+
1100
+ (What disqualifies — saves both sides time. Examples: "no remote-only candidates outside Australian timezones", "no agency-heavy career paths".)
1101
+
1102
+ -
1103
+
1104
+ ## Compensation band
1105
+
1106
+ - **Salary range:** (operator: confirm against ${a.industry??"industry"} benchmarks at ${c} level)
1107
+ - **Equity:** (% range or "none")
1108
+ - **Bonus / variable:** (target % at-plan)
1109
+ - **Benefits:** (super, leave, learning budget, equipment)
1110
+
1111
+ ## Logistics
1112
+
1113
+ - **Location:** ${b.remoteOk?"Remote (Australia)":"Hybrid / on-site (Sydney primary)"}
1114
+ - **Reporting line:** (operator: name the manager + skip-level)
1115
+ - **Team size:** (current team count, growth plan)
1116
+ - **Travel:** (% expected)
1117
+
1118
+ ## Interview rubric (4-stage)
1119
+
1120
+ | Stage | Format | Owner | Decision criteria |
1121
+ |---|---|---|---|
1122
+ | 1. Screen | 30-min call | Recruiter / People | Hard requirements check, salary alignment |
1123
+ | 2. Skills | 60-min, role-specific exercise | Hiring manager | Can-they-actually-do-the-job evidence |
1124
+ | 3. Team fit | 45-min with peers | Future teammates | Ways-of-working alignment |
1125
+ | 4. Founder | 30-min | Founder | Mission alignment, leverage potential |
1126
+
1127
+ ## Bar / non-negotiables
1128
+
1129
+ - (operator: 2-3 things every offer-grade candidate must demonstrate)
1130
+
1131
+ ## Approval chain
1132
+
1133
+ - [ ] People (drafted)
1134
+ - [ ] Hiring manager (approves brief + rubric)
1135
+ - [ ] Founder (sign-off on band + headcount)
1136
+
1137
+ ---
1138
+
1139
+ _Generated by People agent. JD-only — actual posting + scheduling through the licensed ATS integration._
1140
+ `}function v(a,b){return`---
1141
+ type: clause-template
1142
+ client_id: ${a.clientId}
1143
+ contract_type: ${b.contractType}
1144
+ created: ${(0,d.st)()}
1145
+ status: draft
1146
+ review_required: yes
1147
+ ---
1148
+
1149
+ # Clause template — ${b.contractType}
1150
+
1151
+ > Drafted by Legal agent on ${(0,d.dR)()} for ${a.displayName}. **Template only — not legal advice.** Customer's qualified counsel reviews before any signature.
1152
+
1153
+ ## Intent
1154
+
1155
+ ${b.intent.trim()}
1156
+
1157
+ ## Governing law
1158
+
1159
+ ${b.governingLaw??"(operator: jurisdiction — NSW Australia, Delaware US, etc. Default: customer's primary place of business.)"}
1160
+
1161
+ ## Plain-English version (operator-readable)
1162
+
1163
+ (Two-sentence summary of what this clause does and what it protects against. If counsel and operator can't both agree on this summary, the clause language probably needs work.)
1164
+
1165
+ ## Clause language (placeholder template)
1166
+
1167
+ > ⚠️ **The text below is a starting structure, NOT enforceable language.** Have qualified counsel substitute the actual operative language for the customer's jurisdiction.
1168
+
1169
+ \`\`\`
1170
+ [Title of clause]
1171
+
1172
+ [Operative paragraph 1 — what each party agrees to do or not do]
1173
+
1174
+ [Operative paragraph 2 — conditions, triggers, exceptions]
1175
+
1176
+ [Operative paragraph 3 — remedies / consequences if breached]
1177
+
1178
+ [Standard boilerplate hooks — severability, no waiver, governing law reference]
1179
+ \`\`\`
1180
+
1181
+ ## Defined terms used
1182
+
1183
+ (Each term referenced in the clause language above must be defined elsewhere in the contract or here.)
1184
+
1185
+ | Term | Definition source |
1186
+ |---|---|
1187
+ | | |
1188
+
1189
+ ## Risk flags
1190
+
1191
+ - **Indemnification scope** — broad indemnification clauses transfer risk in ways the operator may not realise. Counsel reviews scope.
1192
+ - **Liability cap** — capped liability is the default for SaaS-shaped relationships. Uncapped is unusual and worth a flag.
1193
+ - **Termination triggers** — material breach vs. convenience differ on notice periods + survival.
1194
+ - **IP assignment** — work-product IP defaults to a different party in different jurisdictions. Make it explicit.
1195
+ - **Compliance carve-outs** — some claims (fraud, gross negligence, IP infringement) commonly carve out of liability caps.
1196
+
1197
+ ## Operator checklist before counsel review
1198
+
1199
+ - [ ] Counterparty name + entity confirmed
1200
+ - [ ] Jurisdiction matches customer's operating location
1201
+ - [ ] Defined terms cross-checked against the master agreement
1202
+ - [ ] Plain-English version reviewed with the business owner of this relationship
1203
+ - [ ] Risk flags above each addressed or explicitly accepted
1204
+
1205
+ ## Approval chain
1206
+
1207
+ - [ ] Legal agent (template drafted)
1208
+ - [ ] Operator / business owner (intent + risk acknowledged)
1209
+ - [ ] **Qualified external counsel (signs off on operative language)**
1210
+ - [ ] Founder (final sign-off)
1211
+
1212
+ ---
1213
+
1214
+ _Generated by Legal agent. **Not legal advice.** Templates start a conversation with qualified counsel; they don't replace it._
1215
+ `}function w(a,b){return`---
1216
+ type: workflow-blueprint
1217
+ client_id: ${a.clientId}
1218
+ created: ${(0,d.st)()}
1219
+ status: draft
1220
+ review_required: yes
1221
+ ---
1222
+
1223
+ # Workflow blueprint — ${a.displayName}
1224
+
1225
+ > Drafted by Automation agent on ${(0,d.dR)()}. Operator-readable spec for an automation. **Implementation agent's \`scaffold_n8n_workflow\` tool produces the importable n8n JSON from this blueprint.**
1226
+
1227
+ ## Description
1228
+
1229
+ ${b.description??`Automation triggered by "${b.trigger}" performing "${b.action}".`}
1230
+
1231
+ ## Trigger
1232
+
1233
+ - **Type:** ${b.trigger.trim()}
1234
+ - **Cadence:** ${b.schedule??"event-driven (runs on each trigger event)"}
1235
+ - **Source system:** (operator: where the trigger event originates — webhook URL / cron / inbox watcher)
1236
+
1237
+ ## Action
1238
+
1239
+ ${b.action.trim()}
1240
+
1241
+ ## Step-by-step flow
1242
+
1243
+ 1. **Trigger fires** — receives ${b.trigger}
1244
+ 2. **Validate input** — schema check, reject malformed payloads with logged reason
1245
+ 3. **Branch logic** — (operator: name the conditions that route to different actions)
1246
+ 4. **Primary action** — ${b.action}
1247
+ 5. **Side effects** — (notify / log / write back to source system)
1248
+ 6. **Idempotency check** — same trigger payload twice doesn't double-action
1249
+
1250
+ ## Failure modes (each needs a handler)
1251
+
1252
+ - **Source system unavailable** — retry with exponential backoff, max N attempts, fail-loud after
1253
+ - **Rate-limited** — queue + backoff, never drop silently
1254
+ - **Malformed payload** — reject with logged reason, alert operator if rate exceeds threshold
1255
+ - **Downstream action failed** — rollback or compensating action; don't leave half-state
1256
+ - **Schedule misfire** (if scheduled) — detect missed runs on next fire, decide catch-up vs skip
1257
+
1258
+ ## Observability requirements
1259
+
1260
+ - [ ] Every run logs: timestamp, trigger payload (sanitised), success/failure, duration
1261
+ - [ ] Failed runs alert (channel: operator's preferred — email / Telegram / Slack)
1262
+ - [ ] Daily digest: success count, failure count, average duration
1263
+
1264
+ ## Hard rules
1265
+
1266
+ - **Idempotent by construction.** Same trigger twice = same end state, not double action.
1267
+ - **No customer credentials in workflow.** Use the platform's secret manager.
1268
+ - **Cross-customer isolation.** A Tarheel workflow never reads ${"Tarheel Logistics"===a.displayName?"another customer's":"Tarheel's"} data. Every workflow scoped to one customer.
1269
+ - **Surface, don't auto-action exceptions.** Anything that touches money / legal / customer-visible: human-approval gate.
1270
+ - **Reversible by default.** New automations launch in dry-run mode; flip to live after a week of clean runs.
1271
+
1272
+ ## Estimated effort
1273
+
1274
+ - **Build:** (operator: hours estimate + confidence)
1275
+ - **Maintenance:** (ongoing time per month — every automation has a maintenance tail)
1276
+
1277
+ ## Approval chain
1278
+
1279
+ - [ ] Automation (blueprint drafted)
1280
+ - [ ] Operator (operational fit + responsibility for monitoring)
1281
+ - [ ] Implementation (technical feasibility + scaffolds the n8n JSON)
1282
+ - [ ] Founder (if cross-functional or > approval threshold)
1283
+
1284
+ ---
1285
+
1286
+ _Generated by Automation agent. Blueprint pairs with Implementation's \`scaffold_n8n_workflow\` tool for the importable JSON._
1287
+ `}},57477:(a,b,c)=>{"use strict";c.d(b,{B0:()=>t,Ip:()=>k,T8:()=>q,_T:()=>p,dR:()=>r,mx:()=>o,nj:()=>v,st:()=>s,xB:()=>l,yv:()=>u,zG:()=>n,zY:()=>w});var d=c(73024),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g);let i=/^[a-z0-9](?:[a-z0-9-]{0,58}[a-z0-9])?$/,j=["_inbox/","_Workflows/","00_Org/","01_Customers/","02_Sales/","03_Product/","04_Operations/","05_Finance/","06_Legal/","Permanent/","Wiki/"];function k(a){if(!i.test(a))throw Error(`Invalid clientId: ${a}`);return f().join(process.env.LEEDAB_BRAINS_ROOT?f().resolve(process.env.LEEDAB_BRAINS_ROOT):f().resolve(h().homedir(),"leedab-brains"),a)}async function l(a){try{return(await d.promises.stat(k(a))).isDirectory()}catch{return!1}}function m(a,b){if(b.includes("..")||f().isAbsolute(b))throw Error(`Refused: path contains traversal or is absolute: ${b}`);if(!j.some(a=>b.startsWith(a)))throw Error(`Refused: path "${b}" doesn't start with an allowed prefix (${j.join(", ")})`);let c=k(a),d=f().resolve(c,b);if(!d.startsWith(c+f().sep))throw Error(`Refused: path resolves outside brain root: ${b}`);return d}async function n(a,b){try{if(!await l(a))return{ok:!1,error:`No brain at ${k(a)}. Run bin/onboard-customer.sh first.`};let c=m(a,b),e=await d.promises.readFile(c,"utf8");return{ok:!0,body:e,path:c}}catch(a){return{ok:!1,error:a.message}}}async function o(a,b,c){try{if(!await l(a))return{ok:!1,error:`No brain at ${k(a)}. Run bin/onboard-customer.sh first.`};let e=m(a,b);return await d.promises.mkdir(f().dirname(e),{recursive:!0}),await d.promises.writeFile(e,c,"utf8"),{ok:!0,path:e,bytes:Buffer.byteLength(c,"utf8")}}catch(a){return{ok:!1,error:a.message}}}async function p(a,b,c={}){try{if(!await l(a))return{ok:!1,error:`No brain at ${k(a)}.`};let e=b.endsWith("/")?b:b+"/",g=m(a,e+"__list_sentinel__"),h=f().dirname(g),i=[];try{i=await d.promises.readdir(h)}catch{return{ok:!0,entries:[]}}let j=c.extension??".md",n=c.sinceISO?Date.parse(c.sinceISO):0,o=[];for(let a of i){if(j&&!a.endsWith(j))continue;let b=f().join(h,a),c=await d.promises.stat(b);c.isFile()&&(n&&c.mtimeMs<n||o.push({relativePath:e+a,absolutePath:b,bytes:c.size,modifiedISO:new Date(c.mtimeMs).toISOString()}))}return o.sort((a,b)=>Date.parse(b.modifiedISO)-Date.parse(a.modifiedISO)),{ok:!0,entries:c.limit?o.slice(0,c.limit):o}}catch(a){return{ok:!1,error:a.message}}}async function q(a,b,c){try{if(!await l(a))return{ok:!1,error:`No brain at ${k(a)}. Run bin/onboard-customer.sh first.`};let e=m(a,b);await d.promises.mkdir(f().dirname(e),{recursive:!0});let g="";try{let a=await d.promises.readFile(e,"utf8");a.length>0&&!a.endsWith("\n")&&(g="\n")}catch{}return await d.promises.appendFile(e,g+c,"utf8"),{ok:!0,path:e,bytes:Buffer.byteLength(g+c,"utf8")}}catch(a){return{ok:!1,error:a.message}}}function r(){return new Date().toISOString().slice(0,10)}function s(){return new Date().toISOString()}function t(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)}function u(a){if(!a.startsWith("---\n")&&!a.startsWith("---\r\n"))return{frontmatter:{},body:a};let b=a.indexOf("\n---",4);if(-1===b)return{frontmatter:{},body:a};let c=a.slice(4,b),d=a.slice(b+4).replace(/^\r?\n/,""),e={},f=null,g=[],h=()=>{null!==f&&(e[f]=[...g],g.length=0,f=null)};for(let a of c.split(/\r?\n/)){if(""===a.trim())continue;let b=a.match(/^\s*-\s+(.*)$/);if(b&&null!==f){let a=b[1].trim(),c=a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'")?a.slice(1,-1):a;g.push(c);continue}let c=a.match(/^([A-Za-z0-9_\-.]+)\s*:\s*(.*)$/);if(c){h();let a=c[1],b=c[2];if(""===b){f=a;continue}e[a]=function(a){let b=a.trim();if(""===b||"null"===b||"~"===b)return null;if("true"===b)return!0;if("false"===b)return!1;if(b.startsWith('"')&&b.endsWith('"'))return b.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\");if(b.startsWith("'")&&b.endsWith("'"))return b.slice(1,-1).replace(/\\'/g,"'");if(b.startsWith("[")&&b.endsWith("]")){let a=b.slice(1,-1).trim();return a?a.split(/\s*,\s*/).map(a=>{let b=a.trim();return b.startsWith('"')&&b.endsWith('"')||b.startsWith("'")&&b.endsWith("'")?b.slice(1,-1):b}):[]}return/^-?\d+$/.test(b)||/^-?\d*\.\d+$/.test(b)?Number(b):b}(b)}}return h(),{frontmatter:e,body:d}}function v(a,b){let c=Object.keys(a);if(0===c.length)return b.startsWith("---"),b;let d=["---"];for(let b of c){var e;d.push(`${b}: ${null===(e=a[b])?"null":"boolean"==typeof e||"number"==typeof e?String(e):Array.isArray(e)?"["+e.map(a=>/[,\s:#]/.test(a)?`"${a.replace(/"/g,'\\"')}"`:a).join(", ")+"]":""===e||/^[\d\s]/.test(e)||/[:#\n"']/.test(e)||"true"===e||"false"===e||"null"===e||"~"===e?`"${e.replace(/"/g,'\\"')}"`:e}`)}return d.push("---",""),d.join("\n")+b.replace(/^\n+/,"")}function w(a){if(!a||"object"!=typeof a||Array.isArray(a))return{ok:!1,error:"patch must be a flat object"};let b={};for(let[c,d]of Object.entries(a)){if(!/^[A-Za-z0-9_\-.]+$/.test(c))return{ok:!1,error:`invalid frontmatter key "${c}" (allowed: letters / digits / _ - .)`};if(null===d||"string"==typeof d||"number"==typeof d||"boolean"==typeof d)b[c]=d;else{if(!(Array.isArray(d)&&d.every(a=>"string"==typeof a)))return{ok:!1,error:`value for "${c}" must be string / number / boolean / null / string[] — got ${typeof d}`};b[c]=d}}return{ok:!0,patch:b}}},78335:()=>{},96487:()=>{}};