Files
YMhut-box-C-/docs/plugins/AI-INTEGRATION.md
T
QWQLwToo f59190251d
build-winui / winui (push) Has been cancelled
Add project metadata and docs
2026-06-26 13:26:40 +08:00

64 lines
2.4 KiB
Markdown

# Plugin Specification For AI Implementers
This document is the compact contract for generating YMhut Box plugins with another AI agent.
## Build A Minimal Local Package
Create exactly the files needed for a runnable local package:
- `ymhut.plugin.json`
- `README.md`
- `index.html`
- `style.css`
- `main.js`
Keep UI code and core logic local. Do not load remote scripts as runtime dependencies. Remote HTTP APIs are allowed only through declared permissions and graceful failure states.
## Manifest Rules
- Use a stable `id` with letters, numbers, `.`, `-`, or `_`.
- Do not prefix the id with `plugin:`.
- Include at least one `ToolboxTool` or `NavPage` surface.
- Include every local file in `resources`, including `README.md`.
- Request only permissions the plugin actually uses.
- Explain every requested permission in `README.md`.
## Runtime Bridge
Use `window.ymhut` for host abilities:
- `output.*` for reports and summaries.
- `storage.*` for plugin-private state.
- `http.fetch` for http/https requests.
- `network.*` for host network diagnostics.
- `clipboard.*` and `file.*` only when clearly user initiated.
- `openExternal(url)` for links, which opens the YMhut safe browser by default.
- `openExternal(url, { target: "system" })` only for an explicit system-browser action.
## UI And Window Boundaries
The plugin page owns only its WebView content area. Do not mimic system title bars, cover host controls, or create invisible click layers. Avoid full-screen fixed overlays; if a modal is necessary, provide a visible close control and restore focus.
Design for both embedded and independent-window use. Use responsive grids, readable card density, clear loading states, empty states, and error states. The host output area should not be used as the primary UI.
## Security Constraints
Do not modify or override:
- `server/`
- built-in app assets
- developer/about identity
- built-in tool IDs
- paths outside the plugin directory
All plugin resources must resolve inside the plugin folder. File access must go through host file pickers; never assume arbitrary filesystem access.
## Acceptance Checklist
- Plugin scans without validation errors.
- README explains features, permissions, boundaries, and known failures.
- Main UI runs without network and shows a useful degraded state.
- Output writes do not hide the main UI.
- Links open in the safe browser by default.
- No remote scripts, no unbounded z-index overlays, no hidden click blockers.