Skip to content
This repository was archived by the owner on Oct 1, 2026. It is now read-only.

Add save_skill client function call - #63

Merged
andrewkenreich merged 2 commits into
mainfrom
feat/add-skill-with-ai
Aug 18, 2026
Merged

andrewkenreich merged 2 commits into
mainfrom
feat/add-skill-with-ai

Conversation

@DidierRLopes

@DidierRLopes DidierRLopes commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Stacked PR: based on #64 (repo hygiene needed for green CI). Merge that first — GitHub retargets this PR automatically and the diff here contains only the feature.

Part of the cross-repo "save this as a skill" feature: users can ask the copilot to save the current conversation's workflow as a reusable skill in their Workspace skill library.

What this PR does

  • Adds "save_skill" to the closed FunctionCallSSEData.function Literal in openbb_ai/models.py, allowing agents to emit a copilotFunctionCall SSE that asks the Workspace client to save a skill. This follows the exact precedent of get_skill_content (Skills model #52).
  • Bumps the package version to 2.2.0.

Protocol flow enabled by this change

  1. The agent (openbb-ada) yields FunctionCallSSE(function="save_skill", input_arguments={"name", "instructions"}) and closes the stream.
  2. The Workspace frontend generates the skill from the conversation, saves it, and re-POSTs /query with an LlmClientFunctionCallResultMessage carrying a ClientCommandResult ({"skill": {"slug", "description"}} on success).
  3. The agent confirms the save to the user.

⚠️ Version note

PR #61 (durable conversation summaries) also bumps to 2.2.0. Whichever of the two merges second must bump to 2.3.0 before release.

Companion PRs — review/test together

This PR only extends the protocol; the behavior lives in the companion PRs and needs all three to test end-to-end:

Release ordering: merge + publish this package to PyPI first (ada's ^2.1.0 caret accepts 2.2.0, but ada CI/Docker installs from PyPI, so the ada PR's new Literal value fails validation until 2.2.0 is published) → then openbb-ada → terminalpro can go before or alongside ada.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KocxNUyBQT8K8qTduX7Gyu

ruff 0.16 (installed unpinned in CI) now formats Python code blocks
inside Markdown files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KocxNUyBQT8K8qTduX7Gyu
Adds "save_skill" to the FunctionCallSSEData.function Literal so agents
can ask the OpenBB Workspace client to save the current conversation's
workflow as a reusable skill in the user's skill library.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KocxNUyBQT8K8qTduX7Gyu
@DidierRLopes
DidierRLopes changed the base branch from main to chore/ruff-016-readme-format August 2, 2026 22:13
@DidierRLopes
DidierRLopes force-pushed the feat/add-skill-with-ai branch from 63cd43e to 74dd77c Compare August 2, 2026 22:13
@DidierRLopes
DidierRLopes requested a review from piiq August 3, 2026 01:28
@DidierRLopes
DidierRLopes changed the base branch from chore/ruff-016-readme-format to main August 3, 2026 01:28
@andrewkenreich
andrewkenreich merged commit 9a2f099 into main Aug 18, 2026
4 checks passed
@andrewkenreich
andrewkenreich deleted the feat/add-skill-with-ai branch August 18, 2026 17:41
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants