availsync 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/.adal/skills/stripe-best-practices/SKILL.md +42 -0
  2. package/.adal/skills/stripe-best-practices/references/billing.md +36 -0
  3. package/.adal/skills/stripe-best-practices/references/connect.md +48 -0
  4. package/.adal/skills/stripe-best-practices/references/payments.md +79 -0
  5. package/.adal/skills/stripe-best-practices/references/security.md +109 -0
  6. package/.adal/skills/stripe-best-practices/references/treasury.md +16 -0
  7. package/.adal/skills/stripe-projects/SKILL.md +139 -0
  8. package/.adal/skills/upgrade-stripe/SKILL.md +185 -0
  9. package/.agents/skills/stripe-best-practices/SKILL.md +42 -0
  10. package/.agents/skills/stripe-best-practices/references/billing.md +36 -0
  11. package/.agents/skills/stripe-best-practices/references/connect.md +48 -0
  12. package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
  13. package/.agents/skills/stripe-best-practices/references/security.md +109 -0
  14. package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
  15. package/.agents/skills/stripe-projects/SKILL.md +139 -0
  16. package/.agents/skills/upgrade-stripe/SKILL.md +185 -0
  17. package/.augment/skills/stripe-best-practices/SKILL.md +42 -0
  18. package/.augment/skills/stripe-best-practices/references/billing.md +36 -0
  19. package/.augment/skills/stripe-best-practices/references/connect.md +48 -0
  20. package/.augment/skills/stripe-best-practices/references/payments.md +79 -0
  21. package/.augment/skills/stripe-best-practices/references/security.md +109 -0
  22. package/.augment/skills/stripe-best-practices/references/treasury.md +16 -0
  23. package/.augment/skills/stripe-projects/SKILL.md +139 -0
  24. package/.augment/skills/upgrade-stripe/SKILL.md +185 -0
  25. package/.bob/skills/stripe-best-practices/SKILL.md +42 -0
  26. package/.bob/skills/stripe-best-practices/references/billing.md +36 -0
  27. package/.bob/skills/stripe-best-practices/references/connect.md +48 -0
  28. package/.bob/skills/stripe-best-practices/references/payments.md +79 -0
  29. package/.bob/skills/stripe-best-practices/references/security.md +109 -0
  30. package/.bob/skills/stripe-best-practices/references/treasury.md +16 -0
  31. package/.bob/skills/stripe-projects/SKILL.md +139 -0
  32. package/.bob/skills/upgrade-stripe/SKILL.md +185 -0
  33. package/.claude/settings.local.json +7 -0
  34. package/.claude/skills/stripe-best-practices/SKILL.md +42 -0
  35. package/.claude/skills/stripe-best-practices/references/billing.md +36 -0
  36. package/.claude/skills/stripe-best-practices/references/connect.md +48 -0
  37. package/.claude/skills/stripe-best-practices/references/payments.md +79 -0
  38. package/.claude/skills/stripe-best-practices/references/security.md +109 -0
  39. package/.claude/skills/stripe-best-practices/references/treasury.md +16 -0
  40. package/.claude/skills/stripe-projects/SKILL.md +139 -0
  41. package/.claude/skills/upgrade-stripe/SKILL.md +185 -0
  42. package/.codebuddy/skills/stripe-best-practices/SKILL.md +42 -0
  43. package/.codebuddy/skills/stripe-best-practices/references/billing.md +36 -0
  44. package/.codebuddy/skills/stripe-best-practices/references/connect.md +48 -0
  45. package/.codebuddy/skills/stripe-best-practices/references/payments.md +79 -0
  46. package/.codebuddy/skills/stripe-best-practices/references/security.md +109 -0
  47. package/.codebuddy/skills/stripe-best-practices/references/treasury.md +16 -0
  48. package/.codebuddy/skills/stripe-projects/SKILL.md +139 -0
  49. package/.codebuddy/skills/upgrade-stripe/SKILL.md +185 -0
  50. package/.commandcode/skills/stripe-best-practices/SKILL.md +42 -0
  51. package/.commandcode/skills/stripe-best-practices/references/billing.md +36 -0
  52. package/.commandcode/skills/stripe-best-practices/references/connect.md +48 -0
  53. package/.commandcode/skills/stripe-best-practices/references/payments.md +79 -0
  54. package/.commandcode/skills/stripe-best-practices/references/security.md +109 -0
  55. package/.commandcode/skills/stripe-best-practices/references/treasury.md +16 -0
  56. package/.commandcode/skills/stripe-projects/SKILL.md +139 -0
  57. package/.commandcode/skills/upgrade-stripe/SKILL.md +185 -0
  58. package/.continue/skills/stripe-best-practices/SKILL.md +42 -0
  59. package/.continue/skills/stripe-best-practices/references/billing.md +36 -0
  60. package/.continue/skills/stripe-best-practices/references/connect.md +48 -0
  61. package/.continue/skills/stripe-best-practices/references/payments.md +79 -0
  62. package/.continue/skills/stripe-best-practices/references/security.md +109 -0
  63. package/.continue/skills/stripe-best-practices/references/treasury.md +16 -0
  64. package/.continue/skills/stripe-projects/SKILL.md +139 -0
  65. package/.continue/skills/upgrade-stripe/SKILL.md +185 -0
  66. package/.cortex/skills/stripe-best-practices/SKILL.md +42 -0
  67. package/.cortex/skills/stripe-best-practices/references/billing.md +36 -0
  68. package/.cortex/skills/stripe-best-practices/references/connect.md +48 -0
  69. package/.cortex/skills/stripe-best-practices/references/payments.md +79 -0
  70. package/.cortex/skills/stripe-best-practices/references/security.md +109 -0
  71. package/.cortex/skills/stripe-best-practices/references/treasury.md +16 -0
  72. package/.cortex/skills/stripe-projects/SKILL.md +139 -0
  73. package/.cortex/skills/upgrade-stripe/SKILL.md +185 -0
  74. package/.crush/skills/stripe-best-practices/SKILL.md +42 -0
  75. package/.crush/skills/stripe-best-practices/references/billing.md +36 -0
  76. package/.crush/skills/stripe-best-practices/references/connect.md +48 -0
  77. package/.crush/skills/stripe-best-practices/references/payments.md +79 -0
  78. package/.crush/skills/stripe-best-practices/references/security.md +109 -0
  79. package/.crush/skills/stripe-best-practices/references/treasury.md +16 -0
  80. package/.crush/skills/stripe-projects/SKILL.md +139 -0
  81. package/.crush/skills/upgrade-stripe/SKILL.md +185 -0
  82. package/.env.example +20 -0
  83. package/.factory/skills/stripe-best-practices/SKILL.md +42 -0
  84. package/.factory/skills/stripe-best-practices/references/billing.md +36 -0
  85. package/.factory/skills/stripe-best-practices/references/connect.md +48 -0
  86. package/.factory/skills/stripe-best-practices/references/payments.md +79 -0
  87. package/.factory/skills/stripe-best-practices/references/security.md +109 -0
  88. package/.factory/skills/stripe-best-practices/references/treasury.md +16 -0
  89. package/.factory/skills/stripe-projects/SKILL.md +139 -0
  90. package/.factory/skills/upgrade-stripe/SKILL.md +185 -0
  91. package/.goose/skills/stripe-best-practices/SKILL.md +42 -0
  92. package/.goose/skills/stripe-best-practices/references/billing.md +36 -0
  93. package/.goose/skills/stripe-best-practices/references/connect.md +48 -0
  94. package/.goose/skills/stripe-best-practices/references/payments.md +79 -0
  95. package/.goose/skills/stripe-best-practices/references/security.md +109 -0
  96. package/.goose/skills/stripe-best-practices/references/treasury.md +16 -0
  97. package/.goose/skills/stripe-projects/SKILL.md +139 -0
  98. package/.goose/skills/upgrade-stripe/SKILL.md +185 -0
  99. package/.iflow/skills/stripe-best-practices/SKILL.md +42 -0
  100. package/.iflow/skills/stripe-best-practices/references/billing.md +36 -0
  101. package/.iflow/skills/stripe-best-practices/references/connect.md +48 -0
  102. package/.iflow/skills/stripe-best-practices/references/payments.md +79 -0
  103. package/.iflow/skills/stripe-best-practices/references/security.md +109 -0
  104. package/.iflow/skills/stripe-best-practices/references/treasury.md +16 -0
  105. package/.iflow/skills/stripe-projects/SKILL.md +139 -0
  106. package/.iflow/skills/upgrade-stripe/SKILL.md +185 -0
  107. package/.junie/skills/stripe-best-practices/SKILL.md +42 -0
  108. package/.junie/skills/stripe-best-practices/references/billing.md +36 -0
  109. package/.junie/skills/stripe-best-practices/references/connect.md +48 -0
  110. package/.junie/skills/stripe-best-practices/references/payments.md +79 -0
  111. package/.junie/skills/stripe-best-practices/references/security.md +109 -0
  112. package/.junie/skills/stripe-best-practices/references/treasury.md +16 -0
  113. package/.junie/skills/stripe-projects/SKILL.md +139 -0
  114. package/.junie/skills/upgrade-stripe/SKILL.md +185 -0
  115. package/.kilocode/skills/stripe-best-practices/SKILL.md +42 -0
  116. package/.kilocode/skills/stripe-best-practices/references/billing.md +36 -0
  117. package/.kilocode/skills/stripe-best-practices/references/connect.md +48 -0
  118. package/.kilocode/skills/stripe-best-practices/references/payments.md +79 -0
  119. package/.kilocode/skills/stripe-best-practices/references/security.md +109 -0
  120. package/.kilocode/skills/stripe-best-practices/references/treasury.md +16 -0
  121. package/.kilocode/skills/stripe-projects/SKILL.md +139 -0
  122. package/.kilocode/skills/upgrade-stripe/SKILL.md +185 -0
  123. package/.kiro/skills/stripe-best-practices/SKILL.md +42 -0
  124. package/.kiro/skills/stripe-best-practices/references/billing.md +36 -0
  125. package/.kiro/skills/stripe-best-practices/references/connect.md +48 -0
  126. package/.kiro/skills/stripe-best-practices/references/payments.md +79 -0
  127. package/.kiro/skills/stripe-best-practices/references/security.md +109 -0
  128. package/.kiro/skills/stripe-best-practices/references/treasury.md +16 -0
  129. package/.kiro/skills/stripe-projects/SKILL.md +139 -0
  130. package/.kiro/skills/upgrade-stripe/SKILL.md +185 -0
  131. package/.kode/skills/stripe-best-practices/SKILL.md +42 -0
  132. package/.kode/skills/stripe-best-practices/references/billing.md +36 -0
  133. package/.kode/skills/stripe-best-practices/references/connect.md +48 -0
  134. package/.kode/skills/stripe-best-practices/references/payments.md +79 -0
  135. package/.kode/skills/stripe-best-practices/references/security.md +109 -0
  136. package/.kode/skills/stripe-best-practices/references/treasury.md +16 -0
  137. package/.kode/skills/stripe-projects/SKILL.md +139 -0
  138. package/.kode/skills/upgrade-stripe/SKILL.md +185 -0
  139. package/.mcpjam/skills/stripe-best-practices/SKILL.md +42 -0
  140. package/.mcpjam/skills/stripe-best-practices/references/billing.md +36 -0
  141. package/.mcpjam/skills/stripe-best-practices/references/connect.md +48 -0
  142. package/.mcpjam/skills/stripe-best-practices/references/payments.md +79 -0
  143. package/.mcpjam/skills/stripe-best-practices/references/security.md +109 -0
  144. package/.mcpjam/skills/stripe-best-practices/references/treasury.md +16 -0
  145. package/.mcpjam/skills/stripe-projects/SKILL.md +139 -0
  146. package/.mcpjam/skills/upgrade-stripe/SKILL.md +185 -0
  147. package/.mux/skills/stripe-best-practices/SKILL.md +42 -0
  148. package/.mux/skills/stripe-best-practices/references/billing.md +36 -0
  149. package/.mux/skills/stripe-best-practices/references/connect.md +48 -0
  150. package/.mux/skills/stripe-best-practices/references/payments.md +79 -0
  151. package/.mux/skills/stripe-best-practices/references/security.md +109 -0
  152. package/.mux/skills/stripe-best-practices/references/treasury.md +16 -0
  153. package/.mux/skills/stripe-projects/SKILL.md +139 -0
  154. package/.mux/skills/upgrade-stripe/SKILL.md +185 -0
  155. package/.neovate/skills/stripe-best-practices/SKILL.md +42 -0
  156. package/.neovate/skills/stripe-best-practices/references/billing.md +36 -0
  157. package/.neovate/skills/stripe-best-practices/references/connect.md +48 -0
  158. package/.neovate/skills/stripe-best-practices/references/payments.md +79 -0
  159. package/.neovate/skills/stripe-best-practices/references/security.md +109 -0
  160. package/.neovate/skills/stripe-best-practices/references/treasury.md +16 -0
  161. package/.neovate/skills/stripe-projects/SKILL.md +139 -0
  162. package/.neovate/skills/upgrade-stripe/SKILL.md +185 -0
  163. package/.nixpacksignore +14 -0
  164. package/.openhands/skills/stripe-best-practices/SKILL.md +42 -0
  165. package/.openhands/skills/stripe-best-practices/references/billing.md +36 -0
  166. package/.openhands/skills/stripe-best-practices/references/connect.md +48 -0
  167. package/.openhands/skills/stripe-best-practices/references/payments.md +79 -0
  168. package/.openhands/skills/stripe-best-practices/references/security.md +109 -0
  169. package/.openhands/skills/stripe-best-practices/references/treasury.md +16 -0
  170. package/.openhands/skills/stripe-projects/SKILL.md +139 -0
  171. package/.openhands/skills/upgrade-stripe/SKILL.md +185 -0
  172. package/.pi/skills/stripe-best-practices/SKILL.md +42 -0
  173. package/.pi/skills/stripe-best-practices/references/billing.md +36 -0
  174. package/.pi/skills/stripe-best-practices/references/connect.md +48 -0
  175. package/.pi/skills/stripe-best-practices/references/payments.md +79 -0
  176. package/.pi/skills/stripe-best-practices/references/security.md +109 -0
  177. package/.pi/skills/stripe-best-practices/references/treasury.md +16 -0
  178. package/.pi/skills/stripe-projects/SKILL.md +139 -0
  179. package/.pi/skills/upgrade-stripe/SKILL.md +185 -0
  180. package/.pochi/skills/stripe-best-practices/SKILL.md +42 -0
  181. package/.pochi/skills/stripe-best-practices/references/billing.md +36 -0
  182. package/.pochi/skills/stripe-best-practices/references/connect.md +48 -0
  183. package/.pochi/skills/stripe-best-practices/references/payments.md +79 -0
  184. package/.pochi/skills/stripe-best-practices/references/security.md +109 -0
  185. package/.pochi/skills/stripe-best-practices/references/treasury.md +16 -0
  186. package/.pochi/skills/stripe-projects/SKILL.md +139 -0
  187. package/.pochi/skills/upgrade-stripe/SKILL.md +185 -0
  188. package/.qoder/skills/stripe-best-practices/SKILL.md +42 -0
  189. package/.qoder/skills/stripe-best-practices/references/billing.md +36 -0
  190. package/.qoder/skills/stripe-best-practices/references/connect.md +48 -0
  191. package/.qoder/skills/stripe-best-practices/references/payments.md +79 -0
  192. package/.qoder/skills/stripe-best-practices/references/security.md +109 -0
  193. package/.qoder/skills/stripe-best-practices/references/treasury.md +16 -0
  194. package/.qoder/skills/stripe-projects/SKILL.md +139 -0
  195. package/.qoder/skills/upgrade-stripe/SKILL.md +185 -0
  196. package/.qwen/skills/stripe-best-practices/SKILL.md +42 -0
  197. package/.qwen/skills/stripe-best-practices/references/billing.md +36 -0
  198. package/.qwen/skills/stripe-best-practices/references/connect.md +48 -0
  199. package/.qwen/skills/stripe-best-practices/references/payments.md +79 -0
  200. package/.qwen/skills/stripe-best-practices/references/security.md +109 -0
  201. package/.qwen/skills/stripe-best-practices/references/treasury.md +16 -0
  202. package/.qwen/skills/stripe-projects/SKILL.md +139 -0
  203. package/.qwen/skills/upgrade-stripe/SKILL.md +185 -0
  204. package/.roo/skills/stripe-best-practices/SKILL.md +42 -0
  205. package/.roo/skills/stripe-best-practices/references/billing.md +36 -0
  206. package/.roo/skills/stripe-best-practices/references/connect.md +48 -0
  207. package/.roo/skills/stripe-best-practices/references/payments.md +79 -0
  208. package/.roo/skills/stripe-best-practices/references/security.md +109 -0
  209. package/.roo/skills/stripe-best-practices/references/treasury.md +16 -0
  210. package/.roo/skills/stripe-projects/SKILL.md +139 -0
  211. package/.roo/skills/upgrade-stripe/SKILL.md +185 -0
  212. package/.trae/skills/stripe-best-practices/SKILL.md +42 -0
  213. package/.trae/skills/stripe-best-practices/references/billing.md +36 -0
  214. package/.trae/skills/stripe-best-practices/references/connect.md +48 -0
  215. package/.trae/skills/stripe-best-practices/references/payments.md +79 -0
  216. package/.trae/skills/stripe-best-practices/references/security.md +109 -0
  217. package/.trae/skills/stripe-best-practices/references/treasury.md +16 -0
  218. package/.trae/skills/stripe-projects/SKILL.md +139 -0
  219. package/.trae/skills/upgrade-stripe/SKILL.md +185 -0
  220. package/.vibe/skills/stripe-best-practices/SKILL.md +42 -0
  221. package/.vibe/skills/stripe-best-practices/references/billing.md +36 -0
  222. package/.vibe/skills/stripe-best-practices/references/connect.md +48 -0
  223. package/.vibe/skills/stripe-best-practices/references/payments.md +79 -0
  224. package/.vibe/skills/stripe-best-practices/references/security.md +109 -0
  225. package/.vibe/skills/stripe-best-practices/references/treasury.md +16 -0
  226. package/.vibe/skills/stripe-projects/SKILL.md +139 -0
  227. package/.vibe/skills/upgrade-stripe/SKILL.md +185 -0
  228. package/.windsurf/skills/stripe-best-practices/SKILL.md +42 -0
  229. package/.windsurf/skills/stripe-best-practices/references/billing.md +36 -0
  230. package/.windsurf/skills/stripe-best-practices/references/connect.md +48 -0
  231. package/.windsurf/skills/stripe-best-practices/references/payments.md +79 -0
  232. package/.windsurf/skills/stripe-best-practices/references/security.md +109 -0
  233. package/.windsurf/skills/stripe-best-practices/references/treasury.md +16 -0
  234. package/.windsurf/skills/stripe-projects/SKILL.md +139 -0
  235. package/.windsurf/skills/upgrade-stripe/SKILL.md +185 -0
  236. package/.zencoder/skills/stripe-best-practices/SKILL.md +42 -0
  237. package/.zencoder/skills/stripe-best-practices/references/billing.md +36 -0
  238. package/.zencoder/skills/stripe-best-practices/references/connect.md +48 -0
  239. package/.zencoder/skills/stripe-best-practices/references/payments.md +79 -0
  240. package/.zencoder/skills/stripe-best-practices/references/security.md +109 -0
  241. package/.zencoder/skills/stripe-best-practices/references/treasury.md +16 -0
  242. package/.zencoder/skills/stripe-projects/SKILL.md +139 -0
  243. package/.zencoder/skills/upgrade-stripe/SKILL.md +185 -0
  244. package/AUDIT.md +95 -0
  245. package/BLOCKERS.md +0 -0
  246. package/COOLIFY.md +51 -0
  247. package/MCP_SETUP.md +23 -0
  248. package/PRODUCTION_CHECKLIST.md +246 -0
  249. package/README.md +47 -0
  250. package/ROADMAP.md +91 -0
  251. package/docs/superpowers/plans/2026-05-11-availsync-frontend-sales-flow.md +2445 -0
  252. package/frontend/.env.example +2 -0
  253. package/frontend/app/admin/layout.tsx +13 -0
  254. package/frontend/app/admin/page.tsx +747 -0
  255. package/frontend/app/app/activity/page.tsx +257 -0
  256. package/frontend/app/app/agents/[agentId]/page.tsx +21 -0
  257. package/frontend/app/app/agents/page.tsx +1155 -0
  258. package/frontend/app/app/audit/page.tsx +225 -0
  259. package/frontend/app/app/availability/page.tsx +840 -0
  260. package/frontend/app/app/holds/page.tsx +262 -0
  261. package/frontend/app/app/layout.tsx +19 -0
  262. package/frontend/app/app/onboarding/page.tsx +10 -0
  263. package/frontend/app/app/onboarding/verify/page.tsx +309 -0
  264. package/frontend/app/app/page.tsx +508 -0
  265. package/frontend/app/app/settings/page.tsx +399 -0
  266. package/frontend/app/app/work/page.tsx +426 -0
  267. package/frontend/app/changelog/page.tsx +93 -0
  268. package/frontend/app/checkout/page.tsx +25 -0
  269. package/frontend/app/docs/api/page.tsx +157 -0
  270. package/frontend/app/docs/page.tsx +296 -0
  271. package/frontend/app/docs/pilot/page.tsx +127 -0
  272. package/frontend/app/docs/quickstart/page.tsx +318 -0
  273. package/frontend/app/docs/reliability/page.tsx +78 -0
  274. package/frontend/app/docs/sdk/node/page.tsx +166 -0
  275. package/frontend/app/globals.css +57 -0
  276. package/frontend/app/icon.png +0 -0
  277. package/frontend/app/layout.tsx +87 -0
  278. package/frontend/app/login/page.tsx +14 -0
  279. package/frontend/app/page.tsx +47 -0
  280. package/frontend/app/pricing/page.tsx +66 -0
  281. package/frontend/app/privacy/page.tsx +52 -0
  282. package/frontend/app/robots.ts +26 -0
  283. package/frontend/app/security/page.tsx +74 -0
  284. package/frontend/app/signup/page.tsx +14 -0
  285. package/frontend/app/sitemap.ts +14 -0
  286. package/frontend/app/terms/page.tsx +51 -0
  287. package/frontend/components/brand/AvailsyncLogo.tsx +56 -0
  288. package/frontend/components/checkout/CheckoutClient.tsx +100 -0
  289. package/frontend/components/dashboard/AgentForm.tsx +59 -0
  290. package/frontend/components/dashboard/AppShell.tsx +291 -0
  291. package/frontend/components/dashboard/AvailabilityChecker.tsx +117 -0
  292. package/frontend/components/dashboard/AvailabilityWindowForm.tsx +40 -0
  293. package/frontend/components/dashboard/HoldForm.tsx +133 -0
  294. package/frontend/components/dashboard/MetricCard.tsx +10 -0
  295. package/frontend/components/login/LoginForm.tsx +95 -0
  296. package/frontend/components/marketing/AgentCoordinationStory.tsx +1530 -0
  297. package/frontend/components/marketing/Faq.tsx +41 -0
  298. package/frontend/components/marketing/Hero.tsx +73 -0
  299. package/frontend/components/marketing/HowItWorks.tsx +28 -0
  300. package/frontend/components/marketing/ObserveModeTeaser.tsx +41 -0
  301. package/frontend/components/marketing/PricingTeaser.tsx +23 -0
  302. package/frontend/components/marketing/ProblemSolution.tsx +36 -0
  303. package/frontend/components/marketing/SiteFooter.tsx +59 -0
  304. package/frontend/components/marketing/SiteHeader.tsx +45 -0
  305. package/frontend/components/marketing/UseCases.tsx +27 -0
  306. package/frontend/components/onboarding/OnboardingClient.tsx +278 -0
  307. package/frontend/components/pricing/PricingCards.tsx +65 -0
  308. package/frontend/components/privacy/CookieConsent.tsx +230 -0
  309. package/frontend/components/privacy/CookieSettingsButton.tsx +15 -0
  310. package/frontend/components/seo/JsonLd.tsx +10 -0
  311. package/frontend/components/signup/SignupForm.tsx +55 -0
  312. package/frontend/components/ui/Badge.tsx +23 -0
  313. package/frontend/components/ui/Button.tsx +37 -0
  314. package/frontend/components/ui/Card.tsx +11 -0
  315. package/frontend/components/ui/ConfirmDialog.tsx +77 -0
  316. package/frontend/components/ui/EmptyState.tsx +24 -0
  317. package/frontend/components/ui/Input.tsx +14 -0
  318. package/frontend/components/ui/KeyDisplay.tsx +49 -0
  319. package/frontend/components/ui/Select.tsx +14 -0
  320. package/frontend/components/ui/Skeleton.tsx +24 -0
  321. package/frontend/components/ui/Tabs.tsx +19 -0
  322. package/frontend/components/ui/Textarea.tsx +14 -0
  323. package/frontend/components/ui/Toast.tsx +78 -0
  324. package/frontend/components/waitlist/WaitlistDialog.tsx +128 -0
  325. package/frontend/lib/api.ts +1282 -0
  326. package/frontend/lib/billing.ts +6 -0
  327. package/frontend/lib/cookieConsent.ts +113 -0
  328. package/frontend/lib/format.ts +16 -0
  329. package/frontend/lib/plans.ts +62 -0
  330. package/frontend/lib/schemas.ts +108 -0
  331. package/frontend/lib/seo.ts +376 -0
  332. package/frontend/lib/setupGuides.ts +630 -0
  333. package/frontend/lib/storage.ts +30 -0
  334. package/frontend/next-env.d.ts +6 -0
  335. package/frontend/next.config.mjs +13 -0
  336. package/frontend/package-lock.json +14409 -0
  337. package/frontend/package.json +41 -0
  338. package/frontend/playwright.config.ts +20 -0
  339. package/frontend/postcss.config.mjs +8 -0
  340. package/frontend/public/.gitkeep +0 -0
  341. package/frontend/public/brand/availsync-logo-board.png +0 -0
  342. package/frontend/public/brand/availsync-logo-dark.png +0 -0
  343. package/frontend/public/brand/availsync-mark-dark.png +0 -0
  344. package/frontend/public/brand/availsync-wordmark-dark.png +0 -0
  345. package/frontend/public/marketing/hero-agent-coordination.png +0 -0
  346. package/frontend/tailwind.config.ts +53 -0
  347. package/frontend/tests/smoke.spec.ts +89 -0
  348. package/frontend/tsconfig.json +23 -0
  349. package/jest.config.js +7 -0
  350. package/nixpacks.toml +11 -0
  351. package/package.json +53 -0
  352. package/packages/mcp/LICENSE +21 -0
  353. package/packages/mcp/README.md +60 -0
  354. package/packages/mcp/jest.config.cjs +8 -0
  355. package/packages/mcp/package.json +54 -0
  356. package/packages/mcp/src/helpers.ts +38 -0
  357. package/packages/mcp/src/index.test.ts +60 -0
  358. package/packages/mcp/src/index.ts +387 -0
  359. package/packages/mcp/tsconfig.json +20 -0
  360. package/packages/mcp/tsconfig.test.json +12 -0
  361. package/packages/node/LICENSE +21 -0
  362. package/packages/node/README.md +120 -0
  363. package/packages/node/jest.config.cjs +8 -0
  364. package/packages/node/package.json +46 -0
  365. package/packages/node/src/index.test.ts +360 -0
  366. package/packages/node/src/index.ts +402 -0
  367. package/packages/node/tsconfig.json +20 -0
  368. package/packages/node/tsconfig.test.json +12 -0
  369. package/plan.md +923 -0
  370. package/skills/stripe-best-practices/SKILL.md +42 -0
  371. package/skills/stripe-best-practices/references/billing.md +36 -0
  372. package/skills/stripe-best-practices/references/connect.md +48 -0
  373. package/skills/stripe-best-practices/references/payments.md +79 -0
  374. package/skills/stripe-best-practices/references/security.md +109 -0
  375. package/skills/stripe-best-practices/references/treasury.md +16 -0
  376. package/skills/stripe-projects/SKILL.md +139 -0
  377. package/skills/upgrade-stripe/SKILL.md +185 -0
  378. package/skills-lock.json +20 -0
  379. package/src/core/availability.ts +178 -0
  380. package/src/core/conflict.ts +209 -0
  381. package/src/core/work.ts +490 -0
  382. package/src/db/client.ts +17 -0
  383. package/src/db/migrations/001_init.sql +88 -0
  384. package/src/db/migrations/002_stripe.sql +2 -0
  385. package/src/db/migrations/003_workspace_auth.sql +19 -0
  386. package/src/db/migrations/004_agent_mcp_status.sql +2 -0
  387. package/src/db/migrations/005_hold_event_actor.sql +4 -0
  388. package/src/db/migrations/006_agent_activity.sql +35 -0
  389. package/src/db/migrations/007_work_coordination.sql +60 -0
  390. package/src/db/migrations/008_work_claim_leases.sql +20 -0
  391. package/src/db/migrations/009_billing_subscription_state.sql +23 -0
  392. package/src/db/migrations/010_agent_api_key_prefix.sql +10 -0
  393. package/src/db/migrations/011_org_verified_and_work_event_retention.sql +11 -0
  394. package/src/db/migrations/012_agent_enforcement_mode.sql +12 -0
  395. package/src/db/migrations/013_support_tickets.sql +21 -0
  396. package/src/db/migrations/014_paid_plan_waitlist.sql +23 -0
  397. package/src/db/migrations/015_agent_last_seen.sql +2 -0
  398. package/src/db/migrations.ts +164 -0
  399. package/src/db/run-migrations.ts +13 -0
  400. package/src/index.ts +183 -0
  401. package/src/lib/activity.ts +137 -0
  402. package/src/lib/apiKeys.ts +32 -0
  403. package/src/lib/appInfo.ts +26 -0
  404. package/src/lib/billingConfig.ts +3 -0
  405. package/src/lib/env.ts +75 -0
  406. package/src/lib/logger.ts +8 -0
  407. package/src/lib/plans.ts +204 -0
  408. package/src/mcp/server.js +5 -0
  409. package/src/mcp/server.ts +350 -0
  410. package/src/middleware/auth.ts +342 -0
  411. package/src/middleware/requestId.ts +16 -0
  412. package/src/routes/account.ts +168 -0
  413. package/src/routes/activity.ts +126 -0
  414. package/src/routes/admin.ts +514 -0
  415. package/src/routes/audit.ts +68 -0
  416. package/src/routes/auth.ts +203 -0
  417. package/src/routes/availability.ts +325 -0
  418. package/src/routes/billing.ts +406 -0
  419. package/src/routes/conflicts.ts +131 -0
  420. package/src/routes/holds.ts +437 -0
  421. package/src/routes/mcp.ts +57 -0
  422. package/src/routes/metrics.ts +39 -0
  423. package/src/routes/onboarding.ts +273 -0
  424. package/src/routes/orgs.ts +981 -0
  425. package/src/routes/preferences.ts +132 -0
  426. package/src/routes/session.ts +16 -0
  427. package/src/routes/support.ts +77 -0
  428. package/src/routes/value.ts +186 -0
  429. package/src/routes/waitlist.ts +63 -0
  430. package/src/routes/work.ts +1578 -0
  431. package/src/server.ts +36 -0
  432. package/src/types/index.ts +109 -0
  433. package/tests/integration/activity.route.test.ts +103 -0
  434. package/tests/integration/admin.route.test.ts +143 -0
  435. package/tests/integration/agent-keys.route.test.ts +237 -0
  436. package/tests/integration/availability.route.test.ts +125 -0
  437. package/tests/integration/billing.route.test.ts +393 -0
  438. package/tests/integration/conflicts.route.test.ts +131 -0
  439. package/tests/integration/flows.test.ts +154 -0
  440. package/tests/integration/helpers.ts +134 -0
  441. package/tests/integration/holds.route.test.ts +185 -0
  442. package/tests/integration/metrics.route.test.ts +100 -0
  443. package/tests/integration/onboarding.verify.route.test.ts +163 -0
  444. package/tests/integration/preferences.route.test.ts +53 -0
  445. package/tests/integration/session.route.test.ts +97 -0
  446. package/tests/integration/system.route.test.ts +92 -0
  447. package/tests/integration/value.route.test.ts +235 -0
  448. package/tests/integration/work.route.test.ts +745 -0
  449. package/tests/setup.ts +4 -0
  450. package/tests/smoke.sh +62 -0
  451. package/tests/unit/auth.test.ts +114 -0
  452. package/tests/unit/availability.test.ts +149 -0
  453. package/tests/unit/conflict.test.ts +118 -0
  454. package/tests/unit/env.test.ts +69 -0
  455. package/tests/unit/migrations.test.ts +135 -0
  456. package/tests/unit/request-id.test.ts +37 -0
  457. package/tmp-mobile-agents.png +0 -0
  458. package/tmp-next-mobile.err.log +10 -0
  459. package/tmp-next-mobile.log +5 -0
  460. package/tsconfig.json +16 -0
