ブログ ·

LiPet プラグインシステムの基盤:宣言型スキル、クラウド即時配信、無感アップデート拡張

LiPet エンジニアリングチーム · Safafish

本日、LiPet の開発における重要なマイルストーンを達成しました。スキル&プラグインシステムの基盤が完成しました。LiPet を単なる静的なデスクトップペットにするのではなく、拡張性を持ちながらも macOS の安定性、バッテリー寿命、プライバシーを一切犠牲にしない設計を実現しました。

1. 従来のデスクトップペット拡張の課題

デスクトップアシスタントの拡張機能を構築する際、従来は2つの極端な手法に陥りがちでした:

  • ハードコードの罠: 新機能(天気、ポモドーロ、残高確認)を追加するたびにネイティブコードを書き直し、DMG を再配布してアプリ全体を更新させる必要があります。
  • 安全でないスクリプト実行: 任意の JavaScript や Python を実行可能にすると、メモリ肥大化、バッテリーの消耗、セキュリティ脆弱性が発生します。

LiPet では第3の道を選択しました:宣言型データパケット+ネイティブ保護パイプラインです。

2. 宣言型スキルデータパケットとクラウド即時配信

LiPet における「スキル」は実行ファイルではなく、厳格に検証された宣言型データパケットです:

  • マニフェストとメタデータ: 一意の ID、表示名、アイコンバッジ、カテゴリ。
  • コマンド仕様: 外部エンドポイント(天気の取得、API 残高の確認方法など)の宣言的定義。
  • プレゼンテーションスキーマ: 吹き出し、タイムライン、円形ゲージを描画する構造化テンプレート。
  • パーミッション定義: アクセス先ドメイン、更新頻度、通知ポリシーの明示。

スキルが純粋な構造化データであるため、公式クラウドから最新のスキルが即座に配信されます。アプリ本体(DMG)のアップデートを行うことなく、新しいスキルが利用可能になります。

3. AI 残高 Gauge メーター

主要なスキルカテゴリの1つとして、AI サブスクリプションおよび API クォータの残高確認を提供します。OpenAI、Anthropic Claude、Google Gemini、ローカル Ollama の残高を美しい円形ゲージで可視化します。

4. 権限モデルとホワイトリストによるセキュリティ

スキルインストール時には、通信先ドメインや通知頻度が明示され、特権操作はサンドボックス内で厳格に保護されます。API キーなどの機密情報はローカルにのみ保存され、外部サーバーへ送信されることはありません。

5. 身体タッチマッピングと現実イベント連動

ペットセンターで身体を複数のゾーンに分割し(例:頭タップで天気、お腹ダブルクリックで AI 残高)、外部の天気シグナル(雨が降ると身震いして水を払う、寒い日は丸まる)とシームレスに連動します。

6. 今後の予定

今後はスプライトアニメーションの再生速度調整とジェスチャー判定の最適化を進め、初期プレリリースビルドの配布準備を進めてまいります。