fimo 2.2.0-staging.12 → 2.2.0-staging.14
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/content-templates/shared/types.eta +65 -6
- package/assets/skills/fimo-cli/SKILL.md +4 -2
- package/assets/skills/fimo-cli/references/agents.md +3 -3
- package/assets/skills/fimo-cli/references/branches.md +9 -8
- package/assets/skills/fimo-cli/references/credits.md +12 -19
- package/assets/skills/fimo-cli/references/deploy.md +6 -6
- package/assets/skills/fimo-cli/references/history.md +2 -2
- package/assets/skills/fimo-cli/references/inbox.md +86 -0
- package/assets/skills/fimo-cli/references/init.md +7 -6
- package/assets/skills/fimo-cli/references/invite.md +11 -9
- package/assets/skills/fimo-cli/references/labels.md +3 -11
- package/assets/skills/fimo-cli/references/locales.md +5 -3
- package/assets/skills/fimo-cli/references/preview.md +1 -2
- package/assets/skills/fimo-cli/references/projects.md +8 -8
- package/assets/skills/fimo-cli/references/schedules.md +2 -2
- package/assets/skills/fimo-cli/references/webhooks.md +4 -4
- package/assets/skills/fimo-code/references/assets.md +22 -11
- package/assets/skills/fimo-code/references/content/clients.md +15 -1
- package/assets/skills/fimo-code/references/frameworks/astro.md +1 -1
- package/assets/skills/fimo-code/references/frameworks/next/locales.md +2 -2
- package/assets/skills/fimo-code/references/locales.md +4 -2
- package/assets/skills/fimo-migration/SKILL.md +10 -3
- package/assets/skills/fimo-migration/references/media.md +11 -0
- package/assets/skills/fimo-migration/references/workflow.md +3 -0
- package/assets/skills/fimo-studio/references/ai-chat.md +1 -2
- package/assets/skills/fimo-studio/references/billing-and-credits.md +14 -7
- package/assets/skills/fimo-studio/references/webhooks.md +1 -1
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +207 -177
- package/dist/runtime/content/serialization.d.ts +4 -3
- package/dist/runtime/content/serialization.js +4 -3
- package/dist/runtime/primitives/lib/primitives.d.ts +15 -7
- package/dist/runtime/primitives/lib/primitives.js +14 -1
- package/dist/runtime/shared/local-runtime-env.d.ts +2 -2
- package/dist/runtime/shared/local-runtime-env.js +14 -9
- package/package.json +9 -8
- package/templates/astro/AGENTS.md +1 -1
- package/templates/astro/package.json +2 -2
- package/templates/nextjs/AGENTS.md +1 -1
- package/templates/nextjs/package.json +3 -3
- package/templates/react-router/AGENTS.md +2 -2
- package/templates/react-router/package.json +4 -4
- package/templates/sveltekit/AGENTS.md +1 -1
- package/templates/sveltekit/package.json +2 -2
- package/templates/vite/AGENTS.md +5 -1
- package/templates/vite/package.json +4 -4
|
@@ -9,16 +9,16 @@ fimo projects list [--org <id>] # list projects in an org (defau
|
|
|
9
9
|
fimo projects create [dir] [--org <id>] [--framework react-router|astro|nextjs|sveltekit] [--install|--no-install]
|
|
10
10
|
fimo projects clone [projectId] [dir] [--branch <name>] # clone an existing project locally
|
|
11
11
|
fimo projects delete [projectId] [-C <dir>] [-y] # delete (defaults to current project)
|
|
12
|
-
fimo projects publish [projectId] [-C <dir>] # make the project live
|
|
12
|
+
fimo projects publish [projectId] [-C <dir>] # make the project live from its Production source Branch
|
|
13
13
|
fimo projects unpublish [projectId] [-C <dir>] # take the project offline
|
|
14
14
|
fimo projects rename <name> [projectId] [-C <dir>] # set seo.siteName in the linked project config
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
- **`list`** — projects you can see in the org. Live projects are marked.
|
|
18
18
|
- **`create`** — identical to `fimo init` (create-new path); see `references/init.md`.
|
|
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
|
|
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 removed `--env <name>` spelling is rejected as a Branch selector. 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
|
-
- **`publish` / `unpublish`** — toggle the project's public visibility. `publish` flips the
|
|
21
|
+
- **`publish` / `unpublish`** — toggle the project's public visibility. `publish` flips the configured Production source state live (the same "go live" as `fimo deploy --publish`, minus the git push).
|
|
22
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
|
|
@@ -43,10 +43,10 @@ fimo rename "<Site Name>" # local edit: set seo.siteName in the project c
|
|
|
43
43
|
|
|
44
44
|
## Publish commands
|
|
45
45
|
|
|
46
|
-
| Command | Effect
|
|
47
|
-
| ----------------------- |
|
|
48
|
-
| `fimo deploy --publish` | Push current
|
|
49
|
-
| `fimo projects publish` | Flip the project live (no git push).
|
|
50
|
-
| `fimo publish` | Flip the
|
|
46
|
+
| Command | Effect |
|
|
47
|
+
| ----------------------- | -------------------------------------------------------------------------- |
|
|
48
|
+
| `fimo deploy --publish` | Push the current Production source + flip the project live in one shot. |
|
|
49
|
+
| `fimo projects publish` | Flip the project live (no git push). |
|
|
50
|
+
| `fimo publish` | Flip the synced Production source revision live; optional label and notes. |
|
|
51
51
|
|
|
52
52
|
See `references/deploy.md` and `references/branches.md` for the full picture.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`fimo schedules` manages recurring commands for one project Branch. It uses the
|
|
4
4
|
current checkout Branch by default, or the Branch passed with `--branch <name>`.
|
|
5
|
-
The
|
|
5
|
+
The removed `--env <name>` spelling is rejected as a Branch selector.
|
|
6
6
|
|
|
7
7
|
The command starts in that Branch's sandbox. Commands can still target another
|
|
8
8
|
Branch explicitly, for example with `fimo schemas list --branch preview`.
|
|
@@ -72,6 +72,6 @@ All schedule commands support the CLI's global `--json` mode. List, detail, and
|
|
|
72
72
|
|
|
73
73
|
## Notes
|
|
74
74
|
|
|
75
|
-
- Every operation is scoped to the active Branch unless `--branch`
|
|
75
|
+
- Every operation is scoped to the active Branch unless `--branch` is passed.
|
|
76
76
|
- Pausing stops future cron runs. It does not delete history.
|
|
77
77
|
- A failed or skipped manual run exits non-zero with its run ID and an exact `runs show` command for inspecting detail.
|
|
@@ -28,12 +28,13 @@ Run this before writing a custom payload. The list shows supported event types,
|
|
|
28
28
|
- Publish: `publish.started`, `publish.succeeded`, `publish.failed`, `publish.unpublished`
|
|
29
29
|
- Agents: run started/completed/failed/cancelled and review requested/resolved
|
|
30
30
|
- Analytics: `analytics.report_ready`
|
|
31
|
-
- Media: uploaded/updated/deleted
|
|
31
|
+
- Media: uploaded/updated/deleted
|
|
32
32
|
- Entries: `entry.changed`
|
|
33
33
|
- Domains: `domain.created`, `domain.deleted`
|
|
34
34
|
- Labels: `label.changed`
|
|
35
35
|
- Locales: `locale.created`, `locale.default_changed`, `locale.deleted`
|
|
36
|
-
-
|
|
36
|
+
- Branch restore: `branch.restored`
|
|
37
|
+
- Existing lifecycle wire names: `environment.created`, `environment.deleted`, `environment.merged`
|
|
37
38
|
|
|
38
39
|
Do not guess variable paths. The common envelope is:
|
|
39
40
|
|
|
@@ -110,9 +111,8 @@ Available filters are event-specific:
|
|
|
110
111
|
- `--agent <name>` for agent events
|
|
111
112
|
- `--media-type <image|video|audio|document|other>` for media events
|
|
112
113
|
- `--action <created|updated|deleted>`, `--content-type <name>`, and `--locale <locale>` for `entry.changed`
|
|
113
|
-
- `--debounce-changes <immediate|5s|30s|1m>` for direct `entry.changed` delivery grouping
|
|
114
114
|
|
|
115
|
-
`entry.changed` represents content
|
|
115
|
+
`entry.changed` represents content committed in the selected Environment. Each committed write sends one delivery whose `data.changes` lists every affected entry; environment merges arrive the same way with `reason: "environment_merge"`. Operations above the delivery batch size share an `operationId` and include `{ index, total }` batch metadata. Retries resend the same delivery (same event `id`), never a new one. Every event includes scalar `environment` and `branch` context and keeps the legacy Branch value at `event.env.name`. Publish events always report Production on `main`.
|
|
116
116
|
|
|
117
117
|
## Inspect before depending on it
|
|
118
118
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# Assets
|
|
1
|
+
# Assets in code
|
|
2
2
|
|
|
3
3
|
> For the CLI commands (`fimo assets upload`, `fimo image generate`, folder management) and the "when to generate AI images" workflow rules, see **`fimo-cli/references/assets.md`**.
|
|
4
4
|
|
|
5
|
-
This file covers
|
|
5
|
+
This file covers media fields and the Fimo image components.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Media field values
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
A media field stores a reference to an asset, not a copy of the asset metadata. Write the value returned by upload or generation:
|
|
10
10
|
|
|
11
11
|
```json
|
|
12
12
|
{
|
|
@@ -16,11 +16,22 @@ Asset values returned from `fimo assets upload` or Fimo media tasks, and stored
|
|
|
16
16
|
}
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
- `source`: `"local"` for
|
|
20
|
-
- `url`:
|
|
21
|
-
- `alt`: optional
|
|
19
|
+
- `source`: `"local"` for a Fimo media-library asset, or `"external"` for a third-party URL.
|
|
20
|
+
- `url`: the public asset URL.
|
|
21
|
+
- `alt`: optional text owned by the entry.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
For a local asset, Fimo stores its ID and keeps the URL as a fallback. Do not copy `name`, `mime`, `width`, or `height` into the value. Those facts belong to the asset and are removed from writes.
|
|
24
|
+
|
|
25
|
+
By default, reads return the stored reference without an asset lookup. Name a media or blocks field in `populate` when the page needs the asset's current URL, name, MIME type, or intrinsic size:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
const post = await Post.getBySlug('hello');
|
|
29
|
+
const withAsset = await Post.getBySlug('hello', { populate: ['cover'] });
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`populate` takes top-level field names. A blocks field populates every media value inside it. One lookup covers all selected media in the response. Media inside a populated reference target stays a reference. Use `fimo assets open <id> --download` to inspect the source file.
|
|
33
|
+
|
|
34
|
+
Generated reads wrap media in `FimoMedia`. Its `id`, `alt`, `name`, `mime`, `width`, and `height` can be absent. A populated value has the current facts when the asset resolves; missing or external assets stay unchanged. `source` is internal. Pass the whole value to `<Image>` or `<Video>`.
|
|
24
35
|
|
|
25
36
|
## Rendering in application code
|
|
26
37
|
|
|
@@ -41,11 +52,11 @@ import { Image, StaticImage, Video } from 'fimo-next';
|
|
|
41
52
|
<StaticImage src="https://assets.fimo.ai/<project>/<id>.jpg" alt="Hero" width={1200} height={630} />
|
|
42
53
|
```
|
|
43
54
|
|
|
44
|
-
Fimo's `<Image>` is not Next's `next/image
|
|
55
|
+
Fimo's `<Image>` is not Next's `next/image`. Use the Fimo props documented here. Keep `next/image` for non-Fimo images that need its controls.
|
|
45
56
|
|
|
46
|
-
|
|
57
|
+
Choose dimensions, CSS, `sizes`, and `fit` from the page design. Do not copy the source file's intrinsic dimensions into layout props by default. When a read includes intrinsic size, Fimo uses it for aspect-ratio reservation and responsive candidates.
|
|
47
58
|
|
|
48
|
-
**Never hand-construct a `FimoMedia` object** to pass into `<Image
|
|
59
|
+
**Never hand-construct a `FimoMedia` object** to pass into `<Image>`. That bypasses inline-editing metadata. If you have a raw URL, use `<StaticImage>` instead.
|
|
49
60
|
|
|
50
61
|
See `references/ui.md` for the full component table and rules.
|
|
51
62
|
|
|
@@ -125,7 +125,21 @@ const page = await Article.list({
|
|
|
125
125
|
});
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
Fimo always keeps `id`, `entryId`, `documentId`, and `locale
|
|
128
|
+
Fimo always keeps `id`, `entryId`, `documentId`, and `locale`, plus every field named in `populate`.
|
|
129
|
+
|
|
130
|
+
`populate` is depth-one and takes top-level field names of two kinds:
|
|
131
|
+
|
|
132
|
+
| Field named | Without `populate` | With it |
|
|
133
|
+
| -------------------- | ------------------------ | ------------------------------------------------------------------------------------------- |
|
|
134
|
+
| reference | `{ id }` | the target entry, or `null` |
|
|
135
|
+
| media | the stored reference | `FimoPopulatedMedia` with current asset facts when it resolves; asset facts remain optional |
|
|
136
|
+
| blocks holding media | stored references inside | every media value inside it populated; item types unchanged |
|
|
137
|
+
|
|
138
|
+
Any other field name is a 400. A populated reference target carries its own media as stored references. Population does not recurse, and a missing or external asset keeps its stored media value.
|
|
139
|
+
|
|
140
|
+
Even when media is populated, `id`, `name`, `mime`, `width`, and `height` can be absent for external, missing, or incomplete assets. The stored `url` remains the fallback, and `alt` is optional entry-owned text.
|
|
141
|
+
|
|
142
|
+
Generated schema modules keep `FimoMediaRef` and `FimoPopulatedMedia` local. Their shapes depend on the schema, while the installed runtime package may be an older release.
|
|
129
143
|
|
|
130
144
|
When a named type is needed, use the generated result type rather than typing populated data as the base entry:
|
|
131
145
|
|
|
@@ -115,7 +115,7 @@ export async function getStaticPaths() {
|
|
|
115
115
|
|
|
116
116
|
Configure Astro i18n from `.fimo/config.json#i18n` and use `Astro.currentLocale` for content reads, `getLabels({ locale })`, and `<html lang>`. The standard starter keeps the configured default locale unprefixed and prefixes the others. Existing applications may instead resolve locale through middleware, domains, cookies, or another application-owned strategy. Astro needs no Fimo locale provider. Ownership rules: `references/locales.md`.
|
|
117
117
|
|
|
118
|
-
The new-project shell pairs unprefixed default-locale pages with a parallel `[locale]` tree because Astro has no optional single-segment page filename. Add locales
|
|
118
|
+
The new-project shell pairs unprefixed default-locale pages with a parallel `[locale]` tree because Astro has no optional single-segment page filename. Add locales through the `fimo-cli` locale workflow; Astro's native i18n router reads the synchronized config and validates the prefixed tree. Route metadata uses `/:locale` with `params.locale.optional: true`; Astro page files remain authoritative.
|
|
119
119
|
|
|
120
120
|
## Studio route catalog
|
|
121
121
|
|
|
@@ -35,7 +35,7 @@ When labels are not needed at that boundary, use `<FimoProvider locale={locale}>
|
|
|
35
35
|
|
|
36
36
|
## New-project boundary
|
|
37
37
|
|
|
38
|
-
Choose the primary locale from the user's request before building pages.
|
|
38
|
+
Choose the primary locale from the user's request before building pages. Configure the supported locales and default through the `fimo-cli` locale workflow. `src/locales.ts` reads the synchronized config, so the default locale passed to `FimoProvider` and the `<html lang>` follow it. It does not create locale URLs. If the user gives no locale signal, keep `en` and state that choice. Never add `NEXT_PUBLIC_FIMO_DEFAULT_LOCALE` or `FIMO_DEFAULT_LOCALE`; the runtime ignores them by design.
|
|
39
39
|
|
|
40
40
|
The starter is default-only: one ordinary root layout renders `<html lang={defaultLocale}>` and `FimoProvider`, `/` is the homepage, and unknown paths get Next's native 404. Implement a locale routing strategy only when the product asks for one — prefixed `[locale]` segments, middleware, cookies, domains, or an i18n library are all Next decisions — then resolve the locale in that strategy and pass it into Fimo server reads and `FimoProvider`. Do not install a top-level `[locale]` route or an optional catch-all speculatively: it captures `/favicon.ico` and every unknown top-level path, and Fimo never requires it.
|
|
41
41
|
|
|
@@ -45,7 +45,7 @@ When the app implements a localized URL shape, describe it in `.fimo/config.json
|
|
|
45
45
|
|
|
46
46
|
With `next-i18next`, keep its routing and translation provider for the strings it owns. Pass the same resolved locale to Fimo; do not replace the library or duplicate its route structure.
|
|
47
47
|
|
|
48
|
-
Before creating non-default Fimo labels or content variants, confirm that those locales are enabled for the linked Fimo project. Load `fimo-cli` with its `locales` reference and run `fimo locales add <locale> --yes --json`;
|
|
48
|
+
Before creating non-default Fimo labels or content variants, confirm that those locales are enabled for the linked Fimo project. Load `fimo-cli` with its `locales` reference and run `fimo locales add <locale> --yes --json`; `fimo validate` does not add project locales.
|
|
49
49
|
|
|
50
50
|
## Ownership boundary
|
|
51
51
|
|
|
@@ -13,11 +13,13 @@ The application owns locale resolution and routing. Fimo consumes the resolved l
|
|
|
13
13
|
}
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
For
|
|
16
|
+
For a linked project, load `fimo-cli` with its `locales` reference and use the typed locale commands to change the supported locales or default. That reference owns the synchronization and recovery contract.
|
|
17
|
+
|
|
18
|
+
For new projects, derive the primary locale from the request; when several are explicit, the first one named is the default. Configure that locale set through the lifecycle commands, then update the document language default and any framework-native locale route boundary or matcher the application implements. If the user gives no locale signal, retain the starter default and state that choice.
|
|
17
19
|
|
|
18
20
|
Keep one locale unless the product asks for multilingual output. Keep it locale-ready without forcing `/en`, a language switcher, global path-prefix routing, or localized schemas. Locale tags should be structurally valid, such as `en`, `pt-BR`, or `zh-Hans`.
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
Enable each locale before writing non-default label or content variants. Run `fimo locales add <locale> --yes --json`; `fimo validate` does not provision project locales. Do not change the application's route strategy to work around a missing locale.
|
|
21
23
|
|
|
22
24
|
## Application responsibilities
|
|
23
25
|
|
|
@@ -248,9 +248,13 @@ ID supplied by the owner — without one, stop with an unresolved owner action
|
|
|
248
248
|
instead of inventing an ID:
|
|
249
249
|
|
|
250
250
|
- Link an owner-supplied (empty) project:
|
|
251
|
-
`fimo migrate init <target-dir> --project-id <projectId> --framework <framework>`
|
|
251
|
+
`fimo migrate init <target-dir> --project-id <projectId> --framework <framework> --source-platform <platform>`
|
|
252
252
|
- Create a new project in an owner-supplied organization:
|
|
253
|
-
`fimo migrate init <target-dir> --org <organizationId> --framework <framework>`
|
|
253
|
+
`fimo migrate init <target-dir> --org <organizationId> --framework <framework> --source-platform <platform>`
|
|
254
|
+
|
|
255
|
+
`--source-platform` names what the site is migrated from (`wordpress`, `nextjs`,
|
|
256
|
+
`astro`, `react-router`, `webflow`, `framer`, `squarespace`, `wix`, `carrd`,
|
|
257
|
+
`other`); pass what the source checkout proves, `unknown` only when nothing does.
|
|
254
258
|
|
|
255
259
|
After setup, check `.fimo/config.json#runtime.framework` and the scaffold's
|
|
256
260
|
framework files before starting workers. A Next.js target must still have its
|
|
@@ -286,7 +290,10 @@ Commands that perform actual data writes, all requiring the linked target:
|
|
|
286
290
|
- `fimo schemas push`, `fimo assets upload`, `fimo entries create|update`,
|
|
287
291
|
`fimo singles update`, `fimo labels set|set-many`, `fimo forms push`.
|
|
288
292
|
- `fimo migrate init` (source-backed form): the project link/creation and
|
|
289
|
-
initial commit push described above.
|
|
293
|
+
initial commit push described above. Pass `--source-platform <platform>`
|
|
294
|
+
(webflow, framer, squarespace, wix, carrd, wordpress, nextjs, astro,
|
|
295
|
+
react-router, other) when the source is known; URL crawls detect it.
|
|
296
|
+
|
|
290
297
|
- `fimo link`: project creation or selection plus the in-place adoption of a
|
|
291
298
|
copied source target.
|
|
292
299
|
- `fimo deploy` / `fimo publish` — owner-approved only.
|
|
@@ -86,6 +86,17 @@ the asset owns the uploaded bytes and their metadata, and the entry field holds
|
|
|
86
86
|
the media value `{ source, url, alt }` that points at it. Keep both carrying the
|
|
87
87
|
same alt text, and do not duplicate alt into a second schema field.
|
|
88
88
|
|
|
89
|
+
Do not copy upload metadata into media values yourself. Writing `{ source, url,
|
|
90
|
+
alt }` is enough: the write path resolves and persists the media-library ID, and
|
|
91
|
+
a read that names the field in `populate` returns the asset's current URL, name,
|
|
92
|
+
MIME type, and intrinsic dimensions from the library. A read that does not name
|
|
93
|
+
it returns the stored reference. The ID lets you inspect the asset later with
|
|
94
|
+
`fimo assets open <id> --download`.
|
|
95
|
+
|
|
96
|
+
Treat intrinsic dimensions as source facts, not layout instructions. Choose the
|
|
97
|
+
displayed size, crop, `sizes`, loading behavior, and fit from the migrated page's
|
|
98
|
+
design and responsive behavior.
|
|
99
|
+
|
|
89
100
|
## Failure Handling
|
|
90
101
|
|
|
91
102
|
If a media asset cannot be downloaded or uploaded:
|
|
@@ -21,6 +21,9 @@ ask a generic optimization question.
|
|
|
21
21
|
- URL migration: `fimo migrate init <source-url> <target-dir> --framework <framework>`
|
|
22
22
|
- link an existing project: `fimo migrate init <target-dir> --project-id <projectId> --framework <framework>`
|
|
23
23
|
- create a project: `fimo migrate init <target-dir> --org <organizationId> --framework <framework>`
|
|
24
|
+
- add `--source-platform <platform>` when the source platform is known
|
|
25
|
+
(webflow, framer, squarespace, wix, carrd, wordpress, nextjs, astro,
|
|
26
|
+
react-router, other); URL crawls detect it themselves.
|
|
24
27
|
Use the detected source framework for source-backed migrations. A framework
|
|
25
28
|
conversion requires an explicit user choice; URL-only and rebuild
|
|
26
29
|
migrations ask the user which framework to use. Never choose a framework by
|
|
@@ -13,7 +13,7 @@ On desktop, the AI chat opens docked on the left by default. You can make it flo
|
|
|
13
13
|
|
|
14
14
|
The AI can place choices, cards, tables, images, and contextual actions directly in its reply. Optional suggestions do not interrupt the conversation.
|
|
15
15
|
|
|
16
|
-
When the AI needs an answer before it can continue, it
|
|
16
|
+
When the AI needs an answer before it can continue, it pins a form directly above the message box and waits for your response. The form stays there while you scroll the conversation; the message that asked shows **Waiting for your answer...** in its place in the history. Select **Minimize** to fold the form to one line without losing your answers, then select that line to reopen it. **Submit** sends only the completed form and leaves anything typed in the message box unsent. Sending from the message box includes any selections already made in the form with your message; with no selections, it is an ordinary reply. A form with many steps scrolls inside its own area, and its **Next** / **Submit** buttons stay in view.
|
|
17
17
|
|
|
18
18
|
## Attaching Context
|
|
19
19
|
|
|
@@ -60,7 +60,6 @@ The AI runs on credits. You can see your balance by clicking the **coin icon** n
|
|
|
60
60
|
|
|
61
61
|
Clicking it opens a breakdown showing:
|
|
62
62
|
|
|
63
|
-
- **Daily free credits** that reset each day.
|
|
64
63
|
- **Monthly credits** included with your plan.
|
|
65
64
|
- **Purchased credits** you bought separately.
|
|
66
65
|
- **Earned credits** from referrals or promotions.
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
## Credit Types
|
|
2
2
|
|
|
3
|
-
Fimo uses credits for AI-powered features. There are
|
|
3
|
+
Fimo uses credits for AI-powered features. There are three kinds:
|
|
4
4
|
|
|
5
|
-
- **
|
|
6
|
-
- **Monthly credits** -- a larger pool that comes with your plan. Resets at the start of each billing cycle.
|
|
5
|
+
- **Monthly credits** -- the pool that comes with your plan. Resets at the start of each billing cycle.
|
|
7
6
|
- **Purchased credits** -- bought with real money. These do not expire and stay in your account until you use them.
|
|
8
7
|
- **Awarded credits** -- gained through referrals or promotions. These also do not expire.
|
|
9
8
|
|
|
10
|
-
Credits are consumed in order:
|
|
9
|
+
Credits are consumed in order: monthly first, then awarded, then purchased.
|
|
11
10
|
|
|
12
11
|
## Checking Your Balance
|
|
13
12
|
|
|
@@ -16,11 +15,11 @@ Look for the **coin icon with a number** near the chat send button. That number
|
|
|
16
15
|
- Click it to open a detailed breakdown showing how many credits you have in each category.
|
|
17
16
|
- When your balance is low, opening that breakdown shows an alert-triangle warning ("No credits left" or "_N_ credits left") at the bottom.
|
|
18
17
|
|
|
19
|
-
From a linked project directory, `fimo credits` shows the same organization balance in the CLI. Its "Available now" total already includes the visible buckets
|
|
18
|
+
From a linked project directory, `fimo credits` shows the same organization balance in the CLI. Its "Available now" total already includes the visible buckets.
|
|
20
19
|
|
|
21
20
|
## Buying More Credits
|
|
22
21
|
|
|
23
|
-
Buying credits is available on
|
|
22
|
+
Buying credits is available on paid plans, since it charges the payment method already on file.
|
|
24
23
|
|
|
25
24
|
1. Click the credit display near the chat input.
|
|
26
25
|
2. Click **Buy credits**.
|
|
@@ -30,7 +29,7 @@ Buying credits is available on the **Premium** plan, since it charges the paymen
|
|
|
30
29
|
|
|
31
30
|
## Refilling Credits Automatically
|
|
32
31
|
|
|
33
|
-
Organization billing admins on
|
|
32
|
+
Organization billing admins on a paid plan can configure auto-refill from **Settings > Billing**:
|
|
34
33
|
|
|
35
34
|
1. Choose the balance threshold that should trigger a refill.
|
|
36
35
|
2. Choose the dollar amount to purchase when the balance crosses that threshold.
|
|
@@ -52,6 +51,14 @@ From there:
|
|
|
52
51
|
3. Pick a plan and complete checkout.
|
|
53
52
|
4. Your new monthly credit pool is available right away.
|
|
54
53
|
|
|
54
|
+
## Changing or leaving a paid plan
|
|
55
|
+
|
|
56
|
+
- Free to Pay as you go or Pro, and Pay as you go to Pro, use checkout and take effect after payment succeeds.
|
|
57
|
+
- Pro to Pay as you go or Free takes effect at the end of the current billing period. Billing shows the destination and effective date until then.
|
|
58
|
+
- Choosing the current plan again before that date cancels the scheduled change.
|
|
59
|
+
- Pay as you go requires an active payment method. Removing its only valid card returns the organization to Free immediately.
|
|
60
|
+
- A failed Pro renewal follows the payment-recovery flow. It never silently changes the organization to Pay as you go.
|
|
61
|
+
|
|
55
62
|
## Legacy plan transitions
|
|
56
63
|
|
|
57
64
|
Some organizations that already have Premium may see a **Plan transition**
|
|
@@ -17,7 +17,7 @@ Only project members with Full Access can see Webhooks in Settings or manage its
|
|
|
17
17
|
|
|
18
18
|
The event groups are Entries, Forms, Publish, Agents, Analytics, Media, Domains, Labels, Locales, and Environments. Webhooks belong to the project, with up to 20 configurations. Choose the Main Branch, All Branches, Production, Preview, or one custom Environment. Main Branch is the default.
|
|
19
19
|
|
|
20
|
-
Entry webhooks
|
|
20
|
+
Entry webhooks send one delivery per committed write. A bulk edit or environment merge may contain a bounded batch, and wider changes split into separately delivered batches.
|
|
21
21
|
|
|
22
22
|
## Configure the request
|
|
23
23
|
|