fimo 2.2.0-staging.8 → 2.2.0

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 (106) hide show
  1. package/assets/agent-templates/_default/config.yaml +6 -0
  2. package/assets/agent-templates/broken-link-sweeper/config.yaml +1 -0
  3. package/assets/content-templates/shared/types.eta +65 -6
  4. package/assets/skills/fimo-cli/SKILL.md +5 -3
  5. package/assets/skills/fimo-cli/references/agents.md +29 -4
  6. package/assets/skills/fimo-cli/references/assets.md +42 -3
  7. package/assets/skills/fimo-cli/references/branches.md +9 -8
  8. package/assets/skills/fimo-cli/references/content.md +4 -4
  9. package/assets/skills/fimo-cli/references/credits.md +12 -19
  10. package/assets/skills/fimo-cli/references/deploy.md +8 -8
  11. package/assets/skills/fimo-cli/references/forms.md +3 -1
  12. package/assets/skills/fimo-cli/references/history.md +3 -2
  13. package/assets/skills/fimo-cli/references/inbox.md +86 -0
  14. package/assets/skills/fimo-cli/references/init.md +7 -6
  15. package/assets/skills/fimo-cli/references/invite.md +11 -9
  16. package/assets/skills/fimo-cli/references/labels.md +3 -11
  17. package/assets/skills/fimo-cli/references/locales.md +5 -3
  18. package/assets/skills/fimo-cli/references/preview.md +1 -2
  19. package/assets/skills/fimo-cli/references/projects.md +8 -8
  20. package/assets/skills/fimo-cli/references/schedules.md +6 -4
  21. package/assets/skills/fimo-cli/references/webhooks.md +6 -4
  22. package/assets/skills/fimo-code/references/assets.md +22 -11
  23. package/assets/skills/fimo-code/references/content/clients.md +15 -1
  24. package/assets/skills/fimo-code/references/content/schema.md +1 -0
  25. package/assets/skills/fimo-code/references/frameworks/astro.md +1 -1
  26. package/assets/skills/fimo-code/references/frameworks/next/app-router.md +12 -1
  27. package/assets/skills/fimo-code/references/frameworks/next/locales.md +2 -2
  28. package/assets/skills/fimo-code/references/frameworks/next.md +1 -1
  29. package/assets/skills/fimo-code/references/locales.md +4 -2
  30. package/assets/skills/fimo-migration/SKILL.md +54 -16
  31. package/assets/skills/fimo-migration/references/frameworks/nextjs.md +8 -0
  32. package/assets/skills/fimo-migration/references/media.md +11 -0
  33. package/assets/skills/fimo-migration/references/qa.md +30 -4
  34. package/assets/skills/fimo-migration/references/questions-and-improvements.md +188 -0
  35. package/assets/skills/fimo-migration/references/workers/content-planner.md +8 -3
  36. package/assets/skills/fimo-migration/references/workers/validator.md +20 -6
  37. package/assets/skills/fimo-migration/references/workers.md +17 -6
  38. package/assets/skills/fimo-migration/references/workflow.md +36 -6
  39. package/assets/skills/fimo-studio/SKILL.md +3 -1
  40. package/assets/skills/fimo-studio/references/agents.md +25 -0
  41. package/assets/skills/fimo-studio/references/ai-chat.md +1 -2
  42. package/assets/skills/fimo-studio/references/billing-and-credits.md +14 -7
  43. package/assets/skills/fimo-studio/references/visual-editing.md +9 -1
  44. package/assets/skills/fimo-studio/references/webhooks.md +1 -1
  45. package/dist/cli/bundle.json +2 -2
  46. package/dist/cli/index.js +210 -179
  47. package/dist/runtime/content/client/collection-core.js +3 -2
  48. package/dist/runtime/content/client/core-types.d.ts +4 -3
  49. package/dist/runtime/content/client/internal.d.ts +2 -0
  50. package/dist/runtime/content/client/internal.js +54 -25
  51. package/dist/runtime/content/client/singleton-core.js +2 -1
  52. package/dist/runtime/content/index.d.ts +1 -1
  53. package/dist/runtime/content/index.js +1 -1
  54. package/dist/runtime/content/serialization.d.ts +4 -3
  55. package/dist/runtime/content/serialization.js +4 -3
  56. package/dist/runtime/primitives/lib/index.d.ts +1 -1
  57. package/dist/runtime/primitives/lib/index.js +1 -1
  58. package/dist/runtime/primitives/lib/primitives.d.ts +39 -12
  59. package/dist/runtime/primitives/lib/primitives.js +83 -17
  60. package/dist/runtime/primitives/lib/template.js +2 -2
  61. package/dist/runtime/shared/local-runtime-env.d.ts +2 -2
  62. package/dist/runtime/shared/local-runtime-env.js +14 -9
  63. package/dist/runtime/templates.d.ts +9 -2
  64. package/dist/runtime/templates.js +36 -7
  65. package/dist/scripts/validate-schemas.js +10 -15
  66. package/package.json +10 -8
  67. package/release.json +2 -2
  68. package/templates/astro/AGENTS.md +1 -1
  69. package/templates/astro/package.json +2 -2
  70. package/templates/nextjs/AGENTS.md +2 -2
  71. package/templates/nextjs/package.json +3 -3
  72. package/templates/nextjs/src/app/layout.tsx +4 -1
  73. package/templates/react-router/AGENTS.md +2 -2
  74. package/templates/react-router/package.json +4 -4
  75. package/templates/sveltekit/AGENTS.md +1 -1
  76. package/templates/sveltekit/package.json +2 -2
  77. package/templates/vite/AGENTS.md +5 -1
  78. package/templates/vite/package.json +4 -4
  79. package/templates/welcome/manifest.json +655 -0
  80. package/templates/welcome/media/analytics-overview.avif +0 -0
  81. package/templates/welcome/media/autonomous-loop.avif +0 -0
  82. package/templates/welcome/media/editable-preview.avif +0 -0
  83. package/templates/welcome/media/media-library.avif +0 -0
  84. package/templates/welcome/media/slack-teams.avif +0 -0
  85. package/templates/welcome/template/.fimo/agents/welcome-guide/GOAL.md +12 -0
  86. package/templates/welcome/template/.fimo/agents/welcome-guide/capabilities.yaml +3 -0
  87. package/templates/welcome/template/.fimo/agents/welcome-guide/config.yaml +8 -0
  88. package/templates/welcome/template/.fimo/config.json +53 -0
  89. package/templates/welcome/template/src/font.css +60 -0
  90. package/templates/welcome/template/src/pages/ArticleDetail.tsx +104 -0
  91. package/templates/welcome/template/src/pages/Index.tsx +36 -0
  92. package/templates/welcome/template/src/pages/SiteContent.tsx +674 -0
  93. package/templates/welcome/template/src/pages/fallback-content.ts +152 -0
  94. package/templates/welcome/template/src/routes.ts +9 -0
  95. package/templates/welcome/template/src/schemas/Article.json +34 -0
  96. package/templates/welcome/template/src/schemas/Article.ts +54 -0
  97. package/templates/welcome/template/src/schemas/Article.types.ts +93 -0
  98. package/templates/welcome/template/src/schemas/Author.json +17 -0
  99. package/templates/welcome/template/src/schemas/Author.ts +51 -0
  100. package/templates/welcome/template/src/schemas/Author.types.ts +54 -0
  101. package/templates/welcome/template/src/schemas/Category.json +17 -0
  102. package/templates/welcome/template/src/schemas/Category.ts +51 -0
  103. package/templates/welcome/template/src/schemas/Category.types.ts +54 -0
  104. package/templates/welcome/template/src/schemas/HomePage.json +110 -0
  105. package/templates/welcome/template/src/schemas/HomePage.ts +22 -0
  106. package/templates/welcome/template/src/schemas/HomePage.types.ts +116 -0
