fimo 2.3.0 → 2.3.1-staging.2
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/skills/fimo-cli/references/agents.md +9 -8
- package/assets/skills/fimo-cli/references/content.md +1 -1
- package/assets/skills/fimo-cli/references/integrations.md +3 -3
- package/assets/skills/fimo-code/references/content/schema.md +12 -13
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +5 -7
- package/package.json +8 -8
- package/release.json +2 -2
- package/templates/astro/package.json +2 -2
- package/templates/nextjs/package.json +3 -3
- package/templates/react-router/package.json +4 -4
- package/templates/sveltekit/package.json +2 -2
- package/templates/vite/package.json +4 -4
|
@@ -38,7 +38,7 @@ fimo agents secrets remove <name> <KEY> [-C <dir>]
|
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
- **`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`.
|
|
41
|
-
- **`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).
|
|
41
|
+
- **`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). Keep the scaffolded `runtime` block as is unless the author asks for a different credit limit; see the `runtime` reference below before adding any limit key.
|
|
42
42
|
- Every generated `config.yaml` includes `model: openai/gpt-5.6-luna`. Change that top-level value to another supported Fimo text model when needed; bundles without `model` keep the Luna fallback. Deploy after changing it because cloud runs use the deployed bundle.
|
|
43
43
|
- **`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.
|
|
44
44
|
- **`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.
|
|
@@ -64,19 +64,20 @@ runtime:
|
|
|
64
64
|
dev: false
|
|
65
65
|
long_running: false
|
|
66
66
|
max_credits: 5000
|
|
67
|
-
max_steps: 40
|
|
68
67
|
```
|
|
69
68
|
|
|
70
69
|
- `cloud` / `dev` — declared boolean environment flags for where the bundle may run.
|
|
71
70
|
- `long_running` — same capability as the `runtime:long_running` token: lets the run exceed the default time limit.
|
|
72
|
-
- `max_credits` — the run's own credit ceiling (integer, credits ≥ 1). The default scaffold
|
|
73
|
-
`max_credits: 5000` as a visible starter limit
|
|
74
|
-
credits at admission.
|
|
75
|
-
- `max_steps` — cap on model-loop steps for one run (integer ≥ 1).
|
|
76
|
-
|
|
71
|
+
- `max_credits` — the run's own credit ceiling (integer, credits ≥ 1) and the one limit to tune. The default scaffold
|
|
72
|
+
template ships `max_credits: 5000` as a visible starter limit; raise, lower, or remove it to fit the agent's work.
|
|
73
|
+
Unset: the run may spend up to the organization's available credits at admission.
|
|
74
|
+
- `max_steps` — advanced cost-management knob, extremely rare: a cap on model-loop steps for one run (integer ≥ 1).
|
|
75
|
+
Leave it unset unless the author explicitly wants a step-based bound on top of credits. Do not add it when
|
|
76
|
+
scaffolding a bundle, and do not reach for it to control spend — tune `max_credits` instead. Unset: no step cap;
|
|
77
|
+
`max_credits` (or the organization's balance) and the plan's agent-hours bound the run.
|
|
77
78
|
|
|
78
79
|
All five keys are optional; an absent `runtime` block behaves as if every key were unset. There is no platform step cap
|
|
79
|
-
and no
|
|
80
|
+
and no platform per-run cost ceiling — the only stops are these author-owned limits, the organization running out of
|
|
80
81
|
credits (`insufficient_credits`), and the agent-hours allowance. A limit that fires records a truthful terminal reason
|
|
81
82
|
(`max_steps`, `budget_exceeded`, `insufficient_credits`, or `finish_run_missing` when a run ends without calling
|
|
82
83
|
`finish_run`), readable via `fimo agents report` and the Studio run page.
|
|
@@ -13,7 +13,7 @@ Never remove `isSingleton: true` merely because `fimo entries create` rejects th
|
|
|
13
13
|
|
|
14
14
|
## Flow
|
|
15
15
|
|
|
16
|
-
1. Write `src/schemas/{Uid}.json` — PascalCase filename (e.g. `BlogPost.json`). Run `fimo skills get fimo-code --ref content/schema` for the JSON contract.
|
|
16
|
+
1. Write `src/schemas/{Uid}.json` — PascalCase filename (e.g. `BlogPost.json`). Run `fimo skills get fimo-code --ref content/schema` to decide what becomes editor-managed content (Single, collection, blocks, references, labels, or `json`) and for the JSON contract.
|
|
17
17
|
2. Run `fimo schemas push {Uid}`. It registers the schema and generates the framework-specific public modules. It does not run whole-project validation.
|
|
18
18
|
3. App code imports generated public modules, never `.types.ts` directly. Load the detected framework reference before choosing server modules, client modules, hooks, or a registry.
|
|
19
19
|
4. Seed collections via `fimo entries create`, or update one-off content via `fimo singles update`. Generate cover images first with `fimo image generate` if needed (see `media.md` / `assets.md`).
|
|
@@ -55,8 +55,7 @@ fimo integrations enable firecrawl --connection client-a
|
|
|
55
55
|
|
|
56
56
|
Bare enable uses the integration's default auth path. For Firecrawl, that is "Use Fimo credits".
|
|
57
57
|
|
|
58
|
-
If an integration has no safe default auth path, bare enable should stop with a repair command instead of guessing.
|
|
59
|
-
integrations point to `fimo integrations connect <integration>`. API-key integrations point to
|
|
58
|
+
If an integration has no safe default auth path, bare enable should stop with a repair command instead of guessing. API-key integrations point to
|
|
60
59
|
`fimo integrations connect <integration> --name <name> --token-stdin`, then
|
|
61
60
|
`fimo integrations enable <integration> --connection <name>`.
|
|
62
61
|
|
|
@@ -76,13 +75,14 @@ There is no silent fallback. If a project is enabled with a named API-key connec
|
|
|
76
75
|
## Connections
|
|
77
76
|
|
|
78
77
|
```bash
|
|
79
|
-
fimo integrations connect slack
|
|
80
78
|
fimo integrations connect firecrawl --name client-a --token-stdin
|
|
81
79
|
fimo integrations enable firecrawl --connection client-a
|
|
82
80
|
```
|
|
83
81
|
|
|
84
82
|
Use `connect` for provider accounts, workspaces, OAuth installs, and API-key accounts. Connections live at the organization level and are shared as capabilities, not as visible credentials. A project chooses one by enabling the integration with `--connection <alias>`.
|
|
85
83
|
|
|
84
|
+
Set up Slack from **Project Settings > Connections** in Fimo Studio. Slack app creation and workspace approval require an explicit organization app choice, so the CLI does not guess one.
|
|
85
|
+
|
|
86
86
|
## Run
|
|
87
87
|
|
|
88
88
|
```bash
|
|
@@ -23,6 +23,18 @@ Write one schema per `src/schemas/<Uid>.json`. The PascalCase filename must matc
|
|
|
23
23
|
|
|
24
24
|
Required root keys: `uid`, `name`, and `fields`.
|
|
25
25
|
|
|
26
|
+
## Model what editors manage
|
|
27
|
+
|
|
28
|
+
Design schemas around what content editors need to see and change in Fimo Studio.
|
|
29
|
+
|
|
30
|
+
- Use clear, editor-facing names for Singles, collections, fields, blocks, and groups. For example, use `heroHeading` instead of `H1`, and `Testimonial` with the name `Testimonials`. Order and group fields the way editors work through the form.
|
|
31
|
+
- Use labels for small standalone interface copy. Use schemas when content has structure, media, or repeated records.
|
|
32
|
+
- Use a Single for one shared document such as site settings or navigation. Set `isSingleton` at the schema root: `{ "uid": "HomePage", "name": "Homepage", "isSingleton": true, "fields": {} }`. Use a collection for independent records such as posts, products, or team members.
|
|
33
|
+
- Prefer structured fields: `richtext` for formatted prose, `blocks` for repeatable sections, `reference` for shared records, and `media` for assets.
|
|
34
|
+
- Avoid `json` for editor-managed content. Use it only for opaque data that editors do not need to understand or edit.
|
|
35
|
+
|
|
36
|
+
Keep routing, layout, computed values, and external system data in code. Load `fimo-cli/references/content.md` for the Single and collection write workflows.
|
|
37
|
+
|
|
26
38
|
## Group fields in Studio
|
|
27
39
|
|
|
28
40
|
Use optional top-level `groups` when an entry has meaningful editing areas, such as Overview, Tickets, SEO, or Scheduling. They work best for longer forms where editors regularly work on one area at a time. Usually skip groups for short forms, one-field groups, or vague buckets such as General and Other. Prefer two to five groups organized around editor tasks. This is guidance, not a schema limit.
|
|
@@ -46,19 +58,6 @@ Assign each top-level field with `group`; one field may appear in more than one
|
|
|
46
58
|
|
|
47
59
|
Group IDs must be unique, at most one group may be the default, and memberships must reference a declared group. Only top-level fields can be grouped; fields inside blocks cannot declare `group`.
|
|
48
60
|
|
|
49
|
-
Use `"isSingleton": true` whenever the site has exactly one logical document: a homepage, site settings, an About page, or one campaign landing page. Do not turn it into a one-entry collection just to seed content; keep the Single and load `fimo-cli/references/content.md` for the `fimo singles update` workflow.
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"uid": "HomePage",
|
|
54
|
-
"name": "Homepage",
|
|
55
|
-
"isSingleton": true,
|
|
56
|
-
"fields": {
|
|
57
|
-
"title": { "type": "string", "required": true }
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
61
|
## Locale policy
|
|
63
62
|
|
|
64
63
|
- Omit `i18n` or use `{ "enabled": true }` for localized variants.
|