init
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# 3. Core Protocol
|
||||
|
||||
WIP Core Protocolは、ClientとHostの間でWorldspaceを観測・操作するための**transport-independentな意味論**を定義する。
|
||||
|
||||
## 3.1 役割
|
||||
|
||||
WIP上の主要な登場主体は**Client**と**Host**である。
|
||||
|
||||
### Client
|
||||
|
||||
ClientはHostが提供するWorldspaceをユーザーまたはAIへ提示する。
|
||||
|
||||
Hostから取得したエントリを既知の空間として保持・キャッシュし、`ref`によるObject同一性の追跡や、観測時と操作時の対応関係の検証を行う。
|
||||
|
||||
GUI、AI用Tools、PTC / REPL向けAPIなどへの投影はClient実装の責務とする。
|
||||
|
||||
### Host
|
||||
|
||||
HostはClientに対して一つのWorldspaceを提供する。
|
||||
|
||||
どのObject、エントリ、Operation、Guard、可視性を公開するかを決定し、そのClientから見えるWorldspaceを構成する。
|
||||
|
||||
Host内部でGitHub API、Database、Filesystem、RAG、他Agent、別プロトコルなどをどう接続・集約するかはWIPの規定対象外とする。
|
||||
|
||||
## 3.2 規定範囲
|
||||
|
||||
Core Protocolが規定するのは、ClientがHostからWorldspaceを観測し、操作するための契約である。
|
||||
|
||||
特定のデータソース構成、内部RPC、永続化方式、Adapter構成、同期方式は規定しない。
|
||||
|
||||
ClientとHostの境界は通信境界であると同時に、ある主体へどのWorldspaceを公開するかを決める信頼境界として扱える。
|
||||
|
||||
## 3.3 基本操作
|
||||
|
||||
現時点では次の3操作をCore Protocolの基本とする。
|
||||
|
||||
- `fetch(entry)` — 1つのエントリにあるObjectの公開情報を取得する。
|
||||
- `fetch_tree(entry, depth, limit)` — 指定エントリを起点に、indexableな子エントリを幅優先探索してエントリツリーとして取得する。
|
||||
- `call_operation(target, operation, input)` — Objectが公開するOperationを実行する。
|
||||
|
||||
## 3.4 `fetch_tree`
|
||||
|
||||
`fetch_tree`は、Clientが機械的探索のために多数の`fetch`を連打することを避けるための操作である。
|
||||
|
||||
探索対象はindexableな子エントリのみとし、幅優先探索(BFS)で辿る。Clientは探索深度`depth`と返却エントリ総数の上限`limit`を指定できる。
|
||||
|
||||
探索が`depth`または`limit`によって途中で終了した場合、レスポンスは`truncated`であることを必ず明示する。Clientは取得結果を完全なツリーと誤認してはならない。
|
||||
|
||||
件数が非常に多いCollectionの個々の要素は、通常indexableな子エントリとして自然露出させない。必要な要素はCollection Objectの`query`や`list`等のOperationによって発見する。
|
||||
|
||||
## 3.5 Operation実行と発見
|
||||
|
||||
`call_operation`の結果は単なる値に限らない。新しいエントリ、エントリツリー、Linkなどを返し得る。
|
||||
|
||||
ClientはOperation結果として発見したエントリを既知の空間へ統合し、そこからさらにWorldspaceを探索できる。
|
||||
|
||||
## 3.6 Transportとの分離
|
||||
|
||||
Core ProtocolはHTTP、TCP、WebSocketなど特定のtransportを要求しない。
|
||||
|
||||
通信方式への具体的な対応付けはTransport Bindingとして別に定義する。標準bindingは`WIP over HTTPS`で扱う。
|
||||
|
||||
この分離により、Worldspaceの意味論と通信方式を独立して進化させる。
|
||||
Reference in New Issue
Block a user