@@ -4,6 +4,15 @@ Use this as the phase contract for a complete migration. The coordinator and
4
4
  workers communicate in plain text. JSON is used only for Fimo schemas and the
5
5
  content payloads that the data-plane commands import.
6
6
 
7
+ ## Preflight: inspect and ask
8
+
9
+ Before target initialization or any other write, inspect the source read-only
10
+ and follow `references/questions-and-improvements.md`. Use the coding agent's
11
+ native structured-question UI to ask one stacked batch for integration,
12
+ environment, framework, and ownership decisions that the source cannot settle.
13
+ Never move environment values or credentials without explicit consent. Do not
14
+ ask a generic optimization question.
15
+
7
16
  ## Phase 0: Initialize the target
8
17
 
9
18
  1. Confirm the target path. The target is a separate directory; the source
@@ -12,6 +21,9 @@ content payloads that the data-plane commands import.
12
21
  - URL migration: `fimo migrate init <source-url> <target-dir> --framework <framework>`
13
22
  - link an existing project: `fimo migrate init <target-dir> --project-id <projectId> --framework <framework>`
14
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.
15
27
  Use the detected source framework for source-backed migrations. A framework
16
28
  conversion requires an explicit user choice; URL-only and rebuild
17
29
  migrations ask the user which framework to use. Never choose a framework by
