请问各位大佬 现在ai可以分析apk吗?如何将王力智能门锁接入Homeassistant呢?请各位大佬指点 王力智能app下载链接 1 个帖子 - 1 位参与者 阅读完整话题
这个skill也是刚刚创建不久希望能够给我的仓库点个start或者提出一些改进意见,让这个skill更加好用,谢谢大家哦。 xiaozhi-esp32-dev Skill 面向 xiaozhi-esp32 项目的 Qoder Agent Skill,规范 AI 在嵌入式开发中的行为准则。 用途 本 Skill 约束 Agent 在处理 xiaozhi-esp32 项目任务时的工作方式,覆盖以下场景: 需求分析 :需求不明确时强制提问,禁止幻想实现 代码阅读 :要求阅读完整上下文,不只看单个文件 新功能开发 :判断代码归属层级(BSP / Middleware / App),遵守 ESP-IDF 组件化规范 外设驱动迁移 :基于例程或数据手册的 16 步标准化迁移流程 Bug 修复 :最小变更原则,优先复现定位再修复 BSP / Middleware 分层 :清晰的架构边界和依赖方向 调试日志 :三层(BSP / Middleware / App)分层日志规范 低功耗与提醒 :离线 NVS 持久化、RTC 休眠唤醒架构设计 Git 工作流 :任务前后必须检查工作区状态,规范 commit message 调用链追踪 :每次代码变更自动维护项目根目录 Call_chain.md ,用 Mermaid 流程图 + 调用链表记录调用逻辑 目录结构 xiaozhi-esp32-dev/ ├── SKILL.md # 主入口,包含 frontmatter 元数据和文档索引 ├── README.md # 本文件,Skill 使用说明 └── docs/ # 20 个规则子文档 ├── 01-git-status-check.md ├── 02-code-reading-principles.md ├── 03-superpowers-collaboration.md ├── 04-unclear-requirements.md ├── 05-new-feature-requirements.md ├── 06-readme-changelog.md ├── 07-bsp-layer-rules.md ├── 08-middleware-layer-rules.md ├── 09-code-classification.md ├── 10-esp-idf-component.md ├── 11-cmake-dependencies.md ├── 12-minimal-change-principle.md ├── 13-driver-migration.md ├── 14-debug-logging.md ├── 15-low-power-reminder.md ├── 16-verification-flow.md ├── 17-final-response.md ├── 18-prohibited-actions.md ├── 19-recommended-workflow.md ├── 20-core-principles.md └── 21-call-chain-tracking.md 触发条件 当用户对 xiaozhi-esp32 项目发起以下操作时,本 Skill 会被自动加载: 提出新功能需求 报告 Bug 或请求修复 要求阅读或分析代码 请求外设驱动迁移 要求修改 BSP 或 Middleware 请求构建、调试或验证 要求记录或查看代码调用链 架构核心思想 app / main ← 业务流程编排 ↓ middleware ← 能力抽象、状态管理、策略封装 ↓ bsp ← 外设驱动、板级硬件适配 ↓ esp-idf drivers ← 底层外设接口 任何新代码都必须先判断归属层级,再编写实现。 快速参考:推荐工作流 1. 检查 git status 2. 阅读项目结构 3. 阅读 README.md 4. 判断任务类型 5. 需求不明确 → 向用户提问 6. 新硬件 → 索要例程或数据手册 7. Bug → 索要日志和复现步骤 8. 阅读相关代码和调用链 9. 判断 BSP / Middleware / App 归属层 10. 最小必要修改 11. 更新 CMakeLists.txt 12. 更新 README 日志 13. 执行构建或静态检查 14. 再次检查 git status 15. 总结变更,给出 commit message 建议 16. 更新 Call_chain.md 调用链记录 禁止行为(摘要) 不检查 Git 就改代码 只读单文件就修 Bug 需求不清时幻想实现 没有数据手册就写驱动 BSP 和 Middleware 混在一起 BSP 反向依赖 Middleware 大规模重构无关代码 修改完不汇报变更范围 完整列表见 docs/18-prohibited-actions.md 。 8 个帖子 - 6 位参与者 阅读完整话题
之前在 tg 频道看到有 beta 版,应该是官方的,所以就下载了,现在到期了,我想着商店重下就好了,但是点了重新下载,一直在转圈圈😵💫,有老哥遇到过吗
之前在 tg 频道看到有 beta 版,应该是官方的,所以就下载了,现在到期了,我想着商店重下就好了,但是点了重新下载,一直在转圈圈😵💫,有老哥遇到过吗
之前在 tg 频道看到有 beta 版,应该是官方的,所以就下载了,现在到期了,我想着商店重下就好了,但是点了重新下载,一直在转圈圈😵💫,有老哥遇到过吗
之前在 tg 频道看到有 beta 版,应该是官方的,所以就下载了,现在到期了,我想着商店重下就好了,但是点了重新下载,一直在转圈圈😵💫,有老哥遇到过吗
前言 因为公益站太多,懒得一个个复制链接进去,并且有些站点不支持自动签到 ALL API HUB功能复杂把我劝退了 于是我基于佬的插件和用AI新增了以下实用功能: 1.实现页面签到按钮旁的快捷导入入口 2.实现站点拖拽排序与分组tab功能 效果 安装包 剧透 拖拽加了三方库到本地轻喷,可以换成cdn 安装/使用等移步至原文 FYI 【0610更新】公益站自动签到Chrome插件,每日定时签到显示余额,支持各类型站点 OAuth自动登录 资源荟萃 前言 自己尝试改了一位佬友的Chrome插件,用AI加了一些新的功能:公益站名称显示、点击直达签到页面、余额显示…… 插件支持NewAPI、Sub2API等各类型公益站,支持L站 OAuth 自动登录,测试下来基本上满足自己的需求了,不敢私藏发出来给佬友们一起享用,解放每日签到的双手~! 0基础编程的设计师,还望各位大佬轻喷,欢迎批评指正~ 0610更新: 新增“签到中”,可以随时点击停止… 8 个帖子 - 6 位参与者 阅读完整话题
如图,网页端的模型思考等级描述变成Instant,Medium和High了,是会有什么大动作么 3 个帖子 - 3 位参与者 阅读完整话题
有佬知道为啥吗?另一个电脑可以,就这个电脑不行。 2 个帖子 - 1 位参与者 阅读完整话题
edsource.org California State University renews controversial systemwide contract with... The move has sparked debate about the cost of the agreement and the quality of ChatGPT Edu, a version of ChatGPT designed for higher education. 母校签了3年,校友快来,可惜不能用codex 登录网址 https://www.csun.edu/it/software-services/chatgpt 开始登录不了,后面发现是密码过期了,重置一下密码就行了。 12 个帖子 - 9 位参与者 阅读完整话题
从 Instant、Thinking、Pro变成了 Instant、Medium、High、Extra High 和 Pro 其中 Extra high 应该对应之前的 Thinking heavy,juice 有768。 5 个帖子 - 4 位参与者 阅读完整话题
github.com GitHub - LiuTangLei/tailscale-awg-installer: Installers and docs for an unofficial Tailscale... Installers and docs for an unofficial Tailscale build with optional Amnezia-WG obfuscation. Linux/macOS/Windows/OpenWrt one-click scripts, plus Android/iOS guides. Works with official Tailscale and Headscale. Not affiliated with Tailscale. 用Wireshark抓包确认没有任何wg特征了, 不过还没试过设置i1这种伪装头去伪装其他协议效果如何,个人实测公司电信到家里移动, p2p打洞后丢包率从25%降低到5%以下, 混淆后和zerotier比丢包率似乎差不多, 不清楚是移动这边qos了电信的wg协议还是电信qos了移动的wg协议, zerotier的udp流量目前暂时没被qos, 以后说不清楚, issue里面提问题的有好几个俄罗斯的用户, 应该是amnezia在那边有点影响力的原因 wg协议过墙很容易被封vps, 我用这个组网了大半年, 机器0被墙 1 个帖子 - 1 位参与者 阅读完整话题
前言 目前我把游戏分别放在本地 D:\game 和NAS的 G:\game (映射盘符)上运行(主要是gal和一些SLG太占空间了,又不想删)。长时间后, Local,Roaming,LocalLow 里会有各种游戏生成的存档和配置文件目录。 删游戏时这些目录并不会自动消失,AppData 越来越臃肿,想手动清理又怕删错,备份更是无从下手 于是我写了一套 PowerShell 脚本: 实时监控文件夹创建,自动记录游戏路径和存档位置,并在确认后将存档迁移到统一目录,在原位置留下符号链接 。这样既能把存档集中管理,又能让 AppData 保持干净。不过,NAS 映射盘符是整个过程里最大的坑(但大多佬们似乎用不到)。本文将分享我从“映射失败”到“稳定挂载”的全过程,以及脚本在中文转码、路径匹配、去重、队列管理等方面踩过的坑和最终方案。 而且我现在的环境很特殊:NAS 和主机用网线直连,主机通过 ICS 让 NAS 共享校园网。下一篇博客会补充 NAS 实战中的更多内容(为此我花了一周在学习网络通信协议)。 手动查找并迁移已有文件 1. 按修改时间查找文件 如果知道文件大概的修改时间范围,可以用以下命令快速定位: Get-ChildItem -Path "D:\game" -Recurse -File | Where-Object { $_.LastWriteTime -ge "2026-06-01 10:40" -and $_.LastWriteTime -le "2026-06-01 11:00" } 找到后根据完整路径判断属于哪个游戏,然后手动复制存档到备份目录(例如 D:\GameSaves\manual )。 2. 批量迁移脚本(BAT 示例) 对于大量已知映射关系的配置文件,可以写一个批处理脚本。 注意:BAT 脚本如需输出中文,必须保存为 ANSI(GBK) 编码;而给 AI 或代码库看的脚本建议用 UTF-8。 @echo off set SRC1=C:\Users\admin\AppData\Local\GameA\Save set DST1=D:\GameSaves\GameA xcopy "%SRC1%" "%DST1%" /E /I /Y set SRC2=C:\Users\admin\AppData\LocalLow\GameB set DST2=D:\GameSaves\GameB xcopy "%SRC2%" "%DST2%" /E /I /Y echo 迁移完成 pause NAS 盘符映射 1. 在 Windows 中映射 NAS 文件夹 我的 NAS 型号是绿联 Dxp4800plus,通过 ICS 共享网络,设置的私网IP 为 192.168.137.20 。我把所有游戏放在 NAS 共享文件夹 ACG (原名 acg资源 ,后来改名)下,并映射到主机的 G: 盘。 正确映射方法(一定要勾选“登录时重新连接”) : 右键“此电脑” → “映射网络驱动器”。 驱动器选择 G: ,文件夹选择 NAS设备\ACG 必须勾选"登录时重新连接" ,不然后面开机自启会出问题。 用校园网连接NAS时,在 网络 可能会找不到设备,需要先进入 WLAN 把校园网从专用切换为公用,再在 网络 里重新转为专用,才能发现 NAS 设备。我现在也没搞清楚根本原因是什么,如果佬们知道正确的修改方法请告诉我。 2. 几个踩坑点 踩坑 1:修改共享名称后映射失效 当我把共享文件夹从 acg资源 改名为 ACG 后,就无法进入之前映射好的 G: 盘了。这是因为映射驱动器指向的远程路径是 \\...\acg资源 ,而实际共享已不存在。 解决方法 : 先删除旧映射G盘 按照上述步骤重新映射到新文件夹 ACG 一旦修改 NAS 共享名,必须同时更新所有客户端的映射,并更新脚本中的路径 踩坑 2:到底该用盘符(G:)还是 UNC 路径(\IP\share)? 这是困扰我最久的问题(主要是不停打开游戏和脚本测试,还要不断删除对应的文件和json内容)。 脚本需要匹配运行中游戏的可执行文件路径,而 Get-Process 返回的 Path 属性 在不同启动方式下表现不一致 : 如果通过资源管理器双击 G:\game\xxx.exe 启动,进程路径有时是 G:\game\... (盘符形式)。 如果通过 \\192.168.137.20\ACG\game\xxx.exe 直接启动,进程路径是 UNC。 有些游戏启动器可能会强制转换路径。 我最初按 UNC 路径 \\192.168.137.20\ACG\game 设置 $gameRoot ,但实际运行时却匹配不到(因为进程路径是 G:\game 开头)。后来改为 G:\game 就成功了,所以最稳妥的做法是 把盘符和UNC都配置上 ,让脚本自己去匹配。 不知道为什么,在 powershell 中 cd \\192.168.137.20\ACG\game 却没有问题 踩坑 3:开机自启时 G 盘还未连上 设置任务计划程序开机启动脚本后,发现脚本虽然运行了,但始终检测不到 NAS 上的游戏。日志显示 [注意] 未检测到游戏进程 。 原因:用户登录后,系统需要几秒钟来恢复网络驱动器。而脚本在登录瞬间就执行了,此时 G: 盘还不存在。 解决方案 :在任务计划程序的触发器设置中,添加 “延迟任务时间 30 秒” (或更长,如 60 秒),这样脚本会等待网络和映射完全准备好再启动。 实现自动化监控脚本 核心需求: 监控三个存档常用目录: %LOCALAPPDATA% 、 %APPDATA% 、 %USERPROFILE%\AppData\LocalLow (即 Local,Roaming,LocalLow ) 当有新文件夹被创建(某个游戏第一次生成存档)时,自动记录 同时检查本地 D:\game 和 NAS 映射的 G:\game 路径,检测当前运行的游戏进程并将其 exe 路径以 Base64 存入队列 1. 设置 PowerShell 执行策略 首次运行脚本前,需要允许执行本地脚本: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 2. 监控脚本(Watch-GameSaves.ps1) 以下为脚本核心结构(完整代码略去,仅说明逻辑): 定义监控根目录、排除文件夹列表。 使用 FileSystemWatcher 监视 $watchPaths 下的文件夹创建事件。 事件触发后: 跳过已存在的连接点或排除文件夹。 延迟 3 秒,给游戏时间完成写入。 获取正在运行的进程,匹配路径是否以 D:\game 或 G:\game 开头。 将匹配到的第一个游戏 exe 路径转为 Base64(避免 JSON 中的转义和乱码问题)。 将存档路径、游戏 exe Base64、时间等信息写入 pending.json 。 3. 解决中文乱码:Base64 转码 因为游戏路径中可能出现中文(如“除灵猎人”),直接存储到 JSON 会导致编码混乱(而且很难解决,不论将文件保存为UTF-8还是GBK都不行,因为本质是在action中进行的解码)。解决方法是将 exe 路径进行 Base64 编码: { "srcPath": "C:\\Users\\admin\\AppData\\Local\\NebelTR", "time": "2026-06-04 15:28:26", "gameExeBase64": "RDpcZ2FtZVxSUEdcQkJR5aSn5aW944GNXOmZpOeBteeMjuS6ulzpmaTngbXnjI7kurotQ04tMS4xMlxHYW1lLmV4ZQ==", "dirName": "NebelTR", "remark": "" } 使用时通过 [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($base64)) 解码即可得到原始中文路径。 4. 避免重复记录已处理目录 某个存档目录已经成功迁移并创建了符号链接后,之后游戏再次运行,监控脚本又检测到同一目录的“创建”事件,就会导致重复记录。 解决方法 :在向 pending.json 追加新条目之前,先检查队列中是否已存在相同的 srcPath 。若有,直接跳过,不重复添加。这样即使链接目录被误触创建事件,也不会污染队列,同时也避免了后续转移脚本重复处理。 转移脚本与队列处理 监控是持续运行的,迁移则是定期手动触发(比如一个月或半年一次)。转移脚本读取 pending.json ,把存档从 AppData 搬走,原地建符号链接。 1. 转移脚本设计要点 从 pending.json 读取待处理项。 对每一项,先确定目标目录名。优先使用手动填写的 remark ,否则从解码后的 exe 路径自动提取游戏文件夹名,若都失败则回退到原始目录名。 通过 robocopy 将源目录完整复制到 D:\GameSaves\目标名 。 复制成功后, 删除源目录 ,并在同一位置创建一个 目录链接 指向新路径。 将迁移关系记录到 Markdown 格式的日志文件 存档迁移记录.md 中。 处理成功的条目从队列移除,失败则保留,等待下次重试。 2. 几个关键设计 安全删除和链接创建 ,这是最容易翻车的环节,有两个点必须处理好: 复制前如果目标目录已存在 (比如之前迁移过但记录丢了),直接 robocopy 会合并文件,可能造成新旧存档混杂。必须先尝试删除已有目标目录,并 检查是否真的被删干净 ;若因文件占用无法完全删除,则中止本次操作,保留队列项。 复制后删除源目录时,同样可能因文件占用导致部分删除失败 。必须确认源目录已完全消失后,才能创建链接。否则残留目录加上失败的链接创建,会让游戏存档状态混乱。若删除失败,整个迁移视为未完成,保留在队列中,下次重试。 这些检查在脚本中都是以条件判断 + 日志记录的方式实现的,确保一定成功。 迁移记录以 Markdown 表格形式写入 存档迁移记录.md ,例如: 原 C 盘快捷方式名 实际存储位置 游戏/说明 praygame D:\GameSaves\祈愿游戏 praygame 游戏存档 rmmz-game D:\GameSaves\莉可的不可思议差事 莉可的不可思议差事 这样无论后续手动浏览还是用其他工具解析,都非常直观。 队列自动清理 :每处理完一批,脚本生成一个新的 JSON 数组,只包含失败的项,覆盖写回 pending.json 。成功的自动消失,不需要手动编辑。 设置开机自启 使用 Windows 任务计划程序保证脚本在每次登录时自动运行。 操作步骤 打开“任务计划程序” (可以 Win+R 输入 taskschd.msc )。 右侧点击 “创建任务” (不是“创建基本任务”)。 名称: GameSavesMonitor 配置: Windows 10 ,勾选 “使用最高权限运行” 。 触发器 → 新建: 开始任务: 登录时 特定用户:选择你的账户(如 DESKTOP-XXX\admin ) 高级设置: 延迟任务时间 30 秒 (给网络驱动器映射留出时间) 确保“已启用”被勾选。 操作 → 新建: 程序或脚本: powershell.exe 添加参数: -WindowStyle Hidden -ExecutionPolicy Bypass -File "D:\Scripts\Watch-GameSaves.ps1" 起始于(可选): D:\Scripts 条件 :建议取消“只有在计算机使用交流电源时才启动此任务”(笔记本)。 设置 :勾选“如果任务失败,按以下频率重新启动”(间隔 1 分钟,最多 3 次)。 确定保存。 验证自启是否生效 重启电脑后登录, Win+R 输入 taskschd.msc 查看 显示所有正在运行的任务 。 检查日志文件 D:\GameSaves\监控调试日志.txt ,应包含最新的启动时间戳。 总结 通过这套方案,无论游戏安装在本地还是 NAS,只要启动游戏产生配置文件夹,脚本就会自动记录存档路径和对应的游戏 exe 位置(Base64 编码),并利用任务计划程序实现开机自启,再配合手动或自动迁移脚本,基本可以保证AppData较为干净。 由于所有操作都在 AppData 内进行(删除、创建链接), 直接贴出完整脚本容易导致佬们在不理解的情况下误操作,造成数据丢失 。因此本文只讲逻辑和关键点,佬们可以根据以上思路自行编写,或让 AI 辅助生成。真有需要的佬可以私信我,如果对某一块的实现细节感兴趣,也欢迎留言交流。 2 个帖子 - 2 位参与者 阅读完整话题
脚本 #!/data/data/com.termux/files/usr/bin/bash set -euo pipefail readonly SCRIPT_NAME="$(basename "$0")" readonly MIMO_PACKAGE_NAME="@mimo-ai/cli" readonly MIMO_PACKAGE_VERSION="${MIMO_CODE_VERSION:-${MIMOCODE_VERSION:-latest}}" readonly PREFIX_DIR="${PREFIX:-/data/data/com.termux/files/usr}" readonly HOST_MIMO_PATH="$PREFIX_DIR/bin/mimo" readonly MIMO_CLI_PKG_DIR="$PREFIX_DIR/lib/node_modules/@mimo-ai/cli" readonly MIMO_ARCH_PKG_NAME="@mimo-ai/mimocode-linux-arm64" readonly MIMO_ARCH_PKG_DIR="$PREFIX_DIR/lib/node_modules/$MIMO_ARCH_PKG_NAME" readonly TMP_ROOT="$HOME/tmp" readonly BACKUP_DIR="$TMP_ROOT/mimocode-backups" readonly WRAPPER_MARKER="# mimocode-termux-glibc-wrapper" # Resolved by install_mimo_package() after locating the real glibc ELF. MIMO_BINARY_PATH="" MIMO_RESOLVED_VERSION="" readonly C_BOLD_BLUE="\033[1;34m" readonly C_BOLD_GREEN="\033[1;32m" readonly C_BOLD_YELLOW="\033[1;33m" readonly C_BOLD_RED="\033[1;31m" readonly C_RESET="\033[0m" info() { printf '%b[INFO]%b %s\n' "$C_BOLD_BLUE" "$C_RESET" "$*"; } success() { printf '%b[ OK ]%b %s\n' "$C_BOLD_GREEN" "$C_RESET" "$*"; } warn() { printf '%b[WARN]%b %s\n' "$C_BOLD_YELLOW" "$C_RESET" "$*" >&2; } die() { printf '%b[ERR ]%b %s\n' "$C_BOLD_RED" "$C_RESET" "$*" >&2; exit 1; } usage() { cat <<EOF Usage: bash $SCRIPT_NAME What it does (glibc-runner mode, no proot): 1. Installs glibc-repo, refreshes apt metadata, installs glibc-runner. 2. Installs nodejs-lts + npm in Termux (if missing). 3. npm installs ${MIMO_PACKAGE_NAME} globally, then force-installs the ${MIMO_ARCH_PKG_NAME} native linux-arm64 package. 4. Skips MiMoCode's postinstall script because Termux Node reports process.platform='android' and the upstream script looks for a non-existent @mimo-ai/mimocode-android-arm64 package. 5. Replaces \$PREFIX/bin/mimo with a grun wrapper that runs the glibc ELF directly on Termux. Environment overrides: MIMO_CODE_VERSION npm package version/tag, default: ${MIMO_PACKAGE_VERSION} examples: latest, preview, 0.1.0, v0.1.0 MIMOCODE_VERSION alias for MIMO_CODE_VERSION Notes: - Official MiMoCode install docs: https://github.com/XiaomiMiMo/MiMo-Code - glibc-runner injects glibc via LD_LIBRARY_PATH; kernel calls are native. EOF } command_exists() { command -v "$1" >/dev/null 2>&1; } # ELF magic = 7f 45 4c 46; e_machine at offset 18 = 0xb7 for EM_AARCH64. is_valid_aarch64_elf() { local f="$1" [ -f "$f" ] || return 1 local magic machine magic=$(od -An -tx1 -N4 "$f" 2>/dev/null | tr -d ' \n') [ "$magic" = "7f454c46" ] || return 1 machine=$(od -An -tx1 -j18 -N1 "$f" 2>/dev/null | tr -d ' \n') [ "$machine" = "b7" ] } find_arch_binary() { local candidate for candidate in \ "$MIMO_ARCH_PKG_DIR/bin/mimo" \ "$MIMO_CLI_PKG_DIR/bin/.mimocode"; do if is_valid_aarch64_elf "$candidate"; then MIMO_BINARY_PATH="$candidate" return 0 fi done while IFS= read -r candidate; do if is_valid_aarch64_elf "$candidate"; then MIMO_BINARY_PATH="$candidate" return 0 fi done < <(find "$MIMO_ARCH_PKG_DIR" "$MIMO_CLI_PKG_DIR" -type f -size +10M 2>/dev/null) return 1 } ensure_tmp_root() { mkdir -p "$TMP_ROOT" [ -w "$TMP_ROOT" ] || die "Temp directory is not writable: $TMP_ROOT" export TMPDIR="$TMP_ROOT" } require_termux() { [ -d "$PREFIX_DIR" ] || die "This script must run in Termux." command_exists pkg || die "pkg not found. This script must run in Termux." if [ -r /proc/1/status ] && grep -q 'TracerPid:.*[1-9]' /proc/1/status 2>/dev/null; then warn "Detected non-zero TracerPid on PID 1 -- looks like a proot session." warn "Run this script from a plain Termux shell, not from inside proot-distro." fi } ensure_termux_package() { local package_name="$1" if dpkg -s "$package_name" >/dev/null 2>&1; then success "Termux package already installed: $package_name" return 0 fi info "Installing Termux package: $package_name" pkg install -y "$package_name" success "Installed Termux package: $package_name" } ensure_glibc_runner() { ensure_termux_package "glibc-repo" if ! apt-cache show glibc-runner >/dev/null 2>&1; then info "Refreshing apt metadata so glibc-repo becomes visible" pkg update -y || apt-get update -y || true fi ensure_termux_package "glibc-runner" command_exists grun || die "grun not found after installing glibc-runner." } ensure_nodejs() { if command_exists node && command_exists npm; then success "Termux node present: $(node --version), npm $(npm --version)" return 0 fi if dpkg -s nodejs >/dev/null 2>&1; then success "nodejs already installed" else ensure_termux_package "nodejs-lts" fi command_exists node && command_exists npm || die "node/npm not found after installing nodejs." } resolve_mimo_version() { local requested="$MIMO_PACKAGE_VERSION" if [ "$requested" != "latest" ]; then requested="${requested#v}" fi local pkg_spec="$MIMO_PACKAGE_NAME" if [ "$requested" != "latest" ]; then pkg_spec="${MIMO_PACKAGE_NAME}@${requested}" fi info "Resolving version for ${pkg_spec}" local resolved resolved=$(npm view "$pkg_spec" version 2>/dev/null | tail -n1) \ || die "Failed to resolve version for ${pkg_spec} via npm view" [[ "$resolved" =~ ^[0-9]+\.[0-9]+ ]] \ || die "npm view returned a bogus version: '$resolved'" MIMO_RESOLVED_VERSION="$resolved" } backup_existing_launcher() { mkdir -p "$BACKUP_DIR" [ -e "$HOST_MIMO_PATH" ] || return 0 if grep -Fq "$WRAPPER_MARKER" "$HOST_MIMO_PATH" 2>/dev/null; then success "glibc-runner wrapper already in place" return 0 fi local backup_path="$BACKUP_DIR/mimo.host-backup.$(date +%Y%m%d_%H%M%S)" cp -P "$HOST_MIMO_PATH" "$backup_path" success "Backed up existing launcher to $backup_path" } install_mimo_package() { resolve_mimo_version local main_version="$MIMO_RESOLVED_VERSION" local pinned_main="${MIMO_PACKAGE_NAME}@${main_version}" local arch_spec="${MIMO_ARCH_PKG_NAME}@${main_version}" info "Installing ${pinned_main} without upstream optional platform packages" npm install -g --force --ignore-scripts --omit=optional "$pinned_main" info "Installing ${arch_spec} for Termux via glibc-runner" npm install -g --force --ignore-scripts --os=linux --cpu=arm64 "$arch_spec" find_arch_binary || die "No valid aarch64 ELF found under $MIMO_ARCH_PKG_DIR. \ The arch package may not have unpacked correctly; inspect with: \ ls -la $MIMO_ARCH_PKG_DIR" success "MiMoCode native binary: $MIMO_BINARY_PATH ($(stat -c %s "$MIMO_BINARY_PATH" 2>/dev/null || echo '?') bytes)" } install_host_wrapper() { local tmp_wrapper tmp_wrapper="$(mktemp "$TMP_ROOT/mimo-grun.XXXXXX")" cat >"$tmp_wrapper" <<EOF #!/data/data/com.termux/files/usr/bin/sh $WRAPPER_MARKER mkdir -p "\$HOME/tmp" 2>/dev/null || true export TMPDIR="\${TMPDIR:-\$HOME/tmp}" exec grun "$MIMO_BINARY_PATH" "\$@" EOF chmod 755 "$tmp_wrapper" rm -f "$HOST_MIMO_PATH" mv "$tmp_wrapper" "$HOST_MIMO_PATH" chmod 755 "$HOST_MIMO_PATH" success "Installed Termux launcher: $HOST_MIMO_PATH" } verify_install() { info "Verifying binary via grun" grun "$MIMO_BINARY_PATH" --version info "Verifying Termux launcher" "$HOST_MIMO_PATH" --version local path_mimo="" path_mimo="$(command -v mimo 2>/dev/null || true)" if [ -n "$path_mimo" ] && [ "$path_mimo" != "$HOST_MIMO_PATH" ]; then warn "Your PATH resolves 'mimo' to $path_mimo, not $HOST_MIMO_PATH." warn "Move $PREFIX_DIR/bin earlier in PATH or remove the older launcher." fi success "MiMoCode setup completed (glibc-runner mode)" } main() { if [ "${1:-}" = "-h" ] || [ "${1:-}" = "--help" ]; then usage exit 0 fi ensure_tmp_root require_termux ensure_glibc_runner ensure_nodejs backup_existing_launcher install_mimo_package install_host_wrapper verify_install cat <<EOF Run MiMoCode with: mimo Configuration: mode: glibc-runner (no proot) binary: $MIMO_BINARY_PATH launcher: $HOST_MIMO_PATH temp: $TMP_ROOT If the official installer previously added ~/.mimocode/bin before $PREFIX_DIR/bin, that older launcher may shadow this Termux wrapper. Troubleshooting: - If npm cannot resolve a preview version, install with: MIMO_CODE_VERSION=preview bash $SCRIPT_NAME - If subprocess errors mention libc/ld.so, the binary is loading Termux bionic libs via inherited LD_LIBRARY_PATH. Check glibc-runner docs. EOF } main "$@" 1 个帖子 - 1 位参与者 阅读完整话题
当初20亿美元的估值,现在难道还值这么多吗? 8 个帖子 - 6 位参与者 阅读完整话题
据彭博社报道,Meta已完成与Manus的业务分离,并停止了两家公司之间的数据共享,为撤销这项价值20亿美元收购交易迈出了关键一步。 Manus 知情人士表示,Meta实际上已经在公司与Manus之间建立了一道防火墙。自本月初以来,Meta已禁止Manus及其员工访问公司内部数据系统。相应地,Meta员工也不得再将Manus的工具用于公司内部项目。 根据彭博社看到的一份内部备忘录,Meta正在逐步停止使用Manus的服务。备忘录显示,公司已通知员工将现有的Manus项目迁移到Meta系统上,并且不要再在Manus平台上启动新的工作。知情人士称,这些旨在将两项业务分离的举措,标志着Meta朝着最终剥离Manus又迈出了一步。 与此同时,Manus创始人正在探索各种选项,以撤销这笔交易,其中包括筹集约10亿美元来回购公司。目前尚不清楚有关该交易的讨论是否已取得实质性进展。知情人士此前表示,Manus的员工已搬入Meta位于新加坡的办公室,而包括腾讯控股、真格基金和红杉中国在内的投资者,已经收到了Meta收购Manus所支付的相关款项。 查看评论
base64编码: dHAtY3diZTdsdTk3dWE2ZHZ1eHRjanVhdW1ybHJsNXhvbWYyZXo0bzdjaHJ0czFubW1w 兼容 OpenAI 接口协议: https://token-plan-cn.xiaomimimo.com/v1 兼容 Anthropic 接口协议: https://token-plan-cn.xiaomimimo.com/anthropic 模型 mimo-v2.5-pro、mimo-v2.5、mimo-v2.5-asr、mimo-v2.5-tts-voiceclone、mimo-v2.5-tts-voicedesign、mimo-v2.5-tts、mimo-v2-pro、mimo-v2-omni、mimo-v2-tts 8 个帖子 - 3 位参与者 阅读完整话题
各位佬推荐哪个好点,本来打算直接买PS的,但是最近看了很多地平线6的视频,也想玩玩地平线6,地平线6目前没上PS,有人说后续会上,不知道到底上不上,所以比较纠结买哪个。 6 个帖子 - 5 位参与者 阅读完整话题
我是想做一个类似于千问高考agent的纯聊天小程序,需要一些简单的数据支撑,现在网上能搜索到正式一点的高考历年录取分数线的数据好像只有cnopendata上有,但是本人不是学术工作者所以申请不了,就想问问论坛的大佬们看看有没有可以帮忙下载的,当然也可以走ldc。 原数据在: 中国高考录取分数线数据 当然这块如果有违规或者风险也可以告知,只是暂时有这么一个想法 1 个帖子 - 1 位参与者 阅读完整话题
是我打开方式不对吗,为什么内测还要钱,而且是3倍价格 APIStatusError : Error code: 402 - {‘error’: {‘code’: ‘402’, ‘message’: ‘Insufficient account balance’, ‘type’: ‘insufficient_balance’}} 1 个帖子 - 1 位参与者 阅读完整话题