4.0 KiB
4.0 KiB
| title | state | created_at | updated_at | assignee | readiness | risk_flags | queued_by | queued_at | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Plugin: register enabled Tool surface from packages | closed | 2026-06-15T14:48:59Z | 2026-06-17T05:44:04Z | null | implementation_ready |
|
workspace-panel | 2026-06-15T15:53:32Z |
Background
Plugin package discovery / explicit enablement resolver の次に、enabled Plugin package から Tool surface を読み取り、通常の ToolRegistry に登録できるようにする。
この Ticket の目的は、Plugin package 由来の Tool 定義が Yoi の既存 Tool 経路に安全に乗る境界を作ること。Plugin code execution / WASM runtime はまだ行わない。Tool が model-visible schema として見えるか、enablement なしでは出ないか、invalid / duplicate な Tool 定義が fail closed になるかを先に固める。
Requirements
00001KV5R5V2Sの resolved Plugin metadata を入力として扱う。- Enabled Plugin package の manifest から Tool surface 定義を読み取る。
- tool name
- description
- input schema
- effect / side-effect metadata
- plugin origin metadata
- Plugin Tool definition を既存
ToolRegistry登録経路に載せる。- model-visible schema は通常 Tool と同じ原則に従う。
- feature/profile config で disabled なら schema surface から消える。
- Tool metadata に Plugin origin を保持する。
- plugin id / ref
- package source: user / project / builtin
- package digest
- package version / api version
- surface: tool
- Duplicate Tool name は fail closed にする。
- builtin Tool / other Plugin Tool との衝突を検出する。
- どちらが勝つかを曖昧にしない。
- Invalid input schema / unsupported schema shape は fail closed にする。
- Package が discovered されただけでは Tool を登録しない。
- explicit enablement が必要。
- Tool call / result は後続 runtime Ticket で実装する。
- この Ticket では未実行 Tool として registration boundary を作る。
- 実行できない状態を user-visible diagnostic として安全に扱う。
- Diagnostics は bounded にする。
- registered
- skipped: not enabled
- rejected: duplicate name
- rejected: invalid schema
- rejected: unsupported surface/api
- rejected: missing runtime executor
Acceptance criteria
- Enabled Plugin package の Tool definition が
ToolRegistryに登録され、model-visible tools に現れる。 - Enablement がない Plugin package の Tool は model-visible tools に現れない。
- Duplicate Tool name は登録されず、diagnostic で理由が分かる。
- Invalid input schema は登録されず、diagnostic で理由が分かる。
- Registered Plugin Tool の metadata から plugin origin / digest / source が追跡できる。
- Feature/profile flag により Plugin Tool surface を非表示にできる。
- Tool call がまだ実行できない場合も panic せず、安全な unavailable/runtime-missing error になる。
- Tests cover:
- enabled package Tool registration
- package without enablement does not register
- duplicate Plugin Tool name rejected
- builtin Tool name collision rejected
- invalid schema rejected
- plugin origin metadata retained
- disabled feature/profile removes schema surface
- Validation: focused plugin/tool-registry tests,
cargo fmt --check, relevantcargo check/cargo test,git diff --check.
Non-goals
- Plugin code execution.
- WASM runtime.
https/fshost API.- Service / Ingress surface.
- External side effects.
- Permission grant enforcement beyond registration-time shape checks.
Related work
00001KV5R5V2S— Plugin package discovery and explicit enablement resolver.00001KV5W3PHW— Plugin Tool execution with minimal WASM runtime.00001KV5W3PJ3— Plugin permission grant enforcement.00001KSXRQ4G8— Plugin runtime / surface / host API model design.