* feat(github-copilot-sdk): add workspace skills support - Introduce ENABLE_WORKSPACE_SKILLS valve to enable/disable workspace custom tools discovery - Modify _build_session_config() to auto-load tools from .copilot-skills/ directory - Add workspace_skills_example.py template with 3 working example tools - Update README.md and README_CN.md with Workspace Skills guide and usage examples - Create v0.9.0.md and v0.9.0_CN.md release notes - Sync version to all docs files (index.md, index.zh.md, and main docs) - Bump version from 0.8.0 to 0.9.0 across all 7+ locations * docs: establish temp files handling policy (project-based, not /tmp) - Add TEMP_FILES_POLICY.md guideline for all skills and workflows - Update pr-submitter skill to use .temp/ directory instead of /tmp - Update release-prep skill documentation with temp file convention - Add .temp/ and .build/ entries to .gitignore - Create internal policy memo in /memories/repo/ This policy ensures: - All temporary files stay within project workspace (not system /tmp) - Alignment with OpenWebUI workspace isolation principles - Multi-user safety and cleanup traceability - Consistent handling across all skills and development workflows * fix(terminology): rename 'workspace skills' to 'workspace custom tools' for accuracy The term 'Skills' in Anthropic context refers to instruction-based frameworks (SKILL.md files with YAML frontmatter + markdown), not custom tool functions. Our implementation uses @define_tool decorator to define custom tools that the SDK auto-discovers from .copilot-skills/ directory. These are Tools, not Skills. Changes: - Rename ENABLE_WORKSPACE_SKILLS valve -> ENABLE_WORKSPACE_TOOLS - Update all documentation (README, README_CN, docs, release notes) - Fix section headings and descriptions throughout - Ensure consistent terminology across all files This is a terminology-only change; functionality remains identical. * feat(pipes): release v0.9.0 of GitHub Copilot SDK Pipe - Integrated OpenWebUI Skills Bridge and manage_skills tool - Reinforced status bar stability with session_finalized logic - Added persistent SDK config directory support * docs(pipes): add comprehensive guides and v0.9.0 notes for Copilot SDK - Added skill manager and best practices guides - Added publishing tool documentation - Included v0.9.0 release notes and deployment script - Updated usage guides
2.1 KiB
2.1 KiB
📤 publish_file_from_workspace Tool Guide
This document explains the recommended usage contract of the built-in publish_file_from_workspace tool in the GitHub Copilot SDK Pipe.
Tool Purpose
Use this tool when the agent has generated a file in the current workspace and needs to:
- Save the file into OpenWebUI file storage.
- Return stable links for preview and download.
- Keep rendering behavior consistent across local disk and object storage backends.
Required Input
filename: Relative filename under current workspace.- ✅ Example:
report.xlsx - ✅ Example:
output/summary.html - ❌ Avoid temporary paths outside workspace (e.g.
/tmp/...).
- ✅ Example:
Output Contract
The tool typically returns structured fields used by the pipe to build user-facing links:
filenamedownload_urlpreview_url(if preview is available)- metadata used by renderer (including optional
html_embedfor HTML previews)
Embed Modes
1) artifacts (default)
- Message should include
[Preview]+[Download]links. - For HTML-capable content,
html_embedmay be rendered in a ```html block. - Best for inline interactive previews in chat.
2) richui
- Message should include
[Preview]+[Download]links. - Integrated preview is emitted by Rich UI renderer automatically.
- Do not output iframe/html preview block in chat body.
PDF Safety Rule (Mandatory)
For PDF files, always output markdown links only:
[Preview](...)[Download](...)(if available)
Do NOT embed PDFs with iframe or raw HTML blocks.
Recommended Workflow
- Generate file in workspace.
- Call
publish_file_from_workspace(filename=...). - Return links according to selected embed mode.
- Follow PDF safety rule for any
.pdfoutput.
Practical Example
Example A: HTML report (artifacts)
- Publish
analysis.html. - Return links.
- Allow
html_embedblock rendering for direct preview.
Example B: PDF report
- Publish
audit.pdf. - Return links only.
- Skip iframe/html embedding entirely.