fimo 0.21.0-staging.4 → 0.21.0-staging.6
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.
- package/assets/skills/fimo/SKILL.md +1 -1
- package/assets/skills/fimo-cli/SKILL.md +1 -1
- package/assets/skills/fimo-cli/references/assets.md +25 -1
- package/assets/skills/fimo-cli/references/branches.md +4 -1
- package/assets/skills/fimo-cli/references/forms.md +1 -1
- package/assets/skills/fimo-cli/references/init.md +17 -5
- package/assets/skills/fimo-cli/references/integrations.md +24 -0
- package/assets/skills/fimo-cli/references/mcp.md +98 -57
- package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +3 -1
- package/assets/skills/fimo-cli/references/projects.md +2 -2
- package/assets/skills/fimo-code/assets/react-router-locales/navigation.tsx +1 -1
- package/assets/skills/fimo-code/references/assets.md +2 -2
- package/assets/skills/fimo-code/references/best-practices/next.md +1 -1
- package/assets/skills/fimo-code/references/forms.md +1 -1
- package/assets/skills/fimo-code/references/frameworks/astro.md +8 -2
- package/assets/skills/fimo-code/references/frameworks/compatibility.md +9 -9
- package/assets/skills/fimo-code/references/frameworks/hosting.md +17 -13
- package/assets/skills/fimo-code/references/frameworks/next/app-router.md +8 -9
- package/assets/skills/fimo-code/references/frameworks/next/locales.md +1 -1
- package/assets/skills/fimo-code/references/frameworks/next/pages-router.md +5 -5
- package/assets/skills/fimo-code/references/frameworks/next.md +41 -32
- package/assets/skills/fimo-code/references/frameworks/react-router.md +8 -6
- package/assets/skills/fimo-code/references/frameworks/sveltekit.md +19 -10
- package/assets/skills/fimo-code/references/frameworks/vite-react.md +7 -5
- package/assets/skills/fimo-code/references/labels.md +4 -4
- package/assets/skills/fimo-code/references/ui.md +4 -4
- package/assets/skills/fimo-migration/references/frameworks/nextjs.md +12 -15
- package/assets/skills/fimo-migration/references/media.md +4 -2
- package/assets/skills/fimo-migration/references/qa.md +10 -8
- package/assets/skills/fimo-migration/references/workers/content-planner.md +20 -10
- package/assets/skills/fimo-migration/references/workflow.md +8 -6
- package/assets/skills/fimo-migration/scripts/retrieval/strapi/public-content.mjs +243 -0
- package/assets/skills/fimo-migration/scripts/retrieval/strapi/source-schema.mjs +148 -0
- package/assets/skills/fimo-studio/SKILL.md +3 -1
- package/assets/skills/fimo-studio/references/command-palette.md +8 -3
- package/assets/skills/fimo-studio/references/connections.md +52 -0
- package/assets/skills/fimo-studio/references/webhooks.md +1 -1
- package/assets/starters/fimo-site/template/src/pages/Contact.tsx +1 -1
- package/assets/starters/fimo-site/template/src/pages/SiteContent.tsx +1 -1
- package/assets/starters/fimo-site/template/src/schemas/HomePage.ts +3 -3
- package/assets/starters/fimo-site/template/src/schemas/HomePage.types.ts +1 -1
- package/dist/build/astro/config.d.ts +13 -2
- package/dist/build/astro/config.js +9 -24
- package/dist/build/next/moved.d.ts +2 -0
- package/dist/build/next/moved.js +2 -0
- package/dist/build/react/router-moved.d.ts +2 -0
- package/dist/build/react/router-moved.js +2 -0
- package/dist/build/react/router-preset-moved.d.ts +2 -0
- package/dist/build/react/router-preset-moved.js +2 -0
- package/dist/build/react/router-routes-moved.d.ts +2 -0
- package/dist/build/react/router-routes-moved.js +2 -0
- package/dist/build/react/ui-moved.d.ts +2 -0
- package/dist/build/react/ui-moved.js +2 -0
- package/dist/build/react/vite-moved.d.ts +2 -0
- package/dist/build/react/vite-moved.js +2 -0
- package/dist/build/sveltekit/config.d.ts +5 -4
- package/dist/build/sveltekit/config.js +6 -15
- package/dist/build/sveltekit/moved.d.ts +13 -0
- package/dist/build/sveltekit/moved.js +3 -0
- package/dist/build/vite/data-id.d.ts +11 -0
- package/dist/build/vite/data-id.js +20 -0
- package/dist/build/vite/plugins/runtime-env.d.ts +1 -1
- package/dist/build/vite/plugins/runtime-env.js +6 -2
- package/dist/build/vite/runtime-env.d.ts +2 -0
- package/dist/build/vite/runtime-env.js +1 -0
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +82 -86
- package/dist/runtime/content/client/internal.js +1 -1
- package/dist/runtime/content/index.d.ts +6 -1
- package/dist/runtime/content/index.js +6 -0
- package/dist/runtime/i18n/index.d.ts +2 -0
- package/dist/runtime/i18n/index.js +1 -0
- package/dist/runtime/labels/index.d.ts +3 -0
- package/dist/runtime/labels/index.js +2 -0
- package/dist/runtime/preview/index.d.ts +5 -0
- package/dist/runtime/preview/index.js +4 -0
- package/dist/runtime/primitives/lib/index.d.ts +2 -0
- package/dist/runtime/primitives/lib/index.js +2 -0
- package/dist/runtime/seo/index.d.ts +0 -8
- package/dist/runtime/seo/index.js +0 -8
- package/dist/runtime/shared/config.d.ts +6 -0
- package/dist/runtime/shared/config.js +4 -0
- package/dist/runtime/shared/local-runtime-env.d.ts +2 -2
- package/dist/runtime/shared/local-runtime-env.js +7 -5
- package/dist/runtime/templates.d.ts +21 -5
- package/dist/runtime/templates.js +61 -19
- package/dist/scripts/extract-translations.js +8 -3
- package/dist/scripts/index.d.ts +3 -0
- package/dist/scripts/index.js +2 -0
- package/dist/scripts/sync-forms.js +21 -9
- package/dist/scripts/sync-schemas.js +45 -21
- package/package.json +76 -82
- package/templates/astro/astro.config.mjs +1 -1
- package/templates/astro/package.json +2 -1
- package/templates/nextjs/AGENTS.md +1 -1
- package/templates/nextjs/next.config.ts +1 -1
- package/templates/nextjs/package.json +2 -1
- package/templates/nextjs/src/app/layout.tsx +1 -1
- package/templates/react-router/package.json +3 -1
- package/templates/react-router/react-router.config.ts +1 -1
- package/templates/react-router/src/pages/LocaleLayout.tsx +1 -1
- package/templates/react-router/src/pages/legal/LegalPage.tsx +1 -1
- package/templates/react-router/src/root.tsx +1 -1
- package/templates/react-router/vite.config.ts +1 -1
- package/templates/sveltekit/package.json +2 -1
- package/templates/sveltekit/src/error.html +51 -0
- package/templates/sveltekit/src/routes/+error.svelte +50 -0
- package/templates/sveltekit/src/routes/+layout.server.ts +1 -1
- package/templates/sveltekit/src/routes/+layout.svelte +1 -1
- package/templates/sveltekit/svelte.config.js +1 -1
- package/templates/sveltekit/vite.config.ts +1 -1
- package/templates/vite/.fimo/config.json +28 -0
- package/templates/vite/AGENTS.md +43 -0
- package/templates/vite/CLAUDE.md +5 -0
- package/templates/vite/_gitignore +13 -0
- package/templates/vite/index.html +12 -0
- package/templates/vite/package.json +32 -0
- package/templates/vite/pnpm-workspace.yaml +8 -0
- package/templates/vite/src/App.tsx +14 -0
- package/templates/vite/src/LocaleLayout.tsx +12 -0
- package/templates/vite/src/index.css +61 -0
- package/templates/vite/src/main.tsx +20 -0
- package/templates/vite/src/vite-env.d.ts +1 -0
- package/templates/vite/tsconfig.json +17 -0
- package/templates/vite/vite.config.ts +7 -0
- package/assets/sveltekit/components/Boolean.svelte +0 -19
- package/assets/sveltekit/components/Date.svelte +0 -33
- package/assets/sveltekit/components/DateTime.svelte +0 -35
- package/assets/sveltekit/components/FimoProvider.svelte +0 -35
- package/assets/sveltekit/components/Image.svelte +0 -80
- package/assets/sveltekit/components/Json.svelte +0 -18
- package/assets/sveltekit/components/Label.svelte +0 -16
- package/assets/sveltekit/components/Number.svelte +0 -21
- package/assets/sveltekit/components/RichText.svelte +0 -19
- package/assets/sveltekit/components/Text.svelte +0 -30
- package/assets/sveltekit/components/Video.svelte +0 -37
- package/assets/sveltekit/components/index.d.ts +0 -11
- package/assets/sveltekit/components/index.js +0 -11
- package/dist/build/next/config.d.ts +0 -17
- package/dist/build/next/config.js +0 -66
- package/dist/build/sveltekit/data-id.d.ts +0 -3
- package/dist/build/sveltekit/data-id.js +0 -171
- package/dist/build/sveltekit/files/edge.js +0 -68
- package/dist/build/sveltekit/files/serverless.js +0 -42
- package/dist/build/sveltekit/vite.d.ts +0 -12
- package/dist/build/sveltekit/vite.js +0 -14
- package/dist/build/vite/index.d.ts +0 -42
- package/dist/build/vite/index.js +0 -160
- package/dist/build/vite/plugins/content-sync.d.ts +0 -11
- package/dist/build/vite/plugins/content-sync.js +0 -41
- package/dist/build/vite/plugins/data-id.d.ts +0 -12
- package/dist/build/vite/plugins/data-id.js +0 -109
- package/dist/build/vite/plugins/fimo-config.d.ts +0 -12
- package/dist/build/vite/plugins/fimo-config.js +0 -68
- package/dist/build/vite/plugins/overlay.d.ts +0 -3
- package/dist/build/vite/plugins/overlay.js +0 -154
- package/dist/build/vite/plugins/robots.d.ts +0 -10
- package/dist/build/vite/plugins/robots.js +0 -56
- package/dist/build/vite/plugins/seo.d.ts +0 -3
- package/dist/build/vite/plugins/seo.js +0 -112
- package/dist/build/vite/plugins/server-config.d.ts +0 -3
- package/dist/build/vite/plugins/server-config.js +0 -36
- package/dist/build/vite/plugins/sitemap.d.ts +0 -3
- package/dist/build/vite/plugins/sitemap.js +0 -73
- package/dist/build/vite/plugins/translations.d.ts +0 -11
- package/dist/build/vite/plugins/translations.js +0 -601
- package/dist/runtime/app/FimoProviders.d.ts +0 -30
- package/dist/runtime/app/FimoProviders.js +0 -193
- package/dist/runtime/app/FimoScripts.d.ts +0 -13
- package/dist/runtime/app/FimoScripts.js +0 -45
- package/dist/runtime/app/index.d.ts +0 -8
- package/dist/runtime/app/index.js +0 -4
- package/dist/runtime/app/prefetch.d.ts +0 -9
- package/dist/runtime/app/prefetch.js +0 -39
- package/dist/runtime/content/DataSourcesProvider.d.ts +0 -4
- package/dist/runtime/content/DataSourcesProvider.js +0 -63
- package/dist/runtime/content/RefreshContentProvider.d.ts +0 -19
- package/dist/runtime/content/RefreshContentProvider.js +0 -71
- package/dist/runtime/content/client/createContentClient.d.ts +0 -7
- package/dist/runtime/content/client/createContentClient.js +0 -7
- package/dist/runtime/content/client/createSingletonClient.d.ts +0 -5
- package/dist/runtime/content/client/createSingletonClient.js +0 -6
- package/dist/runtime/content/client/react-content-client.d.ts +0 -10
- package/dist/runtime/content/client/react-content-client.js +0 -165
- package/dist/runtime/content/client/react-singleton-client.d.ts +0 -7
- package/dist/runtime/content/client/react-singleton-client.js +0 -38
- package/dist/runtime/content/client/types.d.ts +0 -42
- package/dist/runtime/content/client/types.js +0 -1
- package/dist/runtime/content/client/useQueryLocale.d.ts +0 -2
- package/dist/runtime/content/client/useQueryLocale.js +0 -5
- package/dist/runtime/content/client/vite-runtime.d.ts +0 -3
- package/dist/runtime/content/client/vite-runtime.js +0 -23
- package/dist/runtime/content/utils/retrieve-data-sources.d.ts +0 -29
- package/dist/runtime/content/utils/retrieve-data-sources.js +0 -107
- package/dist/runtime/core/AppErrorBoundary.d.ts +0 -10
- package/dist/runtime/core/AppErrorBoundary.js +0 -27
- package/dist/runtime/core/ViteLifecycles.d.ts +0 -5
- package/dist/runtime/core/ViteLifecycles.js +0 -35
- package/dist/runtime/i18n/FimoLocaleContext.d.ts +0 -9
- package/dist/runtime/i18n/FimoLocaleContext.js +0 -17
- package/dist/runtime/iframe/ConsoleErrorProvider.d.ts +0 -3
- package/dist/runtime/iframe/ConsoleErrorProvider.js +0 -103
- package/dist/runtime/iframe/ScreenshotProvider.d.ts +0 -3
- package/dist/runtime/iframe/ScreenshotProvider.js +0 -60
- package/dist/runtime/iframe/runtime/overlay-hmr.d.ts +0 -2
- package/dist/runtime/iframe/runtime/overlay-hmr.js +0 -27
- package/dist/runtime/iframe/runtime/overlay-runtime.d.ts +0 -2
- package/dist/runtime/iframe/runtime/overlay-runtime.js +0 -103
- package/dist/runtime/index.d.ts +0 -22
- package/dist/runtime/index.js +0 -23
- package/dist/runtime/next/client-runtime.d.ts +0 -3
- package/dist/runtime/next/client-runtime.js +0 -24
- package/dist/runtime/next/client.d.ts +0 -28
- package/dist/runtime/next/client.js +0 -25
- package/dist/runtime/next/facade.d.ts +0 -8
- package/dist/runtime/next/facade.js +0 -34
- package/dist/runtime/next/labels.d.ts +0 -7
- package/dist/runtime/next/labels.js +0 -9
- package/dist/runtime/next/preview.d.ts +0 -13
- package/dist/runtime/next/preview.js +0 -34
- package/dist/runtime/next/primitives/Text.d.ts +0 -10
- package/dist/runtime/next/primitives/Text.js +0 -18
- package/dist/runtime/next/primitives/server.d.ts +0 -11
- package/dist/runtime/next/primitives/server.js +0 -54
- package/dist/runtime/next/provider.d.ts +0 -13
- package/dist/runtime/next/provider.js +0 -54
- package/dist/runtime/next/server-runtime.d.ts +0 -3
- package/dist/runtime/next/server-runtime.js +0 -23
- package/dist/runtime/next/server.d.ts +0 -21
- package/dist/runtime/next/server.js +0 -16
- package/dist/runtime/primitives/index.d.ts +0 -16
- package/dist/runtime/primitives/index.js +0 -17
- package/dist/runtime/react/primitives/contracts.d.ts +0 -100
- package/dist/runtime/react/primitives/contracts.js +0 -1
- package/dist/runtime/react/primitives/editable/Boolean.d.ts +0 -5
- package/dist/runtime/react/primitives/editable/Boolean.js +0 -11
- package/dist/runtime/react/primitives/editable/Date.d.ts +0 -4
- package/dist/runtime/react/primitives/editable/Date.js +0 -12
- package/dist/runtime/react/primitives/editable/DateTime.d.ts +0 -4
- package/dist/runtime/react/primitives/editable/DateTime.js +0 -13
- package/dist/runtime/react/primitives/editable/Image.d.ts +0 -4
- package/dist/runtime/react/primitives/editable/Image.js +0 -10
- package/dist/runtime/react/primitives/editable/Json.d.ts +0 -5
- package/dist/runtime/react/primitives/editable/Json.js +0 -11
- package/dist/runtime/react/primitives/editable/RichText.d.ts +0 -4
- package/dist/runtime/react/primitives/editable/RichText.js +0 -11
- package/dist/runtime/react/primitives/editable/Text.d.ts +0 -20
- package/dist/runtime/react/primitives/editable/Text.js +0 -36
- package/dist/runtime/react/primitives/editable/Video.d.ts +0 -4
- package/dist/runtime/react/primitives/editable/Video.js +0 -10
- package/dist/runtime/react/primitives/renderers/DateRenderer.d.ts +0 -17
- package/dist/runtime/react/primitives/renderers/DateRenderer.js +0 -17
- package/dist/runtime/react/primitives/renderers/ImageRenderer.d.ts +0 -8
- package/dist/runtime/react/primitives/renderers/ImageRenderer.js +0 -31
- package/dist/runtime/react/primitives/renderers/RichTextRenderer.d.ts +0 -12
- package/dist/runtime/react/primitives/renderers/RichTextRenderer.js +0 -135
- package/dist/runtime/react/primitives/renderers/StaticImage.d.ts +0 -35
- package/dist/runtime/react/primitives/renderers/StaticImage.js +0 -58
- package/dist/runtime/react/primitives/renderers/VideoRenderer.d.ts +0 -8
- package/dist/runtime/react/primitives/renderers/VideoRenderer.js +0 -10
- package/dist/runtime/react/useFimoLiveValue.d.ts +0 -20
- package/dist/runtime/react/useFimoLiveValue.js +0 -43
- package/dist/runtime/react-router/active-routes.d.ts +0 -12
- package/dist/runtime/react-router/active-routes.js +0 -60
- package/dist/runtime/react-router/index.d.ts +0 -16
- package/dist/runtime/react-router/index.js +0 -20
- package/dist/runtime/react-router/legacy/routes.d.ts +0 -35
- package/dist/runtime/react-router/legacy/routes.js +0 -86
- package/dist/runtime/react-router/navigation-utils.d.ts +0 -8
- package/dist/runtime/react-router/navigation-utils.js +0 -36
- package/dist/runtime/react-router/navigation.d.ts +0 -12
- package/dist/runtime/react-router/navigation.js +0 -28
- package/dist/runtime/react-router/preset.d.ts +0 -30
- package/dist/runtime/react-router/preset.js +0 -33
- package/dist/runtime/routing/AppResetScrollOnNavigate.d.ts +0 -2
- package/dist/runtime/routing/AppResetScrollOnNavigate.js +0 -12
- package/dist/runtime/routing/AppRoutesProvider.d.ts +0 -25
- package/dist/runtime/routing/AppRoutesProvider.js +0 -112
- package/dist/runtime/seo/buildSeoForPath.d.ts +0 -74
- package/dist/runtime/seo/buildSeoForPath.js +0 -55
- package/dist/runtime/seo/htmlProps.d.ts +0 -13
- package/dist/runtime/seo/htmlProps.js +0 -15
- package/dist/runtime/sveltekit/content.d.ts +0 -25
- package/dist/runtime/sveltekit/content.js +0 -33
- package/dist/runtime/sveltekit/context-contract.d.ts +0 -5
- package/dist/runtime/sveltekit/context-contract.js +0 -2
- package/dist/runtime/sveltekit/context.d.ts +0 -8
- package/dist/runtime/sveltekit/context.js +0 -25
- package/dist/runtime/sveltekit/forms.d.ts +0 -15
- package/dist/runtime/sveltekit/forms.js +0 -15
- package/dist/runtime/sveltekit/index.d.ts +0 -9
- package/dist/runtime/sveltekit/index.js +0 -5
- package/dist/runtime/sveltekit/internal.d.ts +0 -6
- package/dist/runtime/sveltekit/internal.js +0 -12
- package/dist/runtime/sveltekit/labels.d.ts +0 -20
- package/dist/runtime/sveltekit/labels.js +0 -13
- package/dist/runtime/sveltekit/preview.d.ts +0 -27
- package/dist/runtime/sveltekit/preview.js +0 -69
- package/dist/runtime/sveltekit/runtime.d.ts +0 -9
- package/dist/runtime/sveltekit/runtime.js +0 -26
- package/dist/runtime/t/OptionalTracking.d.ts +0 -13
- package/dist/runtime/t/OptionalTracking.js +0 -28
- package/dist/runtime/t/Pageview.d.ts +0 -9
- package/dist/runtime/t/Pageview.js +0 -118
- package/dist/runtime/vite/Label.d.ts +0 -13
- package/dist/runtime/vite/Label.js +0 -16
- package/dist/runtime/vite/primitives/Images.d.ts +0 -4
- package/dist/runtime/vite/primitives/Images.js +0 -12
- package/dist/runtime/vite/translations.d.ts +0 -28
- package/dist/runtime/vite/translations.js +0 -103
|
@@ -33,7 +33,7 @@ Pick by task:
|
|
|
33
33
|
- Project creation, local setup, cloning, and CLI workflows — init, push, deploy, sync, labels, domains, analytics → `fimo-cli`
|
|
34
34
|
- Fimo agents — create, configure, validate, deploy, run, or inspect them → `fimo-cli` (`references/agents.md`)
|
|
35
35
|
- AI agent setup — connect Claude Code, Codex, Cursor, or another agent → `fimo-cli` (`references/agent-setup.md`)
|
|
36
|
-
-
|
|
36
|
+
- Remote MCP integrations — add, inspect, search, or run an MCP server → `fimo-cli` (`references/mcp.md`)
|
|
37
37
|
- The Fimo Studio dashboard / web app UI → `fimo-studio`
|
|
38
38
|
- Migrating an existing site into Fimo → `fimo-migration`
|
|
39
39
|
|
|
@@ -106,7 +106,7 @@ Load the matching reference when the user's request fires its trigger. Recipes t
|
|
|
106
106
|
- "Login / log out / who am I / switch organization" → `references/account.md` — note: switching **org** is `fimo orgs switch`; bare `fimo switch` changes the active **Fimo Branch** (see `references/branches.md`)
|
|
107
107
|
- "Create / scaffold / run / validate an agent / agent bundle / wire or enable its triggers / list agent templates / view agent runs, reports, or logs (`fimo agents *`)" → `references/agents.md`
|
|
108
108
|
- "Install Fimo for my agent / fimo skills install / set up Claude Code, Codex, or Cursor for Fimo" → `references/agent-setup.md`
|
|
109
|
-
- "
|
|
109
|
+
- "Add, inspect, search, or run a remote MCP server / use `fimo mcp`" → `references/mcp.md`
|
|
110
110
|
- "Refresh / update installed Fimo skills / fimo skills sync / agent missing the latest Fimo conventions" → `references/agent-setup.md`
|
|
111
111
|
- "Report a Fimo problem or blocking feature request / contact Fimo support / a Fimo API or command keeps failing / a documented argument is rejected / a supported operation needs an undocumented workaround / a Fimo API is abnormally slow / a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround" → `references/support.md`
|
|
112
112
|
- "Regenerate rule files / I edited AGENTS.md / fimo rules sync" → `references/agent-setup.md`
|
|
@@ -35,6 +35,30 @@ Read it as `.data.url` / `.data.id` (e.g. `… | jq -r '.data.url'`). Keep the `
|
|
|
35
35
|
|
|
36
36
|
Use `--folder-path` when an agent needs a non-interactive upload target and does not already know folder IDs. Missing folders are created automatically. Dot-prefixed root folders such as `.agents` are reserved for internal/agent media and are hidden from the normal media-library UI.
|
|
37
37
|
|
|
38
|
+
## Upload a manifest
|
|
39
|
+
|
|
40
|
+
Use one structured manifest for migration batches. Paths resolve from the
|
|
41
|
+
project directory; `sourceId` must be unique so every result can be reconciled.
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
[
|
|
45
|
+
{
|
|
46
|
+
"sourceId": "strapi:upload:42",
|
|
47
|
+
"path": ".fimo/migration/media/Hero image.jpg",
|
|
48
|
+
"name": "Homepage hero",
|
|
49
|
+
"folderPath": "Imported"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
fimo assets bulk-upload --file .fimo/migration/media.json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The result preserves manifest order and reports each `sourceId` as `uploaded`
|
|
59
|
+
or `failed`, plus final counts. Partial failure exits non-zero. Use
|
|
60
|
+
`--concurrency <1-16>` to change the default concurrency of four.
|
|
61
|
+
|
|
38
62
|
## Generate AI media
|
|
39
63
|
|
|
40
64
|
Moved to **`references/media.md`**. Choose the task that describes the outcome:
|
|
@@ -125,6 +149,6 @@ fimo assets delete <asset-id>
|
|
|
125
149
|
|
|
126
150
|
## End-to-end workflow
|
|
127
151
|
|
|
128
|
-
1. Upload with `fimo assets upload` or generate with a task command such as `fimo image generate`.
|
|
152
|
+
1. Upload with `fimo assets upload`, use `fimo assets bulk-upload` for a batch, or generate with a task command such as `fimo image generate`.
|
|
129
153
|
2. Keep the returned `url` (for direct use) or `id` (to attach to a `media` content-type field).
|
|
130
154
|
3. To use in application code, run `fimo skills get fimo-code --ref ui` and load the detected framework reference: schema media → `<Image>` / `<Video>`, deliberate non-schema URLs → `<StaticImage>`. Never use raw `<img src={asset.url}>` for tracked media.
|
|
@@ -105,7 +105,10 @@ Use `fimo publish` when `main` is already synced; use `fimo deploy --publish` wh
|
|
|
105
105
|
## Anti-patterns
|
|
106
106
|
|
|
107
107
|
- **Using `git checkout -b` instead of `fimo checkout -b`** — raw git creates the branch but **not** the Branch's DB / sandbox / preview. Always use `fimo` for Branch operations so resources are provisioned atomically. (Running `fimo branch <name>` after the fact provisions them.) The running app itself follows the git branch either way.
|
|
108
|
-
- **Hardcoding the tenant API URL** — the
|
|
108
|
+
- **Hardcoding the tenant API URL** — the framework runtime derives it from the
|
|
109
|
+
git branch and `.fimo/project.json`. Use an explicit host variable only as a
|
|
110
|
+
deliberate override, such as a local API; it then wins over derivation on
|
|
111
|
+
every branch.
|
|
109
112
|
- **Trying to push to or delete `prod` / `release/*`** — these are read-only/protected. Publish to update prod; never push.
|
|
110
113
|
- **`fimo merge` straight onto `main` as a habit** — it's gated for a reason. Merge on a branch, then publish.
|
|
111
114
|
- **Confusing `fimo switch` (Branch) with `fimo orgs switch` (org).**
|
|
@@ -54,7 +54,7 @@ Use this when the user asks "who filled out the contact form?", "how many signup
|
|
|
54
54
|
|
|
55
55
|
## When to run sync manually
|
|
56
56
|
|
|
57
|
-
The `fimo
|
|
57
|
+
The `fimo-vite` plugin regenerates legacy Vite `src/forms/*.ts` after form JSON changes during development. Framework-aware generation runs during validation. Before a production build, regenerate explicitly with:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
60
|
fimo validate # runs all phases: codegen, lint, route validation, label checks
|
|
@@ -11,7 +11,7 @@ fimo init [dir] [options]
|
|
|
11
11
|
`fimo init` runs the full onboarding in one shot:
|
|
12
12
|
|
|
13
13
|
1. **Signs in automatically** — if there's no session it opens the browser loopback login. In `--json` / non-TTY with no session it fails with `NOT_AUTHENTICATED` (run `fimo login` first).
|
|
14
|
-
2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo project: a project with no code yet is scaffolded as a fresh site, while an existing repository is cloned. Without it, `init` creates a NEW project. An interactive TTY shows a "Create new / Link existing" picker; non-interactive shells default to create-new. New projects use React Router by default; `--framework astro`, `--framework nextjs`, and `--framework sveltekit` select minimal framework-native shells. An optional `--starter fimo-site@1` adds a content-led starter only to a newly created project without `--project-id`.
|
|
14
|
+
2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo project: a project with no code yet is scaffolded as a fresh site, while an existing repository is cloned. Without it, `init` creates a NEW project. An interactive TTY shows a "Create new / Link existing" picker; non-interactive shells default to create-new. New projects use React Router by default; `--framework vite`, `--framework astro`, `--framework nextjs`, and `--framework sveltekit` select minimal framework-native shells. An optional `--starter fimo-site@1` adds a content-led starter only to a newly created project without `--project-id`.
|
|
15
15
|
3. **Installs dependencies** — prompts for the package manager, or honor `--package-manager <pm>` / `--no-install`.
|
|
16
16
|
4. **Optionally sets up Fimo skills** — confirm prompt, or `--skills` / `--no-skills`.
|
|
17
17
|
|
|
@@ -24,7 +24,7 @@ Generated pnpm projects pin `pnpm@10.26.0` and carry project-owned `pnpm-workspa
|
|
|
24
24
|
| `--org <id>` | no | Target organization **id** when creating (use the `ID` column from `fimo orgs list`, NOT the slug). Picker shown interactively if omitted and TTY. |
|
|
25
25
|
| `--branch <name>` | no | Branch to check out when linking an existing project (defaults to `main`). |
|
|
26
26
|
| `--env <name>` | no | Compatibility alias for `--branch <name>`. |
|
|
27
|
-
| `--framework <framework>` | no | New-project scaffold: `react-router` (default), `astro`, `nextjs` (App Router), or `sveltekit`. Existing repositories are preserved.
|
|
27
|
+
| `--framework <framework>` | no | New-project scaffold: `react-router` (default), `vite` (React SPA), `astro`, `nextjs` (App Router), or `sveltekit`. Existing repositories are preserved. |
|
|
28
28
|
| `--starter <id>` | no | Opt-in project starter for create-new (currently `fimo-site@1`). It seeds CMS content, labels, a contact form, and manual-only agents. Rejects `--project-id`. |
|
|
29
29
|
| `--package-manager <pm>` | no | `npm` \| `pnpm` \| `yarn` \| `bun`. |
|
|
30
30
|
| `--install` / `--no-install` | yes in non-TTY | Install deps after checkout (or skip it). |
|
|
@@ -68,6 +68,7 @@ Omit `--framework` for the existing React Router scaffold, or select a
|
|
|
68
68
|
minimal framework-native shell explicitly:
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
+
fimo init my-vite-site --framework vite --org <organizationId>
|
|
71
72
|
fimo init my-astro-site --framework astro --org <organizationId>
|
|
72
73
|
fimo init my-next-site --framework nextjs --org <organizationId>
|
|
73
74
|
fimo init my-svelte-site --framework sveltekit --org <organizationId>
|
|
@@ -96,15 +97,22 @@ For `--agents`, pass the AI tool you're running in: `--agents=claude-code` for C
|
|
|
96
97
|
|
|
97
98
|
Pass `--project-id <id>` to set up a known Fimo project. If the project has no code yet — for example, one just created in Fimo Studio — `init` scaffolds a fresh site into it and pushes the initial commit: the same create-new path, linked to the existing ID. If the project already has code, `init` clones it into `[dir]`, like `fimo clone`. Use `--branch <name>` to check out a specific Branch (defaults to `main`); `--env <name>` remains a compatibility alias. Without `--project-id`, `fimo init` creates a new project.
|
|
98
99
|
|
|
100
|
+
## Linking an existing local application
|
|
101
|
+
|
|
102
|
+
Use `fimo link <projectId>` to adopt the application in the current folder without replacing its code or comparing its Git history. Running it again with the same project id repairs missing Fimo metadata, dependencies, or the `fimo` remote. If the folder is linked to a different project, the command stops before changing the remote or local files. Pass `--relink` only when the project replacement is intentional:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
fimo link <projectId> --relink
|
|
106
|
+
```
|
|
107
|
+
|
|
99
108
|
## What gets written (create-new path)
|
|
100
109
|
|
|
101
110
|
`fimo init` (create-new path) scaffolds:
|
|
102
111
|
|
|
103
|
-
- The selected project shell: React Router by default, Astro with `--framework astro`, Next.js App Router with `--framework nextjs`, or SvelteKit with `--framework sveltekit`
|
|
112
|
+
- The selected project shell: React Router by default, a native React SPA with `--framework vite`, Astro with `--framework astro`, Next.js App Router with `--framework nextjs`, or SvelteKit with `--framework sveltekit`
|
|
104
113
|
- `.fimo/project.json` — links this directory to the remote project (read-only after creation)
|
|
105
114
|
- `.fimo/config.json` — project, optional Studio Pages route metadata, locale, SEO, and agent policy
|
|
106
115
|
- `.fimo/agents/` — versioned agent bundles
|
|
107
|
-
- `.env` — framework-specific tenant content API URLs for local development
|
|
108
116
|
- `AGENTS.md` + `CLAUDE.md` — project rules (from the template) read by AGENTS.md-compatible tools and Claude Code. Both point the agent at `fimo skills get` to load the real skills on demand.
|
|
109
117
|
- A git repository with `fimo` as the remote, and — after dependencies install — an initial commit (including the lockfile) plus an initial push
|
|
110
118
|
|
|
@@ -120,7 +128,11 @@ Nothing is written into per-agent skill dirs: the rich skills are fetched on dem
|
|
|
120
128
|
|
|
121
129
|
Codex, OpenCode, Aider, and similar AGENTS.md-native tools work directly off AGENTS.md.
|
|
122
130
|
|
|
123
|
-
|
|
131
|
+
Supported framework runtimes derive the Fimo connection from
|
|
132
|
+
`.fimo/project.json` and the active git branch, so local development needs no
|
|
133
|
+
Fimo env file. User-managed public variables are stored with `fimo vars add`
|
|
134
|
+
and synced into a managed `.env.local` block; hidden values use
|
|
135
|
+
`fimo secrets add`. See `references/project-vars-and-secrets.md`.
|
|
124
136
|
|
|
125
137
|
## Right after scaffolding
|
|
126
138
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Use integrations to enable external services for a Fimo project. API keys are stored by Fimo and never printed back to the CLI. Teammates and agents receive access to the integration, not the underlying token.
|
|
4
4
|
|
|
5
|
+
Start with `fimo integrations list` whenever the task could benefit from an external service. It is the project-scoped,
|
|
6
|
+
runtime-truthful inventory; use `info` only for the relevant integration instead of loading every provider's tools into
|
|
7
|
+
context.
|
|
8
|
+
|
|
5
9
|
## Inspect
|
|
6
10
|
|
|
7
11
|
```bash
|
|
@@ -14,6 +18,26 @@ fimo integrations status firecrawl
|
|
|
14
18
|
|
|
15
19
|
When running inside an autonomous agent session, `fimo integrations list` shows the effective integrations available to that agent runtime, scoped by `.fimo/agents/<name>/config.yaml`. It lists only usable tools, plus the auth column and the config path that granted access.
|
|
16
20
|
|
|
21
|
+
## Add a remote MCP server
|
|
22
|
+
|
|
23
|
+
Remote MCP servers have a focused command group while remaining integrations underneath:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
fimo mcp add sentry --url https://mcp.sentry.dev/mcp
|
|
27
|
+
|
|
28
|
+
fimo mcp search "issue tracking"
|
|
29
|
+
fimo mcp info sentry
|
|
30
|
+
fimo mcp run sentry <tool> --input '{"key":"value"}'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Automatic discovery connects public endpoints directly and opens the provider authorization page for OAuth servers.
|
|
34
|
+
Use `--auth none` to require a public endpoint, `--auth bearer --token-stdin` for a bearer token, or `--auth header
|
|
35
|
+
--header-name <name> --token-stdin` for a custom private header. A custom header value is sent exactly as piped, so it
|
|
36
|
+
carries any prefix itself. Fimo requires an HTTPS Streamable HTTP endpoint,
|
|
37
|
+
encrypts credentials, assigns an `mcp_`-prefixed integration key, and reads the server's current tools live. OAuth and
|
|
38
|
+
manual headers are alternative grants and are never sent together. Local stdio commands such as `npx` are not supported. Agents continue to use `fimo integrations list|info|run`
|
|
39
|
+
so native and MCP providers share one runtime policy surface.
|
|
40
|
+
|
|
17
41
|
## Integration References
|
|
18
42
|
|
|
19
43
|
Load the integration reference when the user names a specific integration:
|
|
@@ -1,83 +1,124 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Remote MCP integrations
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
the
|
|
3
|
+
Use the `mcp` command group to connect a project to remote Model Context Protocol servers. Fimo stores the connection,
|
|
4
|
+
keeps its credential server-side, and makes the server's tools available through the same integration gateway as native
|
|
5
|
+
providers.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
- **Remote MCP**: `https://api.fimo.ai/api/mcp` over authenticated Streamable HTTP, for ChatGPT, Claude, and other
|
|
8
|
-
clients that support OAuth.
|
|
7
|
+
## Add a server
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
`https://fimo.ai/docs/mcp` is separate: it is unauthenticated, read-only, and only provides Fimo documentation.
|
|
9
|
+
Start with automatic discovery:
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
```bash
|
|
12
|
+
fimo mcp add sentry --url https://mcp.sentry.dev/mcp
|
|
13
|
+
```
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Fimo connects public servers immediately. When the server advertises OAuth, Fimo opens its authorization page. Use
|
|
16
|
+
`--no-open` to print the URL for a browser on another machine.
|
|
17
|
+
|
|
18
|
+
Bearer token:
|
|
16
19
|
|
|
17
20
|
```bash
|
|
18
|
-
fimo
|
|
21
|
+
printf '%s\n' "$MCP_TOKEN" | fimo mcp add sentry \
|
|
22
|
+
--url https://mcp.sentry.dev/mcp \
|
|
23
|
+
--auth bearer \
|
|
24
|
+
--token-stdin
|
|
19
25
|
```
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
Multiple custom headers:
|
|
22
28
|
|
|
23
|
-
```
|
|
24
|
-
fimo mcp
|
|
29
|
+
```bash
|
|
30
|
+
printf '%s\n' "$MCP_HEADERS_JSON" | fimo mcp add internal \
|
|
31
|
+
--url https://mcp.example.com/mcp \
|
|
32
|
+
--auth header \
|
|
33
|
+
--header Authorization \
|
|
34
|
+
--header X-Workspace \
|
|
35
|
+
--headers-stdin
|
|
25
36
|
```
|
|
26
37
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
`MCP_HEADERS_JSON` must be one JSON object containing every configured header and no others, for example
|
|
39
|
+
`{"Authorization":"Bearer abc123","X-Workspace":"workspace-secret"}`. Header names are matched case-insensitively.
|
|
40
|
+
**Each value is the complete header value and is sent byte for byte**, so include any prefix the server expects. There
|
|
41
|
+
is no scheme or prefix option; anything the header needs goes in the value.
|
|
42
|
+
|
|
43
|
+
Use `--auth none` for a public endpoint or `--auth bearer --token-stdin` for a bearer token, which is the shortcut for
|
|
44
|
+
sending `Authorization: Bearer <token>` from the token alone. The single-header form,
|
|
45
|
+
`--auth header --header-name <name> --token-stdin`, pipes one complete header value.
|
|
46
|
+
|
|
47
|
+
Fimo requires an HTTPS Streamable HTTP endpoint, validates the MCP handshake before saving it, encrypts the credentials,
|
|
48
|
+
and never prints their values. The resulting integration key begins with `mcp_` so it cannot collide with a native
|
|
49
|
+
provider.
|
|
50
|
+
|
|
51
|
+
OAuth and manual credentials are alternative connection grants. Fimo never sends custom secret headers alongside an
|
|
52
|
+
OAuth access token.
|
|
53
|
+
|
|
54
|
+
## Reconnect OAuth
|
|
55
|
+
|
|
56
|
+
If live discovery or execution reports that an OAuth connection needs authorization again:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
fimo mcp reconnect sentry
|
|
38
60
|
```
|
|
39
61
|
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
This replaces the organization-owned OAuth grant and requires organization admin access. Add `--no-open` to print the
|
|
63
|
+
authorization URL.
|
|
42
64
|
|
|
43
|
-
##
|
|
65
|
+
## Rotate credentials
|
|
44
66
|
|
|
45
|
-
|
|
46
|
-
current git branch as the default Branch. This keeps an AI client working against the same Branch as the checkout.
|
|
67
|
+
Rotation replaces the complete credential bundle on the connection already enabled for this project:
|
|
47
68
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
69
|
+
```bash
|
|
70
|
+
printf '%s\n' "$MCP_HEADERS_JSON" | fimo mcp rotate internal --headers-stdin
|
|
71
|
+
printf '%s\n' "$MCP_TOKEN" | fimo mcp rotate sentry --token-stdin
|
|
72
|
+
```
|
|
52
73
|
|
|
53
|
-
|
|
54
|
-
|
|
74
|
+
Custom-header rotation requires the complete value of every configured header. It never merges a partial update, and
|
|
75
|
+
neither command prints the submitted values. Rotation updates the organization-owned connection and requires organization admin access.
|
|
55
76
|
|
|
56
|
-
##
|
|
77
|
+
## Discover servers and tools
|
|
57
78
|
|
|
58
|
-
|
|
79
|
+
```bash
|
|
80
|
+
fimo mcp list
|
|
81
|
+
fimo mcp search "issue tracking"
|
|
82
|
+
fimo mcp info sentry
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- `list` shows only remote MCP integrations available to the current project.
|
|
86
|
+
- `search` searches the live tool names and descriptions across those servers.
|
|
87
|
+
- `info` shows one server's endpoint, authentication shape, and current live tool catalog.
|
|
88
|
+
|
|
89
|
+
`info` and `run` accept either the short server name (`sentry`) or its complete integration key (`mcp_sentry`). The
|
|
90
|
+
catalog is loaded live; Fimo does not persist or expose a stale copy to the model.
|
|
91
|
+
|
|
92
|
+
## Run a tool
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
fimo mcp run sentry search_issues --input '{"query":"open regressions"}'
|
|
96
|
+
fimo mcp run sentry projects_list
|
|
97
|
+
fimo mcp run sentry search_issues --input @request.json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Omit `--input` when the tool takes no arguments. Use inline JSON, a project-relative `@file`, or `--input -` to read JSON
|
|
101
|
+
from stdin.
|
|
59
102
|
|
|
60
|
-
|
|
61
|
-
- **Content** — schemas, collection entries, search, create/update/delete, bounded bulk operations, and Singles.
|
|
62
|
-
- **Labels** — list, read, set, batch-set, and delete localized labels.
|
|
63
|
-
- **Media** — list and inspect assets, read canonical pages or ask one targeted question with `assets_read`, generate images or videos, create folders, move, and delete assets. Binary
|
|
64
|
-
upload remains `fimo assets upload`.
|
|
65
|
-
- **Forms** — create, read, update, and delete forms; inspect submissions and statistics.
|
|
66
|
-
- **Files** — read, glob, grep, write, edit, and delete project files within the scoped Branch. Sensitive files
|
|
67
|
-
such as credentials and `.env` files are excluded.
|
|
68
|
-
- **Agents** — list agents, start a run, and inspect run status.
|
|
103
|
+
## Studio and project agents
|
|
69
104
|
|
|
70
|
-
|
|
71
|
-
|
|
105
|
+
Remote MCP servers remain normal project integrations underneath the focused CLI. Studio chat and autonomous agents
|
|
106
|
+
discover and run them through:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
fimo integrations list
|
|
110
|
+
fimo integrations info mcp_sentry
|
|
111
|
+
fimo integrations run mcp_sentry search_issues --input '{"query":"open regressions"}'
|
|
112
|
+
```
|
|
72
113
|
|
|
73
|
-
|
|
114
|
+
An autonomous agent only sees integrations enabled in its committed `integrations:` policy. Studio receives a frozen
|
|
115
|
+
snapshot of the integrations enabled when the turn starts. Neither surface receives the underlying credential or opens
|
|
116
|
+
a direct connection to the remote server.
|
|
74
117
|
|
|
75
|
-
|
|
76
|
-
browser OAuth consent screen. Remote MCP uses Fimo OAuth with `read`, `write`, and `agents` scopes; the user selects
|
|
77
|
-
the optional capabilities during consent.
|
|
118
|
+
## Supported servers
|
|
78
119
|
|
|
79
|
-
|
|
80
|
-
|
|
120
|
+
Remote connections support HTTPS Streamable HTTP servers with OAuth, no authentication, a bearer token, or custom
|
|
121
|
+
private headers. Local stdio commands such as `npx`, arbitrary child processes, resources, and prompts are not supported.
|
|
81
122
|
|
|
82
|
-
|
|
83
|
-
|
|
123
|
+
To connect ChatGPT, Claude, or another remote MCP client to Fimo itself, use Fimo's hosted Project MCP at
|
|
124
|
+
`https://api.fimo.ai/api/mcp`. That is a separate direction from connecting a Fimo project to an external MCP server.
|
|
@@ -47,7 +47,9 @@ variables.
|
|
|
47
47
|
|
|
48
48
|
## Local Env Files
|
|
49
49
|
|
|
50
|
-
`fimo init` and `fimo
|
|
50
|
+
`fimo init`, `fimo clone`, and `fimo link` do not write the Fimo connection to
|
|
51
|
+
an env file. Supported framework runtimes derive it from `.fimo/project.json`
|
|
52
|
+
and the active git branch; hosted preview and production inject it directly.
|
|
51
53
|
|
|
52
54
|
`fimo vars add`, `fimo vars update`, and `fimo vars pull` write public project variables to a managed block in `.env.local`.
|
|
53
55
|
|
|
@@ -19,7 +19,7 @@ fimo projects rename <name> [projectId] [-C <dir>] # set seo.siteName in the l
|
|
|
19
19
|
- **`clone`** — clone a remote Fimo project's git repo to your machine and write the local `.fimo/project.json` and agent files. Use `fimo clone <projectId>` when scripting or when the ID is known. In an interactive terminal, bare `fimo clone` opens a project picker for the active org; JSON mode and non-TTY shells require an explicit project ID and fail fast instead of prompting. By default it clones `main`; pass `--branch <name>` to clone a specific Branch. The legacy `--env <name>` spelling remains a compatibility alias. The target directory defaults to the project display name/name, or pass `[dir]` explicitly.
|
|
20
20
|
- **`delete`** — destructive; prompts unless `-y`. Removes the remote project.
|
|
21
21
|
- **`publish` / `unpublish`** — toggle the project's public visibility. `publish` flips the current `main` state live (the same "go live" as `fimo deploy --publish`, minus the git push).
|
|
22
|
-
- **`rename`** — edits only the linked local project
|
|
22
|
+
- **`rename`** — edits only the linked local project's `seo.siteName`. It does not commit or deploy. It requires a project marker in the cwd, and if you pass a `[projectId]` that doesn't match the linked project it errors and exits 1 (so you can't rename a different project). Later remote config commands may require reconciliation while the local config is dirty. Finish your local edits, then explicitly run `fimo deploy --no-wait` when ready for a quick sync.
|
|
23
23
|
|
|
24
24
|
## Top-level clone shortcut
|
|
25
25
|
|
|
@@ -39,7 +39,7 @@ fimo unpublish [-C <dir>] # unpublish the current project
|
|
|
39
39
|
fimo rename "<Site Name>" # local edit: set seo.siteName in the project config
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
`fimo rename` sets the **site name** (`seo.siteName`) in the local project config
|
|
42
|
+
`fimo rename` sets the **site name** (`seo.siteName`) in the local project config. It does not commit or deploy. Later remote config commands may require reconciliation while that local config is dirty. Finish your local edits, then explicitly run `fimo deploy --no-wait` when ready for a quick sync. Deploy reconciles the project's remote `displayName` while pushing the config. See `references/init.md` and `references/deploy.md`.
|
|
43
43
|
|
|
44
44
|
## Publish commands
|
|
45
45
|
|
|
@@ -24,7 +24,7 @@ Generated content reads wrap this stored value in `FimoMedia`, which exposes `ur
|
|
|
24
24
|
|
|
25
25
|
## Rendering in application code
|
|
26
26
|
|
|
27
|
-
Import the primitives from the active framework adapter: `fimo
|
|
27
|
+
Import the primitives from the active framework adapter: `fimo-next` on the Next server, `fimo-next/client` in Next Client Components, `fimo-react` in React Router/Vite, or `fimo/astro/components` in Astro pages.
|
|
28
28
|
|
|
29
29
|
| Asset source | Component | Pass via |
|
|
30
30
|
| --------------------------------------------------- | --------------------- | ------------------------- |
|
|
@@ -32,7 +32,7 @@ Import the primitives from the active framework adapter: `fimo/next` on the Next
|
|
|
32
32
|
| Hard-coded URL or generated asset referenced inline | `<StaticImage>` | `src="https://..."` |
|
|
33
33
|
|
|
34
34
|
```tsx
|
|
35
|
-
import { Image, StaticImage, Video } from 'fimo
|
|
35
|
+
import { Image, StaticImage, Video } from 'fimo-next';
|
|
36
36
|
|
|
37
37
|
// from a schema entry:
|
|
38
38
|
<Image value={post.coverImage} width={1200} height={630} fit="cover" />
|
|
@@ -13,7 +13,7 @@ Load `references/frameworks/next.md` and the matching router reference first. In
|
|
|
13
13
|
|
|
14
14
|
```ts
|
|
15
15
|
import type { NextConfig } from 'next';
|
|
16
|
-
import { withFimo } from 'fimo
|
|
16
|
+
import { withFimo } from 'fimo-next/config';
|
|
17
17
|
|
|
18
18
|
const nextConfig: NextConfig = {
|
|
19
19
|
cacheComponents: true,
|
|
@@ -106,7 +106,7 @@ export function ContactForm() {
|
|
|
106
106
|
|
|
107
107
|
## Framework bindings
|
|
108
108
|
|
|
109
|
-
- **Vite/React:** `submitX(data)` keeps using the existing `fimo
|
|
109
|
+
- **Vite/React:** `submitX(data)` keeps using the existing `fimo-react` runtime and preserves the current generated API.
|
|
110
110
|
- **Next.js:** server modules import `@/forms/name`; client components import `@/forms/name.client`. Both expose the same `submitX(data)` shape.
|
|
111
111
|
- **Astro:** import the generated server module and call `submitX(data)` in an Astro action or endpoint. Astro keeps the HTML form and redirect.
|
|
112
112
|
- **SvelteKit:** use `createFimoFormClient({ event })` in a server action and pass it as the second argument: `submitX(data, client)`.
|
|
@@ -14,17 +14,23 @@ Declare the production framework in `.fimo/config.json`:
|
|
|
14
14
|
|
|
15
15
|
Astro owns its static or server output, routes, and 404 behavior. Do not add a catch-all hosting rewrite, a hosting-provider adapter, a preview URL, or a script tag for Fimo.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Install `fimo-astro` at the same version as `fimo` and add the integration
|
|
18
|
+
beside the adapters and integrations the project already uses:
|
|
18
19
|
|
|
19
20
|
```js
|
|
20
21
|
import { defineConfig } from 'astro/config';
|
|
21
|
-
import { fimo } from 'fimo
|
|
22
|
+
import { fimo } from 'fimo-astro/config';
|
|
22
23
|
|
|
23
24
|
export default defineConfig({
|
|
24
25
|
integrations: [fimo()],
|
|
25
26
|
});
|
|
26
27
|
```
|
|
27
28
|
|
|
29
|
+
`fimo-astro/config` supplies Fimo hosting for `output: 'server'`. A static
|
|
30
|
+
Astro site that hosts elsewhere can import `fimo` from `fimo/astro/config`
|
|
31
|
+
instead for the preview connector and branch env alone; the runtime
|
|
32
|
+
(`fimo/astro`, `fimo/astro/components`) always comes from `fimo`.
|
|
33
|
+
|
|
28
34
|
Compatibility: the Fimo peer range covers Astro 5–7. Static output is supported
|
|
29
35
|
across that range. Fimo's automatic server adapter path is currently validated
|
|
30
36
|
with the Astro 7-compatible adapter; Astro 5/6 server apps should keep their
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
peer ranges and the executable acceptance fixtures define compatibility; the
|
|
5
5
|
profile does not promise support for every version of the framework.
|
|
6
6
|
|
|
7
|
-
| Profile | Application dependency specifier | Fimo surface
|
|
8
|
-
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
-
| `nextjs` | Next 16 is the current acceptance baseline; Fimo's React peer is `^18.2.0 \|\| ^19.0.0` and Next imposes its own React range | `fimo
|
|
10
|
-
| `react-router` | React `^18.2.0 \|\| ^19.0.0`, React Router `^7.0.0 \|\| ^8.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo/react-router`, `fimo/
|
|
11
|
-
| `vite` |
|
|
12
|
-
| `astro` | Astro `^5.0.0 \|\| ^6.0.0 \|\| ^7.0.0`
|
|
13
|
-
| `sveltekit` | SvelteKit `^2.0.0`, Svelte `^5.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo
|
|
14
|
-
| `nuxtjs`, `remix`, `vue` | Hosting detection only; no Fimo content/runtime adapter yet | `fimo` hosting profile only
|
|
15
|
-
| _(unset)_ | Anything else: a static generator, plain HTML, a custom build script. Declare `runtime.commands.build` and `runtime.outputDirectory` instead | Static output only; no adapter
|
|
7
|
+
| Profile | Application dependency specifier | Fimo surface |
|
|
8
|
+
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| `nextjs` | Next 16 is the current acceptance baseline; Fimo's React peer is `^18.2.0 \|\| ^19.0.0` and Next imposes its own React range | `fimo-next`, `fimo-next/client` |
|
|
10
|
+
| `react-router` | React `^18.2.0 \|\| ^19.0.0`, React Router `^7.0.0 \|\| ^8.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo-react-router`, `fimo-react-router/routes`, `fimo-react-router/preset`, `fimo-react-router/vite`, `fimo-react` |
|
|
11
|
+
| `vite` | Vite `^7.0.0 \|\| ^8.0.0`; React `^18.2.0 \|\| ^19.0.0` only when the app uses React | `fimo-react`, `fimo-react-router/vite` (React SPA) or `fimo-vite` (no React) |
|
|
12
|
+
| `astro` | Astro `^5.0.0 \|\| ^6.0.0 \|\| ^7.0.0`; Fimo hosting (`fimo-astro`) needs Astro `^7.0.0` | `fimo/astro`, `fimo/astro/components`, `fimo-astro/config` |
|
|
13
|
+
| `sveltekit` | SvelteKit `^2.0.0`, Svelte `^5.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo-sveltekit`, `fimo-sveltekit/components`, `fimo-sveltekit/vite`, `fimo-sveltekit/config` |
|
|
14
|
+
| `nuxtjs`, `remix`, `vue` | Hosting detection only; no Fimo content/runtime adapter yet | `fimo` hosting profile only |
|
|
15
|
+
| _(unset)_ | Anything else: a static generator, plain HTML, a custom build script. Declare `runtime.commands.build` and `runtime.outputDirectory` instead | Static output only; no adapter |
|
|
16
16
|
|
|
17
17
|
`runtime.framework` must match a dependency in `package.json`; a profile the
|
|
18
18
|
code does not use fails the production build. Shape and rules: `hosting.md`
|
|
@@ -39,27 +39,31 @@ Hosted preview and production inject the tenant API through these aliases:
|
|
|
39
39
|
|
|
40
40
|
| Application | Server | Public/build |
|
|
41
41
|
| ----------------------- | ---------------------- | -------------------------- |
|
|
42
|
-
| Next.js | `FIMO_CONTENT_API_URL` |
|
|
42
|
+
| Next.js | `FIMO_CONTENT_API_URL` | Provider-owned |
|
|
43
43
|
| Nuxt | `FIMO_CONTENT_API_URL` | `NUXT_PUBLIC_FIMO_API_URL` |
|
|
44
44
|
| Astro, Remix, SvelteKit | `FIMO_CONTENT_API_URL` | `PUBLIC_FIMO_API_URL` |
|
|
45
45
|
| React Router, Vite, Vue | `FIMO_CONTENT_API_URL` | `VITE_API_URL` |
|
|
46
46
|
|
|
47
|
-
Locally, the app derives its env from the **git branch**: `fimo
|
|
48
|
-
`
|
|
49
|
-
API URL from `.fimo/project.json`
|
|
47
|
+
Locally, the app derives its env from the **git branch**: `fimo-vite` (or
|
|
48
|
+
`fimo-react-router/vite` for React Router projects), the Astro integration and
|
|
49
|
+
the SvelteKit plugin compute the tenant API URL from `.fimo/project.json`
|
|
50
50
|
(`projectId` + `tenantApiBaseUrl`, recorded once at `init`/`clone`/`link`) and
|
|
51
|
-
expose the Vite
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
expose the Vite and public (`PUBLIC_*`) aliases plus `FIMO_ENV` at startup,
|
|
52
|
+
during both dev and production builds. Next.js needs no browser alias: the root
|
|
53
|
+
`FimoProvider` and the `fimo-next` server runtime resolve the same connection
|
|
54
|
+
at render time and pass only the public part to the browser. No env file is
|
|
55
|
+
written on a switch, so a plain `git checkout` is a complete env switch. Never
|
|
56
|
+
hardcode a tenant URL in application source. One rule, per variable: a
|
|
57
|
+
non-empty value the user set explicitly (`.env`, shell, their own `define`) is
|
|
58
|
+
left alone, and Fimo fills the variables they did not set.
|
|
59
59
|
|
|
60
60
|
For a framework whose alias is not in that list yet, preserve or add its normal
|
|
61
61
|
local environment alias by hand.
|
|
62
62
|
|
|
63
|
+
`NEXT_PUBLIC_FIMO_*` remains a compatibility override for existing Next.js
|
|
64
|
+
projects. Do not add it to new code, env files, setup instructions, or migration
|
|
65
|
+
plans.
|
|
66
|
+
|
|
63
67
|
## React Router framework mode
|
|
64
68
|
|
|
65
69
|
For the supported client-rendered setup, keep `ssr: false` and add Fimo's
|
|
@@ -67,7 +71,7 @@ hosting preset. It hides the active hosting provider from application code:
|
|
|
67
71
|
|
|
68
72
|
```ts
|
|
69
73
|
import type { Config } from '@react-router/dev/config';
|
|
70
|
-
import { fimoPreset } from 'fimo
|
|
74
|
+
import { fimoPreset } from 'fimo-react-router/preset';
|
|
71
75
|
|
|
72
76
|
export default {
|
|
73
77
|
ssr: false,
|