@@ -20,9 +32,15 @@ content payloads that the data-plane commands import.
20
32
  3. Inspect the target's real `package.json`, `.fimo/config.json`, framework config, and route
21
33
  directories. They are the authority for paths. Do not infer an app root
22
34
  from a skill example and do not create a second `app/` or `src/app/` tree.
23
- 4. If the target is non-empty and not a Fimo project, stop and ask for a target
35
+ 4. Verify dependency provenance before workers start. A project created by a
36
+ published CLI pins that exact CLI release and matching companion packages.
37
+ A local source-checkout project uses the checkout-local CLI. Stop when the
38
+ target records an absolute package-manager cache path, an unapproved
39
+ `latest`, or a CLI and API from different runtime channels; do not let the
40
+ producer repair release setup inside the migration.
41
+ 5. If the target is non-empty and not a Fimo project, stop and ask for a target
24
42
  path; do not overlay a template on top of it.
25
- 5. Keep source material in `.fimo/migration/source` or another explicit source
43
+ 6. Keep source material in `.fimo/migration/source` or another explicit source
26
44
  location. Do not copy source files over the initialized target root.
27
45
 
28
46
  Write a short `.fimo/migration/migration-plan.md` containing the source
@@ -46,8 +64,10 @@ Classify the available evidence:
46
64
  For private APIs or CMSs, ask for a user-provided export or a narrowly scoped
47
65
  server-side credential. Never recover credentials from browser bundles or copy
48
66
  them into migration artifacts. If the source API URL or access is missing or
49
- unreachable, stop and ask the user for it; do not guess or continue with
50
- replacement content.
67
+ unreachable, stop and ask whether to use scoped access, reconstruct only the
68
+ selected published routes from the public site, or migrate code without the CMS
69
+ records. Continue with public reconstruction only after that explicit choice,
70
+ and record everything the rendered site cannot reveal.
51
71
 
52
72
  For API-backed content, trace active clients, endpoints, frontend types, and
53
73
  consumers first. Prefer backend source schemas; otherwise use public OpenAPI,
@@ -143,12 +163,22 @@ one generic static shell. Apply the matching framework reference before
143
163
  disposing of provider-specific rules; redirects, headers, feeds, metadata,
144
164
  forms, and freshness behavior are observable contracts.
145
165
 
166
+ When local or bundled content becomes Fimo-backed, follow the content-delivery
167
+ contract in `references/questions-and-improvements.md`. Preserve build-time or
168
+ server rendering, direct lookups, bounded reads, request parallelism, and edit
169
+ freshness. A new browser waterfall, repeated full-list read, avoidable
170
+ sequential request chain, or stale edit is a migration regression.
171
+
146
172
  ## Phase 6: Fan in, validate, and report
147
173
 
148
174
  Workers return the plain-text receipt defined in `references/workers.md`.
149
175
  The coordinator checks those claims against the diff, source, CLI read-back,
150
- build, and rendered routes. Then an independent worker follows
151
- `references/workers/validator.md`; a worker saying "done" is not evidence.
176
+ build, and rendered routes. Then it runs the read-only validation wave from
177
+ `references/workers/validator.md`, passing the accepted scope and deliberate
178
+ user-approved differences as task context; a worker saying "done" is not
179
+ evidence.
180
+ Collect the complete finding set before assigning repairs. Run disjoint repair
181
+ owners together, wait for all repairs, and rerun one central validation wave.
152
182
 
153
183
  Write `.fimo/migration/migration-report.md` with route/content/media/form/SEO
154
184
  coverage, import counts, worker timings, unresolved items, and next actions.
@@ -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, project connections, schedules and run history, outbound webhooks,
9
+ dashboard SEO/domain settings, project connections, agents, 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
@@ -39,6 +39,7 @@ Read the relevant reference file when the user's question matches a topic.
39
39
  | AI Chat | references/ai-chat.md | "What can the AI do?", "How do I give context?" |
40
40
  | Code Editor | references/code-editor.md | "How do I edit code?", "Where are my files?" |
41
41
  | SEO Settings | references/seo-settings.md | "How do I set up SEO?", "Favicon, title, share image" |
42
+ | Agents | references/agents.md | "Run an agent", "Pause an agent", "Next agent run" |
42
43
  | Schedules | references/schedules.md | "Recurring commands", "Run history", "Run now" |
43
44
  | Webhooks | references/webhooks.md | "React to forms", "Send events to another service" |
44
45
  | Connections | references/connections.md | "Connect a service", "Add an MCP server" |
@@ -60,6 +61,7 @@ Read the relevant reference file when the user's question matches a topic.
60
61
  | Content/CMS | AI Chat, Media Library |
