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
@@ -4,15 +4,27 @@ Open the **Chats** tab in the site header. On a phone, the Chat tab at the botto
4
4
 
5
5
  ## Working in Several Chats
6
6
 
7
- Chat has its own **Chats** tab in the site header; the tab shows how many chats have unread activity. A site can have several chats, shared by everyone on the site. The left list shows them most recently active first with a status (**Working** with a spinner while replying, **Done** once the reply finished) and their last words; a dot marks unread activity. Select **+** for a new chat (it joins the list when its first message is sent, and its name comes from that message; an empty chat offers starter requests), the search icon to find a chat, the filter icon to show only Working or Done chats, and the list settings for ordering and showing read, unread, or archived chats. The buttons above an open chat (or a right-click on a row) mark it unread, pin, archive, or mute it, for you only; the settings icon opens the chat's settings, which change its portrait (shape, eyes, mouth, color) and rename it for everyone, hold the same pin, mute and archive switches, and delete it, stopping a running reply first. Each chat has its own messages and context; when you refer to an earlier discussion, Chat searches the site's chats and answers with the messages it found. The open chat is in the page address (`/chats?chat=<id>`), so a link or reload opens the same chat.
7
+ Chat has its own **Chats** tab in the site header; the tab shows how many chats have unread activity. A site can have several chats, shared by everyone on the site. The left list shows them most recently active first with a status (**Working** with a spinner while replying, **Done** once the reply finished) and their last words; a dot marks unread activity. Select **+** for a new chat (it joins the list when its first message is sent, and its name comes from that message; an empty chat offers starter requests), the search icon to find a chat, the filter icon to show only Working or Done chats, and the list settings for ordering and showing read, unread, or archived chats. The buttons above an open chat (or a right-click on a row) mark it unread, pin, archive, or mute it, for you only. To rename a chat for everyone, double-click its name above the open chat, or right-click its row and select **Rename**; Enter saves and Escape keeps the old name. The settings icon opens the chat's settings, which change its portrait (shape, eyes, mouth, color) and rename it for everyone, hold the same pin, mute and archive switches, and delete it, stopping a running reply first. Each chat has its own messages and context; when you refer to an earlier discussion, Chat searches the site's chats and answers with the messages it found. The open chat is in the page address (`/chats?chat=<id>`), so a link or reload opens the same chat.
8
8
 
9
9
  ## Agents
10
10
 
