fimo 0.20.0 → 0.21.0-experimental.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 (322) hide show
  1. package/README.md +1 -1
  2. package/assets/agent-templates/_default/GOAL.md +10 -0
  3. package/assets/agent-templates/_default/capabilities.yaml +10 -0
  4. package/assets/content-templates/shared/types.eta +1 -1
  5. package/assets/skills/fimo-cli/SKILL.md +2 -1
  6. package/assets/skills/fimo-cli/references/agents.md +136 -36
  7. package/assets/skills/fimo-cli/references/branches.md +8 -5
  8. package/assets/skills/fimo-cli/references/deploy.md +11 -2
  9. package/assets/skills/fimo-cli/references/domains.md +12 -0
  10. package/assets/skills/fimo-cli/references/forms.md +1 -1
  11. package/assets/skills/fimo-cli/references/init.md +9 -2
  12. package/assets/skills/fimo-cli/references/locales.md +1 -1
  13. package/assets/skills/fimo-cli/references/mcp.md +1 -1
  14. package/assets/skills/fimo-cli/references/media.md +18 -1
  15. package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +3 -1
  16. package/assets/skills/fimo-cli/references/projects.md +7 -7
  17. package/assets/skills/fimo-code/assets/react-router-locales/navigation.tsx +1 -1
  18. package/assets/skills/fimo-code/references/assets.md +2 -2
  19. package/assets/skills/fimo-code/references/best-practices/next.md +1 -1
  20. package/assets/skills/fimo-code/references/content/schema.md +23 -0
  21. package/assets/skills/fimo-code/references/forms.md +1 -1
  22. package/assets/skills/fimo-code/references/frameworks/astro.md +8 -2
  23. package/assets/skills/fimo-code/references/frameworks/compatibility.md +9 -9
  24. package/assets/skills/fimo-code/references/frameworks/hosting.md +17 -13
  25. package/assets/skills/fimo-code/references/frameworks/next/app-router.md +8 -9
  26. package/assets/skills/fimo-code/references/frameworks/next/locales.md +5 -5
  27. package/assets/skills/fimo-code/references/frameworks/next/pages-router.md +5 -5
  28. package/assets/skills/fimo-code/references/frameworks/next.md +41 -32
  29. package/assets/skills/fimo-code/references/frameworks/react-router.md +10 -7
  30. package/assets/skills/fimo-code/references/frameworks/sveltekit.md +22 -15
  31. package/assets/skills/fimo-code/references/frameworks/vite-react.md +7 -5
  32. package/assets/skills/fimo-code/references/labels.md +4 -4
  33. package/assets/skills/fimo-code/references/locales.md +2 -2
  34. package/assets/skills/fimo-code/references/ui.md +4 -4
  35. package/assets/skills/fimo-migration/SKILL.md +51 -30
  36. package/assets/skills/fimo-migration/references/frameworks/nextjs.md +12 -15
  37. package/assets/skills/fimo-migration/references/media.md +12 -8
  38. package/assets/skills/fimo-migration/references/qa.md +12 -11
  39. package/assets/skills/fimo-migration/references/workers/content-planner.md +33 -4
  40. package/assets/skills/fimo-migration/references/workers/validator.md +10 -0
  41. package/assets/skills/fimo-migration/references/workers.md +19 -10
  42. package/assets/skills/fimo-migration/references/workflow.md +29 -11
  43. package/assets/skills/fimo-studio/references/ai-chat.md +1 -1
  44. package/assets/skills/fimo-studio/references/billing-and-credits.md +18 -1
  45. package/assets/skills/fimo-studio/references/cms.md +2 -0
  46. package/assets/skills/fimo-studio/references/preview-and-responsive.md +1 -0
  47. package/assets/starters/fimo-site/template/src/pages/Contact.tsx +1 -1
  48. package/assets/starters/fimo-site/template/src/pages/SiteContent.tsx +1 -1
  49. package/assets/starters/fimo-site/template/src/schemas/HomePage.ts +3 -3
  50. package/assets/starters/fimo-site/template/src/schemas/HomePage.types.ts +1 -1
  51. package/dist/build/astro/config.d.ts +13 -2
  52. package/dist/build/astro/config.js +9 -24
  53. package/dist/build/next/moved.d.ts +2 -0
  54. package/dist/build/next/moved.js +2 -0
  55. package/dist/build/react/router-moved.d.ts +2 -0
  56. package/dist/build/react/router-moved.js +2 -0
  57. package/dist/build/react/router-preset-moved.d.ts +2 -0
  58. package/dist/build/react/router-preset-moved.js +2 -0
  59. package/dist/build/react/router-routes-moved.d.ts +2 -0
  60. package/dist/build/react/router-routes-moved.js +2 -0
  61. package/dist/build/react/ui-moved.d.ts +2 -0
  62. package/dist/build/react/ui-moved.js +2 -0
  63. package/dist/build/react/vite-moved.d.ts +2 -0
  64. package/dist/build/react/vite-moved.js +2 -0
  65. package/dist/build/sveltekit/config.d.ts +5 -4
  66. package/dist/build/sveltekit/config.js +6 -15
  67. package/dist/build/sveltekit/moved.d.ts +13 -0
  68. package/dist/build/sveltekit/moved.js +3 -0
  69. package/dist/build/vite/data-id.d.ts +11 -0
  70. package/dist/build/vite/data-id.js +20 -0
  71. package/dist/build/vite/plugins/runtime-env.d.ts +1 -1
  72. package/dist/build/vite/plugins/runtime-env.js +6 -2
  73. package/dist/build/vite/runtime-env.d.ts +2 -0
  74. package/dist/build/vite/runtime-env.js +1 -0
  75. package/dist/cli/bundle.json +1 -1
  76. package/dist/cli/index.js +115 -110
  77. package/dist/runtime/content/client/internal.js +1 -1
  78. package/dist/runtime/content/index.d.ts +6 -1
  79. package/dist/runtime/content/index.js +6 -0
  80. package/dist/runtime/i18n/index.d.ts +2 -0
  81. package/dist/runtime/i18n/index.js +1 -0
  82. package/dist/runtime/labels/index.d.ts +3 -0
  83. package/dist/runtime/labels/index.js +2 -0
  84. package/dist/runtime/preview/index.d.ts +5 -0
  85. package/dist/runtime/preview/index.js +4 -0
  86. package/dist/runtime/preview/script.d.ts +3 -0
  87. package/dist/runtime/preview/script.js +14 -0
  88. package/dist/runtime/primitives/lib/index.d.ts +2 -0
  89. package/dist/runtime/primitives/lib/index.js +2 -0
  90. package/dist/runtime/seo/index.d.ts +0 -8
  91. package/dist/runtime/seo/index.js +0 -8
  92. package/dist/runtime/shared/config.d.ts +6 -0
  93. package/dist/runtime/shared/config.js +4 -0
  94. package/dist/runtime/shared/local-runtime-env.d.ts +2 -2
  95. package/dist/runtime/shared/local-runtime-env.js +7 -5
  96. package/dist/runtime/templates.d.ts +20 -4
  97. package/dist/runtime/templates.js +60 -18
  98. package/dist/scripts/extract-translations.js +8 -3
  99. package/dist/scripts/index.d.ts +3 -0
  100. package/dist/scripts/index.js +2 -0
  101. package/dist/scripts/sync-forms.js +21 -9
  102. package/dist/scripts/sync-schemas.js +129 -21
  103. package/dist/scripts/validate-schemas.js +63 -2
  104. package/package.json +72 -71
  105. package/release.json +2 -2
  106. package/templates/astro/AGENTS.md +1 -1
  107. package/templates/astro/astro.config.mjs +1 -1
  108. package/templates/astro/package.json +4 -2
  109. package/templates/astro/pnpm-workspace.yaml +6 -2
  110. package/templates/nextjs/.fimo/config.json +1 -2
  111. package/templates/nextjs/AGENTS.md +6 -16
  112. package/templates/nextjs/next.config.ts +4 -2
  113. package/templates/nextjs/package.json +4 -2
  114. package/templates/nextjs/pnpm-workspace.yaml +6 -2
  115. package/templates/nextjs/src/app/layout.tsx +16 -0
  116. package/templates/nextjs/src/locales.ts +3 -6
  117. package/templates/react-router/AGENTS.md +1 -1
  118. package/templates/react-router/package.json +5 -2
  119. package/templates/react-router/pnpm-workspace.yaml +6 -6
  120. package/templates/react-router/react-router.config.ts +1 -1
  121. package/templates/react-router/src/pages/legal/LegalPage.tsx +1 -1
  122. package/templates/react-router/src/root.tsx +1 -1
  123. package/templates/react-router/src/vite-env.d.ts +0 -1
  124. package/templates/react-router/vite.config.ts +1 -1
  125. package/templates/sveltekit/AGENTS.md +1 -1
  126. package/templates/sveltekit/package.json +4 -2
  127. package/templates/sveltekit/pnpm-workspace.yaml +6 -2
  128. package/templates/sveltekit/src/routes/+layout.server.ts +1 -1
  129. package/templates/sveltekit/src/routes/+layout.svelte +1 -1
  130. package/templates/sveltekit/svelte.config.js +1 -1
  131. package/templates/sveltekit/vite.config.ts +1 -1
  132. package/assets/sveltekit/components/Boolean.svelte +0 -19
  133. package/assets/sveltekit/components/Date.svelte +0 -33
  134. package/assets/sveltekit/components/DateTime.svelte +0 -35
  135. package/assets/sveltekit/components/FimoProvider.svelte +0 -35
  136. package/assets/sveltekit/components/Image.svelte +0 -80
  137. package/assets/sveltekit/components/Json.svelte +0 -18
  138. package/assets/sveltekit/components/Label.svelte +0 -16
  139. package/assets/sveltekit/components/Number.svelte +0 -21
  140. package/assets/sveltekit/components/RichText.svelte +0 -19
  141. package/assets/sveltekit/components/Text.svelte +0 -30
  142. package/assets/sveltekit/components/Video.svelte +0 -37
  143. package/assets/sveltekit/components/index.d.ts +0 -11
  144. package/assets/sveltekit/components/index.js +0 -11
  145. package/dist/build/next/config.d.ts +0 -17
  146. package/dist/build/next/config.js +0 -66
  147. package/dist/build/sveltekit/data-id.d.ts +0 -3
  148. package/dist/build/sveltekit/data-id.js +0 -171
  149. package/dist/build/sveltekit/files/edge.js +0 -68
  150. package/dist/build/sveltekit/files/serverless.js +0 -42
  151. package/dist/build/sveltekit/vite.d.ts +0 -12
  152. package/dist/build/sveltekit/vite.js +0 -14
  153. package/dist/build/vite/index.d.ts +0 -42
  154. package/dist/build/vite/index.js +0 -160
  155. package/dist/build/vite/plugins/content-sync.d.ts +0 -11
  156. package/dist/build/vite/plugins/content-sync.js +0 -41
  157. package/dist/build/vite/plugins/data-id.d.ts +0 -12
  158. package/dist/build/vite/plugins/data-id.js +0 -109
  159. package/dist/build/vite/plugins/fimo-config.d.ts +0 -12
  160. package/dist/build/vite/plugins/fimo-config.js +0 -68
  161. package/dist/build/vite/plugins/overlay.d.ts +0 -3
  162. package/dist/build/vite/plugins/overlay.js +0 -154
  163. package/dist/build/vite/plugins/robots.d.ts +0 -10
  164. package/dist/build/vite/plugins/robots.js +0 -56
  165. package/dist/build/vite/plugins/seo.d.ts +0 -3
  166. package/dist/build/vite/plugins/seo.js +0 -112
  167. package/dist/build/vite/plugins/server-config.d.ts +0 -3
  168. package/dist/build/vite/plugins/server-config.js +0 -36
  169. package/dist/build/vite/plugins/sitemap.d.ts +0 -3
  170. package/dist/build/vite/plugins/sitemap.js +0 -73
  171. package/dist/build/vite/plugins/translations.d.ts +0 -11
  172. package/dist/build/vite/plugins/translations.js +0 -601
  173. package/dist/runtime/app/FimoProviders.d.ts +0 -30
  174. package/dist/runtime/app/FimoProviders.js +0 -186
  175. package/dist/runtime/app/FimoScripts.d.ts +0 -14
  176. package/dist/runtime/app/FimoScripts.js +0 -48
  177. package/dist/runtime/app/index.d.ts +0 -8
  178. package/dist/runtime/app/index.js +0 -4
  179. package/dist/runtime/app/prefetch.d.ts +0 -9
  180. package/dist/runtime/app/prefetch.js +0 -39
  181. package/dist/runtime/content/DataSourcesProvider.d.ts +0 -4
  182. package/dist/runtime/content/DataSourcesProvider.js +0 -63
  183. package/dist/runtime/content/RefreshContentProvider.d.ts +0 -19
  184. package/dist/runtime/content/RefreshContentProvider.js +0 -71
  185. package/dist/runtime/content/client/createContentClient.d.ts +0 -7
  186. package/dist/runtime/content/client/createContentClient.js +0 -7
  187. package/dist/runtime/content/client/createSingletonClient.d.ts +0 -5
  188. package/dist/runtime/content/client/createSingletonClient.js +0 -6
  189. package/dist/runtime/content/client/react-content-client.d.ts +0 -10
  190. package/dist/runtime/content/client/react-content-client.js +0 -165
  191. package/dist/runtime/content/client/react-singleton-client.d.ts +0 -7
  192. package/dist/runtime/content/client/react-singleton-client.js +0 -38
  193. package/dist/runtime/content/client/types.d.ts +0 -42
  194. package/dist/runtime/content/client/types.js +0 -1
  195. package/dist/runtime/content/client/useQueryLocale.d.ts +0 -2
  196. package/dist/runtime/content/client/useQueryLocale.js +0 -5
  197. package/dist/runtime/content/client/vite-runtime.d.ts +0 -3
  198. package/dist/runtime/content/client/vite-runtime.js +0 -23
  199. package/dist/runtime/content/utils/retrieve-data-sources.d.ts +0 -29
  200. package/dist/runtime/content/utils/retrieve-data-sources.js +0 -107
  201. package/dist/runtime/core/AppErrorBoundary.d.ts +0 -10
  202. package/dist/runtime/core/AppErrorBoundary.js +0 -27
  203. package/dist/runtime/core/ViteLifecycles.d.ts +0 -5
  204. package/dist/runtime/core/ViteLifecycles.js +0 -35
  205. package/dist/runtime/i18n/FimoLocaleContext.d.ts +0 -9
  206. package/dist/runtime/i18n/FimoLocaleContext.js +0 -17
  207. package/dist/runtime/iframe/ConsoleErrorProvider.d.ts +0 -3
  208. package/dist/runtime/iframe/ConsoleErrorProvider.js +0 -103
  209. package/dist/runtime/iframe/ScreenshotProvider.d.ts +0 -3
  210. package/dist/runtime/iframe/ScreenshotProvider.js +0 -60
  211. package/dist/runtime/iframe/runtime/overlay-hmr.d.ts +0 -2
  212. package/dist/runtime/iframe/runtime/overlay-hmr.js +0 -27
  213. package/dist/runtime/iframe/runtime/overlay-runtime.d.ts +0 -2
  214. package/dist/runtime/iframe/runtime/overlay-runtime.js +0 -103
  215. package/dist/runtime/index.d.ts +0 -22
  216. package/dist/runtime/index.js +0 -23
  217. package/dist/runtime/next/client-runtime.d.ts +0 -3
  218. package/dist/runtime/next/client-runtime.js +0 -24
  219. package/dist/runtime/next/client.d.ts +0 -28
  220. package/dist/runtime/next/client.js +0 -25
  221. package/dist/runtime/next/facade.d.ts +0 -8
  222. package/dist/runtime/next/facade.js +0 -34
  223. package/dist/runtime/next/labels.d.ts +0 -7
  224. package/dist/runtime/next/labels.js +0 -9
  225. package/dist/runtime/next/preview.d.ts +0 -13
  226. package/dist/runtime/next/preview.js +0 -34
  227. package/dist/runtime/next/primitives/Text.d.ts +0 -10
  228. package/dist/runtime/next/primitives/Text.js +0 -18
  229. package/dist/runtime/next/primitives/server.d.ts +0 -11
  230. package/dist/runtime/next/primitives/server.js +0 -54
  231. package/dist/runtime/next/provider.d.ts +0 -18
  232. package/dist/runtime/next/provider.js +0 -39
  233. package/dist/runtime/next/server-runtime.d.ts +0 -3
  234. package/dist/runtime/next/server-runtime.js +0 -23
  235. package/dist/runtime/next/server.d.ts +0 -21
  236. package/dist/runtime/next/server.js +0 -16
  237. package/dist/runtime/primitives/index.d.ts +0 -16
  238. package/dist/runtime/primitives/index.js +0 -17
  239. package/dist/runtime/react/primitives/contracts.d.ts +0 -94
  240. package/dist/runtime/react/primitives/contracts.js +0 -1
  241. package/dist/runtime/react/primitives/editable/Boolean.d.ts +0 -5
  242. package/dist/runtime/react/primitives/editable/Boolean.js +0 -11
  243. package/dist/runtime/react/primitives/editable/Date.d.ts +0 -4
  244. package/dist/runtime/react/primitives/editable/Date.js +0 -12
  245. package/dist/runtime/react/primitives/editable/DateTime.d.ts +0 -4
  246. package/dist/runtime/react/primitives/editable/DateTime.js +0 -13
  247. package/dist/runtime/react/primitives/editable/Image.d.ts +0 -4
  248. package/dist/runtime/react/primitives/editable/Image.js +0 -10
  249. package/dist/runtime/react/primitives/editable/Json.d.ts +0 -5
  250. package/dist/runtime/react/primitives/editable/Json.js +0 -11
  251. package/dist/runtime/react/primitives/editable/RichText.d.ts +0 -4
  252. package/dist/runtime/react/primitives/editable/RichText.js +0 -11
  253. package/dist/runtime/react/primitives/editable/Text.d.ts +0 -20
  254. package/dist/runtime/react/primitives/editable/Text.js +0 -36
  255. package/dist/runtime/react/primitives/editable/Video.d.ts +0 -4
  256. package/dist/runtime/react/primitives/editable/Video.js +0 -10
  257. package/dist/runtime/react/primitives/renderers/DateRenderer.d.ts +0 -17
  258. package/dist/runtime/react/primitives/renderers/DateRenderer.js +0 -17
  259. package/dist/runtime/react/primitives/renderers/ImageRenderer.d.ts +0 -8
  260. package/dist/runtime/react/primitives/renderers/ImageRenderer.js +0 -31
  261. package/dist/runtime/react/primitives/renderers/RichTextRenderer.d.ts +0 -12
  262. package/dist/runtime/react/primitives/renderers/RichTextRenderer.js +0 -135
  263. package/dist/runtime/react/primitives/renderers/StaticImage.d.ts +0 -35
  264. package/dist/runtime/react/primitives/renderers/StaticImage.js +0 -58
  265. package/dist/runtime/react/primitives/renderers/VideoRenderer.d.ts +0 -8
  266. package/dist/runtime/react/primitives/renderers/VideoRenderer.js +0 -10
  267. package/dist/runtime/react/useFimoLiveValue.d.ts +0 -20
  268. package/dist/runtime/react/useFimoLiveValue.js +0 -43
  269. package/dist/runtime/react-router/active-routes.d.ts +0 -12
  270. package/dist/runtime/react-router/active-routes.js +0 -60
  271. package/dist/runtime/react-router/index.d.ts +0 -16
  272. package/dist/runtime/react-router/index.js +0 -20
  273. package/dist/runtime/react-router/legacy/routes.d.ts +0 -35
  274. package/dist/runtime/react-router/legacy/routes.js +0 -86
  275. package/dist/runtime/react-router/navigation-utils.d.ts +0 -8
  276. package/dist/runtime/react-router/navigation-utils.js +0 -36
  277. package/dist/runtime/react-router/navigation.d.ts +0 -12
  278. package/dist/runtime/react-router/navigation.js +0 -28
  279. package/dist/runtime/react-router/preset.d.ts +0 -30
  280. package/dist/runtime/react-router/preset.js +0 -33
  281. package/dist/runtime/routing/AppResetScrollOnNavigate.d.ts +0 -2
  282. package/dist/runtime/routing/AppResetScrollOnNavigate.js +0 -12
  283. package/dist/runtime/routing/AppRoutesProvider.d.ts +0 -25
  284. package/dist/runtime/routing/AppRoutesProvider.js +0 -112
  285. package/dist/runtime/seo/buildSeoForPath.d.ts +0 -74
  286. package/dist/runtime/seo/buildSeoForPath.js +0 -55
  287. package/dist/runtime/seo/htmlProps.d.ts +0 -13
  288. package/dist/runtime/seo/htmlProps.js +0 -15
  289. package/dist/runtime/sveltekit/content.d.ts +0 -25
  290. package/dist/runtime/sveltekit/content.js +0 -33
  291. package/dist/runtime/sveltekit/context-contract.d.ts +0 -5
  292. package/dist/runtime/sveltekit/context-contract.js +0 -2
  293. package/dist/runtime/sveltekit/context.d.ts +0 -8
  294. package/dist/runtime/sveltekit/context.js +0 -25
  295. package/dist/runtime/sveltekit/forms.d.ts +0 -15
  296. package/dist/runtime/sveltekit/forms.js +0 -15
  297. package/dist/runtime/sveltekit/index.d.ts +0 -9
  298. package/dist/runtime/sveltekit/index.js +0 -5
  299. package/dist/runtime/sveltekit/internal.d.ts +0 -6
  300. package/dist/runtime/sveltekit/internal.js +0 -12
  301. package/dist/runtime/sveltekit/labels.d.ts +0 -20
  302. package/dist/runtime/sveltekit/labels.js +0 -13
  303. package/dist/runtime/sveltekit/preview.d.ts +0 -28
  304. package/dist/runtime/sveltekit/preview.js +0 -82
  305. package/dist/runtime/sveltekit/runtime.d.ts +0 -9
  306. package/dist/runtime/sveltekit/runtime.js +0 -26
  307. package/dist/runtime/t/OptionalTracking.d.ts +0 -13
  308. package/dist/runtime/t/OptionalTracking.js +0 -28
  309. package/dist/runtime/t/Pageview.d.ts +0 -9
  310. package/dist/runtime/t/Pageview.js +0 -118
  311. package/dist/runtime/vite/Label.d.ts +0 -13
  312. package/dist/runtime/vite/Label.js +0 -16
  313. package/dist/runtime/vite/primitives/Images.d.ts +0 -4
  314. package/dist/runtime/vite/primitives/Images.js +0 -12
  315. package/dist/runtime/vite/translations.d.ts +0 -28
  316. package/dist/runtime/vite/translations.js +0 -103
  317. package/templates/nextjs/src/app/(default)/layout.tsx +0 -10
  318. package/templates/nextjs/src/app/[locale]/layout.tsx +0 -22
  319. package/templates/nextjs/src/app/[locale]/page.tsx +0 -1
  320. package/templates/nextjs/src/components/Document.tsx +0 -26
  321. package/templates/nextjs/src/components/FimoPreviewBridge.tsx +0 -13
  322. /package/templates/nextjs/src/app/{(default)/page.tsx → page.tsx} +0 -0