@@ -0,0 +1,246 @@
1
+ # Availsync Production Checklist
2
+
3
+ **Date:** 2026-05-11
4
+ **Verified by:** Claude Code
5
+
6
+ ---
7
+
8
+ ## Build Checks
9
+
10
+ ### TypeScript (backend)
11
+ ```
12
+ npm run build → tsc
13
+ ```
14
+ Result: Zero errors and compiled output in `dist/`
15
+ Status: PASS
16
+
17
+ ### Tests (backend)
18
+ ```
19
+ npm test -- --runTestsByPath tests/unit/auth.test.ts tests/unit/conflict.test.ts tests/unit/availability.test.ts
20
+ ```
21
+ Result: 3 suites, 14 tests, all passing
22
+ Status: PASS
23
+
24
+ Verified unit suites:
25
+ - auth.test.ts (3 tests)
26
+ - conflict.test.ts (5 tests)
27
+ - availability.test.ts (6 tests)
28
+
29
+ Integration suites require a running PostgreSQL database via `TEST_DATABASE_URL`.
30
+
31
+ ### Frontend build
32
+ ```
33
+ npx next build
34
+ ```
35
+ Result: Compiled successfully, 17 routes generated
36
+ Status: PASS
37
+
38
+ Bundle sizes (all under 200KB):
39
+ - Shared JS: 102 kB
40
+ - Largest page (agents): 125 kB first load
41
+
42
+ ---
43
+
44
+ ## Backend Hardening
45
+
46
+ ### Environment validation
47
+ - validateEnv() runs before app.listen()
48
+ - Production: missing vars → process.exit(1)
49
+ - Development: missing vars → warning log
50
+ Status: IMPLEMENTED
51
+
52
+ ### Helmet security headers
53
+ - helmet() middleware active (CSP disabled for API)
54
+ Status: IMPLEMENTED
55
+
56
+ ### CORS
57
+ - cors() package with configurable CORS_ORIGINS
58
+ - Credentials support enabled
59
+ Status: IMPLEMENTED
60
+
61
+ ### Rate limiting
62
+ - 100 req/min per API key on all /v1/* routes
63
+ - 10 req/min on POST /v1/orgs
64
+ Status: IMPLEMENTED
65
+
66
+ ### Structured logging
67
+ - src/lib/logger.ts — JSON structured logging
68
+ - All route handlers use log.info/error/warn
69
+ Status: IMPLEMENTED
70
+
71
+ ### Global error handler
72
+ - Last middleware in stack catches unhandled errors
73
+ - Development: includes stack trace
74
+ - Production: generic error message
75
+ Status: IMPLEMENTED
76
+
77
+ ### Auto-migrations on startup
78
+ - runMigrations() tracks files in `schema_migrations`
79
+ - Runs only pending `.sql` files before app.listen()
80
+ - Uses a Postgres advisory lock to prevent parallel migrations
81
+ - Failure logs the exact migration file and records failed status
82
+ Status: IMPLEMENTED
83
+
84
+ ### Input validation
85
+ - All routes use Zod schemas for request validation
86
+ - No raw req.body access without parsing
87
+ Status: VERIFIED
88
+
89
+ ---
90
+
91
+ ## Routes
92
+
93
+ ### Core API
94
+ - POST /v1/orgs — WORKING
95
+ - POST /v1/orgs/:id/agents — WORKING (enforces agent_limit, returns 402)
96
+ - GET /v1/orgs/:id/agents — WORKING
97
+ - GET /v1/availability — WORKING (slots with confidence scores)
98
+ - POST /v1/availability-windows — WORKING
99
+ - GET /v1/availability-windows — WORKING
100
+ - POST /v1/holds — WORKING (conflict resolution in single transaction)
101
+ - DELETE /v1/holds/:id — WORKING
102
+ - GET /v1/holds — WORKING
103
+ - GET /v1/preferences/:agent_id — WORKING
104
+ - PUT /v1/preferences/:agent_id — WORKING
105
+ - GET /v1/session — WORKING
106
+ - GET /v1/audit — WORKING (pagination, agent/event filters)
107
+ - GET /health — WORKING
108
+
109
+ ### Billing
110
+ - POST /v1/billing/checkout — WORKING (auth required, creates Stripe Customer + Checkout Session)
111
+ - POST /v1/billing/webhook — WORKING (raw body, signature verification, handles checkout.session.completed, customer.subscription.updated, customer.subscription.deleted, invoice.payment_failed)
112
+ - GET /v1/billing/portal — WORKING (creates Stripe Customer Portal session)
113
+ - GET /v1/billing/status — WORKING (plan, agents_used, agent_limit, renewal_date)
114
+ - GET /v1/billing/subscription/:org_id — WORKING (legacy)
115
+
116
+ ---
117
+
118
+ ## Database
119
+
120
+ ### Migrations
121
+ - 001_init.sql — 7 tables with constraints and indices
122
+ - 002_stripe.sql — stripe_customer_id and stripe_subscription_id columns
123
+ Status: VERIFIED
124
+
125
+ ### Agent limits (per spec)
126
+ - free: 3
127
+ - individual: 15
128
+ - team: 9999
129
+ Status: VERIFIED
130
+
131
+ ---
132
+
133
+ ## Frontend
134
+
135
+ ### Design system
136
+ - Dark theme: bg #0F0F0F, surface #161616, accent #5E6AD2
137
+ - Geist Sans + Geist Mono fonts
138
+ - Linear-style: monochrome, dense, no gradients, no shadows
139
+ Status: IMPLEMENTED
140
+
141
+ ### Dashboard pages
142
+ - Overview: metric blocks + recent activity table
143
+ - Agents: table view, new agent slide-over, API key display
144
+ - Availability: windows list, slot checker, preferences panel
145
+ - Audit Log: filterable table with expand-to-JSON
146
+ - Settings: Account, Billing (upgrade/portal), API tabs
147
+ Status: IMPLEMENTED
148
+
149
+ ### Components
150
+ - Badge (5 variants)
151
+ - KeyDisplay (masked, reveal, copy)
152
+ - EmptyState (icon + message + CTA)
153
+ - ConfirmDialog (optional text confirmation)
154
+ - Toast (success/error/info, auto-dismiss 4s)
155
+ - Skeleton (shimmer loading states)
156
+ Status: IMPLEMENTED
157
+
158
+ ### Auth flow
159
+ - Signup/onboarding → creates workspace user, org, first agent, and one-time agent API key
160
+ - Login → email/password workspace session with httpOnly cookie
161
+ - Agent API keys are runtime credentials, not dashboard login credentials
162
+ Status: IMPLEMENTED
163
+
164
+ ### Landing page
165
+ - CTA buttons → /signup (which redirects to /app/onboarding)
166
+ - Pricing buttons → /checkout?plan=...
167
+ - Docs → /docs, /docs/quickstart
168
+ Status: VERIFIED
169
+
170
+ ---
171
+
172
+ ## Coolify Git Deploy
173
+
174
+ ### Single app
175
+ - Source directory: `/`
176
+ - Build pack: Nixpacks
177
+ - Build/start settings: `nixpacks.toml`
178
+ - Runtime: `node dist/server.js`
179
+ - Serves Next.js frontend and Express API from one process
180
+ - Health check: `GET /health`
181
+ Status: CONFIGURED
182
+
183
+ ### Required runtime env
184
+ Set these as runtime variables in Coolify. Do not mark `NODE_ENV=production` as buildtime unless the build still installs dev dependencies.
185
+
186
+ ```
187
+ DATABASE_URL=
188
+ SESSION_SECRET=
189
+ API_KEY_SALT_ROUNDS=10
190
+ APP_URL=https://availsync.dev
191
+ CORS_ORIGINS=https://availsync.dev
192
+ STRIPE_SECRET_KEY=
193
+ STRIPE_WEBHOOK_SECRET=
194
+ STRIPE_PRICE_INDIVIDUAL=
195
+ STRIPE_PRICE_TEAM=
196
+ ADMIN_EMAILS=you@example.com
197
+ ```
198
+
199
+ `PORT` is optional; Availsync defaults to `3000` if the platform does not set it.
200
+
201
+ ### Diagnostics
202
+ - Public health check: `GET /health`
203
+ - Admin diagnostics: `GET /v1/admin/system`
204
+ - Admin UI shows runtime Node version, commit, migration state, Stripe readiness, and missing env names without exposing values.
205
+ Status: IMPLEMENTED
206
+
207
+ ### Integration test database
208
+ Use `TEST_DATABASE_URL` for local/CI integration tests. If it is absent, tests fall back to `DATABASE_URL`.
209
+
210
+ ```
211
+ $env:NODE_ENV='test'
212
+ $env:TEST_DATABASE_URL='postgres://user:password@localhost:5432/availsync_test'
213
+ npm test -- --runTestsByPath tests\integration\billing.route.test.ts
214
+ ```
215
+
216
+ ---
217
+
218
+ ## MCP Server
219
+ - Tools: check_availability, book_slot, release_slot
220
+ - Transport: stdio
221
+ - Config: AVAILSYNC_API_URL + AVAILSYNC_API_KEY env vars
222
+ Status: VERIFIED
223
+
224
+ ---
225
+
226
+ ## Acceptance Criteria Summary
227
+
228
+ - [x] `npm run build` exits 0 with zero TypeScript errors
229
+ - [x] Backend unit tests exit 0 locally (14 tests green across 3 suites)
230
+ - [ ] Flow C integration test passes in a live test database environment
231
+ - [x] Stripe checkout route implemented with auth, Stripe Customer creation
232
+ - [x] Stripe webhook handles checkout.session.completed, subscription updates/deletes, payment failures
233
+ - [x] Dashboard: dark Linear-style UI with Geist font
234
+ - [x] API keys displayed safely (once on creation, never stored in frontend)
235
+ - [x] Rate limiting active on all /v1/* routes
236
+ - [x] Helmet and CORS configured
237
+ - [x] Auto-migrations run on startup
238
+ - [x] MCP server tools return real data
239
+ - [x] PRODUCTION_CHECKLIST.md written
240
+
241
+ ### Requires live environment to verify:
242
+ - [ ] Full integration test suite (needs running PostgreSQL via `TEST_DATABASE_URL`)
243
+ - [ ] `bash tests/smoke.sh` (needs running server + DB)
244
+ - [ ] Stripe webhook end-to-end (needs Stripe CLI)
245
+ - [ ] Full Flow A (signup → booking) end-to-end
246
+ - [ ] Bundle size gzip check (builds show ~125kB first load, well under 200kB)
package/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # Availsync
2
+
3
+ Availsync is a coordination layer for AI and coding agents. Every integrated agent checks in before it edits a repo, runs a deploy, touches a project, or books downstream work.
4
+
5
+ The core flow is small:
6
+
7
+ 1. An agent asks for a protected resource such as `repo:owner/repo`.
8
+ 2. Availsync checks active claims, priority rules, and leases.
9
+ 3. The agent gets `proceed` or `skip_run`.
10
+ 4. Long-running work extends the lease and finishes it when done.
11
+
12
+ ## Alpha status
13
+
14
+ Availsync is in alpha for early pilots. Paid tiers are waitlist-only. The public Node SDK and MCP package should be installed with explicit alpha tags:
15
+
16
+ ```bash
17
+ npm install @availsync/node@alpha
18
+ npx -y @availsync/mcp@alpha --help
19
+ ```
20
+
21
+ ## Quick links
22
+
23
+ - Product: https://availsync.dev
24
+ - Pilot guide: https://availsync.dev/docs/pilot
25
+ - Node SDK docs: https://availsync.dev/docs/sdk/node
26
+ - MCP and REST quickstart: https://availsync.dev/docs/quickstart
27
+ - API reference: https://availsync.dev/docs/api
28
+ - Reliability notes: https://availsync.dev/docs/reliability
29
+ - Security notes: https://availsync.dev/security
30
+
31
+ ## Reliability limits
32
+
33
+ Availsync coordinates agents that call it before acting. It does not automatically protect non-integrated agents, and it does not yet infer dependencies between different project keys. Use repo-level resources for maximum safety when stale context or shared files are risky.
34
+
35
+ In enforce mode, production-like automations should fail closed if Availsync is unreachable. In observe mode, pilots can fail open and use the dashboard to measure what would have been blocked.
36
+
37
+ ## Development
38
+
39
+ ```bash
40
+ npm install
41
+ npm run build
42
+ npm test
43
+ npm run build:sdk
44
+ npm run test:sdk
45
+ npm run build:mcp
46
+ npm run test:mcp
47
+ ```
package/ROADMAP.md ADDED
@@ -0,0 +1,91 @@
1
+ # Availsync Roadmap
2
+
3
+ Availsync is being built as a pre-flight coordination layer for AI and coding agents. The primary product direction is repo/resource guardrails for agents that edit code, run automations, deploy, migrate, or schedule work. Scheduling availability remains a supported use case, but not the main narrative.
4
+
5
+ This roadmap separates near-term pilot readiness from later platform and enterprise work.
6
+
7
+ ## Now: First Pilot Readiness
8
+
9
+ These are the highest-leverage changes before serious outbound or a first production pilot.
10
+
11
+ 1. **Node SDK**
12
+ - Status: published as `@availsync/node@alpha` (`0.1.0-alpha.1`) for pilot integrations.
13
+ - Ship `@availsync/node` with a tiny API for `run/start`, `run/extend`, and `run/finish`.
14
+ - Make the happy path feel like a guardrail, not a set of curl commands.
15
+ - Include examples for Codex, Claude/Cursor, OpenClaw, cron jobs, and GitHub Actions.
16
+
17
+ 2. **Shadow Mode**
18
+ - Status: implemented for work-run automations and the Node SDK.
19
+ - Add observe-only behavior so teams can see what Availsync would have blocked without stopping their agents.
20
+ - Surface weekly “would have prevented” value in the dashboard.
21
+ - Keep enforcement explicit so pilots can move from observe to enforce safely.
22
+
23
+ 3. **Data Retention**
24
+ - Add plan-based retention for activity, work events, and hold events.
25
+ - Default direction: Free short retention, paid plans longer retention.
26
+ - Keep audit/value views fast as usage grows.
27
+
28
+ 4. **API Version Policy**
29
+ - Document what `/v1` means, what counts as breaking, and how deprecation will work.
30
+ - Add this before external users integrate deeply.
31
+
32
+ 5. **Positioning Docs**
33
+ - Clarify “Availsync vs Redis lock”, “Availsync vs Temporal/Inngest”, and “Availsync vs branch protection”.
34
+ - Explain the default recommendation: use repo-level locks first, project-level locks only for independent streams.
35
+ - Keep SDK docs focused on `@alpha` until the first pilot confirms the API shape.
36
+
37
+ ## Next: Coordination Layer
38
+
39
+ These make Availsync feel more like infrastructure instead of a lock API.
40
+
41
+ 1. **Webhooks**
42
+ - Deliver events such as `work_claim.blocked`, `work_claim.released`, `work_claim.expired`, and `agent.error`.
43
+ - Add webhook signing, retry behavior, and delivery logs.
44
+ - Let customers resume or retrigger automations without polling.
45
+
46
+ 2. **Python SDK**
47
+ - Mirror the Node SDK for Python-heavy agent and automation stacks.
48
+ - Keep the API shape consistent across languages.
49
+
50
+ 3. **Value Digest**
51
+ - Show weekly conflicts prevented, blocked runs, quiet agents, and recent errors in the dashboard.
52
+ - Email digest can come later; dashboard-first is enough for v1.
53
+
54
+ 4. **Inactive-Agent Alerts**
55
+ - Flag agents with no real activity after a configured threshold.
56
+ - Start in-dashboard before adding email or webhook alerts.
57
+
58
+ 5. **Delivery and Replay Tools**
59
+ - Add delivery history for webhooks and important outbound events.
60
+ - Support manual replay for failed webhook deliveries.
61
+
62
+ ## Later: Team and Enterprise
63
+
64
+ These matter once teams and larger customers start using Availsync collaboratively.
65
+
66
+ 1. **Multi-User Workspaces**
67
+ - Add workspace users, invites, and roles: admin, member, viewer.
68
+ - Keep existing single-owner workspaces compatible.
69
+
70
+ 2. **Scoped Agent Keys**
71
+ - Add read/write scopes for agent keys where useful.
72
+ - Keep the default simple for v1, but support least-privilege keys for CI and enterprise customers.
73
+
74
+ 3. **Operational Metrics**
75
+ - Add Prometheus-style `/metrics` for request counts, latency, claim-block rate, and database pool state.
76
+ - Keep `/v1/metrics/overview` as the product UI endpoint.
77
+
78
+ 4. **Status Page**
79
+ - Add a public status page or hosted status provider once Availsync is used as critical infrastructure.
80
+
81
+ 5. **Enterprise Controls**
82
+ - SSO, audit exports, support notes, admin plan overrides, and stronger governance workflows.
83
+ - Do not start here before the first pilots prove usage and willingness to pay.
84
+
85
+ ## Not Planned for Immediate V1
86
+
87
+ - Calendar provider sync.
88
+ - Multi-region deployment.
89
+ - SOC 2 or ISO certification.
90
+ - Complex dependency inference between different resources.
91
+ - Dedicated Codex plugin before the SDK and REST/MCP paths are stable.