fimo 2.8.0-staging.9 → 2.9.0-staging.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 (100) hide show
  1. package/assets/skills/fimo/SKILL.md +0 -1
  2. package/assets/skills/fimo-cli/SKILL.md +6 -7
  3. package/assets/skills/fimo-cli/references/assets.md +2 -0
  4. package/assets/skills/fimo-cli/references/branches.md +5 -2
  5. package/assets/skills/fimo-cli/references/deploy.md +1 -1
  6. package/assets/skills/fimo-cli/references/hosting.md +22 -22
  7. package/assets/skills/fimo-cli/references/init.md +1 -2
  8. package/assets/skills/fimo-cli/references/integrations/firecrawl.md +1 -41
  9. package/assets/skills/fimo-cli/references/integrations.md +2 -38
  10. package/assets/skills/fimo-cli/references/knowledge.md +1 -1
  11. package/assets/skills/fimo-cli/references/mcp.md +5 -6
  12. package/assets/skills/fimo-cli/references/preview.md +1 -1
  13. package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +0 -16
  14. package/assets/skills/fimo-cli/references/webhooks.md +0 -2
  15. package/assets/skills/fimo-code/SKILL.md +1 -0
  16. package/assets/skills/fimo-code/references/assets.md +5 -5
  17. package/assets/skills/fimo-code/references/design.md +1 -1
  18. package/assets/skills/fimo-code/references/frameworks/next.md +1 -10
  19. package/assets/skills/fimo-code/references/ui.md +1 -1
  20. package/assets/skills/fimo-migration/references/frameworks/nextjs.md +1 -22
  21. package/assets/skills/fimo-migration/references/qa.md +1 -11
  22. package/assets/skills/fimo-studio/SKILL.md +6 -9
  23. package/assets/skills/fimo-studio/references/ai-chat.md +15 -4
  24. package/assets/skills/fimo-studio/references/billing-and-credits.md +2 -4
  25. package/assets/skills/fimo-studio/references/command-palette.md +0 -2
  26. package/assets/skills/fimo-studio/references/connections.md +2 -2
  27. package/assets/skills/fimo-studio/references/preview-and-responsive.md +1 -0
  28. package/assets/skills/fimo-studio/references/project-creation.md +5 -3
  29. package/assets/skills/fimo-studio/references/webhooks.md +3 -3
  30. package/dist/build/astro/config.js +32 -1
  31. package/dist/cli/bundle.json +2 -2
  32. package/dist/cli/index.js +168 -173
  33. package/dist/runtime/paths/get-fimo-paths.js +2 -24
  34. package/dist/runtime/preview/frame-headers.d.ts +14 -0
  35. package/dist/runtime/preview/frame-headers.js +96 -0
  36. package/dist/runtime/preview/index.d.ts +1 -0
  37. package/dist/runtime/preview/index.js +1 -0
  38. package/dist/runtime/project-layout.d.ts +0 -1
  39. package/dist/runtime/project-layout.js +1 -5
  40. package/dist/runtime/shared/local-runtime-env.js +2 -14
  41. package/package.json +10 -10
  42. package/templates/astro/.fimo/config.json +0 -14
  43. package/templates/astro/AGENTS.md +2 -1
  44. package/templates/astro/_gitignore +3 -0
  45. package/templates/astro/package.json +3 -3
  46. package/templates/astro/src/layouts/Base.astro +0 -48
  47. package/templates/nextjs/AGENTS.md +1 -1
  48. package/templates/nextjs/_gitignore +3 -0
  49. package/templates/nextjs/package.json +5 -5
  50. package/templates/react-router/AGENTS.md +1 -1
  51. package/templates/react-router/_gitignore +3 -0
  52. package/templates/react-router/package.json +5 -5
  53. package/templates/sveltekit/AGENTS.md +1 -0
  54. package/templates/sveltekit/_gitignore +3 -0
  55. package/templates/sveltekit/package.json +3 -3
  56. package/templates/vite/AGENTS.md +2 -0
  57. package/templates/vite/_gitignore +3 -0
  58. package/templates/vite/package.json +5 -5
  59. package/assets/agent-templates/_default/GOAL.md +0 -21
  60. package/assets/agent-templates/_default/capabilities.yaml +0 -11
  61. package/assets/agent-templates/_default/config.yaml +0 -13
  62. package/assets/agent-templates/broken-link-sweeper/GOAL.md +0 -51
  63. package/assets/agent-templates/broken-link-sweeper/capabilities.yaml +0 -1
  64. package/assets/agent-templates/broken-link-sweeper/config.yaml +0 -13
  65. package/assets/agent-templates/content-translator/GOAL.md +0 -33
  66. package/assets/agent-templates/content-translator/capabilities.yaml +0 -5
  67. package/assets/agent-templates/content-translator/config.yaml +0 -12
  68. package/assets/agent-templates/content-translator/scripts/translate-entries.ts +0 -69
  69. package/assets/agent-templates/post-deploy-check/GOAL.md +0 -23
  70. package/assets/agent-templates/post-deploy-check/capabilities.yaml +0 -1
  71. package/assets/agent-templates/post-deploy-check/config.yaml +0 -10
  72. package/assets/agent-templates/post-deploy-check/scripts/check-logs.ts +0 -39
  73. package/assets/agent-templates/post-deploy-check/scripts/probe-routes.ts +0 -53
  74. package/assets/agent-templates/seo-audit/GOAL.md +0 -43
  75. package/assets/agent-templates/seo-audit/capabilities.yaml +0 -3
  76. package/assets/agent-templates/seo-audit/config.yaml +0 -14
  77. package/assets/agent-templates/seo-audit/references/report-template.md +0 -28
  78. package/assets/agent-templates/seo-audit/references/scoring-methodology.md +0 -30
  79. package/assets/agent-templates/seo-audit/scripts/analyze-html.ts +0 -82
  80. package/assets/agent-templates/seo-audit/scripts/fetch-page.ts +0 -39
  81. package/assets/agent-templates/seo-audit/scripts/list-routes.ts +0 -46
  82. package/assets/agent-templates/seo-audit/scripts/report.ts +0 -82
  83. package/assets/agent-templates/seo-audit/scripts/score.ts +0 -131
  84. package/assets/skills/fimo-cli/references/agents.md +0 -298
  85. package/assets/skills/fimo-studio/references/agents.md +0 -33
  86. package/assets/skills/fimo-studio/references/drawing-and-wireframing.md +0 -61
  87. package/templates/astro/src/components/ProjectOverview.astro +0 -45
  88. package/templates/astro/src/pages/[locale]/projects/[slug].astro +0 -38
  89. package/templates/astro/src/pages/[locale]/projects/index.astro +0 -19
  90. package/templates/astro/src/pages/projects/[slug].astro +0 -31
  91. package/templates/astro/src/pages/projects/index.astro +0 -13
  92. package/templates/astro/src/schemas/Project.json +0 -9
  93. package/templates/astro/src/schemas/Project.ts +0 -29
  94. package/templates/astro/src/schemas/Project.types.ts +0 -70
  95. package/templates/astro/src/schemas/SiteSettings.json +0 -10
  96. package/templates/astro/src/schemas/SiteSettings.ts +0 -31
  97. package/templates/astro/src/schemas/SiteSettings.types.ts +0 -69
  98. package/templates/react-router/src/pages/Privacy.tsx +0 -79
  99. package/templates/react-router/src/pages/Terms.tsx +0 -48
  100. package/templates/react-router/src/pages/legal/LegalPage.tsx +0 -42
