Repository navigation
Conversation
- Introduced `republic` module to manage media types and user content. - Updated tests to validate new prompt structure and legacy content conversion. - Modified `build_prompt` to return a list of `UserContent` instead of legacy formats. - Enhanced documentation to reflect changes in prompt handling and hook signatures. - Adjusted various tests to ensure compatibility with new prompt formats and legacy support. Signed-off-by: Frost Ming <me@frostming.com>
Older Bub versions recorded tool calls as
{"id", "type": "function", "function": {"name", "arguments"}}, which
republic.Message.from_dict rejects with KeyError: 'name', so sessions
with such tapes could not build their context. Convert them to
Republic's form in to_message, next to the other legacy conversions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Send User-Agent: bub/{version} instead of Republic's default through
AgentSettings.model_client_kwargs, used by the model runner, code mode
and onboarding. A User-Agent in client_args.headers still wins.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Add a stdlib `republic` module to run_code: media classes, messages, get_model() (chat and stream), get_embedding_model() and get_decision_model(). Model calls are proxied to Bub, which uses its provider settings and credentials; they never reach the code. - Add code-only tools attach_image/attach_audio/attach_video that accept republic media or a path/URL/data URL and attach it to the run_code result, sent to the model as a multimodal tool message. - Add content results (bub.tools.content_result) for tool results with media; spilling bounds only their text. - Add Environment.read_bytes with a default that runs the environment's python. - Document the republic module in the code mode stub and prompt. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bub | 48a4b7c | Commit Preview URL Branch Preview URL |
Oct 14 2026, 02:40 AM |
Signed-off-by: Frost Ming <me@frostming.com>
* refactor: use Republic for builtin models and authentication
* refactor: consume native model outputs
* refactor: delegate request extras to Republic
* refactor: simplify builtin options and naming
* chore: use Republic 0.6 preview
* Refactor prompt handling and improve compatibility with legacy content
- Introduced `republic` module to manage media types and user content.
- Updated tests to validate new prompt structure and legacy content conversion.
- Modified `build_prompt` to return a list of `UserContent` instead of legacy formats.
- Enhanced documentation to reflect changes in prompt handling and hook signatures.
- Adjusted various tests to ensure compatibility with new prompt formats and legacy support.
Signed-off-by: Frost Ming <me@frostming.com>
* fix: replay Chat Completions tool calls from older tapes
Older Bub versions recorded tool calls as
{"id", "type": "function", "function": {"name", "arguments"}}, which
republic.Message.from_dict rejects with KeyError: 'name', so sessions
with such tapes could not build their context. Convert them to
Republic's form in to_message, next to the other legacy conversions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: identify Republic model clients as bub/{version}
Send User-Agent: bub/{version} instead of Republic's default through
AgentSettings.model_client_kwargs, used by the model runner, code mode
and onboarding. A User-Agent in client_args.headers still wins.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat: expose republic models and media attachments in code mode (#351)
- Add a stdlib `republic` module to run_code: media classes, messages,
get_model() (chat and stream), get_embedding_model() and
get_decision_model(). Model calls are proxied to Bub, which uses its
provider settings and credentials; they never reach the code.
- Add code-only tools attach_image/attach_audio/attach_video that accept
republic media or a path/URL/data URL and attach it to the run_code
result, sent to the model as a multimodal tool message.
- Add content results (bub.tools.content_result) for tool results with
media; spilling bounds only their text.
- Add Environment.read_bytes with a default that runs the environment's
python.
- Document the republic module in the code mode stub and prompt.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* refactor!: extract an event-driven core agent into bub.core (#356)
* docs: update README to improve clarity and organization of content
Signed-off-by: Frost Ming <me@frostming.com>
* feat: accept republic built-in tools in core Agent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.