Skip to content

feat: agent skills runtime for LibreChat agents#2

Closed
djuillard wants to merge 2 commits into
mainfrom
feat/agent-skills-runtime
Closed

feat: agent skills runtime for LibreChat agents#2
djuillard wants to merge 2 commits into
mainfrom
feat/agent-skills-runtime

Conversation

@djuillard
Copy link
Copy Markdown

Summary

  • LibreOffice (Writer + Calc), qpdf, fonts added to Dockerfile for DOCX/XLSX/PDF agent support
  • Anthropic DOCX/XLSX/PPTX skills embedded at /opt/skills/ with XSD schemas, validators, helpers, and templates
  • Custom tracked_replace.py implementing Word tracked changes (<w:del>/<w:ins>) with formatting preservation
  • markitdown[pptx], pptxgenjs, pdfplumber, pypdf, docx (Node) added as new dependencies
  • SKILLS_ROOT=/opt/skills env var injected in all sandbox executions
  • nsjail config updated with read-only mounts for skills, fonts, and LibreOffice config
  • NODE_PATH fixed to include /usr/lib/node_modules
  • pdfminer version conflict resolved for pdfplumber compatibility
  • Smoke tests (52 checks) and documentation (docs/AGENT_SKILLS.md)

Agents supported

Agent Key Deps Skills Dir
Word DOCX Complete LibreOffice, pandoc, python-docx, lxml /opt/skills/docx/
PowerPoint PPTX LibreOffice, python-pptx, pptxgenjs, markitdown /opt/skills/pptx/
Excel/XLSX LibreOffice Calc, openpyxl, pandas /opt/skills/xlsx/
PDF qpdf, pdfplumber, pypdf, tesseract, poppler-utils
Quick Edits (FFmpeg) ffmpeg, ffprobe, Pillow
Data Analysis and Viz pandas, numpy, matplotlib, seaborn, scipy

Test plan

  • Docker build succeeds (code-interpreter:agent-skills, 8.64 GB)
  • Smoke tests: 52/52 passed
  • tracked_replace.py functional test passed
  • LibreOffice 24.2.7.2 operational in container
  • Integration test with running LibreChat instance
  • Verify sandbox execution via /exec endpoint with skill scripts

Generated with Claude Code

Damien and others added 2 commits April 15, 2026 00:51
Add LibreOffice, qpdf, fonts, skills scripts, and sandbox configuration
to support 6 specialized LibreChat agents (DOCX, XLSX, PDF, Quick Edits,
Data Analysis, YouTube Assistant).

Key changes:
- Install LibreOffice Writer+Calc, qpdf, fonts in Dockerfile
- Embed Anthropic DOCX/XLSX skills + custom tracked_replace.py at /opt/skills
- Expose SKILLS_ROOT=/opt/skills in sandbox environment
- Add nsjail mounts for /opt/skills, /etc/fonts, /etc/libreoffice
- Fix NODE_PATH to include /usr/lib/node_modules
- Fix pdfminer version conflict for pdfplumber compatibility
- Add pdfplumber, pypdf, Node.js docx package
- Add smoke tests and documentation

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Embed Anthropic PPTX skill at /opt/skills/pptx (symlink to shared office/)
- Add markitdown[pptx] Python package for document→markdown conversion
- Add pptxgenjs Node.js package for PowerPoint generation
- Update smoke tests and documentation

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
@djuillard
Copy link
Copy Markdown
Author

Pas besoin de merge dans main à ce stade. Les commits resteront pour le moment dans la branche feat/agent-skills-runtime.

@djuillard djuillard closed this Apr 15, 2026
djuillard pushed a commit that referenced this pull request Apr 21, 2026
Bumps node from 20-alpine to 25-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 25-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant