開発
前提
- Go 1.26+
passCLI +gpg(実バックエンドでのテスト用)
ビルド
git clone https://github.com/ikkun1222/trustless
cd trustless
go build -o trustless .
テスト
go test ./...
プロジェクト構造
├── main.go # CLIエントリポイント & サブコマンドディスパッチ
├── plugin.json # Agent Plugins 1.0.0 マニフェスト
├── skills/
│ └── trustless-usage/ # Agent Skills 仕様準拠の SKILL.md
├── schemas/
│ └── plugin.schema.json # 公式 Agent Plugins スキーマ (vendored)
├── internal/
│ ├── backend/
│ │ ├── backend.go # Backend インターフェース + 型定義
│ │ ├── env.go # 環境変数バックエンド
│ │ └── pass.go # Pass CLI バックエンド実装
│ ├── config/
│ │ └── config.go # TOML 設定読み込み/保存 (+ ポリシー型)
│ ├── proxy/
│ │ ├── ca.go # MITM CA 証明書生成
│ │ ├── command.go # HTTPフォワードプロキシ (認証情報置換)
│ │ └── mitm.go # MITM CONNECT ハンドラ (HTTPSインターセプト)
│ ├── run/
│ │ └── command.go # サブプロセス認証情報注入 (+ ポリシーチェック)
│ ├── scanner/
│ │ ├── scanner.go # パターンベース認証情報Redact
│ │ └── scanner_test.go # Scanner テスト
│ └── secret/
│ └── command.go # 認証情報ストア操作
├── scripts/
│ └── validate-plugin.py # Agent Plugins パッケージング検証
└── docs/
└── design.md # アーキテクチャ & 設計書
依存関係
trustless は実行時依存ゼロの単一静的バイナリとしてビルドされます。Go 標準ライブラリでほぼ全てを賄えますが、唯一 TOML パースだけは標準ライブラリに無いため、github.com/pelletier/go-toml/v2 — プロジェクト唯一の外部モジュール — を使用しています。手書きパーサ(未検証コード)を抱えるより、検証済みモジュール1つの方が supply chain リスクが小さいためです。pure Go(cgo 不使用)でバイナリ本体と同様に静的リンクされ、積極的にメンテナンスされ、fuzz テスト済みです。バージョンは go.sum で固定され、Dependabot と govulncheck で監視されています。
github.com/pelletier/go-toml/v2— TOML設定ファイルパース
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 1 | 一般エラー |
| 2 | 認証情報が見つからない / 不正な引数 |
| 3 | サブプロセスエラー / ポリシー違反 / 引数に認証情報検出 |
| 4 | 設定エラー |