Repository navigation
feat(assistant): add tools, skills, hooks and plugins to the assistant - #81
Merged
Merged
Conversation
…ugins Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JroZmoXJUKvyfkvDYvmbka
…ead access Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JroZmoXJUKvyfkvDYvmbka
…nly from oneself or an admin Admins see every extension but their assistant runs only theirs and shared ones; only admins share with everyone; other people's hooks run only when an admin shared them; extensions follow the conversation's scope. Manifests with YAML dates or a bad namespaces list get a 400, single-letter parameters are allowed, and a web tool's arguments can't change its host. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JroZmoXJUKvyfkvDYvmbka
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JroZmoXJUKvyfkvDYvmbka
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.
Requested by Adeel · project thread
Description
Before: the assistant could only use its built-in tools.
After: people can add extensions to it. There are four kinds:
changewaits for an approval card.use_skillonly when it applies.message,before_tool,after_tooloranswer, a hook can add context, block a tool or call a tool.Each extension is versioned and shared private / namespace / everyone, the same way custom nodes are. You can write one as code (Markdown with frontmatter, YAML or JSON), export it again, check it without saving, and try it.
ai.extensionsturns all of them off. Nothing is on until someone creates one, so the assistant behaves as before.How:
app/domain/extensions.pyholds the registry, manifests and runtime, and/api/v1/extensionsis the API. The chat Toolbox offers the tools that are switched on, runs hooks around every tool call, and lists the skills in the system prompt. Approved extension tools run the exact version that was proposed. Web tools go through the same netguard as web capture, so they can reach public addresses only.This is the first of five PRs. The others are code tools in a sandbox, canvas tool graphs, authoring from chat and voice, and an Extensions page. The plan is in DEVLOG.md.
Motivation and Context
Adeel wants the assistant to be customizable to the same level through code, the canvas, voice or chat.
Types of changes
Checklist:
tests/api/test_extensions.py). The full backend suite passes: 373 passed. The one failure is the LibreOffice conversion test, which fails in this environment for reasons unrelated to this change.pnpm tscpasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01JroZmoXJUKvyfkvDYvmbka
Generated by Claude Code