diff --git a/AGENTS.md b/AGENTS.md index c9dd566..333e228 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -43,4 +43,4 @@ Standard dev commands are in `package.json` scripts and `README.md`. Key ones: - Do not call Gateway HTTP endpoints directly from renderer (`fetch('http://127.0.0.1:18789/...')` etc.). Use Main-process proxy channels (`hostapi:fetch`, `gateway:httpProxy`) to avoid CORS/env drift. - Transport policy is Main-owned and fixed as `WS -> HTTP -> IPC fallback`; renderer should not implement protocol switching UI/business logic. - **Comms-change checklist**: If your change touches communication paths (gateway events, runtime send/receive, delivery, or fallback), run `pnpm run comms:replay` and `pnpm run comms:compare` before pushing. -- **Doc sync rule**: After any functional or architecture change, review `README.md`, `README.zh-CN.md`, and `README.ja-JP.md` for required updates; if behavior/flows/interfaces changed, update docs in the same PR/commit. +- **Doc sync rule**: After any functional or architecture change, review the Chinese root `README.md`; if behavior/flows/interfaces changed, update docs in the same PR/commit. diff --git a/README.ja-JP.md b/README.ja-JP.md deleted file mode 100644 index 76d7a2f..0000000 --- a/README.ja-JP.md +++ /dev/null @@ -1,5 +0,0 @@ -# 智念助手 - -This repository has been customized from the ClawX base project into **智念助手**. - -Please use the root [README.md](README.md) as the source of truth for the current product scope, development workflow, packaging flow, and pilot validation notes. diff --git a/README.md b/README.md index 3db9df3..7f22f62 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,24 @@ 当前阶段:`3.5` 内测研发阶段。 +## 功能截图 + +### 登录与组织空间 + +![登录与组织空间](resources/readme/01-login.png) + +### 工作台首页 + +![工作台首页](resources/readme/02-home.png) + +### 应用中心 + +![应用中心](resources/readme/04-app-center.png) + +### 知识库 + +![知识库](resources/readme/05-knowledge.png) + ## 核心能力 - **账号登录与组织空间**:通过服务端账号密码登录,一个账号对应一个组织空间;本地可维护组织空间展示名称与桌面端用户名称。 diff --git a/README.ru-RU.md b/README.ru-RU.md deleted file mode 100644 index 76d7a2f..0000000 --- a/README.ru-RU.md +++ /dev/null @@ -1,5 +0,0 @@ -# 智念助手 - -This repository has been customized from the ClawX base project into **智念助手**. - -Please use the root [README.md](README.md) as the source of truth for the current product scope, development workflow, packaging flow, and pilot validation notes. diff --git a/README.zh-CN.md b/README.zh-CN.md deleted file mode 100644 index 7dd3102..0000000 --- a/README.zh-CN.md +++ /dev/null @@ -1,5 +0,0 @@ -# 智念助手 - -本项目已经从 ClawX 基础工程定制为 **智念助手**。 - -请以根目录 [README.md](README.md) 为准,那里包含当前产品定位、功能范围、开发方式、打包方式和内测验证重点。 diff --git a/electron/gateway/process-launcher.ts b/electron/gateway/process-launcher.ts index 00cb6bd..d80cb0a 100644 --- a/electron/gateway/process-launcher.ts +++ b/electron/gateway/process-launcher.ts @@ -32,8 +32,8 @@ const GATEWAY_FETCH_PRELOAD_SOURCE = `'use strict'; delete flat['HTTP-Referer']; delete flat['x-title']; delete flat['X-Title']; - flat['HTTP-Referer'] = 'https://claw-x.com'; - flat['X-Title'] = 'ClawX'; + flat['HTTP-Referer'] = 'https://git.nianxx.cn/wangxuming/NianToB'; + flat['X-Title'] = '智念助手'; init.headers = flat; } return _f.call(globalThis, input, init); diff --git a/electron/main/menu.ts b/electron/main/menu.ts index f2edb3d..e3baf94 100644 --- a/electron/main/menu.ts +++ b/electron/main/menu.ts @@ -176,13 +176,13 @@ export function createMenu(): void { { label: 'Documentation', click: async () => { - await shell.openExternal('https://claw-x.com'); + await shell.openExternal('https://git.nianxx.cn/wangxuming/NianToB'); }, }, { label: 'Report Issue', click: async () => { - await shell.openExternal('https://github.com/ValueCell-ai/ClawX/issues'); + await shell.openExternal('https://git.nianxx.cn/wangxuming/NianToB'); }, }, { type: 'separator' }, diff --git a/electron/shared/providers/registry.ts b/electron/shared/providers/registry.ts index ab5d2ee..39bcd03 100644 --- a/electron/shared/providers/registry.ts +++ b/electron/shared/providers/registry.ts @@ -83,8 +83,8 @@ export const PROVIDER_DEFINITIONS: ProviderDefinition[] = [ api: 'openai-completions', apiKeyEnv: 'OPENROUTER_API_KEY', headers: { - 'HTTP-Referer': 'https://claw-x.com', - 'X-Title': 'ClawX', + 'HTTP-Referer': 'https://git.nianxx.cn/wangxuming/NianToB', + 'X-Title': '智念助手', }, }, }, diff --git a/electron/utils/openrouter-headers-preload.cjs b/electron/utils/openrouter-headers-preload.cjs index 11425b5..3cfa7db 100644 --- a/electron/utils/openrouter-headers-preload.cjs +++ b/electron/utils/openrouter-headers-preload.cjs @@ -36,8 +36,8 @@ delete flat['HTTP-Referer']; delete flat['x-title']; delete flat['X-Title']; - flat['HTTP-Referer'] = 'https://claw-x.com'; - flat['X-Title'] = 'ClawX'; + flat['HTTP-Referer'] = 'https://git.nianxx.cn/wangxuming/NianToB'; + flat['X-Title'] = '智念助手'; init.headers = flat; } return _f.call(globalThis, input, init); diff --git a/resources/cli/posix/openclaw b/resources/cli/posix/openclaw index 13c9d1c..7905dfc 100755 --- a/resources/cli/posix/openclaw +++ b/resources/cli/posix/openclaw @@ -1,6 +1,6 @@ #!/bin/sh -# OpenClaw CLI — managed by ClawX -# Do not edit manually. Regenerated on ClawX updates. +# OpenClaw CLI — managed by Zhinian Assistant +# Do not edit manually. Regenerated on Zhinian Assistant updates. # Resolve the real path of this script (follow symlinks) SCRIPT="$0" @@ -15,10 +15,10 @@ if [ "$(uname)" = "Darwin" ]; then # macOS: .app/Contents/Resources/cli/openclaw # SCRIPT_DIR = .../Contents/Resources/cli CONTENTS_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" - ELECTRON="$CONTENTS_DIR/MacOS/ClawX" + ELECTRON="$CONTENTS_DIR/MacOS/智念助手" CLI="$CONTENTS_DIR/Resources/openclaw/openclaw.mjs" else - # Linux: /opt/ClawX/resources/cli/openclaw + # Linux: /opt/ZhinianAssistant/resources/cli/openclaw # SCRIPT_DIR = .../resources/cli INSTALL_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" ELECTRON="$INSTALL_DIR/clawx" @@ -26,23 +26,23 @@ else fi if [ ! -f "$ELECTRON" ]; then - echo "Error: ClawX executable not found at $ELECTRON" >&2 - echo "Please reinstall ClawX or remove this script: $0" >&2 + echo "Error: Zhinian Assistant executable not found at $ELECTRON" >&2 + echo "Please reinstall Zhinian Assistant or remove this script: $0" >&2 exit 1 fi case "$1" in update) - echo "openclaw is managed by ClawX (bundled version)." + echo "openclaw is managed by Zhinian Assistant (bundled version)." echo "" - echo "To update openclaw, update ClawX:" - echo " Open ClawX > Settings > Check for Updates" - echo " Or download the latest version from https://claw-x.com" + echo "To update openclaw, update Zhinian Assistant:" + echo " Open Zhinian Assistant > Settings > Check for Updates" + echo " Or contact the administrator for the latest installer" echo "" ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --version 2>/dev/null || true exit 0 ;; esac -export OPENCLAW_EMBEDDED_IN="ClawX" +export OPENCLAW_EMBEDDED_IN="Zhinian Assistant" ELECTRON_RUN_AS_NODE=1 exec "$ELECTRON" "$CLI" "$@" diff --git a/resources/cli/win32/openclaw b/resources/cli/win32/openclaw index ec50f20..36466ba 100644 --- a/resources/cli/win32/openclaw +++ b/resources/cli/win32/openclaw @@ -5,15 +5,15 @@ INSTALL_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)" case "$1" in update) - echo "openclaw is managed by ClawX (bundled version)." + echo "openclaw is managed by Zhinian Assistant (bundled version)." echo "" - echo "To update openclaw, update ClawX:" - echo " Open ClawX > Settings > Check for Updates" + echo "To update openclaw, update Zhinian Assistant:" + echo " Open Zhinian Assistant > Settings > Check for Updates" exit 0 ;; esac -export OPENCLAW_EMBEDDED_IN="ClawX" +export OPENCLAW_EMBEDDED_IN="Zhinian Assistant" NODE_EXE="$INSTALL_DIR/resources/bin/node.exe" OPENCLAW_ENTRY="$INSTALL_DIR/resources/openclaw/openclaw.mjs" @@ -23,4 +23,4 @@ if [ -f "$NODE_EXE" ]; then fi fi -ELECTRON_RUN_AS_NODE=1 exec "$INSTALL_DIR/ClawX.exe" "$OPENCLAW_ENTRY" "$@" +ELECTRON_RUN_AS_NODE=1 exec "$INSTALL_DIR/智念助手.exe" "$OPENCLAW_ENTRY" "$@" diff --git a/resources/cli/win32/openclaw.cmd b/resources/cli/win32/openclaw.cmd index d90186a..cd794bf 100644 --- a/resources/cli/win32/openclaw.cmd +++ b/resources/cli/win32/openclaw.cmd @@ -2,11 +2,11 @@ setlocal if /i "%1"=="update" ( - echo openclaw is managed by ClawX ^(bundled version^). + echo openclaw is managed by Zhinian Assistant ^(bundled version^). echo. - echo To update openclaw, update ClawX: - echo Open ClawX ^> Settings ^> Check for Updates - echo Or download the latest version from https://claw-x.com + echo To update openclaw, update Zhinian Assistant: + echo Open Zhinian Assistant ^> Settings ^> Check for Updates + echo Or contact the administrator for the latest installer exit /b 0 ) @@ -15,7 +15,7 @@ rem on non-English Windows (e.g. Chinese CP936). Save the previous codepage to r for /f "tokens=2 delims=:." %%a in ('chcp') do set /a "_CP=%%a" 2>nul chcp 65001 >nul 2>&1 -set OPENCLAW_EMBEDDED_IN=ClawX +set OPENCLAW_EMBEDDED_IN=Zhinian Assistant set "NODE_EXE=%~dp0..\bin\node.exe" set "OPENCLAW_ENTRY=%~dp0..\openclaw\openclaw.mjs" @@ -29,7 +29,7 @@ if "%_USE_BUNDLED_NODE%"=="1" ( "%NODE_EXE%" "%OPENCLAW_ENTRY%" %* ) else ( set ELECTRON_RUN_AS_NODE=1 - "%~dp0..\..\ClawX.exe" "%OPENCLAW_ENTRY%" %* + "%~dp0..\..\智念助手.exe" "%OPENCLAW_ENTRY%" %* ) set _EXIT=%ERRORLEVEL% diff --git a/resources/readme/01-login.png b/resources/readme/01-login.png new file mode 100644 index 0000000..b323bf5 Binary files /dev/null and b/resources/readme/01-login.png differ diff --git a/resources/readme/02-home.png b/resources/readme/02-home.png new file mode 100644 index 0000000..9d4fa0c Binary files /dev/null and b/resources/readme/02-home.png differ diff --git a/resources/readme/04-app-center.png b/resources/readme/04-app-center.png new file mode 100644 index 0000000..27825a4 Binary files /dev/null and b/resources/readme/04-app-center.png differ diff --git a/resources/readme/05-knowledge.png b/resources/readme/05-knowledge.png new file mode 100644 index 0000000..0e631d7 Binary files /dev/null and b/resources/readme/05-knowledge.png differ diff --git a/resources/screenshot/en/channels.png b/resources/screenshot/en/channels.png deleted file mode 100644 index ff2decf..0000000 Binary files a/resources/screenshot/en/channels.png and /dev/null differ diff --git a/resources/screenshot/en/chat.png b/resources/screenshot/en/chat.png deleted file mode 100644 index bd32492..0000000 Binary files a/resources/screenshot/en/chat.png and /dev/null differ diff --git a/resources/screenshot/en/cron.png b/resources/screenshot/en/cron.png deleted file mode 100644 index 7bdddb5..0000000 Binary files a/resources/screenshot/en/cron.png and /dev/null differ diff --git a/resources/screenshot/en/models.png b/resources/screenshot/en/models.png deleted file mode 100644 index 4ca215f..0000000 Binary files a/resources/screenshot/en/models.png and /dev/null differ diff --git a/resources/screenshot/en/settings.png b/resources/screenshot/en/settings.png deleted file mode 100644 index f7cb448..0000000 Binary files a/resources/screenshot/en/settings.png and /dev/null differ diff --git a/resources/screenshot/en/skills.png b/resources/screenshot/en/skills.png deleted file mode 100644 index 61c9088..0000000 Binary files a/resources/screenshot/en/skills.png and /dev/null differ diff --git a/resources/screenshot/jp/channels.png b/resources/screenshot/jp/channels.png deleted file mode 100644 index d83622f..0000000 Binary files a/resources/screenshot/jp/channels.png and /dev/null differ diff --git a/resources/screenshot/jp/chat.png b/resources/screenshot/jp/chat.png deleted file mode 100644 index 1252852..0000000 Binary files a/resources/screenshot/jp/chat.png and /dev/null differ diff --git a/resources/screenshot/jp/cron.png b/resources/screenshot/jp/cron.png deleted file mode 100644 index 7711ddb..0000000 Binary files a/resources/screenshot/jp/cron.png and /dev/null differ diff --git a/resources/screenshot/jp/models.png b/resources/screenshot/jp/models.png deleted file mode 100644 index f2996d1..0000000 Binary files a/resources/screenshot/jp/models.png and /dev/null differ diff --git a/resources/screenshot/jp/settings.png b/resources/screenshot/jp/settings.png deleted file mode 100644 index caf8b4c..0000000 Binary files a/resources/screenshot/jp/settings.png and /dev/null differ diff --git a/resources/screenshot/jp/skills.png b/resources/screenshot/jp/skills.png deleted file mode 100644 index c2f92aa..0000000 Binary files a/resources/screenshot/jp/skills.png and /dev/null differ diff --git a/resources/screenshot/ru/channels.png b/resources/screenshot/ru/channels.png deleted file mode 100644 index ff2decf..0000000 Binary files a/resources/screenshot/ru/channels.png and /dev/null differ diff --git a/resources/screenshot/ru/chat.png b/resources/screenshot/ru/chat.png deleted file mode 100644 index bd32492..0000000 Binary files a/resources/screenshot/ru/chat.png and /dev/null differ diff --git a/resources/screenshot/ru/cron.png b/resources/screenshot/ru/cron.png deleted file mode 100644 index 7bdddb5..0000000 Binary files a/resources/screenshot/ru/cron.png and /dev/null differ diff --git a/resources/screenshot/ru/models.png b/resources/screenshot/ru/models.png deleted file mode 100644 index 4ca215f..0000000 Binary files a/resources/screenshot/ru/models.png and /dev/null differ diff --git a/resources/screenshot/ru/settings.png b/resources/screenshot/ru/settings.png deleted file mode 100644 index f7cb448..0000000 Binary files a/resources/screenshot/ru/settings.png and /dev/null differ diff --git a/resources/screenshot/ru/skills.png b/resources/screenshot/ru/skills.png deleted file mode 100644 index 61c9088..0000000 Binary files a/resources/screenshot/ru/skills.png and /dev/null differ diff --git a/resources/screenshot/zh/channels.png b/resources/screenshot/zh/channels.png deleted file mode 100644 index aff0697..0000000 Binary files a/resources/screenshot/zh/channels.png and /dev/null differ diff --git a/resources/screenshot/zh/chat.png b/resources/screenshot/zh/chat.png deleted file mode 100644 index 72efdeb..0000000 Binary files a/resources/screenshot/zh/chat.png and /dev/null differ diff --git a/resources/screenshot/zh/cron.png b/resources/screenshot/zh/cron.png deleted file mode 100644 index bd8e818..0000000 Binary files a/resources/screenshot/zh/cron.png and /dev/null differ diff --git a/resources/screenshot/zh/models.png b/resources/screenshot/zh/models.png deleted file mode 100644 index 378b214..0000000 Binary files a/resources/screenshot/zh/models.png and /dev/null differ diff --git a/resources/screenshot/zh/settings.png b/resources/screenshot/zh/settings.png deleted file mode 100644 index 448b152..0000000 Binary files a/resources/screenshot/zh/settings.png and /dev/null differ diff --git a/resources/screenshot/zh/skills.png b/resources/screenshot/zh/skills.png deleted file mode 100644 index d163cd4..0000000 Binary files a/resources/screenshot/zh/skills.png and /dev/null differ diff --git a/scripts/installer.nsh b/scripts/installer.nsh index 80afd42..b876d90 100644 --- a/scripts/installer.nsh +++ b/scripts/installer.nsh @@ -50,7 +50,7 @@ DetailPrint `Closing running "${PRODUCT_NAME}"...` # Kill ALL processes whose executable lives inside $INSTDIR. - # This covers ClawX.exe (multiple Electron processes), openclaw-gateway.exe, + # This covers the app executable (multiple Electron processes), openclaw-gateway.exe, # python.exe (skills runtime), uv.exe (package manager), and any other # child process that might hold file locks in the installation directory. # @@ -83,7 +83,7 @@ ${nsProcess::Unload} ${endIf} - ; Even if ClawX.exe was not detected as running, orphan child processes + ; Even if the app executable was not detected as running, orphan child processes ; (python.exe, openclaw-gateway.exe, uv.exe, etc.) from a previous crash ; or unclean shutdown may still hold file locks inside $INSTDIR. ; Unconditionally kill any process whose executable lives in the install dir. @@ -92,7 +92,7 @@ Pop $1 ; Always kill known process names as a belt-and-suspenders approach. - ; PowerShell path-based kill may miss processes if the old ClawX was installed + ; PowerShell path-based kill may miss processes if the old app was installed ; in a different directory than $INSTDIR (e.g., per-machine -> per-user migration). ; taskkill is name-based and catches processes regardless of their install location. nsExec::ExecToStack 'taskkill /F /T /IM "${APP_EXECUTABLE_FILENAME}"' diff --git a/scripts/linux/after-install.sh b/scripts/linux/after-install.sh index 17e095b..0cba1f8 100644 --- a/scripts/linux/after-install.sh +++ b/scripts/linux/after-install.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Post-installation script for ClawX on Linux +# Post-installation script for Zhinian Assistant on Linux set -e @@ -14,20 +14,21 @@ if command -v gtk-update-icon-cache &> /dev/null; then gtk-update-icon-cache -q /usr/share/icons/hicolor || true fi -# Create symbolic link for ClawX app binary -if [ -x /opt/ClawX/clawx ]; then - ln -sf /opt/ClawX/clawx /usr/local/bin/clawx 2>/dev/null || true +# Create symbolic link for Zhinian Assistant app binary +APP_DIR="/opt/智念助手" +if [ -x "$APP_DIR/zhinian-assistant" ]; then + ln -sf "$APP_DIR/zhinian-assistant" /usr/local/bin/zhinian-assistant 2>/dev/null || true fi # Create symbolic link for the app-managed openclaw CLI only when it will not # overwrite a user-managed OpenClaw installation. -OPENCLAW_WRAPPER="/opt/ClawX/resources/cli/openclaw" +OPENCLAW_WRAPPER="$APP_DIR/resources/cli/openclaw" if [ -f "$OPENCLAW_WRAPPER" ]; then chmod +x "$OPENCLAW_WRAPPER" 2>/dev/null || true if [ ! -e /usr/local/bin/openclaw ] || [ "$(readlink /usr/local/bin/openclaw 2>/dev/null || true)" = "$OPENCLAW_WRAPPER" ]; then ln -sf "$OPENCLAW_WRAPPER" /usr/local/bin/openclaw 2>/dev/null || true else - echo "Keeping existing /usr/local/bin/openclaw; it is not managed by ClawX." + echo "Keeping existing /usr/local/bin/openclaw; it is not managed by Zhinian Assistant." fi fi @@ -37,9 +38,9 @@ fi # we rely on the AppArmor profile below instead, so 0755 is correct there. if ! { [[ -L /proc/self/ns/user ]] && unshare --user true; }; then # No user namespace support — fall back to SUID sandbox - chmod 4755 '/opt/ClawX/chrome-sandbox' || true + chmod 4755 "$APP_DIR/chrome-sandbox" || true else - chmod 0755 '/opt/ClawX/chrome-sandbox' || true + chmod 0755 "$APP_DIR/chrome-sandbox" || true fi # Install AppArmor profile (Ubuntu 24.04+). @@ -50,8 +51,8 @@ fi # We first check if AppArmor is enabled and if the running version supports abi/4.0 # (Ubuntu 22.04 does not; it runs fine without the profile, so we skip it there). if apparmor_status --enabled > /dev/null 2>&1; then - APPARMOR_PROFILE_SOURCE='/opt/ClawX/resources/apparmor-profile' - APPARMOR_PROFILE_TARGET='/etc/apparmor.d/clawx' + APPARMOR_PROFILE_SOURCE="$APP_DIR/resources/apparmor-profile" + APPARMOR_PROFILE_TARGET='/etc/apparmor.d/zhinian-assistant' if apparmor_parser --skip-kernel-load --debug "$APPARMOR_PROFILE_SOURCE" > /dev/null 2>&1; then cp -f "$APPARMOR_PROFILE_SOURCE" "$APPARMOR_PROFILE_TARGET" @@ -64,4 +65,4 @@ if apparmor_status --enabled > /dev/null 2>&1; then fi fi -echo "ClawX has been installed successfully." +echo "Zhinian Assistant has been installed successfully." diff --git a/scripts/linux/after-remove.sh b/scripts/linux/after-remove.sh index c115354..fdf4546 100644 --- a/scripts/linux/after-remove.sh +++ b/scripts/linux/after-remove.sh @@ -1,15 +1,15 @@ #!/bin/bash -# Post-removal script for ClawX on Linux +# Post-removal script for Zhinian Assistant on Linux set -e # Remove symbolic links -rm -f /usr/local/bin/clawx 2>/dev/null || true +rm -f /usr/local/bin/zhinian-assistant 2>/dev/null || true # Only remove the app-managed OpenClaw CLI wrapper. If the user had OpenClaw # installed separately, leave their command and ~/.openclaw data untouched. -OPENCLAW_WRAPPER="/opt/ClawX/resources/cli/openclaw" +OPENCLAW_WRAPPER="/opt/智念助手/resources/cli/openclaw" if [ "$(readlink /usr/local/bin/openclaw 2>/dev/null || true)" = "$OPENCLAW_WRAPPER" ]; then rm -f /usr/local/bin/openclaw 2>/dev/null || true fi @@ -25,9 +25,9 @@ if command -v gtk-update-icon-cache &> /dev/null; then fi # Remove AppArmor profile -APPARMOR_PROFILE_TARGET='/etc/apparmor.d/clawx' +APPARMOR_PROFILE_TARGET='/etc/apparmor.d/zhinian-assistant' if [ -f "$APPARMOR_PROFILE_TARGET" ]; then rm -f "$APPARMOR_PROFILE_TARGET" fi -echo "ClawX has been removed." +echo "Zhinian Assistant has been removed."