DuetKit — Swift版(DuetKit-Swift)

Library

概要

DuetKit-Swiftは「Shared state for humans and AI」を掲げるSwiftツールキットで、ヒトとLLMが同じ状態(ドキュメント)を編集するワークフローに必要な基盤機能をまとめています。コアはObservableなドキュメントストア(Duet)で、スキーマによるバリデーションやJSON Patchを用いた差分表現、編集履歴(監査トレイル)をサポートします。加えて、任意のLLMと組み合わせられるプロトコル設計のチャットUI(DuetChat)を備え、テキストと音声入力に対応。Xcodeでプレビュー可能な構成になっており、Swift Package Managerで組み込みやすい構造です。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 4
  • ファイル数: 6
  • メインの言語: Swift

主な特徴

  • Observableなドキュメントストア(Duet)によるリアルタイムな状態管理と変更通知
  • スキーマ検証とJSON Patchによる差分編集のサポートでLLMの編集を安全に適用
  • DuetChat:プロトコルベースのドロップインチャットUI(テキスト/音声入力対応)
  • Swift Package Managerで配布可能な軽量構成、Xcodeプレビューでの確認が容易

技術的なポイント

DuetKit-Swiftは、人間とLLMが同一データを編集する際に起きる整合性や追跡の問題に対処するための設計が特徴です。コアのドキュメントストアは「Observable document store」として設計され、アプリ内の状態変更を購読・反映できる仕組みを提供するため、SwiftのリアクティブなAPI(CombineやSwift Concurrency)との親和性が高い作りが想定されます。スキーマ検証は編集前後の整合性チェックとして機能し、LLMからの自由入力や自動生成が原因で生じうる不正な状態遷移を防ぎます。また、LLMによる編集を差分で表現するためにJSON Patchを採用している点は重要です。JSON Patchは部分的な変更を小さな操作で表現できるため、ユーザー側の手動編集や他の自動編集とマージしやすく、監査ログ(誰がいつどんな操作を行ったか)を記録するのにも適しています。DuetChatはUI層で、プロトコルベースの実装により任意のLLMや音声認識エンジンと組み合わせ可能です。これによりバックエンドやモデルに依存せず、UIは一貫したインタラクションを提供します。最後に、Package.swiftを備えた構成はSwift Package Manager経由での導入を容易にし、ソース内の#Previewを使ったXcodeでのライブ確認も想定された開発体験を提供します。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • Package.swift: file
  • README.md: file
  • Sources: dir

…他 1 ファイル

まとめ

ヒトとLLMの共同編集を安全に支えるSwift向け基盤キット。

リポジトリ情報:

READMEの抜粋:

DuetKit

Shared state for humans and AI. A Swift toolkit for building apps where humans and LLMs edit the same state, with validation and an audit trail.

Overview

DuetKit provides two libraries:

  • Duet - Observable document store with schema validation and JSON Patch support for LLM edits
  • DuetChat - Drop-in chat UI with text and voice input (protocol-based, works with any LLM)

See It In Action

Open the source files in Xcode and check the #Preview at the bottom of eac…