@@ -73,11 +73,11 @@ Never construct `FimoString`, `FimoRichText`, `FimoBoolean`, or `FimoMedia` manu
73
73
 
74
74
  Choose the framework surface:
75
75
 
76
- - Next Server Components and data functions → `fimo/next`
77
- - Next Client Components → `fimo/next/client`
78
- - React Router/Vite client → `fimo/ui`
76
+ - Next Server Components and data functions → `fimo-next`
77
+ - Next Client Components → `fimo-next/client`
78
+ - React Router/Vite client → `fimo-react`
79
79
  - Astro pages → `fimo/astro/components`
80
- - Svelte components → `fimo/sveltekit/components`
80
+ - Svelte components → `fimo-sveltekit/components`
81
81
 
82
82
  Load the framework reference before copying an example. Next server and client imports are deliberately separate so React Query/client code does not leak into server bundles. Astro uses native `.astro` components and does not require React.
83
83
 
@@ -76,11 +76,20 @@ the selected pinned CLI. Give workers the project id, environment, exact CLI
76
76
  invocation, and verification command. Generated `.fimo` JSON without a
77
77
  successful platform read is not initialization.
78
78
 
79
- For an existing non-empty application, reuse the CLI's real flow: create or
80
- select the Fimo project with `fimo init`, then run
81
- `fimo link <project-id> -C <target> --env <env>` and verify the data plane.
82
- `fimo migrate init <url> <dir>` is only usable when the target directory is
83
- empty or already linked.
79
+ Pick the setup path from the evidence:
80
+
81
+ - **Source-backed, same framework** — copy or `git worktree` the source into the
82
+ target directory first, then run `fimo link -C <target> --env <env>`
83
+ (`fimo link <project-id> -C <target> --env <env>` when the owner supplied an
84
+ id). Link creates or selects the project, keeps the source's code, framework,
85
+ git history, and `origin`, initializes a repository when the copy has none,
86
+ and adds only the Fimo dependency, `.fimo/project.json`, the `fimo` remote,
87
+ and `.fimo/config.json#runtime.framework`. It never overlays a template, so
88
+ the target must already contain the source.
89
+ - **Empty target, or an explicit framework conversion** — `fimo init` with the
90
+ chosen `--framework`, or `fimo migrate init <url> <dir>` for a URL crawl.
91
+ Both refuse a non-empty target and write nothing when they refuse.
92
+
84
93
  If authentication, organization selection, project creation, environment