@@ -38,7 +38,6 @@ Pick by task:
38
38
 
39
39
  - Writing code — schemas/forms, generated clients, labels, framework adapters, rendering primitives → `fimo-code`
40
40
  - Site creation, local setup, cloning, and CLI workflows — init, push, deploy, sync, labels, domains, analytics → `fimo-cli`
41
- - Fimo agents — create, configure, validate, deploy, run, or inspect them → `fimo-cli` (`references/agents.md`)
42
41
  - AI agent setup — connect Claude Code, Codex, Cursor, or another agent → `fimo-cli` (`references/agent-setup.md`)
43
42
  - Remote MCP integrations — add, inspect, search, or run an MCP server → `fimo-cli` (`references/mcp.md`)
44
43
  - The Fimo Studio dashboard / web app UI → `fimo-studio`
@@ -3,13 +3,13 @@ name: fimo-cli
3
3
  description: >-
4
4
  Use the `fimo` CLI to create or operate a Fimo site: content, forms,
5
5
  media, labels/locales, deploys, Branches, Environments, domains, analytics,
6
- integrations, Fimo agents, collaboration, accounts, and credits. Also use
6
+ integrations, collaboration, accounts, and credits. Also use
7
7
  for AI agent or MCP setup and confirmed Fimo platform blockers.
8
8
  ---
9
9
 
10
10
  # Fimo CLI
11
11
 
12
- The `fimo` CLI is the workflow surface for Fimo. Fimo connects content, media, forms, analytics, editing, and hosting to web applications. The CLI handles site creation, content / forms / media / labels / locale workflows, deploys, collaboration, account management, Fimo agents, AI credit inspection, and AI agent setup.
12
+ The `fimo` CLI is the workflow surface for Fimo. Fimo connects content, media, forms, analytics, editing, and hosting to web applications. The CLI handles site creation, content / forms / media / labels / locale workflows, deploys, collaboration, account management, AI credit inspection, and AI agent setup.
13
13
 
14
14
  This skill describes **what the CLI does and the workflows it drives**. For the package surface used IN code (component props, generated hooks, JSON shapes, code-side rules), load the `fimo-code` skill on demand with `fimo skills get fimo-code`, using the invocation prefix below.
15
15
 
@@ -61,6 +61,8 @@ fimo skills install # install the global Fimo skill f
61
61
  fimo init my-site --org <id> # one-stop setup: sign in, create/link a project, install deps + skills. Use the org **id** from `fimo orgs list`, NOT the slug.
62
62
  fimo init my-react-site --framework react-router --org <id> --yes --no-skills # canonical React Router template
63
63
  fimo init --project-id <id> my-site # set up a project by ID: scaffold a newly created project or clone existing code
64
+ fimo new my-site --yes --json # create a site without an account; a person claims it within 72 hours. Run `fimo new --instructions` for the full guide
65
+ fimo claim --json # inside a `fimo new` site: the claim link and claim state
64
66
  fimo clone # interactively choose an existing project to clone locally
65
67
  cd my-site # then load skills on demand: fimo skills get fimo-code
66
68
  pnpm dev # run the app locally (use the project's PM: pnpm/npm run/yarn/bun) — your iteration loop
@@ -101,7 +103,7 @@ Load the matching reference when the user's request fires its trigger. Recipes t
101
103
  - "Check the site in a browser / is my site accessible / a11y or WCAG check / measure LCP or Web Vitals / why is the page slow / inspect network requests or console errors / Lighthouse score" → `references/site-checks.md`
102
104
  - "Schedule a command / cron / nightly publish / recurring checks / `fimo schedules`" → `references/schedules.md`
103
105
  - "Set env vars / configure API keys / add project secrets / local `.env.local` / `fimo vars` / `fimo secrets`" → `references/project-vars-and-secrets.md`
104
- - "React to form submissions / publish changes / agent runs / analytics reports / media activity / send events to Resend, Slack, GitHub, Zapier, or an HTTP endpoint / configure or debug outbound webhooks" → `references/webhooks.md`
106
+ - "React to form submissions / publish changes / analytics reports / media activity / send events to Resend, Slack, GitHub, Zapier, or an HTTP endpoint / configure or debug outbound webhooks" → `references/webhooks.md`
105
107
  - "Enable provider tools / integrations / API key connection for a provider / agent integration access" → `references/integrations.md`
