コンテンツにスキップ

コマンド、イベント、および順序付け

15. コマンド、イベント、および同時実行性

Section titled “15. コマンド、イベント、および同時実行性”
MWP-EVT-001MUSTMUST NOT

Command は、1 回の構造化状態遷移を要求する署名付きリクエストです。すべての Command エンベロープ MUST は、安定した Action ID、プロトコルバージョン、actor、kind、payload、correlation ID、発行時刻、および署名を含みます。Group スコープの Command MUST は Group ID を含みます。状態を変更する Agent Command MUST は、現在の Session Epoch と Membership Epoch も含みます。既存 Group 内の人間の Command MUST は現在の Membership Epoch を含み、Agent Session Epoch を MUST NOT 含みます。Organization サービスが発行する Command は、Agent Session Epoch または Membership Epoch を MUST NOT 捏造します。

mission.create および mission.create_follow_up は作成対象の Group ID を含みますが、新しい Group Membership がまだ存在せず、人間の Command は Agent セッションを使用しないため、Membership Epoch と Session Epoch を省略します。コントロールプレーンは mission.create を認証、中継、検証できますが、署名された Command アクターと結果として得られるルート MissionOwner は人間のままです。コントロール プレーンは MissionOwner にはなりません。 Organization が所有する ext.missionweaveprotocol.registry.agent_card_register および ext.missionweaveprotocol.identity.session_open ブートストラップ コマンドは、Group ID と 3 つのロール/セッション エポックすべてを省略します。

MWP-EVT-002MUSTSHOULD

現在の Coordinator リースから権威を得る Agent Command MUST は、現在の Coordinator Epoch を含みます。これは mission.renew_coordinator、mission.submit_for_approval、mission.create_child、membership.grant_delegation、work.accept_result、および Agent が発行する mission.terminate に必要です。サービスが発行する mission.terminate は Organization ポリシーによって認可され、Coordinator Epoch を含みません。既存の構造化状態を変更する Command SHOULD は、期待する集約リビジョンを含みます。1 回限りの cooperation escalation を使う Command MUST は、cooperationOverrideGrantId も含みます。

MWP-EVT-003MUSTMUST NOT

同じ (actor ID, Action ID) に対する正規署名内容がバイト同等である場合、システム MUST は元のレシートを返し、2 回目の状態遷移を MUST NOT 追加します。同じ Action ID を異なる正規内容で再利用した場合、ACTION_ID_COLLISION で MUST 失敗します。

MWP-EVT-004MUST

Group Authority MUST は actor を認証し、Session Epoch、Membership Epoch、Schema、現在の集約リビジョン、ロール、委任、予算、ポリシー、およびリースを検証したうえで、Command を拒否するか、結果の Event をその Group 内へアトミックに追加します。

コア Command の種類は次のとおりです。

mission.create mission.assign_coordinator
mission.renew_coordinator mission.submit_for_approval
mission.approve mission.request_changes
mission.cancel mission.terminate
mission.create_child mission.create_follow_up
membership.change membership.end
membership.grant_delegation
message.post message.correct
message.retract message.redact
work.propose work.authorize
work.offer work.accept_offer
work.start work.checkpoint
work.block work.unblock
work.submit work.accept_result
work.fail work.cancel
artifact.publish approval.grant_execution
policy.grant_cooperation_override

参照コアはさらに、Agent Card の登録、セッションのアクティブ化、依存関係の挿入、実行リースの更新、権威あるリソース使用量の記録、および Group アーカイブのための Organization が所有する ext.missionweaveprotocol.* コマンドを定義します。将来の Extension Profile では、明示的なオファーの拒否、説明、Mission の一時停止などの便利なコマンドが標準化される可能性がありますが、これらの名前は v0.1 コア移行ではありません。

MWP-EVT-005MUSTMUST NOT

Event は不変の受理済み事実です。Group Event エンベロープ MUST は、Event ID、Group ID、厳密に増加する Group sequence、集約リビジョン、kind、actor、cause、correlation ID、発生時刻、payload、および Group Authority の署名を含みます。Organization スコープの ext.missionweaveprotocol.registry.agent_card_registered および ext.missionweaveprotocol.identity.session_opened ファクトには、共通の Event ID、actor、cause、correlation、payload、time、受理した authority、および署名の共通フィールドを含みますが、Group ID、Group sequence、または Group 集約リビジョンを MUST NOT 含みます。

Group Authority は、永続化する各 Group Event に単調増加する sequence を 1 つ割り当てます。この sequence が、決定的な表示、復旧、および監査の順序を与えます。サービスが表示順序を割り当てても、通常の Message は論理的には並行し得ます。構造化状態の遷移は、Event 順序と集約リビジョンに依存します。