11
- An agent is a chat with a job: a name and a description that Fimo reads at the start of every reply in that chat. Agents are shared like any chat and are listed as soon as they are created, with an **Agent** tag after the name. The **+** above the chat list is a menu: **New chat** (blank), **New agent** (a name and a description, then the empty agent opens), and under **Agents** Fimo's default agents (**SEO**, **Site health**, **Writer**, **Translator**); a new site starts with all four listed, their routines off until someone turns them on, and on an older site selecting a default creates the site's chat for it the first time, the same chat every time after. In an agent, the description shows next to its name in the header, the empty state introduces the agent by name and job, and the message box reads **Message <name>**. The agent's settings page has a **Description** field, shared with everyone; empty means none. The filter icon's **Kind** option shows only chats or only agents; search finds an agent by its name.
11
+ Agents and routines appear only when the organization has the agents feature, which is off by default in production. Without it, the **+** above the chat list opens a new chat directly, agent settings have no **Routines**, and existing routines do not run; ask Fimo support to enable it.
12
+
13
+ An agent is a chat with a job: a name and a description that Fimo reads at the start of every reply in that chat. Agents are shared like any chat and are listed as soon as they are created, with an **Agent** tag after the name. The **+** above the chat list is a menu: **New chat** (blank), **New agent** (a name and a description, then the empty agent opens), and under **Agents** Fimo's default agents (**SEO**, **GEO**, **Content**, **Quality**, **Compliance**); a new site starts with SEO and GEO listed, their routines active from the start; Content, Quality and Compliance, and every default on an older site, are created the first time someone selects them, routines active, the same chat every time after. In an agent, the description shows next to its name in the header (one line) and the empty state introduces the agent by name and job (the description's first three lines); a cut description shows whole on hover, or on tap on a phone, and the message box reads **Message <name>**. The agent's settings page has a **Description** field, shared with everyone; empty means none. The filter icon's **Kind** option shows only chats or only agents; search finds an agent by its name.
14
+
15
+ The **SEO** default runs seven routines backed by Studio's built-in `fimo-seo` skill, which checks the site as a browser renders it and fixes at the source: **Technical SEO** (status, redirects, canonicals, sitemap, robots.txt, language, main heading), **Broken links**, **Meta tags** (titles, descriptions, Open Graph, the site's title ending, length in characters and pixels), **Image SEO** (alt text, file names, images over 200 KB: one in the media library or the site's own files is rendered through Fimo's resizing on its own, a file of the site uploaded first), **Hreflang** (only on a site in more than one language) and **SEO monitoring** (changes since its last run, pages moved without a redirect) every day, and **Internal linking** (orphan and deep pages, articles with no link up to a hub or product page or more than eight links) every Monday. A page it changed is left alone for 8 weeks, the time Google takes to show the effect. A fix with one right answer from the page's own words is made without a message (a link only once the new target is checked to be the same content in the same language; a link on words the text already uses to name another page; a 301 from a page's old address once the same page is live at a new one); a change to what visitors read, which page wins a search, whether a page exists, a redirect with more than one possible target, a price or a legal page is asked as a decision; page removals and the robots policy are never changed on its own. A change a person asks for in a chat is made. What a check could not tell (a timeout, a 5xx, a page past the crawl limit) is never acted on: the run retries once, then says the check was incomplete.
16
+
17
+ The **GEO** default runs three routines backed by Studio's built-in `fimo-geo` skill, which shares `fimo-seo`'s crawl and its rule for what a run may change alone: **AI readiness** (llms.txt, the text each page serves before JavaScript, landmarks and heading levels) and **Structured data** (valid JSON-LD; Organization and WebSite, Article, BreadcrumbList; Product and FAQ where they fit) every day, and **AI citation optimization** (a direct answer under each content page's H1, question headings on long pages) every Wednesday. On its own it writes a missing llms.txt and keeps its links in step, adds Organization, WebSite, Article and BreadcrumbList from fields the site already has (never an invented logo, address, author or rating), and fixes landmarks and heading levels without changing words; an opening answer, new headings, FAQ or Product data, and how pages are rendered are asked as decisions; who robots.txt lets crawl, AI crawlers included, prices and claims are never changed, nor reported: asked whether an assistant can read the site, it checks and names the crawlers robots.txt keeps out. Where AI assistants cite the site needs a visibility source; until one is connected there is no routine for it.
18
+
19
+ The **Content** default runs three routines backed by Studio's built-in `fimo-content` skill, on the same crawl and rule: **Content refresh** every Tuesday (past years written as the present, events and offers whose date passed, "coming soon" text, product names the team retired, pages losing visitors in Fimo analytics), **Content lifecycle** on the 1st of every month (thin pages, pages that repeat another, pages nothing links to that are also thin or out of date) and **Translation** every Wednesday (CMS entries missing in a locale, or whose source changed after the translation; on a site with one locale it stops at once). On its own it translates missing and outdated entries in the site's tone, keeping slugs, dates, media and names, and renders a copyright year typed in the code from the date; any other sentence a visitor reads is asked as a decision quoting the exact words; merging, redirecting or retiring a page is only proposed; a price or a legal page is changed or translated only once a person agreed. Writing from briefs and watching competitors need data sources; until they are connected there is no routine for them.
20
+
21
+ The **Quality** default runs two routines every Thursday backed by Studio's built-in `fimo-quality` skill, whose crawl also measures accessibility in each page and opens one or two pages of each template again 390 px wide: **Accessibility** (WCAG AA contrast, heading levels, links, buttons and fields without a name, images used as links with no name, positive tabindex, invisible focus, the page language) and **Mobile optimization** (a missing viewport or one that blocks zoom, sideways scrolling, images, tables and forms wider than the screen, tap targets under 24 × 24 px, text mostly under 12 px). On its own it names a control or labels a field from words the page shows, fixes heading levels, tabindex and a removed focus outline, lets visitors zoom again and keeps media inside the screen; a colour, a size or a layout change is asked as a decision. Image alt text stays with the SEO agent; brand compliance needs brand guidelines, so there is no routine for it yet.
22
+
23
+ The **Compliance** default runs three routines backed by Studio's built-in `fimo-compliance` skill, on the same crawl, which can also open a sample of pages with no consent given and record the cookies, third-party requests, consent banner and form fields a first visit gets: **Brand compliance** every Thursday (words, terms, claims and voice of what changed, against the brand rules in the site knowledge, `AGENTS.md` and the agent's memory; it runs on Claude Haiku 5.5), **Cookie consent** every Thursday (trackers and third-party cookies before a choice, a missing banner, a banner with no way to refuse) and **Privacy and legal pages** on the 1st of every month (a privacy page that exists, names the services loaded and the kinds of field the forms collect, and was updated in the last two years). On its own it changes only a term the brand rules replace; every other sentence, the consent setup and every legal page are proposed as decisions, with placeholders for legal details, and it never states that a site is compliant.
12
24
 