106
108
  - "Firecrawl / scrape a public website / competitor research / agent web research" → `references/integrations.md` **+ load `references/integrations/firecrawl.md`**
107
109
  - "Check credits / credit balance / can I keep using AI / billing credits / running low / how many credits are left" → `references/credits.md`
@@ -114,7 +116,6 @@ Load the matching reference when the user's request fires its trigger. Recipes t
114
116
  - "Modify the URL of the website / change my project's address / connect a custom domain (e.g. blog.example.com) / rename the Fimo-provided `*.fimo.site` subdomain / buy a new domain through Fimo / set up a domain" → `references/domains.md`
115
117
  - "Invite a collaborator / add Marc / share with client" → `references/invite.md`
116
118
  - "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`)
117
- - "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`
118
119
  - "Install Fimo for my agent / fimo skills install / set up Claude Code, Codex, or Cursor for Fimo" → `references/agent-setup.md`
119
120
  - "Add, inspect, search, or run a remote MCP server / use `fimo mcp`" → `references/mcp.md`
120
121
  - "Refresh / update installed Fimo skills / fimo skills sync / agent missing the latest Fimo conventions" → `references/agent-setup.md`
@@ -138,7 +139,6 @@ These fire at specific moments in the project lifecycle. **Surface them proactiv
138
139
  - **You need the current preview URL but haven't changed code** (opening it, screenshotting it, handing it to another tool, the previous URL expired) → `fimo preview url`, never a no-op `fimo deploy`. See `references/preview.md`.
139
140
  - **When the user wants to try something risky / explore a redesign without touching the live site** → suggest a feature Branch: `fimo checkout -b <name>` gives an isolated Branch + DB + preview. Deploy previews there, then `fimo merge` it back and `fimo publish`. See `references/branches.md`.
140
141
  - **After completing or safely preserving the user's main work, when a confirmed Fimo platform failure still materially blocks the task after one safe recovery attempt, or a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround** → use the built-in `supportReport` tool. Do not wait for the user to ask and do not stop after only describing the gap. See `references/support.md`.
141
- - **When a project agent has stopped and is waiting on a person** → a project member answers its question in Studio, on the run's page; the question email links there. The CLI cannot answer it. Never answer on the person's behalf.
142
142
  - **After the first successful `fimo deploy`** → suggest `fimo invite` if the project involves multiple people. Typical roles: `edit` for developers/content editors, `view` or `comment` for clients/stakeholders, `full` for project leads. See `references/invite.md`.
143
143
  - **After the automatic first-preview deploy on the create-new path, before the project has been published** → if there is no custom domain and the free default `*.fimo.site` slug still looks generated or was never explicitly chosen, offer to find a cleaner free subdomain. It needs no DNS. Never claim one without explicit user confirmation: suggest candidates, let the user choose, then rename it. Choosing the slug does not publish the site; the URL starts resolving only after the first successful `fimo deploy --publish`. Skip this nudge if the user already chose the default slug, attached a custom domain, or declined. See `references/domains.md` § Offer a cleaner default URL before first publish.
144
144
  - **When the user wants to modify the URL of their website** → walk through `references/domains.md`. The CLI surface covers renaming the Fimo-provided subdomain (`fimo domains rename-default`, free), attaching a domain they already own (`fimo domains add`, Premium), and buying a new domain through Fimo (`fimo domains buy`, Premium).
@@ -151,10 +151,9 @@ These fire at specific moments in the project lifecycle. **Surface them proactiv
151
151
  - **Running `fimo deploy` just to get the current preview URL** — that's a commit + push + sandbox sync when only destination resolution is needed. Use `fimo preview url` instead. See `references/preview.md`.
152
152
  - **Using `fimo deploy --publish` casually** — `--publish` makes the site live to the public. Plain `fimo deploy` (preview) is the default. Use `--publish` only when the user says "ship it" / "go live" / "publish".
153
153
  - **Bare `fimo init` in a non-interactive shell** — will hang. Always pass `[dir]`, `--no-install` (or `--install`), `--no-skills` (or `--skills`), and `--org`/`--agents` as needed explicitly when scripted.
154
- - **Hardcoding content / strings / images in code** — that's what schemas, `t()`, and the media library are for. See the `fimo-code` skill's anti-patterns.
154
+ - **Hardcoding content / strings / images in code, or committing image and video files** — that's what schemas, `t()`, and the media library are for. See the `fimo-code` skill's non-negotiable boundaries.
155
155
  - **Adding another deploy tool**. Fimo handles deploys; don't bolt another platform on.
156
156
  - **Committing secrets** — hidden values use `fimo secrets`; public browser-safe values use `fimo vars`. Local env files are ignored and must not become deploy inputs.
157
157
  - **Hardcoding tokens in flags** — use the credentials written by `fimo login` (one file per backend at `~/.config/fimo/credentials/<host>-<hash>.json`).
158
158
  - **Treating the daily allowance as extra credits** — the allowance section appears only for legacy Premium organizations, and `fimo credits` already includes its spendable credits in "Available now"; it is accounting context, not an amount to add.
159
159
  - **Trying to refill credits from the CLI** — `fimo credits` is read-only. Buying/refilling credits belongs in the billing UI for now.
160
- - **`fimo agents run` to push bundle changes** — it doesn't. The bundle reaches the server through `fimo deploy` (it lives in git, not the DB), and that push to `main` is also what wires the declared triggers. `run` dispatches the _deployed_ version. Deploy first. There is no `activate` command. See `references/agents.md`.
@@ -7,6 +7,8 @@ This file covers the **CLI workflow** for media that already exists: uploading f
7
7
 
8
8
  ## Upload a file
9
9
 