85
94
  resolution, linking, or the verification read fails, stop before workers and
86
95
  report the exact failed command and setup requirement.
@@ -134,8 +143,9 @@ report the exact failed command and setup requirement.
134
143
  Private APIs and CMSs require a user-provided export or a narrowly scoped
135
144
  server-side credential. Never read credentials from browser code or copy
136
145
  them into browser code, migration artifacts, or reports. Target-project
137
- authentication does not grant source access. Missing access stops only that
138
- data lane and becomes unresolved; never invent replacement content.
146
+ authentication does not grant source access. If the source API URL or access
147
+ is missing or unreachable, stop and ask the user for it; do not guess, replace
148
+ the content, or mark the lane complete.
139
149
  - Model content before page code. Generated JSON is not imported content.
140
150
  - Model editorial content Fimo-natively: blocks for structured or repeatable
141
151
  sections, richtext for rich bodies, references for categories, authors,
@@ -162,8 +172,9 @@ report the exact failed command and setup requirement.
162
172
  - Do not report completion until the QA gate passes or every failed check is
163
173
  present in the migration report.
164
174
  - Import through the data-plane commands and verify locally before deployment.
165
- Propose one preview deployment after a successful run, but deploy or publish
166
- only after an explicit user request.
175
+ Deployment is not QA evidence. After successful local QA, follow the
176
+ new-project or existing-project rule in Completion and deployment. Never
177
+ publish without an explicit user request.
167
178
 
