dodo-mcp 1.2.1 → 1.3.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.
Files changed (142) hide show
  1. package/README.md +29 -6
  2. package/dist/cli/dataRecovery.js +38 -0
  3. package/dist/cli/dataRecovery.js.map +1 -0
  4. package/dist/cli/deployment.js +61 -0
  5. package/dist/cli/deployment.js.map +1 -0
  6. package/dist/cli/main.js +35 -1
  7. package/dist/cli/main.js.map +1 -1
  8. package/dist/config/globalConfig.js +3 -5
  9. package/dist/config/globalConfig.js.map +1 -1
  10. package/dist/errors.js +1 -1
  11. package/dist/errors.js.map +1 -1
  12. package/dist/ipc/server.js +2 -0
  13. package/dist/ipc/server.js.map +1 -1
  14. package/dist/ipc/timeouts.js +5 -0
  15. package/dist/ipc/timeouts.js.map +1 -0
  16. package/dist/platform/privateFs.js +32 -3
  17. package/dist/platform/privateFs.js.map +1 -1
  18. package/dist/platform/windowsPrivateAcl.js +90 -0
  19. package/dist/platform/windowsPrivateAcl.js.map +1 -0
  20. package/dist/security/outboundAddress.js +20 -0
  21. package/dist/security/outboundAddress.js.map +1 -0
  22. package/dist/server/aiAdmin.js +5 -4
  23. package/dist/server/aiAdmin.js.map +1 -1
  24. package/dist/server/appServer.js +2 -5
  25. package/dist/server/appServer.js.map +1 -1
  26. package/dist/server/bootstrap.js +14 -0
  27. package/dist/server/bootstrap.js.map +1 -1
  28. package/dist/server/configUi/index.html +3 -0
  29. package/dist/server/configUi/ui/dataRecovery.js +90 -0
  30. package/dist/server/configUi/ui/deployment.js +111 -0
  31. package/dist/server/configUi/ui/recovery.js +167 -0
  32. package/dist/server/configUi/workbench.js +23 -7
  33. package/dist/server/installationRuntime.js +3 -1
  34. package/dist/server/installationRuntime.js.map +1 -1
  35. package/dist/server/instructions.js.map +1 -1
  36. package/dist/server/ipcDispatch.js +219 -0
  37. package/dist/server/ipcDispatch.js.map +1 -1
  38. package/dist/server/localConfig.js +1 -1
  39. package/dist/server/localConfig.js.map +1 -1
  40. package/dist/server/stdioServer.js +2 -5
  41. package/dist/server/stdioServer.js.map +1 -1
  42. package/dist/services/ai/network.js +1 -18
  43. package/dist/services/ai/network.js.map +1 -1
  44. package/dist/services/ai/subagents.js +5 -2
  45. package/dist/services/ai/subagents.js.map +1 -1
  46. package/dist/services/assistance/verification.js +43 -10
  47. package/dist/services/assistance/verification.js.map +1 -1
  48. package/dist/services/changes/applier.js +472 -297
  49. package/dist/services/changes/applier.js.map +1 -1
  50. package/dist/services/git/gitService.js +150 -34
  51. package/dist/services/git/gitService.js.map +1 -1
  52. package/dist/services/jobs/jobManager.js +59 -2
  53. package/dist/services/jobs/jobManager.js.map +1 -1
  54. package/dist/services/jobs/spool.js +9 -3
  55. package/dist/services/jobs/spool.js.map +1 -1
  56. package/dist/services/multimodal/mediaService.js +6 -6
  57. package/dist/services/multimodal/mediaService.js.map +1 -1
  58. package/dist/services/recovery/configKeys.js +115 -0
  59. package/dist/services/recovery/configKeys.js.map +1 -0
  60. package/dist/services/recovery/configVault.js +361 -0
  61. package/dist/services/recovery/configVault.js.map +1 -0
  62. package/dist/services/recovery/contracts.js +24 -0
  63. package/dist/services/recovery/contracts.js.map +1 -0
  64. package/dist/services/recovery/databaseAwareness.js +179 -0
  65. package/dist/services/recovery/databaseAwareness.js.map +1 -0
  66. package/dist/services/recovery/deploymentArchive.js +129 -0
  67. package/dist/services/recovery/deploymentArchive.js.map +1 -0
  68. package/dist/services/recovery/deploymentContracts.js +70 -0
  69. package/dist/services/recovery/deploymentContracts.js.map +1 -0
  70. package/dist/services/recovery/deploymentHealth.js +143 -0
  71. package/dist/services/recovery/deploymentHealth.js.map +1 -0
  72. package/dist/services/recovery/deploymentMaintenance.js +197 -0
  73. package/dist/services/recovery/deploymentMaintenance.js.map +1 -0
  74. package/dist/services/recovery/deploymentService.js +429 -0
  75. package/dist/services/recovery/deploymentService.js.map +1 -0
  76. package/dist/services/recovery/deploymentSource.js +36 -0
  77. package/dist/services/recovery/deploymentSource.js.map +1 -0
  78. package/dist/services/recovery/dockerDeployment.js +172 -0
  79. package/dist/services/recovery/dockerDeployment.js.map +1 -0
  80. package/dist/services/recovery/drift.js +178 -0
  81. package/dist/services/recovery/drift.js.map +1 -0
  82. package/dist/services/recovery/evidence.js +127 -0
  83. package/dist/services/recovery/evidence.js.map +1 -0
  84. package/dist/services/recovery/gitCopies.js +219 -0
  85. package/dist/services/recovery/gitCopies.js.map +1 -0
  86. package/dist/services/recovery/history.js +423 -0
  87. package/dist/services/recovery/history.js.map +1 -0
  88. package/dist/services/recovery/recoveryService.js +521 -0
  89. package/dist/services/recovery/recoveryService.js.map +1 -0
  90. package/dist/services/recovery/storage.js +344 -0
  91. package/dist/services/recovery/storage.js.map +1 -0
  92. package/dist/services/schedules/scheduleService.js +9 -10
  93. package/dist/services/schedules/scheduleService.js.map +1 -1
  94. package/dist/store/db.js +71 -0
  95. package/dist/store/db.js.map +1 -1
  96. package/dist/tools/catalog.js +4 -0
  97. package/dist/tools/catalog.js.map +1 -1
  98. package/dist/tools/changeTools.js +1 -1
  99. package/dist/tools/changeTools.js.map +1 -1
  100. package/dist/tools/context.js +23 -3
  101. package/dist/tools/context.js.map +1 -1
  102. package/dist/tools/deploymentTools.js +58 -0
  103. package/dist/tools/deploymentTools.js.map +1 -0
  104. package/dist/tools/directTools.js +9 -5
  105. package/dist/tools/directTools.js.map +1 -1
  106. package/dist/tools/gitTools.js +7 -2
  107. package/dist/tools/gitTools.js.map +1 -1
  108. package/dist/tools/jobTools.js +4 -4
  109. package/dist/tools/jobTools.js.map +1 -1
  110. package/dist/tools/projectTools.js +1 -0
  111. package/dist/tools/projectTools.js.map +1 -1
  112. package/dist/tools/recoveryTools.js +79 -0
  113. package/dist/tools/recoveryTools.js.map +1 -0
  114. package/dist/tools/runtimeTools.js +1 -1
  115. package/dist/tools/runtimeTools.js.map +1 -1
  116. package/dist/tools/surface.js +6 -1
  117. package/dist/tools/surface.js.map +1 -1
  118. package/dist/tunnel/credentials.js +1 -1
  119. package/dist/tunnel/credentials.js.map +1 -1
  120. package/docs/ARCHITECTURE.md +82 -2
  121. package/docs/CI.md +118 -0
  122. package/docs/COMPATIBILITY.md +7 -6
  123. package/docs/EVALUATION.md +17 -12
  124. package/docs/MANUAL_ACCEPTANCE.md +59 -2
  125. package/docs/RECOVERY.md +448 -0
  126. package/docs/RELEASE_1.3.0.md +64 -0
  127. package/docs/RELEASE_NOTES.md +23 -0
  128. package/docs/SECURITY.md +112 -0
  129. package/docs/TEST_REPORT.md +300 -5
  130. package/docs/adr/051-source-recovery-foundation.md +45 -0
  131. package/docs/adr/052-reviewed-source-restore.md +50 -0
  132. package/docs/adr/053-content-drift-and-private-git-recovery.md +29 -0
  133. package/docs/adr/054-verified-source-checkpoints.md +58 -0
  134. package/docs/adr/055-reviewed-docker-deployments.md +42 -0
  135. package/docs/adr/056-owner-data-recovery.md +47 -0
  136. package/docs/adr/README.md +7 -0
  137. package/native/private-state-windows.cs +105 -0
  138. package/package.json +6 -1
  139. package/schemas/global-config.schema.json +34 -0
  140. package/schemas/tools.compact.json +175 -15
  141. package/schemas/tools.hybrid.json +350 -16
  142. package/schemas/tools.json +4883 -816
