dory-to-dory-mcp 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,13 +13,13 @@
13
13
  - Core API key 기반 인증
14
14
  - MCP Tools 22개 제공
15
15
 
16
- 버전 `0.4.0`은 검색 증빙 발급 API와 실행 담당자 규약 2를 지원하는 Core `/v2` 계약이 필요합니다. `POST /v2/agent/work/{work_id}/question`, 단일 담당자 인계, 같은 work 재개를 지원하는 Core migration을 먼저 적용해야 합니다. 호환 Core를 먼저 적용하고 정확한 MCP 버전을 고정해 설치하십시오. npm 게시 전 검증이나 사내 배포에는 로컬 빌드 또는 tarball을 사용할 수 있습니다. 구형 `/v1` 쓰기를 새 계약으로 자동 변환하지 않으며 진행 중인 구형 작업에는 기존 MCP 버전을 사용합니다.
16
+ 버전 `0.5.0`은 검색 증빙 발급 API, 실행 담당자 규약 2와 `execution_result` 보고를 지원하는 Core `/v2` 계약이 필요합니다. Core migration `9b3c7d5e102a`와 `schedule_meeting 1.2.0`을 제공하는 Core를 먼저 적용해야 합니다. 기존 Skill snapshot과 receipt 모드의 계약은 유지합니다. 호환 Core를 먼저 적용하고 정확한 MCP 버전을 고정해 설치하십시오. npm 게시 전 검증이나 사내 배포에는 로컬 빌드 또는 tarball을 사용할 수 있습니다. 구형 `/v1` 쓰기를 새 계약으로 자동 변환하지 않으며 진행 중인 구형 작업에는 기존 MCP 버전을 사용합니다.
17
17
 
18
18
  ### 카드와 세션 도구
19
19
 
20
20
  `d2d_create_coordination`은 `client_handles`, `goal`, `skill_search_id`를 받습니다. `goal_type`은 제거했습니다. 매 새 coordination 생성 전에 `d2d_search_coordination_skills`를 동일한 goal로 최소 한 번 정상 완료해야 합니다. 검색 도구는 `POST /v2/agent/skill-searches`로 증빙을 발급받으며 검색 입력은 `goal`(필수), `query`(최대 200자, 기본 빈 문자열), `operation_id`(선택)입니다. 반환된 `skill_search_id`를 생성에 전달합니다. 관련 후보는 `d2d_get_coordination_skill`로 조건·계획 템플릿·정확한 버전을 확인한 뒤 plan을 작성합니다. 적합한 후보가 없으면 skill 없이 직접 계획하며, Core는 실제 검색 완료 증빙의 호출자·goal·만료·일회 사용을 검증합니다. 결과가 0건이거나 LLM이 유효한 Skill이 없다고 판단하면 `skill=null`로 생성할 수 있습니다. 검색 결과나 선택 판단은 검토하지 않습니다. 검색 오류는 최초 1회와 최대 3회 재시도, 총 4회 HTTP 요청으로 제한하고 `D2D_MAX_RETRIES`와 중첩하지 않습니다. HTTP 408을 포함한 검색 오류를 재시도하되, Core가 명시한 `skill_search_exhausted`·`idempotency_conflict`는 즉시 종료합니다. 동일 `operation_id`와 goal/query의 실행 중·성공·실패 결과는 MCP 프로세스에서 공유하므로 중복·동시 도구 호출로 HTTP 재시도 예산을 초기화할 수 없습니다. 같은 키에 다른 입력은 충돌로 거부합니다. Core는 프로세스 재시작 뒤에도 실제 검색 횟수를 DB에서 제한하지만 Core에 도달하지 않은 전송 오류 횟수는 MCP 프로세스 안에서만 유지됩니다. 실패하면 생성도 종료하며 새 `operation_id`로 예산을 초기화하지 않습니다. 검색 결과의 `operation_id`를 보존하고, 생성은 생략 시 `skill_search_id`를 idempotency key로 사용하므로 불명확한 응답에는 동일 payload와 key를 재사용합니다. `d2d_run_skill_code`는 skill에 등록된 코드와 입력 스키마를 사용합니다.
21
21
 