168
179
  ## Orient and route
169
180
 
@@ -204,14 +215,16 @@ The target is its own Fimo project directory. The client source checkout is
204
215
  read-only evidence: never run setup inside it, never modify it, and never
205
216
  hand-write a `.fimo/project.json` marker to fake a link.
206
217
 
207
- `fimo migrate init` is the migration setup gate. For a source-backed migration
208
- it validates the target and CLI auth, then delegates project selection and
209
- creation to the standard `fimo init` flow (same options, no separate creation
210
- path), and returns a setup receipt covering auth, the target link, the
211
- migration directory, and readiness. It fails with a structured error when auth
212
- is missing, the target is missing or invalid, or the project or organization
213
- is inaccessible. Both forms need a real ID supplied by the owner — without
214
- one, stop with an unresolved owner action instead of inventing an ID:
218
+ `fimo migrate init` is the setup gate for an empty target; a target that
219
+ already holds the copied source is set up with `fimo link` instead (see
220
+ Initialized target precondition). `fimo migrate init` validates the target and
221
+ CLI auth, then delegates project selection and creation to the standard
222
+ `fimo init` flow (same options, no separate creation path), and returns a setup
223
+ receipt covering auth, the target link, the migration directory, and readiness.
224
+ It fails with a structured error when auth is missing, the target is missing or
225
+ invalid, or the project or organization is inaccessible. Both forms need a real
226
+ ID supplied by the owner — without one, stop with an unresolved owner action
227
+ instead of inventing an ID:
215
228
 
