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
package/apps/ollama-binary.yaml
CHANGED
|
@@ -2,7 +2,7 @@ id: ollama-binary
|
|
|
2
2
|
name: Ollama
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
5
|
+
min_version: "0.4.30"
|
|
6
6
|
description: "通过官方脚本,安装并运行Ollama"
|
|
7
7
|
singleInstance: true
|
|
8
8
|
|
|
@@ -62,8 +62,15 @@ provides:
|
|
|
62
62
|
- cmd: "help"
|
|
63
63
|
description: "Help about any command"
|
|
64
64
|
- capability: "ollama-api"
|
|
65
|
+
task: "gateway"
|
|
65
66
|
port: 11434
|
|
67
|
+
protocol: "http"
|
|
66
68
|
description: "Ollama HTTP API,兼容 OpenAI /v1/chat/completions 端点"
|
|
69
|
+
- capability: "llm-ollama"
|
|
70
|
+
task: "gateway"
|
|
71
|
+
port: 11434
|
|
72
|
+
protocol: "http"
|
|
73
|
+
description: "Ollama OpenAI-compatible LLM endpoint (Connections 主推命名)"
|
|
67
74
|
|
|
68
75
|
lifecycle:
|
|
69
76
|
pre_install:
|
|
@@ -75,76 +82,74 @@ lifecycle:
|
|
|
75
82
|
fi;
|
|
76
83
|
install:
|
|
77
84
|
- run: >-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if printf '%s\n' "$sudo_probe_output" | grep -qi "no new privileges"; then
|
|
88
|
-
echo "当前运行环境禁止 sudo 提权(no new privileges),无法自动安装 Ollama。请在系统终端手动安装,或调整容器/服务配置后重试。" >&2;
|
|
89
|
-
else
|
|
90
|
-
echo "提供的 sudo 密码无效,无法安装 Ollama。" >&2;
|
|
91
|
-
fi;
|
|
92
|
-
exit 1;
|
|
93
|
-
};
|
|
94
|
-
run_as_root() { sudo -A "$@"; };
|
|
95
|
-
else
|
|
96
|
-
sudo_probe_output="$(sudo -n true 2>&1)" || {
|
|
97
|
-
if printf '%s\n' "$sudo_probe_output" | grep -qi "no new privileges"; then
|
|
98
|
-
echo "当前运行环境禁止 sudo 提权(no new privileges),无法自动安装 Ollama。请在系统终端手动安装,或调整容器/服务配置后重试。" >&2;
|
|
99
|
-
else
|
|
100
|
-
echo "安装 Ollama 需要 sudo 密码;请在页面弹窗中输入后重试。" >&2;
|
|
101
|
-
fi;
|
|
102
|
-
exit 1;
|
|
103
|
-
};
|
|
104
|
-
run_as_root() { sudo -n "$@"; };
|
|
105
|
-
fi;
|
|
85
|
+
install_marker="$HOME/.jishushell/apps/${app_id}/.ollama-install-needed";
|
|
86
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
87
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
88
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
89
|
+
rm -f "$install_marker";
|
|
90
|
+
if command -v ollama >/dev/null 2>&1; then
|
|
91
|
+
if [ -f "$owner_marker" ] || [ -f "$legacy_owner_marker" ]; then
|
|
92
|
+
echo "检测到由 JishuShell 安装的 ollama,复用现有二进制。" >&2;
|
|
93
|
+
rm -f "$system_install_marker";
|
|
106
94
|
else
|
|
107
|
-
|
|
95
|
+
echo "检测到系统中已安装 ollama,跳过二进制安装。" >&2;
|
|
96
|
+
rm -f "$owner_marker" "$legacy_owner_marker";
|
|
97
|
+
: > "$system_install_marker";
|
|
108
98
|
fi;
|
|
109
|
-
for BINDIR in /usr/local/bin /usr/bin /bin; do
|
|
110
|
-
echo "$PATH" | grep -q "$BINDIR" && break || continue;
|
|
111
|
-
done;
|
|
112
|
-
OLLAMA_INSTALL_DIR="$(dirname "${BINDIR:-/usr/local/bin}")";
|
|
113
|
-
if [ -d "$OLLAMA_INSTALL_DIR/lib/ollama" ]; then
|
|
114
|
-
old_dir="$OLLAMA_INSTALL_DIR/lib/ollama.jishushell-old-$(date +%s)";
|
|
115
|
-
echo "检测到旧版 Ollama 目录,先移动到 $old_dir 以避免长时间卡在清理步骤..." >&2;
|
|
116
|
-
run_as_root mv "$OLLAMA_INSTALL_DIR/lib/ollama" "$old_dir";
|
|
117
|
-
( run_as_root rm -rf "$old_dir" >/dev/null 2>&1 || true ) &
|
|
118
|
-
fi;
|
|
119
|
-
curl -fsSL https://ollama.com/install.sh | run_as_root sh;
|
|
120
99
|
else
|
|
121
|
-
echo "
|
|
100
|
+
echo "未检测到 ollama,开始安装..." >&2;
|
|
101
|
+
rm -f "$owner_marker" "$legacy_owner_marker" "$system_install_marker";
|
|
102
|
+
: > "$install_marker";
|
|
122
103
|
fi
|
|
104
|
+
- run: >-
|
|
105
|
+
install_marker="$HOME/.jishushell/apps/${app_id}/.ollama-install-needed";
|
|
106
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
107
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
108
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
109
|
+
for BINDIR in /usr/local/bin /usr/bin /bin; do
|
|
110
|
+
echo "$PATH" | grep -q "$BINDIR" && break || continue;
|
|
111
|
+
done;
|
|
112
|
+
OLLAMA_INSTALL_DIR="$(dirname "${BINDIR:-/usr/local/bin}")";
|
|
113
|
+
if [ -d "$OLLAMA_INSTALL_DIR/lib/ollama" ]; then
|
|
114
|
+
old_dir="$OLLAMA_INSTALL_DIR/lib/ollama.jishushell-old-$(date +%s)";
|
|
115
|
+
echo "检测到旧版 Ollama 目录,先移动到 $old_dir 以避免长时间卡在清理步骤..." >&2;
|
|
116
|
+
mv "$OLLAMA_INSTALL_DIR/lib/ollama" "$old_dir";
|
|
117
|
+
( rm -rf "$old_dir" >/dev/null 2>&1 || true ) &
|
|
118
|
+
fi;
|
|
119
|
+
curl -fsSL https://ollama.com/install.sh | sh;
|
|
120
|
+
rm -f "$install_marker";
|
|
121
|
+
rm -f "$legacy_owner_marker";
|
|
122
|
+
rm -f "$system_install_marker";
|
|
123
|
+
: > "$owner_marker"
|
|
124
|
+
sudo: true
|
|
125
|
+
ifFileExists: "~/.jishushell/apps/${app_id}/.ollama-install-needed"
|
|
123
126
|
timeout_ms: 900000
|
|
124
127
|
successIfCommandExists: "ollama"
|
|
125
128
|
- run: >-
|
|
129
|
+
install_marker="$HOME/.jishushell/apps/${app_id}/.ollama-install-needed";
|
|
130
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
131
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
132
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
133
|
+
if [ -f "$install_marker" ] && command -v ollama >/dev/null 2>&1; then
|
|
134
|
+
echo "检测到 ollama 已可用,补记为由 JishuShell 安装。" >&2;
|
|
135
|
+
rm -f "$install_marker";
|
|
136
|
+
rm -f "$legacy_owner_marker";
|
|
137
|
+
rm -f "$system_install_marker";
|
|
138
|
+
: > "$owner_marker";
|
|
139
|
+
fi
|
|
140
|
+
ifFileExists: "~/.jishushell/apps/${app_id}/.ollama-install-needed"
|
|
141
|
+
- run: >-
|
|
142
|
+
service_active_marker="$HOME/.jishushell/apps/${app_id}/.ollama-service-active";
|
|
143
|
+
rm -f "$service_active_marker";
|
|
126
144
|
case "$(uname -s)" in
|
|
127
145
|
Linux)
|
|
128
146
|
if command -v systemctl >/dev/null 2>&1 && systemctl list-unit-files ollama.service >/dev/null 2>&1; then
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
elif [ -n "${JISHUSHELL_SUDO_ASKPASS:-}" ]; then
|
|
133
|
-
sudo_probe_output="$(sudo -k -A true 2>&1)" || {
|
|
134
|
-
if printf '%s\n' "$sudo_probe_output" | grep -qi "no new privileges"; then
|
|
135
|
-
echo "当前运行环境禁止 sudo 提权(no new privileges),无法清理 ollama.service。请在系统终端手动执行后重试。" >&2;
|
|
136
|
-
else
|
|
137
|
-
echo "提供的 sudo 密码无效,无法清理 ollama.service。" >&2;
|
|
138
|
-
fi;
|
|
139
|
-
exit 1;
|
|
140
|
-
};
|
|
141
|
-
run_as_root() { sudo -A "$@"; };
|
|
142
|
-
elif command -v sudo >/dev/null 2>&1; then
|
|
143
|
-
run_as_root() { sudo -n "$@"; };
|
|
147
|
+
if systemctl is-active --quiet ollama.service 2>/dev/null; then
|
|
148
|
+
echo "检测到正在运行的 ollama.service,尝试停止并禁用,后续交由 Nomad 管理..." >&2;
|
|
149
|
+
: > "$service_active_marker";
|
|
144
150
|
else
|
|
145
|
-
|
|
151
|
+
echo "检测到未运行的 ollama.service,保留当前 systemd 配置不变。" >&2;
|
|
146
152
|
fi;
|
|
147
|
-
run_as_root systemctl disable --now ollama;
|
|
148
153
|
else
|
|
149
154
|
echo "Linux 环境未检测到 ollama.service,跳过 systemd 清理。" >&2;
|
|
150
155
|
fi
|
|
@@ -163,38 +168,34 @@ lifecycle:
|
|
|
163
168
|
echo "当前平台不支持自动清理 Ollama 自启,跳过。" >&2
|
|
164
169
|
;;
|
|
165
170
|
esac
|
|
171
|
+
- run: >-
|
|
172
|
+
systemctl disable --now ollama;
|
|
173
|
+
rm -f "$HOME/.jishushell/apps/${app_id}/.ollama-service-active"
|
|
174
|
+
sudo: true
|
|
175
|
+
ifFileExists: "~/.jishushell/apps/${app_id}/.ollama-service-active"
|
|
166
176
|
|
|
167
177
|
uninstall:
|
|
168
178
|
- run: >-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
exit 1;
|
|
192
|
-
};
|
|
193
|
-
run_as_root() { sudo -n "$@"; };
|
|
194
|
-
fi;
|
|
195
|
-
else
|
|
196
|
-
run_as_root() { "$@"; };
|
|
197
|
-
fi;
|
|
198
|
-
run_as_root rm -f /usr/local/bin/ollama /usr/bin/ollama /bin/ollama;
|
|
199
|
-
run_as_root rm -rf /usr/local/lib/ollama /usr/lib/ollama /usr/share/ollama 2>/dev/null || true
|
|
179
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
180
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
181
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
182
|
+
uninstall_marker="$HOME/.jishushell/.ollama-uninstall-needed-${app_id}";
|
|
183
|
+
rm -f "$uninstall_marker";
|
|
184
|
+
if [ -f "$system_install_marker" ]; then
|
|
185
|
+
echo "检测到复用的是系统已有 ollama,卸载时保留系统安装。" >&2;
|
|
186
|
+
rm -f "$system_install_marker";
|
|
187
|
+
elif [ -f "$owner_marker" ] || [ -f "$legacy_owner_marker" ]; then
|
|
188
|
+
: > "$uninstall_marker";
|
|
189
|
+
fi
|
|
190
|
+
- run: >-
|
|
191
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
192
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
193
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
194
|
+
uninstall_marker="$HOME/.jishushell/.ollama-uninstall-needed-${app_id}";
|
|
195
|
+
rm -f /usr/local/bin/ollama /usr/bin/ollama /bin/ollama;
|
|
196
|
+
rm -rf /usr/local/lib/ollama /usr/lib/ollama /usr/share/ollama 2>/dev/null || true;
|
|
197
|
+
rm -rf /Applications/Ollama.app "$HOME/Applications/Ollama.app" 2>/dev/null || true;
|
|
198
|
+
rm -f "$owner_marker" "$legacy_owner_marker" "$system_install_marker" "$uninstall_marker"
|
|
199
|
+
sudo: true
|
|
200
|
+
ifFileExists: "~/.jishushell/.ollama-uninstall-needed-${app_id}"
|
|
200
201
|
|
|
@@ -2,7 +2,7 @@ id: ollama-cpu-docker
|
|
|
2
2
|
name: Ollama CPU(Docker)
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
5
|
+
min_version: "0.4.30"
|
|
6
6
|
description: "使用 alpine/ollama 镜像运行的纯 CPU 版 Ollama"
|
|
7
7
|
singleInstance: true
|
|
8
8
|
|
|
@@ -33,5 +33,12 @@ tasks:
|
|
|
33
33
|
|
|
34
34
|
provides:
|
|
35
35
|
- capability: "ollama-api"
|
|
36
|
+
task: "gateway"
|
|
36
37
|
port: 11434
|
|
38
|
+
protocol: "http"
|
|
37
39
|
description: "Ollama HTTP API,兼容 OpenAI /v1/chat/completions 端点"
|
|
40
|
+
- capability: "llm-ollama"
|
|
41
|
+
task: "gateway"
|
|
42
|
+
port: 11434
|
|
43
|
+
protocol: "http"
|
|
44
|
+
description: "Ollama OpenAI-compatible LLM endpoint (Connections 主推命名)"
|
|
@@ -2,7 +2,7 @@ id: ollama-with-hollama-binary
|
|
|
2
2
|
name: Ollama
|
|
3
3
|
version: "1.0.0"
|
|
4
4
|
jishushell:
|
|
5
|
-
min_version: "0.4.
|
|
5
|
+
min_version: "0.4.30"
|
|
6
6
|
description: "通过官方脚本安装并运行 Ollama,同时提供 Hollama Web UI。"
|
|
7
7
|
singleInstance: true
|
|
8
8
|
|
|
@@ -52,13 +52,20 @@ tasks:
|
|
|
52
52
|
|
|
53
53
|
provides:
|
|
54
54
|
- capability: "hollama-web"
|
|
55
|
+
task: "hollama"
|
|
55
56
|
port: 4173
|
|
56
57
|
protocol: "http"
|
|
57
58
|
description: "Hollama Web 界面"
|
|
58
59
|
- capability: "ollama-api"
|
|
60
|
+
task: "gateway"
|
|
59
61
|
port: 11434
|
|
60
62
|
protocol: "http"
|
|
61
63
|
description: "Ollama HTTP API,兼容 OpenAI /v1/chat/completions 端点"
|
|
64
|
+
- capability: "llm-ollama"
|
|
65
|
+
task: "gateway"
|
|
66
|
+
port: 11434
|
|
67
|
+
protocol: "http"
|
|
68
|
+
description: "Ollama OpenAI-compatible LLM endpoint (Connections 主推命名)"
|
|
62
69
|
|
|
63
70
|
lifecycle:
|
|
64
71
|
pre_install:
|
|
@@ -71,76 +78,74 @@ lifecycle:
|
|
|
71
78
|
install:
|
|
72
79
|
- downloadImage: "ghcr.io/fmaclen/hollama:latest"
|
|
73
80
|
- run: >-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if printf '%s\n' "$sudo_probe_output" | grep -qi "no new privileges"; then
|
|
84
|
-
echo "当前运行环境禁止 sudo 提权(no new privileges),无法自动安装 Ollama。请在系统终端手动安装,或调整容器/服务配置后重试。" >&2;
|
|
85
|
-
else
|
|
86
|
-
echo "提供的 sudo 密码无效,无法安装 Ollama。" >&2;
|
|
87
|
-
fi;
|
|
88
|
-
exit 1;
|
|
89
|
-
};
|
|
90
|
-
run_as_root() { sudo -A "$@"; };
|
|
91
|
-
else
|
|
92
|
-
sudo_probe_output="$(sudo -n true 2>&1)" || {
|
|
93
|
-
if printf '%s\n' "$sudo_probe_output" | grep -qi "no new privileges"; then
|
|
94
|
-
echo "当前运行环境禁止 sudo 提权(no new privileges),无法自动安装 Ollama。请在系统终端手动安装,或调整容器/服务配置后重试。" >&2;
|
|
95
|
-
else
|
|
96
|
-
echo "安装 Ollama 需要 sudo 密码;请在页面弹窗中输入后重试。" >&2;
|
|
97
|
-
fi;
|
|
98
|
-
exit 1;
|
|
99
|
-
};
|
|
100
|
-
run_as_root() { sudo -n "$@"; };
|
|
101
|
-
fi;
|
|
81
|
+
install_marker="$HOME/.jishushell/apps/${app_id}/.ollama-install-needed";
|
|
82
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
83
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
84
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
85
|
+
rm -f "$install_marker";
|
|
86
|
+
if command -v ollama >/dev/null 2>&1; then
|
|
87
|
+
if [ -f "$owner_marker" ] || [ -f "$legacy_owner_marker" ]; then
|
|
88
|
+
echo "检测到由 JishuShell 安装的 ollama,复用现有二进制。" >&2;
|
|
89
|
+
rm -f "$system_install_marker";
|
|
102
90
|
else
|
|
103
|
-
|
|
91
|
+
echo "检测到系统中已安装 ollama,跳过二进制安装。" >&2;
|
|
92
|
+
rm -f "$owner_marker" "$legacy_owner_marker";
|
|
93
|
+
: > "$system_install_marker";
|
|
104
94
|
fi;
|
|
105
|
-
for BINDIR in /usr/local/bin /usr/bin /bin; do
|
|
106
|
-
echo "$PATH" | grep -q "$BINDIR" && break || continue;
|
|
107
|
-
done;
|
|
108
|
-
OLLAMA_INSTALL_DIR="$(dirname "${BINDIR:-/usr/local/bin}")";
|
|
109
|
-
if [ -d "$OLLAMA_INSTALL_DIR/lib/ollama" ]; then
|
|
110
|
-
old_dir="$OLLAMA_INSTALL_DIR/lib/ollama.jishushell-old-$(date +%s)";
|
|
111
|
-
echo "检测到旧版 Ollama 目录,先移动到 $old_dir 以避免长时间卡在清理步骤..." >&2;
|
|
112
|
-
run_as_root mv "$OLLAMA_INSTALL_DIR/lib/ollama" "$old_dir";
|
|
113
|
-
( run_as_root rm -rf "$old_dir" >/dev/null 2>&1 || true ) &
|
|
114
|
-
fi;
|
|
115
|
-
curl -fsSL https://ollama.com/install.sh | run_as_root sh;
|
|
116
95
|
else
|
|
117
|
-
echo "
|
|
96
|
+
echo "未检测到 ollama,开始安装..." >&2;
|
|
97
|
+
rm -f "$owner_marker" "$legacy_owner_marker" "$system_install_marker";
|
|
98
|
+
: > "$install_marker";
|
|
118
99
|
fi
|
|
100
|
+
- run: >-
|
|
101
|
+
install_marker="$HOME/.jishushell/apps/${app_id}/.ollama-install-needed";
|
|
102
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
103
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
104
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
105
|
+
for BINDIR in /usr/local/bin /usr/bin /bin; do
|
|
106
|
+
echo "$PATH" | grep -q "$BINDIR" && break || continue;
|
|
107
|
+
done;
|
|
108
|
+
OLLAMA_INSTALL_DIR="$(dirname "${BINDIR:-/usr/local/bin}")";
|
|
109
|
+
if [ -d "$OLLAMA_INSTALL_DIR/lib/ollama" ]; then
|
|
110
|
+
old_dir="$OLLAMA_INSTALL_DIR/lib/ollama.jishushell-old-$(date +%s)";
|
|
111
|
+
echo "检测到旧版 Ollama 目录,先移动到 $old_dir 以避免长时间卡在清理步骤..." >&2;
|
|
112
|
+
mv "$OLLAMA_INSTALL_DIR/lib/ollama" "$old_dir";
|
|
113
|
+
( rm -rf "$old_dir" >/dev/null 2>&1 || true ) &
|
|
114
|
+
fi;
|
|
115
|
+
curl -fsSL https://ollama.com/install.sh | sh;
|
|
116
|
+
rm -f "$install_marker";
|
|
117
|
+
rm -f "$legacy_owner_marker";
|
|
118
|
+
rm -f "$system_install_marker";
|
|
119
|
+
: > "$owner_marker"
|
|
120
|
+
sudo: true
|
|
121
|
+
ifFileExists: "~/.jishushell/apps/${app_id}/.ollama-install-needed"
|
|
119
122
|
timeout_ms: 900000
|
|
120
123
|
successIfCommandExists: "ollama"
|
|
121
124
|
- run: >-
|
|
125
|
+
install_marker="$HOME/.jishushell/apps/${app_id}/.ollama-install-needed";
|
|
126
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
127
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
128
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
129
|
+
if [ -f "$install_marker" ] && command -v ollama >/dev/null 2>&1; then
|
|
130
|
+
echo "检测到 ollama 已可用,补记为由 JishuShell 安装。" >&2;
|
|
131
|
+
rm -f "$install_marker";
|
|
132
|
+
rm -f "$legacy_owner_marker";
|
|
133
|
+
rm -f "$system_install_marker";
|
|
134
|
+
: > "$owner_marker";
|
|
135
|
+
fi
|
|
136
|
+
ifFileExists: "~/.jishushell/apps/${app_id}/.ollama-install-needed"
|
|
137
|
+
- run: >-
|
|
138
|
+
service_active_marker="$HOME/.jishushell/apps/${app_id}/.ollama-service-active";
|
|
139
|
+
rm -f "$service_active_marker";
|
|
122
140
|
case "$(uname -s)" in
|
|
123
141
|
Linux)
|
|
124
142
|
if command -v systemctl >/dev/null 2>&1 && systemctl list-unit-files ollama.service >/dev/null 2>&1; then
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
elif [ -n "${JISHUSHELL_SUDO_ASKPASS:-}" ]; then
|
|
129
|
-
sudo_probe_output="$(sudo -A true 2>&1)" || {
|
|
130
|
-
if printf '%s\n' "$sudo_probe_output" | grep -qi "no new privileges"; then
|
|
131
|
-
echo "当前运行环境禁止 sudo 提权(no new privileges),无法清理 ollama.service。请在系统终端手动执行后重试。" >&2;
|
|
132
|
-
else
|
|
133
|
-
echo "提供的 sudo 密码无效,无法清理 ollama.service。" >&2;
|
|
134
|
-
fi;
|
|
135
|
-
exit 1;
|
|
136
|
-
};
|
|
137
|
-
run_as_root() { sudo -A "$@"; };
|
|
138
|
-
elif command -v sudo >/dev/null 2>&1; then
|
|
139
|
-
run_as_root() { sudo -n "$@"; };
|
|
143
|
+
if systemctl is-active --quiet ollama.service 2>/dev/null; then
|
|
144
|
+
echo "检测到正在运行的 ollama.service,尝试停止并禁用,后续交由 Nomad 管理..." >&2;
|
|
145
|
+
: > "$service_active_marker";
|
|
140
146
|
else
|
|
141
|
-
|
|
147
|
+
echo "检测到未运行的 ollama.service,保留当前 systemd 配置不变。" >&2;
|
|
142
148
|
fi;
|
|
143
|
-
run_as_root systemctl disable --now ollama;
|
|
144
149
|
else
|
|
145
150
|
echo "Linux 环境未检测到 ollama.service,跳过 systemd 清理。" >&2;
|
|
146
151
|
fi
|
|
@@ -159,37 +164,33 @@ lifecycle:
|
|
|
159
164
|
echo "当前平台不支持自动清理 Ollama 自启,跳过。" >&2
|
|
160
165
|
;;
|
|
161
166
|
esac
|
|
167
|
+
- run: >-
|
|
168
|
+
systemctl disable --now ollama;
|
|
169
|
+
rm -f "$HOME/.jishushell/apps/${app_id}/.ollama-service-active"
|
|
170
|
+
sudo: true
|
|
171
|
+
ifFileExists: "~/.jishushell/apps/${app_id}/.ollama-service-active"
|
|
162
172
|
|
|
163
173
|
uninstall:
|
|
164
174
|
- run: >-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
exit 1;
|
|
188
|
-
};
|
|
189
|
-
run_as_root() { sudo -n "$@"; };
|
|
190
|
-
fi;
|
|
191
|
-
else
|
|
192
|
-
run_as_root() { "$@"; };
|
|
193
|
-
fi;
|
|
194
|
-
run_as_root rm -f /usr/local/bin/ollama /usr/bin/ollama /bin/ollama;
|
|
195
|
-
run_as_root rm -rf /usr/local/lib/ollama /usr/lib/ollama /usr/share/ollama 2>/dev/null || true
|
|
175
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
176
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
177
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
178
|
+
uninstall_marker="$HOME/.jishushell/.ollama-uninstall-needed-${app_id}";
|
|
179
|
+
rm -f "$uninstall_marker";
|
|
180
|
+
if [ -f "$system_install_marker" ]; then
|
|
181
|
+
echo "检测到复用的是系统已有 ollama,卸载时保留系统安装。" >&2;
|
|
182
|
+
rm -f "$system_install_marker";
|
|
183
|
+
elif [ -f "$owner_marker" ] || [ -f "$legacy_owner_marker" ]; then
|
|
184
|
+
: > "$uninstall_marker";
|
|
185
|
+
fi
|
|
186
|
+
- run: >-
|
|
187
|
+
owner_marker="$HOME/.jishushell/.ollama-installed-by-jishushell-${app_id}";
|
|
188
|
+
legacy_owner_marker="$HOME/.jishushell/apps/${app_id}/.ollama-installed-by-jishushell";
|
|
189
|
+
system_install_marker="$HOME/.jishushell/.ollama-system-install-${app_id}";
|
|
190
|
+
uninstall_marker="$HOME/.jishushell/.ollama-uninstall-needed-${app_id}";
|
|
191
|
+
rm -f /usr/local/bin/ollama /usr/bin/ollama /bin/ollama;
|
|
192
|
+
rm -rf /usr/local/lib/ollama /usr/lib/ollama /usr/share/ollama 2>/dev/null || true;
|
|
193
|
+
rm -rf /Applications/Ollama.app "$HOME/Applications/Ollama.app" 2>/dev/null || true;
|
|
194
|
+
rm -f "$owner_marker" "$legacy_owner_marker" "$system_install_marker" "$uninstall_marker"
|
|
195
|
+
sudo: true
|
|
196
|
+
ifFileExists: "~/.jishushell/.ollama-uninstall-needed-${app_id}"
|
|
@@ -2,7 +2,7 @@ id: openclaw-binary
|
|
|
2
2
|
name: OpenClaw Binary
|
|
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: "将 OpenClaw 安装到应用目录内的 npm prefix,并以 process runtime 运行网关"
|
|
8
8
|
singleInstance: false
|
|
@@ -33,8 +33,45 @@ tasks:
|
|
|
33
33
|
|
|
34
34
|
provides:
|
|
35
35
|
- capability: "openclaw-dashboard"
|
|
36
|
+
task: "gateway"
|
|
36
37
|
port: 18789
|
|
38
|
+
protocol: "http"
|
|
37
39
|
description: "OpenClaw Dashboard"
|
|
40
|
+
- capability: "llm-agent"
|
|
41
|
+
task: "gateway"
|
|
42
|
+
port: 18789
|
|
43
|
+
protocol: "http"
|
|
44
|
+
path: "/v1"
|
|
45
|
+
description: "OpenAI-compatible agent endpoint backed by OpenClaw"
|
|
46
|
+
auth:
|
|
47
|
+
kind: "bearer"
|
|
48
|
+
tokenSource: "instance.config.gateway.auth.token"
|
|
49
|
+
|
|
50
|
+
requires:
|
|
51
|
+
- capability: "llm"
|
|
52
|
+
inject_as: "LLM_ENDPOINT"
|
|
53
|
+
required: false
|
|
54
|
+
cardinality: "one"
|
|
55
|
+
- capability: "search"
|
|
56
|
+
inject_as: "SEARCH_API_BASE_URL"
|
|
57
|
+
required: false
|
|
58
|
+
cardinality: "one"
|
|
59
|
+
- capability: "browser"
|
|
60
|
+
inject_as: "BROWSER_CDP_URL"
|
|
61
|
+
required: false
|
|
62
|
+
cardinality: "one"
|
|
63
|
+
- capability: "mcp"
|
|
64
|
+
inject_as: "MCP_SERVERS"
|
|
65
|
+
required: false
|
|
66
|
+
cardinality: "many"
|
|
67
|
+
- capability: "files"
|
|
68
|
+
inject_as: "FILES_BROWSER_URL"
|
|
69
|
+
required: false
|
|
70
|
+
cardinality: "one"
|
|
71
|
+
- capability: "knowledge"
|
|
72
|
+
inject_as: "KNOWLEDGE_BASE_URL"
|
|
73
|
+
required: false
|
|
74
|
+
cardinality: "one"
|
|
38
75
|
|
|
39
76
|
lifecycle:
|
|
40
77
|
install:
|
|
@@ -2,7 +2,7 @@ id: openclaw-container
|
|
|
2
2
|
name: OpenClaw 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: "基于 openclaw-runtime 容器运行的 OpenClaw 网关"
|
|
8
8
|
singleInstance: false
|
|
@@ -33,5 +33,48 @@ tasks:
|
|
|
33
33
|
|
|
34
34
|
provides:
|
|
35
35
|
- capability: "openclaw-dashboard"
|
|
36
|
+
task: "gateway"
|
|
36
37
|
port: 18789
|
|
37
|
-
|
|
38
|
+
protocol: "http"
|
|
39
|
+
description: "OpenClaw Dashboard"
|
|
40
|
+
# OpenClaw exposes OpenAI-compatible chat/completions when its config has
|
|
41
|
+
# `gateway.http.endpoints.chatCompletions.enabled = true`. The runtime
|
|
42
|
+
# adapter's startInstance hook patches openclaw.json on every start to
|
|
43
|
+
# ensure that flag is on, so any consumer binding this provider gets a
|
|
44
|
+
# working /v1/chat/completions endpoint regardless of when the instance
|
|
45
|
+
# was originally created. Auth uses the gateway token from openclaw.json.
|
|
46
|
+
- capability: "llm-agent"
|
|
47
|
+
task: "gateway"
|
|
48
|
+
port: 18789
|
|
49
|
+
protocol: "http"
|
|
50
|
+
path: "/v1"
|
|
51
|
+
description: "OpenAI-compatible agent endpoint backed by OpenClaw"
|
|
52
|
+
auth:
|
|
53
|
+
kind: "bearer"
|
|
54
|
+
tokenSource: "instance.config.gateway.auth.token"
|
|
55
|
+
|
|
56
|
+
requires:
|
|
57
|
+
- capability: "llm"
|
|
58
|
+
inject_as: "LLM_ENDPOINT"
|
|
59
|
+
required: false
|
|
60
|
+
cardinality: "one"
|
|
61
|
+
- capability: "search"
|
|
62
|
+
inject_as: "SEARCH_API_BASE_URL"
|
|
63
|
+
required: false
|
|
64
|
+
cardinality: "one"
|
|
65
|
+
- capability: "browser"
|
|
66
|
+
inject_as: "BROWSER_CDP_URL"
|
|
67
|
+
required: false
|
|
68
|
+
cardinality: "one"
|
|
69
|
+
- capability: "mcp"
|
|
70
|
+
inject_as: "MCP_SERVERS"
|
|
71
|
+
required: false
|
|
72
|
+
cardinality: "many"
|
|
73
|
+
- capability: "files"
|
|
74
|
+
inject_as: "FILES_BROWSER_URL"
|
|
75
|
+
required: false
|
|
76
|
+
cardinality: "one"
|
|
77
|
+
- capability: "knowledge"
|
|
78
|
+
inject_as: "KNOWLEDGE_BASE_URL"
|
|
79
|
+
required: false
|
|
80
|
+
cardinality: "one"
|
|
@@ -2,7 +2,7 @@ id: openclaw-with-ollama-container
|
|
|
2
2
|
name: OpenClaw With Ollama
|
|
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: "通过 requires 消费 ollama-api 能力,并将解析地址注入 OpenClaw 运行环境"
|
|
8
8
|
singleInstance: false
|
|
@@ -39,4 +39,13 @@ tasks:
|
|
|
39
39
|
provides:
|
|
40
40
|
- capability: "openclaw-dashboard"
|
|
41
41
|
port: 18789
|
|
42
|
-
description: "OpenClaw Dashboard"
|
|
42
|
+
description: "OpenClaw Dashboard"
|
|
43
|
+
- capability: "llm-agent"
|
|
44
|
+
task: "gateway"
|
|
45
|
+
port: 18789
|
|
46
|
+
protocol: "http"
|
|
47
|
+
path: "/v1"
|
|
48
|
+
description: "OpenAI-compatible agent endpoint backed by OpenClaw"
|
|
49
|
+
auth:
|
|
50
|
+
kind: "bearer"
|
|
51
|
+
tokenSource: "instance.config.gateway.auth.token"
|