61
62
  | Webhooks | Project secrets, Forms, Publishing, Agents |
62
63
  | Connections | AI Chat, Agents, Project secrets |
64
+ | Agents | Connections, Project secrets, Branches |
63
65
  | Schedules | Project secrets, Environments, Agents |
64
66
  | Visual changes | Edit Mode (quick tweaks), AI Chat (bigger changes), Code Editor (full control) |
65
67
  | Something went wrong | Version History, AI Chat |
@@ -0,0 +1,25 @@
1
+ # Agents
2
+
3
+ Project agents are versioned bundles from the project's repository. Studio lets project members inspect their configuration and run history, while project managers can start, stop, and resume them.
4
+
5
+ ## Open an agent
6
+
7
+ 1. Open the project and choose **Agents**.
8
+ 2. Select **Agents** again to see the available bundles.
9
+ 3. Choose an agent to open its **Runs** and **Settings** tabs.
10
+
11
+ When the agent has a live schedule, its next run appears first in **Runs**, marked **Scheduled**. The row uses **Next** for its projected ID, a relative date such as **Tomorrow at 11:00 AM**, and **—** for changes and duration until it starts. **Settings** shows the bundle's declared capabilities and trigger wiring; it is read-only because the repository remains the source of truth.
12
+
13
+ ## Run, stop, or resume
14
+
15
+ Choose **Run** to start an agent whose manual trigger is live.
16
+
17
+ Choose **Stop** to pause every future trigger and stop planned or running work. Studio asks for confirmation and explains that the bundle, trigger configuration, model, capabilities, and other settings are preserved.
18
+
19
+ A stopped agent shows **Paused** in the header. **Resume** makes the same triggers live again with their previous settings.
20
+
21
+ Only project managers see Run, Stop, and Resume. Other project members can still see schedule timing, status, settings, and run history.
22
+
23
+ ## Inspect runs
24
+
25
+ Open **Runs** on an agent to see only that bundle's history. Select a run to read its status, report, captured changes, and any question or review state that needs attention.
@@ -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 shows a form in the chat and waits for your response. Complete the form for a structured answer, or reply normally in the chat to answer in your own words.
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 four kinds:
3
+ Fimo uses credits for AI-powered features. There are three kinds:
4
4
 
5
- - **Daily free credits** -- a small pool that resets every day. Available on all plans, including free.
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: daily free first, then monthly, then awarded, then purchased.
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; the daily allowance section is not additional balance.
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 the **Premium** plan, since it charges the payment method already on file.
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 Premium can configure auto-refill from **Settings > Billing**:
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**
@@ -8,7 +8,15 @@ Once in edit mode, click on any element in the preview -- text, buttons, images,
8
8
 
9
9
  ### Editing Content
10
10
 
11
- For text elements, the side panel shows editable fields where you can change the text directly. This covers CMS-managed content, hardcoded text, and hardcoded images. Changes save automatically, and the preview updates as you type.
11
+ For text elements, the side panel opens the selected field immediately with its current value. This covers CMS-managed content, hardcoded text, and hardcoded images. Changes save automatically, and the preview updates as you type.
12
+
13
+ For CMS content, choose **All fields** to open the complete entry form. Studio keeps the content type's field order, scrolls to the field you selected, and focuses it in place. Loading appears only while Studio fetches this additional entry data or moves to another entry.
14
+
15
+ ### References and Components
16
+
17
+ Selecting a field rendered from a referenced entry edits that entry. For example, selecting an author's name opens the Author entry, not the Post relation that links to it. The header shows the relation path. Select the owning entry in that path to return to its complete form with the relation field focused; use that relation field to open, replace, or clear the linked entry.
18
+
19
+ Selecting a field inside a component focuses that nested field. Choose **All fields** to see it in the complete entry form without moving it out of schema order. The shared CMS form provides the existing add, duplicate, remove, and reorder controls for repeatable components and blocks.
12
20
 
13
21
  ### Editing Styles
14
22
 
@@ -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 show **Combine rapid changes**. The default waits 5 seconds after direct editing stops and sends one delivery with the combined changes. Immediate, 30-second, and 1-minute windows are also available. Bulk edits and environment merges already produce batches and send immediately.
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
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "bundled": true,
3
3
  "bundler": "esbuild",
4
- "bundledAt": "2026-08-27T11:27:23.831Z",
5
- "cliVersion": "2.1.0",
4
+ "bundledAt": "2026-09-01T17:10:31.208Z",
5
+ "cliVersion": "2.2.0",
6
6
  "external": [
7
7
  "oxc-parser",
8
8
  "fsevents",