Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The site is organised the way a reader uses it (get started, tutorials, how-to g

## Current Versioning

- Current CLI release documented here: `0.28.0`
- Current CLI release documented here: `0.29.0`
- Contract schema: `fluidVersion: 0.7.6` is the stable default; `0.7.7` is an opt-in preview

Those are different on purpose. `fluid version` reports the installed CLI release, while `fluidVersion` inside a contract selects the contract schema version.
Expand Down
4 changes: 2 additions & 2 deletions docs/.vuepress/cli-version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"supportedCliVersion": "0.28.0",
"supportedCliInstallSpec": "data-product-forge==0.28.0",
"supportedCliVersion": "0.29.0",
"supportedCliInstallSpec": "data-product-forge==0.29.0",
"supportedFluidContractVersion": "0.7.6",
"quickstartScaffoldVersion": "0.7.5",
"supportedSdkVersion": "0.10.0",
Expand Down
12 changes: 6 additions & 6 deletions docs/advanced/environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,14 @@ See [cost tracking](./cost-tracking.md).

## LLM provider and routing

See [LLM providers](./llm-providers.md) and the [LiteLLM backend](./litellm-backend.md). *On forge-cli `main`, not yet in a release ([forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850)).* With nothing here or in a provider key set, a non-interactive run picks a provider itself; see [When nothing is configured](./llm-providers.md#when-nothing-is-configured). *On forge-cli `main`, not yet in a release ([forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852)).* When nothing names a provider and none is found, forge stops with `copilot_no_llm_provider`.
See [LLM providers](./llm-providers.md) and the [LiteLLM backend](./litellm-backend.md). *(since 0.29.0, [forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850))* With nothing here or in a provider key set, a non-interactive run picks a provider itself; see [When nothing is configured](./llm-providers.md#when-nothing-is-configured). *(since 0.29.0, [forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852))* When nothing selects a provider and none is found, forge stops with `copilot_no_llm_provider`. *(since 0.29.0, [forge-cli #854](https://github.com/Agenticstiger/forge-cli/pull/854))* A provider saved with `fluid ai setup` comes before that pick, in a run without a terminal too; see [Which provider a run uses](./llm-providers.md#which-provider-a-run-uses).

| Variable | Effect |
|---|---|
| `FLUID_LLM_PROVIDER` | Default provider. |
| `FLUID_LLM_MODEL` | Default model. |
| `FLUID_LLM_API_KEY` | API key for the selected provider. It wins over the provider's own key variable, such as `OPENAI_API_KEY`. It does not choose the provider: name one with `--llm-provider`, `FLUID_LLM_PROVIDER` or the key of exactly one provider. *On forge-cli `main`, not yet in a release ([forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852)).* With none named, forge stops with `copilot_no_llm_provider`; before #852 it sent the key to `gemini`. |
| `FLUID_LLM_ENDPOINT` | Overrides the model endpoint. *On forge-cli `main`, not yet in a release ([forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850)).* The routing model's calls use it too, unless `FLUID_LLM_ROUTING_ENDPOINT` names another. *On forge-cli `main`, not yet in a release ([forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852)).* For Ollama, forge's model pick and model check ask it too, and each `--tiered` stage calls it. |
| `FLUID_LLM_MODEL` | Default model. *(since 0.29.0, [forge-cli #854](https://github.com/Agenticstiger/forge-cli/pull/854))* Like `--llm-model`, it passes over a coding agent, whether forge would pick it or `fluid ai setup` saved it. |
| `FLUID_LLM_API_KEY` | *(since 0.29.0, [forge-cli #853](https://github.com/Agenticstiger/forge-cli/pull/853))* API key for a provider named with `--llm-provider`, `FLUID_LLM_PROVIDER` or `FLUID_FORGE_AGENT`; there it wins over the provider's own key variable, such as `OPENAI_API_KEY`. A provider forge picks itself gets its own key variable, then its keyring key, and a warning says `FLUID_LLM_API_KEY` was not used; see [Which key a provider gets](./llm-providers.md#which-key-a-provider-gets). Through 0.28.0 the key went to whatever provider the run used, ahead of its own key variable. The key does not choose the provider. *(since 0.29.0, [forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852))* With none selected, forge stops with `copilot_no_llm_provider`; through 0.28.0 it sent the key to `gemini`. |
| `FLUID_LLM_ENDPOINT` | Overrides the model endpoint. *(since 0.29.0, [forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850))* The routing model's calls use it too, unless `FLUID_LLM_ROUTING_ENDPOINT` names another. *(since 0.29.0, [forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852))* For Ollama, forge's model pick and model check ask it too, and each `--tiered` stage calls it. *(since 0.29.0, [forge-cli #854](https://github.com/Agenticstiger/forge-cli/pull/854))* It also passes over a coding agent that `fluid ai setup` saved. |
| `FLUID_LLM_TIMEOUT_SECONDS` | Per-call timeout. Default `120`. |
| `FLUID_LLM_STREAMING` | Default on; `0`, `false`, `no` or `off` disables streaming. |
| `FLUID_LLM_ROUTING_ENDPOINT`, `FLUID_LLM_ROUTING_MODEL` | Optional routing endpoint and model. |
Expand Down Expand Up @@ -258,7 +258,7 @@ Provider-specific keys (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`,
| `FLUID_FORGE_TOOL_SEARCH` | Enables lazy tool-search deferral in the agent loop. |
| `FLUID_GITHUB_MCP`, `FLUID_SNOWFLAKE_MCP`, `FLUID_DBT_MCP` | Enable delegation to the hosted GitHub, Snowflake and dbt MCP servers. |
| `FLUID_HOSTED_MCP_TIMEOUT_SECONDS` | Per-operation timeout for hosted MCP calls. |
| `FLUID_COPILOT_AGENT_LOOP` | `1`, `true`, `yes` or `on` selects the multi-turn agent loop. Same as `--agent-loop`. The loop also keeps a non-interactive run from picking a coding agent; see [When nothing is configured](./llm-providers.md#when-nothing-is-configured). *On forge-cli `main`, not yet in a release ([forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850)).* |
| `FLUID_COPILOT_AGENT_LOOP` | `1`, `true`, `yes` or `on` selects the multi-turn agent loop. Same as `--agent-loop`. *(since 0.29.0, [forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850))* The loop also keeps a non-interactive run from picking a coding agent; see [When nothing is configured](./llm-providers.md#when-nothing-is-configured). *(since 0.29.0, [forge-cli #854](https://github.com/Agenticstiger/forge-cli/pull/854))* It passes over a coding agent that `fluid ai setup` saved, too. |
| `FLUID_COPILOT_JUDGE`, `FLUID_COPILOT_ENRICHMENT`, `FLUID_JUDGE_SELF_CRITIQUE`, `FLUID_COPILOT_SELF_EVAL`, `FLUID_COPILOT_CHECKPOINT`, `FLUID_COPILOT_PII_CLASSIFIER` | On by default; `0`, `false`, `no` or `off` skips that stage. |
| `FLUID_COPILOT_POST_SYNTHESIS`, `FLUID_COPILOT_EPISODIC_MEMORY` | On by default; only the value `0` turns them off. |
| `FLUID_COPILOT_SEMANTIC_MEMORY` | Opts in to semantic-memory writes and lookups. |
Expand Down Expand Up @@ -297,7 +297,7 @@ Read by `fluid mcp output-port`; see [MCP](./mcp.md).
| `FLUID_STORE_VECTOR_BACKING` | Backing store of the `vector` backend: `file` (default), `sqlite` or `postgres`. |
| `FLUID_SECRETS_INMEMORY` | `1` keeps `fluid secrets` values in memory instead of the OS keychain. Tests only. |
| `FLUID_ENCRYPTION_KEY`, `FLUID_ENCRYPTION_PASSPHRASE` | Fernet key, or a passphrase it is derived from, for the encrypted credential store. |
| `FLUID_ALLOW_PLAINTEXT_AI_SECRETS` | Legacy plaintext fallback for AI provider secrets. *On forge-cli `main`, not yet in a release ([forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852)).* It also lets `fluid ai setup` save a `user:password@` in an address, such as an Ollama host, to `~/.fluid/ai_config.json`; without it the address is saved without them. |
| `FLUID_ALLOW_PLAINTEXT_AI_SECRETS` | Legacy plaintext fallback for AI provider secrets. *(since 0.29.0, [forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852))* It also lets `fluid ai setup` save a `user:password@` in an address, such as an Ollama host, to `~/.fluid/ai_config.json`; without it the address is saved without them. |
| `FLUID_ALLOW_PLAINTEXT_SOURCE_SECRETS` | Legacy plaintext secrets in `sources.yaml`; the file must also be mode 600. |

## Marketplace
Expand Down
2 changes: 1 addition & 1 deletion docs/advanced/error-codes.md
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ The `fluid generate iac` and `fluid apply` runs print the refusal and exit befor

### copilot_no_llm_provider

*On forge-cli `main`, not yet in a release ([forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852)).* `ERR_COPILOT_NO_LLM_PROVIDER`. The documentation link lands on [Production troubleshooting](./production-troubleshooting.md), where [No LLM provider is selected](./production-troubleshooting.md#no-llm-provider-is-selected) explains each message.
*(since 0.29.0, [forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852))* `ERR_COPILOT_NO_LLM_PROVIDER`. The documentation link lands on [Production troubleshooting](./production-troubleshooting.md), where [No LLM provider is selected](./production-troubleshooting.md#no-llm-provider-is-selected) explains each message.

- Pass --llm-provider, for example anthropic, openai, gemini or ollama
- Or set FLUID_LLM_PROVIDER, or the API key of exactly one provider
Expand Down
2 changes: 1 addition & 1 deletion docs/advanced/litellm-backend.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ If you point LiteLLM at a model the catalog doesn't know, the run-start banner s
## Caveats

- Tool-use behaviour matches LiteLLM's wrapper. Provider failures surface as the typed errors described in [Typed Errors](./typed-errors.md) (`RateLimitError`, `ContextOverflowError` and the others).
- *On forge-cli `main`, not yet in a release ([forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850)).* Forge's Ollama calls go to `OLLAMA_HOST` whatever its host. See [The Ollama endpoint](./llm-providers.md#the-ollama-endpoint). *On forge-cli `main`, not yet in a release ([forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852)).* The probe for a running Ollama, model discovery and the interactive Ollama setup follow it too; before #852 they stayed on `localhost`.
- *(since 0.29.0, [forge-cli #850](https://github.com/Agenticstiger/forge-cli/pull/850))* Forge's Ollama calls go to `OLLAMA_HOST` whatever its host. See [The Ollama endpoint](./llm-providers.md#the-ollama-endpoint). *(since 0.29.0, [forge-cli #852](https://github.com/Agenticstiger/forge-cli/pull/852))* The probe for a running Ollama, model discovery and the interactive Ollama setup follow it too; through 0.28.0 they stayed on `localhost`.

## See also

Expand Down
Loading
Loading