@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
package/.coderabbit.yaml
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
|
|
2
|
+
#
|
|
3
|
+
# CodeRabbit configuration for open-computer-use.
|
|
4
|
+
#
|
|
5
|
+
# Enables CodeRabbit auto-review on PRs targeting `next/v1` (the long-lived
|
|
6
|
+
# enterprise architecture branch) in addition to `main` (the repo default).
|
|
7
|
+
# Without this, CodeRabbit auto-reviews only PRs targeting the default
|
|
8
|
+
# branch and posts "Auto reviews are disabled on base/target branches other
|
|
9
|
+
# than the default branch" on PRs to `next/v1`.
|
|
10
|
+
#
|
|
11
|
+
# Reference: https://docs.coderabbit.ai/reference/yaml-template
|
|
12
|
+
language: en
|
|
13
|
+
reviews:
|
|
14
|
+
profile: chill
|
|
15
|
+
request_changes_workflow: false
|
|
16
|
+
high_level_summary: true
|
|
17
|
+
poem: false
|
|
18
|
+
review_status: true
|
|
19
|
+
collapse_walkthrough: false
|
|
20
|
+
auto_review:
|
|
21
|
+
enabled: true
|
|
22
|
+
drafts: false
|
|
23
|
+
base_branches:
|
|
24
|
+
- main
|
|
25
|
+
- next/v1
|
package/.dockerignore
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Git
|
|
2
|
+
.git
|
|
3
|
+
.gitignore
|
|
4
|
+
.gitattributes
|
|
5
|
+
|
|
6
|
+
# Archive and backup
|
|
7
|
+
.archive-original/
|
|
8
|
+
*.zip
|
|
9
|
+
*.tar
|
|
10
|
+
*.tar.gz
|
|
11
|
+
*.tgz
|
|
12
|
+
*.rar
|
|
13
|
+
*.7z
|
|
14
|
+
|
|
15
|
+
# Documentation (not needed in image)
|
|
16
|
+
README.md
|
|
17
|
+
LICENSE
|
|
18
|
+
CHANGELOG.md
|
|
19
|
+
docs/
|
|
20
|
+
*.md
|
|
21
|
+
!requirements.txt
|
|
22
|
+
|
|
23
|
+
# IDE and editors
|
|
24
|
+
.vscode/
|
|
25
|
+
.idea/
|
|
26
|
+
*.swp
|
|
27
|
+
*.swo
|
|
28
|
+
*~
|
|
29
|
+
.DS_Store
|
|
30
|
+
|
|
31
|
+
# Python
|
|
32
|
+
__pycache__/
|
|
33
|
+
*.py[cod]
|
|
34
|
+
*$py.class
|
|
35
|
+
*.so
|
|
36
|
+
.Python
|
|
37
|
+
venv/
|
|
38
|
+
env/
|
|
39
|
+
ENV/
|
|
40
|
+
*.egg-info/
|
|
41
|
+
dist/
|
|
42
|
+
build/
|
|
43
|
+
|
|
44
|
+
# Node
|
|
45
|
+
node_modules/
|
|
46
|
+
npm-debug.log*
|
|
47
|
+
yarn-debug.log*
|
|
48
|
+
yarn-error.log*
|
|
49
|
+
package-lock.json
|
|
50
|
+
yarn.lock
|
|
51
|
+
|
|
52
|
+
# Data directories (data/ mounted as volumes, skills/ copied into image)
|
|
53
|
+
data/
|
|
54
|
+
# skills/ - NOT ignored, copied into image
|
|
55
|
+
|
|
56
|
+
# Docker
|
|
57
|
+
docker-compose.yml
|
|
58
|
+
.dockerignore
|
|
59
|
+
|
|
60
|
+
# Environment files
|
|
61
|
+
.env
|
|
62
|
+
.env.local
|
|
63
|
+
.env.*.local
|
|
64
|
+
|
|
65
|
+
# Logs
|
|
66
|
+
*.log
|
|
67
|
+
logs/
|
|
68
|
+
|
|
69
|
+
# Test files
|
|
70
|
+
test/
|
|
71
|
+
tests/
|
|
72
|
+
*.test.js
|
|
73
|
+
*.spec.js
|
|
74
|
+
*.test.py
|
|
75
|
+
*.spec.py
|
|
76
|
+
|
|
77
|
+
# CI/CD
|
|
78
|
+
.github/
|
|
79
|
+
.gitlab-ci.yml
|
|
80
|
+
.travis.yml
|
|
81
|
+
Jenkinsfile
|
|
82
|
+
|
|
83
|
+
# Temporary files
|
|
84
|
+
tmp/
|
|
85
|
+
temp/
|
|
86
|
+
*.tmp
|
|
87
|
+
|
|
88
|
+
# Claude Code settings
|
|
89
|
+
.claude/
|
|
90
|
+
|
|
91
|
+
# Scripts not needed during build
|
|
92
|
+
scripts/
|
|
93
|
+
|
|
94
|
+
# Setup script (not needed in image)
|
|
95
|
+
setup.sh
|
package/.env.example
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Open Computer Use — environment variables
|
|
2
|
+
# Copy this file to `.env` and fill in the REQUIRED block below.
|
|
3
|
+
# Sections are sorted by how often you actually change them.
|
|
4
|
+
|
|
5
|
+
# ============================================================
|
|
6
|
+
# REQUIRED — without these the system won't work
|
|
7
|
+
# ============================================================
|
|
8
|
+
|
|
9
|
+
# Admin account created on first Open WebUI startup. CHANGE BOTH.
|
|
10
|
+
ADMIN_EMAIL=admin@open-computer-use.dev
|
|
11
|
+
ADMIN_PASSWORD=change-me
|
|
12
|
+
|
|
13
|
+
# Open WebUI session signing key. Generate: openssl rand -hex 32
|
|
14
|
+
WEBUI_SECRET_KEY=change-me
|
|
15
|
+
|
|
16
|
+
# PUBLIC_BASE_URL — browser-reachable URL of the Computer Use Server.
|
|
17
|
+
# Must be a hostname YOUR BROWSER can reach, not Docker DNS.
|
|
18
|
+
# Example: http://your-host.lan:8081 or https://compute.example.com
|
|
19
|
+
#
|
|
20
|
+
# This is the single source of truth for the public URL:
|
|
21
|
+
# • Baked into the /system-prompt text so the model writes correct file URLs.
|
|
22
|
+
# • Returned to the Open WebUI filter via the X-Public-Base-URL response
|
|
23
|
+
# header on /system-prompt — filter decorates iframe/archive links with it.
|
|
24
|
+
# The filter no longer has its own public-URL Valve. See docs/openwebui-filter.md.
|
|
25
|
+
PUBLIC_BASE_URL=http://localhost:8081
|
|
26
|
+
|
|
27
|
+
# NOTE: Open WebUI needs 4 env vars on its own container AND 1 build-arg, AND
|
|
28
|
+
# it must be built from openwebui/Dockerfile (not pulled from
|
|
29
|
+
# ghcr.io/open-webui/open-webui) for the patches to apply.
|
|
30
|
+
# See README.md → "Required setup when embedding Open WebUI into your own stack".
|
|
31
|
+
|
|
32
|
+
# LLM provider — any OpenAI-compatible API (OpenAI, OpenRouter, LiteLLM, ...)
|
|
33
|
+
OPENAI_API_KEY=sk-...
|
|
34
|
+
# OPENAI_API_BASE_URL=https://openrouter.ai/api/v1
|
|
35
|
+
|
|
36
|
+
# MCP endpoint auth token. Empty = no auth. Set for anything beyond local dev.
|
|
37
|
+
MCP_API_KEY=
|
|
38
|
+
|
|
39
|
+
# PostgreSQL password for the embedded DB. Change for production.
|
|
40
|
+
POSTGRES_PASSWORD=openwebui
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# ============================================================
|
|
44
|
+
# OPTIONAL FEATURES — enable as a group (all or nothing)
|
|
45
|
+
# ============================================================
|
|
46
|
+
|
|
47
|
+
# --- Vision (for describe-image skill) ---
|
|
48
|
+
# Uncomment ALL THREE to enable:
|
|
49
|
+
# VISION_API_KEY=
|
|
50
|
+
# VISION_API_URL=https://api.openai.com/v1
|
|
51
|
+
# VISION_MODEL=gpt-4o
|
|
52
|
+
|
|
53
|
+
# --- Claude Code sub-agent ---
|
|
54
|
+
# Uncomment ANTHROPIC_AUTH_TOKEN to enable the sub_agent() tool:
|
|
55
|
+
# ANTHROPIC_AUTH_TOKEN=
|
|
56
|
+
# ANTHROPIC_BASE_URL=https://api.anthropic.com
|
|
57
|
+
|
|
58
|
+
# --- Optional: Multi-CLI sub-agent runtime (v0.9.2.1+) ---
|
|
59
|
+
# SUBAGENT_CLI selects which CLI runs sub-agent calls. Default unset = claude.
|
|
60
|
+
# Accepted: claude | codex | opencode. Invalid value → orchestrator refuses to start.
|
|
61
|
+
# See docs/multi-cli.md for the full guide + worked OpenCode + qwen3-coder + OpenRouter recipe.
|
|
62
|
+
# SUBAGENT_CLI=
|
|
63
|
+
|
|
64
|
+
# Per-CLI auth (set only the ones for your active SUBAGENT_CLI):
|
|
65
|
+
# SUBAGENT_CLI=claude → uses ANTHROPIC_AUTH_TOKEN above (no extra setup)
|
|
66
|
+
# SUBAGENT_CLI=codex → set OPENAI_API_KEY (and optionally OPENAI_BASE_URL for gateways):
|
|
67
|
+
# OPENAI_API_KEY=
|
|
68
|
+
# OPENAI_BASE_URL=
|
|
69
|
+
# CODEX_SUB_AGENT_DEFAULT_MODEL=
|
|
70
|
+
# SUBAGENT_CLI=opencode → set OPENROUTER_API_KEY (or OPENAI_API_KEY / ANTHROPIC_API_KEY):
|
|
71
|
+
# OPENROUTER_API_KEY=
|
|
72
|
+
# OPENCODE_SUB_AGENT_DEFAULT_MODEL=openrouter/qwen/qwen-3-coder
|
|
73
|
+
|
|
74
|
+
# --- External skill/token provider (GitLab tokens, custom skills) ---
|
|
75
|
+
# Both must be set together, or leave empty for stock behaviour:
|
|
76
|
+
# MCP_TOKENS_URL=
|
|
77
|
+
# MCP_TOKENS_API_KEY=
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
# ============================================================
|
|
81
|
+
# TUNING — change only if you know why
|
|
82
|
+
# ============================================================
|
|
83
|
+
|
|
84
|
+
# Ports
|
|
85
|
+
# MCP_PORT=8081
|
|
86
|
+
# OPENWEBUI_PORT=3000
|
|
87
|
+
|
|
88
|
+
# Workspace image + per-container resource limits
|
|
89
|
+
# DOCKER_IMAGE=open-computer-use:latest
|
|
90
|
+
# CONTAINER_MEM_LIMIT=2g
|
|
91
|
+
# CONTAINER_CPU_LIMIT=1.0
|
|
92
|
+
|
|
93
|
+
# Timeouts (seconds)
|
|
94
|
+
# COMMAND_TIMEOUT=120
|
|
95
|
+
# SUB_AGENT_TIMEOUT=3600
|
|
96
|
+
|
|
97
|
+
# Single-user mode:
|
|
98
|
+
# unset = lenient (default container + warning when X-Chat-Id missing)
|
|
99
|
+
# true = single container, no chat ID required
|
|
100
|
+
# false = strict multi-user, X-Chat-Id required
|
|
101
|
+
# SINGLE_USER_MODE=
|
|
102
|
+
|
|
103
|
+
# Tool-result truncation (prevents context-window blowouts on big outputs)
|
|
104
|
+
# TOOL_RESULT_MAX_CHARS=50000
|
|
105
|
+
# TOOL_RESULT_PREVIEW_CHARS=2000
|
|
106
|
+
|
|
107
|
+
# Sub-agent tuning
|
|
108
|
+
# SUB_AGENT_DEFAULT_MODEL=sonnet
|
|
109
|
+
# SUB_AGENT_MAX_TURNS=25
|
|
110
|
+
|
|
111
|
+
# Housekeeping (stale-container / stale-data cleanup)
|
|
112
|
+
# CONTAINER_MAX_AGE_HOURS=24
|
|
113
|
+
# DATA_MAX_AGE_DAYS=7
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
# ============================================================
|
|
117
|
+
# GATEWAY DEPLOY — only when routing Claude through a proxy/gateway
|
|
118
|
+
# ============================================================
|
|
119
|
+
# All of these pass through to the sandbox. Leave ALL commented for
|
|
120
|
+
# standard Anthropic API. Uncomment as a group for gateway deploys.
|
|
121
|
+
# ANTHROPIC_MODEL=
|
|
122
|
+
# ANTHROPIC_DEFAULT_SONNET_MODEL=
|
|
123
|
+
# ANTHROPIC_DEFAULT_OPUS_MODEL=
|
|
124
|
+
# ANTHROPIC_DEFAULT_HAIKU_MODEL=
|
|
125
|
+
# CLAUDE_CODE_SUBAGENT_MODEL=
|
|
126
|
+
# CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=
|
|
127
|
+
# DISABLE_PROMPT_CACHING=
|
|
128
|
+
# DISABLE_PROMPT_CACHING_SONNET=
|
|
129
|
+
# DISABLE_PROMPT_CACHING_OPUS=
|
|
130
|
+
# DISABLE_PROMPT_CACHING_HAIKU=
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
# ============================================================
|
|
134
|
+
# ADVANCED (rarely changed; for custom deploys)
|
|
135
|
+
# ============================================================
|
|
136
|
+
# OPENWEBUI_VERSION=0.8.12
|
|
137
|
+
# ENABLE_OPENAI_API_SSL_VERIFY=true
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# SPDX-License-Identifier: BUSL-1.1
|
|
3
|
+
# Copyright (c) 2025 Open Computer Use Contributors
|
|
4
|
+
# Block commits containing Cyrillic characters.
|
|
5
|
+
#
|
|
6
|
+
# Repo policy (CLAUDE.md): English-only. No exceptions.
|
|
7
|
+
#
|
|
8
|
+
# Activation (one-time per clone):
|
|
9
|
+
# git config core.hooksPath .githooks
|
|
10
|
+
#
|
|
11
|
+
# To bypass for a specific commit (e.g. importing fixtures): git commit --no-verify
|
|
12
|
+
# Do NOT use --no-verify casually.
|
|
13
|
+
|
|
14
|
+
set -euo pipefail
|
|
15
|
+
|
|
16
|
+
# Skip vendored / minified / generated paths and the test scripts that
|
|
17
|
+
# intentionally contain non-ASCII patterns.
|
|
18
|
+
SKIP_PATTERN='^(\.planning/|.*\.min\.js$|.*/locale\.js$|tests/test-no-cyrillic\.sh$)'
|
|
19
|
+
|
|
20
|
+
# Collect staged files (added / copied / modified / renamed).
|
|
21
|
+
STAGED=$(git diff --cached --name-only --diff-filter=ACMR)
|
|
22
|
+
[ -z "$STAGED" ] && exit 0
|
|
23
|
+
|
|
24
|
+
# Filter out skipped files + binaries.
|
|
25
|
+
TO_CHECK=()
|
|
26
|
+
while IFS= read -r f; do
|
|
27
|
+
[ -z "$f" ] && continue
|
|
28
|
+
[ -f "$f" ] || continue
|
|
29
|
+
if echo "$f" | grep -qE "$SKIP_PATTERN"; then
|
|
30
|
+
continue
|
|
31
|
+
fi
|
|
32
|
+
if file --mime "$f" 2>/dev/null | grep -q 'charset=binary'; then
|
|
33
|
+
continue
|
|
34
|
+
fi
|
|
35
|
+
TO_CHECK+=("$f")
|
|
36
|
+
done <<< "$STAGED"
|
|
37
|
+
|
|
38
|
+
[ ${#TO_CHECK[@]} -eq 0 ] && exit 0
|
|
39
|
+
|
|
40
|
+
# Scan staged content via Python (BSD grep on macOS has no PCRE).
|
|
41
|
+
python3 - "${TO_CHECK[@]}" <<'PY' || exit 1
|
|
42
|
+
import re, subprocess, sys
|
|
43
|
+
|
|
44
|
+
CYR = re.compile(r'[\u0400-\u04FF]')
|
|
45
|
+
bad = []
|
|
46
|
+
|
|
47
|
+
for path in sys.argv[1:]:
|
|
48
|
+
try:
|
|
49
|
+
blob = subprocess.check_output(['git', 'show', f':{path}'], stderr=subprocess.DEVNULL)
|
|
50
|
+
text = blob.decode('utf-8', errors='replace')
|
|
51
|
+
except Exception:
|
|
52
|
+
continue
|
|
53
|
+
for lineno, line in enumerate(text.splitlines(), 1):
|
|
54
|
+
if CYR.search(line):
|
|
55
|
+
bad.append((path, lineno, line.rstrip()))
|
|
56
|
+
|
|
57
|
+
if not bad:
|
|
58
|
+
sys.exit(0)
|
|
59
|
+
|
|
60
|
+
print("ERROR: Cyrillic characters in staged content. Repo is English-only (CLAUDE.md).\n")
|
|
61
|
+
for path, lineno, line in bad[:30]:
|
|
62
|
+
print(f" {path}:{lineno}: {line}")
|
|
63
|
+
if len(bad) > 30:
|
|
64
|
+
print(f" ... and {len(bad) - 30} more")
|
|
65
|
+
print("\nRewrite the affected lines in English, then re-stage and re-commit.")
|
|
66
|
+
print("Bypass (only if you have a reason): git commit --no-verify")
|
|
67
|
+
sys.exit(1)
|
|
68
|
+
PY
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
2
|
+
# Copyright (c) 2025 Open Computer Use Contributors
|
|
3
|
+
#
|
|
4
|
+
# CODEOWNERS — review routing for the next/v1 architecture work.
|
|
5
|
+
#
|
|
6
|
+
# Per CLAUDE.md "Testing & QA discipline → Code-review discipline":
|
|
7
|
+
# "CODEOWNERS routes every PR to the right reviewer."
|
|
8
|
+
#
|
|
9
|
+
# Order matters: the LAST matching pattern wins for each file. Place
|
|
10
|
+
# narrower patterns lower.
|
|
11
|
+
#
|
|
12
|
+
# Reference: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
|
|
13
|
+
|
|
14
|
+
# ---------------------------------------------------------------------------
|
|
15
|
+
# Default fallback — every file routes here unless overridden below.
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
17
|
+
* @Wide-Moat/maintainers
|
|
18
|
+
|
|
19
|
+
# ---------------------------------------------------------------------------
|
|
20
|
+
# Architecture work on next/v1 — bank-readiness territory.
|
|
21
|
+
# ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
# The Manifesto and its expanded sections — the load-bearing principles.
|
|
24
|
+
/docs/architecture/MANIFESTO.md @Wide-Moat/architects
|
|
25
|
+
/docs/architecture/manifesto/ @Wide-Moat/architects
|
|
26
|
+
|
|
27
|
+
# ADRs — both the architects team and the original author (set per-ADR via
|
|
28
|
+
# the `owner:` front-matter; GitHub doesn't read YAML, so we route the dir
|
|
29
|
+
# to architects and rely on PROCESS.md to ensure the ADR author is also
|
|
30
|
+
# requested as reviewer).
|
|
31
|
+
/docs/architecture/adr/ @Wide-Moat/architects
|
|
32
|
+
|
|
33
|
+
# Component specifications — architects review structurally, the component's
|
|
34
|
+
# named owner (per spec front-matter) is added per-PR by PROCESS.md.
|
|
35
|
+
/docs/architecture/components/ @Wide-Moat/architects
|
|
36
|
+
|
|
37
|
+
# Compliance mappings — security team's domain.
|
|
38
|
+
/docs/architecture/compliance/ @Wide-Moat/security
|
|
39
|
+
|
|
40
|
+
# Diagrams (Mermaid sources) — architects.
|
|
41
|
+
/docs/architecture/diagrams/ @Wide-Moat/architects
|
|
42
|
+
|
|
43
|
+
# Glossary and PROCESS — architects (low traffic, high consistency cost).
|
|
44
|
+
/docs/architecture/glossary.md @Wide-Moat/architects
|
|
45
|
+
/docs/architecture/PROCESS.md @Wide-Moat/architects
|
|
46
|
+
/docs/architecture/README.md @Wide-Moat/architects
|
|
47
|
+
|
|
48
|
+
# ---------------------------------------------------------------------------
|
|
49
|
+
# CI, security, and supply-chain plumbing — security team owns the gates.
|
|
50
|
+
# ---------------------------------------------------------------------------
|
|
51
|
+
/.github/workflows/security.yml @Wide-Moat/security
|
|
52
|
+
/.github/workflows/supply-chain.yml @Wide-Moat/security
|
|
53
|
+
/.github/workflows/docs-lint.yml @Wide-Moat/architects
|
|
54
|
+
/.github/security-exceptions.yml @Wide-Moat/security
|
|
55
|
+
/.github/CODEOWNERS @Wide-Moat/security @Wide-Moat/architects
|
|
56
|
+
/.vale/ @Wide-Moat/architects
|
|
57
|
+
/.markdownlint.yaml @Wide-Moat/architects
|
|
58
|
+
/.coderabbit.yaml @Wide-Moat/architects
|
|
59
|
+
/lychee.toml @Wide-Moat/architects
|
|
60
|
+
/scripts/docs-lint/ @Wide-Moat/architects
|
|
61
|
+
|
|
62
|
+
# ---------------------------------------------------------------------------
|
|
63
|
+
# Licensing and project-instructions surface — needs careful change-control.
|
|
64
|
+
# ---------------------------------------------------------------------------
|
|
65
|
+
/LICENSE @Wide-Moat/maintainers @Wide-Moat/security
|
|
66
|
+
/NOTICE @Wide-Moat/maintainers @Wide-Moat/security
|
|
67
|
+
/CLAUDE.md @Wide-Moat/architects @Wide-Moat/maintainers
|
|
68
|
+
/THIRD-PARTY-LICENSES.md @Wide-Moat/security
|
|
69
|
+
|
|
70
|
+
# ---------------------------------------------------------------------------
|
|
71
|
+
# High-risk runtime + deployment surface — security review mandatory.
|
|
72
|
+
# ---------------------------------------------------------------------------
|
|
73
|
+
|
|
74
|
+
# Sandbox base image; Docker socket; agent runtime — single highest-risk
|
|
75
|
+
# file in the repo.
|
|
76
|
+
/Dockerfile @Wide-Moat/security @Wide-Moat/maintainers
|
|
77
|
+
|
|
78
|
+
# Deployment recipes — anyone landing here is shipping infra changes.
|
|
79
|
+
/docker-compose.yml @Wide-Moat/maintainers @Wide-Moat/security
|
|
80
|
+
/docker-compose.webui.yml @Wide-Moat/maintainers @Wide-Moat/security
|
|
81
|
+
/docker-compose.test.yml @Wide-Moat/maintainers @Wide-Moat/security
|
|
82
|
+
|
|
83
|
+
# Supply-chain entry points — dependency churn is a security event.
|
|
84
|
+
/requirements.txt @Wide-Moat/security @Wide-Moat/maintainers
|
|
85
|
+
/package.json @Wide-Moat/security @Wide-Moat/maintainers
|
|
86
|
+
/package-lock.json @Wide-Moat/security @Wide-Moat/maintainers
|
|
87
|
+
/server.json @Wide-Moat/security @Wide-Moat/maintainers
|
|
88
|
+
|
|
89
|
+
# Helm chart — bank deployment substrate, scanned by checkov.
|
|
90
|
+
/helm/ @Wide-Moat/maintainers @Wide-Moat/security
|
|
91
|
+
|
|
92
|
+
# Orchestrator components — they hold the Docker socket.
|
|
93
|
+
/computer-use-server/ @Wide-Moat/maintainers
|
|
94
|
+
/openwebui/ @Wide-Moat/maintainers
|
|
95
|
+
/settings-wrapper/ @Wide-Moat/maintainers
|
|
96
|
+
/skills/ @Wide-Moat/maintainers
|
|
97
|
+
/cron/ @Wide-Moat/maintainers
|
|
98
|
+
|
|
99
|
+
# Shell scripts outside docs-lint — privileged execution paths.
|
|
100
|
+
/scripts/ @Wide-Moat/maintainers
|
|
101
|
+
/tests/ @Wide-Moat/maintainers
|
|
102
|
+
|
|
103
|
+
# All build/release/CI workflows — same blast radius as security.yml.
|
|
104
|
+
/.github/workflows/build.yml @Wide-Moat/security @Wide-Moat/maintainers
|
|
105
|
+
/.github/workflows/release.yml @Wide-Moat/security @Wide-Moat/maintainers
|
|
106
|
+
/.github/workflows/release-chart.yml @Wide-Moat/security @Wide-Moat/maintainers
|
|
107
|
+
/.github/workflows/helm.yml @Wide-Moat/security @Wide-Moat/maintainers
|
|
108
|
+
/.github/workflows/codeql.yml @Wide-Moat/security
|
|
109
|
+
|
|
110
|
+
# Dependency-bump automation — security + maintainers. Dependency bumps
|
|
111
|
+
# break lockfiles, not just SBOMs, so build needs to sign off too.
|
|
112
|
+
/.github/dependabot.yml @Wide-Moat/security @Wide-Moat/maintainers
|
|
113
|
+
|
|
114
|
+
# Issue + advisory surface.
|
|
115
|
+
/.github/ISSUE_TEMPLATE/ @Wide-Moat/maintainers @Wide-Moat/architects
|
|
116
|
+
# Dual-team on SECURITY.md so an out-of-office on one side does not
|
|
117
|
+
# block a security policy edit.
|
|
118
|
+
/SECURITY.md @Wide-Moat/security @Wide-Moat/maintainers
|
|
119
|
+
|
|
120
|
+
# Secret-scanner allowlist — every edit is a potential gate bypass.
|
|
121
|
+
# Dual-team for the same out-of-office reason.
|
|
122
|
+
/.gitleaks.toml @Wide-Moat/security @Wide-Moat/maintainers
|
|
123
|
+
|
|
124
|
+
# Release log.
|
|
125
|
+
/CHANGELOG.md @Wide-Moat/maintainers
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ADR proposal
|
|
3
|
+
about: Propose an architecture decision
|
|
4
|
+
title: "Decision: <title>"
|
|
5
|
+
labels: ["architecture", "adr-proposal", "next/v1"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
Per docs/architecture/PROCESS.md "Adding an ADR (3 steps)":
|
|
11
|
+
1. Open this issue.
|
|
12
|
+
2. Create adr/NNNN-<slug>.md from 0000-template.md (status: proposed).
|
|
13
|
+
3. Open PR. ADR moves to status: accepted only after PR merges.
|
|
14
|
+
|
|
15
|
+
ADRs are reserved for decisions that are (a) load-bearing, (b) hard to
|
|
16
|
+
reverse, or (c) cross ≥ 2 components. If your decision doesn't meet that
|
|
17
|
+
bar, write it inline in the relevant component spec instead.
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
## Question
|
|
21
|
+
|
|
22
|
+
What's the decision being made? One sentence, no preamble.
|
|
23
|
+
|
|
24
|
+
## Why is this an ADR (not an inline note)
|
|
25
|
+
|
|
26
|
+
- [ ] Load-bearing — other components depend on it being decided.
|
|
27
|
+
- [ ] Hard to reverse — undoing costs more than a typical refactor.
|
|
28
|
+
- [ ] Cross-component — affects ≥ 2 components or boundaries.
|
|
29
|
+
|
|
30
|
+
## Constraints
|
|
31
|
+
|
|
32
|
+
NFRs, threat-model entries, prior ADRs, regulatory requirements that bound the decision.
|
|
33
|
+
|
|
34
|
+
## Options (at least 2)
|
|
35
|
+
|
|
36
|
+
1. **Option A** — sketch
|
|
37
|
+
2. **Option B** — sketch
|
|
38
|
+
|
|
39
|
+
## Compliance / license / threat-model impact (early read)
|
|
40
|
+
|
|
41
|
+
Which framework controls might this affect? Any FSL dependency-policy interaction? Any threat-model entry it would mitigate?
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report something that's broken
|
|
4
|
+
title: "[Bug] "
|
|
5
|
+
labels: ["bug"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> ## ⛔ Stop — is this a security issue?
|
|
10
|
+
>
|
|
11
|
+
> Auth bypass, sandbox escape, credential exposure, RCE, or any other
|
|
12
|
+
> finding that could be exploited against a deployment **must NOT be
|
|
13
|
+
> filed here**. Use the private channel:
|
|
14
|
+
>
|
|
15
|
+
> <https://github.com/Wide-Moat/open-computer-use/security/advisories/new>
|
|
16
|
+
>
|
|
17
|
+
> Public bug reports do not get embargoed. Once submitted you cannot
|
|
18
|
+
> un-disclose the finding.
|
|
19
|
+
|
|
20
|
+
## What's broken
|
|
21
|
+
|
|
22
|
+
One sentence stating the observed behaviour. No marketing tone, no preamble.
|
|
23
|
+
|
|
24
|
+
## Steps to reproduce
|
|
25
|
+
|
|
26
|
+
1.
|
|
27
|
+
2.
|
|
28
|
+
3.
|
|
29
|
+
|
|
30
|
+
## Expected behaviour
|
|
31
|
+
|
|
32
|
+
What you thought would happen.
|
|
33
|
+
|
|
34
|
+
## Actual behaviour
|
|
35
|
+
|
|
36
|
+
What actually happened. Include error output, stack traces, log lines.
|
|
37
|
+
|
|
38
|
+
## Environment
|
|
39
|
+
|
|
40
|
+
- Branch / version:
|
|
41
|
+
- Deployment (Docker Compose / Helm / direct):
|
|
42
|
+
- OS + arch:
|
|
43
|
+
- Host kernel (`uname -a`):
|
|
44
|
+
- Container runtime (runc / kata / gVisor):
|
|
45
|
+
- Browser (if reporting an Open WebUI / Computer Use UI bug):
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
|
|
49
|
+
Anything else the maintainer needs to reproduce.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Component proposal
|
|
3
|
+
about: Propose a new component for the next/v1 architecture
|
|
4
|
+
title: "Component proposal: <name>"
|
|
5
|
+
labels: ["architecture", "component-proposal", "next/v1"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
Per docs/architecture/PROCESS.md "Adding a component (3 steps)":
|
|
11
|
+
1. Open this issue.
|
|
12
|
+
2. Create components/<NN>-<name>.md stub from the template.
|
|
13
|
+
3. Open PR. Discuss in PR review.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
## Purpose
|
|
17
|
+
|
|
18
|
+
One sentence: what role does this component play, and for whom?
|
|
19
|
+
|
|
20
|
+
## Boundaries (sketch)
|
|
21
|
+
|
|
22
|
+
What crosses in, what crosses out, what state does it own? Bullet points OK at this stage.
|
|
23
|
+
|
|
24
|
+
## Why now (not later)
|
|
25
|
+
|
|
26
|
+
What forces the decision now? If the answer is "in case", file this as a TBD instead.
|
|
27
|
+
|
|
28
|
+
## NFRs / trust zones it interacts with
|
|
29
|
+
|
|
30
|
+
Cite manifesto/02-nfrs.md entries or architecture/02-trust-boundaries.md zones it touches.
|
|
31
|
+
|
|
32
|
+
## Dependencies (BoM impact)
|
|
33
|
+
|
|
34
|
+
Does this introduce new third-party deps? List candidates and license — see CLAUDE.md "Dependency policy".
|
|
35
|
+
|
|
36
|
+
## Anti-pattern alternatives
|
|
37
|
+
|
|
38
|
+
What we explicitly will NOT do for this component.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
2
|
+
# Copyright (c) 2025 Open Computer Use Contributors
|
|
3
|
+
#
|
|
4
|
+
# Issue chooser configuration. Disables the free-form "Open a blank
|
|
5
|
+
# issue" option so contributors pick a template — keeps backlog
|
|
6
|
+
# triagable and matches PROCESS.md flows.
|
|
7
|
+
|
|
8
|
+
blank_issues_enabled: false
|
|
9
|
+
contact_links:
|
|
10
|
+
- name: Architecture discussion
|
|
11
|
+
url: https://github.com/Wide-Moat/open-computer-use/discussions/categories/architecture
|
|
12
|
+
about: For open-ended architecture discussion that isn't yet a concrete decision or component proposal. Promote to an issue once the question crystallizes.
|
|
13
|
+
- name: Security disclosure
|
|
14
|
+
url: https://github.com/Wide-Moat/open-computer-use/security/advisories/new
|
|
15
|
+
about: Report a security vulnerability privately. Do NOT open a public issue for security problems.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Dependency proposal
|
|
3
|
+
about: Propose a new third-party dependency (Bill of Materials)
|
|
4
|
+
title: "Dependency proposal: <component> = <pick>"
|
|
5
|
+
labels: ["architecture", "dependency", "next/v1"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
Per docs/architecture/PROCESS.md "Adding a dependency (Bill of Materials)":
|
|
11
|
+
1. Open this issue.
|
|
12
|
+
2. Add a row to manifesto/05-licensing-posture.md BoM.
|
|
13
|
+
3. Reject if any of: AGPL (any), BSL, BUSL (other than our own past
|
|
14
|
+
versions), SSPL, CC-NC, commercial-only-source, sole-maintainer
|
|
15
|
+
npm/PyPI without provenance.
|
|
16
|
+
|
|
17
|
+
"Heavier and vendor-backed beats lighter and unknown."
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
## What component this satisfies
|
|
21
|
+
|
|
22
|
+
E.g. "identity provider", "secrets store", "egress proxy".
|
|
23
|
+
|
|
24
|
+
## Proposed dependency
|
|
25
|
+
|
|
26
|
+
- Name + repo URL:
|
|
27
|
+
- Version pin (initial):
|
|
28
|
+
- License:
|
|
29
|
+
- Bundled or not-bundled (per CLAUDE.md "Dependency policy"):
|
|
30
|
+
- Supply-chain attestation:
|
|
31
|
+
- [ ] SBOM published upstream
|
|
32
|
+
- [ ] Reproducible build documented
|
|
33
|
+
- [ ] Signed releases (Cosign / Sigstore / equivalent)
|
|
34
|
+
- [ ] Cosign-attested artifacts
|
|
35
|
+
- Fulcio certificate identity verified against (paste the
|
|
36
|
+
`--certificate-identity-regexp` you used):
|
|
37
|
+
|
|
38
|
+
## Maintainer health (CLAUDE.md "Supply-chain gate")
|
|
39
|
+
|
|
40
|
+
- Named maintainers in the last 12 months (`git shortlog -sne --since=12.months`):
|
|
41
|
+
- Bus factor: how many people merged ≥ 5% of commits? **≥ 2 required.**
|
|
42
|
+
- Last release date and cadence:
|
|
43
|
+
- Open security advisories on the project:
|
|
44
|
+
- Sole-maintainer? **REJECT** unless a foundation owns the namespace.
|
|
45
|
+
|
|
46
|
+
## License gate
|
|
47
|
+
|
|
48
|
+
- [ ] Apache-2.0, MIT, BSD-2/3, MPL-2.0, LGPL-2.1 (separate service), PostgreSQL ✓
|
|
49
|
+
- [ ] AGPL (any), BSL, BUSL (not ours), SSPL, CC-NC, commercial-only — REJECT
|
|
50
|
+
|
|
51
|
+
## Enterprise-grade check
|
|
52
|
+
|
|
53
|
+
- [ ] Vendor-backed or named foundation (CNCF, ASF, OpenInfra, ...)?
|
|
54
|
+
- [ ] Bank-audit-ready upstream maintenance posture?
|
|
55
|
+
- [ ] Alternatives considered (≥ 1):
|
|
56
|
+
|
|
57
|
+
## Anti-pattern alternatives we explicitly reject
|
|
58
|
+
|
|
59
|
+
E.g. "we will not pin Vault (BUSL) directly — OpenBao instead."
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest a new feature or improvement
|
|
4
|
+
title: '[Feature] '
|
|
5
|
+
labels: enhancement
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Problem
|
|
9
|
+
What problem does this solve?
|
|
10
|
+
|
|
11
|
+
## Proposed Solution
|
|
12
|
+
How should it work?
|
|
13
|
+
|
|
14
|
+
## Alternatives Considered
|
|
15
|
+
Any other approaches you've thought about.
|