13
25
  ### Routines
14
26
 
15
- A routine is saved instructions an agent runs in a thread of its own, by hand or on a schedule, so each run sees its earlier runs and the agent's chat never fills with its work. The agent's settings list its **Routines** as cards (name, cadence such as **Every Monday at 08:00** or **By hand**, next run, an **Active** switch) with a **New routine** button; the default agents come with theirs. A routine's page holds **Name**, **Instructions** (the task, run on every trigger), **Triggers** (**By hand** with **Run now**, which starts a run right away, or sends the routine a message as its next run; **Schedule**: none, every day, every week on a weekday, or every month on a day, at a time, in the timezone shown (a default agent's routines take the opener's browser timezone), at most every 15 minutes), the **Runs** list (newest first, two lines each: how it ended (**Quiet**, **Sent to agent**, **Asked for a decision**, or **Failed** and **Stopped** in red), when and what started it (**On schedule**, or **By hand** with the person's name or **agent** when their message started it), then the first sentence of what it told the agent; select one to open the routine's thread, read-only, at that run), the **Active** switch in the header (pauses the schedule only) and **Delete routine** (removes its thread too). Routines report to the agent, never to a person: a run that has something the agent should know writes it to the agent's chat as a message only the agent reads, and the agent takes a turn on it (reports waiting together are read in one turn); a run with nothing to say reports nothing. The agent decides what the team sees: nothing (the chat stays as it was, the row stays read), one short message (several reports folded into one), or a form when a person must decide, and the chat's row reads **Needs you** while that form is open. A person answers the form in the chat; the agent sends the decision to the routine with its `send_message` tool and the routine runs again with it; the routine page's **Answer the routine** (shown once the routine has run) does the same from there and answers the agent's open question for that routine in the chat with the same words (**Your answer starts a run. Anything that needs your attention appears in the agent chat.**). Quiet runs leave no message: they fold into one line placed where the last run happened among the messages (**N runs since <date>**), counted from the last report the agent answered visibly, and the chat's row reads **Ran <date>** with that count while the newest thing in the chat is a run, the ordinary status and the last words when a message is newer, and **First check <day> <time>** or **No checks scheduled** before the first run. A routine whose runs keep failing or are refused for credits is reported to the agent once per streak, as a message from Fimo.
27
+ A routine is saved instructions an agent runs in a thread of its own, by hand, on a schedule, or when something happens in the project, so each run sees its earlier runs and the agent's chat never fills with its work. The agent creates, changes, runs and deletes its routines from its chat with its `routines` tool: a person asks in the chat ("check the prices every Monday", "run after each publish"), and Studio only shows routines. A trigger is set in words; Fimo checks them and either says when the routine runs or why it cannot follow them and what it can do instead; for what Fimo cannot see as an event (traffic, rankings, errors) the agent offers a schedule whose run checks it and stops when there is nothing to do. Fimo follows publishes of the site and content changes on the main branch by content type, action, locale, changed fields, the entry's current values ("price over 100", "status changes to archived") or a yes/no question about what the content says ("mentions Contentful or Sanity"; for "a competitor" it uses the names given or those in the site knowledge, and asks for them otherwise; a run started on an uncertain answer says so), media files uploaded or changed (by name or file type), the site's code changing through a deploy or a merge (by file path glob), another routine of the same agent finishing (optionally with a yes/no question about its report; never its own end), a visitor submitting a form (optionally with a yes/no question about the answers), a form or content type changing, a branch merged into main, a locale added, removed or made the default, a publish of the site failing, a domain added or removed, and the prices on a page of another web site changing ("tell me when https://example.com/pricing changes its prices": checked daily, a change must hold on three reads before the routine runs, the run lists each plan with its old and new price, the routine page shows the watch as **OK**, **Needs repair**, **Blocked** or **Unstable** with its last check, at most 10 watched pages a project); comparing a field's old and new values is not supported; what a routine changes, publishes or reports can start the agent's other routines, in chains of any length, each routine at most once per change that started the chain (across every routine that change leads to, so routines never loop or multiply; a person's new change, a run by hand or on a schedule starts a new chain); events that come in while a run is busy wait, then run together in one next run (up to 10), which the Runs list shows as one run with its event count. The agent's settings list its **Routines** as cards (name, cadence such as **Every Monday at 08:00** or **By hand**, next run, an **Active** switch); the default agents come with theirs. A routine's page is read-only: **Instructions** (the task, run on every trigger), **Model** (the model its runs use: Opus 5.5 by default; the agent sets another when asked), **Triggers** (**By hand** with **Run now**, which starts a run right away; **Schedule** and the event trigger, given a short title by Fimo from the words it was set with, each a sentence, shown when set), the **Runs** list (newest first, two lines each: how it ended (**Quiet**, **Sent to agent**, **Asked for a decision**, or **Failed** and **Stopped** in red), when and what started it (**On schedule**, **On event**, or **By hand** with the person's name or **agent** when their message started it), then the first sentence of what it told the agent; select one to open the routine's thread, read-only, at that run), and the **Active** switch in the header (pauses the schedule and the trigger, not **Run now**). Routines report to the agent, never to a person: a run that has something the agent should know writes it to the agent's chat as a message only the agent reads, and the agent takes a turn on it (reports waiting together are read in one turn); a run with nothing to say reports nothing. The agent decides what the team sees: nothing (the chat stays as it was, the row stays read), one short message (several reports folded into one), or a form when a person must decide, and the chat's row reads **Needs you** while that form is open. A person answers the form in the chat; the agent sends the decision to the routine with its `routines` tool and the routine runs again with it. Only the agent answers a routine: its page has no answer box. Quiet runs leave no message: they fold into one line placed where the last run happened among the messages (**N runs since <date>**), counted from the last report the agent answered visibly, and the chat's row reads **Ran <date>** with that count while the newest thing in the chat is a run, the ordinary status and the last words when a message is newer, and **First check <day> <time>** or **No checks scheduled** before the first run. A routine whose runs keep failing or are refused for credits is reported to the agent once per streak, as a message from Fimo. Routine runs use the plan's agent-hours, from each run's start to its end (Studio chats do not); Billing shows the hours used this period, and each run shows its duration and credits. Once the included hours are used, nothing runs (no schedule, event or Run now, which the routines tool reports to the agent); Studio shows **Routines paused** under the chat list and in the agent's settings with the reset date and the button that resumes them sooner (**Upgrade**), and the routine's page says until when. No run lasts longer than 2 hours.
16
28
 
17
29
  ## Sending a Message
18
30
 
@@ -35,7 +47,6 @@ Give the AI more to work with:
35
47
  - **Attach Assets** -- browse your media library and attach files.
36
48
  - **Attach Entries** -- attach CMS content for the AI to reference.
37
49
  - **Upload from Computer** -- upload a file directly. For GLB, self-contained glTF, FBX, OBJ, STL, and PLY models, Fimo renders four views and saves a description so every chat model can understand the attachment. ZIP archives are supported up to 20 MiB; the AI can download and inspect them under `/tmp` in its sandbox while the original stays attached to the conversation.
38
- - **Draw** -- opens the drawing tool where you can sketch a wireframe or layout idea for the AI to follow.
39
50
  - **@ mentions**: Type **@** in the chat to reference specific files, pages, or content inline.
40
51
 
41
52
  ## Editing and Regenerating
@@ -63,11 +63,9 @@ From there:
63
63
 
64
64
  ## Extra usage budget
65
65
 
66
- Open **Billing & usage**, then **Details** beside public bandwidth. Billing admins on Pay as you go or Pro can edit one **Monthly budget** for extra public bandwidth and autonomous agent runtime. The page shows each meter's cost and **Spent this period**. This budget does not cover AI credit purchases or auto-refill.
66
+ Open **Billing & usage**, then **Details** beside public bandwidth. Billing admins on Pay as you go or Pro can edit one **Monthly budget** for extra public bandwidth. The page shows its cost and **Spent this period**. This budget does not cover AI credit purchases or auto-refill.
67
67
 
68
- - Enabling extra usage covers both meters. An existing bandwidth-only budget requires explicit consent before it also covers agent runtime.
69
- - Agents shows included hours, usage, extra cost, and the reset date, with a link to the shared budget. Pay as you go includes 3 hours, then $0.75/hour; Pro includes 40 hours, then $0.33/hour.
70
- - At the budget, additional paid usage stops; remaining included allowances stay usable. Running agents stop at a safe point, so stopping is not instantaneous.
68
+ - At the budget, additional paid usage stops; remaining included allowances stay usable.
71
69
  - Disabling extra usage preserves charges already incurred. The budget cannot be lowered below existing extra-usage charges.
72
70
 
73
71
  ## Changing or leaving a paid plan
@@ -10,7 +10,6 @@ The palette includes the destinations you are allowed to use:
10
10
  - Preview pages
11
11
  - CMS Collections, Singles, Pages, Forms, Labels, and content types
12
12
  - Individual page templates and forms
13
- - Agent runs, definitions, and individual agents
14
13
  - Site settings sections, individual schedules and webhooks, connections, and MCP servers
15
14
  - Asset folders
16
15
  - Chats, including archived ones, and **New chat** (use the **Chats** tab to search only chats)
@@ -24,7 +23,6 @@ Studio adds commands that are relevant to the page you are viewing. Depending on
24
23
  - Refreshing Preview or opening it in a new tab
25
24
  - Creating a CMS entry or changing the content locale
26
25
  - Uploading an asset, creating a folder, or generating an image
27
- - Running an agent, opening its Preview result, or resolving proposed changes
28
26
  - Editing or opening the current CMS page in Preview
29
27
  - Running, pausing, resuming, or opening runs for the current schedule
30
28
  - Sending a test or opening deliveries for the current webhook
@@ -1,7 +1,7 @@
1
1
  # Connections
2
2
 
3
3
  Connections let a site use external services without exposing credentials to editors, chat, or agents. Studio, the
4
- CLI, and site agents all resolve the same project-scoped connection state.
4
+ CLI, and agent chats all resolve the same project-scoped connection state.
5
5
 
6
6
  ## See what is available
7
7
 
@@ -46,6 +46,6 @@ Only organization owners and admins can replace a shared credential. OAuth and m
46
46
  together.
47
47
 
48
48
  After the server is added, its detail shows the endpoint and the tools Fimo discovered. Only enabled servers become
49
- available to Studio chat, autonomous agents, and the Fimo CLI for this site. Agents should discover them with
49
+ available to Studio chat and the Fimo CLI for this site. Agents should discover them with
50
50
  `fimo integrations list`, inspect them with `fimo integrations info <integration>`, and run an allowed tool with
51
51
  `fimo integrations run <integration> <tool>`.
@@ -39,6 +39,7 @@ You may see different overlays depending on what is happening:
39
39
  - **"Editing unavailable"** -- The site remains visible, but its Fimo integration did not connect in time. Visual editing and the route selector stay unavailable; preview and refresh still work.
40
40
  - **Error overlay** -- Something went wrong. The overlay shows details about the issue, and the AI can often auto-fix it for you.
41
41
  - **"Some installed packages need approval"** -- Choose **Fix with Fimo** to send the complete repair context to the coding agent, or **Copy details** to handle it elsewhere. Review every named package, commit only trusted package-specific approvals, and retry Preview. Never replace the site policy with a blanket allow-all setting.
42
+ - **"Your app could not start"** -- The site's own dev command exited while starting; the output is available through **Copy details**. Choose **Fix with Fimo** to send that output to the coding agent, **Retry preview** to start it once more, or **Copy details** to handle it elsewhere. Fix the cause in the project, such as declaring the package that provides a missing command, rather than working around it. Preview also retries after the fix lands.
42
43
  - **First generation progress** -- When your site is being built for the first time, a progress overlay shows the current status.
43
44
 
44
45
  ## Switching Workspaces
@@ -11,9 +11,11 @@ To build with your own AI instead, select **Build with ChatGPT, Claude or a codi
11
11
  ## Start From a Website
12
12
 
13
13
  1. Enter the website address. Fimo checks that it can read the site; if it cannot, it says why and nothing is created.
14
- 2. Fimo creates the site, reads its homepage, then asks three questions in a short chat: what the business does, who its competitors are, and what sets it apart. The answers are saved as the site's knowledge.
15
- 3. The report shows how ready the site is for search engines (SEO) and AI answers (GEO), with every check and how to fix it. Leaving and coming back resumes where you left off.
16
- 4. Select **Clone & fix your homepage**. The site opens on its **Getting started** chat, where Fimo rebuilds the homepage with the report's problems fixed. Fimo covers the cost of the analysis, the questions and the rebuild; credits are not used.
14
+ 2. Fimo creates the site, reads its homepage, works out what kind of site it is (business, non-profit, portfolio, hobby or personal site), and asks three questions that fit it in a short chat. It always starts by confirming what it understood. A business then keeps or adds its competitors and says how it stands out and how it is priced; other sites say what visitors should do and what to put forward, picking suggestions or typing their own. The answers are saved as the site's knowledge. If Fimo cannot read the site for the questions, select **Try again**.
15
+ 3. The report opens as soon as the last question is answered. It shows how ready the site is for search engines (SEO) and AI answers (GEO), with every check and how to fix it. Leaving and coming back resumes where you left off.
16
+ 4. Select **Copy & optimize my homepage**, at the top of the report. The site opens on its **Getting started** chat, where Fimo rebuilds the homepage with the report's problems fixed, then shows the scores before the rebuild and the checks it fixed. Only the homepage is rebuilt; links to other pages still go to the current site. Fimo covers the cost of the analysis, the questions and the first two rebuilds; credits are not used for them.
17
+
18
+ Fimo does not rebuild a site that breaks its terms of use: the onboarding stops with a message to contact support.
17
19
 
18
20
  The report and the homepage copy Fimo read are deleted after 7 days.
19
21
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Test each destination and review its delivery history before depending on it in production.
4
4
 
5
- Webhooks send site activity to an external HTTPS endpoint. Use them for focused reactions such as adding a waitlist submission to an email tool, notifying Slack after a publish, or starting a GitHub workflow after an agent review.
5
+ Webhooks send site activity to an external HTTPS endpoint. Use them for focused reactions such as adding a waitlist submission to an email tool, notifying Slack after a publish, or starting a GitHub workflow after a publish.
6
6
 
7
7
  Only site members with Full Access can see Webhooks in Settings or manage its destinations and delivery history.
8
8
 
@@ -11,10 +11,10 @@ Only site members with Full Access can see Webhooks in Settings or manage its de
11
11
  1. Open **Settings** → **Advanced settings** → **Webhooks**.
12
12
  2. Choose **New webhook**.
13
13
  3. Name it, select one event, and enter the destination URL.
14
- 4. Optionally narrow form, agent, media, or entry events with the filter shown for that event.
14
+ 4. Optionally narrow form, media, or entry events with the filter shown for that event.
15
15
  5. Review the request and select **Save**.
16
16
 
17
- The event groups are Entries, Forms, Publish, Agents, Analytics, Media, Domains, Labels, Locales, and Environments. Webhooks belong to the site, with up to 20 configurations. Choose the Main Branch, All Branches, Production, Preview, or one custom Environment. Main Branch is the default.
17
+ The event groups are Entries, Forms, Publish, Analytics, Media, Domains, Labels, Locales, and Environments. Webhooks belong to the site, with up to 20 configurations. Choose the Main Branch, All Branches, Production, Preview, or one custom Environment. Main Branch is the default.
18
18
 
19
19
  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.
20
20
 
@@ -17,7 +17,38 @@ export function fimo(options = {}) {
17
17
  return {
18
18
  name: 'fimo:astro',
19
19
  hooks: {
20
- 'astro:config:setup': ({ config, injectScript, updateConfig }) => {
20
+ 'astro:config:setup': async ({ config, command, injectScript, updateConfig, addMiddleware }) => {
21
+ // Hosted builds supply deployment-scoped values through .env. An explicit
22
+ // empty process value still disables adaptation for published builds.
23
+ const { loadEnv } = await import('vite');
24
+ const studioOrigin = process.env.FIMO_PREVIEW_PARENT_ORIGIN ??
25
+ loadEnv(config.vite?.mode ?? (command === 'dev' ? 'development' : 'production'), config.vite?.envDir ?? fileURLToPath(config.root), 'FIMO_PREVIEW_PARENT_ORIGIN').FIMO_PREVIEW_PARENT_ORIGIN;
26
+ if (studioOrigin) {
27
+ // FIMO-2910: run outside application middleware so its final response
28
+ // is adapted too. Capture the preview build's origin, never request input.
29
+ const id = 'virtual:fimo-preview-frame-headers';
30
+ addMiddleware({ entrypoint: id, order: 'pre' });
31
+ updateConfig({
32
+ vite: {
33
+ plugins: [
34
+ {
35
+ name: 'fimo:astro-preview-frame-headers',
36
+ resolveId(source) {
37
+ if (source === id)
38
+ return `\0${id}`;
39
+ },
40
+ load(source) {
41
+ if (source !== `\0${id}`)
42
+ return;
43
+ return `import { adaptPreviewFrameResponse } from 'fimo/preview';
44
+ export const onRequest = async (_context, next) =>
45
+ adaptPreviewFrameResponse(await next(), ${serializeForModule(studioOrigin)});`;
46
+ },
47
+ },
48
+ ],
49
+ },
50
+ });
51
+ }
21
52
  const hasVercelAdapter = config.integrations?.some((integration) => integration.name === '@astrojs/vercel' || integration.name.startsWith('@astrojs/vercel/'));
22
53
  if (config.output === 'server' && !config.adapter && !hasVercelAdapter) {
23
54
  if (!options.hostingAdapter) {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "bundled": true,
3
3
  "bundler": "esbuild",
4
- "bundledAt": "2026-10-09T17:40:11.586Z",
5
- "cliVersion": "2.7.1",
4
+ "bundledAt": "2026-10-20T13:17:16.750Z",
5
+ "cliVersion": "2.8.0",
6
6
  "external": [
7
7
  "oxc-parser",
8
8
  "fsevents",