feat(plugin): 稳定命令行入口 ~/.deta/bin/deta(login / status / doctor)
CI / contract (push) Has been cancelled
CI / contract (push) Has been cancelled
为什么需要:登录助手原先只在插件目录里(宿主缓存路径 <缓存>/bin/deta-login.mjs),普通用户不知道插件装在哪;工具回执让用户「跑登录助手」时给不出可复制的命令。 实现:新增 bin/deta-cli.mjs(login 转交登录助手、status 看凭据来源/运行时/工作区、doctor 自检运行时+凭据+GSA health+MCP 握手,永不打印令牌);启动器每次拉起时幂等注册 ~/.deta/bin/deta(路径随插件更新自动刷新,幂等比较避免重复写);技能与三份 README 的登录口径统一为 \`~/.deta/bin/deta login\`。版本 studio 0.3.3 / writer 0.1.1。 实测:shim 生成与 help/status/doctor 均符合预期,doctor 准确报出唯一缺口(未登录)并握手成功 37 工具。
This commit is contained in:
@@ -68,6 +68,20 @@ export ANT_HEADLESS_WORKSPACE="$WS"
|
||||
# ── 工具面:产品档位缺省全量面;DETA_SURFACE 可覆盖(如 engine)──
|
||||
export DETA_TOOL_SURFACE="${DETA_SURFACE:-full}"
|
||||
|
||||
# ── 稳定入口:把命令行门面注册为 ~/.deta/bin/deta(幂等,路径随插件更新自动刷新)──
|
||||
# 插件装在宿主缓存目录,用户看不见这个路径;而用户与工具回执都需要一条可复制的命令。
|
||||
PLUGIN_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
BIN_DIR="$HOME/.deta/bin"
|
||||
SHIM="$BIN_DIR/deta"
|
||||
SHIM_BODY="#!/bin/sh
|
||||
# DETA 命令行门面(由插件启动器自动维护,勿手工编辑)
|
||||
exec \"$(command -v node)\" \"$PLUGIN_ROOT/bin/deta-cli.mjs\" \"\$@\"
|
||||
"
|
||||
mkdir -p "$BIN_DIR" 2>/dev/null || true
|
||||
if [ ! -f "$SHIM" ] || [ "$(cat "$SHIM" 2>/dev/null)" != "$SHIM_BODY" ]; then
|
||||
printf '%s' "$SHIM_BODY" > "$SHIM" 2>/dev/null && chmod 0755 "$SHIM" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# ── 云令牌:显式环境变量 → ~/.deta/env → ~/.deta/credentials.json ──
|
||||
# 桌面应用(Finder/Dock 启动)不会继承终端的 export,也不是每个人都有 launchctl 注入,
|
||||
# 因此登录助手写下的凭据必须由启动器自己解析——这是"登录一次即可用"的关键路径。
|
||||
@@ -89,7 +103,7 @@ fi
|
||||
if [ -n "${DETA_TOKEN:-}" ]; then
|
||||
CLOUD_STATE="已注入(来源=${TOKEN_SOURCE})"
|
||||
else
|
||||
CLOUD_STATE="未注入——云类工具将返回 auth_required:运行 bin/deta-login.mjs 登录后开新会话"
|
||||
CLOUD_STATE="未注入——云类工具将返回 auth_required:运行 ~/.deta/bin/deta login 登录后开新会话"
|
||||
fi
|
||||
|
||||
echo "[deta] 档位=${PROFILE} 运行时=${ROOT} 工作区=${WS} 工具面=${DETA_TOOL_SURFACE} 云令牌=${CLOUD_STATE}" >&2
|
||||
|
||||
Reference in New Issue
Block a user