22
- `d2d_claim_next_item` 결과의 `delivery.work.claim_id`와 카드 revision을 사용합니다. claim 응답에는 skill 본문을 포함하지 않습니다. 필요한 경우 `d2d_get_coordination`으로 저장된 skill을 명시적으로 조회합니다. client는 `d2d_submit_item_result`의 `to_host`만 제출하고 다른 카드 필드는 거부됩니다. host는 `d2d_update_host_card`로 plan, slots, 상태 및 다음 요청을 결정합니다. 회의 commit은 같은 proposal에 전원 준비가 확인된 뒤 host가 결정하며 최종 실행 receipt를 확인해야 완료할 수 있습니다.
22
+ `d2d_claim_next_item` 결과의 `delivery.work.claim_id`와 카드 revision을 사용합니다. claim 응답에는 skill 본문을 포함하지 않습니다. Host는 `d2d_get_coordination`으로 저장된 skill을 조회할 수 있고, Client는 자기 요청에 포함된 참조를 사용합니다. Skill 조회에는 정확한 version이 필수입니다. client는 `d2d_submit_item_result`의 `to_host`만 제출하고 다른 카드 필드는 거부됩니다. host는 `d2d_update_host_card`로 plan, slots, 상태 및 다음 요청을 결정합니다. 회의 commit은 같은 proposal에 전원 준비가 확인된 뒤 host가 결정합니다. 새 agent_report 모드는 실제 실행 결과를 보고해 완료하며 외부 ID나 별도 검증을 요구하지 않습니다. 기존 receipt 모드는 이전 계약을 유지합니다.
23
23
 
24
24
  생성·claim·결과·host 갱신·사용자 답변에는 현재 `session_id`를 전달할 수 있습니다. 외부 Agent는 `null` 또는 생략을 사용할 수 있으며 기존 연결은 유지됩니다. 명시적 이동·해제는 `d2d_bind_session`에 `expected_session_revision`과 문자열 또는 `null`을 전달합니다. 각 Agent는 자기 연결만 접근합니다. 사용자 답변은 `interaction_id`, `answer`, 승인 질문인 경우 명시적 `decision`으로 제출합니다.
25
25
 
@@ -33,7 +33,7 @@ Agent가 dory-to-dory의 목적, Watcher 설치와 device pairing, SSE 처리,
33
33
 
34
34
  - Host 중간 저장: `d2d_update_host_card`의 `next_action=continue`는 같은 claim을 유지합니다. 다음 Client 한 명에게 요청할 때 `dispatch`, 최종 완료·실패·취소를 결정할 때 `finish`를 사용합니다.
35
35
  - 사용자 질문: 현재 담당 Host 또는 Client가 `d2d_request_user_input`에 `work_id`, `claim_id`, `question`을 전달합니다. Core는 같은 작업을 `waiting_for_input`으로 보존하고 claim을 해제합니다. 카드 업무 상태와 담당자는 유지하며 Client 응답이나 Host 검토는 발생하지 않습니다.
36
- - 재개: 명시적인 답변을 `d2d_submit_user_response`로 기록하고, 같은 `work_id`를 다시 claim해 새 `claim_id`와 현재 revision으로 계속합니다. 질문이 더 필요하면 같은 작업에서 반복합니다. 외부 동작의 승인·commit·receipt 검증은 그대로 적용됩니다.
36
+ - 재개: 명시적인 답변을 `d2d_submit_user_response`로 기록하고, 같은 `work_id`를 다시 claim해 새 `claim_id`와 현재 revision으로 계속합니다. 질문이 더 필요하면 같은 작업에서 반복합니다. 외부 동작의 승인·commit·현재 작업 연결은 유지하며, 결과 입력은 coordination.result_mode에 맞춰 선택합니다.
37
37
  - 호환성: `ask_user` Client 결과와 사용자 대기 카드 상태는 `execution_protocol=1`인 기존 건에서만 사용합니다. 새 질문·인계 기능은 이를 지원하는 Core, MCP, Agent와 Watcher를 함께 배포해야 합니다.
38
38
 
39
39
  ## 요구 사항
@@ -44,12 +44,12 @@ Agent가 dory-to-dory의 목적, Watcher 설치와 device pairing, SSE 처리,
44
44
 
45
45
  ## Watcher를 통한 설치
46
46
 
