omp packages

pi-personal-tools1.0.2

Personal Pi commands for commits, session handoff, token reports, and Windows Terminal status.

bpldbt Published 8 days ago ~663 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

pi-personal-tools

集中维护四个个人扩展并打包为 Pi Package,不包含其他扩展、Skills、用户配置或账号凭证。TypeScript 源码由 Pi 直接加载,无需编译。

包含内容

入口 用途
/commit [Jira单号] 检查改动、确认提交范围并创建 Git commit
/commit self "正文" 保留用户正文,补充提交前缀与 AI 标签,并在确认后提交
/handoff-copy [下一步说明] 生成中文交接摘要,确认后创建新会话并填入输入框;不写系统剪贴板
/report-token [最近助手回复数] 分析当前会话分支的 Token、工具输出、重试及压缩指标,保存 Markdown 报告
terminal-tab-status 在 Windows Terminal 中显示标题动画、等待状态及提示音,无斜杠命令

/commit 使用无 scope 的提交前缀(如 fix: 正文、feat: 正文),提交信息追加 AI-Generated: true。最终确认由模型调用 commit_confirm 交互面板:默认选中“确认提交”,直接按 Enter;按 Tab 切到修改意见输入框,输入后 Enter 返回意见给模型,调整后重新确认;Esc 取消且保留暂存。完整提交信息和改动范围先在聊天中展示;面板只保留确认提交、修改意见和按键提示三行内容,行间各留一个空行,不重复详情,不必再手输“确认”。

确认工具不执行 Git 提交;它核对已审阅的 tree,并在确认后复核仓库、HEAD、暂存内容和会话分支,变化或读取失败不批准。模型提交前仍须再次核对并使用原样 message,只执行一次提交;这不是原子 Git 事务,也不绕过原有范围/敏感信息确认规则。非 TUI 模式不支持该面板,仍需明确文字确认;取消和错误不能自动降级或提交。

安装

另一台电脑需先安装 Pi,并单独配置模型登录或 API 凭证。Git 必须可从 PATH 调用。建议先使用相同 Pi 版本验证。

复制此完整目录到另一台电脑后,通过实际目录路径安装:

pi install ./pi-personal-tools

本地路径安装直接引用该目录,不复制资源;安装后不要删除该目录。

本机唯一维护目录为 C:\Dev\pi-extensions\pi-personal-tools,全局安装命令:

pi install C:/Dev/pi-extensions/pi-personal-tools

之后只修改本目录内的源码,执行 /reload(或重启 Pi)加载修改,不再向 ~/.pi/agent/extensions/ 复制这四个文件。

发布到 npm 后安装(不固定版本,方便后续更新):

pi install npm:pi-personal-tools

安装后重启 Pi 或执行 /reload。如果同一电脑已通过 ~/.pi/agent/extensions/ 加载这四个文件,先将原文件移到自动加载目录之外备份,或通过 pi config 禁用原本地入口,避免重复命令或重复事件处理。此包不会自动删除旧文件。

发布新版本后,npm 用户执行以下命令,再在 Pi 中 /reload:

pi update npm:pi-personal-tools

npm 安装不会自动跟随本地源码修改。若安装时指定了固定版本(例如 npm:pi-personal-tools@1.0.0),需用 pi install npm:pi-personal-tools 改为追踪最新版,或显式安装所需新版本。本地开发与 npm 安装应择一使用,避免加载两个来源的同名扩展。

使用条件

  • /handoff-copy 仅支持交互式 TUI,需要当前可用模型,会调用模型生成摘要;确认后内容放入新会话输入框,按 Enter 才发送。

  • /report-token 需要 Git 仓库,并要求 Git 忽略 .agent/token-reports/,否则拒绝写入。例如在仓库根目录的 .gitignore 添加:

    /.agent/token-reports/
    

    参数范围为 1..10000;统计使用会话已记录的数据,不代表供应商完整账单。历史会话和报告不会随包迁移。

  • terminal-tab-status 只在交互式 Windows Terminal(存在 WT_SESSION)中生效,其他终端不显示这些状态。

  • 宿主提供 @earendil-works/pi-ai、@earendil-works/pi-coding-agent、@earendil-works/pi-tui 与工具 schema 所需 typebox;它们仅声明为 peerDependencies,不随包捆绑。

验证与发布

在源码目录运行(现有 commit 测试使用 Node.js 原生 TypeScript 加载,建议 Node.js 22.18+ 或 24+):

npm install --ignore-scripts
npm test
npm pack --dry-run

测试使用隔离 Git 环境的真实临时仓库和 TUI Input/键盘组件,覆盖 Enter、Tab/中文意见、空意见、Esc、abort/shutdown、过期 tree、HEAD/会话分支变化、长提交信息下的紧凑布局、行间距和窄屏,以及子目录 diff.relative 下的全仓库暂存核对。另用真实 Pi loader 与离线 faux provider 验证交互结果返回模型和实际取消,不调用网络模型、不在调用方仓库自动提交。真人终端的输入法、间距/resize 与关闭后的焦点恢复仍需实际体验,不将组件/离线宿主测试视为真人 TUI 验收。

临时试用包而不添加配置:

pi --no-extensions -e .

确认功能、包内容、代码再分发权限及 npm 包名可用后再发布。首次发布可使用当前版本;后续发布前需提高 package.json 版本号,例如 npm version patch --no-git-tag-version,再重新运行上述验证。npm 不允许覆盖已发布的同名同版本包:

npm login
npm publish --access public

公开发布会公开这些扩展源码,包括提交规则和提示词。首次发布前可修改 package.json 的名称为自己的 scope(例如 @yourname/pi-personal-tools),并相应替换安装命令。不要将 auth.json、会话、Token 报告或其他本机私密文件加入发布内容。