davehardy20-pi-hashline-tools

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

@davehardy20/pi-hashline-tools

Pi package for hash-anchored file reading and editing.

What it adds

  • read_hashed tool — Read a file and return content with LINE#ID hash-anchored line identifiers.
  • hashline_edit tool — Edit files using LINE#ID format for precise, hash-validated modifications.
  • /hashline-status command — Show package name, version, and loaded source path.

Workflow

  1. Call read_hashed to get LINE#HASH|content tagged output.
  2. Call hashline_edit with exact LINE#ID references from the output.
  3. If hashes mismatch (file changed), the error includes updated tags for retry.

Install

From npm:

pi install npm:@davehardy20/pi-hashline-tools

From git:

pi install git:github.com/davehardy20/pi-hashline-tools

From a local checkout during development:

pi install /Users/dave/tools/pi-hashline-tools

For one run only:

pi -e /Users/dave/tools/pi-hashline-tools

Settings

No special settings required. The tools use the working directory from the Pi context.

Notes

  • This is a workflow package archetype: it bundles the hashline engine (hash computation, validation, edit application) and path utilities as package-local helpers.
  • Blank or whitespace-only lines are shown without a hash and cannot be used as edit anchors.
  • Edits are applied bottom-up so that multiple operations in one call reference the original file state.
  • The package does not import from ~/.pi/agent/extensions/shared/* at runtime.

Troubleshooting

Run /hashline-status to confirm:

  • package name and version
  • loaded source path
  • package root

If commands appear twice, Pi may be loading both the package and the old local extension. Disable or remove the old local auto-discovered extension before reload verification.

Update flow

  1. Update the package repo
  2. Push to GitHub
  3. Run pi update --extensions or reinstall the package
  4. Run /reload

/reload alone does not fetch newer package commits.

Build and test

npm run typecheck
npm run build
npm test