47
- 실행 담당자 규약 2를 사용하는 coordination에는 MCP `0.4.0`을 포함한 Watcher `0.4.0`이 필요합니다. Watcher `0.3.0` 이하의 기존 설치에는 새 질문 도구와 인계 처리가 없습니다. Watcher는 별도 게시 단위입니다. 해당 버전이 registry에 게시되기 전에는 검증된 Dory 앱 번들 또는 아래의 MCP 직접 등록 방식으로 새 MCP를 실행합니다. 기존 Watcher 설치의 의존성은 자동으로 바뀌지 않습니다.
47
+ 새 실행 결과 보고에는 MCP `0.5.0`을 포함한 Watcher `0.5.0`을 사용합니다. Watcher `0.3.0` 이하에는 규약 2의 질문·인계 처리가 없고, `0.4.0`에는 새 실행 결과 입력과 지침이 없습니다. Watcher는 별도 게시 단위이므로 해당 버전의 registry 게시를 확인한 뒤 설치합니다. 기존 Watcher 설치의 의존성은 자동으로 바뀌지 않습니다.
48
48
 
49
- 아래는 Watcher `0.4.0` 게시 후 사용할 설치 예시입니다. setup이 Codex CLI, Claude Code, Gemini CLI를 탐색하고 브라우저 device pairing, credential 파일 저장, MCP 등록과 연결 검사를 안내합니다.
49
+ 아래는 Watcher `0.5.0` 설치 예시입니다. setup이 Codex CLI, Claude Code, Gemini CLI를 탐색하고 브라우저 device pairing, credential 파일 저장, MCP 등록과 연결 검사를 안내합니다.
50
50
 
51
51
  ```sh
52
- npm install --global dory-to-dory-watcher@0.4.0
52
+ npm install --global dory-to-dory-watcher@0.5.0
53
53
  dory-watcher setup
54
54
  ```
55
55
 
