fimo 0.11.0-staging.1 → 0.11.0-staging.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/agent-templates/_default/config.yaml +2 -0
- package/assets/agent-templates/content-translator/GOAL.md +3 -3
- package/assets/agent-templates/seo-audit/config.yaml +1 -1
- package/assets/skills/fimo/SKILL.md +1 -0
- package/assets/skills/fimo-cli/SKILL.md +12 -7
- package/assets/skills/fimo-cli/references/agents.md +71 -23
- package/assets/skills/fimo-cli/references/branches.md +2 -2
- package/assets/skills/fimo-cli/references/content.md +2 -0
- package/assets/skills/fimo-cli/references/credits.md +1 -1
- package/assets/skills/fimo-cli/references/deploy.md +1 -1
- package/assets/skills/fimo-cli/references/describe.md +1 -1
- package/assets/skills/fimo-cli/references/history.md +1 -1
- package/assets/skills/fimo-cli/references/init.md +51 -16
- package/assets/skills/fimo-cli/references/integrations/firecrawl.md +12 -3
- package/assets/skills/fimo-cli/references/integrations.md +15 -3
- package/assets/skills/fimo-cli/references/invite.md +1 -1
- package/assets/skills/fimo-cli/references/labels.md +1 -1
- package/assets/skills/fimo-cli/references/locales.md +4 -4
- package/assets/skills/fimo-cli/references/mcp.md +85 -0
- package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +1 -1
- package/assets/skills/fimo-cli/references/projects.md +7 -7
- package/assets/skills/fimo-code/references/content.md +1 -0
- package/assets/skills/fimo-code/references/labels.md +2 -2
- package/assets/skills/fimo-code/references/locales.md +5 -5
- package/assets/skills/fimo-code/references/setup-plain-vite.md +12 -11
- package/assets/skills/fimo-code/references/setup-react-router.md +10 -5
- package/assets/skills/fimo-code/references/ui.md +1 -1
- package/assets/skills/fimo-migration/references/workflow.md +1 -1
- package/assets/skills/fimo-migration/scripts/build-canonical-manifest.mjs +32 -3
- package/assets/skills/fimo-studio/references/ai-chat.md +8 -2
- package/assets/skills/fimo-studio/references/custom-domains.md +1 -1
- package/assets/skills/fimo-studio/references/preview-and-responsive.md +1 -1
- package/assets/skills/fimo-studio/references/publish-and-deploy.md +2 -1
- package/assets/starters/fimo-site/manifest.json +64 -0
- package/assets/starters/fimo-site/template/.fimo/agents/content-guide/GOAL.md +8 -0
- package/assets/starters/fimo-site/template/.fimo/agents/content-guide/capabilities.yaml +2 -0
- package/assets/starters/fimo-site/template/.fimo/agents/content-guide/config.yaml +9 -0
- package/assets/starters/fimo-site/template/.fimo/agents/site-review/GOAL.md +14 -0
- package/assets/starters/fimo-site/template/.fimo/agents/site-review/capabilities.yaml +4 -0
- package/assets/starters/fimo-site/template/.fimo/agents/site-review/config.yaml +9 -0
- package/assets/starters/fimo-site/template/src/forms/contact.json +14 -0
- package/assets/starters/fimo-site/template/src/forms/contact.ts +46 -0
- package/assets/starters/fimo-site/template/src/pages/Contact.tsx +193 -0
- package/assets/starters/fimo-site/template/src/pages/Index.tsx +27 -0
- package/assets/starters/fimo-site/template/src/pages/SiteContent.tsx +191 -0
- package/assets/starters/fimo-site/template/src/schemas/HomePage.json +28 -0
- package/assets/starters/fimo-site/template/src/schemas/HomePage.ts +29 -0
- package/assets/starters/fimo-site/template/src/schemas/HomePage.types.ts +64 -0
- package/dist/build/vite/index.d.ts +3 -3
- package/dist/build/vite/index.js +12 -3
- package/dist/build/vite/plugins/fimo-config.d.ts +2 -2
- package/dist/build/vite/plugins/fimo-config.js +5 -5
- package/dist/build/vite/plugins/robots.d.ts +1 -1
- package/dist/build/vite/plugins/robots.js +3 -3
- package/dist/build/vite/plugins/server-config.js +1 -1
- package/dist/build/vite/plugins/sitemap.js +2 -2
- package/dist/build/vite/plugins/translations.js +14 -10
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +147 -135
- package/dist/runtime/app/FimoProviders.js +18 -8
- package/dist/runtime/app/prefetch.d.ts +1 -1
- package/dist/runtime/app/prefetch.js +2 -2
- package/dist/runtime/content/client/internal.js +3 -3
- package/dist/runtime/paths/get-fimo-paths.d.ts +1 -1
- package/dist/runtime/paths/get-fimo-paths.js +5 -5
- package/dist/runtime/paths/types.d.ts +1 -1
- package/dist/runtime/project-layout.d.ts +14 -0
- package/dist/runtime/project-layout.js +57 -0
- package/dist/runtime/seo/resolver.d.ts +1 -1
- package/dist/runtime/seo/resolver.js +1 -1
- package/dist/runtime/shared/fimo-config.server.d.ts +2 -0
- package/dist/runtime/shared/fimo-config.server.js +17 -4
- package/dist/runtime/templates.d.ts +4 -4
- package/dist/runtime/templates.js +11 -6
- package/dist/scripts/validate-route-metadata.js +8 -6
- package/package.json +9 -3
- package/templates/react-router/AGENTS.md +1 -1
- package/templates/react-router/package.json +1 -1
- package/templates/react-router/src/vite-env.d.ts +1 -1
- package/templates/react-router/vite.config.ts +1 -1
- /package/templates/react-router/{fimo-config.json → .fimo/config.json} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Content translator
|
|
2
2
|
|
|
3
3
|
Translate CMS entries and DB-backed labels from the project's default
|
|
4
|
-
locale into every non-default locale declared in
|
|
4
|
+
locale into every non-default locale declared in `.fimo/config.json`.
|
|
5
5
|
Writes go through Fimo's content and label APIs. Do not create locale
|
|
6
6
|
JSON files or put translated values in source code.
|
|
7
7
|
|
|
@@ -9,7 +9,7 @@ JSON files or put translated values in source code.
|
|
|
9
9
|
|
|
10
10
|
- The list of CMS entries that have a non-empty default-locale field
|
|
11
11
|
but an empty translation for any non-default locale.
|
|
12
|
-
- The configured target locales (read from
|
|
12
|
+
- The configured target locales (read from `.fimo/config.json`).
|
|
13
13
|
|
|
14
14
|
## What to do
|
|
15
15
|
|
|
@@ -31,4 +31,4 @@ For each entry:
|
|
|
31
31
|
|
|
32
32
|
Cloud-time activation of this agent requires
|
|
33
33
|
`agents.notifications.email_recipients` to be non-empty (per ADR-0009).
|
|
34
|
-
Add at least one address before
|
|
34
|
+
Add at least one address before deploying, or the cloud trigger stays unwired.
|
|
@@ -7,7 +7,7 @@ data_sources:
|
|
|
7
7
|
- main
|
|
8
8
|
|
|
9
9
|
# Manual-only in v1. Add a schedule trigger when you're ready to run
|
|
10
|
-
# this nightly — make sure fimo
|
|
10
|
+
# this nightly — make sure .fimo/config.json has
|
|
11
11
|
# `agents.notifications.email_recipients` set before activating.
|
|
12
12
|
triggers:
|
|
13
13
|
- type: manual
|
|
@@ -25,6 +25,7 @@ Pick by task:
|
|
|
25
25
|
|
|
26
26
|
- Writing code — schema-driven JSX, schemas/forms JSON, `t()` labels, `fimo/ui` media → `fimo-code`
|
|
27
27
|
- CLI commands and workflows — push, deploy, sync, labels, domains, analytics → `fimo-cli`
|
|
28
|
+
- Project MCP setup — configure `fimo mcp` for a local AI client → `fimo-cli` (`references/mcp.md`)
|
|
28
29
|
- The Fimo Studio dashboard / web app UI → `fimo-studio`
|
|
29
30
|
- Migrating an existing site into Fimo → `fimo-migration`
|
|
30
31
|
|
|
@@ -6,6 +6,7 @@ description: >-
|
|
|
6
6
|
(schemas, entries, forms, media, labels/locales), deploy a site, manage
|
|
7
7
|
custom domains, configure outbound webhooks and event-driven integrations,
|
|
8
8
|
check site traffic/analytics, inspect or restore project history, invite collaborators, inspect AI credits,
|
|
9
|
+
connect an AI coding client to a Fimo project through MCP,
|
|
9
10
|
report a failing or slow Fimo API, rejected documented argument,
|
|
10
11
|
undocumented workaround, missing capability that blocks work, forces a
|
|
11
12
|
fragile or heavily manual workaround, or would materially accelerate a
|
|
@@ -43,9 +44,9 @@ Branch on `error.code`, never on `error.message`. The envelope shape is versione
|
|
|
43
44
|
|
|
44
45
|
For shell composition use plain pretty mode (`cd $(fimo …)`); for structured parsing use `--json`. JSON mode disables interactive prompts — commands that need a confirmation will fail fast with `NON_INTERACTIVE_REFUSAL` unless every required arg is on the command line (`--yes`, `--org`, etc.).
|
|
45
46
|
|
|
46
|
-
## Critical: `.fimo.
|
|
47
|
+
## Critical: `.fimo/project.json` is the project link
|
|
47
48
|
|
|
48
|
-
A Fimo project is identified by `.fimo.
|
|
49
|
+
A Fimo project is identified by `.fimo/project.json`, written by `fimo init`. This file connects the local directory to the remote Fimo project. **Never edit it manually.** Most CLI commands find it by walking up from the cwd.
|
|
49
50
|
|
|
50
51
|
## Critical: commands target the env of the current git branch
|
|
51
52
|
|
|
@@ -57,6 +58,7 @@ A project can have multiple **envs** — each is a git branch _plus_ its own DB,
|
|
|
57
58
|
npx fimo@latest login # authenticate via browser
|
|
58
59
|
npx fimo@latest skills install # install the global Fimo skill for your AI tools
|
|
59
60
|
npx fimo@latest 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.
|
|
61
|
+
npx fimo@latest init my-site --starter fimo-site@1 --org <id> --yes --no-skills # opt-in content-led starter for a new project
|
|
60
62
|
npx fimo@latest init --project-id <id> my-site # link an EXISTING project instead of creating one
|
|
61
63
|
npx fimo@latest clone # interactively choose an existing project to clone locally
|
|
62
64
|
cd my-site # then load skills on demand: npx fimo@latest skills get fimo-code
|
|
@@ -70,13 +72,13 @@ npx fimo@latest deploy --publish # ON-DEMAND: publish live (only w
|
|
|
70
72
|
|
|
71
73
|
The working loop is local: run the app with the project's package-manager `dev` script (`pnpm dev` / `npm run dev` / `yarn dev` / `bun dev` — match the lockfile), ask the developer what they want, edit, and iterate against the live localhost server. `fimo deploy` is **not** a required final step — reach for it only when the developer wants a hosted preview, a shareable link, or to go live, and only on their signal (see `references/deploy.md`).
|
|
72
74
|
|
|
73
|
-
`fimo validate` is the single entrypoint for "prove this project is ready" — it covers schema/form codegen, route metadata checks, lint, and missing label checks for `i18n.defaultLocale` from
|
|
75
|
+
`fimo validate` is the single entrypoint for "prove this project is ready" — it covers schema/form codegen, route metadata checks, lint, and missing label checks for `i18n.defaultLocale` from `.fimo/config.json` (fallback: `en`). Use `fimo labels set` / `set-many` to create or update label values in the DB. The underlying phases are also available individually under the hidden `fimo scripts` namespace for advanced/debug use.
|
|
74
76
|
|
|
75
77
|
## Decision Tree
|
|
76
78
|
|
|
77
79
|
Load the matching reference when the user's request fires its trigger. Recipes that involve writing code also need the `fimo-code` skill's package references — they're called out where relevant.
|
|
78
80
|
|
|
79
|
-
- "Create a new Fimo project / scaffold a site / start a new website / link an existing project locally" → `references/init.md`
|
|
81
|
+
- "Create a new Fimo project / scaffold a site / start a new website / add the opt-in content starter / link an existing project locally" → `references/init.md`
|
|
80
82
|
- "Add a content type / blog / products / pages / CMS" → `references/content.md` (workflow) **+ load `fimo-code/references/content.md` for the JSON shape and React hooks**
|
|
81
83
|
- "Add a contact / signup / feedback / newsletter form" → `references/forms.md` (workflow) **+ load `fimo-code/references/forms.md` for the JSON spec and generated client**
|
|
82
84
|
- "View form submissions / who filled out the contact form / inspect what users sent / how many signups" → `references/forms.md` § Reading submissions
|
|
@@ -102,8 +104,9 @@ Load the matching reference when the user's request fires its trigger. Recipes t
|
|
|
102
104
|
- "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`
|
|
103
105
|
- "Invite a collaborator / add Marc / share with client" → `references/invite.md`
|
|
104
106
|
- "Login / log out / who am I / switch organization" → `references/account.md` — note: switching **org** is `fimo orgs switch`; bare `fimo switch` switches **env** (see `references/branches.md`)
|
|
105
|
-
- "Create / scaffold / run / validate
|
|
107
|
+
- "Create / scaffold / run / validate an agent / agent bundle / wire or enable its triggers / list agent templates / view agent runs, reports, or logs (`fimo agents *`)" → `references/agents.md`
|
|
106
108
|
- "Install Fimo for my AI tool / fimo skills install / set up Claude Code or Cursor for Fimo / add an agent to this project" → `references/agent-setup.md`
|
|
109
|
+
- "Connect an AI coding client to a Fimo project through MCP / configure `fimo mcp` / expose Fimo tools to a local MCP client" → `references/mcp.md`
|
|
107
110
|
- "Refresh / update installed Fimo skills / fimo skills sync / agent missing the latest fimo conventions" → `references/agent-setup.md`
|
|
108
111
|
- "Report a Fimo problem or blocking feature request / contact Fimo support / a Fimo API or command keeps failing / a documented argument is rejected / a supported operation needs an undocumented workaround / a Fimo API is abnormally slow / a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround" → `references/support.md`
|
|
109
112
|
- "Regenerate rule files / I edited AGENTS.md / fimo rules sync" → `references/agent-setup.md`
|
|
@@ -128,16 +131,18 @@ These fire at specific moments in the project lifecycle. **Surface them proactiv
|
|
|
128
131
|
|
|
129
132
|
## Anti-Patterns
|
|
130
133
|
|
|
131
|
-
- **Editing `.fimo.
|
|
134
|
+
- **Editing `.fimo/project.json`** — read-only; it's the link between local and remote project. Treat as a generated file.
|
|
132
135
|
- **Treating `fimo deploy` as the working loop or a required final step** — the loop is local (`pnpm dev` etc.). Deploy commits + pushes + round-trips the sandbox; it's for hosted previews / going live, on-demand. Iterate locally and deploy at logical breakpoints. See `references/deploy.md`.
|
|
133
136
|
- **Deploying without the developer asking or confirming** — offer, then wait for their yes. Don't auto-deploy after finishing an edit.
|
|
134
137
|
- **Running `fimo deploy` just to get a fresh preview URL** — that's a commit + push + sandbox sync for what should be a sub-second read. Use `fimo preview url` instead. See `references/preview.md`.
|
|
135
138
|
- **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".
|
|
136
139
|
- **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.
|
|
140
|
+
- **Using a starter on an existing project** — `--starter` is create-new only. Keep `--project-id` flows blank and use explicit content/form/label commands when changing an existing project.
|
|
141
|
+
- **Treating a starter as a permanent demo tenant** — starters are opt-in seed data in the new project, not a global default. Keep starter agents manual-only; do not add schedules or webhooks unless the project owner explicitly asks for automation.
|
|
137
142
|
- **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.
|
|
138
143
|
- **Adding another deploy tool (Vercel, Netlify, Cloudflare Pages)** — Fimo handles deploys; don't bolt another platform on.
|
|
139
144
|
- **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.
|
|
140
145
|
- **Hardcoding tokens in flags** — use the credentials written by `fimo login` (one file per backend at `~/.config/fimo/credentials/<host>-<hash>.json`).
|
|
141
146
|
- **Treating the daily allowance as extra credits** — `fimo credits` already includes spendable daily free credits in "Available now"; the allowance section is accounting context, not an amount to add.
|
|
142
147
|
- **Trying to refill credits from the CLI** — `fimo credits` is read-only. Buying/refilling credits belongs in the billing UI for now.
|
|
143
|
-
- **`fimo agents
|
|
148
|
+
- **`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`.
|
|
@@ -2,27 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
> **Run via `npx fimo@latest <command>`** — always the latest CLI, no install needed.
|
|
4
4
|
|
|
5
|
-
The `fimo agents` namespace authors and operates **agent bundles** — multi-file definitions under `<project
|
|
5
|
+
The `fimo agents` namespace authors and operates **agent bundles** — multi-file definitions under `<project>/.fimo/agents/<name>/` (a `config.yaml`, a `GOAL.md`, optional `capabilities.yaml`, etc.). Legacy projects keep using root `agents/<name>/`.
|
|
6
6
|
|
|
7
7
|
## Mental model
|
|
8
8
|
|
|
9
9
|
The namespace splits cleanly in two:
|
|
10
10
|
|
|
11
|
-
- **Bundle authoring** — `create`, `list-templates`, `list`, `validate`, `secrets add/remove/list`. Local config editing, no API call except the project-level validation path. Operates on the files under `agents/<name
|
|
12
|
-
- **Cloud ops** — `run`, `
|
|
11
|
+
- **Bundle authoring** — `create`, `list-templates`, `list`, `validate`, `secrets add/remove/list`. Local config editing, no API call except the project-level validation path. Operates on the files under `.fimo/agents/<name>/` (or root `agents/<name>/` for legacy projects).
|
|
12
|
+
- **Cloud ops** — `run`, `runs`, `report`, `logs`. Env-aware, talk to the server. Default `--env` is `main`; `--project` defaults to the linked project in `.fimo/project.json` or legacy `.fimo.settings.json`.
|
|
13
13
|
|
|
14
|
-
The bundle lives in **git** (`agents/<name>/`), not the database. The DB only
|
|
14
|
+
The bundle lives in **git** (`.fimo/agents/<name>/`, or legacy root `agents/<name>/`), not the database. The DB only mirrors what `config.yaml` declares on `main` (which triggers are wired) plus **run sessions**. So the bundle reaches the server through `fimo deploy` — and that push to `main` is also what wires its triggers. There is no activate command: deploying IS the enablement act, and removing a trigger from `config.yaml` tears it down on the next deploy.
|
|
15
15
|
|
|
16
16
|
Typical flow:
|
|
17
17
|
|
|
18
18
|
```
|
|
19
|
-
fimo agents create <name> # scaffold agents/<name>/ from a template (local)
|
|
19
|
+
fimo agents create <name> # scaffold .fimo/agents/<name>/ from a template (local)
|
|
20
20
|
fimo agents secrets add <name> FIRECRAWL_API_KEY # request a project secret in config.yaml
|
|
21
21
|
fimo secrets add FIRECRAWL_API_KEY --stdin # store the hidden value in Fimo
|
|
22
22
|
fimo agents validate <name> # parse + policy + composition + requested secrets
|
|
23
23
|
fimo validate # project build and codegen checks
|
|
24
|
-
fimo deploy # push
|
|
25
|
-
fimo agents activate <name> # wire its triggers on the env (DB row)
|
|
24
|
+
fimo deploy # push to main — this also wires the declared triggers
|
|
26
25
|
fimo agents run <name> # trigger a manual run → sessionId
|
|
27
26
|
fimo agents runs <name> # see past sessions
|
|
28
27
|
fimo agents report <name> # print a run's report (the agent's final message)
|
|
@@ -42,45 +41,94 @@ fimo agents secrets remove <name> <KEY> [-C <dir>]
|
|
|
42
41
|
```
|
|
43
42
|
|
|
44
43
|
- **`list-templates`** — list the bundled starter templates with the first line of each template's `GOAL.md` as a summary. Ships with the CLI binary; no API call. The five bundled templates are `_default`, `seo-audit`, `content-translator`, `broken-link-sweeper`, `post-deploy-check`.
|
|
45
|
-
- **`create <name>`** — scaffold
|
|
46
|
-
- **`list`** — list the agents declared under `<project
|
|
47
|
-
- **`validate [name]`** — run the full validation pipeline: parse → capability vocabulary → composition (cycle / missing sub-agents / invalid grants) → semantic +
|
|
48
|
-
- **`secrets add/remove/list`** — edit or inspect the agent's requested secret names in
|
|
49
|
-
- **`integrations <name>`** — preview the agent's `integrations` allowlist from
|
|
44
|
+
- **`create <name>`** — scaffold `.fimo/agents/<name>/` from a template (default `_default`, a minimal valid bundle with a manual trigger). `--description <text>` writes a one-line tagline into the scaffolded `config.yaml` (surfaces in the dashboard's agents list). When run **without** `-C`, it requires the cwd to be inside a real Fimo project (walks up for `.fimo/project.json` or legacy `.fimo.settings.json`) and errors out cleanly otherwise, so it never leaks an agent bundle into a stray cwd. If the template declares capabilities, an install-consent flow runs after the copy (`--quiet` skips it; critical caps still abort).
|
|
45
|
+
- **`list`** — list the agents declared under `<project>/.fimo/agents/` (or legacy root `agents/`), with each one's trigger types and capability count. Local — the bundle list is the source of truth even if the project isn't linked yet.
|
|
46
|
+
- **`validate [name]`** — run the full validation pipeline: parse → capability vocabulary → composition (cycle / missing sub-agents / invalid grants) → semantic + Fimo project config policy checks. Omit `name` to validate every bundle. `--json` emits a structured `ValidationReport` for CI; exit code is non-zero on any failure.
|
|
47
|
+
- **`secrets add/remove/list`** — edit or inspect the agent's requested secret names in `.fimo/agents/<name>/config.yaml` (or legacy root). These commands do not create, rotate, or reveal secret values. Store values with `fimo secrets add`; run `fimo agents validate` to check that required requested secrets exist in the project. See `references/project-vars-and-secrets.md`.
|
|
48
|
+
- **`integrations <name>`** — preview the agent's `integrations` allowlist from `.fimo/agents/<name>/config.yaml` (or legacy root) and, when linked, overlay project integration status. See `references/integrations.md`.
|
|
50
49
|
|
|
51
|
-
Agent integration access is configured in
|
|
50
|
+
Agent integration access is configured in `.fimo/agents/<name>/config.yaml` (or legacy root). Enable the integration there; omit `tools` to allow all tools that integration exposes, or add a `tools` map to keep the agent on a smaller set:
|
|
52
51
|
|
|
53
52
|
```yaml
|
|
54
53
|
integrations:
|
|
55
54
|
firecrawl:
|
|
56
55
|
enabled: true
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
An explicit map is restrictive: only entries set to `true` are available. An omitted or disabled integration cannot be
|
|
59
|
+
used. See `references/integrations.md` for project setup, auth, and provider-specific commands.
|
|
60
|
+
|
|
61
|
+
## Capabilities
|
|
62
|
+
|
|
63
|
+
Capabilities describe the non-integration actions an agent may take. Start with the smallest set that matches the goal.
|
|
64
|
+
If `capabilities.yaml` is absent or empty, the agent gets the read-only defaults: `files:read`, `cms:read`, and
|
|
65
|
+
`assets:read`. Once you add a capabilities file, list every extra capability the agent needs.
|
|
66
|
+
There is no all-capabilities wildcard; keeping the list explicit makes each agent's power reviewable.
|
|
67
|
+
|
|
68
|
+
| Capability | Allows the agent to | Risk |
|
|
69
|
+
| ---------------------------- | ------------------------------------------- | ------------ |
|
|
70
|
+
| `files:read` | Read project files | Low |
|
|
71
|
+
| `files:write` | Write or delete project files | Medium |
|
|
72
|
+
| `cms:read` | Read CMS content | Low |
|
|
73
|
+
| `cms:write` | Create, update, or delete CMS entries | Medium |
|
|
74
|
+
| `cms:schema:read` | Read CMS schemas | Low |
|
|
75
|
+
| `cms:schema:write` | Modify CMS schemas | High |
|
|
76
|
+
| `assets:read` | Read uploaded media | Low |
|
|
77
|
+
| `assets:write` | Upload, replace, or delete media | Medium |
|
|
78
|
+
| `i18n:read` / `i18n:write` | Read / modify translation catalogs | Low / Medium |
|
|
79
|
+
| `forms:read` / `forms:write` | Read / modify form schemas and submissions | Low / Medium |
|
|
80
|
+
| `git:read` | Read git state | Low |
|
|
81
|
+
| `git:branch` | Create an agent branch | Medium |
|
|
82
|
+
| `git:commit` | Commit changes to the agent branch | Medium |
|
|
83
|
+
| `git:push` | Push changes to the project remote | High |
|
|
84
|
+
| `fimo:logs:read` | Read production logs | Low |
|
|
85
|
+
| `fimo:analytics:read` | Read analytics data | Low |
|
|
86
|
+
| `fimo:preview:read` | Read a current preview URL | Low |
|
|
87
|
+
| `fimo:deploy` | Trigger a production deploy | Critical |
|
|
88
|
+
| `net:fetch` | Make outbound HTTP requests | Medium |
|
|
89
|
+
| `shell:exec` | Run arbitrary shell commands in the sandbox | High |
|
|
90
|
+
| `agent:delegate` | Invoke declared sub-agents | Medium |
|
|
91
|
+
| `runtime:long_running` | Run beyond the default time limit | High |
|
|
92
|
+
| `runtime:auto_merge` | Auto-merge trivial proposed branches | Critical |
|
|
93
|
+
|
|
94
|
+
If a capability is missing, the related command is denied and the agent should choose another path or report the
|
|
95
|
+
blocker. Add the capability to `capabilities.yaml`, run `fimo agents validate <name>`, deploy the bundle, and start a
|
|
96
|
+
new run. A denied capability does not grant access to anything else.
|
|
97
|
+
|
|
98
|
+
Example for a content editor that can read and update entries but cannot change schemas or run shell commands:
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
- files:read
|
|
102
|
+
- cms:read
|
|
103
|
+
- cms:write
|
|
60
104
|
```
|
|
61
105
|
|
|
62
106
|
## Cloud ops (env-aware)
|
|
63
107
|
|
|
64
108
|
```bash
|
|
65
109
|
fimo agents run <name> [--env <env>] [--project <id>] [--skip-drift-check] [-C <dir>]
|
|
66
|
-
fimo agents activate <name> [--trigger <type>] [--env <env>] [--project <id>] [--quiet] [-C <dir>]
|
|
67
|
-
fimo agents deactivate <name> [--trigger <type>] [--env <env>] [--project <id>] [-C <dir>]
|
|
68
110
|
fimo agents runs <name> [--limit <n>] [--env <env>] [--project <id>] [-C <dir>]
|
|
69
111
|
fimo agents report <name> [--session <id>] [--env <env>] [--project <id>] [-C <dir>]
|
|
70
112
|
fimo agents logs <name> [--session <id>] [--project <id>] [-C <dir>]
|
|
71
113
|
```
|
|
72
114
|
|
|
73
|
-
- **`run <name>`** —
|
|
74
|
-
- **`activate <name>`** — wire the agent's triggers on an env (writes `agent_activations` rows). A `schedule` trigger creates a cron, a `webhook` trigger reserves a path, and `manual` just enables dispatch. `--trigger <type>` (`schedule` / `webhook` / `manual`) activates only that type; otherwise all declared triggers. **The bundle must be deployed first.** Cloud triggers (`schedule` / `webhook`) require `notifications.email_recipients` in `fimo-config.json` (the dash-form scaffold file; legacy `fimo.config.json` is also accepted). Capability install-consent runs unless `--quiet`.
|
|
75
|
-
- **`deactivate <name>`** — remove activation rows on an env. Idempotent. `--trigger <type>` scopes to a single trigger type.
|
|
115
|
+
- **`run <name>`** — fire the agent's `manual` trigger on the server; prints a `sessionId` on success. Skips with `no-manual-trigger` when `config.yaml` declares none, or `trigger-not-wired` when the push-to-main sync recorded the trigger but refused to wire it (see the wiring note below). **Pre-flight drift check**: if `.fimo/agents/<name>/` (or the legacy root bundle) has uncommitted git changes, the command refuses — the server would dispatch the _deployed_ version, so deploy first. Pass `--skip-drift-check` to dispatch the deployed bundle anyway. Defaults `--env` to `main`.
|
|
76
116
|
- **`runs <name>`** — list past run sessions for the agent in a compact table (id, started, duration, status, trigger, env, cost). Default `--limit 20`; `--env` filters to one env.
|
|
77
117
|
- **`report <name>`** — print a run's **report**: the agent's final message, captured when the run finishes (for a read-only agent like `seo-audit` this _is_ the audit; for a write agent it's a "what I changed" summary). With no `--session`, the most recent run for `<name>` is used (combine with `--env` to scope); `--session <id>` targets a specific run. Output is raw markdown, so it stays readable in the terminal and pipes cleanly (e.g. `fimo agents report seo-audit | glow`). If the run hasn't finished, or produced no message, it says so (and shows the stop reason when there is one). This is the command to read what a run actually produced — see the `logs` note below.
|
|
78
118
|
- **`logs <name>`** — stream a run's log (defaults to the latest session; `--session <id>` targets one). **Note:** the log-streaming endpoint is still a server-side stub at time of writing — the command prints a placeholder rather than real log lines. To read a finished run's output today, use `report`.
|
|
79
119
|
|
|
120
|
+
## How triggers get wired
|
|
121
|
+
|
|
122
|
+
Agents are not env-scoped: they belong to the project, are read from `main`, and their triggers are global. A branch env has no agents of its own — Studio's agents view shows main's agents whichever env you are on, and a bundle sitting only on a feature branch appears nowhere until it reaches main.
|
|
123
|
+
|
|
124
|
+
Pushing `.fimo/agents/<name>/config.yaml` (or a legacy root bundle) to `main` is the whole enablement act — `fimo deploy` does it. The server reconciles the file into its trigger rows on every push: a `schedule` trigger gets a cron, a `webhook` trigger gets its path, and `manual` becomes runnable. Removing a trigger from the file deletes it (cron torn down, path released) on the next deploy; deleting the agent's directory removes the whole deployment.
|
|
125
|
+
|
|
126
|
+
Cloud triggers (`schedule` / `webhook`) additionally require `notifications.email_recipients` in `.fimo/config.json` (legacy root `fimo-config.json` and `fimo.config.json` are also accepted). Without it the trigger is recorded but deliberately left **unwired** and will not fire — `fimo agents validate` warns about this before you deploy, and the Studio agents view shows the reason afterwards.
|
|
127
|
+
|
|
80
128
|
## `-C, --cwd <dir>`
|
|
81
129
|
|
|
82
|
-
Every `fimo agents` command accepts `-C, --cwd <dir>` to point at a different project directory. For the cloud-ops commands, `--project <id>` overrides the project id otherwise read from `.fimo.settings.json`.
|
|
130
|
+
Every `fimo agents` command accepts `-C, --cwd <dir>` to point at a different project directory. For the cloud-ops commands, `--project <id>` overrides the project id otherwise read from `.fimo/project.json` or legacy `.fimo.settings.json`.
|
|
83
131
|
|
|
84
132
|
## Non-interactive use
|
|
85
133
|
|
|
86
|
-
|
|
134
|
+
No `fimo agents` command prompts — authoring and cloud ops both run unattended.
|
|
@@ -41,11 +41,11 @@ All of these accept the global `--env` override. `diff`, `status`, `merge`, and
|
|
|
41
41
|
|
|
42
42
|
> **`fimo switch` is the ENV switcher, not the org switcher.** To change your active organization, use `fimo orgs switch` — see `references/account.md`.
|
|
43
43
|
|
|
44
|
-
## The
|
|
44
|
+
## The 6 surfaces
|
|
45
45
|
|
|
46
46
|
`status`, `diff`, and `merge` all reason over the same per-env surfaces, in this order:
|
|
47
47
|
|
|
48
|
-
`code` · `schemas` · `content` · `translations` · `assets` · `forms`
|
|
48
|
+
`code` · `schemas` · `content` · `translations` · `assets` · `forms`
|
|
49
49
|
|
|
50
50
|
`--surface <name>` on `diff` and the per-surface flags on `status` (`--code`, `--content`, `--i18n`, `--agents`, `--assets`, `--forms`) filter to one of them.
|
|
51
51
|
|
|
@@ -34,6 +34,8 @@ The command is `fimo schemas` (plural). There is no singular `fimo schema` alias
|
|
|
34
34
|
|
|
35
35
|
All commands accept `-C, --cwd <dir>` to point at a different project directory.
|
|
36
36
|
|
|
37
|
+
Blocks schemas support at most 7 nested `blocks` levels, 40 variants in one `schema.oneOf`, and `min` or `max` values up to 200 items per blocks field. Load `fimo/references/content.md` for the complete blocks JSON shape.
|
|
38
|
+
|
|
37
39
|
Schema transitions are automatic. Adding optional fields and changing labels preserve content. A new required field backfills its `default` only where existing values need it; the push fails safely when no default can satisfy existing content. Removing a nested field or block variant removes only those values. `string` and `text` preserve values in both directions. Other primitive changes convert safe values and reject unsafe ones without changing the schema or entries. Lowering block `max` trims from the end; raising `min` fills from the blocks `default` templates. A reference target change clears its connections. Use repeatable `--rename old.path=new.path` arguments when a field moved by name so the one-time migration preserves its values; the operation is not stored in schema JSON. Collection-to-Single removes that type's entries and cleans inbound references; Single-to-collection preserves its entry. Run `fimo validate` after pushing.
|
|
38
40
|
|
|
39
41
|
## Singles CLI commands
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **Run via `npx fimo@latest <command>`** — always the latest CLI, no install needed.
|
|
4
4
|
|
|
5
|
-
`fimo credits` is a read-only command for checking the AI credit balance of the organization that owns a Fimo project. It resolves the project from `.fimo.
|
|
5
|
+
`fimo credits` is a read-only command for checking the AI credit balance of the organization that owns a Fimo project. It resolves the project from `.fimo/project.json` unless `--project <project-id>` is provided.
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
fimo credits
|
|
@@ -98,7 +98,7 @@ fimo deploy
|
|
|
98
98
|
## Other facts
|
|
99
99
|
|
|
100
100
|
- Source of truth is this git repo.
|
|
101
|
-
- **Never** edit `.fimo.
|
|
101
|
+
- **Never** edit `.fimo/project.json`; it is generated by `fimo init`.
|
|
102
102
|
- Each env deploys to its own branch + preview sandbox; `--publish` and `fimo publish` run from `main` only. See `references/branches.md`.
|
|
103
103
|
|
|
104
104
|
## After the first successful deploy
|
|
@@ -78,4 +78,4 @@ The scoped view still emits the project-level metadata header (name, framework,
|
|
|
78
78
|
|
|
79
79
|
- The JSON shape is stable; parse it rather than scraping the human output when you need a specific field.
|
|
80
80
|
- The `framework` field is detected from `package.json#dependencies` (v1 detector). For multi-framework projects or unusual setups, the field may be `null` — fall back to reading `package.json` yourself.
|
|
81
|
-
- The command runs in any directory that contains `.fimo.
|
|
81
|
+
- The command runs in any directory that contains `.fimo/project.json` or one of its ancestors. If you're not in a Fimo project, `describe` will run against whatever directory you point it at (it doesn't require Fimo credentials).
|
|
@@ -13,7 +13,7 @@ fimo history create "Before content migration"
|
|
|
13
13
|
fimo history restore <version-id>
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
Use the global `--env <name>` option to target a different environment. Use `--project <id>` when there is no local `.fimo.
|
|
16
|
+
Use the global `--env <name>` option to target a different environment. Use `--project <id>` when there is no local `.fimo/project.json`.
|
|
17
17
|
|
|
18
18
|
## Pagination and usage
|
|
19
19
|
|
|
@@ -13,44 +13,79 @@ fimo init [dir] [options]
|
|
|
13
13
|
`fimo init` runs the full onboarding in one shot:
|
|
14
14
|
|
|
15
15
|
1. **Signs in automatically** — if there's no session it opens the browser loopback login. In `--json` / non-TTY with no session it fails with `NOT_AUTHENTICATED` (run `fimo login` first).
|
|
16
|
-
2. **Resolves the project** — with `--project-id <id>` it links an EXISTING project (clones it); without it, it creates a NEW project. An interactive TTY shows a "Create new / Link existing" picker; non-interactive shells default to create-new.
|
|
16
|
+
2. **Resolves the project** — with `--project-id <id>` it links an EXISTING project (clones it); without it, it creates a NEW project. An interactive TTY shows a "Create new / Link existing" picker; non-interactive shells default to create-new. An optional `--starter fimo-site@1` adds a content-led starter only to a newly created project.
|
|
17
17
|
3. **Installs dependencies** — prompts for the package manager, or honor `--package-manager <pm>` / `--no-install`.
|
|
18
18
|
4. **Optionally sets up Fimo skills** — confirm prompt, or `--skills` / `--no-skills`.
|
|
19
19
|
|
|
20
|
-
| Flag | Required | Purpose
|
|
21
|
-
| ---------------------------- | ----------------------------- |
|
|
22
|
-
| `[dir]` positional | yes in non-TTY for create-new | Target directory (e.g. `my-site`)
|
|
23
|
-
| `--project-id <id>` | no | Link an EXISTING project instead of creating one (clones it).
|
|
24
|
-
| `--org <id>` | no | Target organization **id** when creating (use the `ID` column from `fimo orgs list`, NOT the slug). Picker shown interactively if omitted and TTY.
|
|
25
|
-
| `--env <name>` | no | Env to check out when linking an existing project (defaults to `main`).
|
|
26
|
-
| `--
|
|
27
|
-
| `--
|
|
28
|
-
| `--
|
|
29
|
-
| `--
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
20
|
+
| Flag | Required | Purpose |
|
|
21
|
+
| ---------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
|
+
| `[dir]` positional | yes in non-TTY for create-new | Target directory (e.g. `my-site`) |
|
|
23
|
+
| `--project-id <id>` | no | Link an EXISTING project instead of creating one (clones it). |
|
|
24
|
+
| `--org <id>` | no | Target organization **id** when creating (use the `ID` column from `fimo orgs list`, NOT the slug). Picker shown interactively if omitted and TTY. |
|
|
25
|
+
| `--env <name>` | no | Env to check out when linking an existing project (defaults to `main`). |
|
|
26
|
+
| `--starter <id>` | no | Opt-in project starter for create-new (currently `fimo-site@1`). It seeds CMS content, labels, a contact form, and manual-only agents. Rejects `--project-id`. |
|
|
27
|
+
| `--package-manager <pm>` | no | `npm` \| `pnpm` \| `yarn` \| `bun`. |
|
|
28
|
+
| `--install` / `--no-install` | yes in non-TTY | Install deps after checkout (or skip it). |
|
|
29
|
+
| `--skills` / `--no-skills` | yes in non-TTY | Install the global Fimo skill (or skip it). |
|
|
30
|
+
| `--agents <list>` | no | Comma-separated agent IDs (e.g. `claude-code,cursor`). Pass `none` to skip installing the global skill. |
|
|
31
|
+
| `-a, --agent <id>` | alternative | Repeatable form: `-a claude-code -a cursor`. |
|
|
32
|
+
| `--template-root <path>` | no | Override the bundled template (development only). |
|
|
33
|
+
| `-y, --yes` | no | Run non-interactively using defaults (no prompts). |
|
|
33
34
|
|
|
34
35
|
In a non-TTY shell the create-new path requires `[dir]`, `--install` / `--no-install`, and `--skills` / `--no-skills` (and `--org` if you have no active org and belong to multiple orgs). Without them the command exits with `Cannot prompt in a non-interactive shell.`
|
|
35
36
|
|
|
37
|
+
### Non-interactive starter setup
|
|
38
|
+
|
|
39
|
+
Use explicit flags when a script or agent owns the flow. `--json` gives the
|
|
40
|
+
caller one stable result envelope; `--yes` is useful when running in a TTY but
|
|
41
|
+
is not required in a pipe or CI shell. The starter is never selected by default.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx fimo@latest --json init my-site \
|
|
45
|
+
--starter fimo-site@1 \
|
|
46
|
+
--org <organizationId> \
|
|
47
|
+
--no-install \
|
|
48
|
+
--no-skills \
|
|
49
|
+
--agents=none \
|
|
50
|
+
--yes
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The command creates the project, copies the starter overlay, seeds its `HomePage`
|
|
54
|
+
singleton, `contact` form, and labels in `main`, writes the form id into
|
|
55
|
+
`src/forms/contact.json`, and commits the starter agents as manual-only bundles.
|
|
56
|
+
`--starter` is create-new only; an existing-project command such as
|
|
57
|
+
`fimo init --project-id <id> --starter fimo-site@1` fails before cloning or
|
|
58
|
+
writing anything. If dependencies were skipped, install them and run
|
|
59
|
+
`fimo validate` before starting the app so generated clients are present.
|
|
60
|
+
|
|
36
61
|
> **Zero-install:** run `npx fimo@latest init` — no global install needed. `fimo projects create` is also an alias of `fimo init` (create-new path).
|
|
37
62
|
|
|
38
63
|
For `--agents`, pass the AI tool you're running in: `--agents=claude-code` for Claude Code, `--agents=cursor` for Cursor, `--agents=codex` for Codex, etc. When the flag is omitted, env-var detection of the invoking harness (e.g. `CLAUDECODE` / `CLAUDE_CODE_ENTRYPOINT` → claude-code) auto-targets that agent; other agents must be selected explicitly via `--agents`/`-a` or the interactive picker.
|
|
39
64
|
|
|
40
65
|
## Linking an existing project
|
|
41
66
|
|
|
42
|
-
Pass `--project-id <id>` to link an EXISTING project instead of creating one. This clones the project's git repo into `[dir]` and writes the local `.fimo.
|
|
67
|
+
Pass `--project-id <id>` to link an EXISTING project instead of creating one. This clones the project's git repo into `[dir]` and writes the local `.fimo/project.json`, the same as `fimo clone` (init's `--project-id` path reuses it). Use `--env <name>` to check out a specific env (defaults to `main`). Without `--project-id`, `fimo init` creates a new project.
|
|
43
68
|
|
|
44
69
|
## What gets written (create-new)
|
|
45
70
|
|
|
46
71
|
`fimo init` (create-new path) scaffolds:
|
|
47
72
|
|
|
48
73
|
- The project template (Vite + React 19 + TypeScript + Tailwind v4 + shadcn/ui + react-router)
|
|
49
|
-
- `.fimo.
|
|
74
|
+
- `.fimo/project.json` — links this directory to the remote project (read-only after creation)
|
|
75
|
+
- `.fimo/config.json` — project, route, locale, SEO, and agent policy
|
|
76
|
+
- `.fimo/agents/` — versioned agent bundles
|
|
50
77
|
- `.env` — initial env vars (currently just `VITE_API_URL`)
|
|
51
78
|
- `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.
|
|
52
79
|
- A git repository with `fimo` as the remote, and — after dependencies install — an initial commit (including the lockfile) plus an initial push
|
|
53
80
|
|
|
81
|
+
When `--starter fimo-site@1` is supplied, the overlay also includes a
|
|
82
|
+
content-backed homepage, `src/schemas/HomePage.json`, a `contact` form spec,
|
|
83
|
+
nine English labels, and two read-only agent bundles (`site-review` and
|
|
84
|
+
`content-guide`). The seed is opt-in and scoped to the new project; the default
|
|
85
|
+
blank template and all existing-project flows remain unchanged. Starter agents
|
|
86
|
+
declare only a manual trigger so copying them does not create schedules or
|
|
87
|
+
webhooks.
|
|
88
|
+
|
|
54
89
|
Nothing is written into per-agent skill dirs: the rich skills are fetched on demand via `fimo skills get <name>`, never copied into the project. `fimo init` separately installs the small global `fimo` bootstrap skill for the agents you select (machine-wide, not in the project) unless you pass `--no-skills`. For other agents' rule-file variants (`.cursor/rules/fimo.mdc`, `.windsurfrules`, `GEMINI.md`), run `fimo rules sync`. See `references/agent-setup.md`.
|
|
55
90
|
|
|
56
91
|
Codex, OpenCode, Aider, and similar AGENTS.md-native tools work directly off AGENTS.md.
|
|
@@ -31,7 +31,7 @@ fimo integrations connect firecrawl --name client-a --token-stdin
|
|
|
31
31
|
fimo integrations enable firecrawl --connection client-a
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
`connect` creates or repairs an organization-level connection. `enable --connection <alias>` lets the current project use that connection. Teammates and agents can use the
|
|
34
|
+
`connect` creates or repairs an organization-level connection. `enable --connection <alias>` lets the current project use that connection. Teammates and agents can use the integration, but Fimo never prints the API key back.
|
|
35
35
|
|
|
36
36
|
There is no fallback between auth choices. If a named connection is selected and its key is missing or broken, repair the connection. If `fimo` is selected and the backend is not configured, report that Firecrawl needs backend setup.
|
|
37
37
|
|
|
@@ -155,7 +155,16 @@ For users, describe monitors as website change monitors: create a monitor, list
|
|
|
155
155
|
|
|
156
156
|
## Agent Access
|
|
157
157
|
|
|
158
|
-
Project-level setup makes Firecrawl available to the project.
|
|
158
|
+
Project-level setup makes Firecrawl available to the project. Add Firecrawl to an agent's `config.yaml` to let that
|
|
159
|
+
agent use it. If you omit `tools`, the agent gets every Firecrawl tool; use a tools map when you want a narrower set.
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
integrations:
|
|
163
|
+
firecrawl:
|
|
164
|
+
enabled: true
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Selective access:
|
|
159
168
|
|
|
160
169
|
```yaml
|
|
161
170
|
integrations:
|
|
@@ -177,7 +186,7 @@ fimo validate
|
|
|
177
186
|
fimo agents integrations seo-researcher
|
|
178
187
|
```
|
|
179
188
|
|
|
180
|
-
For deployed or scheduled agents, deploy the bundle after changing
|
|
189
|
+
For deployed or scheduled agents, deploy the bundle after changing `.fimo/agents/<name>/config.yaml`:
|
|
181
190
|
|
|
182
191
|
```bash
|
|
183
192
|
fimo deploy
|
|
@@ -14,7 +14,7 @@ fimo integrations status firecrawl
|
|
|
14
14
|
|
|
15
15
|
`info` shows supported auth choices, required credentials, tools, and recipes. `status` shows the project-specific setup state.
|
|
16
16
|
|
|
17
|
-
When running inside an autonomous agent session, `fimo integrations list` shows the effective integrations available to that agent runtime, scoped by
|
|
17
|
+
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.
|
|
18
18
|
|
|
19
19
|
## Integration References
|
|
20
20
|
|
|
@@ -89,7 +89,19 @@ For Firecrawl-specific recipes, JSON examples, and agent policy guidance, load `
|
|
|
89
89
|
|
|
90
90
|
## Agent Access Policy
|
|
91
91
|
|
|
92
|
-
Project integrations are enabled at the project level.
|
|
92
|
+
Project integrations are enabled at the project level. An agent opts into an integration in
|
|
93
|
+
`.fimo/agents/<name>/config.yaml` (or the legacy root `agents/<name>/config.yaml`):
|
|
94
|
+
|
|
95
|
+
When `tools` is omitted, the agent can use every tool currently exposed by that integration. Add a `tools` map only
|
|
96
|
+
when the agent needs a narrower set:
|
|
97
|
+
|
|
98
|
+
```yaml
|
|
99
|
+
integrations:
|
|
100
|
+
firecrawl:
|
|
101
|
+
enabled: true
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
For a narrower allowlist, add the tools explicitly:
|
|
93
105
|
|
|
94
106
|
```yaml
|
|
95
107
|
integrations:
|
|
@@ -101,7 +113,7 @@ integrations:
|
|
|
101
113
|
'monitor.list': true
|
|
102
114
|
```
|
|
103
115
|
|
|
104
|
-
|
|
116
|
+
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.
|
|
105
117
|
|
|
106
118
|
Run `fimo validate` after editing agent config to check local shape plus project-level integration setup.
|
|
107
119
|
|
|
@@ -93,4 +93,4 @@ fimo invite --email "dev@agency.com" --role full
|
|
|
93
93
|
- Invited users receive an email with a sign-up link if they don't have an account, or a sign-in link if they do.
|
|
94
94
|
- Organization invites can be resent with `--resend` if the user didn't receive the original.
|
|
95
95
|
- Project invites are scoped to a single project; organization invites grant access to all projects in that organization.
|
|
96
|
-
- If `--cwd` is set and the directory
|
|
96
|
+
- If `--cwd` is set and the directory belongs to a linked Fimo project, that project is auto-selected.
|
|
@@ -6,7 +6,7 @@ This file covers CLI-side locale configuration and validation. For code helpers
|
|
|
6
6
|
|
|
7
7
|
## Configure Locales
|
|
8
8
|
|
|
9
|
-
Edit
|
|
9
|
+
Edit `.fimo/config.json`. Keep one locale unless the user asks for multilingual or localized output:
|
|
10
10
|
|
|
11
11
|
```jsonc
|
|
12
12
|
{
|
|
@@ -40,13 +40,13 @@ Validation checks:
|
|
|
40
40
|
- malformed locale tags
|
|
41
41
|
- `defaultLocale` missing from `locales`
|
|
42
42
|
- unsupported routing strategies
|
|
43
|
-
- canonical routes in
|
|
43
|
+
- canonical routes in `.fimo/config.json` that claim reserved locale prefixes, for example `/es`
|
|
44
44
|
- top-level dynamic routes that could capture locale prefixes unless the project uses Fimo's React Router helper
|
|
45
45
|
- missing default-locale DB labels
|
|
46
46
|
|
|
47
47
|
## Route Metadata Rule
|
|
48
48
|
|
|
49
|
-
Keep
|
|
49
|
+
Keep `.fimo/config.json#routes` canonical and unlocalized:
|
|
50
50
|
|
|
51
51
|
```json
|
|
52
52
|
{
|
|
@@ -71,7 +71,7 @@ For custom frameworks, the project may implement its own URL scheme, but it stil
|
|
|
71
71
|
|
|
72
72
|
Inspect the existing locale provider, route table, switcher, redirects, and public URLs before editing configuration. Preserve working URL behavior during the migration.
|
|
73
73
|
|
|
74
|
-
For React Router projects, prefer one contract based on
|
|
74
|
+
For React Router projects, prefer one contract based on `.fimo/config.json`, `fimoRoutes()`, and `FimoLink`; migrate existing wrappers into the framework root instead of layering a second locale context. If that would change established URLs, keep the custom router temporarily, pass its active locale to `FimoProviders`, and ask the user to choose canonical URLs and redirects before rewriting routes.
|
|
75
75
|
|
|
76
76
|
## Labels And Content
|
|
77
77
|
|