@mseep/open-computer-use 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.coderabbit.yaml +25 -0
- package/.dockerignore +95 -0
- package/.env.example +137 -0
- package/.githooks/pre-commit +68 -0
- package/.github/CODEOWNERS +125 -0
- package/.github/ISSUE_TEMPLATE/adr-proposal.md +41 -0
- package/.github/ISSUE_TEMPLATE/bug-report.md +49 -0
- package/.github/ISSUE_TEMPLATE/component-proposal.md +38 -0
- package/.github/ISSUE_TEMPLATE/config.yml +15 -0
- package/.github/ISSUE_TEMPLATE/dependency-proposal.md +59 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
- package/.github/ISSUE_TEMPLATE/nfr-proposal.md +44 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +15 -0
- package/.github/codeql/codeql-config.yml +11 -0
- package/.github/codeql/extensions/security-models/python-sanitizers.model.yml +17 -0
- package/.github/codeql/extensions/security-models/qlpack.yml +7 -0
- package/.github/dependabot.yml +23 -0
- package/.github/security-exceptions.yml +23 -0
- package/.github/workflows/build.yml +420 -0
- package/.github/workflows/codeql.yml +33 -0
- package/.github/workflows/contracts-lint.yml +90 -0
- package/.github/workflows/docs-lint.yml +151 -0
- package/.github/workflows/helm.yml +131 -0
- package/.github/workflows/identity-lint.yml +30 -0
- package/.github/workflows/release-chart.yml +177 -0
- package/.github/workflows/release.yml +95 -0
- package/.github/workflows/security.yml +332 -0
- package/.github/workflows/stale.yml +31 -0
- package/.github/workflows/supply-chain.yml +242 -0
- package/.gitleaks.toml +53 -0
- package/.markdownlint.yaml +51 -0
- package/.semgrepignore +85 -0
- package/.vale/styles/Architecture/ap13-data-class-substrate.yml +12 -0
- package/.vale/styles/Architecture/banned-phrases.yml +23 -0
- package/.vale/styles/Architecture/banned-vocab.yml +23 -0
- package/.vale/styles/Architecture/marketing-tone.yml +19 -0
- package/.vale.ini +18 -0
- package/CHANGELOG.md +411 -0
- package/CLAUDE.md +218 -0
- package/CONTRIBUTING.md +82 -0
- package/Dockerfile +676 -0
- package/LICENSE +98 -0
- package/LICENSE-APACHE +202 -0
- package/LICENSE-MIT +21 -0
- package/NOTICE +36 -0
- package/README.md +516 -0
- package/SECURITY.md +45 -0
- package/THIRD-PARTY-LICENSES.md +14 -0
- package/apt-packages.txt +108 -0
- package/computer-use-server/.dockerignore +13 -0
- package/computer-use-server/Dockerfile +44 -0
- package/computer-use-server/README.md +84 -0
- package/computer-use-server/app.py +1544 -0
- package/computer-use-server/bin/list-subagent-models +449 -0
- package/computer-use-server/cli-defaults/README.md +31 -0
- package/computer-use-server/cli-defaults/codex.json +7 -0
- package/computer-use-server/cli-defaults/opencode.json +18 -0
- package/computer-use-server/cli_adapters/__init__.py +46 -0
- package/computer-use-server/cli_adapters/claude.py +163 -0
- package/computer-use-server/cli_adapters/codex.py +163 -0
- package/computer-use-server/cli_adapters/opencode.py +169 -0
- package/computer-use-server/cli_adapters/result.py +34 -0
- package/computer-use-server/cli_runtime.py +316 -0
- package/computer-use-server/context_vars.py +24 -0
- package/computer-use-server/docker_manager.py +1100 -0
- package/computer-use-server/docs_html.py +12 -0
- package/computer-use-server/mcp_resources.py +170 -0
- package/computer-use-server/mcp_tools.py +1430 -0
- package/computer-use-server/requirements.txt +17 -0
- package/computer-use-server/security.py +50 -0
- package/computer-use-server/skill_manager.py +664 -0
- package/computer-use-server/static/browser-viewer.js +445 -0
- package/computer-use-server/static/chart.umd.js +14 -0
- package/computer-use-server/static/docs.html +203 -0
- package/computer-use-server/static/github-dark.min.css +10 -0
- package/computer-use-server/static/github.min.css +10 -0
- package/computer-use-server/static/highlight.min.js +1213 -0
- package/computer-use-server/static/highlightjs-line-numbers.min.js +1 -0
- package/computer-use-server/static/icons.js +74 -0
- package/computer-use-server/static/jszip.min.js +13 -0
- package/computer-use-server/static/katex/auto-render.min.js +1 -0
- package/computer-use-server/static/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Bold.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Italic.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Math-Italic.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Script-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/computer-use-server/static/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/computer-use-server/static/katex/katex.min.css +1 -0
- package/computer-use-server/static/katex/katex.min.js +1 -0
- package/computer-use-server/static/locale.js +242 -0
- package/computer-use-server/static/mammoth.browser.min.js +21 -0
- package/computer-use-server/static/marked.min.js +6 -0
- package/computer-use-server/static/mermaid.min.js +2811 -0
- package/computer-use-server/static/pdf.min.js +22 -0
- package/computer-use-server/static/pdf.worker.min.js +22 -0
- package/computer-use-server/static/pptxviewjs.min.js +1 -0
- package/computer-use-server/static/preact-htm.min.js +1 -0
- package/computer-use-server/static/preview.css +1030 -0
- package/computer-use-server/static/preview.js +1522 -0
- package/computer-use-server/static/xlsx.full.min.js +22 -0
- package/computer-use-server/static/xterm-addon-fit.min.js +2 -0
- package/computer-use-server/static/xterm-addon-web-links.min.js +2 -0
- package/computer-use-server/static/xterm.css +218 -0
- package/computer-use-server/static/xterm.min.js +2 -0
- package/computer-use-server/system_prompt.py +761 -0
- package/computer-use-server/uploads.py +82 -0
- package/contracts/README.md +53 -0
- package/contracts/audit/audit-fanin.asyncapi.yaml +407 -0
- package/contracts/exec/exec-channel.schema.json +240 -0
- package/contracts/mcp/2025-06-18/ocu-constraints.schema.json +178 -0
- package/contracts/storage/file-artifact-api.schema.json +390 -0
- package/contracts/storage/file-ops.schema.json +217 -0
- package/contracts/storage/mount-config.schema.json +197 -0
- package/cron/Dockerfile +15 -0
- package/cron/cleanup-quick.sh +21 -0
- package/cron/cleanup.sh +127 -0
- package/data/outputs/.gitkeep +0 -0
- package/data/uploads/.gitkeep +0 -0
- package/docker-compose.test.yml +54 -0
- package/docker-compose.webui.yml +77 -0
- package/docker-compose.yml +96 -0
- package/docs/CLOUD.md +29 -0
- package/docs/COMPARISON.md +128 -0
- package/docs/DOCKER.md +469 -0
- package/docs/DYNAMIC-SKILLS.md +77 -0
- package/docs/FEATURES.md +100 -0
- package/docs/INSTALL.md +111 -0
- package/docs/KNOWN-BUGS.md +86 -0
- package/docs/MCP.md +320 -0
- package/docs/SCREENSHOTS.md +39 -0
- package/docs/SKILLS-USER-GUIDE.md +86 -0
- package/docs/SKILLS.md +483 -0
- package/docs/TERMINAL-TAB.md +56 -0
- package/docs/architecture/02-trust-boundaries.md +224 -0
- package/docs/architecture/03-c4-context.md +61 -0
- package/docs/architecture/04-bounded-contexts.md +119 -0
- package/docs/architecture/05-c4-container.md +88 -0
- package/docs/architecture/06-threat-model.md +172 -0
- package/docs/architecture/08-contracts.md +105 -0
- package/docs/architecture/MANIFESTO.md +38 -0
- package/docs/architecture/PROCESS.md +64 -0
- package/docs/architecture/README.md +37 -0
- package/docs/architecture/adr/0000-template.md +65 -0
- package/docs/architecture/adr/0001-layer-0-gate-legacy-exclusion.md +75 -0
- package/docs/architecture/adr/0002-session-view-descriptor.md +57 -0
- package/docs/architecture/adr/0003-sandbox-runtime-tier-ladder.md +63 -0
- package/docs/architecture/adr/0004-operator-authentication-substrate.md +63 -0
- package/docs/architecture/adr/0005-egress-credential-delivery-envoy-sds.md +62 -0
- package/docs/architecture/adr/0006-egress-forward-proxy-substrate.md +65 -0
- package/docs/architecture/adr/0007-egress-auth-mechanism.md +72 -0
- package/docs/architecture/adr/0008-session-egress-attribution.md +59 -0
- package/docs/architecture/adr/0009-audit-pipeline-pluggable-by-contract.md +76 -0
- package/docs/architecture/adr/0010-storage-backend-pluggable-adapter.md +60 -0
- package/docs/architecture/adr/0011-storage-egress-lane.md +67 -0
- package/docs/architecture/adr/0012-implementation-language.md +67 -0
- package/docs/architecture/adr/0020-sandbox-image-provisioning.md +82 -0
- package/docs/architecture/adr/README.md +53 -0
- package/docs/architecture/compliance/.gitkeep +0 -0
- package/docs/architecture/components/00-overview.md +42 -0
- package/docs/architecture/components/0000-template.md +50 -0
- package/docs/architecture/components/01-mcp-gateway.md +80 -0
- package/docs/architecture/components/02-control-operator-api.md +80 -0
- package/docs/architecture/components/04-storage-broker.md +104 -0
- package/docs/architecture/components/05-session-sandbox.md +93 -0
- package/docs/architecture/components/06-egress-trust-edge.md +95 -0
- package/docs/architecture/components/07-audit-pipeline.md +110 -0
- package/docs/architecture/diagrams/.gitkeep +0 -0
- package/docs/architecture/diagrams/02-trust-boundaries.mmd +111 -0
- package/docs/architecture/diagrams/06-threat-model.mmd +41 -0
- package/docs/architecture/diagrams/08-contracts.mmd +47 -0
- package/docs/architecture/diagrams/c4-container.mmd +59 -0
- package/docs/architecture/diagrams/c4-context.mmd +46 -0
- package/docs/architecture/glossary.md +172 -0
- package/docs/architecture/manifesto/.gitkeep +0 -0
- package/docs/architecture/manifesto/01-audience-and-buyer.md +57 -0
- package/docs/architecture/manifesto/02-nfrs.md +325 -0
- package/docs/architecture/manifesto/03-non-negotiables.md +35 -0
- package/docs/architecture/manifesto/04-non-goals.md +23 -0
- package/docs/architecture/manifesto/05-licensing-posture.md +61 -0
- package/docs/architecture/manifesto/06-starter-mode-policy.md +49 -0
- package/docs/architecture/manifesto/07-governance.md +60 -0
- package/docs/architecture/primitives-backlog.md +51 -0
- package/docs/architecture.svg +117 -0
- package/docs/claude-code-gateway.md +173 -0
- package/docs/cli-config-templates.md +240 -0
- package/docs/data-flow.svg +72 -0
- package/docs/demo-landing-page.gif +0 -0
- package/docs/demo-qwen-trending.gif +0 -0
- package/docs/dynamic-skills.svg +77 -0
- package/docs/file-flow.svg +126 -0
- package/docs/future-architecture/README.md +152 -0
- package/docs/future-architecture/adr/0001-control-plane-language-go.md +80 -0
- package/docs/future-architecture/adr/0002-guest-agent-language-go.md +84 -0
- package/docs/future-architecture/adr/0003-docker-poc-first-then-k8s.md +37 -0
- package/docs/future-architecture/adr/0004-pluggable-runtime-via-runtimeclass.md +34 -0
- package/docs/future-architecture/adr/0005-mcp-as-control-plane-gateway.md +34 -0
- package/docs/future-architecture/adr/0006-no-agpl-no-bsl-dependencies.md +41 -0
- package/docs/future-architecture/adr/0007-superseded-by-future-architecture.md +37 -0
- package/docs/future-architecture/adr/0008-internal-grpc-external-rest-mcp.md +106 -0
- package/docs/future-architecture/adr/0009-external-protocol-dialects.md +94 -0
- package/docs/future-architecture/adr/0010-lambda-as-inspiration-not-runtime.md +86 -0
- package/docs/future-architecture/adr/0011-kata-as-first-class-dind-runtime.md +84 -0
- package/docs/future-architecture/antipatterns.md +552 -0
- package/docs/future-architecture/architecture/01-layers.md +109 -0
- package/docs/future-architecture/architecture/02-layer4-control-plane.md +122 -0
- package/docs/future-architecture/architecture/03-layer3-providers.md +174 -0
- package/docs/future-architecture/architecture/04-layer2-runtimes.md +114 -0
- package/docs/future-architecture/architecture/04b-credential-broker.md +153 -0
- package/docs/future-architecture/architecture/05-layer1-guest-agent.md +138 -0
- package/docs/future-architecture/architecture/06-storage.md +134 -0
- package/docs/future-architecture/architecture/07-security.md +194 -0
- package/docs/future-architecture/architecture/08-networking.md +149 -0
- package/docs/future-architecture/architecture/09-templates.md +122 -0
- package/docs/future-architecture/architecture/10-observability.md +121 -0
- package/docs/future-architecture/design-notes.md +72 -0
- package/docs/future-architecture/gaps.md +281 -0
- package/docs/future-architecture/phase-template.md +123 -0
- package/docs/future-architecture/references.md +225 -0
- package/docs/future-architecture/research/01-kata-containers.md +100 -0
- package/docs/future-architecture/research/02-e2b-infra.md +133 -0
- package/docs/future-architecture/research/03-coder.md +115 -0
- package/docs/future-architecture/research/04-cloud-hypervisor.md +99 -0
- package/docs/future-architecture/research/05-firecracker.md +114 -0
- package/docs/future-architecture/research/06-agent-sandbox.md +142 -0
- package/docs/future-architecture/research/07-chromedp.md +78 -0
- package/docs/future-architecture/research/08-microsandbox.md +78 -0
- package/docs/future-architecture/research/09-agentbox.md +135 -0
- package/docs/future-architecture/research/10-sysbox.md +100 -0
- package/docs/future-architecture/research/11-firecracker-containerd.md +93 -0
- package/docs/future-architecture/research/12-docker-socket-proxy.md +59 -0
- package/docs/future-architecture/research/14-e2b-desktop-and-surf.md +107 -0
- package/docs/future-architecture/research/18-open-webui-terminals-observed.md +135 -0
- package/docs/future-architecture/research/bank-buyer.md +96 -0
- package/docs/future-architecture/research/enthusiast-audience.md +106 -0
- package/docs/future-architecture/research/proof-uipath-anthropic-2026-05.md +76 -0
- package/docs/future-architecture/research/widemoat-thesis-advisor.md +124 -0
- package/docs/future-architecture/roadmap.md +438 -0
- package/docs/kata-runtime.md +267 -0
- package/docs/kubernetes.md +86 -0
- package/docs/logo.png +0 -0
- package/docs/multi-cli.md +161 -0
- package/docs/openwebui-filter.md +134 -0
- package/docs/roadmap/implementation-roadmap.md +104 -0
- package/docs/sandbox-contents.svg +229 -0
- package/docs/screenshots/01-create-document.png +0 -0
- package/docs/screenshots/02-file-preview.png +0 -0
- package/docs/screenshots/03-browser-viewer.png +0 -0
- package/docs/screenshots/04-sub-agent-terminal.png +0 -0
- package/docs/screenshots/05-chat-overview.png +0 -0
- package/docs/screenshots/06-sub-agent-dashboard.png +0 -0
- package/docs/screenshots/07-frontend-design-skill.png +0 -0
- package/docs/screenshots/08-pptx-skill.png +0 -0
- package/docs/screenshots/09-skill-creator.png +0 -0
- package/docs/screenshots/10-data-chart.png +0 -0
- package/docs/shared-browser.svg +102 -0
- package/docs/system-prompt.md +113 -0
- package/docs/terminal-flow.svg +69 -0
- package/examples/helm/README.md +20 -0
- package/examples/helm/standalone/values.yaml +49 -0
- package/examples/helm/with-open-webui/README.md +99 -0
- package/examples/helm/with-open-webui/values-computer-use.yaml +32 -0
- package/examples/helm/with-open-webui/values-open-webui.yaml +67 -0
- package/fonts/NotoEmoji-Regular.ttf +0 -0
- package/helm/computer-use-server/.helmignore +17 -0
- package/helm/computer-use-server/Chart.yaml +32 -0
- package/helm/computer-use-server/README.md +211 -0
- package/helm/computer-use-server/templates/NOTES.txt +66 -0
- package/helm/computer-use-server/templates/_helpers.tpl +115 -0
- package/helm/computer-use-server/templates/configmap-dind-init.yaml +82 -0
- package/helm/computer-use-server/templates/configmap.yaml +18 -0
- package/helm/computer-use-server/templates/deployment.yaml +248 -0
- package/helm/computer-use-server/templates/ingress.yaml +38 -0
- package/helm/computer-use-server/templates/networkpolicy.yaml +50 -0
- package/helm/computer-use-server/templates/pdb.yaml +16 -0
- package/helm/computer-use-server/templates/pvc-data.yaml +20 -0
- package/helm/computer-use-server/templates/pvc-skills-cache.yaml +20 -0
- package/helm/computer-use-server/templates/pvc-user-data.yaml +20 -0
- package/helm/computer-use-server/templates/pvc-var-lib-docker.yaml +27 -0
- package/helm/computer-use-server/templates/secret.yaml +23 -0
- package/helm/computer-use-server/templates/service.yaml +22 -0
- package/helm/computer-use-server/templates/serviceaccount.yaml +15 -0
- package/helm/computer-use-server/templates/tests/test-health.yaml +23 -0
- package/helm/computer-use-server/values.schema.json +183 -0
- package/helm/computer-use-server/values.yaml +297 -0
- package/lychee.toml +36 -0
- package/openwebui/Dockerfile +52 -0
- package/openwebui/README.md +38 -0
- package/openwebui/functions/README.md +48 -0
- package/openwebui/functions/computer_link_filter.py +487 -0
- package/openwebui/init.sh +305 -0
- package/openwebui/patches/README.md +44 -0
- package/openwebui/patches/fix_artifacts_auto_show.py +441 -0
- package/openwebui/patches/fix_attached_files_position.py +87 -0
- package/openwebui/patches/fix_large_tool_args.py +156 -0
- package/openwebui/patches/fix_large_tool_results.py +289 -0
- package/openwebui/patches/fix_preview_url_detection.py +230 -0
- package/openwebui/patches/fix_skip_embedding_chat_files.py +229 -0
- package/openwebui/patches/fix_skip_rag_files_native_fc.py +100 -0
- package/openwebui/patches/fix_tool_loop_errors.py +510 -0
- package/package.json +39 -0
- package/requirements.txt +112 -0
- package/scripts/check-config.sh +141 -0
- package/scripts/docs-lint/ai-slop-detector.sh +202 -0
- package/scripts/docs-lint/architecture-tree-whitelist.sh +131 -0
- package/scripts/docs-lint/ascii-diagram-detector.sh +58 -0
- package/scripts/docs-lint/front-matter-validator.sh +97 -0
- package/scripts/docs-lint/gitignored-ref-detector.sh +122 -0
- package/scripts/docs-lint/identity-email-detector.sh +48 -0
- package/scripts/docs-lint/test-linters.sh +354 -0
- package/scripts/docs-lint/wc-budget.sh +61 -0
- package/scripts/githooks/pre-push +75 -0
- package/server.json +13 -0
- package/settings-wrapper/Dockerfile +9 -0
- package/settings-wrapper/README.md +119 -0
- package/settings-wrapper/app.py +113 -0
- package/settings-wrapper/requirements.txt +2 -0
- package/settings-wrapper/skills.json +25 -0
- package/skills/README.md +46 -0
- package/skills/examples/algorithmic-art/SKILL.md +405 -0
- package/skills/examples/algorithmic-art/templates/generator_template.js +223 -0
- package/skills/examples/algorithmic-art/templates/viewer.html +601 -0
- package/skills/examples/artifacts-builder/SKILL.md +74 -0
- package/skills/examples/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/examples/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/examples/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/examples/canvas-design/LICENSE.txt +202 -0
- package/skills/examples/canvas-design/SKILL.md +130 -0
- package/skills/examples/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/examples/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/examples/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/examples/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/examples/copy-editing/SKILL.md +447 -0
- package/skills/examples/copy-editing/evals/evals.json +89 -0
- package/skills/examples/copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/examples/internal-comms/LICENSE.txt +202 -0
- package/skills/examples/internal-comms/SKILL.md +32 -0
- package/skills/examples/internal-comms/examples/3p-updates.md +47 -0
- package/skills/examples/internal-comms/examples/company-newsletter.md +65 -0
- package/skills/examples/internal-comms/examples/faq-answers.md +30 -0
- package/skills/examples/internal-comms/examples/general-comms.md +16 -0
- package/skills/examples/mcp-builder/SKILL.md +328 -0
- package/skills/examples/mcp-builder/reference/evaluation.md +602 -0
- package/skills/examples/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/skills/examples/mcp-builder/reference/node_mcp_server.md +916 -0
- package/skills/examples/mcp-builder/reference/python_mcp_server.md +752 -0
- package/skills/examples/mcp-builder/scripts/connections.py +151 -0
- package/skills/examples/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/examples/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/examples/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/examples/product-marketing-context/SKILL.md +241 -0
- package/skills/examples/product-marketing-context/evals/evals.json +85 -0
- package/skills/examples/single-cell-rna-qc/SKILL.md +175 -0
- package/skills/examples/single-cell-rna-qc/references/scverse_qc_guidelines.md +186 -0
- package/skills/examples/single-cell-rna-qc/scripts/qc_analysis.py +232 -0
- package/skills/examples/single-cell-rna-qc/scripts/qc_core.py +233 -0
- package/skills/examples/single-cell-rna-qc/scripts/qc_plotting.py +235 -0
- package/skills/examples/skill-creator/SKILL.md +355 -0
- package/skills/examples/skill-creator/references/output-patterns.md +82 -0
- package/skills/examples/skill-creator/references/workflows.md +28 -0
- package/skills/examples/skill-creator/scripts/init_skill.py +303 -0
- package/skills/examples/skill-creator/scripts/package_skill.py +110 -0
- package/skills/examples/skill-creator/scripts/quick_validate.py +95 -0
- package/skills/examples/slack-gif-creator/SKILL.md +254 -0
- package/skills/examples/slack-gif-creator/core/easing.py +234 -0
- package/skills/examples/slack-gif-creator/core/frame_composer.py +176 -0
- package/skills/examples/slack-gif-creator/core/gif_builder.py +269 -0
- package/skills/examples/slack-gif-creator/core/validators.py +136 -0
- package/skills/examples/slack-gif-creator/requirements.txt +4 -0
- package/skills/examples/social-content/SKILL.md +278 -0
- package/skills/examples/social-content/evals/evals.json +92 -0
- package/skills/examples/social-content/references/platforms.md +170 -0
- package/skills/examples/social-content/references/post-templates.md +177 -0
- package/skills/examples/social-content/references/reverse-engineering.md +195 -0
- package/skills/examples/theme-factory/SKILL.md +59 -0
- package/skills/examples/theme-factory/theme-showcase.pdf +0 -0
- package/skills/examples/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/examples/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/examples/theme-factory/themes/desert-rose.md +19 -0
- package/skills/examples/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/examples/theme-factory/themes/golden-hour.md +19 -0
- package/skills/examples/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/examples/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/examples/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/examples/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/examples/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/examples/web-artifacts-builder/LICENSE.txt +202 -0
- package/skills/examples/web-artifacts-builder/SKILL.md +74 -0
- package/skills/examples/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/examples/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/examples/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/examples/writing-skills/SKILL.md +655 -0
- package/skills/examples/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/examples/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/examples/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/examples/writing-skills/persuasion-principles.md +187 -0
- package/skills/examples/writing-skills/render-graphs.js +168 -0
- package/skills/examples/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/public/describe-image/SKILL.md +105 -0
- package/skills/public/describe-image/scripts/describe.py +389 -0
- package/skills/public/doc-coauthoring/SKILL.md +375 -0
- package/skills/public/docx/LICENSE.txt +30 -0
- package/skills/public/docx/SKILL.md +199 -0
- package/skills/public/docx/docx-js.md +350 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/public/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/public/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/public/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/public/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/public/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/public/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/public/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/public/docx/ooxml/scripts/pack.py +159 -0
- package/skills/public/docx/ooxml/scripts/unpack.py +29 -0
- package/skills/public/docx/ooxml/scripts/validate.py +69 -0
- package/skills/public/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/public/docx/ooxml/scripts/validation/base.py +951 -0
- package/skills/public/docx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/public/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/public/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/public/docx/ooxml.md +632 -0
- package/skills/public/docx/scripts/__init__.py +1 -0
- package/skills/public/docx/scripts/document.py +1292 -0
- package/skills/public/docx/scripts/templates/comments.xml +3 -0
- package/skills/public/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/public/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/public/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/public/docx/scripts/templates/people.xml +3 -0
- package/skills/public/docx/scripts/utilities.py +374 -0
- package/skills/public/file-reading/LICENSE.txt +30 -0
- package/skills/public/file-reading/SKILL.md +350 -0
- package/skills/public/frontend-design/LICENSE.txt +177 -0
- package/skills/public/frontend-design/SKILL.md +42 -0
- package/skills/public/gitlab-explorer/SKILL.md +174 -0
- package/skills/public/gitlab-explorer/references/git-commands.md +323 -0
- package/skills/public/gitlab-explorer/references/glab-commands.md +282 -0
- package/skills/public/gitlab-explorer/scripts/check_gitlab_auth.sh +109 -0
- package/skills/public/pdf/FORMS.md +205 -0
- package/skills/public/pdf/REFERENCE.md +612 -0
- package/skills/public/pdf/SKILL.md +364 -0
- package/skills/public/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/public/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/skills/public/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/public/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/public/pdf/scripts/create_validation_image.py +41 -0
- package/skills/public/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/public/pdf/scripts/fill_fillable_fields.py +114 -0
- package/skills/public/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/skills/public/pdf-reading/LICENSE.txt +30 -0
- package/skills/public/pdf-reading/REFERENCE.md +196 -0
- package/skills/public/pdf-reading/SKILL.md +305 -0
- package/skills/public/playwright-cli/SKILL.md +278 -0
- package/skills/public/playwright-cli/references/request-mocking.md +87 -0
- package/skills/public/playwright-cli/references/running-code.md +232 -0
- package/skills/public/playwright-cli/references/session-management.md +169 -0
- package/skills/public/playwright-cli/references/storage-state.md +275 -0
- package/skills/public/playwright-cli/references/test-generation.md +88 -0
- package/skills/public/playwright-cli/references/tracing.md +139 -0
- package/skills/public/playwright-cli/references/video-recording.md +43 -0
- package/skills/public/pptx/LICENSE.txt +30 -0
- package/skills/public/pptx/SKILL.md +484 -0
- package/skills/public/pptx/css.md +335 -0
- package/skills/public/pptx/html2pptx.md +893 -0
- package/skills/public/pptx/html2pptx.tgz +0 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/public/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/public/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/public/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/public/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/public/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/public/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/public/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/public/pptx/ooxml/scripts/pack.py +159 -0
- package/skills/public/pptx/ooxml/scripts/unpack.py +29 -0
- package/skills/public/pptx/ooxml/scripts/validate.py +69 -0
- package/skills/public/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/public/pptx/ooxml/scripts/validation/base.py +951 -0
- package/skills/public/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/public/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/public/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/public/pptx/ooxml.md +427 -0
- package/skills/public/pptx/scripts/inventory.py +1020 -0
- package/skills/public/pptx/scripts/rearrange.py +231 -0
- package/skills/public/pptx/scripts/replace.py +385 -0
- package/skills/public/pptx/scripts/thumbnail.py +450 -0
- package/skills/public/skill-creator/SKILL.md +356 -0
- package/skills/public/skill-creator/references/output-patterns.md +82 -0
- package/skills/public/skill-creator/references/workflows.md +28 -0
- package/skills/public/skill-creator/scripts/init_skill.py +303 -0
- package/skills/public/skill-creator/scripts/package_skill.py +110 -0
- package/skills/public/skill-creator/scripts/quick_validate.py +95 -0
- package/skills/public/sub-agent/SKILL.md +186 -0
- package/skills/public/sub-agent/references/security-review.md +153 -0
- package/skills/public/sub-agent/references/usage.md +207 -0
- package/skills/public/sub-agent/scripts/list_subagent_models.sh +22 -0
- package/skills/public/test-driven-development/SKILL.md +371 -0
- package/skills/public/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/public/webapp-testing/LICENSE.txt +202 -0
- package/skills/public/webapp-testing/SKILL.md +96 -0
- package/skills/public/webapp-testing/examples/console_logging.py +35 -0
- package/skills/public/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/public/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/public/webapp-testing/scripts/with_server.py +106 -0
- package/skills/public/xlsx/LICENSE.txt +30 -0
- package/skills/public/xlsx/SKILL.md +316 -0
- package/skills/public/xlsx/preview_data.py +93 -0
- package/skills/public/xlsx/recalc.py +178 -0
- package/tests/README.md +42 -0
- package/tests/fixtures/cli/claude_v0.9.2.0_argv.json +46 -0
- package/tests/fixtures/cli/claude_v0.9.2.0_stdout.json +32 -0
- package/tests/fixtures/cli/codex_run.jsonl +4 -0
- package/tests/fixtures/cli/opencode_run.jsonl +6 -0
- package/tests/integration/README.md +56 -0
- package/tests/integration/conftest.py +280 -0
- package/tests/integration/pytest.ini +13 -0
- package/tests/integration/test_mcp_auth.py +85 -0
- package/tests/integration/test_mcp_tools.py +101 -0
- package/tests/integration/test_workspace_lifecycle.py +125 -0
- package/tests/orchestrator/mock_llm_server.py +343 -0
- package/tests/orchestrator/test_cli_adapters.py +566 -0
- package/tests/orchestrator/test_cli_adapters_live.py +527 -0
- package/tests/orchestrator/test_cli_runtime.py +451 -0
- package/tests/orchestrator/test_docker_manager.py +302 -0
- package/tests/orchestrator/test_dynamic_instructions.py +69 -0
- package/tests/orchestrator/test_mcp_resources.py +140 -0
- package/tests/orchestrator/test_mcp_tools.py +224 -0
- package/tests/orchestrator/test_passthrough_isolation.py +201 -0
- package/tests/orchestrator/test_readme_in_container.py +76 -0
- package/tests/orchestrator/test_render_cache.py +84 -0
- package/tests/orchestrator/test_runtime_cli_endpoint.py +108 -0
- package/tests/orchestrator/test_single_user_mode.py +212 -0
- package/tests/orchestrator/test_startup_warnings.py +123 -0
- package/tests/orchestrator/test_sub_agent_dispatch.py +327 -0
- package/tests/orchestrator/test_subagent_claude_compat.py +367 -0
- package/tests/orchestrator/test_system_prompt_endpoint.py +191 -0
- package/tests/orchestrator/test_tool_descriptions.py +52 -0
- package/tests/orchestrator/test_view_image.py +201 -0
- package/tests/patches/conftest.py +30 -0
- package/tests/patches/fixtures/__init__.py +10 -0
- package/tests/patches/fixtures/middleware_v0.9.1.py +5057 -0
- package/tests/patches/fixtures/middleware_v0.9.2.py +5120 -0
- package/tests/patches/fixtures/retrieval_v0.9.1.py +2684 -0
- package/tests/patches/fixtures/retrieval_v0.9.2.py +2700 -0
- package/tests/patches/test_fix_attached_files_position.py +118 -0
- package/tests/patches/test_fix_large_tool_args.py +130 -0
- package/tests/patches/test_fix_large_tool_results.py +531 -0
- package/tests/patches/test_fix_skip_embedding_chat_files.py +160 -0
- package/tests/patches/test_fix_skip_rag_files_native_fc.py +120 -0
- package/tests/patches/test_fix_tool_loop_errors.py +128 -0
- package/tests/security/test_path_traversal_app.py +132 -0
- package/tests/security/test_path_traversal_docker.py +36 -0
- package/tests/security/test_path_traversal_settings.py +87 -0
- package/tests/security/test_safe_path_util.py +166 -0
- package/tests/security/test_xss_preview.py +46 -0
- package/tests/test-default-model-resolution.py +136 -0
- package/tests/test-docker-image.sh +358 -0
- package/tests/test-list-subagent-models.sh +421 -0
- package/tests/test-mcp-endpoint-live.sh +92 -0
- package/tests/test-mcp-native-surface.sh +213 -0
- package/tests/test-no-cyrillic.sh +135 -0
- package/tests/test-opencode-error-mapping.py +130 -0
- package/tests/test-pr88-skills.sh +305 -0
- package/tests/test-project-structure.sh +202 -0
- package/tests/test-single-user-mode.sh +269 -0
- package/tests/test-skill-no-hardcoded-models.sh +65 -0
- package/tests/test-subagent-cli-surface.py +137 -0
- package/tests/test-subagent-runtime.sh +109 -0
- package/tests/test_codex_toml_converter.py +204 -0
- package/tests/test_default_resolver_no_legacy_global.py +159 -0
- package/tests/test_filter.py +648 -0
- package/tests/test_init_sh_unchanged.sh +49 -0
- package/tests/test_opencode_alias_map_drop.py +144 -0
- package/tests/test_requirements.py +91 -0
- package/tests/test_subagent_docstring.py +193 -0
- package/tests/test_tools.py +34 -0
- package/vendor/extract-text/README.md +46 -0
- package/vendor/extract-text/extract-text +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Skills User Guide
|
|
2
|
+
|
|
3
|
+
Skills extend the AI assistant's capabilities. Each skill is a folder with `SKILL.md` instructions and optional scripts that teach the AI to work with a specific domain: creating presentations, processing PDFs, browser automation, etc.
|
|
4
|
+
|
|
5
|
+
## How Skills Work
|
|
6
|
+
|
|
7
|
+
1. **System prompt injection** — the server builds an `<available_skills>` XML block listing all skills with names, descriptions, and file paths
|
|
8
|
+
2. **Model reads SKILL.md** — before starting a task, the AI reads the relevant skill's instructions via `view` tool
|
|
9
|
+
3. **Scripts and references** — skills can include Python/bash helper scripts and reference docs that the AI uses
|
|
10
|
+
|
|
11
|
+
Skills are mounted read-only into sandbox containers at `/mnt/skills/`.
|
|
12
|
+
|
|
13
|
+
## Built-in Skills (13 public)
|
|
14
|
+
|
|
15
|
+
Always available, baked into the Docker image:
|
|
16
|
+
|
|
17
|
+
| Skill | What it does |
|
|
18
|
+
|-------|--------------|
|
|
19
|
+
| **docx** | Word documents — create, edit, tracked changes, comments |
|
|
20
|
+
| **pdf** | PDF — extract text/tables, create, merge/split, fill forms |
|
|
21
|
+
| **pptx** | PowerPoint — create with html2pptx, edit via OOXML |
|
|
22
|
+
| **xlsx** | Excel — formulas, formatting, analysis, visualization |
|
|
23
|
+
| **sub-agent** | Delegate complex tasks to autonomous Claude Code agent |
|
|
24
|
+
| **playwright-cli** | Browser automation — navigate, fill forms, screenshot |
|
|
25
|
+
| **describe-image** | Image analysis via Vision AI |
|
|
26
|
+
| **frontend-design** | Production-grade UI/web components |
|
|
27
|
+
| **webapp-testing** | Test web apps with Playwright |
|
|
28
|
+
| **doc-coauthoring** | Structured document co-authoring workflow |
|
|
29
|
+
| **test-driven-development** | TDD workflow enforcement |
|
|
30
|
+
| **skill-creator** | Guide for creating new skills |
|
|
31
|
+
| **gitlab-explorer** | GitLab repo operations via glab CLI |
|
|
32
|
+
|
|
33
|
+
## Example Skills (14)
|
|
34
|
+
|
|
35
|
+
Optional, also in the Docker image at `/mnt/skills/examples/`:
|
|
36
|
+
|
|
37
|
+
web-artifacts-builder, copy-editing, social-content, canvas-design, algorithmic-art, theme-factory, mcp-builder, product-marketing-context, writing-skills, internal-comms, single-cell-rna-qc, slack-gif-creator, skill-creator (example version)
|
|
38
|
+
|
|
39
|
+
## Creating Your Own Skill
|
|
40
|
+
|
|
41
|
+
A skill is a folder with `SKILL.md` at the root:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
my-skill/
|
|
45
|
+
├── SKILL.md # Required — instructions for the AI
|
|
46
|
+
├── scripts/ # Optional — helper scripts
|
|
47
|
+
│ └── process.py
|
|
48
|
+
└── references/ # Optional — reference docs
|
|
49
|
+
└── guide.md
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### SKILL.md format
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
---
|
|
56
|
+
name: my-skill-name
|
|
57
|
+
description: Brief description (this is what the AI sees in the skills list)
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
# My Skill Name
|
|
61
|
+
|
|
62
|
+
Instructions for the AI go here. Be specific about:
|
|
63
|
+
- When to use this skill
|
|
64
|
+
- Step-by-step workflow
|
|
65
|
+
- Which scripts to run and how
|
|
66
|
+
- Expected output format
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
See `skills/public/` for real examples.
|
|
70
|
+
|
|
71
|
+
## Skill Management
|
|
72
|
+
|
|
73
|
+
In our production setup, we built a **skill registry** (settings-wrapper) where:
|
|
74
|
+
- AI manages skills through a dedicated **settings-manager** skill
|
|
75
|
+
- Users can enable/disable skills per account
|
|
76
|
+
- Custom skills are uploaded as ZIP archives and cached on the server
|
|
77
|
+
|
|
78
|
+
For community use, we provide a [mock settings-wrapper](../settings-wrapper/README.md) with the API contract. All 13 public skills work out of the box without it.
|
|
79
|
+
|
|
80
|
+
**Want a public skill management tool?** We'd love to build one that works with your setup. Open a [GitHub Issue](https://github.com/Wide-Moat/open-computer-use/issues) and tell us what you use (LiteLLM, Open WebUI standalone, Claude Desktop, etc.) — this helps us prioritize.
|
|
81
|
+
|
|
82
|
+
## Related Docs
|
|
83
|
+
|
|
84
|
+
- [SKILLS.md](SKILLS.md) — technical reference for all skills
|
|
85
|
+
- [DYNAMIC-SKILLS.md](DYNAMIC-SKILLS.md) — how skill injection works under the hood
|
|
86
|
+
- [settings-wrapper/README.md](../settings-wrapper/README.md) — mock skill registry API contract
|
package/docs/SKILLS.md
ADDED
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
# Skills System Documentation
|
|
2
|
+
|
|
3
|
+
Guide to the AI Computer Use Skills System.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Skills system provides enhanced capabilities for AI assistants through pre-packaged tools, scripts, and documentation. Skills are organized into categories and mounted read-only in the container.
|
|
8
|
+
|
|
9
|
+
## Directory Structure
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
skills/
|
|
13
|
+
├── public/ # Core production-ready skills
|
|
14
|
+
│ ├── docx/ # Word document processing
|
|
15
|
+
│ ├── pdf/ # PDF operations
|
|
16
|
+
│ ├── pptx/ # PowerPoint presentations
|
|
17
|
+
│ ├── xlsx/ # Excel spreadsheets
|
|
18
|
+
│ ├── skill-creator/ # Create new skills
|
|
19
|
+
│ └── sub-agent/ # Task delegation to autonomous agent
|
|
20
|
+
│
|
|
21
|
+
└── examples/ # Example implementations
|
|
22
|
+
├── mcp-builder/ # Build MCP servers
|
|
23
|
+
├── canvas-design/ # Design in Canvas
|
|
24
|
+
├── algorithmic-art/
|
|
25
|
+
├── theme-factory/
|
|
26
|
+
└── ... (10+ examples)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Public Skills
|
|
30
|
+
|
|
31
|
+
### 1. docx - Word Documents
|
|
32
|
+
|
|
33
|
+
**Location**: `/mnt/skills/public/docx/`
|
|
34
|
+
|
|
35
|
+
**Capabilities**:
|
|
36
|
+
- Create and edit .docx files
|
|
37
|
+
- Work with styles, tables, images
|
|
38
|
+
- OOXML schema validation
|
|
39
|
+
- Comment tracking
|
|
40
|
+
|
|
41
|
+
**Key Files**:
|
|
42
|
+
- `SKILL.md` - Usage guide
|
|
43
|
+
- `docx-js.md` - JavaScript library docs
|
|
44
|
+
- `ooxml/schemas/` - ISO 29500 XSD schemas
|
|
45
|
+
- `scripts/document.py` - Python utilities
|
|
46
|
+
|
|
47
|
+
**Example**:
|
|
48
|
+
```python
|
|
49
|
+
from docx import Document
|
|
50
|
+
|
|
51
|
+
doc = Document()
|
|
52
|
+
doc.add_heading('Report', 0)
|
|
53
|
+
doc.add_paragraph('Content here...')
|
|
54
|
+
doc.save('/mnt/user-data/outputs/report.docx')
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 2. pdf - PDF Processing
|
|
58
|
+
|
|
59
|
+
**Location**: `/mnt/skills/public/pdf/`
|
|
60
|
+
|
|
61
|
+
**Capabilities**:
|
|
62
|
+
- Extract text and images
|
|
63
|
+
- Fill PDF forms
|
|
64
|
+
- Create validation images
|
|
65
|
+
- Check bounding boxes
|
|
66
|
+
|
|
67
|
+
**Key Files**:
|
|
68
|
+
- `SKILL.md` - Main guide
|
|
69
|
+
- `FORMS.md` - Form filling guide
|
|
70
|
+
- `REFERENCE.md` - API reference
|
|
71
|
+
- `scripts/` - 8 Python scripts for PDF operations
|
|
72
|
+
|
|
73
|
+
**Example**:
|
|
74
|
+
```bash
|
|
75
|
+
# Fill PDF form
|
|
76
|
+
python3 /mnt/skills/public/pdf/scripts/fill_pdf_form_with_annotations.py \
|
|
77
|
+
/mnt/user-data/uploads/form.pdf \
|
|
78
|
+
/mnt/user-data/outputs/filled.pdf
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 3. pptx - PowerPoint Presentations
|
|
82
|
+
|
|
83
|
+
**Location**: `/mnt/skills/public/pptx/`
|
|
84
|
+
|
|
85
|
+
**Capabilities**:
|
|
86
|
+
- Create presentations programmatically
|
|
87
|
+
- Convert HTML to PowerPoint
|
|
88
|
+
- Manipulate slides, layouts, themes
|
|
89
|
+
- Extract thumbnails
|
|
90
|
+
|
|
91
|
+
**Key Files**:
|
|
92
|
+
- `SKILL.md` - Usage guide
|
|
93
|
+
- `html2pptx.md` - HTML conversion guide
|
|
94
|
+
- `css.md` - Styling guide
|
|
95
|
+
- `html2pptx.tgz` - npm package for HTML→PPTX
|
|
96
|
+
- `scripts/` - Python utilities
|
|
97
|
+
|
|
98
|
+
**Example**:
|
|
99
|
+
```python
|
|
100
|
+
from pptx import Presentation
|
|
101
|
+
|
|
102
|
+
prs = Presentation()
|
|
103
|
+
slide = prs.slides.add_slide(prs.slide_layouts[0])
|
|
104
|
+
title = slide.shapes.title
|
|
105
|
+
title.text = "My Presentation"
|
|
106
|
+
prs.save('/mnt/user-data/outputs/presentation.pptx')
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 4. xlsx - Excel Spreadsheets
|
|
110
|
+
|
|
111
|
+
**Location**: `/mnt/skills/public/xlsx/`
|
|
112
|
+
|
|
113
|
+
**Capabilities**:
|
|
114
|
+
- Read and write .xlsx files
|
|
115
|
+
- Formulas, formatting, charts
|
|
116
|
+
- Multiple worksheets
|
|
117
|
+
- Data validation
|
|
118
|
+
|
|
119
|
+
**Example**:
|
|
120
|
+
```python
|
|
121
|
+
from openpyxl import Workbook
|
|
122
|
+
|
|
123
|
+
wb = Workbook()
|
|
124
|
+
ws = wb.active
|
|
125
|
+
ws['A1'] = 'Hello'
|
|
126
|
+
ws['B1'] = 123
|
|
127
|
+
wb.save('/mnt/user-data/outputs/data.xlsx')
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### 5. skill-creator - Create New Skills
|
|
131
|
+
|
|
132
|
+
**Location**: `/mnt/skills/public/skill-creator/`
|
|
133
|
+
|
|
134
|
+
**Purpose**: Template and tools for creating custom skills
|
|
135
|
+
|
|
136
|
+
**Key Files**:
|
|
137
|
+
- `SKILL.md` - Creation guide
|
|
138
|
+
- `references/workflows.md` - Workflow patterns
|
|
139
|
+
- `references/output-patterns.md` - Output formatting
|
|
140
|
+
- `scripts/init_skill.py` - Initialize new skill
|
|
141
|
+
- `scripts/package_skill.py` - Package for distribution
|
|
142
|
+
|
|
143
|
+
### 6. sub-agent - Task Delegation
|
|
144
|
+
|
|
145
|
+
**Location**: `/mnt/skills/public/sub-agent/`
|
|
146
|
+
|
|
147
|
+
**Purpose**: Delegate complex, multi-step tasks to autonomous Claude agent
|
|
148
|
+
|
|
149
|
+
**Capabilities**:
|
|
150
|
+
- Creating presentations (10+ slides)
|
|
151
|
+
- Multi-file refactoring
|
|
152
|
+
- Iterative test-fix cycles
|
|
153
|
+
- Research and reports
|
|
154
|
+
- Code review with fixes
|
|
155
|
+
- Complex Git operations
|
|
156
|
+
|
|
157
|
+
**Key Files**:
|
|
158
|
+
- `SKILL.md` - Main documentation
|
|
159
|
+
- `references/usage.md` - Task templates and patterns
|
|
160
|
+
- `references/security-review.md` - Security review template
|
|
161
|
+
|
|
162
|
+
**When to use:**
|
|
163
|
+
- Tasks requiring 10+ tool calls
|
|
164
|
+
- Iterative workflows (test → fix → repeat)
|
|
165
|
+
- Tasks requiring autonomous reasoning
|
|
166
|
+
- Complex document creation
|
|
167
|
+
|
|
168
|
+
**When NOT to use:**
|
|
169
|
+
- Simple file reads/writes
|
|
170
|
+
- Single bash commands
|
|
171
|
+
- Quick edits to one file
|
|
172
|
+
|
|
173
|
+
**Example**:
|
|
174
|
+
```python
|
|
175
|
+
sub_agent(
|
|
176
|
+
task="""
|
|
177
|
+
## ROLE
|
|
178
|
+
You are a business presentation specialist.
|
|
179
|
+
|
|
180
|
+
## DIRECTIVE
|
|
181
|
+
Create a 12-slide presentation on AI trends.
|
|
182
|
+
|
|
183
|
+
## CONSTRAINTS
|
|
184
|
+
- Do NOT use technical jargon
|
|
185
|
+
- Do NOT include more than 5 bullets per slide
|
|
186
|
+
|
|
187
|
+
## PROCESS
|
|
188
|
+
1. Research current AI adoption statistics
|
|
189
|
+
2. Create slide outline
|
|
190
|
+
3. Build presentation with charts
|
|
191
|
+
4. Add speaker notes
|
|
192
|
+
|
|
193
|
+
## OUTPUT
|
|
194
|
+
- Save to /mnt/user-data/outputs/ai_trends.pptx
|
|
195
|
+
""",
|
|
196
|
+
description="AI presentation for board meeting",
|
|
197
|
+
max_turns=25
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Example Skills
|
|
202
|
+
|
|
203
|
+
### mcp-builder - MCP Server Builder
|
|
204
|
+
|
|
205
|
+
**Location**: `/mnt/skills/examples/mcp-builder/`
|
|
206
|
+
|
|
207
|
+
**Purpose**: Build high-quality MCP (Model Context Protocol) servers
|
|
208
|
+
|
|
209
|
+
**Key Files**:
|
|
210
|
+
- `SKILL.md` - Complete guide (329 lines)
|
|
211
|
+
- `reference/python_mcp_server.md` - Python/FastMCP guide
|
|
212
|
+
- `reference/node_mcp_server.md` - TypeScript/Node guide
|
|
213
|
+
- `reference/mcp_best_practices.md` - Best practices
|
|
214
|
+
- `reference/evaluation.md` - Testing guide
|
|
215
|
+
- `scripts/connections.py` - Connection management
|
|
216
|
+
- `scripts/evaluation.py` - Run evaluations
|
|
217
|
+
|
|
218
|
+
**Features**:
|
|
219
|
+
- FastMCP (Python) support
|
|
220
|
+
- TypeScript/Node MCP SDK support
|
|
221
|
+
- Pydantic/Zod validation
|
|
222
|
+
- Evaluation-driven development
|
|
223
|
+
- 4-phase workflow (Research → Implement → Review → Test)
|
|
224
|
+
|
|
225
|
+
**Example Usage**:
|
|
226
|
+
See [docs/MCP.md](MCP.md) for MCP integration examples.
|
|
227
|
+
|
|
228
|
+
### canvas-design - Design in Canvas
|
|
229
|
+
|
|
230
|
+
**Location**: `/mnt/skills/examples/canvas-design/`
|
|
231
|
+
|
|
232
|
+
**Features**:
|
|
233
|
+
- 90+ TTF fonts included
|
|
234
|
+
- Font families: RedHatMono, JetBrainsMono, Lora, Outfit, etc.
|
|
235
|
+
- Ready for Canvas artifact creation
|
|
236
|
+
|
|
237
|
+
### algorithmic-art - Generative Art
|
|
238
|
+
|
|
239
|
+
**Location**: `/mnt/skills/examples/algorithmic-art/`
|
|
240
|
+
|
|
241
|
+
**Features**:
|
|
242
|
+
- HTML viewer template
|
|
243
|
+
- JavaScript generator template
|
|
244
|
+
- Create interactive visualizations
|
|
245
|
+
|
|
246
|
+
### theme-factory - Design Themes
|
|
247
|
+
|
|
248
|
+
**Location**: `/mnt/skills/examples/theme-factory/`
|
|
249
|
+
|
|
250
|
+
**Features**:
|
|
251
|
+
- 10 pre-built themes (arctic-frost, ocean-depths, midnight-galaxy, etc.)
|
|
252
|
+
- Color palettes
|
|
253
|
+
- Typography systems
|
|
254
|
+
- Theme showcase PDF
|
|
255
|
+
|
|
256
|
+
### Other Example Skills
|
|
257
|
+
|
|
258
|
+
- **artifacts-builder**: Create React artifacts with shadcn components
|
|
259
|
+
- **internal-comms**: Internal communication templates
|
|
260
|
+
- **single-cell-rna-qc**: Bioinformatics RNA quality control
|
|
261
|
+
- **slack-gif-creator**: Generate GIFs for Slack
|
|
262
|
+
- **brand-guidelines**: Branding and style guides
|
|
263
|
+
|
|
264
|
+
## Using Skills
|
|
265
|
+
|
|
266
|
+
### From Container
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
# Access container
|
|
270
|
+
docker-compose exec ai-computer-use /bin/bash
|
|
271
|
+
|
|
272
|
+
# List available skills
|
|
273
|
+
ls /mnt/skills/public/
|
|
274
|
+
ls /mnt/skills/examples/
|
|
275
|
+
|
|
276
|
+
# Read skill documentation
|
|
277
|
+
cat /mnt/skills/public/docx/SKILL.md
|
|
278
|
+
|
|
279
|
+
# Use skill script
|
|
280
|
+
python3 /mnt/skills/public/pdf/scripts/extract_form_field_info.py \
|
|
281
|
+
/mnt/user-data/uploads/form.pdf
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### From Host (via MCP)
|
|
285
|
+
|
|
286
|
+
If you have the MCP server set up:
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
You: "Use the PDF skill to extract form fields from uploaded form.pdf"
|
|
290
|
+
Assistant: [Executes via MCP server]
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## Creating Custom Skills
|
|
294
|
+
|
|
295
|
+
### 1. Use skill-creator
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
cd /mnt/skills/public/skill-creator/scripts
|
|
299
|
+
python3 init_skill.py --name my-skill --type public
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### 2. Structure
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
my-skill/
|
|
306
|
+
├── SKILL.md # Documentation
|
|
307
|
+
├── LICENSE.txt # License
|
|
308
|
+
├── reference/ # Additional docs
|
|
309
|
+
│ └── guide.md
|
|
310
|
+
├── scripts/ # Python/bash scripts
|
|
311
|
+
│ └── tool.py
|
|
312
|
+
└── examples/ # Usage examples
|
|
313
|
+
└── example1.md
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### 3. Best Practices
|
|
317
|
+
|
|
318
|
+
1. **Clear Documentation**: Comprehensive SKILL.md
|
|
319
|
+
2. **Self-contained**: All dependencies listed
|
|
320
|
+
3. **Examples**: Provide working examples
|
|
321
|
+
4. **Error Handling**: Graceful failure messages
|
|
322
|
+
5. **Testing**: Include test cases
|
|
323
|
+
|
|
324
|
+
### 4. Packaging
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
cd /mnt/skills/public/skill-creator/scripts
|
|
328
|
+
python3 package_skill.py --input /path/to/my-skill
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Skill Development Workflow
|
|
332
|
+
|
|
333
|
+
### Phase 1: Research
|
|
334
|
+
- Understand the API/domain
|
|
335
|
+
- Review existing skills
|
|
336
|
+
- Identify core functionality
|
|
337
|
+
|
|
338
|
+
### Phase 2: Implementation
|
|
339
|
+
- Create skill structure
|
|
340
|
+
- Write scripts and utilities
|
|
341
|
+
- Add documentation
|
|
342
|
+
|
|
343
|
+
### Phase 3: Testing
|
|
344
|
+
- Test on real data
|
|
345
|
+
- Verify error handling
|
|
346
|
+
- Check edge cases
|
|
347
|
+
|
|
348
|
+
### Phase 4: Documentation
|
|
349
|
+
- Complete SKILL.md
|
|
350
|
+
- Add examples
|
|
351
|
+
- Document limitations
|
|
352
|
+
|
|
353
|
+
## OOXML Support
|
|
354
|
+
|
|
355
|
+
Both docx and pptx skills include full OOXML schema support:
|
|
356
|
+
|
|
357
|
+
**Schemas Included**:
|
|
358
|
+
- ISO/IEC 29500-4:2016 (Office Open XML)
|
|
359
|
+
- ECMA-376 4th Edition
|
|
360
|
+
- Microsoft extensions (2010, 2012, 2018)
|
|
361
|
+
|
|
362
|
+
**Location**: `/mnt/skills/public/{docx,pptx}/ooxml/schemas/`
|
|
363
|
+
|
|
364
|
+
**Validation Scripts**:
|
|
365
|
+
```bash
|
|
366
|
+
# Validate DOCX
|
|
367
|
+
python3 /mnt/skills/public/docx/ooxml/scripts/validate.py document.docx
|
|
368
|
+
|
|
369
|
+
# Unpack for inspection
|
|
370
|
+
python3 /mnt/skills/public/docx/ooxml/scripts/unpack.py document.docx output_dir/
|
|
371
|
+
|
|
372
|
+
# Pack after modification
|
|
373
|
+
python3 /mnt/skills/public/docx/ooxml/scripts/pack.py input_dir/ output.docx
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
## Font Support
|
|
377
|
+
|
|
378
|
+
### System Fonts (in container)
|
|
379
|
+
|
|
380
|
+
- Liberation (Serif, Sans, Mono)
|
|
381
|
+
- DejaVu (Serif, Sans, Mono)
|
|
382
|
+
- Noto CJK (Chinese, Japanese, Korean)
|
|
383
|
+
- Noto Color Emoji
|
|
384
|
+
|
|
385
|
+
### Canvas Fonts (in skills)
|
|
386
|
+
|
|
387
|
+
Location: `/mnt/skills/examples/canvas-design/canvas-fonts/`
|
|
388
|
+
|
|
389
|
+
90+ TTF files including:
|
|
390
|
+
- Monospace: JetBrainsMono, RedHatMono, GeistMono, DMMono
|
|
391
|
+
- Serif: Lora, LibreBaskerville, CrimsonPro, YoungSerif
|
|
392
|
+
- Sans: Outfit, WorkSans, InstrumentSans
|
|
393
|
+
- Display: Gloock, EricaOne, Italiana, PoiretOne
|
|
394
|
+
|
|
395
|
+
## Troubleshooting
|
|
396
|
+
|
|
397
|
+
### Skill Not Found
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
# Verify mount
|
|
401
|
+
docker-compose exec ai-computer-use ls /mnt/skills/
|
|
402
|
+
|
|
403
|
+
# Check docker-compose.yml
|
|
404
|
+
grep -A2 "skills:" docker-compose.yml
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### Script Execution Fails
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
# Check permissions
|
|
411
|
+
docker-compose exec ai-computer-use ls -la /mnt/skills/public/pdf/scripts/
|
|
412
|
+
|
|
413
|
+
# Verify Python packages
|
|
414
|
+
docker-compose exec ai-computer-use python3 -c "import pypdf; print('OK')"
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### Missing Dependencies
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
# Install additional Python package
|
|
421
|
+
docker-compose exec ai-computer-use pip install package-name
|
|
422
|
+
|
|
423
|
+
# Or add to requirements.txt and rebuild
|
|
424
|
+
echo "package-name==version" >> requirements.txt
|
|
425
|
+
docker-compose build --no-cache
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
## Best Practices
|
|
429
|
+
|
|
430
|
+
### 1. Read-Only Skills
|
|
431
|
+
Skills are mounted read-only. For modifications:
|
|
432
|
+
- Copy to `/home/assistant/` (ephemeral workspace)
|
|
433
|
+
- Or write outputs to `/mnt/user-data/outputs/`
|
|
434
|
+
|
|
435
|
+
### 2. File Paths
|
|
436
|
+
Always use absolute paths:
|
|
437
|
+
```python
|
|
438
|
+
# Good
|
|
439
|
+
script = "/mnt/skills/public/pdf/scripts/tool.py"
|
|
440
|
+
|
|
441
|
+
# Bad (relative paths may not work)
|
|
442
|
+
script = "../skills/public/pdf/scripts/tool.py"
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### 3. Error Handling
|
|
446
|
+
Skills should handle errors gracefully:
|
|
447
|
+
```python
|
|
448
|
+
try:
|
|
449
|
+
process_document(input_file)
|
|
450
|
+
except FileNotFoundError:
|
|
451
|
+
print(f"Error: File not found: {input_file}")
|
|
452
|
+
sys.exit(1)
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### 4. Documentation
|
|
456
|
+
Always check SKILL.md first:
|
|
457
|
+
```bash
|
|
458
|
+
cat /mnt/skills/public/docx/SKILL.md | less
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## Contributing
|
|
462
|
+
|
|
463
|
+
To contribute new skills or improvements:
|
|
464
|
+
|
|
465
|
+
1. Follow the skill-creator guidelines
|
|
466
|
+
2. Test thoroughly in container
|
|
467
|
+
3. Document all functionality
|
|
468
|
+
4. Package with `package_skill.py`
|
|
469
|
+
5. Submit for review
|
|
470
|
+
|
|
471
|
+
## References
|
|
472
|
+
|
|
473
|
+
- [MCP Best Practices](/mnt/skills/examples/mcp-builder/reference/mcp_best_practices.md)
|
|
474
|
+
- [Output Patterns](/mnt/skills/public/skill-creator/references/output-patterns.md)
|
|
475
|
+
- [Workflow Guide](/mnt/skills/public/skill-creator/references/workflows.md)
|
|
476
|
+
|
|
477
|
+
## Support
|
|
478
|
+
|
|
479
|
+
For skill-related issues:
|
|
480
|
+
1. Check SKILL.md in the skill directory
|
|
481
|
+
2. Review example usage
|
|
482
|
+
3. Verify container has required packages
|
|
483
|
+
4. Test script directly in container
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Sub-Agent Tab — Terminal + Claude Code
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The "Sub-Agent" tab in the preview panel provides:
|
|
6
|
+
|
|
7
|
+
1. **Claude Code monitoring** — see running processes, kill stuck ones
|
|
8
|
+
2. **Interactive terminal** — launch Claude Code manually, resume interrupted sessions
|
|
9
|
+
|
|
10
|
+
## How it works
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Browser (xterm.js) ←WebSocket→ Computer Use Server ←WebSocket→ Container (ttyd:7681)
|
|
14
|
+
(proxy on :8081) (tmux + bash)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- **ttyd** — WebSocket terminal server inside the container (port 7681)
|
|
18
|
+
- **tmux** — persistent session (reconnectable, scroll history preserved)
|
|
19
|
+
- **Computer Use Server** — transparent WebSocket proxy
|
|
20
|
+
- **xterm.js** — terminal rendering in the browser
|
|
21
|
+
|
|
22
|
+
## Endpoints
|
|
23
|
+
|
|
24
|
+
| Endpoint | Description |
|
|
25
|
+
|----------|-------------|
|
|
26
|
+
| `GET /terminal/{chat_id}/status` | Check if ttyd is running |
|
|
27
|
+
| `WebSocket /terminal/{chat_id}/ws` | Terminal WebSocket connection |
|
|
28
|
+
| `POST /terminal/{chat_id}/start-ttyd` | Start ttyd (lazy — first click) |
|
|
29
|
+
| `GET /terminal/{chat_id}/sessions` | List Claude Code JSONL sessions |
|
|
30
|
+
| `GET /terminal/{chat_id}/processes` | List running Claude Code processes |
|
|
31
|
+
| `POST /terminal/{chat_id}/processes/{pid}/kill` | Kill a stuck process |
|
|
32
|
+
|
|
33
|
+
## Lifecycle
|
|
34
|
+
|
|
35
|
+
1. AI calls `sub_agent` → sandbox container is created
|
|
36
|
+
2. Filter injects preview link → Artifacts panel opens
|
|
37
|
+
3. User sees dashboard with processes and sessions
|
|
38
|
+
4. Click **"Open terminal"** → ttyd starts, Claude Code launches
|
|
39
|
+
5. tmux session is persistent — reconnectable on disconnect
|
|
40
|
+
6. Container stays alive while WebSocket is connected (keep-alive heartbeat)
|
|
41
|
+
7. Container auto-stops after idle timeout (default: 10 min)
|
|
42
|
+
|
|
43
|
+
## Dangerous Mode
|
|
44
|
+
|
|
45
|
+
Toggle **"Skip permission prompts"** to run Claude Code without confirmation dialogs. Sets `NO_AUTOSTART=1` environment variable so .bashrc skips its autostart and the frontend can inject `claude --dangerously-skip-permissions` instead. Use only for trusted tasks.
|
|
46
|
+
|
|
47
|
+
## Sub-agent Timeout
|
|
48
|
+
|
|
49
|
+
If `sub_agent()` times out (default: 3600s) but Claude Code is still running:
|
|
50
|
+
- The model receives a timeout message
|
|
51
|
+
- User can observe progress in the Sub-Agent tab
|
|
52
|
+
- Can stop or continue interactively in the terminal
|
|
53
|
+
|
|
54
|
+
## MCP Servers in Claude Code
|
|
55
|
+
|
|
56
|
+
When MCP server names are passed via `X-MCP-Servers` header, the server auto-generates `~/.mcp.json` inside the container. Claude Code picks it up and can use those MCP servers autonomously. See [MCP.md](MCP.md#mcp-servers-for-claude-code-sub-agent) for details.
|