@@ -34,8 +34,8 @@
34
34
  "job_wait",
35
35
  "job_cancel"
36
36
  ],
37
- "fullToolCount": 138,
38
- "defaultLiveFullToolCount": 134,
37
+ "fullToolCount": 158,
38
+ "defaultLiveFullToolCount": 154,
39
39
  "optionalMcpFeatures": {
40
40
  "subagents": {
41
41
  "configKey": "exposeSubagentsToMcp",
@@ -52,15 +52,15 @@
52
52
  "stats": {
53
53
  "compact": {
54
54
  "toolCount": 20,
55
- "schemaBytes": 59073
55
+ "schemaBytes": 63349
56
56
  },
57
57
  "hybrid": {
58
58
  "toolCount": 49,
59
- "schemaBytes": 134966
59
+ "schemaBytes": 144231
60
60
  },
61
61
  "full": {
62
- "toolCount": 138,
63
- "schemaBytes": 500538
62
+ "toolCount": 158,
63
+ "schemaBytes": 572388
64
64
  }
65
65
  },
66
66
  "tools": [
@@ -79,6 +79,12 @@
79
79
  "$schema": "https://json-schema.org/draft/2020-12/schema",
80
80
  "type": "object",
81
81
  "properties": {
82
+ "recoverySessionId": {
83
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
84
+ "type": "string",
85
+ "minLength": 1,
86
+ "maxLength": 128
87
+ },
82
88
  "targetProjectId": {
83
89
  "description": "Explicit owner-registered target; use its project_overview context",
84
90
  "type": "string",
@@ -210,6 +216,12 @@
210
216
  "$schema": "https://json-schema.org/draft/2020-12/schema",
211
217
  "type": "object",
212
218
  "properties": {
219
+ "recoverySessionId": {
220
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
221
+ "type": "string",
222
+ "minLength": 1,
223
+ "maxLength": 128
224
+ },
213
225
  "targetProjectId": {
214
226
  "description": "Explicit owner-registered target; use its project_overview context",
215
227
  "type": "string",
@@ -379,7 +391,7 @@
379
391
  {
380
392
  "name": "dodo_read",
381
393
  "title": "Read workspace state",
382
- "description": "Gateway: read-only workspace access: files, search, symbols, jobs, history and agent notes. Set operation to one of: list_files, read_files, read_image, read_instructions, search_code, glob_files, symbols, references, diagnostics, change_history, approval_status, environment_info, todo_read, handoff_read, job_status, job_output, job_wait, list_jobs. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
394
+ "description": "Gateway: read-only workspace access: files, search, symbols, jobs, history and agent notes. Set operation to one of: list_files, read_files, read_image, read_instructions, search_code, glob_files, symbols, references, diagnostics, change_history, approval_status, environment_info, todo_read, handoff_read, job_status, job_output, job_wait, list_jobs, restore_status, checkpoint_list, checkpoint_inspect, recovery_session_list, recovery_session_inspect, deployment_targets, deployment_list, deployment_inspect, deployment_compare. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
383
395
  "requiredScope": "dodo:read",
384
396
  "annotations": {
385
397
  "readOnlyHint": true,
@@ -406,12 +418,27 @@
406
418
  "job_status",
407
419
  "job_output",
408
420
  "job_wait",
409
- "list_jobs"
421
+ "list_jobs",
422
+ "restore_status",
423
+ "checkpoint_list",
424
+ "checkpoint_inspect",
425
+ "recovery_session_list",
426
+ "recovery_session_inspect",
427
+ "deployment_targets",
428
+ "deployment_list",
429
+ "deployment_inspect",
430
+ "deployment_compare"
410
431
  ],
411
432
  "inputSchema": {
412
433
  "$schema": "https://json-schema.org/draft/2020-12/schema",
413
434
  "type": "object",
414
435
  "properties": {
436
+ "recoverySessionId": {
437
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
438
+ "type": "string",
439
+ "minLength": 1,
440
+ "maxLength": 128
441
+ },
415
442
  "targetProjectId": {
416
443
  "description": "Explicit owner-registered target; use its project_overview context",
417
444
  "type": "string",
@@ -455,7 +482,16 @@
455
482
  "job_status",
456
483
  "job_output",
457
484
  "job_wait",
458
- "list_jobs"
485
+ "list_jobs",
486
+ "restore_status",
487
+ "checkpoint_list",
488
+ "checkpoint_inspect",
489
+ "recovery_session_list",
490
+ "recovery_session_inspect",
491
+ "deployment_targets",
492
+ "deployment_list",
493
+ "deployment_inspect",
494
+ "deployment_compare"
459
495
  ],
460
496
  "description": "Target operation to invoke"
461
497
  },
@@ -577,7 +613,7 @@
577
613
  {
578
614
  "name": "dodo_write",
579
615
  "title": "Change workspace files",
580
- "description": "Gateway: hash-verified, journaled file changes: write/edit/patch, preview→apply→rollback, todos and handoff. Set operation to one of: write_file, edit_file, apply_patch, replace_in_files, delete_path, move_path, make_directory, preview_changes, apply_changes, rollback_changes, preview_rename, todo_write, handoff_write, agent_write, agent_snapshot_rollback. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
616
+ "description": "Gateway: hash-verified, journaled file changes: write/edit/patch, preview→apply→rollback, todos and handoff. Set operation to one of: write_file, edit_file, apply_patch, replace_in_files, delete_path, move_path, make_directory, preview_changes, apply_changes, rollback_changes, preview_rename, todo_write, handoff_write, agent_write, agent_snapshot_rollback, checkpoint_create, recovery_session_begin, recovery_session_end, restore_preview, restore_apply. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
581
617
  "requiredScope": "dodo:write",
582
618
  "annotations": {
583
619
  "readOnlyHint": false,
@@ -601,12 +637,23 @@
601
637
  "todo_write",
602
638
  "handoff_write",
603
639
  "agent_write",
604
- "agent_snapshot_rollback"
640
+ "agent_snapshot_rollback",
641
+ "checkpoint_create",
642
+ "recovery_session_begin",
643
+ "recovery_session_end",
644
+ "restore_preview",
645
+ "restore_apply"
605
646
  ],
606
647
  "inputSchema": {
607
648
  "$schema": "https://json-schema.org/draft/2020-12/schema",
608
649
  "type": "object",
609
650
  "properties": {
651
+ "recoverySessionId": {
652
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
653
+ "type": "string",
654
+ "minLength": 1,
655
+ "maxLength": 128
656
+ },
610
657
  "targetProjectId": {
611
658
  "description": "Explicit owner-registered target; use its project_overview context",
612
659
  "type": "string",
@@ -647,7 +694,12 @@
647
694
  "todo_write",
648
695
  "handoff_write",
649
696
  "agent_write",
650
- "agent_snapshot_rollback"
697
+ "agent_snapshot_rollback",
698
+ "checkpoint_create",
699
+ "recovery_session_begin",
700
+ "recovery_session_end",
701
+ "restore_preview",
702
+ "restore_apply"
651
703
  ],
652
704
  "description": "Target operation to invoke"
653
705
  },
@@ -769,7 +821,7 @@
769
821
  {
770
822
  "name": "dodo_exec",
771
823
  "title": "Run commands and control jobs",
772
- "description": "Gateway: shell/argv commands, task recipes, and stdin/cancel for owned background jobs. Set operation to one of: run_command, run_commands, run_task, exec_command, job_input, job_cancel, runtime_task_start, runtime_task_cancel, agent_exec. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
824
+ "description": "Gateway: shell/argv commands, task recipes, and stdin/cancel for owned background jobs. Set operation to one of: run_command, run_commands, run_task, exec_command, job_input, job_cancel, runtime_task_start, runtime_task_cancel, agent_exec, deployment_prepare, deployment_build, deployment_apply, deployment_observe, deployment_source_preview, deployment_rollback_prepare. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
773
825
  "requiredScope": "dodo:exec",
774
826
  "annotations": {
775
827
  "readOnlyHint": false,
@@ -787,12 +839,24 @@
787
839
  "job_cancel",
788
840
  "runtime_task_start",
789
841
  "runtime_task_cancel",
790
- "agent_exec"
842
+ "agent_exec",
843
+ "deployment_prepare",
844
+ "deployment_build",
845
+ "deployment_apply",
846
+ "deployment_observe",
847
+ "deployment_source_preview",
848
+ "deployment_rollback_prepare"
791
849
  ],
792
850
  "inputSchema": {
793
851
  "$schema": "https://json-schema.org/draft/2020-12/schema",
794
852
  "type": "object",
795
853
  "properties": {
854
+ "recoverySessionId": {
855
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
856
+ "type": "string",
857
+ "minLength": 1,
858
+ "maxLength": 128
859
+ },
796
860
  "targetProjectId": {
797
861
  "description": "Explicit owner-registered target; use its project_overview context",
798
862
  "type": "string",
@@ -827,7 +891,13 @@
827
891
  "job_cancel",
828
892
  "runtime_task_start",
829
893
  "runtime_task_cancel",
830
- "agent_exec"
894
+ "agent_exec",
895
+ "deployment_prepare",
896
+ "deployment_build",
897
+ "deployment_apply",
898
+ "deployment_observe",
899
+ "deployment_source_preview",
900
+ "deployment_rollback_prepare"
831
901
  ],
832
902
  "description": "Target operation to invoke"
833
903
  },
@@ -967,6 +1037,12 @@
967
1037
  "$schema": "https://json-schema.org/draft/2020-12/schema",
968
1038
  "type": "object",
969
1039
  "properties": {
1040
+ "recoverySessionId": {
1041
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
1042
+ "type": "string",
1043
+ "minLength": 1,
1044
+ "maxLength": 128
1045
+ },
970
1046
  "targetProjectId": {
971
1047
  "description": "Explicit owner-registered target; use its project_overview context",
972
1048
  "type": "string",
@@ -1133,6 +1209,12 @@
1133
1209
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1134
1210
  "type": "object",
1135
1211
  "properties": {
1212
+ "recoverySessionId": {
1213
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
1214
+ "type": "string",
1215
+ "minLength": 1,
1216
+ "maxLength": 128
1217
+ },
1136
1218
  "targetProjectId": {
1137
1219
  "description": "Explicit owner-registered target; use its project_overview context",
1138
1220
  "type": "string",
@@ -1300,6 +1382,12 @@
1300
1382
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1301
1383
  "type": "object",
1302
1384
  "properties": {
1385
+ "recoverySessionId": {
1386
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
1387
+ "type": "string",
1388
+ "minLength": 1,
1389
+ "maxLength": 128
1390
+ },
1303
1391
  "targetProjectId": {
1304
1392
  "description": "Explicit owner-registered target; use its project_overview context",
1305
1393
  "type": "string",
@@ -1467,6 +1555,12 @@
1467
1555
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1468
1556
  "type": "object",
1469
1557
  "properties": {
1558
+ "recoverySessionId": {
1559
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
1560
+ "type": "string",
1561
+ "minLength": 1,
1562
+ "maxLength": 128
1563
+ },
1470
1564
  "targetProjectId": {
1471
1565
  "description": "Explicit owner-registered target; use its project_overview context",
1472
1566
  "type": "string",
@@ -1655,6 +1749,12 @@
1655
1749
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1656
1750
  "type": "object",
1657
1751
  "properties": {
1752
+ "recoverySessionId": {
1753
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
1754
+ "type": "string",
1755
+ "minLength": 1,
1756
+ "maxLength": 128
1757
+ },
1658
1758
  "targetProjectId": {
1659
1759
  "description": "Explicit owner-registered target; use its project_overview context",
1660
1760
  "type": "string",
@@ -1861,6 +1961,12 @@
1861
1961
  "$schema": "https://json-schema.org/draft/2020-12/schema",
1862
1962
  "type": "object",
1863
1963
  "properties": {
1964
+ "recoverySessionId": {
1965
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
1966
+ "type": "string",
1967
+ "minLength": 1,
1968
+ "maxLength": 128
1969
+ },
1864
1970
  "targetProjectId": {
1865
1971
  "description": "Explicit owner-registered target; use its project_overview context",
1866
1972
  "type": "string",
@@ -2060,6 +2166,12 @@
2060
2166
  "$schema": "https://json-schema.org/draft/2020-12/schema",
2061
2167
  "type": "object",
2062
2168
  "properties": {
2169
+ "recoverySessionId": {
2170
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
2171
+ "type": "string",
2172
+ "minLength": 1,
2173
+ "maxLength": 128
2174
+ },
2063
2175
  "targetProjectId": {
2064
2176
  "description": "Explicit owner-registered target; use its project_overview context",
2065
2177
  "type": "string",
@@ -2244,6 +2356,12 @@
2244
2356
  "$schema": "https://json-schema.org/draft/2020-12/schema",
2245
2357
  "type": "object",
2246
2358
  "properties": {
2359
+ "recoverySessionId": {
2360
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
2361
+ "type": "string",
2362
+ "minLength": 1,
2363
+ "maxLength": 128
2364
+ },
2247
2365
  "targetProjectId": {
2248
2366
  "description": "Explicit owner-registered target; use its project_overview context",
2249
2367
  "type": "string",
@@ -2412,6 +2530,12 @@
2412
2530
  "$schema": "https://json-schema.org/draft/2020-12/schema",
2413
2531
  "type": "object",
2414
2532
  "properties": {
2533
+ "recoverySessionId": {
2534
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
2535
+ "type": "string",
2536
+ "minLength": 1,
2537
+ "maxLength": 128
2538
+ },
2415
2539
  "targetProjectId": {
2416
2540
  "description": "Explicit owner-registered target; use its project_overview context",
2417
2541
  "type": "string",
@@ -2577,6 +2701,12 @@
2577
2701
  "$schema": "https://json-schema.org/draft/2020-12/schema",
2578
2702
  "type": "object",
2579
2703
  "properties": {
2704
+ "recoverySessionId": {
2705
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
2706
+ "type": "string",
2707
+ "minLength": 1,
2708
+ "maxLength": 128
2709
+ },
2580
2710
  "targetProjectId": {
2581
2711
  "description": "Explicit owner-registered target; use its project_overview context",
2582
2712
  "type": "string",
@@ -2741,6 +2871,12 @@
2741
2871
  "$schema": "https://json-schema.org/draft/2020-12/schema",
2742
2872
  "type": "object",
2743
2873
  "properties": {
2874
+ "recoverySessionId": {
2875
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
2876
+ "type": "string",
2877
+ "minLength": 1,
2878
+ "maxLength": 128
2879
+ },
2744
2880
  "targetProjectId": {
2745
2881
  "description": "Explicit owner-registered target; use its project_overview context",
2746
2882
  "type": "string",
@@ -2905,6 +3041,12 @@
2905
3041
  "$schema": "https://json-schema.org/draft/2020-12/schema",
2906
3042
  "type": "object",
2907
3043
  "properties": {
3044
+ "recoverySessionId": {
3045
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
3046
+ "type": "string",
3047
+ "minLength": 1,
3048
+ "maxLength": 128
3049
+ },
2908
3050
  "targetProjectId": {
2909
3051
  "description": "Explicit owner-registered target; use its project_overview context",
2910
3052
  "type": "string",
@@ -3069,6 +3211,12 @@
3069
3211
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3070
3212
  "type": "object",
3071
3213
  "properties": {
3214
+ "recoverySessionId": {
3215
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
3216
+ "type": "string",
3217
+ "minLength": 1,
3218
+ "maxLength": 128
3219
+ },
3072
3220
  "targetProjectId": {
3073
3221
  "description": "Explicit owner-registered target; use its project_overview context",
3074
3222
  "type": "string",
@@ -3233,6 +3381,12 @@
3233
3381
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3234
3382
  "type": "object",
3235
3383
  "properties": {
3384
+ "recoverySessionId": {
3385
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
3386
+ "type": "string",
3387
+ "minLength": 1,
3388
+ "maxLength": 128
3389
+ },
3236
3390
  "targetProjectId": {
3237
3391
  "description": "Explicit owner-registered target; use its project_overview context",
3238
3392
  "type": "string",
@@ -3409,6 +3563,12 @@
3409
3563
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3410
3564
  "type": "object",
3411
3565
  "properties": {
3566
+ "recoverySessionId": {
3567
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
3568
+ "type": "string",
3569
+ "minLength": 1,
3570
+ "maxLength": 128
3571
+ },
3412
3572
  "targetProjectId": {
3413
3573
  "description": "Explicit owner-registered target; use its project_overview context",
3414
3574
  "type": "string",
@@ -3581,6 +3741,12 @@
3581
3741
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3582
3742
  "type": "object",
3583
3743
  "properties": {
3744
+ "recoverySessionId": {
3745
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
3746
+ "type": "string",
3747
+ "minLength": 1,
3748
+ "maxLength": 128
3749
+ },
3584
3750
  "targetProjectId": {
3585
3751
  "description": "Explicit owner-registered target; use its project_overview context",
3586
3752
  "type": "string",
@@ -3749,6 +3915,12 @@
3749
3915
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3750
3916
  "type": "object",
3751
3917
  "properties": {
3918
+ "recoverySessionId": {
3919
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
3920
+ "type": "string",
3921
+ "minLength": 1,
3922
+ "maxLength": 128
3923
+ },
3752
3924
  "targetProjectId": {
3753
3925
  "description": "Explicit owner-registered target; use its project_overview context",
3754
3926
  "type": "string",
@@ -3929,6 +4101,12 @@
3929
4101
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3930
4102
  "type": "object",
3931
4103
  "properties": {
4104
+ "recoverySessionId": {
4105
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
4106
+ "type": "string",
4107
+ "minLength": 1,
4108
+ "maxLength": 128
4109
+ },
3932
4110
  "targetProjectId": {
3933
4111
  "description": "Explicit owner-registered target; use its project_overview context",
3934
4112
  "type": "string",
@@ -4078,6 +4256,12 @@
4078
4256
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4079
4257
  "type": "object",
4080
4258
  "properties": {
4259
+ "recoverySessionId": {
4260
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
4261
+ "type": "string",
4262
+ "minLength": 1,
4263
+ "maxLength": 128
4264
+ },
4081
4265
  "targetProjectId": {
4082
4266
  "description": "Explicit owner-registered target; use its project_overview context",
4083
4267
  "type": "string",
@@ -4311,6 +4495,12 @@
4311
4495
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4312
4496
  "type": "object",
4313
4497
  "properties": {
4498
+ "recoverySessionId": {
4499
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
4500
+ "type": "string",
4501
+ "minLength": 1,
4502
+ "maxLength": 128
4503
+ },
4314
4504
  "targetProjectId": {
4315
4505
  "description": "Explicit owner-registered target; use its project_overview context",
4316
4506
  "type": "string",
@@ -4487,6 +4677,12 @@
4487
4677
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4488
4678
  "type": "object",
4489
4679
  "properties": {
4680
+ "recoverySessionId": {
4681
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
4682
+ "type": "string",
4683
+ "minLength": 1,
4684
+ "maxLength": 128
4685
+ },
4490
4686
  "targetProjectId": {
4491
4687
  "description": "Explicit owner-registered target; use its project_overview context",
4492
4688
  "type": "string",
@@ -4650,6 +4846,12 @@
4650
4846
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4651
4847
  "type": "object",
4652
4848
  "properties": {
4849
+ "recoverySessionId": {
4850
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
4851
+ "type": "string",
4852
+ "minLength": 1,
4853
+ "maxLength": 128
4854
+ },
4653
4855
  "targetProjectId": {
4654
4856
  "description": "Explicit owner-registered target; use its project_overview context",
4655
4857
  "type": "string",
@@ -4844,6 +5046,12 @@
4844
5046
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4845
5047
  "type": "object",
4846
5048
  "properties": {
5049
+ "recoverySessionId": {
5050
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
5051
+ "type": "string",
5052
+ "minLength": 1,
5053
+ "maxLength": 128
5054
+ },
4847
5055
  "targetProjectId": {
4848
5056
  "description": "Explicit owner-registered target; use its project_overview context",
4849
5057
  "type": "string",
@@ -4998,6 +5206,12 @@
4998
5206
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4999
5207
  "type": "object",
5000
5208
  "properties": {
5209
+ "recoverySessionId": {
5210
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
5211
+ "type": "string",
5212
+ "minLength": 1,
5213
+ "maxLength": 128
5214
+ },
5001
5215
  "targetProjectId": {
5002
5216
  "description": "Explicit owner-registered target; use its project_overview context",
5003
5217
  "type": "string",
@@ -5181,6 +5395,12 @@
5181
5395
  "$schema": "https://json-schema.org/draft/2020-12/schema",
5182
5396
  "type": "object",
5183
5397
  "properties": {
5398
+ "recoverySessionId": {
5399
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
5400
+ "type": "string",
5401
+ "minLength": 1,
5402
+ "maxLength": 128
5403
+ },
5184
5404
  "targetProjectId": {
5185
5405
  "description": "Explicit owner-registered target; use its project_overview context",
5186
5406
  "type": "string",
@@ -5332,6 +5552,12 @@
5332
5552
  "$schema": "https://json-schema.org/draft/2020-12/schema",
5333
5553
  "type": "object",
5334
5554
  "properties": {
5555
+ "recoverySessionId": {
5556
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
5557
+ "type": "string",
5558
+ "minLength": 1,
5559
+ "maxLength": 128
5560
+ },
5335
5561
  "targetProjectId": {
5336
5562
  "description": "Explicit owner-registered target; use its project_overview context",
5337
5563
  "type": "string",
@@ -5484,6 +5710,12 @@
5484
5710
  "$schema": "https://json-schema.org/draft/2020-12/schema",
5485
5711
  "type": "object",
5486
5712
  "properties": {
5713
+ "recoverySessionId": {
5714
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
5715
+ "type": "string",
5716
+ "minLength": 1,
5717
+ "maxLength": 128
5718
+ },
5487
5719
  "targetProjectId": {
5488
5720
  "description": "Explicit owner-registered target; use its project_overview context",
5489
5721
  "type": "string",
@@ -5631,6 +5863,12 @@
5631
5863
  "$schema": "https://json-schema.org/draft/2020-12/schema",
5632
5864
  "type": "object",
5633
5865
  "properties": {
5866
+ "recoverySessionId": {
5867
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
5868
+ "type": "string",
5869
+ "minLength": 1,
5870
+ "maxLength": 128
5871
+ },
5634
5872
  "targetProjectId": {
5635
5873
  "description": "Explicit owner-registered target; use its project_overview context",
5636
5874
  "type": "string",
@@ -5794,6 +6032,12 @@
5794
6032
  "$schema": "https://json-schema.org/draft/2020-12/schema",
5795
6033
  "type": "object",
5796
6034
  "properties": {
6035
+ "recoverySessionId": {
6036
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
6037
+ "type": "string",
6038
+ "minLength": 1,
6039
+ "maxLength": 128
6040
+ },
5797
6041
  "targetProjectId": {
5798
6042
  "description": "Explicit owner-registered target; use its project_overview context",
5799
6043
  "type": "string",
@@ -5960,6 +6204,12 @@
5960
6204
  "$schema": "https://json-schema.org/draft/2020-12/schema",
5961
6205
  "type": "object",
5962
6206
  "properties": {
6207
+ "recoverySessionId": {
6208
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
6209
+ "type": "string",
6210
+ "minLength": 1,
6211
+ "maxLength": 128
6212
+ },
5963
6213
  "targetProjectId": {
5964
6214
  "description": "Explicit owner-registered target; use its project_overview context",
5965
6215
  "type": "string",
@@ -6256,6 +6506,12 @@
6256
6506
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6257
6507
  "type": "object",
6258
6508
  "properties": {
6509
+ "recoverySessionId": {
6510
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
6511
+ "type": "string",
6512
+ "minLength": 1,
6513
+ "maxLength": 128
6514
+ },
6259
6515
  "targetProjectId": {
6260
6516
  "description": "Explicit owner-registered target; use its project_overview context",
6261
6517
  "type": "string",
@@ -6403,7 +6659,7 @@
6403
6659
  {
6404
6660
  "name": "rollback_changes",
6405
6661
  "title": "Rollback changes",
6406
- "description": "Restore the files of a committed changeset to their pre-apply bytes from durable backups. Refused with per-file conflicts if ANY affected file was edited after the apply (human work is never overwritten). Takes the changesetId from apply_changes and a fresh idempotencyKey.",
6662
+ "description": "Restore your own committed changeset to its pre-apply bytes from verified durable backups. Changesets owned by another caller require private owner recovery. Refused if any affected file or backup changed. Takes the changesetId from apply_changes and a fresh idempotencyKey.",
6407
6663
  "requiredScope": "dodo:write",
6408
6664
  "annotations": {
6409
6665
  "readOnlyHint": false,
@@ -6415,6 +6671,12 @@
6415
6671
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6416
6672
  "type": "object",
6417
6673
  "properties": {
6674
+ "recoverySessionId": {
6675
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
6676
+ "type": "string",
6677
+ "minLength": 1,
6678
+ "maxLength": 128
6679
+ },
6418
6680
  "targetProjectId": {
6419
6681
  "description": "Explicit owner-registered target; use its project_overview context",
6420
6682
  "type": "string",
@@ -6569,6 +6831,12 @@
6569
6831
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6570
6832
  "type": "object",
6571
6833
  "properties": {
6834
+ "recoverySessionId": {
6835
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
6836
+ "type": "string",
6837
+ "minLength": 1,
6838
+ "maxLength": 128
6839
+ },
6572
6840
  "targetProjectId": {
6573
6841
  "description": "Explicit owner-registered target; use its project_overview context",
6574
6842
  "type": "string",
@@ -6711,6 +6979,12 @@
6711
6979
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6712
6980
  "type": "object",
6713
6981
  "properties": {
6982
+ "recoverySessionId": {
6983
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
6984
+ "type": "string",
6985
+ "minLength": 1,
6986
+ "maxLength": 128
6987
+ },
6714
6988
  "targetProjectId": {
6715
6989
  "description": "Explicit owner-registered target; use its project_overview context",
6716
6990
  "type": "string",
@@ -6873,6 +7147,12 @@
6873
7147
  "$schema": "https://json-schema.org/draft/2020-12/schema",
6874
7148
  "type": "object",
6875
7149
  "properties": {
7150
+ "recoverySessionId": {
7151
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
7152
+ "type": "string",
7153
+ "minLength": 1,
7154
+ "maxLength": 128
7155
+ },
6876
7156
  "targetProjectId": {
6877
7157
  "description": "Explicit owner-registered target; use its project_overview context",
6878
7158
  "type": "string",
@@ -7026,6 +7306,12 @@
7026
7306
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7027
7307
  "type": "object",
7028
7308
  "properties": {
7309
+ "recoverySessionId": {
7310
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
7311
+ "type": "string",
7312
+ "minLength": 1,
7313
+ "maxLength": 128
7314
+ },
7029
7315
  "targetProjectId": {
7030
7316
  "description": "Explicit owner-registered target; use its project_overview context",
7031
7317
  "type": "string",
@@ -7193,6 +7479,12 @@
7193
7479
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7194
7480
  "type": "object",
7195
7481
  "properties": {
7482
+ "recoverySessionId": {
7483
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
7484
+ "type": "string",
7485
+ "minLength": 1,
7486
+ "maxLength": 128
7487
+ },
7196
7488
  "targetProjectId": {
7197
7489
  "description": "Explicit owner-registered target; use its project_overview context",
7198
7490
  "type": "string",
@@ -7385,6 +7677,12 @@
7385
7677
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7386
7678
  "type": "object",
7387
7679
  "properties": {
7680
+ "recoverySessionId": {
7681
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
7682
+ "type": "string",
7683
+ "minLength": 1,
7684
+ "maxLength": 128
7685
+ },
7388
7686
  "targetProjectId": {
7389
7687
  "description": "Explicit owner-registered target; use its project_overview context",
7390
7688
  "type": "string",
@@ -7578,6 +7876,12 @@
7578
7876
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7579
7877
  "type": "object",
7580
7878
  "properties": {
7879
+ "recoverySessionId": {
7880
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
7881
+ "type": "string",
7882
+ "minLength": 1,
7883
+ "maxLength": 128
7884
+ },
7581
7885
  "targetProjectId": {
7582
7886
  "description": "Explicit owner-registered target; use its project_overview context",
7583
7887
  "type": "string",
@@ -7743,6 +8047,12 @@
7743
8047
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7744
8048
  "type": "object",
7745
8049
  "properties": {
8050
+ "recoverySessionId": {
8051
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
8052
+ "type": "string",
8053
+ "minLength": 1,
8054
+ "maxLength": 128
8055
+ },
7746
8056
  "targetProjectId": {
7747
8057
  "description": "Explicit owner-registered target; use its project_overview context",
7748
8058
  "type": "string",
@@ -7920,6 +8230,12 @@
7920
8230
  "$schema": "https://json-schema.org/draft/2020-12/schema",
7921
8231
  "type": "object",
7922
8232
  "properties": {
8233
+ "recoverySessionId": {
8234
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
8235
+ "type": "string",
8236
+ "minLength": 1,
8237
+ "maxLength": 128
8238
+ },
7923
8239
  "targetProjectId": {
7924
8240
  "description": "Explicit owner-registered target; use its project_overview context",
7925
8241
  "type": "string",
@@ -8067,6 +8383,12 @@
8067
8383
  "$schema": "https://json-schema.org/draft/2020-12/schema",
8068
8384
  "type": "object",
8069
8385
  "properties": {
8386
+ "recoverySessionId": {
8387
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
8388
+ "type": "string",
8389
+ "minLength": 1,
8390
+ "maxLength": 128
8391
+ },
8070
8392
  "targetProjectId": {
8071
8393
  "description": "Explicit owner-registered target; use its project_overview context",
8072
8394
  "type": "string",
@@ -8237,6 +8559,12 @@
8237
8559
  "$schema": "https://json-schema.org/draft/2020-12/schema",
8238
8560
  "type": "object",
8239
8561
  "properties": {
8562
+ "recoverySessionId": {
8563
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
8564
+ "type": "string",
8565
+ "minLength": 1,
8566
+ "maxLength": 128
8567
+ },
8240
8568
  "targetProjectId": {
8241
8569
  "description": "Explicit owner-registered target; use its project_overview context",
8242
8570
  "type": "string",
@@ -8391,6 +8719,12 @@
8391
8719
  "$schema": "https://json-schema.org/draft/2020-12/schema",
8392
8720
  "type": "object",
8393
8721
  "properties": {
8722
+ "recoverySessionId": {
8723
+ "description": "Explicit caller-owned recovery session for this operation; never an authorization grant",
8724
+ "type": "string",
8725
+ "minLength": 1,
8726
+ "maxLength": 128
8727
+ },
8394
8728
  "targetProjectId": {
8395
8729
  "description": "Explicit owner-registered target; use its project_overview context",
8396
8730
  "type": "string",