スクリプトやアドホックなCLI実行を卒業し、再利用可能な TypeScript Extension としてオーケストレーション機能をカプセル化する設計ガイドです。
| 配置パス | スコープ | 用途 |
|---|---|---|
~/.pi/agent/extensions/*.ts |
グローバル | どのディレクトリで pi を立ち上げても常に使える共通機能・ツール。 |
.pi/extensions/*.ts |
プロジェクトローカル | 該当プロジェクト(リポジトリ)固有のデータ処理やワーカ起動ルール。Git管理可能。 |
pi -e ./path.ts |
実行時指定 | 開発中の Extension のテスト・検証。 |
pi.registerTool):
LLMが直接呼べるネイティブツール(例: herdr_spawn_worker, herdr_prompt_worker)。
これを用意することで、LLMが自前で長い bash コマンドや jq を組み立てる必要がなくなり、決定論的かつ高速・安全に動作します。
pi.registerCommand):
人間がTUI上で手動実行するショートカット(例: /herdr-status)。
pi.on):
セッション開始時に herdr のヘルスチェックを行ったり、危険なコマンドの実行をフックして遮断。
typebox を使って引数スキーマを厳密に定義し、LLMのパラメータ誤認を防ぐ。