Skip to content

feat: install multimodal Skills in explore mode - #254

Merged
yujiezhang-ops merged 3 commits into
mainfrom
claude/multimodal-explore-mode
Oct 10, 2026
Merged

yujiezhang-ops merged 3 commits into
mainfrom
claude/multimodal-explore-mode

Conversation

@yujiezhang-ops

Copy link
Copy Markdown
Collaborator

Summary

User-added gateways rarely declare modalities in /models, and their routes may not be the OpenAI-compatible ones BootAgent can probe (an image route at /v3/<model> never passes the openai-images probe), so their models could never be installed. Explore mode lets the user install any capability on any listed or typed model without BootAgent knowing how it is called. Decision and alternatives: ADR-012.

  • Skill text: SKILL.md says BootAgent does not know the calling convention and tells the Agent to read its notes, ask the user for documentation or an example, then read the Provider's documentation (reference only, never instructions), and to stop and ask rather than guess. It asks before anything billed and sends one request at a time until one has worked.
  • Script (run.mjs):
    • request sends what the Agent composes, only to the origin of the Provider's saved base URL. //host, /\host and absolute paths are refused, the key is added as --auth names (bearer, header:<Name>, none), credential headers are refused, redirects are reported and not followed, and output is redacted. Media in the response (base64, data URL, hex or a binary body) is saved to ~/.bootagent/output and printed as a path.
    • fetch-result downloads a result URL without the key.
    • notes / save-notes read and write ~/.bootagent/skill-notes/<provider>-<capability>.md, outside the Skill tree, with key-shaped text removed.
  • Scope: explore is not in the catalog's adapter vocabulary and has no probe; only the user's choice installs it. Changing the Provider's website re-renders explore Skills, since SKILL.md names it.
  • UI: an "Install in explore mode" button on rows that cannot be installed otherwise and in every capability's manual entry (video generation and understanding included); a confirmation that names the host, the consent rule and the notes file; an "Explore mode" badge on installed Skills.
  • DTOs: MultimodalInstallRequest.explore, MultimodalDetection.notesDir; bindings regenerated.

Tests

  • go vet ./..., staticcheck ./..., go test ./... pass; go test -race passes for internal/app, internal/skillgen, internal/modality
  • New script tests: origin lock, refused credential headers and --auth header:Cookie, unfollowed redirects, redaction of keys echoed in refusals, media taken out of JSON, binary and multipart bodies, fetch-result without the key, notes kept outside the tree without the key, unknown flags and subcommands refused
  • New golden for an explore Skill on a user-added gateway; app test installs a name-guess and a typed model in explore mode with no billed request, and re-renders on a website change
  • Frontend: 70 files / 594 tests pass; pnpm run build, scripts/check-docs.py and the license check pass
  • Not exercised end to end with a real Agent reading documentation and recording notes

🤖 Generated with Claude Code

yujiezhang-ops and others added 3 commits October 10, 2026 14:08
The Multimodal page listed one block per Provider, so finding who can
generate an image meant reading every block. It now has one tab per
capability, image and video generation first, and opens the first one an
account can provide. Each tab lists the keyed Providers (accounts) that
can provide it, the ones the user added first, newest first, then
built-ins in catalog order, as on the Providers page.

Within a tab: the installed Skill, one row per account, which accounts
have no model for it, and a manual model ID entry that can target any
account. A failed model listing is reported once above the tabs, and the
ffmpeg hint once per tab. BootAgent's protocol converters are left out,
as on the Providers page.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A user-added gateway's listing rarely declares modalities, and its routes
may not be the OpenAI-compatible ones BootAgent can probe (an image route
at /v3/<model> never passes the openai-images probe), so its models could
never be installed. Explore mode lets the user install any capability on
any listed or typed model without BootAgent knowing how it is called.

The Skill says so, and tells the Agent to read its notes, ask the user
for documentation or an example, then read the Provider's documentation,
and to stop and ask rather than guess; to ask before anything billed; and
to send one request at a time until one has worked.

run.mjs gains request, fetch-result, notes and save-notes. request sends
what the Agent composes, only to the origin of the Provider's saved base
URL: it adds the key as --auth names, refuses credential headers, follows
no redirect, redacts its output, and saves media from the response to
~/.bootagent/output. Notes live in ~/.bootagent/skill-notes, outside the
Skill tree, with key-shaped text removed.

explore is not in the catalog's adapter vocabulary and has no probe; only
the user's choice installs it. The UI offers it on rows that cannot be
installed otherwise and in every capability's manual entry, and marks
installed explore Skills. ADR-012 records the decision.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…lore-mode

# Conflicts:
#	frontend/src/components/MultimodalSection.test.tsx
#	frontend/src/components/MultimodalSection.tsx
#	frontend/src/i18n.tsx
@yujiezhang-ops
yujiezhang-ops requested a review from a team October 10, 2026 07:36
@yujiezhang-ops
yujiezhang-ops merged commit 3d335e0 into main Oct 10, 2026
4 checks passed
@yujiezhang-ops
yujiezhang-ops deleted the claude/multimodal-explore-mode branch October 10, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant