SuperAPI AI 工具集

npm

部署与运维

查看项目

更新于 10-16 01:12

技能介绍

用途:处理 npm 注册表与账号相关任务,包括 npm whoami、包名可用性检查、包名预留、发布、组织检查以及认证调试。

认证方式:优先使用 1Password 管理密钥规则,不要在 shell 工具中直接运行 op。默认使用 OP_SERVICE_ACCOUNT_TOKEN,无需桌面解锁;条目中保存可用的注册表会话(registry_token)以及用户名/密码/TOTP 备用凭据。仅在 Molty 不可用且用户明确要求回退时,才显式传入 --account my.1password.com 使用桌面 npmjs 回退。若条目缺失、账号或保险库不明确、凭据格式错误、npm 拒绝包访问,或请求的包/版本与仓库发布目标不符,应停止并询问。

运行环境:npm 认证操作需在共享 op-work tmux 会话(clawdbot-op.sock)的单个任务窗口内执行,失败时复用该窗口,任务完成后关闭;不要新建 npm 专用 socket 或会话。认证信息保存在临时 npmrc 中,命令结束后删除。

辅助脚本:所有辅助脚本共用 scripts/npm-auth.sh,优先使用已存储的 registry_token 会话,其次用 scripts/npm-auth-login.mjs 配合新的六位 OTP 登录,成功的回退会话会缓存回同一条目。不要自行实现字段提取、注册表登录或缓存写入。支持已安装技能目录的符号链接。凭据选择优先规范字段 id,其次用途,再次唯一标签;仅标签重复的匹配会被拒绝。

临时命令:临时认证注册表命令使用 scripts/npm-service.sh -- <npm args...>;本地包发布使用 publish-package.sh。npm 11 的提示管道较脆弱,避免 printf ... | npm login --auth-type=legacy,也尽量避免 expect,优先使用辅助脚本的注册表 API 登录路径(npm-profile loginCouch)。若认证形态不明确或 npm whoami 失败,应停止并询问具体字段标签或凭据修复方式,不要继续探测其他 1Password 条目或打开新的 tmux 窗口/会话。

发布:在包根目录、同一认证 tmux 窗口内运行 /Users/steipete/Projects/agent-scripts/skills/npm/scripts/publish-package.sh。该脚本会验证身份、拒绝已存在的包版本、使用新 OTP 发布、对过期 OTP 重试一次、验证注册表可见性并清理认证文件。

包名预留:在同一 tmux 窗口内运行 scripts/reserve-packages.sh package-one package-two。它会读取一次 Molty 发布自动化条目,复用或创建注册表会话,发布带通用 README 的 0.0.0 占位包,单个包发布失败后继续,日志中隐藏 token/OTP,并清理临时 npmrc 与工作目录。npm 可能因名称与已发布名称过于相似而拒绝,这属于注册表策略结果而非认证失败。对于作用域包,npm view 可能滞后或 404,可用 npm access get status <pkg> 检查。

离线回归测试:在仓库根目录使用合成夹具,不涉及真实 1Password/npm 认证,始终使用空环境运行 node --test skills/npm/scripts/*.test.mjs 与 /bin/bash skills/npm/scripts/npm-auth.test.sh。