jishushell 0.4.24 → 0.5.15
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/INSTALL-NOTICE +11 -0
- package/apps/anythingllm-container.yaml +287 -0
- package/apps/browserless-chromium-container.yaml +90 -0
- package/apps/filebrowser-container.yaml +163 -0
- package/apps/hermes-container.yaml +36 -2
- package/apps/ollama-binary.yaml +91 -90
- package/apps/ollama-cpu-container.yaml +8 -1
- package/apps/ollama-with-hollama-binary.yaml +91 -90
- package/apps/openclaw-binary.yaml +38 -1
- package/apps/openclaw-container.yaml +45 -2
- package/apps/openclaw-with-ollama-container.yaml +11 -2
- package/apps/openclaw-with-searxng-container.yaml +26 -2
- package/apps/openwebui-container.yaml +45 -1
- package/apps/playwright-container.yaml +7 -1
- package/apps/searxng-container.yaml +58 -7
- package/apps/weknora-container.yaml +471 -0
- package/dist/cli/app.js +79 -9
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/doctor.d.ts +12 -12
- package/dist/cli/doctor.js +242 -55
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/llm.d.ts +4 -3
- package/dist/cli/llm.js +4 -3
- package/dist/cli/llm.js.map +1 -1
- package/dist/cli/panel.d.ts +6 -5
- package/dist/cli/panel.js +10 -9
- package/dist/cli/panel.js.map +1 -1
- package/dist/config.d.ts +19 -0
- package/dist/config.js +99 -1
- package/dist/config.js.map +1 -1
- package/dist/control.d.ts +7 -6
- package/dist/control.js +7 -6
- package/dist/control.js.map +1 -1
- package/dist/install.js +3 -3
- package/dist/install.js.map +1 -1
- package/dist/routes/agent-apps.d.ts +1 -1
- package/dist/routes/agent-apps.js +1 -1
- package/dist/routes/apps.js +44 -11
- package/dist/routes/apps.js.map +1 -1
- package/dist/routes/auth.js +5 -2
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/backup.js +64 -11
- package/dist/routes/backup.js.map +1 -1
- package/dist/routes/external-mounts.d.ts +17 -0
- package/dist/routes/external-mounts.js +73 -0
- package/dist/routes/external-mounts.js.map +1 -0
- package/dist/routes/file-mounts.d.ts +13 -0
- package/dist/routes/file-mounts.js +90 -0
- package/dist/routes/file-mounts.js.map +1 -0
- package/dist/routes/files-organize.d.ts +28 -0
- package/dist/routes/files-organize.js +167 -0
- package/dist/routes/files-organize.js.map +1 -0
- package/dist/routes/files.d.ts +31 -0
- package/dist/routes/files.js +321 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/instances.js +826 -17
- package/dist/routes/instances.js.map +1 -1
- package/dist/routes/internal.d.ts +2 -0
- package/dist/routes/internal.js +59 -0
- package/dist/routes/internal.js.map +1 -0
- package/dist/routes/llm.js +24 -35
- package/dist/routes/llm.js.map +1 -1
- package/dist/routes/setup.js +10 -10
- package/dist/routes/setup.js.map +1 -1
- package/dist/routes/system.js +1 -1
- package/dist/routes/system.js.map +1 -1
- package/dist/routes/webdav.d.ts +17 -0
- package/dist/routes/webdav.js +114 -0
- package/dist/routes/webdav.js.map +1 -0
- package/dist/server.d.ts +9 -0
- package/dist/server.js +751 -20
- package/dist/server.js.map +1 -1
- package/dist/services/agent-apps/catalog.js +4 -3
- package/dist/services/agent-apps/catalog.js.map +1 -1
- package/dist/services/agent-apps/index.d.ts +1 -1
- package/dist/services/agent-apps/index.js +1 -1
- package/dist/services/agent-apps/installers/adapter.d.ts +1 -1
- package/dist/services/agent-apps/installers/adapter.js +1 -1
- package/dist/services/agent-apps/installers/shell-script.d.ts +1 -1
- package/dist/services/agent-apps/installers/shell-script.js +3 -3
- package/dist/services/agent-apps/installers/shell-script.js.map +1 -1
- package/dist/services/agent-apps/types.d.ts +2 -2
- package/dist/services/agent-apps/types.js +1 -1
- package/dist/services/app/app-compiler.d.ts +1 -1
- package/dist/services/app/app-compiler.js +5 -5
- package/dist/services/app/app-compiler.js.map +1 -1
- package/dist/services/app/app-manager.d.ts +25 -1
- package/dist/services/app/app-manager.js +829 -150
- package/dist/services/app/app-manager.js.map +1 -1
- package/dist/services/app/custom-manager.js.map +1 -1
- package/dist/services/app/hermes-agent-manager.js +7 -4
- package/dist/services/app/hermes-agent-manager.js.map +1 -1
- package/dist/services/app/ollama-manager.js +1 -1
- package/dist/services/app/ollama-manager.js.map +1 -1
- package/dist/services/app/openclaw-manager.js +20 -3
- package/dist/services/app/openclaw-manager.js.map +1 -1
- package/dist/services/app/platform-transform.d.ts +32 -0
- package/dist/services/app/platform-transform.js +65 -0
- package/dist/services/app/platform-transform.js.map +1 -0
- package/dist/services/app/provide-resolver.d.ts +29 -0
- package/dist/services/app/provide-resolver.js +112 -0
- package/dist/services/app/provide-resolver.js.map +1 -0
- package/dist/services/app-passwords.d.ts +61 -0
- package/dist/services/app-passwords.js +173 -0
- package/dist/services/app-passwords.js.map +1 -0
- package/dist/services/backup-manager.d.ts +11 -0
- package/dist/services/backup-manager.js +177 -4
- package/dist/services/backup-manager.js.map +1 -1
- package/dist/services/capability-endpoint-validator.d.ts +41 -0
- package/dist/services/capability-endpoint-validator.js +104 -0
- package/dist/services/capability-endpoint-validator.js.map +1 -0
- package/dist/services/capability-health.d.ts +16 -0
- package/dist/services/capability-health.js +121 -0
- package/dist/services/capability-health.js.map +1 -0
- package/dist/services/capability-registry.d.ts +106 -0
- package/dist/services/capability-registry.js +313 -0
- package/dist/services/capability-registry.js.map +1 -0
- package/dist/services/connection-apply.d.ts +91 -0
- package/dist/services/connection-apply.js +475 -0
- package/dist/services/connection-apply.js.map +1 -0
- package/dist/services/connection-resolver.d.ts +65 -0
- package/dist/services/connection-resolver.js +281 -0
- package/dist/services/connection-resolver.js.map +1 -0
- package/dist/services/connection-transactor.d.ts +39 -0
- package/dist/services/connection-transactor.js +351 -0
- package/dist/services/connection-transactor.js.map +1 -0
- package/dist/services/external-mounts.d.ts +40 -0
- package/dist/services/external-mounts.js +187 -0
- package/dist/services/external-mounts.js.map +1 -0
- package/dist/services/files-manager.d.ts +252 -0
- package/dist/services/files-manager.js +1075 -0
- package/dist/services/files-manager.js.map +1 -0
- package/dist/services/files-mounts.d.ts +42 -0
- package/dist/services/files-mounts.js +207 -0
- package/dist/services/files-mounts.js.map +1 -0
- package/dist/services/instance-manager.d.ts +13 -0
- package/dist/services/instance-manager.js +138 -46
- package/dist/services/instance-manager.js.map +1 -1
- package/dist/services/llm-proxy/index.d.ts +16 -2
- package/dist/services/llm-proxy/index.js +48 -44
- package/dist/services/llm-proxy/index.js.map +1 -1
- package/dist/services/llm-proxy/probe.d.ts +6 -0
- package/dist/services/llm-proxy/probe.js +85 -0
- package/dist/services/llm-proxy/probe.js.map +1 -0
- package/dist/services/llm-proxy/ssrf.d.ts +1 -0
- package/dist/services/llm-proxy/ssrf.js +24 -9
- package/dist/services/llm-proxy/ssrf.js.map +1 -1
- package/dist/services/nomad-manager.d.ts +4 -0
- package/dist/services/nomad-manager.js +428 -35
- package/dist/services/nomad-manager.js.map +1 -1
- package/dist/services/organize/applier.d.ts +46 -0
- package/dist/services/organize/applier.js +218 -0
- package/dist/services/organize/applier.js.map +1 -0
- package/dist/services/organize/rules.d.ts +57 -0
- package/dist/services/organize/rules.js +286 -0
- package/dist/services/organize/rules.js.map +1 -0
- package/dist/services/organize/scanner.d.ts +50 -0
- package/dist/services/organize/scanner.js +366 -0
- package/dist/services/organize/scanner.js.map +1 -0
- package/dist/services/organize/store.d.ts +14 -0
- package/dist/services/organize/store.js +82 -0
- package/dist/services/organize/store.js.map +1 -0
- package/dist/services/panel-manager.js +20 -1
- package/dist/services/panel-manager.js.map +1 -1
- package/dist/services/process-manager.js +4 -3
- package/dist/services/process-manager.js.map +1 -1
- package/dist/services/runtime/adapters/hermes.d.ts +30 -1
- package/dist/services/runtime/adapters/hermes.js +219 -6
- package/dist/services/runtime/adapters/hermes.js.map +1 -1
- package/dist/services/runtime/adapters/openclaw-mcporter.d.ts +45 -0
- package/dist/services/runtime/adapters/openclaw-mcporter.js +108 -0
- package/dist/services/runtime/adapters/openclaw-mcporter.js.map +1 -0
- package/dist/services/runtime/adapters/openclaw-routes.d.ts +8 -2
- package/dist/services/runtime/adapters/openclaw-routes.js +68 -0
- package/dist/services/runtime/adapters/openclaw-routes.js.map +1 -1
- package/dist/services/runtime/adapters/openclaw.d.ts +177 -0
- package/dist/services/runtime/adapters/openclaw.js +1171 -11
- package/dist/services/runtime/adapters/openclaw.js.map +1 -1
- package/dist/services/runtime/instance.d.ts +1 -1
- package/dist/services/runtime/instance.js +1 -1
- package/dist/services/runtime/instance.js.map +1 -1
- package/dist/services/runtime/mcp-shims/anythingllm-shim.d.ts +46 -0
- package/dist/services/runtime/mcp-shims/anythingllm-shim.js +281 -0
- package/dist/services/runtime/mcp-shims/anythingllm-shim.js.map +1 -0
- package/dist/services/runtime/mcp-shims/drive-shim.d.ts +54 -0
- package/dist/services/runtime/mcp-shims/drive-shim.js +489 -0
- package/dist/services/runtime/mcp-shims/drive-shim.js.map +1 -0
- package/dist/services/runtime/mcp-shims/firewall.d.ts +26 -0
- package/dist/services/runtime/mcp-shims/firewall.js +129 -0
- package/dist/services/runtime/mcp-shims/firewall.js.map +1 -0
- package/dist/services/runtime/mcp-shims/searxng-shim.d.ts +27 -0
- package/dist/services/runtime/mcp-shims/searxng-shim.js +125 -0
- package/dist/services/runtime/mcp-shims/searxng-shim.js.map +1 -0
- package/dist/services/runtime/mcp-shims/write-mcp-entry.d.ts +83 -0
- package/dist/services/runtime/mcp-shims/write-mcp-entry.js +127 -0
- package/dist/services/runtime/mcp-shims/write-mcp-entry.js.map +1 -0
- package/dist/services/runtime/migrations.d.ts +8 -0
- package/dist/services/runtime/migrations.js +100 -0
- package/dist/services/runtime/migrations.js.map +1 -1
- package/dist/services/runtime/types.d.ts +46 -0
- package/dist/services/setup-manager.js +99 -24
- package/dist/services/setup-manager.js.map +1 -1
- package/dist/services/suggestions.d.ts +27 -0
- package/dist/services/suggestions.js +133 -0
- package/dist/services/suggestions.js.map +1 -0
- package/dist/services/task-registry.js +4 -2
- package/dist/services/task-registry.js.map +1 -1
- package/dist/services/telemetry/device-fingerprint.d.ts +1 -1
- package/dist/services/telemetry/device-fingerprint.js +1 -1
- package/dist/services/types-shim.d.ts +16 -0
- package/dist/services/types-shim.js +2 -0
- package/dist/services/types-shim.js.map +1 -0
- package/dist/services/webdav/server.d.ts +24 -0
- package/dist/services/webdav/server.js +420 -0
- package/dist/services/webdav/server.js.map +1 -0
- package/dist/services/webdav/xml-builder.d.ts +73 -0
- package/dist/services/webdav/xml-builder.js +156 -0
- package/dist/services/webdav/xml-builder.js.map +1 -0
- package/dist/services/workspace-builder.d.ts +29 -0
- package/dist/services/workspace-builder.js +188 -0
- package/dist/services/workspace-builder.js.map +1 -0
- package/dist/types.d.ts +231 -1
- package/dist/utils/instance-lock.d.ts +22 -0
- package/dist/utils/instance-lock.js +48 -0
- package/dist/utils/instance-lock.js.map +1 -0
- package/dist/utils/path-locks.d.ts +30 -0
- package/dist/utils/path-locks.js +63 -0
- package/dist/utils/path-locks.js.map +1 -0
- package/dist/utils/path-safety.d.ts +41 -0
- package/dist/utils/path-safety.js +119 -0
- package/dist/utils/path-safety.js.map +1 -0
- package/dist/utils/safe-json.js +55 -22
- package/dist/utils/safe-json.js.map +1 -1
- package/dist/utils/safe-write.d.ts +24 -0
- package/dist/utils/safe-write.js +82 -0
- package/dist/utils/safe-write.js.map +1 -0
- package/install/jishu-install.sh +323 -27
- package/install/jishu-uninstall.sh +353 -20
- package/package.json +18 -1
- package/public/assets/Dashboard-BdWPtroF.js +1 -0
- package/public/assets/{HermesChatPanel-mFSureyc.js → HermesChatPanel-B_2HlVBQ.js} +1 -1
- package/public/assets/HermesConfigForm-DVlhg3WV.js +4 -0
- package/public/assets/{InitPassword-CVA8wQA6.js → InitPassword-D7glTExX.js} +1 -1
- package/public/assets/InstanceDetail-CxSy2cpe.js +92 -0
- package/public/assets/{Login-BWsZH2mu.js → Login-Cfr5c2sv.js} +1 -1
- package/public/assets/NewInstance-BIYDmJis.js +1 -0
- package/public/assets/ProviderRecommendations-BuRnvRcI.js +1 -0
- package/public/assets/Settings-Cc-tYBil.js +1 -0
- package/public/assets/Setup-lGZEk5jq.js +1 -0
- package/public/assets/{WeixinLoginPanel-CnjR8xMu.js → WeixinLoginPanel-CoGqzxeV.js} +2 -2
- package/public/assets/index-87IJXG-w.css +1 -0
- package/public/assets/index-BZc5zH7u.js +19 -0
- package/public/assets/providers-DtNXh9JD.js +1 -0
- package/public/assets/registry-BWnkJgZ1.js +2 -0
- package/public/assets/{usePolling-Do5Erqm_.js → usePolling-CwwT9KrC.js} +1 -1
- package/public/assets/{vendor-i18n-ucpM0OR0.js → vendor-i18n-y9V7Sfuu.js} +1 -1
- package/public/assets/{vendor-react-Bk1hRGiY.js → vendor-react-BWrEVJVb.js} +6 -6
- package/public/index.html +4 -4
- package/scripts/check-app-spec.mjs +457 -0
- package/scripts/check-i18n.mjs +154 -0
- package/scripts/check-new-file-tests.mjs +230 -0
- package/scripts/check-quarantine-expiry.mjs +105 -0
- package/scripts/perf/README.md +49 -0
- package/scripts/perf/auth.js +99 -0
- package/scripts/perf/config.js +63 -0
- package/scripts/perf/instances.js +143 -0
- package/scripts/perf/proxy.js +96 -0
- package/scripts/run.sh +4 -4
- package/scripts/smoke/files-w1.sh +142 -0
- package/scripts/smoke-backend.mjs +122 -0
- package/scripts/smoke-post-publish.mjs +346 -0
- package/public/assets/Dashboard-B-JoOjBQ.js +0 -1
- package/public/assets/HermesConfigForm-DvR05LK1.js +0 -4
- package/public/assets/InstanceDetail-DcZW2QGO.js +0 -91
- package/public/assets/NewInstance-BCIrAd86.js +0 -1
- package/public/assets/Settings-xkDcduFz.js +0 -1
- package/public/assets/Setup-Cfuwj4gV.js +0 -1
- package/public/assets/index-CPhVFEsx.css +0 -1
- package/public/assets/index-DQsM6Joa.js +0 -19
- package/public/assets/providers-V-vwrExZ.js +0 -1
- package/public/assets/registry-B4UFJdpA.js +0 -2
|
@@ -2,7 +2,7 @@ id: openclaw-with-searxng-container
|
|
|
2
2
|
name: OpenClaw With SearXNG Container
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
5
|
+
min_version: "0.4.30"
|
|
6
6
|
agentType: openclaw
|
|
7
7
|
description: "将 SearXNG 作为 sidecar 子 task 安装并运行,并注入 OpenClaw 搜索环境"
|
|
8
8
|
singleInstance: false
|
|
@@ -46,7 +46,11 @@ tasks:
|
|
|
46
46
|
args: ["gateway", "run", "--port", "18789", "--allow-unconfigured"]
|
|
47
47
|
env:
|
|
48
48
|
NODE_ENV: production
|
|
49
|
-
SEARCH_API_BASE_URL
|
|
49
|
+
# SEARCH_API_BASE_URL injected by Connection apply hook (search category, §13).
|
|
50
|
+
# Single-candidate fallback (`requires: search-searxng`) auto-binds the
|
|
51
|
+
# sidecar SearXNG below on first start, so meta-app UX stays "open the
|
|
52
|
+
# box and it works".
|
|
53
|
+
SEARCH_API_BASE_URL: "${requires.SEARCH_API_BASE_URL}"
|
|
50
54
|
resources:
|
|
51
55
|
cpu: "1000m"
|
|
52
56
|
memory: "1024Mi"
|
|
@@ -65,8 +69,28 @@ tasks:
|
|
|
65
69
|
|
|
66
70
|
provides:
|
|
67
71
|
- capability: "openclaw-dashboard"
|
|
72
|
+
task: "gateway"
|
|
68
73
|
port: 18789
|
|
74
|
+
protocol: "http"
|
|
69
75
|
description: "OpenClaw Dashboard"
|
|
76
|
+
- capability: "llm-agent"
|
|
77
|
+
task: "gateway"
|
|
78
|
+
port: 18789
|
|
79
|
+
protocol: "http"
|
|
80
|
+
path: "/v1"
|
|
81
|
+
description: "OpenAI-compatible agent endpoint backed by OpenClaw"
|
|
82
|
+
auth:
|
|
83
|
+
kind: "bearer"
|
|
84
|
+
tokenSource: "instance.config.gateway.auth.token"
|
|
85
|
+
|
|
86
|
+
requires:
|
|
87
|
+
- capability: "search-searxng"
|
|
88
|
+
inject_as: "SEARCH_API_BASE_URL"
|
|
89
|
+
required: false
|
|
90
|
+
- capability: "files"
|
|
91
|
+
inject_as: "FILES_BROWSER_URL"
|
|
92
|
+
required: false
|
|
93
|
+
cardinality: "one"
|
|
70
94
|
|
|
71
95
|
lifecycle:
|
|
72
96
|
install:
|
|
@@ -2,7 +2,7 @@ id: openwebui-container
|
|
|
2
2
|
name: Open WebUI
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
5
|
+
min_version: "0.4.30"
|
|
6
6
|
description: "使用 Open WebUI 提供自托管的大模型 Web 界面,容器模式由 Nomad 管理生命周期"
|
|
7
7
|
singleInstance: false
|
|
8
8
|
|
|
@@ -11,6 +11,11 @@ tasks:
|
|
|
11
11
|
role: service
|
|
12
12
|
runtime: container
|
|
13
13
|
image: "ghcr.io/open-webui/open-webui:main"
|
|
14
|
+
# Run as the panel user's uid:gid (typically pi=1000:1000). Bind-mount
|
|
15
|
+
# source `~/.jishushell/apps/${app_id}/data` is owned by the panel user,
|
|
16
|
+
# so the container can read/write it directly — no chown, no
|
|
17
|
+
# CAP_DAC_OVERRIDE, no DB readonly errors. Mirrors hermes / openclaw.
|
|
18
|
+
user: "host"
|
|
14
19
|
env:
|
|
15
20
|
HOME: "/app/backend/data"
|
|
16
21
|
PORT: "8080"
|
|
@@ -19,6 +24,32 @@ tasks:
|
|
|
19
24
|
HF_HOME: "/app/backend/data/.cache/huggingface"
|
|
20
25
|
TRANSFORMERS_CACHE: "/app/backend/data/.cache/huggingface/transformers"
|
|
21
26
|
SENTENCE_TRANSFORMERS_HOME: "/app/backend/data/.cache/sentence-transformers"
|
|
27
|
+
# OpenWebUI's start.sh writes a generated WEBUI_SECRET_KEY to a key
|
|
28
|
+
# file. The default path is `.webui_secret_key` in the image's
|
|
29
|
+
# /app/backend WORKDIR, which is owned by root and unwritable when
|
|
30
|
+
# running as uid 1000. Redirect to the bind-mounted (and writable)
|
|
31
|
+
# data dir so the key persists across restarts and survives image
|
|
32
|
+
# upgrades.
|
|
33
|
+
WEBUI_SECRET_KEY_FILE: "/app/backend/data/.webui_secret_key"
|
|
34
|
+
# Open WebUI marks OPENAI_API_BASE_URL / OPENAI_API_KEY as PersistentConfig:
|
|
35
|
+
# without this flag, the first start writes them to the internal DB and
|
|
36
|
+
# subsequent restarts ignore env, defeating Connections "Save & Restart"
|
|
37
|
+
# rebinds. Disabling persistent config means the Admin UI's manual
|
|
38
|
+
# OpenAI config doesn't survive restarts — that's the trade-off
|
|
39
|
+
# JishuShell takes to own LLM configuration via Connections (§13.3.2.1).
|
|
40
|
+
ENABLE_PERSISTENT_CONFIG: "False"
|
|
41
|
+
# JishuShell ships Open WebUI as a chat front-end only — RAG /
|
|
42
|
+
# reranker / Whisper STT all need ML model downloads from
|
|
43
|
+
# HuggingFace at first boot (~500 MB – 1.5 GB). On slow outbound
|
|
44
|
+
# networks (Raspberry Pi behind throttled NAT) this blocks
|
|
45
|
+
# health checks for hours. Bypassing them keeps the boot path
|
|
46
|
+
# to "FastAPI up in <30s". Users who want RAG/STT can flip these
|
|
47
|
+
# back from Admin UI and accept the one-time download.
|
|
48
|
+
BYPASS_EMBEDDING_AND_RETRIEVAL: "True"
|
|
49
|
+
RAG_EMBEDDING_MODEL: ""
|
|
50
|
+
RAG_RERANKING_MODEL: ""
|
|
51
|
+
WHISPER_MODEL: ""
|
|
52
|
+
AUDIO_STT_ENGINE: ""
|
|
22
53
|
resources:
|
|
23
54
|
cpu: "1000m"
|
|
24
55
|
memory: "1024Mi"
|
|
@@ -41,10 +72,23 @@ tasks:
|
|
|
41
72
|
|
|
42
73
|
provides:
|
|
43
74
|
- capability: "openwebui-web"
|
|
75
|
+
task: "openwebui"
|
|
76
|
+
port: 3000
|
|
77
|
+
protocol: "http"
|
|
78
|
+
description: "Open WebUI Web 界面(legacy capability,请改用 web-openwebui)"
|
|
79
|
+
- capability: "web-openwebui"
|
|
80
|
+
task: "openwebui"
|
|
44
81
|
port: 3000
|
|
45
82
|
protocol: "http"
|
|
46
83
|
description: "Open WebUI Web 界面"
|
|
47
84
|
|
|
85
|
+
requires:
|
|
86
|
+
- capability: "llm"
|
|
87
|
+
inject_as: "OPENAI_API_BASE_URL"
|
|
88
|
+
apply: "openai-env"
|
|
89
|
+
cardinality: "one"
|
|
90
|
+
required: false
|
|
91
|
+
|
|
48
92
|
lifecycle:
|
|
49
93
|
install:
|
|
50
94
|
- downloadImage: "ghcr.io/open-webui/open-webui:main"
|
|
@@ -2,7 +2,7 @@ id: playwright-container
|
|
|
2
2
|
name: Playwright
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
5
|
+
min_version: "0.4.30"
|
|
6
6
|
description: "在容器中启动 Playwright UI,通过浏览器查看和管理测试运行"
|
|
7
7
|
singleInstance: false
|
|
8
8
|
|
|
@@ -52,9 +52,15 @@ tasks:
|
|
|
52
52
|
|
|
53
53
|
provides:
|
|
54
54
|
- capability: "playwright-ui"
|
|
55
|
+
task: "playwright-ui"
|
|
55
56
|
port: 14567
|
|
56
57
|
protocol: "http"
|
|
57
58
|
description: "Playwright UI Web 界面"
|
|
59
|
+
# browser-playwright (CDP endpoint) is TODO — needs a sidecar task that runs
|
|
60
|
+
# `npx playwright launch-server --browser chromium --hostname 0.0.0.0`,
|
|
61
|
+
# captures the token-bearing ws URL into a file/env, and registers it as a
|
|
62
|
+
# capability with protocol=ws. Until the sidecar lands, OpenClaw / Hermes
|
|
63
|
+
# browser slots cannot bind to this app via the Connections UI.
|
|
58
64
|
|
|
59
65
|
lifecycle:
|
|
60
66
|
install:
|
|
@@ -2,9 +2,9 @@ id: searxng-container
|
|
|
2
2
|
name: SearXNG
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
6
|
-
description: "
|
|
7
|
-
singleInstance:
|
|
5
|
+
min_version: "0.4.30"
|
|
6
|
+
description: "隐私优先的元搜索引擎"
|
|
7
|
+
singleInstance: true
|
|
8
8
|
|
|
9
9
|
tasks:
|
|
10
10
|
- name: searxng
|
|
@@ -20,7 +20,8 @@ tasks:
|
|
|
20
20
|
memory: "512Mi"
|
|
21
21
|
ports:
|
|
22
22
|
- name: http
|
|
23
|
-
port:
|
|
23
|
+
port: 18080
|
|
24
|
+
container_port: 8080
|
|
24
25
|
visibility: external
|
|
25
26
|
volumes:
|
|
26
27
|
- source: "~/.jishushell/apps/${app_id}/settings/settings.yml"
|
|
@@ -40,12 +41,62 @@ tasks:
|
|
|
40
41
|
|
|
41
42
|
provides:
|
|
42
43
|
- capability: "web-ui"
|
|
43
|
-
|
|
44
|
+
task: "searxng"
|
|
45
|
+
port: 18080
|
|
46
|
+
protocol: "http"
|
|
47
|
+
description: "SearXNG Web UI(legacy capability,请改用 web-searxng)"
|
|
48
|
+
- capability: "web-searxng"
|
|
49
|
+
task: "searxng"
|
|
50
|
+
port: 18080
|
|
51
|
+
protocol: "http"
|
|
44
52
|
description: "SearXNG Web UI"
|
|
45
|
-
- capability: "search-
|
|
46
|
-
|
|
53
|
+
- capability: "search-searxng"
|
|
54
|
+
task: "searxng"
|
|
55
|
+
port: 18080
|
|
47
56
|
path: "/search"
|
|
57
|
+
protocol: "http"
|
|
48
58
|
description: "SearXNG 搜索 API,支持 JSON 格式 (/search?q=xxx&format=json)"
|
|
59
|
+
# PR 8 / docs §17 — canonical MCP surface that LLM-binding adapters
|
|
60
|
+
# (Hermes, future MCP-capable runtimes) expose via the in-tree MCP
|
|
61
|
+
# firewall. Description is deliberately minimal so MiniMax-class
|
|
62
|
+
# models don't get prompt-injected by upstream wording into adding
|
|
63
|
+
# dates / translating queries / auto-filling time_range filters.
|
|
64
|
+
# Mirrors OpenClaw's built-in searxng plugin description verbatim.
|
|
65
|
+
tool_schema:
|
|
66
|
+
name: "searxng_web_search"
|
|
67
|
+
description: "Search the web using a self-hosted SearXNG instance. Returns titles, URLs, and snippets."
|
|
68
|
+
parameters:
|
|
69
|
+
type: object
|
|
70
|
+
properties:
|
|
71
|
+
query:
|
|
72
|
+
type: string
|
|
73
|
+
description: "Search query string."
|
|
74
|
+
count:
|
|
75
|
+
type: number
|
|
76
|
+
description: "Number of results to return (1-10)."
|
|
77
|
+
minimum: 1
|
|
78
|
+
maximum: 10
|
|
79
|
+
categories:
|
|
80
|
+
type: string
|
|
81
|
+
description: "Optional comma-separated categories such as general, news, or science."
|
|
82
|
+
language:
|
|
83
|
+
type: string
|
|
84
|
+
description: "Optional language code such as en, de, or fr."
|
|
85
|
+
required:
|
|
86
|
+
- query
|
|
87
|
+
upstream:
|
|
88
|
+
command: npx
|
|
89
|
+
args:
|
|
90
|
+
- "-y"
|
|
91
|
+
- "mcp-searxng"
|
|
92
|
+
env_template:
|
|
93
|
+
# ${SEARCH_API_BASE_URL_ORIGIN} = parsed URL with /search stripped.
|
|
94
|
+
# The URL stays at the registry-resolved host:port at PUT
|
|
95
|
+
# /connections time; on host IP changes, the framework re-renders
|
|
96
|
+
# this env on next instance start (PR 9 phaseRefreshConnections),
|
|
97
|
+
# so users only need to restart the consuming agent — no re-bind.
|
|
98
|
+
SEARXNG_URL: "${SEARCH_API_BASE_URL_ORIGIN}"
|
|
99
|
+
wrap_outputs: true
|
|
49
100
|
|
|
50
101
|
lifecycle:
|
|
51
102
|
install:
|