10
+ Every image or video the site uses goes through this upload or a generation task, never into the repository. Run `fimo skills get fimo-code` and read § Non-negotiable boundaries for the rule and its exceptions.
11
+
10
12
  ```bash
11
13
  fimo assets upload ./hero.jpg
12
14
  fimo assets upload ./hero.jpg --name "Hero Image" --parent-id "<folder-uuid>"
@@ -83,12 +83,15 @@ fimo status --json # machine-readable
83
83
 
84
84
  ```bash
85
85
  fimo merge feat/seo # merge feat/seo into the current Branch
86
- fimo merge feat/seo -y # non-interactive: parent-wins on every conflict
86
+ fimo merge feat/seo -y # non-interactive: keep the target's value on every conflict
87
+ fimo merge feat/seo --resume # continue a stopped merge, or follow one still applying
87
88
  fimo merge feat/seo --allow-direct-merge # override the "don't merge straight onto main" gate
88
89
  ```
89
90
 
90
91
  - Merging directly onto `main` is gated — the CLI refuses unless you pass `--allow-direct-merge`. Prefer merging on a branch and publishing.
91
- - On conflicts you get an interactive resolver per row: **parent** (keep the target's value), **child** (take the source's value), or **abort** (cancels the merge; the server runs compensating actions). `-y` accepts parent-wins for everything.
92
+ - On conflicts nothing is applied. In a terminal you get a resolver per row: **parent** (keep the target's value), **child** (take the source's value), **pick** (edit in `$EDITOR`), or **abort**. `-y` keeps the target's value for everything.
93
+ - `--json` never prompts. Unresolved conflicts exit non-zero with `MERGE_CONFLICTS`; `error.details` carries `merge_id`, `from`, `to`, and `conflicts`. Re-run with `--resume --yes` to keep the target's values, or resolve interactively.
94
+ - After resolutions are accepted the CLI waits for the merge: success is `status: "ok"` with the completed merge's `mergeId` and `summary` but no `applied` list (per-surface counts are only reported when a merge applies cleanly without conflicts); `MERGE_FAILED` and `MERGE_CANCELLED` are terminal; `MERGE_IN_PROGRESS` means it is still applying — run `--resume` to keep following it. `--resume` never resubmits a merge that is already applying.
92
95
 
93
96
  ## `fimo pull`
94
97
 
@@ -105,7 +105,7 @@ There's nothing special about this — it's the same `fimo deploy` you'd run lat
105
105
  **Use `--no-restart` when you only touched HMR-safe files:**
106
106
 
107
107
  - Anything under `src/**` (components, pages, hooks, styles)
108
- - Asset files under `public/` or `src/assets/`
108
+ - Fixed-path static files under `public/`, such as favicons or `robots.txt` (images and videos belong in the media library, not the repository; see the `fimo-code` skill's non-negotiable boundaries)
109
109
  - Content / entries / translations / form definitions (JSON the Fimo runtime hot-loads)
110
110
 
111
111
  **Do NOT use `--no-restart` when you touched any of these — they require a fresh dev server:**
@@ -33,31 +33,25 @@ Declare redirects, headers, rewrites, and URL shape in
33
33
 
34
34
  Every field is optional. Only what you declare is emitted.
35
35
 
36
- ## Preview and security headers
37
-
38
- A restrictive application-owned CSP or `X-Frame-Options` policy can block Studio
39
- Preview. Do not assume automatic header rewriting; Next.js `withFimo` does not
40
- provide it. Inspect the served policy and scope any manual adaptation to Preview,
41
- preserving production protections and unrelated headers. `frame-ancestors`
42
- permits the Studio parent, not the framed app's preview origin. Never derive
43
- ancestor sources from a preview-origin variable. For `script-src`, `connect-src`,
44
- `frame-src`, and `form-action`, use resolved/observed Fimo resources and endpoints
45
- actually used by the iframe. Studio-parent WebSockets do not belong in app CSP.
46
-
47
36
  ## Matching
48
37
 
49
38
  `source` matches the pathname only, never the query string.
50
39
 
51
- | Pattern | Matches |
52
- | --------------- | -------------------------------------- |
53
- | `/about` | exactly that path |
54
- | `/blog/:slug` | one segment, captured as `slug` |
55
- | `/proxy/:rest*` | any number of segments, including none |
56
- | `/(.*)` | everything |
40
+ | Pattern | Matches |
41
+ | --------------- | --------------------------------------------- |
42
+ | `/about` | exactly that path |
43
+ | `/blog/:slug` | one segment, captured as `slug` |
44
+ | `/proxy/:rest*` | any number of segments, including none |
45
+ | `/(.*)` | everything |
46
+ | `/:path(.*)` | everything, including `/`, captured as `path` |
57
47
 
58
48
  Captured names are reusable in `destination`: `/blog/:slug` →
59
49
  `/posts/:slug`. `destination` may be an absolute path or an external URL.
60
50
 
51
+ Fimo preserves `source` as written. Use `/:path(.*)` when a redirect, rewrite,
52
+ or header rule must include the homepage `/`; do not assume `/:path*` includes
53
+ it. Keep `:path*` in the destination to reuse the captured path.
54
+
61
55
  ## Conditions
62
56
 
63
57
  Any redirect, rewrite, or header rule can require more than a path match. `has`
@@ -93,9 +87,15 @@ them are present.
93
87
  Omit `value` to match on presence alone, as the `consent` cookie above does.
94
88
  The redirect example requires the request to include `x-promo: summer`.
95
89
 
90
+ For a www-to-apex redirect, connect both hostnames and use
91
+ `{"source":"/:path(.*)","has":[{"type":"host","value":"www.example.com"}],"destination":"https://example.com/:path*","statusCode":301}`.
92
+ The host condition matches the visitor's requested hostname. Verify `/`, a
93
+ nested path, and a query string, and check that the destination host does not
94
+ redirect back.
95
+
96
96
  **Prefer doing this in the application when it can.** Middleware, a loader, or a
97
- server component can be run and tested locally; a condition here only takes
98
- effect once published, so a mistake is found in production. Reach for `has` when
97
+ server component can be run and tested locally; a condition here takes effect
98
+ on hosted deployments and needs verification there. Reach for `has` when
99
99
  the app cannot act — a redirect that must happen before any code runs, or a
100
100
  header on a static asset.
101
101
 
@@ -121,6 +121,6 @@ header on a static asset.
121
121
  ## Verify
122
122
 
123
123
  `fimo validate` rejects an unknown `hosting` key, so a typo fails locally
124
- rather than silently doing nothing in production. Behaviour itself only takes
125
- effect once published — check the live URL after `fimo deploy --publish`, not
126
- the preview.
124
+ rather than silently doing nothing in production. Hosting rules apply to
125
+ hosted deployments; the sandbox dev server does not exercise them. Verify
126
+ affected routes on the hosted preview and after an authorized publish.
@@ -111,8 +111,7 @@ fimo link <projectId> --relink
111
111
 
112
112
  - The selected project shell: Next.js App Router by default, React Router with `--framework react-router`, a native React SPA with `--framework vite`, Astro with `--framework astro`, or SvelteKit with `--framework sveltekit`
113
113
  - `.fimo/project.json` — links this directory to the remote site (read-only after creation)
114
- - `.fimo/config.json` — project, optional Studio Pages route metadata, locale, SEO, and agent policy
115
- - `.fimo/agents/` — versioned agent bundles
114
+ - `.fimo/config.json` — project, optional Studio Pages route metadata, locale, and SEO
116
115
  - `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.
117
116
  - A git repository with `fimo` as the remote, and — after dependencies install — an initial commit (including the lockfile) plus an initial push
118
117
 
@@ -134,45 +134,6 @@ Secrets and API keys are never returned. Do not call Firecrawl directly with an
134
134
 
135
135
  For users, describe monitors as website change monitors: create a monitor, list monitors, pause/resume/delete a monitor, check a monitor now, and view recent checks. Keep storage and cleanup mechanics out of user-facing responses.
136
136
 
137
- ## Agent Access
138
-
139
- Project-level setup makes Firecrawl available to the project. Add Firecrawl to an agent's `config.yaml` to let that
140
- agent use it. If you omit `tools`, the agent gets every Firecrawl tool; use a tools map when you want a narrower set.
141
-
142
- ```yaml
143
- integrations:
144
- firecrawl:
145
- enabled: true
146
- ```
147
-
148
- Selective access:
149
-
150
- ```yaml
151
- integrations:
152
- firecrawl:
153
- enabled: true
154
- tools:
155
- search: true
156
- scrape: true
157
- map: false
158
- crawl: false
159
- 'monitor.list': true
160
- 'monitor.create': false
161
- ```
162
-
163
- After editing agent config:
164
-
165
- ```bash
166
- fimo validate
167
- fimo agents integrations seo-researcher
168
- ```
169
-
170
- For deployed or scheduled agents, deploy the bundle after changing `.fimo/agents/<name>/config.yaml`:
171
-
172
- ```bash
173
- fimo deploy
174
- ```
175
-
176
137
  ## Ideal Agent Path
177
138
 
178
139
  1. Confirm the user wants public web inspection, not private data access.
@@ -187,8 +148,7 @@ fimo deploy
187
148
  - `crawl --limit <small>` to read several pages.
188
149
  Treat search excerpts as concise evidence for straightforward questions. Scrape the source for full context,
189
150
  exact quotations, implementation details, ambiguous claims, or high-stakes verification.
190
- 7. For a project agent, update `integrations`, validate, preview with `fimo agents integrations <agent>`, then deploy.
191
- 8. Keep findings in the agent report or task output; do not write scraped content into source files unless the user asks.
151
+ 7. Keep findings in the chat reply or task output; do not write scraped content into source files unless the user asks.
192
152
 
193
153
  ## Failure Modes
194
154
 
@@ -16,7 +16,7 @@ fimo integrations status firecrawl
16
16
 
17
17
  `info` shows supported auth choices, required credentials, tools, and recipes. For a built-in service the only auth choice is `fimo`. `status` shows the project-specific setup state.
18
18
 
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.
19
+ When running inside an agent session, `fimo integrations list` shows only the integrations the project has enabled for that session.
20
20
 
21
21
  ## Add a remote MCP server
22
22
 
@@ -91,40 +91,4 @@ does not change the project default integration setup, and built-in services hav
91
91
 
92
92
  Firecrawl `monitor.*` tools monitor websites for changes. `monitor.list` shows the website change monitors available in the current project. Fimo cleans up those monitors when the project is deleted.
93
93
 
94
- For Firecrawl-specific recipes, JSON examples, and agent policy guidance, load `references/integrations/firecrawl.md`.
95
-
96
- ## Agent Access Policy
97
-
98
- Project integrations are enabled at the project level. An agent opts into an integration in
99
- `.fimo/agents/<name>/config.yaml` (or the legacy root `agents/<name>/config.yaml`):
100
-
101
- When `tools` is omitted, the agent can use every tool currently exposed by that integration. Add a `tools` map only
102
- when the agent needs a narrower set:
103
-
104
- ```yaml
105
- integrations:
106
- firecrawl:
107
- enabled: true
108
- ```
109
-
110
- For a narrower allowlist, add the tools explicitly:
111
-
112
- ```yaml
113
- integrations:
114
- firecrawl:
115
- enabled: true
116
- tools:
117
- scrape: true
118
- crawl: false
119
- 'monitor.list': true
120
- ```
121
-
122
- If an integration is omitted or disabled, the agent cannot use it. If an explicit `tools` map has no `true` entries, it also grants no tools. With no map, newly available provider tools are included automatically on the next run.
123
-
124
- Run `fimo validate` after editing agent config to check local shape plus project-level integration setup.
125
-
126
- Preview one agent's local policy with:
127
-
128
- ```bash
129
- fimo agents integrations seo-researcher
130
- ```
94
+ For Firecrawl-specific recipes and JSON examples, load `references/integrations/firecrawl.md`.
@@ -45,4 +45,4 @@ with `projectId`; update accepts `content`.
45
45
 
46
46
  Settings also offers **Draft from website**. It runs analysis in the background and returns an editable
47
47
  draft for review. Only an explicit **Save** updates shared knowledge; drafting does not grant permission
48
- to write it. Do not install an autonomous agent to perform this action.
48
+ to write it.
@@ -100,10 +100,10 @@ fimo mcp run sentry search_issues --input @request.json
100
100
  Omit `--input` when the tool takes no arguments. Use inline JSON, a project-relative `@file`, or `--input -` to read JSON
101
101
  from stdin.
102
102
 
103
- ## Studio and project agents
103
+ ## Studio chat
104
104
 
105
- Remote MCP servers remain normal project integrations underneath the focused CLI. Studio chat and autonomous agents
106
- discover and run them through:
105
+ Remote MCP servers remain normal project integrations underneath the focused CLI. Studio chat discovers and runs them
106
+ through:
107
107
 
108
108
  ```bash
109
109
  fimo integrations list
@@ -111,9 +111,8 @@ fimo integrations info mcp_sentry
111
111
  fimo integrations run mcp_sentry search_issues --input '{"query":"open regressions"}'
112
112
  ```
113
113
 
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.
114
+ Studio receives a frozen snapshot of the integrations enabled when the turn starts. It never receives the underlying
115
+ credential or opens a direct connection to the remote server.
117
116
 
118
117
  ## Supported servers
119
118
 
@@ -9,7 +9,7 @@ fimo preview url --branch main --json
9
9
  curl -L "$(fimo preview url)"
10
10
  ```
11
11
 
12
- The command returns the hosted deployment URL in every output mode, whatever the project's Preview setting says: every live Branch except production owns a hosted build.
12
+ The command returns the hosted deployment URL in every output mode: every live Branch except production owns a hosted build.
13
13
 
14
14
  If the current generation is queued or building, the command waits up to five minutes, polling with a backoff. It stops at once — without waiting — on a state waiting cannot change: a build that failed, and a Branch with no hosted preview (production, or a Branch nothing has changed yet). Every failure returns `PREVIEW_URL_FAILED`; read `error.message` for which one it was and `error.hint` for the next step. Only the timeout is worth retrying.
15
15
 
@@ -55,23 +55,7 @@ and the active git branch; hosted preview and production inject it directly.
55
55
 
56
56
  Local env files are ignored by git in Fimo sites. They are for local development only; deployment reads project variables from Fimo and injects them into the remote build.
57
57
 
58
- ## Agent Secrets
59
-
60
- Agents receive only the secrets they request in their own config.
61
-
62
- ```bash
63
- fimo agents secrets add seo-publisher FIRECRAWL_API_KEY
64
- fimo agents secrets list seo-publisher
65
- fimo agents secrets remove seo-publisher FIRECRAWL_API_KEY
66
- fimo agents validate
67
- ```
68
-
69
- `fimo agents secrets add` edits `.fimo/agents/<name>/config.yaml`. It does not create or rotate the secret value. Use `fimo secrets add` to create the value or `fimo secrets update` to rotate it.
70
-
71
- `fimo agents validate` checks that required agent secrets exist in the project. A running agent keeps the Branch it started with; the next run reads the deployed agent config again.
72
-
73
58
  ## Choosing Between Them
74
59
 
75
60
  - If the value can safely be visible in browser code or page source, use `fimo vars add`.
76
61
  - If leaking the value would be a problem, use `fimo secrets add`.
77
- - If an agent needs a secret, first store it with `fimo secrets add`, then request it in that agent config with `fimo agents secrets add`.
@@ -26,7 +26,6 @@ Run this before writing a custom payload. The list shows supported event types,
26
26
 
27
27
  - Forms: `form.submitted`
28
28
  - Publish: `publish.started`, `publish.succeeded`, `publish.failed`, `publish.unpublished`
29
- - Agents: run started/completed/failed/cancelled and review requested/resolved
30
29
  - Analytics: `analytics.report_ready`
31
30
  - Media: uploaded/updated/deleted
32
31
  - Entries: `entry.changed`
@@ -108,7 +107,6 @@ Available filters are event-specific:
108
107
 
109
108
  - `--environments <selector>` for Main Branch (`main`), All Branches (`all`), Production (`production`), Automatic previews (`preview`), or one custom Environment ID; the default is `main`
110
109
  - `--form <id>` for `form.submitted`
111
- - `--agent <name>` for agent events
112
110
  - `--media-type <image|video|audio|document|other>` for media events
113
111
  - `--action <created|updated|deleted>`, `--content-type <name>`, and `--locale <locale>` for `entry.changed`
114
112
 
@@ -90,6 +90,7 @@ For pageview installation or debugging, read [references/analytics.md](reference
90
90
  ## Non-negotiable boundaries
91
91
 
92
92
  - Do not hardcode editor-owned collections, page content, labels, or media in JSX.
93
+ - Do not commit image or video files to the repository (`public/`, `static/`, `src/assets/`, or anywhere else). Upload every image or video you create, download, or receive as a local file with `fimo assets upload` (`fimo assets bulk-upload` for a batch) and reference the returned URL. Media from `fimo image …` and `fimo video …` tasks is already in the media library; use its URL instead of downloading it into the repository. A repository file has no asset ID, cannot be replaced in Studio, skips Fimo image optimization, and is invisible to asset usage checks. Only favicons and app icons (`favicon*`, `apple-touch-icon*`, `apple-icon*`, `android-chrome*`, `mstile*`, `icon*`), framework metadata images (`opengraph-image*`, `twitter-image*`), SVG icons and logos, and `robots.txt` stay in the repository.
93
94
  - Do not hand-roll content API fetches when a generated client covers the read.
94
95
  - Do not hand-construct `FimoString`, `FimoMedia`, or other tracked values.
95
96
  - Do not replace an application's router, locale library, URL policy, or SEO integration merely to add Fimo.
@@ -2,7 +2,7 @@
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 media fields and the Fimo image components.
5
+ This file covers media fields and the Fimo image components. Image and video bytes live in the media library, never in the repository; see `SKILL.md` § Non-negotiable boundaries for the rule and its exceptions.
6
6
 
7
7
  ## Media field values
8
8
 
@@ -39,10 +39,10 @@ Generated reads wrap each media object in `FimoMedia`. Its `id`, `alt`, `name`,
39
39
 
40
40
  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.
41
41
 
42
- | Asset source | Component | Pass via |
43
- | --------------------------------------------------- | --------------------- | ------------------------- |
44
- | Schema `media` field on an entry | `<Image>` / `<Video>` | `value={post.coverImage}` |
45
- | Hard-coded URL or generated asset referenced inline | `<StaticImage>` | `src="https://..."` |
42
+ | Asset source | Component | Pass via |
43
+ | ----------------------------------- | --------------------- | ------------------------- |
44
+ | Schema `media` field on an entry | `<Image>` / `<Video>` | `value={post.coverImage}` |
45
+ | Media-library URL referenced inline | `<StaticImage>` | `src="https://..."` |
46
46
 
47
47
  ```tsx
48
48
  import { Image, StaticImage, Video } from 'fimo-next';
@@ -124,7 +124,7 @@ Write these into the project's existing theme tokens and reference the tokens fr
124
124
  - **Treatment:** Full-bleed, contained, overlays, filters
125
125
  - **Hero:** Specific direction for hero imagery
126
126
 
127
- If the user hasn't supplied images and one is needed, run `fimo image generate --prompt "..."` and reuse the returned `url` or `id`. Run `fimo image generate --help` for current flags. See `references/assets.md`.
127
+ If the user hasn't supplied images and one is needed, run `fimo image generate --prompt "..."` and reuse the returned `url` or `id`. Run `fimo image generate --help` for current flags. Upload any image that exists only as a local file before using it (`SKILL.md` § Non-negotiable boundaries). See `references/assets.md`.
128
128
 
129
129
  ### Iconography
130
130
 
@@ -57,16 +57,7 @@ const nextConfig: NextConfig = {};
57
57
  export default withFimo(nextConfig);
58
58
  ```
59
59
 
60
- Preserve existing config fields and config-function logic. `withFimo` currently
61
- does not rewrite response headers or adapt application-owned CSP. A restrictive
62
- policy may need a manual Preview adaptation; inspect actual framing and blocked
63
- requests, preserve production protections, and verify the result in a browser.
64
- `frame-ancestors` permits the Studio parent, not the app's preview origin or a
65
- value derived from a preview-origin variable. `script-src`, `connect-src`,
66
- `frame-src`, and `form-action` concern resources/endpoints used by the iframe;
67
- use the resolved connection and observed requests. Never add a Studio-parent
68
- WebSocket to application CSP. Scope exceptions to Preview and keep unrelated
69
- security headers unchanged.
60
+ Preserve existing config fields and config-function logic.
70
61
 
71
62
  ## Client dependency
72
63
 
@@ -46,7 +46,7 @@ Blocks do not change this rule. Every visible nested scalar is source-tracked to
46
46
 
47
47
  Do not render those values as `{program.title}` or `{highlight.label}`. That displays text but bypasses the primitive that Studio uses to resolve the exact nested edit target.
48
48
 
49
- Use `<StaticImage>` only when the image is deliberately not editor-managed.
49
+ Use `<StaticImage>` only when the image is deliberately not editor-managed. Its `src` is still a media-library URL; see `SKILL.md` § Non-negotiable boundaries.
50
50
 
51
51
  ## Wrapper values in JavaScript logic
52
52
 
@@ -105,32 +105,11 @@ Do not create or edit `.env` / `.env.local` for a linked project's Fimo
105
105
  connection. Run the project's normal `next dev`, `next build`, and `next start`
106
106
  commands, then exercise at least one server read and one client-side data read.
107
107
 
108
- ## Preview embedding and response headers
108
+ ## Preview integration
109
109
 
110
110
  Keep the generated `FimoProvider` and `withFimo` integration. It supports
111
111
  rendering Fimo Preview in Fimo Studio and enabling Edit Mode.
112
112
 
113
- The application owns response and security headers; `withFimo` currently does
114
- not rewrite them or adapt CSP automatically. A restrictive policy may still
115
- need a manual Preview adaptation. Inspect framing behavior and response headers
116
- first. Scope changes to Preview, preserve production protections and unrelated
117
- security headers, and record them in the runtime report's Hosting section.
118
- When the existing policy sends `X-Frame-Options` or an unconditional
119
- `frame-ancestors` block, condition or relax that framing control only for the
120
- verified Preview embedding context; retain it for non-Preview and production
121
- responses.
122
-
123
- - `frame-ancestors` controls which Fimo Studio parent may embed the app. The
124
- incident's manual fix used the current Studio sources `https://fimo.ai` and
125
- `https://*.fimo.ai`. Verify the Studio parent for the target environment;
126
- these sources are not a universal resource allowlist. Never derive them from
127
- a preview-origin variable. The sandbox or hosted preview origin identifies
128
- the app being framed, not its ancestor.
129
- - `script-src` controls scripts, `connect-src` API and WebSocket connections,
130
- `frame-src` frames embedded by the app, and `form-action` form submission
131
- destinations. Base Fimo sources on the resolved connection and observed
132
- requests made by the preview iframe, only for resources/endpoints it uses.
133
-
134
113
  ## Locales
135
114
 
136
115
  Keep these claims separate, and treat any one of them as unproven until its
@@ -112,17 +112,7 @@ and passes only the public connection to the browser. Run the normal `next dev`,
112
112
  Owned by the runtime lane; verified here read-only.
113
113
 
114
114
  - The target starts locally: the dev server responds without startup errors.
115
- - Fimo Preview renders the target in Fimo Studio and Edit Mode works. If either
116
- is blocked, verify the actual framing behavior and response headers. The
117
- application owns its security policy; any Preview exception must preserve
118
- production protections and unrelated security headers.
119
- - Check CSP sources by purpose: `frame-ancestors` permits the Studio parent;
120
- the app's preview origin is the framed site. `script-src`, `connect-src`,
121
- `frame-src`, and `form-action` use resolved/observed Fimo resources and
122
- endpoints actually used by the iframe. Do not copy ancestor sources into
123
- resource directives or derive them from a preview-origin variable.
124
- - `withFimo` does not rewrite response headers. Verify any required manual
125
- Preview adaptation of an application-owned restrictive policy.
115
+ - Fimo Preview renders the target in Fimo Studio and Edit Mode works.
126
116
  - The runtime report covers local startup, preview embedding, build, the
127
117
  resolved Fimo connection, header translations, and integration env-key
128
118
  names, with every claim backed by evidence.
@@ -6,7 +6,7 @@ description: >-
6
6
  Triggers: "in Fimo Studio", "in the dashboard", "in the web app",
7
7
  "how do I X in the UI", or screenshots of the dashboard. Topics
8
8
  covered: dashboard content and CMS, publishing from the dashboard,
9
- dashboard SEO/domain settings, site connections, agents, schedules and run history, outbound webhooks,
9
+ dashboard SEO/domain settings, site connections, schedules and run history, outbound webhooks,
10
10
  visual editing, version history UI, dashboard sharing/billing, dashboard chat,
11
11
  and the command palette. Never describe
12
12
  UI locations, buttons, or panels from memory — always read the relevant
@@ -34,8 +34,8 @@ Use plain, friendly language. Describe what users see, where they click, and wha
34
34
 
35
35
  ## Studio layout
36
36
 
37
- - **Header (desktop):** the site menu (site name; History is here) and the Branch switcher, then the workspaces: Chats, Getting started, Preview, Content, Assets, Agents, Analytics, Settings. Only workspaces the user can access appear. Workspaces that do not fit move into **More**. On the right: Earn free credits, Invite, Clone, Publish, and Merge on a Branch.
38
- - **Phone:** bottom tabs for Chat, Preview, Agents and Settings. Invite, Earn free credits and Clone ("Work on this site locally") move into the site menu.
37
+ - **Header (desktop):** the site menu (site name; History is here) and the Branch switcher, then the workspaces: Chats, Getting started, Preview, Content, Assets, Analytics, Settings. Only workspaces the user can access appear. Workspaces that do not fit move into **More**. On the right: Earn free credits, Invite, Clone, Publish, and Merge on a Branch.
38
+ - **Phone:** bottom tabs for Chat, Preview and Settings. Invite, Earn free credits and Clone ("Work on this site locally") move into the site menu.
39
39
  - **Settings:** General, Domains, Knowledge, SEO and Languages are listed directly. Models, Environments, Secrets, Schedules, Webhooks and Connections are under **Advanced settings**.
40
40
  - **Shortcuts:** Alt+1 Preview, Alt+2 Content, Alt+3 Assets, Alt+5 Settings, Alt+E edit mode, Cmd/Ctrl+K command palette.
41
41
 
@@ -56,7 +56,6 @@ Read the relevant reference file when the user's question matches a topic.
56
56
  | AI Chat | references/ai-chat.md | "What can the AI do?", "How do I give context?" |
57
57
  | Site Knowledge | references/knowledge.md | "Set brand guidance", "Website goals", "Draft knowledge from the site" |
58
58
  | SEO Settings | references/seo-settings.md | "How do I set up SEO?", "Favicon, title, share image" |
59
- | Agents | references/agents.md | "Run an agent", "Pause an agent", "Next agent run" |
60
59
  | Schedules | references/schedules.md | "Recurring commands", "Run history", "Run now" |
61
60
  | Webhooks | references/webhooks.md | "React to forms", "Send events to another service" |
62
61
  | Connections | references/connections.md | "Connect a service", "Add an MCP server" |
@@ -66,7 +65,6 @@ Read the relevant reference file when the user's question matches a topic.
66
65
  | Sharing & Collaboration | references/sharing-and-collaboration.md | "How do I share?", "How do I invite someone?" |
67
66
  | Site Creation | references/project-creation.md | "How do I start a new site?" |
68
67
  | Billing & Credits | references/billing-and-credits.md | "What are credits?", "How do I upgrade?", "How do referrals work?" |
69
- | Drawing & Wireframing | references/drawing-and-wireframing.md | "How do I sketch my idea?" |
70
68
 
71
69
  ## Cross-feature references
72
70
 
@@ -76,10 +74,9 @@ Read the relevant reference file when the user's question matches a topic.
76
74
  | Custom domains | Publishing (must publish first), Billing (premium required) |
77
75
  | Adding images | Media Library, AI Chat, Edit Mode |
78
76
  | Content/CMS | AI Chat, Media Library |
79
- | Webhooks | Site secrets, Forms, Publishing, Agents |
80
- | Connections | AI Chat, Agents, Site secrets |
81
- | Agents | Connections, Site secrets, Branches |
82
- | Schedules | Site secrets, Environments, Agents |
77
+ | Webhooks | Site secrets, Forms, Publishing |
78
+ | Connections | AI Chat, Site secrets |
79
+ | Schedules | Site secrets, Environments |
83
80
  | Visual changes | Edit Mode (CMS content), AI Chat (layout, styling, and code changes) |
84
81
  | Something went wrong | Version History, AI Chat |
85
82
  | Working with others | Sharing, Collaboration |