コア Event 種類は、以下を含むコア コマンドに対応する過去形の事実です。

mission.created mission.coordinator.assigned
mission.coordinator.renewed mission.submitted_for_approval
mission.approved mission.changes_requested
mission.cancelled mission.terminated
mission.child.created mission.follow_up.created
membership.changed membership.ended
membership.delegation.granted
message.posted message.corrected
message.retracted message.redacted
work.proposed work.authorized
work.offer.created work.offer.accepted
work.contract.revised work.started
work.progressed work.checkpointed
work.blocked work.unblocked
work.submitted work.result.accepted
work.failed work.cancelled
artifact.published approval.execution.granted
policy.cooperation_override.granted
group.snapshot.created group.archived

work.contract.revised および work.progressed は、参照 Organization が所有する依存関係の挿入および実行リース更新コマンドによって発行されるコア WorkItem ファクトです。 Agent Card およびセッション アクティベーション ファクトは、ext.missionweaveprotocol.* Event の種類を保持します。 group.snapshot.created および group.archived は、署名付きスナップショットとポリシー ログ リンクの検証後に、Organization が所有する ext.missionweaveprotocol.core.group_archive Command によってアトミックに発行されるコア アーカイブ ファクトです。

MWP-EVT-006MAY

自動イベント MAY は、受け入れられた Command、以前の Event、タイマー、またはポリシーの決定によって発生します。異なるグループのイベントには定義された順序はありません。

MWP-EVT-007SHOULDMUSTMUST NOT

構造化集計コマンド SHOULD は expectedRevision を提供します。現在のリビジョンと等しくない場合、Group Authority MUST は REVISION_CONFLICT を使用して Command を拒否し、MUST NOT はそれを部分的に適用します。アトミックファーストアクセプト所有権、リース更新、Membership 変更、および Approval では、特権を持つ内部アクターによってワイヤー フィールドが省略された場合でも、常に比較と設定の処理が必要です。

MWP-EVT-008MUSTMUST NOT

MissionWeaveProtocol 0.1 サーバー MUST は、TLS 1.3 (wss) 経由で WebSocket を提供します。単一の認証された接続は、1 つの Agent で使用されるすべてのグループを多重化します。各 WebSocket メッセージ MUST には、schemas/websocket-frame.schema.json に準拠する UTF-8 JSON テキスト フレームが 1 つだけ含まれます。バイナリ WebSocket メッセージ MUST NOT には、v0.1 の MissionWeaveProtocol オブジェクトまたは Artifact コンテンツが含まれます。

コア フレーム タイプは、HELLO、SUBSCRIBE、COMMAND、EVENT、ACK、PING、およびERROR。部分的な Message ストリーミング フレームが定義されていません。

MWP-EVT-009MUSTMUST NOT

認証後、クライアントは Group ID、Group ごとのリプレイ位置、およびオプションのアテンション フィルターを含む SUBSCRIBE を送信します。フィルターは、承認や永続的な履歴ではなく、ライブ配信を変更します。サーバー MUST は、すべての Group および MUST NOT に対して独立して Membership を適用し、不正な Group が存在するかどうかを明らかにします。

MWP-EVT-010MAYMUST

1 つの接続 MAY が複数のグループからのイベントをインターリーブします。順序は各 Group 内でのみ保証されます。受信側 MUST は、シーケンス ロジックを適用する前に Group ID によってルーティングします。

MWP-EVT-011MAYMUSTSHOULD

ACK は永続的な進行状況を提供します。 PING は活性を提供し、MAY はプレゼンス レコードを保持します。ピアは応答 PING でその nonce をエコーし​​ます。サーバー MUST は、制限付きバッファリングと Group ごとのバックプレッシャーを適用します。制限に達すると、無関係なグループを切断するのではなく、SHOULD が Group を一時停止し、再試行ガイダンス付きで BACKPRESSURE を発行します。

MWP-EVT-012MUST

ワイヤー JSON は正規のメンバー順で到着する必要はありませんが、すべてのハッシュ、コンテンツから導出される識別子、または署名は RFC 8785 JCS バイトを MUST 使用します。重複するオブジェクト メンバー名は、スキーマ検証の前に MUST 拒否されます。数値と文字列は、 セクション 2 の finite-binary64 と I-JSON の規則を MUST 満たします。準拠する実装は、同じ JSON 値から同じ JCS バイトを MUST 生成します。

大規模なコンテンツは Artifact URI とコンテンツ ハッシュによって参照されます。不明なコア プロパティは v0.1 スキーマによって拒否されます。不明、非クリティカル Extension Profile データは変更されずに保存および中継されます。不明な重大な拡張機能の原因 UNKNOWN_CRITICAL_EXTENSION.