Config-free env mode, model recommendations, and provider docs#102
Conversation
Run Explorbot without an explorbot.config.js via EXPLORBOT_* variables. EXPLORBOT_AI_PROVIDER selects a provider and fills every role from its recommended models; EXPLORBOT_AI_MODEL pins the main model (a model id for that provider, or a standalone provider/model-id). Recommended models live in models.json, read at runtime (a bare provider name resolves through it) and shipped with the npm package. Each provider's config block in docs/basics/providers.md is generated from models.json by `bunosh docs:models`, verified in CI on release; a NOTE is emitted when a provider lacks a role. Adds Mistral as a provider. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Explorbot Self-RegressionCommit
Attempt details
Session analysis — basic (native): Session AnalysisThe Issues feature supports CRUD operations (create, read), search, and filtering by status and label. Core flows work: creating issues, searching by keyword, filtering by status/labels, and clearing filters all function correctly. The main friction point is an inconsistent form selector that caused retries during issue creation. Coverage
What works
Execution Issues
|
…d docs EXPLORBOT_ENV_VARS in src/config.ts is the one place every environment variable is declared. The CLI renders it into help text on the root command and every subcommand (both boats included), so an agent running any `--help` discovers the full set. `bunosh docs:env` generates the tables in agentic-usage.md and commands.md from the same list, verified in CI on release. Adds EXPLORBOT_NO_BANNER, which was undocumented. Two tests guard the registry against drift in either direction. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs:models and docs:env become one docs:sync command with two non-exported helpers, so CI runs a single verification step. Signals staleness by throwing instead of calling process.exit, matching how regression:all already reports failure. A failed task() cannot be used for this: bunosh's test-environment guard checks `typeof Bun?.jest !== 'undefined'`, which is always true under Bun, so task failures never set exit code 1 here. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
One task per generated file, so a stale doc is reported by name. stopOnFail aborts the run at the first failure instead of accumulating a stale list and branching on it afterwards. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
||
| function buildExplorBotOptions(from: string | undefined, options: CLIOptions): ExplorBotOptions { | ||
| const sessionFile = options.session === true ? path.join(path.resolve(options.path || process.cwd()), 'output', 'session.json') : options.session; | ||
| const sessionDir = process.env.EXPLORBOT_OUTPUT ? path.resolve(process.env.EXPLORBOT_OUTPUT) : path.join(path.resolve(options.path || process.cwd()), 'output'); |
There was a problem hiding this comment.
EXPLORBOT_OUTPUT is applied before determining whether config-free mode is active, so it changes the default --session path even when a config file is present
Need scope this override to env-config mode or derive the session path from the resolved config
| - **Experience is not written.** Nothing accumulates between runs, so a run is reproducible. Reading existing experience still works if the directory has any. | ||
| - **The Historian is off.** No generated CodeceptJS or Playwright test files. Plans and reports are still written. | ||
|
|
||
| For a long-lived agent that should learn across runs, point `EXPLORBOT_OUTPUT` at a stable directory or switch to a real config file. |
There was a problem hiding this comment.
env mode always sets experience.disabled: true
Remove this suggestion or enable experience writing when persistent output is explicitly requested.
What
Run Explorbot without an
explorbot.config.jsand keep the recommended models in one place.Config-free environment mode
Set
EXPLORBOT_*variables and Explorbot builds a config from the environment when no config file is found (a config file always wins). For CI one-liners, demos, and coding agents.EXPLORBOT_AI_PROVIDER— a provider name; fills every role from its recommended models.EXPLORBOT_AI_MODEL— pins the main model (a model id for the provider, or a standaloneprovider/model-id).EXPLORBOT_VISION_MODEL/EXPLORBOT_AGENTIC_MODELoverride those roles;EXPLORBOT_URL,EXPLORBOT_OUTPUT,EXPLORBOT_KNOWLEDGE[_FILE],EXPLORBOT_API_SPECround it out.Config-free runs write to a temp dir, disable experience writing (
experience.disabled), and turn the Historian off, so nothing is left in the project.Model recommendations as a single source
models.jsonholds the recommendedmodel/visionModel/agenticModelper provider. It is read at runtime (a bare provider name resolves through it) and ships with the npm package.Generated provider docs
Each provider's
export defaultconfig block indocs/basics/providers.mdis generated frommodels.jsonbybunosh docs:modelsand verified in CI on release (--check). A> [!NOTE]is emitted when a provider is missing a role.Mistral
Added as a supported provider —
mistral-small-latestformodel/visionModel(reads screenshots),mistral-large-latestforagenticModel.Notes
bun test tests/unit/— 836 pass.🤖 Generated with Claude Code