fimo 2.3.0 → 2.3.1-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.
@@ -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 template ships
73
- `max_credits: 5000` as a visible starter limit. Unset: the run may spend up to the organization's available
74
- credits at admission.
75
- - `max_steps` — cap on model-loop steps for one run (integer ≥ 1). Unset: no step cap; only `max_credits` (or the
76
- organization's balance) and the plan's agent-hours bound the run.
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 legacy per-session cost ceiling — the only stops are these author-owned limits, the organization running out of
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. OAuth
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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "bundled": true,
3
3
  "bundler": "esbuild",
4
- "bundledAt": "2026-09-02T12:32:52.515Z",
4
+ "bundledAt": "2026-09-03T08:31:37.703Z",
5
5
  "cliVersion": "2.3.0",
6
6
  "external": [
7
7
  "oxc-parser",