216
229
  - Link an owner-supplied (empty) project:
217
230
  `fimo migrate init <target-dir> --project-id <projectId> --framework <framework>`
@@ -225,8 +238,8 @@ React Router scaffold.
225
238
 
226
239
  Setup scaffolds the target and pushes its initial commit; that is the only
227
240
  remote write it performs — it never pushes schemas, uploads assets, or imports
228
- entries. `fimo deploy` and `fimo publish` stay separate and are never run
229
- automatically (see Completion and deployment).
241
+ entries. Setup itself never deploys or publishes; the one new-project preview
242
+ deploy happens only after successful local QA (see Completion and deployment).
230
243
 
231
244
  ## Command surface
232
245
 
@@ -253,12 +266,16 @@ Commands that perform actual data writes, all requiring the linked target:
253
266
  `fimo singles update`, `fimo labels set|set-many`, `fimo forms push`.
254
267
  - `fimo migrate init` (source-backed form): the project link/creation and
255
268
  initial commit push described above.
269
+ - `fimo link`: project creation or selection plus the in-place adoption of a
270
+ copied source target.
256
271
  - `fimo deploy` / `fimo publish` — owner-approved only.
257
272
 
258
273
  ## Migration loop
259
274
 
260
- 1. Run `fimo migrate init` and inspect the initialized target before any worker
261
- edits it. Choose the target framework through the same canonical option as
275
+ 1. Run the setup path from "Initialized target precondition" and inspect the
276
+ initialized target before any worker edits it. A `fimo link` adoption keeps
277
+ the source framework; the `fimo init` / `fimo migrate init` paths choose the
278
+ target framework through the same canonical option as
262
279
  `fimo init`: pass the detected source framework for a source-backed
263
280
  migration, the framework the user explicitly chose for a conversion, and —