@@ -72,7 +72,7 @@ Watcher는 Agent별로 지원되는 비대화식 승인과 격리 방식을 사
72
72
  "mcpServers": {
73
73
  "dory-to-dory": {
74
74
  "command": "npx",
75
- "args": ["-y", "dory-to-dory-mcp@0.4.0"],
75
+ "args": ["-y", "dory-to-dory-mcp@0.5.0"],
76
76
  "env": {
77
77
  "D2D_API_KEY": "d2d_live_replace_me"
78
78
  }
@@ -83,7 +83,7 @@ Watcher는 Agent별로 지원되는 비대화식 승인과 격리 방식을 사
83
83
 
84
84
  호스트마다 설정 파일 위치와 최상위 키 이름은 다를 수 있지만 핵심은 같습니다. 호스트가 `npx`를 실행하고 환경 변수로 API key를 넘깁니다. Core URL은 기본적으로 `https://dory-to-dory.dnotitia.ai`를 사용하며, 다른 Core에 연결할 때만 `D2D_CORE_URL`로 재정의합니다. 패키지 버전을 고정하면 예기치 않은 자동 업데이트를 피할 수 있습니다.
85
85
 
86
- `pnpm dlx`를 쓰는 호스트라면 command를 `pnpm`, args를 `["dlx", "dory-to-dory-mcp@0.4.0"]`로 바꿉니다.
86
+ `pnpm dlx`를 쓰는 호스트라면 command를 `pnpm`, args를 `["dlx", "dory-to-dory-mcp@0.5.0"]`로 바꿉니다.
87
87
 
88
88
  ## 로컬 소스 또는 tarball 설치
89
89
 
@@ -113,7 +113,7 @@ MCP 호스트 설정:
113
113
  또는 `pnpm pack`으로 생성한 `.tgz` 파일을 다른 장비에 전달해 설치할 수 있습니다.
114
114
 
115
115
  ```sh
116
- npm install --global ./dory-to-dory-mcp-0.4.0.tgz
116
+ npm install --global ./dory-to-dory-mcp-0.5.0.tgz
117
117
  ```
118
118
 
119
119
  이후 MCP command를 `d2d-mcp`로 설정합니다.
@@ -154,3 +154,59 @@ pnpm run check
154
154
  ```
155
155
 
156
156
  배포 선택지와 운영상 제약은 [docs/deployment.md](docs/deployment.md)를 참고하십시오.
157
+
158
+
159
+ ## Execution results and precise tool inputs (0.5.0)
160
+
161
+ New coordinations report `coordination.result_mode`. In `agent_report` mode, including
162
+ `schedule_meeting@1.2.0`, each Agent reports its actual calendar outcome; no provider,
163
+ event ID, receipt, separate verification phase, or mutual calendar inspection is
164
+ required. Existing `receipt` mode coordinations retain their legacy receipt contract.
165
+ This release requires Core migration `9b3c7d5e102a` and an Agent that reports actual
166
+ execution outcomes. Existing 0.4.0 installations do not gain the new inputs or
167
+ instructions automatically; update the exact MCP/Watcher package pins or the Dory app bundle.
168
+
169
+ A Client answers a Core-issued commit with:
170
+
171
+ ```json
172
+ {
173
+ "to_host": {
174
+ "type": "committed",
175
+ "message": "일정을 등록했습니다.",
176
+ "execution_result": {
177
+ "proposal_hash": "<current 64-character Core proposal hash>",
178
+ "operation_id": "<own to_client.operation_id>",
179
+ "status": "succeeded"
180
+ }
181
+ }
182
+ }
183
+ ```
184
+
185
+ Include the current `work_id`, `claim_id`, own card `expected_revision`, `request_id`,
186
+ `turn_id`, and actual session in the full submission. Failed or uncertain execution
187
+ is reported as `failed` or `unknown`, preserving earlier successes. A timeout must
188
+ not become an assumed success or an automatic duplicate write. Host's own report
189
+ goes in `host_execution_result`; `host_attends=false` needs no Host calendar write.
190
+ Use exactly one execution result or legacy receipt, including late recovery reports.
191
+ The nested operation ID identifies the committed operation; the top-level
192
+ `operation_id` is only the tool request's replay key.
193
+
194
+ `ready` still requires valid **`to_host.approval`**, and only answers `prepare`.
195
+ `source=user` needs a real answered Core confirmation for the saved proposal;
196
+ `source=policy` needs the current own policy version. An information `answer` does
197
+ not carry approval. Ask approval only after saving the proposal; `proposed_action`
198
+ is display text, not a proposal setter. Choice questions require nonempty choices,
199
+ and the submitted answer must exactly equal an offered string.
200
+
201
+ Tool schemas now publish response, approval, question, result and terminal-input
202
+ conditions. Host `finish` requires terminal `state`, `reason` and `reason_code`;
203
+ completion also needs all Client cards complete, all plan steps complete/skipped,
204
+ no unreviewed responses and all required execution successes. `plan` and `slots`
205
+ replace the entire collection when supplied. Cancellation requests stop execution
206
+ and require Host cleanup before the final business state is settled.
207
+
208
+ `d2d_get_coordination_skill` now requires an exact `version`. Only Host can inspect
209
+ the saved workflow skill; Client uses the exact reference supplied in its request.
210
+ In a fresh conversation without the original work ID, resume an answered question
211
+ by claiming within its returned `coordination_id`. `d2d_bind_session` requires
212
+ `session_id`; explicit null clears, whereas ordinary submissions' null preserves.
@@ -5074,7 +5074,7 @@
5074
5074
  "required": false,
5075
5075
  "schema": {
5076
5076
  "type": "string",
5077
- "default": "1.0.0",
5077
+ "default": "1.2.0",
5078
5078
  "title": "Version"
5079
5079
  }
5080
5080
  },
@@ -6530,6 +6530,16 @@
6530
6530
  "type": "null"
6531
6531
  }
6532
6532
  ]
6533
+ },
6534
+ "execution_result": {
6535
+ "anyOf": [
6536
+ {
6537
+ "$ref": "#/components/schemas/ExecutionResult"
6538
+ },
6539
+ {
6540
+ "type": "null"
6541
+ }
6542
+ ]
6533
6543
  }
6534
6544
  },
6535
6545
  "additionalProperties": false,
@@ -7153,6 +7163,54 @@
7153
7163
  ],
7154
7164
  "title": "ExecutionReceipt"
7155
7165
  },
7166
+ "ExecutionResult": {
7167
+ "properties": {
7168
+ "proposal_hash": {
7169
+ "type": "string",
7170
+ "maxLength": 64,
7171
+ "minLength": 64,
7172
+ "title": "Proposal Hash",
7173
+ "description": "Current committed proposal hash."
7174
+ },
7175
+ "operation_id": {
7176
+ "type": "string",
7177
+ "maxLength": 128,
7178
+ "minLength": 8,
7179
+ "title": "Operation Id",
7180
+ "description": "Core-issued participant execution operation."
7181
+ },
7182
+ "status": {
7183
+ "type": "string",
7184
+ "enum": [
7185
+ "succeeded",
7186
+ "failed",
7187
+ "unknown"
7188
+ ],
7189
+ "title": "Status"
7190
+ },
7191
+ "reason": {
7192
+ "anyOf": [
7193
+ {
7194
+ "type": "string",
7195
+ "maxLength": 2000
7196
+ },
7197
+ {
7198
+ "type": "null"
7199
+ }
7200
+ ],
7201
+ "title": "Reason"
7202
+ }
7203
+ },
7204
+ "additionalProperties": false,
7205
+ "type": "object",
7206
+ "required": [
7207
+ "proposal_hash",
7208
+ "operation_id",
7209
+ "status"
7210
+ ],
7211
+ "title": "ExecutionResult",
7212
+ "description": "The owning Agent's report; external provider identifiers are not required."
7213
+ },
7156
7214
  "FriendInviteCreate": {
7157
7215
  "properties": {
7158
7216
  "handle": {
@@ -7404,6 +7462,16 @@
7404
7462
  }
7405
7463
  ]
7406
7464
  },
7465
+ "host_execution_result": {
7466
+ "anyOf": [
7467
+ {
7468
+ "$ref": "#/components/schemas/ExecutionResult"
7469
+ },
7470
+ {
7471
+ "type": "null"
7472
+ }
7473
+ ]
7474
+ },
7407
7475
  "commit": {
7408
7476
  "type": "boolean",
7409
7477
  "title": "Commit",
@@ -8136,7 +8204,24 @@
8136
8204
  "RecoveryReceipt": {
8137
8205
  "properties": {
8138
8206
  "receipt": {
8139
- "$ref": "#/components/schemas/ExecutionReceipt"
8207
+ "anyOf": [
8208
+ {
8209
+ "$ref": "#/components/schemas/ExecutionReceipt"
8210
+ },
8211
+ {
8212
+ "type": "null"
8213
+ }
8214
+ ]
8215
+ },
8216
+ "execution_result": {
8217
+ "anyOf": [
8218
+ {
8219
+ "$ref": "#/components/schemas/ExecutionResult"
8220
+ },
8221
+ {
8222
+ "type": "null"
8223
+ }
8224
+ ]
8140
8225
  },
8141
8226
  "session_id": {
8142
8227
  "anyOf": [
@@ -8155,9 +8240,6 @@
8155
8240
  },
8156
8241
  "additionalProperties": false,
8157
8242
  "type": "object",
8158
- "required": [
8159
- "receipt"
8160
- ],
8161
8243
  "title": "RecoveryReceipt"
8162
8244
  },
8163
8245
  "SessionBindRequest": {
@@ -9420,6 +9502,18 @@
9420
9502
  ],
9421
9503
  "title": "Receipt"
9422
9504
  },
9505
+ "execution_result": {
9506
+ "anyOf": [
9507
+ {
9508
+ "additionalProperties": true,
9509
+ "type": "object"
9510
+ },
9511
+ {
9512
+ "type": "null"
9513
+ }
9514
+ ],
9515
+ "title": "Execution Result"
9516
+ },
9423
9517
  "recovery_receipts": {
9424
9518
  "items": {
9425
9519
  "additionalProperties": true,
@@ -9427,6 +9521,14 @@
9427
9521
  },
9428
9522
  "type": "array",
9429
9523
  "title": "Recovery Receipts"
9524
+ },
9525
+ "recovery_results": {
9526
+ "items": {
9527
+ "additionalProperties": true,
9528
+ "type": "object"
9529
+ },
9530
+ "type": "array",
9531
+ "title": "Recovery Results"
9430
9532
  }
9431
9533
  },
9432
9534
  "type": "object",
@@ -9463,6 +9565,15 @@
9463
9565
  "title": "Execution Protocol",
9464
9566
  "default": 1
9465
9567
  },
9568
+ "result_mode": {
9569
+ "type": "string",
9570
+ "enum": [
9571
+ "agent_report",
9572
+ "receipt"
9573
+ ],
9574
+ "title": "Result Mode",
9575
+ "default": "receipt"
9576
+ },
9466
9577
  "owner_card_id": {
9467
9578
  "anyOf": [
9468
9579
  {
@@ -9880,6 +9991,15 @@
9880
9991
  "title": "Execution Protocol",
9881
9992
  "default": 1
9882
9993
  },
9994
+ "result_mode": {
9995
+ "type": "string",
9996
+ "enum": [
9997
+ "agent_report",
9998
+ "receipt"
9999
+ ],
10000
+ "title": "Result Mode",
10001
+ "default": "receipt"
10002
+ },
9883
10003
  "owner_card_id": {
9884
10004
  "anyOf": [
9885
10005
  {
@@ -1695,6 +1695,7 @@ export interface components {
1695
1695
  user_input_request?: components["schemas"]["WorkflowQuestion"] | null;
1696
1696
  approval?: components["schemas"]["ApprovalEvidence"] | null;
1697
1697
  receipt?: components["schemas"]["ExecutionReceipt"] | null;
1698
+ execution_result?: components["schemas"]["ExecutionResult"] | null;
1698
1699
  };
1699
1700
  /** CommonSlot */
1700
1701
  CommonSlot: {
@@ -1918,6 +1919,29 @@ export interface components {
1918
1919
  /** Reason */
1919
1920
  reason?: string | null;
1920
1921
  };
1922
+ /**
1923
+ * ExecutionResult
1924
+ * @description The owning Agent's report; external provider identifiers are not required.
1925
+ */
1926
+ ExecutionResult: {
1927
+ /**
1928
+ * Proposal Hash
1929
+ * @description Current committed proposal hash.
1930
+ */
1931
+ proposal_hash: string;
1932
+ /**
1933
+ * Operation Id
1934
+ * @description Core-issued participant execution operation.
1935
+ */
1936
+ operation_id: string;
1937
+ /**
1938
+ * Status
1939
+ * @enum {string}
1940
+ */
1941
+ status: "succeeded" | "failed" | "unknown";
1942
+ /** Reason */
1943
+ reason?: string | null;
1944
+ };
1921
1945
  /** FriendInviteCreate */
1922
1946
  FriendInviteCreate: {
1923
1947
  /** Handle */
@@ -1999,6 +2023,7 @@ export interface components {
1999
2023
  proposal?: components["schemas"]["ActionProposal"] | null;
2000
2024
  host_approval?: components["schemas"]["ApprovalEvidence"] | null;
2001
2025
  host_receipt?: components["schemas"]["ExecutionReceipt"] | null;
2026
+ host_execution_result?: components["schemas"]["ExecutionResult"] | null;
2002
2027
  /**
2003
2028
  * Commit
2004
2029
  * @default false
@@ -2215,7 +2240,8 @@ export interface components {
2215
2240
  };
2216
2241
  /** RecoveryReceipt */
2217
2242
  RecoveryReceipt: {
2218
- receipt: components["schemas"]["ExecutionReceipt"];
2243
+ receipt?: components["schemas"]["ExecutionReceipt"] | null;
2244
+ execution_result?: components["schemas"]["ExecutionResult"] | null;
2219
2245
  /** Session Id */
2220
2246
  session_id?: string | null;
2221
2247
  };
@@ -2662,10 +2688,18 @@ export interface components {
2662
2688
  receipt?: {
2663
2689
  [key: string]: unknown;
2664
2690
  } | null;
2691
+ /** Execution Result */
2692
+ execution_result?: {
2693
+ [key: string]: unknown;
2694
+ } | null;
2665
2695
  /** Recovery Receipts */
2666
2696
  recovery_receipts?: {
2667
2697
  [key: string]: unknown;
2668
2698
  }[];
2699
+ /** Recovery Results */
2700
+ recovery_results?: {
2701
+ [key: string]: unknown;
2702
+ }[];
2669
2703
  };
2670
2704
  /**
2671
2705
  * WorkflowClaimView
@@ -2685,6 +2719,12 @@ export interface components {
2685
2719
  * @default 1
2686
2720
  */
2687
2721
  execution_protocol: number;
2722
+ /**
2723
+ * Result Mode
2724
+ * @default receipt
2725
+ * @enum {string}
2726
+ */
2727
+ result_mode: "agent_report" | "receipt";
2688
2728
  /** Owner Card Id */
2689
2729
  owner_card_id?: string | null;
2690
2730
  /**
@@ -2820,6 +2860,12 @@ export interface components {
2820
2860
  * @default 1
2821
2861
  */
2822
2862
  execution_protocol: number;
2863
+ /**
2864
+ * Result Mode
2865
+ * @default receipt
2866
+ * @enum {string}
2867
+ */
2868
+ result_mode: "agent_report" | "receipt";
2823
2869
  /** Owner Card Id */
2824
2870
  owner_card_id?: string | null;
2825
2871
  /**