264
281
  for a URL-only or rebuild migration — the framework the user selected (ask
@@ -276,15 +293,19 @@ Commands that perform actual data writes, all requiring the linked target:
276
293
  all structural target code, and must pass the framework gate in
277
294
  `references/workers/framework.md` before content data and code workers
278
295
  start. Worker prompts and worker reports are plain text.
279
- 3. The content planner reads every content-bearing source and consumer, writes
280
- and pushes complete schemas, and writes the content import payloads required
281
- by the Fimo CLI. It records source items, consumers, batches, and unresolved
282
- behavior in the text plan; it does not create a second orchestration format.
283
- 4. Once the content plan is ready, upload every planned asset and patch its
284
- target payload references. After the asset gate passes (and, in conversion
285
- mode, the framework gate), run data workers per schema/locale. Start content
286
- code workers only after their imported records read back successfully, so
287
- they can prove real values render through the native Fimo APIs.
296
+ 3. The content planner reads every content-bearing source and consumer. When
297
+ content comes from an API, it traces the active application client and
298
+ retrieves the complete accessible dataset before pushing schemas. It then
299
+ writes complete schemas and import payloads, recording source items,
300
+ consumers, batches, and unresolved behavior in the text plan rather than a
301
+ second orchestration format.
302
+ 4. Each discovery lane reports active media in its own surface. After the
303
+ runtime/framework, routes/SEO, and content discovery receipts are terminal,
304
+ the coordinator performs one fan-in: combine and deduplicate them into the
305
+ complete media-obligation list. Give only that list to the media worker; do
306
+ not require a content-planner rescan. Once it returns every mapping, patch
307
+ code and payload consumers. Start data after the asset gate and content code
308
+ only after its imported records read back successfully.
288
309
  5. Fan in the workers' plain-text reports. Compare their claimed files with
289
310
  `git diff`, their Fimo writes with read-back CLI queries, and their source
290
311
  coverage with the content plan. Every source item must be migrated,
@@ -86,21 +86,18 @@ behavior in place; when one cannot be preserved, record an explicit gap with
86
86
  the affected routes instead of shipping pages that silently lost their share
87
87
  metadata.
88
88
 
89
- ## Build-time and browser runtime
90
-
91
- The Next server runtime reads `FIMO_CONTENT_API_URL`; client components and
92
- generated client hooks read `NEXT_PUBLIC_FIMO_API_URL`. For a local production
93
- build or migration acceptance run, expose both names and point them at the
94
- same tenant content URL. `FIMO_API_URL` is the management/CLI API and is not a
95
- substitute for either content API variable.
96
-
97
- `withFimo` derives these aliases during `next dev` when the project is linked,
98
- so local development does not need hand-written values. A production build,
99
- however, compiles `NEXT_PUBLIC_*` values into the browser bundle and the
100
- adapter intentionally does not inject them outside the development phase.
101
- For `next build`/`next start`, set temporary values in the shell or an ignored
102
- `.env.local`; never commit secret values. In either mode, exercise at least one
103
- client-side data read after startup.
89
+ ## Fimo connection
90
+
91
+ Follow the target project's `fimo-code` Next.js reference and render its
92
+ `FimoProvider` once at the application root. The provider uses an explicit
93
+ host connection when one exists; otherwise it resolves the linked project and
94
+ active git branch on the server and passes only the public connection to the
95
+ browser. `withFimo` handles hosted preview origins, not the application
96
+ connection.
97
+
98
+ Do not create or edit `.env` / `.env.local` for a linked project's Fimo
99
+ connection. Run the project's normal `next dev`, `next build`, and `next start`
100
+ commands, then exercise at least one server read and one client-side data read.
104
101
 
105
102
  ## Preview embedding and response headers
106
103
 
@@ -94,12 +94,16 @@ If a media asset cannot be downloaded or uploaded:
94
94
  - include a suggested action such as re-exporting the asset folder or providing
95
95
  credentials
96
96
 
97
- ## Planner obligations
98
-
99
- The content planner enumerates every media obligation before fan-out: route and
100
- SEO media, every schema media field, and every image node nested in richtext or
101
- Tiptap JSON. Record its source location, consuming route/entry, and intended
102
- target field or node. Give each obligation a stable identity that includes its
103
- field or rich-text node path; a shared label or source URL is not unique. The
104
- asset worker cannot report complete until every obligation has an uploaded or
97
+ ## Media obligations
98
+
99
+ Each discovery lane reports active media in its own surface: runtime/framework
100
+ files, routes and SEO, or content and API data. After every discovery receipt is
101
+ terminal, the coordinator combines and deduplicates those findings into the
102
+ complete media-obligation list. This consolidated list is the media worker's
103
+ only input; do not make the content planner rescan the whole application.
104
+
105
+ Record each obligation's source location, consuming route/entry, and intended
106
+ target field or node. Give it a stable identity that includes its field or
107
+ rich-text node path; a shared label or source URL is not unique. The media
108
+ worker cannot report complete until every obligation has an uploaded or
105
109
  duplicate Fimo mapping, or an explicit unresolved/unsupported disposition.
@@ -44,9 +44,10 @@ items.
44
44
  - Every media item referenced by routes, CMS entries, SEO, or forms is uploaded to
45
45
  the Fimo media library (Fimo asset id/URL) or has an unresolved item. A local
46
46
  `public/` copy is not an upload mapping.
47
- - Every planner media obligation, including schema media fields and nested
48
- richtext/Tiptap image nodes, has a mapping or explicit disposition; the asset
49
- worker's completion claim alone is not evidence.
47
+ - Every obligation in the coordinator's consolidated media list, including
48
+ schema media fields and nested richtext/Tiptap image nodes, has a mapping or
49
+ explicit disposition; the media worker's completion claim alone is not
50
+ evidence. Reconcile the list against every discovery lane's media findings.
50
51
  - Every visible form has a Fimo replacement, a preserved third-party
51
52
  integration, or an unsupported note. A form became Fimo-native only when the
52
53
  Fimo form matches the source behavior 1:1.
@@ -85,11 +86,11 @@ items.
85
86
  used a user export or narrowly scoped server-side credential. Missing access
86
87
  is unresolved for that lane, and no content was guessed.
87
88
 
88
- For linked Next.js targets, `withFimo` derives `FIMO_CONTENT_API_URL` and
89
- `NEXT_PUBLIC_FIMO_API_URL` from `.fimo/project.json` during `next dev`,
90
- `next build`, and `next start`. Both aliases resolve to the same tenant API,
91
- while non-empty user overrides remain untouched; no committed env file is
92
- required.
89
+ For linked Next.js targets, the root `FimoProvider` resolves an explicit host
90
+ connection first, otherwise `.fimo/project.json` plus the active git branch,
91
+ and passes only the public connection to the browser. `withFimo` handles
92
+ hosted preview origins, not this connection. Run the normal `next dev`,
93
+ `next build`, and `next start` commands without creating a Fimo env file.
93
94
 
94
95
  ## Hosting
95
96
 
@@ -103,9 +104,9 @@ Owned by the runtime lane; verified here read-only.
103
104
  translation goes through `FIMO_PREVIEW_ALLOWED_ORIGINS`; `withFimo` alone
104
105
  does not solve headers — it only extends `allowedDevOrigins` during
105
106
  `next dev`.
106
- - The runtime report covers local startup, preview embedding, build, derived
107
- aliases, header translations, and integration env-key names, with every
108
- claim backed by evidence.
107
+ - The runtime report covers local startup, preview embedding, build, the
108
+ resolved Fimo connection, header translations, and integration env-key
109
+ names, with every claim backed by evidence.
109
110
  - With a browser available, record `browserProof` (rendered route plus console
110
111
  state) for startup and embedding. Without one, use deterministic HTTP
111
112
  status/header/process/log checks and mark visual proof explicitly
@@ -5,9 +5,8 @@ handoff. Do not import entries or rewrite application consumers.
5
5
 
6
6
  1. Inspect every content-bearing source and consumer: Markdown/MDX bodies and
7
7
  frontmatter, JSX/TSX modules, hardcoded arrays and objects, imports, data
8
- clients, and call sites. Read local exports and public APIs directly. A
9
- private API requires a user-provided export or narrowly scoped server-side
10
- credential; never recover or copy secret values.
8
+ clients, and call sites. Identify whether each active source is a file,
9
+ inline value, API, CMS, or a mix before designing schemas.
11
10
  2. Classify each value as collection content, single content, an
12
11
  editor-visible label, or application-owned code. Repetition is evidence,
13
12
  not an automatic collection rule. Assistive text, identifiers, and values
@@ -54,11 +53,41 @@ A construct is unresolved only when it genuinely cannot be migrated. Include
54
53
  its exact source, user-visible impact, reason, and owner action; "custom" is not
55
54
  a reason.
56
55
 
56
+ ## API-backed content
57
+
58
+ Retrieve API content during this planning pass, before schemas are pushed or
59
+ data workers start:
60
+
61
+ 1. Trace the application's active client, base-URL environment key, endpoints,
62
+ queries, pagination, locales, publication states, relations, media, and
63
+ consuming call sites. Server rendering may hide requests from the browser,
64
+ so browser traffic is fallback evidence rather than the source of truth.
65
+ 2. Prove access with one read-only request. Read public APIs directly. Private
66
+ APIs require an owner-provided export or narrowly scoped server-side
67
+ credential; never recover, log, persist, or copy secret values. If the base
68
+ URL or required access is missing or unreachable, stop and ask the user for
69
+ it before planning schemas or payloads.
70
+ 3. Fetch every required page, locale, and referenced record. For a few bounded
71
+ endpoints, direct requests are enough. For repeated or paginated reads,
72
+ write a temporary source-specific read-only script under
73
+ `.fimo/migration/tmp/`, then spot-check counts and references.
74
+ 4. Preserve the retrieved responses as source evidence and payload inputs;
75
+ normalize transport details only. Do not create a provider registry or a
76
+ universal CMS model.
77
+ 5. Design Fimo schemas from both the retrieved values and the code that uses
78
+ them. Never invent replacement content when source access is unavailable.
79
+
80
+ Once retrieval and consumer tracing are complete, push schemas, prepare
81
+ payloads, and let the coordinator fan out assets and one data batch per
82
+ schema/locale. Runtime, routes, locales, and other independent workers continue
83
+ in parallel while retrieval runs.
84
+
57
85
  ## Optional extraction helpers
58
86
 
59
87
  Start with `rg` and targeted reads. A bounded read-only helper under
60
88
  `.fimo/migration/tmp/` may parse repeated frontmatter, JSON/YAML exports, or
61
- literal structures while preserving source locations. Spot-check its output.
89
+ literal structures, or retrieve repeated API pages while preserving source
90
+ identities. Spot-check its output.
62
91
  The agent still owns classification, schema design, and consumer tracing. Do
63
92
  not build a generic codemod system or let the helper write Fimo data or app
64
93
  code.
@@ -19,6 +19,16 @@ Verify:
19
19
  - build and representative browser interactions pass; and
20
20
  - every unsupported item names its impact and owner action.
21
21
 
22
+ `fimo deploy` readiness proves only that the server stays up and a
23
+ representative page responds. After an approved deploy, browser QA must:
24
+
25
+ - open one representative route per route family and exercise one key interaction;
26
+ - fail on route `5xx`, blank or reloading pages, or required module, API, or runtime failures;
27
+ - inspect browser evidence and `fimo logs --json` before editing; and
28
+ - run at most one focused repair and redeploy, then report remaining failures unresolved.
29
+
30
+ Optional development-tool failures do not fail a rendered, stable application.
31
+
22
32
  Return a plain-text report with status, duration, checks run, counts, failing
23
33
  source items, and suggested bounded repair surface. The coordinator may run one
24
34
  repair for that surface and rerun validation. It does not restart every worker
@@ -19,7 +19,7 @@ Plan a lane only when the source proves that surface exists:
19
19
  | routes | route modules, redirects, SEO and host behavior | immediately |
20
20
  | content planner | schemas, content payloads, and content handoff | immediately |
21
21
  | locales | locale setup and translated UI copy | immediately |
22
- | assets/forms | media uploads and form behavior | after content planner |
22
+ | assets/forms | media uploads and form behavior | after discovery fan-in |
23
23
  | content data | one schema/locale import | after assets |
24
24
  | content code | listed consuming files | after its data read-back |
25
25
  | validator | read-only final checks | after all writers |
@@ -35,15 +35,19 @@ read-back.
35
35
  - **runtime** preserves the detected framework, router, runtime, dependencies,
36
36
  provider setup, environment wiring, and provider-specific configuration. An
37
37
  unclear or unsupported setup produces a question, not a silent conversion.
38
+ It reports active media found in its surface.
38
39
  - **routes** preserves every route, redirect, 404, SEO/OG/social output,
39
40
  sitemap, robots, feeds, headers, and other observable host behavior. A file
40
- that consumes migrated content belongs to its later content-code worker.
41
+ that consumes migrated content belongs to its later content-code worker. It
42
+ reports active route and SEO media.
41
43
  - **content planner** discovers and models all editable content, labels,
42
- consumers, schemas, payloads, media obligations, and execution batches. It
43
- never imports entries or rewrites consumers. Read
44
+ consumers, schemas, payloads, media in its content/API surface, and execution
45
+ batches. It first retrieves any API-backed source through the application's
46
+ real client contract; it never imports entries or rewrites consumers. Read
44
47
  `references/workers/content-planner.md`.
45
- - **assets/forms** uploads every planner media obligation and patches payload
46
- references. It replaces a form or integration only when Fimo preserves its
48
+ - **assets/forms** receives only the coordinator's consolidated, deduplicated
49
+ media-obligation list, uploads it, and returns mappings for code and payload
50
+ consumers. It replaces a form or integration only when Fimo preserves its
47
51
  behavior end to end; otherwise it preserves or reports it.
48
52
  - **content data and code** execute the planner handoff without rediscovering
49
53
  or redesigning it. Read `references/workers/content-execution.md`.
@@ -62,12 +66,17 @@ other after it. Do not add a metadata format for a small overlap.
62
66
  write.
63
67
  2. Start runtime/routes/content-planner/locales together, or the framework
64
68
  worker plus content planner/locales in conversion mode.
65
- 3. After the content plan, upload every planned asset and patch payloads.
66
- 4. Start data workers only after the asset gate and, in conversion mode, the
69
+ 3. Wait for every discovery receipt to become terminal, then perform one fan-in
70
+ of runtime/framework, routes/SEO, and content media findings. Combine and
71
+ deduplicate them into the complete media-obligation list; do not run another
72
+ discovery pass.
73
+ 4. Give only that consolidated list to assets/forms. Wait for its mappings
74
+ before code or payload consumers replace source references.
75
+ 5. Start data workers only after the asset gate and, in conversion mode, the
67
76
  framework gate.
68
- 5. Start each code worker only after its own imported records read back as
77
+ 6. Start each code worker only after its own imported records read back as
69
78
  non-empty. A build over empty data proves nothing.
70
- 6. Start the independent validator only after every writer has returned.
79
+ 7. Start the independent validator only after every writer has returned.
71
80
 
72
81
  Each prompt names the worker's source paths, exact target ownership, applicable
73
82
  reference above, and dependencies. Each report states status, duration, source
@@ -45,8 +45,16 @@ Classify the available evidence:
45
45
 
46
46
  For private APIs or CMSs, ask for a user-provided export or a narrowly scoped
47
47
  server-side credential. Never recover credentials from browser bundles or copy
48
- them into migration artifacts. Missing access blocks only that lane and becomes
49
- an unresolved item; never invent replacement content.
48
+ them into migration artifacts. If the source API URL or access is missing or
49
+ unreachable, stop and ask the user for it; do not guess or continue with
50
+ replacement content.
51
+
52
+ For API-backed content, trace the active client and call sites in source code,
53
+ prove one read, then retrieve all required pages, locales, relations, and media
54
+ during content planning. Use direct requests for bounded endpoints or a
55
+ temporary read-only script for repeated and paginated reads. Do not wait for
56
+ schema or code workers, and do not rely on browser traffic when SSR or build
57
+ time fetches may hide the requests.
50
58
 
51
59
  For URL-only migrations, run `fimo migrate <url> [dir]` and inspect the
52
60
  generated `.fimo/migrations/current/` files as source evidence. Do not copy
@@ -58,16 +66,18 @@ The coordinator launches only the workers supported by the source:
58
66
 
59
67
  - **runtime**: preserve the detected framework, router, runtime, dependencies,
60
68
  provider configuration, and environment wiring. A framework conversion needs
61
- an explicit user choice.
69
+ an explicit user choice. Report active media found in this surface.
62
70
  - **routes/SEO**: preserve one target route per source route, redirects, 404,
63
71
  metadata, OG/social output, sitemap, robots, and other observable behavior.
72
+ Report active media found in this surface.
64
73
  - **content planner**: discover content, labels, data sources, consumers, and
65
74
  schemas; push schemas and prepare content payloads. It does not rewrite page
66
- code or import every entry itself.
75
+ code or import every entry itself. Report active media found in content and
76
+ API data; do not rescan unrelated runtime or route surfaces.
67
77
  - **locales**: configure locales and migrate translated UI-visible copy when
68
78
  the source has it.
69
- - **assets/forms**: after content planning, upload every referenced media item
70
- and preserve, replace, or report forms and integrations.
79
+ - **assets/forms**: after the discovery fan-in, upload the consolidated media
80
+ obligations and preserve, replace, or report forms and integrations.
71
81
 
72
82
  When the user explicitly chose a framework conversion, one framework
73
83
  conversion worker replaces the runtime and routes lanes and owns all
@@ -82,17 +92,22 @@ Workers may write the application inside their ownership. They do not need a
82
92
  JSON plan or receipt. If two workers need the same file, name one owner and run
83
93
  the other after it.
84
94
 
85
- ## Phase 3: Content planning
95
+ ## Phase 3: Discovery fan-in and content planning
86
96
 
87
97
  The planner follows `references/workers/content-planner.md`, plus
88
98
  `references/content.md`, `references/decision.md`, and
89
99
  `references/import-contract.md`. Its text plan and payloads must be complete
90
- before Phase 4; data workers must not rediscover unrelated source files.
100
+ before Phase 4; this includes retrieving API-backed source data and tracing its
101
+ consumers. Data workers must not rediscover unrelated source files.
102
+
103
+ After the runtime/framework, routes/SEO, and content discovery receipts are all
104
+ terminal, the coordinator combines and deduplicates their media findings into
105
+ the complete media-obligation list. This is the media worker's only input.
91
106
 
92
107
  ## Phase 4: Media, forms, and integrations
93
108
 
94
- 1. Account for every planner media obligation, including schema media fields
95
- and richtext/Tiptap image nodes, plus route, SEO, and form media.
109
+ 1. Account for every consolidated media obligation, including schema media
110
+ fields and richtext/Tiptap image nodes, plus route, SEO, and form media.
96
111
  2. Upload media through Fimo and replace references only after the upload is
97
112
  confirmed. A local `public/` copy or source URL is not an imported asset.
98
113
  3. Preserve third-party integrations unless Fimo reproduces their exact
@@ -139,4 +154,7 @@ Use `complete` only when required checks pass, `complete-with-unresolved` when
139
154
  the app works and every gap is explicit, and `draft-only` when import or
140
155
  verification is incomplete.
141
156
 
142
- All checks are local. Do not deploy or publish to verify a migration.
157
+ All checks are local. Deployment is not QA evidence. After successful local QA,
158
+ run one plain `fimo deploy` for a newly created project unless the user opted out
159
+ or `FIMO_MIGRATION_NO_DEPLOY=1`; for an existing linked project, offer deploy and
160
+ wait for approval. Never publish automatically.
@@ -22,7 +22,7 @@ Give the AI more to work with:
22
22
  - **+ button**: Opens a dropdown with options:
23
23
  - **Attach Assets** -- browse your media library and attach files.
24
24
  - **Attach Entries** -- attach CMS content for the AI to reference.
25
- - **Upload from Computer** -- upload a file directly. ZIP archives are supported up to 20 MiB; the AI can download and inspect them under `/tmp` in its sandbox while the original stays attached to the conversation.
25
+ - **Upload from Computer** -- upload a file directly. For GLB, self-contained glTF, FBX, OBJ, STL, and PLY models, Fimo renders four views and saves a description so every chat model can understand the attachment. ZIP archives are supported up to 20 MiB; the AI can download and inspect them under `/tmp` in its sandbox while the original stays attached to the conversation.
26
26
  - **Draw** -- opens the drawing tool where you can sketch a wireframe or layout idea for the AI to follow.
27
27
  - **@ mentions**: Type **@** in the chat to reference specific files, pages, or content inline.
28
28
 
@@ -48,6 +48,23 @@ You can upgrade from two places:
48
48
  From there:
49
49
 
50
50
  1. Compare the available plans side by side.
51
- 2. Premium plans include more monthly credits, custom domain support, and the ability to hide the Fimo badge on your published site.
51
+ 2. Pro includes more monthly credits, custom domain support, and the ability to hide the Fimo badge on your published site.
52
52
  3. Pick a plan and complete checkout.
53
53
  4. Your new monthly credit pool is available right away.
54
+
55
+ ## Legacy plan transitions
56
+
57
+ Some organizations that already have Premium may see a **Plan transition**
58
+ section in Billing. It shows the recorded offer and the deadline to respond.
59
+
60
+ - **Review the offer** opens the plan dialog without charging anything.
61
+ Selecting Pro opens a final confirmation with the provider-calculated unused
62
+ Premium credit, amount charged now, next renewal date, and next renewal
63
+ amount. Fimo rechecks those figures before switching; if they changed, you
64
+ review and confirm the new amount. The plan changes only after the provider
65
+ confirms the new subscription.
66
+ - **Move to Free instead** is an explicit choice. Premium remains active until
67
+ the end of the current billing period, then the organization moves to Free.
68
+ - An offer that is still being prepared, has expired, or has already been
69
+ resolved is shown as a status without an accept action. Silence never
70
+ accepts a price change.
@@ -83,6 +83,8 @@ Press **Alt+J** to move to the next entry or **Alt+K** to move to the previous o
83
83
 
84
84
  If a field is invalid, the editor keeps the change unsaved and pins a status bar below the header. Choose **Review issues** to jump to the first invalid field, then **Next issue** to move through the remaining fields. Collapsed blocks open automatically. Once every issue is fixed, the editor confirms that all fields are valid and resumes saving.
85
85
 
86
+ Longer entry forms may have quiet field-group tabs below the header. Choose a group to focus on that part of the entry, or choose **All fields** for the complete form. Studio remembers the selected group for that content type during the browser session, and copied entry links preserve the active group. If validation finds a problem elsewhere, **Review issues** opens All fields before focusing it. Groups only change the editor view; they do not hide content from the API or restrict what the AI can edit.
87
+
86
88
  A field labelled with a padlocked globe is shared across languages: it holds one value for the whole entry, so editing it in any language changes it in all of them. Fields without that marker are per language and only affect the language you are editing. Hover the icon for the same explanation in context.
87
89
 
88
90
  ## Editing Text
@@ -35,6 +35,7 @@ You may see different overlays depending on what is happening:
35
35
 
36
36
  - **"Working"** -- A loading overlay (heading "Working", subtext "Getting your preview in motion...") while the preview is being prepared.
37
37
  - **Error overlay** -- Something went wrong. The overlay shows details about the issue, and the AI can often auto-fix it for you.
38
+ - **"Some installed packages need approval"** -- Choose **Fix with Fimo** to send the complete repair context to the coding agent, or **Copy details** to handle it elsewhere. Review every named package, commit only trusted package-specific approvals, and retry Preview. Never replace the project policy with a blanket allow-all setting.
38
39
  - **First generation progress** -- When your project is being built for the first time, a progress overlay shows the current status.
39
40
 
40
41
  ## Switching Workspaces
@@ -1,4 +1,4 @@
1
- import { type FimoString, Text, useLabels } from 'fimo/ui';
1
+ import { type FimoString, Text, useLabels } from 'fimo-react';
2
2
  import { ArrowUpRight, Check } from 'lucide-react';
3
3
  import { type FormEvent, type ReactNode, useState } from 'react';
4
4
 
@@ -1,4 +1,4 @@
1
- import { RichText, Text, useLabels } from 'fimo/ui';
1
+ import { RichText, Text, useLabels } from 'fimo-react';
2
2
  import { ArrowDown, ArrowUpRight } from 'lucide-react';
3
3
 
4
4
  import { Button } from '@/components/ui/button';
@@ -1,8 +1,8 @@
1
1
  // AUTO-GENERATED by `fimo` from src/schemas/HomePage.json - DO NOT EDIT.
2
2
  // Change content fields in the schema, then run `fimo validate`.
3
- // Runtime implementation lives in the project-local fimo/ui package.
4
- import { createSingletonClient } from 'fimo/ui';
5
- import type { ContentSchema, SingletonContentClient } from 'fimo/ui';
3
+ // Runtime implementation lives in the project-local fimo-react package.
4
+ import { createSingletonClient } from 'fimo-react';
5
+ import type { ContentSchema, SingletonContentClient } from 'fimo-react';
6
6
 
7
7
  import schema from './HomePage.json';
8
8
  import type { HomePage, HomePageInput } from './HomePage.types';
@@ -11,7 +11,7 @@ import {
11
11
  type Sort,
12
12
  type Where,
13
13
  type WithReferences,
14
- } from 'fimo/ui';
14
+ } from 'fimo-react';
15
15
 
16
16
  export interface HomePageFimoMeta {
17
17
  contentType: string;
@@ -1,4 +1,15 @@
1
1
  import type { AstroIntegration } from 'astro';
2
- /** Connect an Astro app to Fimo preview and hosted server rendering. */
3
- export declare function fimo(): AstroIntegration;
2
+ export interface FimoAstroConfigOptions {
3
+ /**
4
+ * Hosting adapter registered for `output: 'server'` builds that declare no
5
+ * adapter of their own. Supplied by `fimo-astro/config`; `fimo` itself ships
6
+ * no provider so non-Astro projects never install one (FIMO-1635).
7
+ */
8
+ hostingAdapter?: AstroIntegration;
9
+ }
10
+ /**
11
+ * Connect an Astro app to Fimo preview and the git branch's Fimo env.
12
+ * Server-rendered Fimo hosting needs the adapter from `fimo-astro/config`.
13
+ */
14
+ export declare function fimo(options?: FimoAstroConfigOptions): AstroIntegration;
4
15
  //# sourceMappingURL=config.d.ts.map