@topline-build/harness-mcp 0.5.2 → 0.6.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.
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "package": {
4
4
  "name": "@topline-build/harness-mcp",
5
- "version": "0.5.2",
5
+ "version": "0.6.0",
6
6
  "bin": {
7
7
  "topline-mcp": "dist/cli.js"
8
8
  }
@@ -12,7 +12,7 @@
12
12
  "defaultVersion": "2025-11-25",
13
13
  "server": {
14
14
  "name": "topline-build-stdio",
15
- "version": "0.5.2"
15
+ "version": "0.6.0"
16
16
  }
17
17
  },
18
18
  "generatedFrom": {
@@ -499,6 +499,31 @@
499
499
  "minLength": 1,
500
500
  "maxLength": 128,
501
501
  "description": "Optional stable retry key; generated deterministically when omitted."
502
+ },
503
+ "sessionId": {
504
+ "type": "string",
505
+ "format": "uuid"
506
+ },
507
+ "artifactVersionId": {
508
+ "type": "string",
509
+ "format": "uuid",
510
+ "description": "Exact current version from the session or checkout; required with sessionId."
511
+ },
512
+ "idempotencyKey": {
513
+ "type": "string",
514
+ "minLength": 1,
515
+ "maxLength": 128,
516
+ "pattern": "^[A-Za-z0-9._:-]+$"
517
+ },
518
+ "inspectedSourceHash": {
519
+ "type": "string",
520
+ "pattern": "^[0-9a-fA-F]{64}$",
521
+ "description": "Echo the session/source checkout hash; required with sessionId. expectedBundleSha256 separately pins the newly inspected local upload."
522
+ },
523
+ "platformAppDir": {
524
+ "type": "string",
525
+ "minLength": 1,
526
+ "description": "Saved remote app root from an existing-app checkout. Session mode only; preserve this when the local checkout directory has a different name."
502
527
  }
503
528
  },
504
529
  "required": [
@@ -623,6 +648,11 @@
623
648
  "appDir": {
624
649
  "type": "string",
625
650
  "minLength": 1
651
+ },
652
+ "platformAppDir": {
653
+ "type": "string",
654
+ "minLength": 1,
655
+ "description": "Preserve the saved remote source root returned by checkout when inspecting an existing app."
626
656
  }
627
657
  },
628
658
  "required": [
@@ -1649,28 +1679,90 @@
1649
1679
  ]
1650
1680
  },
1651
1681
  {
1652
- "name": "platform_validate_artifact",
1653
- "description": "Read trusted smoke and health evidence for a private artifact draft without requiring a browser session.",
1682
+ "name": "platform_get_design_system_state",
1683
+ "description": "Get the tenant Storyboard's published and draft commits, run status, and preview URL before editing or publishing. May reconcile a completed managed draft.",
1654
1684
  "annotations": {
1655
- "title": "Platform Validate Artifact",
1656
- "readOnlyHint": true,
1685
+ "title": "Platform Get Design System State",
1686
+ "readOnlyHint": false,
1657
1687
  "destructiveHint": false,
1658
1688
  "openWorldHint": false
1659
1689
  },
1660
1690
  "inputSchema": {
1661
1691
  "type": "object",
1662
- "properties": {
1663
- "artifactId": {
1664
- "type": "string",
1665
- "format": "uuid"
1692
+ "properties": {},
1693
+ "additionalProperties": false
1694
+ },
1695
+ "outputSchema": {
1696
+ "type": "object",
1697
+ "oneOf": [
1698
+ {
1699
+ "type": "object"
1666
1700
  },
1667
- "deploymentRecordId": {
1701
+ {
1702
+ "type": "object",
1703
+ "properties": {
1704
+ "ok": {
1705
+ "const": false
1706
+ },
1707
+ "error": {
1708
+ "type": "object",
1709
+ "properties": {
1710
+ "code": {
1711
+ "type": "string"
1712
+ },
1713
+ "message": {
1714
+ "type": "string"
1715
+ },
1716
+ "retryable": {
1717
+ "type": "boolean"
1718
+ },
1719
+ "recoveryAction": {
1720
+ "type": "string"
1721
+ }
1722
+ },
1723
+ "required": [
1724
+ "code",
1725
+ "message",
1726
+ "retryable",
1727
+ "recoveryAction"
1728
+ ],
1729
+ "additionalProperties": false
1730
+ }
1731
+ },
1732
+ "required": [
1733
+ "ok",
1734
+ "error"
1735
+ ],
1736
+ "additionalProperties": false
1737
+ }
1738
+ ]
1739
+ },
1740
+ "examples": [
1741
+ {
1742
+ "request": {},
1743
+ "success": {}
1744
+ }
1745
+ ]
1746
+ },
1747
+ {
1748
+ "name": "platform_checkout_design_system",
1749
+ "description": "Download the exact published tenant Storyboard source into a new local directory for Codex or Claude Code to edit and run with npm ci and npm run storybook. Never overwrites an existing directory.",
1750
+ "annotations": {
1751
+ "title": "Platform Checkout Design System",
1752
+ "readOnlyHint": false,
1753
+ "destructiveHint": false,
1754
+ "openWorldHint": true
1755
+ },
1756
+ "inputSchema": {
1757
+ "type": "object",
1758
+ "properties": {
1759
+ "targetDir": {
1668
1760
  "type": "string",
1669
- "format": "uuid"
1761
+ "minLength": 1
1670
1762
  }
1671
1763
  },
1672
1764
  "required": [
1673
- "artifactId"
1765
+ "targetDir"
1674
1766
  ],
1675
1767
  "additionalProperties": false
1676
1768
  },
@@ -1683,50 +1775,24 @@
1683
1775
  "ok": {
1684
1776
  "type": "boolean"
1685
1777
  },
1686
- "phase": {
1687
- "type": "string"
1688
- },
1689
- "artifactId": {
1690
- "type": "string"
1691
- },
1692
- "deploymentRecordId": {
1778
+ "directory": {
1693
1779
  "type": "string"
1694
1780
  },
1695
- "deploymentState": {
1781
+ "currentCommit": {
1696
1782
  "type": "string"
1697
1783
  },
1698
- "healthy": {
1699
- "type": "boolean"
1700
- },
1701
- "checkedAt": {
1702
- "type": [
1703
- "string",
1704
- "null"
1705
- ]
1706
- },
1707
- "draftUrl": {
1708
- "type": [
1709
- "string",
1710
- "null"
1711
- ]
1712
- },
1713
- "smoke": {
1714
- "type": [
1715
- "object",
1716
- "null"
1717
- ]
1784
+ "localCommands": {
1785
+ "type": "array",
1786
+ "items": {
1787
+ "type": "string"
1788
+ }
1718
1789
  }
1719
1790
  },
1720
1791
  "required": [
1721
1792
  "ok",
1722
- "phase",
1723
- "artifactId",
1724
- "deploymentRecordId",
1725
- "deploymentState",
1726
- "healthy",
1727
- "checkedAt",
1728
- "draftUrl",
1729
- "smoke"
1793
+ "directory",
1794
+ "currentCommit",
1795
+ "localCommands"
1730
1796
  ]
1731
1797
  },
1732
1798
  {
@@ -1771,27 +1837,22 @@
1771
1837
  "examples": [
1772
1838
  {
1773
1839
  "request": {
1774
- "artifactId": "00000000-0000-4000-8000-000000000001"
1840
+ "targetDir": "<targetDir>"
1775
1841
  },
1776
1842
  "success": {
1777
1843
  "ok": true,
1778
- "phase": "<phase>",
1779
- "artifactId": "00000000-0000-4000-8000-000000000001",
1780
- "deploymentRecordId": "00000000-0000-4000-8000-000000000003",
1781
- "deploymentState": "<deploymentState>",
1782
- "healthy": true,
1783
- "checkedAt": "<checkedAt>",
1784
- "draftUrl": "<draftUrl>",
1785
- "smoke": {}
1844
+ "directory": "<directory>",
1845
+ "currentCommit": "<currentCommit>",
1846
+ "localCommands": []
1786
1847
  }
1787
1848
  }
1788
1849
  ]
1789
1850
  },
1790
1851
  {
1791
- "name": "platform_run_artifact_smoke",
1792
- "description": "Rerun the trusted draft smoke check and return fresh rendered-page evidence.",
1852
+ "name": "platform_submit_design_system_draft",
1853
+ "description": "Package a locally edited Storyboard source directory and submit it as a private draft against exact published and draft revisions. The server validates and builds it before it can be published.",
1793
1854
  "annotations": {
1794
- "title": "Platform Run Artifact Smoke",
1855
+ "title": "Platform Submit Design System Draft",
1795
1856
  "readOnlyHint": false,
1796
1857
  "destructiveHint": false,
1797
1858
  "openWorldHint": true
@@ -1799,17 +1860,30 @@
1799
1860
  "inputSchema": {
1800
1861
  "type": "object",
1801
1862
  "properties": {
1802
- "artifactId": {
1863
+ "localDir": {
1803
1864
  "type": "string",
1804
- "format": "uuid"
1865
+ "minLength": 1
1805
1866
  },
1806
- "deploymentRecordId": {
1867
+ "expectedCurrentCommit": {
1807
1868
  "type": "string",
1808
- "format": "uuid"
1869
+ "pattern": "^[a-f0-9]{40}$"
1870
+ },
1871
+ "expectedDraftRunId": {
1872
+ "anyOf": [
1873
+ {
1874
+ "type": "string",
1875
+ "format": "uuid"
1876
+ },
1877
+ {
1878
+ "type": "null"
1879
+ }
1880
+ ]
1809
1881
  }
1810
1882
  },
1811
1883
  "required": [
1812
- "artifactId"
1884
+ "localDir",
1885
+ "expectedCurrentCommit",
1886
+ "expectedDraftRunId"
1813
1887
  ],
1814
1888
  "additionalProperties": false
1815
1889
  },
@@ -1822,29 +1896,33 @@
1822
1896
  "ok": {
1823
1897
  "type": "boolean"
1824
1898
  },
1825
- "phase": {
1899
+ "runId": {
1826
1900
  "type": "string"
1827
1901
  },
1828
- "artifactId": {
1902
+ "draftCommit": {
1829
1903
  "type": "string"
1830
1904
  },
1831
- "deploymentRecordId": {
1905
+ "draftState": {
1832
1906
  "type": "string"
1833
1907
  },
1834
- "smoke": {
1835
- "type": "object"
1908
+ "previewUrl": {
1909
+ "type": "string"
1836
1910
  },
1837
- "validation": {
1838
- "type": "object"
1911
+ "requestId": {
1912
+ "type": "string"
1913
+ },
1914
+ "bundleSha256": {
1915
+ "type": "string"
1839
1916
  }
1840
1917
  },
1841
1918
  "required": [
1842
1919
  "ok",
1843
- "phase",
1844
- "artifactId",
1845
- "deploymentRecordId",
1846
- "smoke",
1847
- "validation"
1920
+ "runId",
1921
+ "draftCommit",
1922
+ "draftState",
1923
+ "previewUrl",
1924
+ "requestId",
1925
+ "bundleSha256"
1848
1926
  ]
1849
1927
  },
1850
1928
  {
@@ -1889,38 +1967,59 @@
1889
1967
  "examples": [
1890
1968
  {
1891
1969
  "request": {
1892
- "artifactId": "00000000-0000-4000-8000-000000000001"
1970
+ "localDir": "<localDir>",
1971
+ "expectedCurrentCommit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1972
+ "expectedDraftRunId": "00000000-0000-4000-8000-000000000001"
1893
1973
  },
1894
1974
  "success": {
1895
1975
  "ok": true,
1896
- "phase": "<phase>",
1897
- "artifactId": "00000000-0000-4000-8000-000000000001",
1898
- "deploymentRecordId": "00000000-0000-4000-8000-000000000003",
1899
- "smoke": {},
1900
- "validation": {}
1976
+ "runId": "<runId>",
1977
+ "draftCommit": "<draftCommit>",
1978
+ "draftState": "<draftState>",
1979
+ "previewUrl": "<previewUrl>",
1980
+ "requestId": "<requestId>",
1981
+ "bundleSha256": "<bundleSha256>"
1901
1982
  }
1902
1983
  }
1903
1984
  ]
1904
1985
  },
1905
1986
  {
1906
- "name": "platform_plan_artifact_draft_delete",
1907
- "description": "Preview cleanup effects and receive the state-bound plan token required for deletion.",
1987
+ "name": "platform_edit_design_system",
1988
+ "description": "Start an asynchronous Storyboard draft edit in an existing writable Topline Storyboard conversation. Pass expectedDraftRunId from the last state read (null for no draft); stale or concurrent retries are rejected.",
1908
1989
  "annotations": {
1909
- "title": "Platform Plan Artifact Draft Delete",
1910
- "readOnlyHint": true,
1990
+ "title": "Platform Edit Design System",
1991
+ "readOnlyHint": false,
1911
1992
  "destructiveHint": false,
1912
1993
  "openWorldHint": true
1913
1994
  },
1914
1995
  "inputSchema": {
1915
1996
  "type": "object",
1916
1997
  "properties": {
1917
- "artifactId": {
1998
+ "conversationId": {
1918
1999
  "type": "string",
1919
2000
  "format": "uuid"
2001
+ },
2002
+ "instruction": {
2003
+ "type": "string",
2004
+ "minLength": 1,
2005
+ "maxLength": 10000
2006
+ },
2007
+ "expectedDraftRunId": {
2008
+ "anyOf": [
2009
+ {
2010
+ "type": "string",
2011
+ "format": "uuid"
2012
+ },
2013
+ {
2014
+ "type": "null"
2015
+ }
2016
+ ]
1920
2017
  }
1921
2018
  },
1922
2019
  "required": [
1923
- "artifactId"
2020
+ "conversationId",
2021
+ "instruction",
2022
+ "expectedDraftRunId"
1924
2023
  ],
1925
2024
  "additionalProperties": false
1926
2025
  },
@@ -1930,32 +2029,16 @@
1930
2029
  {
1931
2030
  "type": "object",
1932
2031
  "properties": {
1933
- "ok": {
1934
- "type": "boolean"
1935
- },
1936
- "phase": {
2032
+ "runId": {
1937
2033
  "type": "string"
1938
2034
  },
1939
- "artifactId": {
1940
- "type": "string"
1941
- },
1942
- "eligible": {
1943
- "type": "boolean"
1944
- },
1945
- "effects": {
1946
- "type": "object"
1947
- },
1948
- "planToken": {
2035
+ "previewUrl": {
1949
2036
  "type": "string"
1950
2037
  }
1951
2038
  },
1952
2039
  "required": [
1953
- "ok",
1954
- "phase",
1955
- "artifactId",
1956
- "eligible",
1957
- "effects",
1958
- "planToken"
2040
+ "runId",
2041
+ "previewUrl"
1959
2042
  ]
1960
2043
  },
1961
2044
  {
@@ -2000,24 +2083,22 @@
2000
2083
  "examples": [
2001
2084
  {
2002
2085
  "request": {
2003
- "artifactId": "00000000-0000-4000-8000-000000000001"
2086
+ "conversationId": "00000000-0000-4000-8000-000000000001",
2087
+ "instruction": "<instruction>",
2088
+ "expectedDraftRunId": "00000000-0000-4000-8000-000000000001"
2004
2089
  },
2005
2090
  "success": {
2006
- "ok": true,
2007
- "phase": "<phase>",
2008
- "artifactId": "00000000-0000-4000-8000-000000000001",
2009
- "eligible": true,
2010
- "effects": {},
2011
- "planToken": "example-plan-token"
2091
+ "runId": "<runId>",
2092
+ "previewUrl": "<previewUrl>"
2012
2093
  }
2013
2094
  }
2014
2095
  ]
2015
2096
  },
2016
2097
  {
2017
- "name": "platform_delete_artifact_draft",
2018
- "description": "Permanently remove an unpromoted private draft created by this MCP connection after exact-id confirmation.",
2098
+ "name": "platform_publish_design_system",
2099
+ "description": "Publish the exact reviewed Storyboard draft after its build passes. Managed edits require their writable Storyboard conversation; local submissions require the submitting actor. Always pass state-bound run, draft, and current commits.",
2019
2100
  "annotations": {
2020
- "title": "Platform Delete Artifact Draft",
2101
+ "title": "Platform Publish Design System",
2021
2102
  "readOnlyHint": false,
2022
2103
  "destructiveHint": true,
2023
2104
  "openWorldHint": true
@@ -2025,23 +2106,34 @@
2025
2106
  "inputSchema": {
2026
2107
  "type": "object",
2027
2108
  "properties": {
2028
- "artifactId": {
2109
+ "conversationId": {
2029
2110
  "type": "string",
2030
2111
  "format": "uuid"
2031
2112
  },
2032
- "confirmArtifactId": {
2113
+ "expectedDraftRunId": {
2033
2114
  "type": "string",
2034
2115
  "format": "uuid"
2035
2116
  },
2036
- "planToken": {
2117
+ "expectedDraftCommit": {
2037
2118
  "type": "string",
2038
- "minLength": 1
2119
+ "pattern": "^[a-f0-9]{40}$"
2120
+ },
2121
+ "expectedCurrentCommit": {
2122
+ "anyOf": [
2123
+ {
2124
+ "type": "string",
2125
+ "pattern": "^[a-f0-9]{40}$"
2126
+ },
2127
+ {
2128
+ "type": "null"
2129
+ }
2130
+ ]
2039
2131
  }
2040
2132
  },
2041
2133
  "required": [
2042
- "artifactId",
2043
- "confirmArtifactId",
2044
- "planToken"
2134
+ "expectedDraftRunId",
2135
+ "expectedDraftCommit",
2136
+ "expectedCurrentCommit"
2045
2137
  ],
2046
2138
  "additionalProperties": false
2047
2139
  },
@@ -2051,20 +2143,12 @@
2051
2143
  {
2052
2144
  "type": "object",
2053
2145
  "properties": {
2054
- "ok": {
2055
- "type": "boolean"
2056
- },
2057
- "deleted": {
2058
- "type": "boolean"
2059
- },
2060
- "artifactId": {
2146
+ "publishedCommit": {
2061
2147
  "type": "string"
2062
2148
  }
2063
2149
  },
2064
2150
  "required": [
2065
- "ok",
2066
- "deleted",
2067
- "artifactId"
2151
+ "publishedCommit"
2068
2152
  ]
2069
2153
  },
2070
2154
  {
@@ -2109,17 +2193,2174 @@
2109
2193
  "examples": [
2110
2194
  {
2111
2195
  "request": {
2112
- "artifactId": "00000000-0000-4000-8000-000000000001",
2113
- "confirmArtifactId": "00000000-0000-4000-8000-000000000001",
2114
- "planToken": "example-plan-token"
2196
+ "expectedDraftRunId": "00000000-0000-4000-8000-000000000001",
2197
+ "expectedDraftCommit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2198
+ "expectedCurrentCommit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
2115
2199
  },
2116
2200
  "success": {
2117
- "ok": true,
2118
- "deleted": true,
2119
- "artifactId": "00000000-0000-4000-8000-000000000001"
2201
+ "publishedCommit": "<publishedCommit>"
2120
2202
  }
2121
2203
  }
2122
2204
  ]
2205
+ },
2206
+ {
2207
+ "name": "platform_validate_artifact",
2208
+ "description": "Read trusted smoke and health evidence for a private artifact draft without requiring a browser session.",
2209
+ "annotations": {
2210
+ "title": "Platform Validate Artifact",
2211
+ "readOnlyHint": true,
2212
+ "destructiveHint": false,
2213
+ "openWorldHint": false
2214
+ },
2215
+ "inputSchema": {
2216
+ "type": "object",
2217
+ "properties": {
2218
+ "artifactId": {
2219
+ "type": "string",
2220
+ "format": "uuid"
2221
+ },
2222
+ "deploymentRecordId": {
2223
+ "type": "string",
2224
+ "format": "uuid"
2225
+ }
2226
+ },
2227
+ "required": [
2228
+ "artifactId"
2229
+ ],
2230
+ "additionalProperties": false
2231
+ },
2232
+ "outputSchema": {
2233
+ "type": "object",
2234
+ "oneOf": [
2235
+ {
2236
+ "type": "object",
2237
+ "properties": {
2238
+ "ok": {
2239
+ "type": "boolean"
2240
+ },
2241
+ "phase": {
2242
+ "type": "string"
2243
+ },
2244
+ "artifactId": {
2245
+ "type": "string"
2246
+ },
2247
+ "deploymentRecordId": {
2248
+ "type": "string"
2249
+ },
2250
+ "deploymentState": {
2251
+ "type": "string"
2252
+ },
2253
+ "healthy": {
2254
+ "type": "boolean"
2255
+ },
2256
+ "checkedAt": {
2257
+ "type": [
2258
+ "string",
2259
+ "null"
2260
+ ]
2261
+ },
2262
+ "draftUrl": {
2263
+ "type": [
2264
+ "string",
2265
+ "null"
2266
+ ]
2267
+ },
2268
+ "smoke": {
2269
+ "type": [
2270
+ "object",
2271
+ "null"
2272
+ ]
2273
+ }
2274
+ },
2275
+ "required": [
2276
+ "ok",
2277
+ "phase",
2278
+ "artifactId",
2279
+ "deploymentRecordId",
2280
+ "deploymentState",
2281
+ "healthy",
2282
+ "checkedAt",
2283
+ "draftUrl",
2284
+ "smoke"
2285
+ ]
2286
+ },
2287
+ {
2288
+ "type": "object",
2289
+ "properties": {
2290
+ "ok": {
2291
+ "const": false
2292
+ },
2293
+ "error": {
2294
+ "type": "object",
2295
+ "properties": {
2296
+ "code": {
2297
+ "type": "string"
2298
+ },
2299
+ "message": {
2300
+ "type": "string"
2301
+ },
2302
+ "retryable": {
2303
+ "type": "boolean"
2304
+ },
2305
+ "recoveryAction": {
2306
+ "type": "string"
2307
+ }
2308
+ },
2309
+ "required": [
2310
+ "code",
2311
+ "message",
2312
+ "retryable",
2313
+ "recoveryAction"
2314
+ ],
2315
+ "additionalProperties": false
2316
+ }
2317
+ },
2318
+ "required": [
2319
+ "ok",
2320
+ "error"
2321
+ ],
2322
+ "additionalProperties": false
2323
+ }
2324
+ ]
2325
+ },
2326
+ "examples": [
2327
+ {
2328
+ "request": {
2329
+ "artifactId": "00000000-0000-4000-8000-000000000001"
2330
+ },
2331
+ "success": {
2332
+ "ok": true,
2333
+ "phase": "<phase>",
2334
+ "artifactId": "00000000-0000-4000-8000-000000000001",
2335
+ "deploymentRecordId": "00000000-0000-4000-8000-000000000003",
2336
+ "deploymentState": "<deploymentState>",
2337
+ "healthy": true,
2338
+ "checkedAt": "<checkedAt>",
2339
+ "draftUrl": "<draftUrl>",
2340
+ "smoke": {}
2341
+ }
2342
+ }
2343
+ ]
2344
+ },
2345
+ {
2346
+ "name": "platform_run_artifact_smoke",
2347
+ "description": "Rerun the trusted draft smoke check and return fresh rendered-page evidence.",
2348
+ "annotations": {
2349
+ "title": "Platform Run Artifact Smoke",
2350
+ "readOnlyHint": false,
2351
+ "destructiveHint": false,
2352
+ "openWorldHint": true
2353
+ },
2354
+ "inputSchema": {
2355
+ "type": "object",
2356
+ "properties": {
2357
+ "artifactId": {
2358
+ "type": "string",
2359
+ "format": "uuid"
2360
+ },
2361
+ "deploymentRecordId": {
2362
+ "type": "string",
2363
+ "format": "uuid"
2364
+ }
2365
+ },
2366
+ "required": [
2367
+ "artifactId"
2368
+ ],
2369
+ "additionalProperties": false
2370
+ },
2371
+ "outputSchema": {
2372
+ "type": "object",
2373
+ "oneOf": [
2374
+ {
2375
+ "type": "object",
2376
+ "properties": {
2377
+ "ok": {
2378
+ "type": "boolean"
2379
+ },
2380
+ "phase": {
2381
+ "type": "string"
2382
+ },
2383
+ "artifactId": {
2384
+ "type": "string"
2385
+ },
2386
+ "deploymentRecordId": {
2387
+ "type": "string"
2388
+ },
2389
+ "smoke": {
2390
+ "type": "object"
2391
+ },
2392
+ "validation": {
2393
+ "type": "object"
2394
+ }
2395
+ },
2396
+ "required": [
2397
+ "ok",
2398
+ "phase",
2399
+ "artifactId",
2400
+ "deploymentRecordId",
2401
+ "smoke",
2402
+ "validation"
2403
+ ]
2404
+ },
2405
+ {
2406
+ "type": "object",
2407
+ "properties": {
2408
+ "ok": {
2409
+ "const": false
2410
+ },
2411
+ "error": {
2412
+ "type": "object",
2413
+ "properties": {
2414
+ "code": {
2415
+ "type": "string"
2416
+ },
2417
+ "message": {
2418
+ "type": "string"
2419
+ },
2420
+ "retryable": {
2421
+ "type": "boolean"
2422
+ },
2423
+ "recoveryAction": {
2424
+ "type": "string"
2425
+ }
2426
+ },
2427
+ "required": [
2428
+ "code",
2429
+ "message",
2430
+ "retryable",
2431
+ "recoveryAction"
2432
+ ],
2433
+ "additionalProperties": false
2434
+ }
2435
+ },
2436
+ "required": [
2437
+ "ok",
2438
+ "error"
2439
+ ],
2440
+ "additionalProperties": false
2441
+ }
2442
+ ]
2443
+ },
2444
+ "examples": [
2445
+ {
2446
+ "request": {
2447
+ "artifactId": "00000000-0000-4000-8000-000000000001"
2448
+ },
2449
+ "success": {
2450
+ "ok": true,
2451
+ "phase": "<phase>",
2452
+ "artifactId": "00000000-0000-4000-8000-000000000001",
2453
+ "deploymentRecordId": "00000000-0000-4000-8000-000000000003",
2454
+ "smoke": {},
2455
+ "validation": {}
2456
+ }
2457
+ }
2458
+ ]
2459
+ },
2460
+ {
2461
+ "name": "platform_plan_artifact_draft_delete",
2462
+ "description": "Preview cleanup effects and receive the state-bound plan token required for deletion.",
2463
+ "annotations": {
2464
+ "title": "Platform Plan Artifact Draft Delete",
2465
+ "readOnlyHint": true,
2466
+ "destructiveHint": false,
2467
+ "openWorldHint": true
2468
+ },
2469
+ "inputSchema": {
2470
+ "type": "object",
2471
+ "properties": {
2472
+ "artifactId": {
2473
+ "type": "string",
2474
+ "format": "uuid"
2475
+ }
2476
+ },
2477
+ "required": [
2478
+ "artifactId"
2479
+ ],
2480
+ "additionalProperties": false
2481
+ },
2482
+ "outputSchema": {
2483
+ "type": "object",
2484
+ "oneOf": [
2485
+ {
2486
+ "type": "object",
2487
+ "properties": {
2488
+ "ok": {
2489
+ "type": "boolean"
2490
+ },
2491
+ "phase": {
2492
+ "type": "string"
2493
+ },
2494
+ "artifactId": {
2495
+ "type": "string"
2496
+ },
2497
+ "eligible": {
2498
+ "type": "boolean"
2499
+ },
2500
+ "effects": {
2501
+ "type": "object"
2502
+ },
2503
+ "planToken": {
2504
+ "type": "string"
2505
+ }
2506
+ },
2507
+ "required": [
2508
+ "ok",
2509
+ "phase",
2510
+ "artifactId",
2511
+ "eligible",
2512
+ "effects",
2513
+ "planToken"
2514
+ ]
2515
+ },
2516
+ {
2517
+ "type": "object",
2518
+ "properties": {
2519
+ "ok": {
2520
+ "const": false
2521
+ },
2522
+ "error": {
2523
+ "type": "object",
2524
+ "properties": {
2525
+ "code": {
2526
+ "type": "string"
2527
+ },
2528
+ "message": {
2529
+ "type": "string"
2530
+ },
2531
+ "retryable": {
2532
+ "type": "boolean"
2533
+ },
2534
+ "recoveryAction": {
2535
+ "type": "string"
2536
+ }
2537
+ },
2538
+ "required": [
2539
+ "code",
2540
+ "message",
2541
+ "retryable",
2542
+ "recoveryAction"
2543
+ ],
2544
+ "additionalProperties": false
2545
+ }
2546
+ },
2547
+ "required": [
2548
+ "ok",
2549
+ "error"
2550
+ ],
2551
+ "additionalProperties": false
2552
+ }
2553
+ ]
2554
+ },
2555
+ "examples": [
2556
+ {
2557
+ "request": {
2558
+ "artifactId": "00000000-0000-4000-8000-000000000001"
2559
+ },
2560
+ "success": {
2561
+ "ok": true,
2562
+ "phase": "<phase>",
2563
+ "artifactId": "00000000-0000-4000-8000-000000000001",
2564
+ "eligible": true,
2565
+ "effects": {},
2566
+ "planToken": "example-plan-token"
2567
+ }
2568
+ }
2569
+ ]
2570
+ },
2571
+ {
2572
+ "name": "platform_delete_artifact_draft",
2573
+ "description": "Permanently remove an unpromoted private draft created by this MCP connection after exact-id confirmation.",
2574
+ "annotations": {
2575
+ "title": "Platform Delete Artifact Draft",
2576
+ "readOnlyHint": false,
2577
+ "destructiveHint": true,
2578
+ "openWorldHint": true
2579
+ },
2580
+ "inputSchema": {
2581
+ "type": "object",
2582
+ "properties": {
2583
+ "artifactId": {
2584
+ "type": "string",
2585
+ "format": "uuid"
2586
+ },
2587
+ "confirmArtifactId": {
2588
+ "type": "string",
2589
+ "format": "uuid"
2590
+ },
2591
+ "planToken": {
2592
+ "type": "string",
2593
+ "minLength": 1
2594
+ }
2595
+ },
2596
+ "required": [
2597
+ "artifactId",
2598
+ "confirmArtifactId",
2599
+ "planToken"
2600
+ ],
2601
+ "additionalProperties": false
2602
+ },
2603
+ "outputSchema": {
2604
+ "type": "object",
2605
+ "oneOf": [
2606
+ {
2607
+ "type": "object",
2608
+ "properties": {
2609
+ "ok": {
2610
+ "type": "boolean"
2611
+ },
2612
+ "deleted": {
2613
+ "type": "boolean"
2614
+ },
2615
+ "artifactId": {
2616
+ "type": "string"
2617
+ }
2618
+ },
2619
+ "required": [
2620
+ "ok",
2621
+ "deleted",
2622
+ "artifactId"
2623
+ ]
2624
+ },
2625
+ {
2626
+ "type": "object",
2627
+ "properties": {
2628
+ "ok": {
2629
+ "const": false
2630
+ },
2631
+ "error": {
2632
+ "type": "object",
2633
+ "properties": {
2634
+ "code": {
2635
+ "type": "string"
2636
+ },
2637
+ "message": {
2638
+ "type": "string"
2639
+ },
2640
+ "retryable": {
2641
+ "type": "boolean"
2642
+ },
2643
+ "recoveryAction": {
2644
+ "type": "string"
2645
+ }
2646
+ },
2647
+ "required": [
2648
+ "code",
2649
+ "message",
2650
+ "retryable",
2651
+ "recoveryAction"
2652
+ ],
2653
+ "additionalProperties": false
2654
+ }
2655
+ },
2656
+ "required": [
2657
+ "ok",
2658
+ "error"
2659
+ ],
2660
+ "additionalProperties": false
2661
+ }
2662
+ ]
2663
+ },
2664
+ "examples": [
2665
+ {
2666
+ "request": {
2667
+ "artifactId": "00000000-0000-4000-8000-000000000001",
2668
+ "confirmArtifactId": "00000000-0000-4000-8000-000000000001",
2669
+ "planToken": "example-plan-token"
2670
+ },
2671
+ "success": {
2672
+ "ok": true,
2673
+ "deleted": true,
2674
+ "artifactId": "00000000-0000-4000-8000-000000000001"
2675
+ }
2676
+ }
2677
+ ]
2678
+ },
2679
+ {
2680
+ "name": "platform_capability_status",
2681
+ "description": "Read the connected Build product's current available, denied, unsupported and unconfigured tool families, contract version and helper requirement. Reconnect explicitly for newly consented scopes.",
2682
+ "annotations": {
2683
+ "title": "Platform Capability Status",
2684
+ "readOnlyHint": true,
2685
+ "destructiveHint": false,
2686
+ "idempotentHint": true,
2687
+ "openWorldHint": true
2688
+ },
2689
+ "inputSchema": {
2690
+ "type": "object",
2691
+ "additionalProperties": false,
2692
+ "properties": {},
2693
+ "required": []
2694
+ },
2695
+ "outputSchema": {
2696
+ "type": "object",
2697
+ "oneOf": [
2698
+ {
2699
+ "type": "object",
2700
+ "properties": {
2701
+ "ok": {
2702
+ "const": true
2703
+ }
2704
+ }
2705
+ },
2706
+ {
2707
+ "type": "object",
2708
+ "properties": {
2709
+ "ok": {
2710
+ "const": false
2711
+ },
2712
+ "error": {
2713
+ "type": "object",
2714
+ "properties": {
2715
+ "code": {
2716
+ "type": "string"
2717
+ },
2718
+ "message": {
2719
+ "type": "string"
2720
+ },
2721
+ "retryable": {
2722
+ "type": "boolean"
2723
+ },
2724
+ "recoveryAction": {
2725
+ "type": "string"
2726
+ }
2727
+ },
2728
+ "required": [
2729
+ "code",
2730
+ "message",
2731
+ "retryable",
2732
+ "recoveryAction"
2733
+ ],
2734
+ "additionalProperties": false
2735
+ }
2736
+ },
2737
+ "required": [
2738
+ "ok",
2739
+ "error"
2740
+ ],
2741
+ "additionalProperties": false
2742
+ }
2743
+ ]
2744
+ },
2745
+ "examples": [
2746
+ {
2747
+ "request": {},
2748
+ "success": {}
2749
+ }
2750
+ ]
2751
+ },
2752
+ {
2753
+ "name": "platform_start_build_session",
2754
+ "description": "Start external authoring with a private artifact identity, current version and platform-operation budget. Launches no internal coder. Existing artifact starts require its current version; new app starts require a manifest. Optional own conversation selects exact operator-approved secret references.",
2755
+ "annotations": {
2756
+ "title": "Platform Start Build Session",
2757
+ "readOnlyHint": false,
2758
+ "destructiveHint": false,
2759
+ "idempotentHint": true,
2760
+ "openWorldHint": true
2761
+ },
2762
+ "inputSchema": {
2763
+ "type": "object",
2764
+ "additionalProperties": false,
2765
+ "properties": {
2766
+ "idempotencyKey": {
2767
+ "type": "string",
2768
+ "minLength": 1,
2769
+ "maxLength": 128,
2770
+ "pattern": "^[A-Za-z0-9._:-]+$"
2771
+ },
2772
+ "artifactId": {
2773
+ "type": "string",
2774
+ "format": "uuid"
2775
+ },
2776
+ "artifactVersionId": {
2777
+ "type": "string",
2778
+ "format": "uuid"
2779
+ },
2780
+ "manifest": {
2781
+ "type": "object"
2782
+ },
2783
+ "projectId": {
2784
+ "type": "string",
2785
+ "format": "uuid"
2786
+ },
2787
+ "owningConversationId": {
2788
+ "type": "string",
2789
+ "format": "uuid"
2790
+ },
2791
+ "budgetCents": {
2792
+ "type": "integer",
2793
+ "minimum": 0,
2794
+ "maximum": 100000
2795
+ },
2796
+ "brief": {
2797
+ "type": "string",
2798
+ "minLength": 3,
2799
+ "maxLength": 4000
2800
+ }
2801
+ },
2802
+ "required": [
2803
+ "idempotencyKey",
2804
+ "budgetCents",
2805
+ "brief"
2806
+ ]
2807
+ },
2808
+ "outputSchema": {
2809
+ "type": "object",
2810
+ "oneOf": [
2811
+ {
2812
+ "type": "object",
2813
+ "properties": {
2814
+ "ok": {
2815
+ "const": true
2816
+ }
2817
+ }
2818
+ },
2819
+ {
2820
+ "type": "object",
2821
+ "properties": {
2822
+ "ok": {
2823
+ "const": false
2824
+ },
2825
+ "error": {
2826
+ "type": "object",
2827
+ "properties": {
2828
+ "code": {
2829
+ "type": "string"
2830
+ },
2831
+ "message": {
2832
+ "type": "string"
2833
+ },
2834
+ "retryable": {
2835
+ "type": "boolean"
2836
+ },
2837
+ "recoveryAction": {
2838
+ "type": "string"
2839
+ }
2840
+ },
2841
+ "required": [
2842
+ "code",
2843
+ "message",
2844
+ "retryable",
2845
+ "recoveryAction"
2846
+ ],
2847
+ "additionalProperties": false
2848
+ }
2849
+ },
2850
+ "required": [
2851
+ "ok",
2852
+ "error"
2853
+ ],
2854
+ "additionalProperties": false
2855
+ }
2856
+ ]
2857
+ },
2858
+ "examples": [
2859
+ {
2860
+ "request": {
2861
+ "idempotencyKey": "example-request",
2862
+ "budgetCents": 0,
2863
+ "brief": "<brief>"
2864
+ },
2865
+ "success": {}
2866
+ }
2867
+ ]
2868
+ },
2869
+ {
2870
+ "name": "platform_read_build_session",
2871
+ "description": "Read the owned build session and original pending operations. Does not start another coder or deployment.",
2872
+ "annotations": {
2873
+ "title": "Platform Read Build Session",
2874
+ "readOnlyHint": true,
2875
+ "destructiveHint": false,
2876
+ "idempotentHint": true,
2877
+ "openWorldHint": true
2878
+ },
2879
+ "inputSchema": {
2880
+ "type": "object",
2881
+ "additionalProperties": false,
2882
+ "properties": {
2883
+ "sessionId": {
2884
+ "type": "string",
2885
+ "format": "uuid"
2886
+ }
2887
+ },
2888
+ "required": [
2889
+ "sessionId"
2890
+ ]
2891
+ },
2892
+ "outputSchema": {
2893
+ "type": "object",
2894
+ "oneOf": [
2895
+ {
2896
+ "type": "object",
2897
+ "properties": {
2898
+ "ok": {
2899
+ "const": true
2900
+ }
2901
+ }
2902
+ },
2903
+ {
2904
+ "type": "object",
2905
+ "properties": {
2906
+ "ok": {
2907
+ "const": false
2908
+ },
2909
+ "error": {
2910
+ "type": "object",
2911
+ "properties": {
2912
+ "code": {
2913
+ "type": "string"
2914
+ },
2915
+ "message": {
2916
+ "type": "string"
2917
+ },
2918
+ "retryable": {
2919
+ "type": "boolean"
2920
+ },
2921
+ "recoveryAction": {
2922
+ "type": "string"
2923
+ }
2924
+ },
2925
+ "required": [
2926
+ "code",
2927
+ "message",
2928
+ "retryable",
2929
+ "recoveryAction"
2930
+ ],
2931
+ "additionalProperties": false
2932
+ }
2933
+ },
2934
+ "required": [
2935
+ "ok",
2936
+ "error"
2937
+ ],
2938
+ "additionalProperties": false
2939
+ }
2940
+ ]
2941
+ },
2942
+ "examples": [
2943
+ {
2944
+ "request": {
2945
+ "sessionId": "00000000-0000-4000-8000-000000000001"
2946
+ },
2947
+ "success": {}
2948
+ }
2949
+ ]
2950
+ },
2951
+ {
2952
+ "name": "platform_close_build_session",
2953
+ "description": "Stop new authoring and request pending-operation cancellation. Unknown effects retain their reservation; cancellation does not undo committed writes.",
2954
+ "annotations": {
2955
+ "title": "Platform Close Build Session",
2956
+ "readOnlyHint": false,
2957
+ "destructiveHint": false,
2958
+ "idempotentHint": true,
2959
+ "openWorldHint": true
2960
+ },
2961
+ "inputSchema": {
2962
+ "type": "object",
2963
+ "additionalProperties": false,
2964
+ "properties": {
2965
+ "sessionId": {
2966
+ "type": "string",
2967
+ "format": "uuid"
2968
+ }
2969
+ },
2970
+ "required": [
2971
+ "sessionId"
2972
+ ]
2973
+ },
2974
+ "outputSchema": {
2975
+ "type": "object",
2976
+ "oneOf": [
2977
+ {
2978
+ "type": "object",
2979
+ "properties": {
2980
+ "ok": {
2981
+ "const": true
2982
+ }
2983
+ }
2984
+ },
2985
+ {
2986
+ "type": "object",
2987
+ "properties": {
2988
+ "ok": {
2989
+ "const": false
2990
+ },
2991
+ "error": {
2992
+ "type": "object",
2993
+ "properties": {
2994
+ "code": {
2995
+ "type": "string"
2996
+ },
2997
+ "message": {
2998
+ "type": "string"
2999
+ },
3000
+ "retryable": {
3001
+ "type": "boolean"
3002
+ },
3003
+ "recoveryAction": {
3004
+ "type": "string"
3005
+ }
3006
+ },
3007
+ "required": [
3008
+ "code",
3009
+ "message",
3010
+ "retryable",
3011
+ "recoveryAction"
3012
+ ],
3013
+ "additionalProperties": false
3014
+ }
3015
+ },
3016
+ "required": [
3017
+ "ok",
3018
+ "error"
3019
+ ],
3020
+ "additionalProperties": false
3021
+ }
3022
+ ]
3023
+ },
3024
+ "examples": [
3025
+ {
3026
+ "request": {
3027
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3028
+ },
3029
+ "success": {}
3030
+ }
3031
+ ]
3032
+ },
3033
+ {
3034
+ "name": "platform_run_artifact_workspace_sql",
3035
+ "description": "Run guarded private artifact SQL using the exact session namespace, version and retry key. CREATE TABLE/ADD COLUMN require documentation. Enforced non-admin writes remain denied; unknown writes are never replayed.",
3036
+ "annotations": {
3037
+ "title": "Platform Run Artifact Workspace Sql",
3038
+ "readOnlyHint": false,
3039
+ "destructiveHint": false,
3040
+ "idempotentHint": true,
3041
+ "openWorldHint": true
3042
+ },
3043
+ "inputSchema": {
3044
+ "type": "object",
3045
+ "additionalProperties": false,
3046
+ "properties": {
3047
+ "sessionId": {
3048
+ "type": "string",
3049
+ "format": "uuid"
3050
+ },
3051
+ "artifactVersionId": {
3052
+ "type": "string",
3053
+ "format": "uuid"
3054
+ },
3055
+ "idempotencyKey": {
3056
+ "type": "string",
3057
+ "minLength": 1,
3058
+ "maxLength": 128,
3059
+ "pattern": "^[A-Za-z0-9._:-]+$"
3060
+ },
3061
+ "sql": {
3062
+ "type": "string",
3063
+ "minLength": 1,
3064
+ "maxLength": 20000
3065
+ },
3066
+ "purpose": {
3067
+ "type": "string",
3068
+ "minLength": 3,
3069
+ "maxLength": 500
3070
+ },
3071
+ "params": {
3072
+ "type": "object",
3073
+ "additionalProperties": true
3074
+ },
3075
+ "maxRows": {
3076
+ "type": "integer",
3077
+ "minimum": 1,
3078
+ "maximum": 5000
3079
+ },
3080
+ "documentation": {
3081
+ "type": "object"
3082
+ },
3083
+ "columnDocumentation": {
3084
+ "type": "object"
3085
+ }
3086
+ },
3087
+ "required": [
3088
+ "sessionId",
3089
+ "artifactVersionId",
3090
+ "idempotencyKey",
3091
+ "sql",
3092
+ "purpose"
3093
+ ]
3094
+ },
3095
+ "outputSchema": {
3096
+ "type": "object",
3097
+ "oneOf": [
3098
+ {
3099
+ "type": "object",
3100
+ "properties": {
3101
+ "ok": {
3102
+ "const": true
3103
+ }
3104
+ }
3105
+ },
3106
+ {
3107
+ "type": "object",
3108
+ "properties": {
3109
+ "ok": {
3110
+ "const": false
3111
+ },
3112
+ "error": {
3113
+ "type": "object",
3114
+ "properties": {
3115
+ "code": {
3116
+ "type": "string"
3117
+ },
3118
+ "message": {
3119
+ "type": "string"
3120
+ },
3121
+ "retryable": {
3122
+ "type": "boolean"
3123
+ },
3124
+ "recoveryAction": {
3125
+ "type": "string"
3126
+ }
3127
+ },
3128
+ "required": [
3129
+ "code",
3130
+ "message",
3131
+ "retryable",
3132
+ "recoveryAction"
3133
+ ],
3134
+ "additionalProperties": false
3135
+ }
3136
+ },
3137
+ "required": [
3138
+ "ok",
3139
+ "error"
3140
+ ],
3141
+ "additionalProperties": false
3142
+ }
3143
+ ]
3144
+ },
3145
+ "examples": [
3146
+ {
3147
+ "request": {
3148
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3149
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3150
+ "idempotencyKey": "example-request",
3151
+ "sql": "<sql>",
3152
+ "purpose": "<purpose>"
3153
+ },
3154
+ "success": {}
3155
+ }
3156
+ ]
3157
+ },
3158
+ {
3159
+ "name": "platform_checkout_artifact_app",
3160
+ "description": "Download exact saved app source through the owned session, verify archive hash/version/commit and extract regular source files into a new local directory. Missing source is never reconstructed.",
3161
+ "annotations": {
3162
+ "title": "Platform Checkout Artifact App",
3163
+ "readOnlyHint": false,
3164
+ "destructiveHint": false,
3165
+ "idempotentHint": true,
3166
+ "openWorldHint": true
3167
+ },
3168
+ "inputSchema": {
3169
+ "type": "object",
3170
+ "additionalProperties": false,
3171
+ "properties": {
3172
+ "sessionId": {
3173
+ "type": "string",
3174
+ "format": "uuid"
3175
+ },
3176
+ "targetDir": {
3177
+ "type": "string",
3178
+ "minLength": 1
3179
+ }
3180
+ },
3181
+ "required": [
3182
+ "sessionId",
3183
+ "targetDir"
3184
+ ]
3185
+ },
3186
+ "outputSchema": {
3187
+ "type": "object",
3188
+ "oneOf": [
3189
+ {
3190
+ "type": "object",
3191
+ "properties": {
3192
+ "ok": {
3193
+ "const": true
3194
+ }
3195
+ }
3196
+ },
3197
+ {
3198
+ "type": "object",
3199
+ "properties": {
3200
+ "ok": {
3201
+ "const": false
3202
+ },
3203
+ "error": {
3204
+ "type": "object",
3205
+ "properties": {
3206
+ "code": {
3207
+ "type": "string"
3208
+ },
3209
+ "message": {
3210
+ "type": "string"
3211
+ },
3212
+ "retryable": {
3213
+ "type": "boolean"
3214
+ },
3215
+ "recoveryAction": {
3216
+ "type": "string"
3217
+ }
3218
+ },
3219
+ "required": [
3220
+ "code",
3221
+ "message",
3222
+ "retryable",
3223
+ "recoveryAction"
3224
+ ],
3225
+ "additionalProperties": false
3226
+ }
3227
+ },
3228
+ "required": [
3229
+ "ok",
3230
+ "error"
3231
+ ],
3232
+ "additionalProperties": false
3233
+ }
3234
+ ]
3235
+ },
3236
+ "examples": [
3237
+ {
3238
+ "request": {
3239
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3240
+ "targetDir": "<targetDir>"
3241
+ },
3242
+ "success": {}
3243
+ }
3244
+ ]
3245
+ },
3246
+ {
3247
+ "name": "platform_list_asset_folders",
3248
+ "description": "List the session's permitted reusable asset folders.",
3249
+ "annotations": {
3250
+ "title": "Platform List Asset Folders",
3251
+ "readOnlyHint": true,
3252
+ "destructiveHint": false,
3253
+ "idempotentHint": true,
3254
+ "openWorldHint": true
3255
+ },
3256
+ "inputSchema": {
3257
+ "type": "object",
3258
+ "additionalProperties": false,
3259
+ "properties": {
3260
+ "sessionId": {
3261
+ "type": "string",
3262
+ "format": "uuid"
3263
+ }
3264
+ },
3265
+ "required": [
3266
+ "sessionId"
3267
+ ]
3268
+ },
3269
+ "outputSchema": {
3270
+ "type": "object",
3271
+ "oneOf": [
3272
+ {
3273
+ "type": "object",
3274
+ "properties": {
3275
+ "ok": {
3276
+ "const": true
3277
+ }
3278
+ }
3279
+ },
3280
+ {
3281
+ "type": "object",
3282
+ "properties": {
3283
+ "ok": {
3284
+ "const": false
3285
+ },
3286
+ "error": {
3287
+ "type": "object",
3288
+ "properties": {
3289
+ "code": {
3290
+ "type": "string"
3291
+ },
3292
+ "message": {
3293
+ "type": "string"
3294
+ },
3295
+ "retryable": {
3296
+ "type": "boolean"
3297
+ },
3298
+ "recoveryAction": {
3299
+ "type": "string"
3300
+ }
3301
+ },
3302
+ "required": [
3303
+ "code",
3304
+ "message",
3305
+ "retryable",
3306
+ "recoveryAction"
3307
+ ],
3308
+ "additionalProperties": false
3309
+ }
3310
+ },
3311
+ "required": [
3312
+ "ok",
3313
+ "error"
3314
+ ],
3315
+ "additionalProperties": false
3316
+ }
3317
+ ]
3318
+ },
3319
+ "examples": [
3320
+ {
3321
+ "request": {
3322
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3323
+ },
3324
+ "success": {}
3325
+ }
3326
+ ]
3327
+ },
3328
+ {
3329
+ "name": "platform_list_assets",
3330
+ "description": "List permitted reusable asset metadata with bounded pagination; excluded/deleted attachments are omitted.",
3331
+ "annotations": {
3332
+ "title": "Platform List Assets",
3333
+ "readOnlyHint": true,
3334
+ "destructiveHint": false,
3335
+ "idempotentHint": true,
3336
+ "openWorldHint": true
3337
+ },
3338
+ "inputSchema": {
3339
+ "type": "object",
3340
+ "additionalProperties": false,
3341
+ "properties": {
3342
+ "sessionId": {
3343
+ "type": "string",
3344
+ "format": "uuid"
3345
+ },
3346
+ "query": {
3347
+ "type": "string",
3348
+ "maxLength": 200
3349
+ },
3350
+ "folderId": {
3351
+ "type": "string",
3352
+ "format": "uuid"
3353
+ },
3354
+ "limit": {
3355
+ "type": "integer",
3356
+ "minimum": 1,
3357
+ "maximum": 500
3358
+ },
3359
+ "offset": {
3360
+ "type": "integer",
3361
+ "minimum": 0
3362
+ }
3363
+ },
3364
+ "required": [
3365
+ "sessionId"
3366
+ ]
3367
+ },
3368
+ "outputSchema": {
3369
+ "type": "object",
3370
+ "oneOf": [
3371
+ {
3372
+ "type": "object",
3373
+ "properties": {
3374
+ "ok": {
3375
+ "const": true
3376
+ }
3377
+ }
3378
+ },
3379
+ {
3380
+ "type": "object",
3381
+ "properties": {
3382
+ "ok": {
3383
+ "const": false
3384
+ },
3385
+ "error": {
3386
+ "type": "object",
3387
+ "properties": {
3388
+ "code": {
3389
+ "type": "string"
3390
+ },
3391
+ "message": {
3392
+ "type": "string"
3393
+ },
3394
+ "retryable": {
3395
+ "type": "boolean"
3396
+ },
3397
+ "recoveryAction": {
3398
+ "type": "string"
3399
+ }
3400
+ },
3401
+ "required": [
3402
+ "code",
3403
+ "message",
3404
+ "retryable",
3405
+ "recoveryAction"
3406
+ ],
3407
+ "additionalProperties": false
3408
+ }
3409
+ },
3410
+ "required": [
3411
+ "ok",
3412
+ "error"
3413
+ ],
3414
+ "additionalProperties": false
3415
+ }
3416
+ ]
3417
+ },
3418
+ "examples": [
3419
+ {
3420
+ "request": {
3421
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3422
+ },
3423
+ "success": {}
3424
+ }
3425
+ ]
3426
+ },
3427
+ {
3428
+ "name": "platform_materialize_assets",
3429
+ "description": "Download exactly selected approved files into a new local directory. Verify each authenticated transfer's hash and size; source and attachment budgets remain separate.",
3430
+ "annotations": {
3431
+ "title": "Platform Materialize Assets",
3432
+ "readOnlyHint": false,
3433
+ "destructiveHint": false,
3434
+ "idempotentHint": true,
3435
+ "openWorldHint": true
3436
+ },
3437
+ "inputSchema": {
3438
+ "type": "object",
3439
+ "additionalProperties": false,
3440
+ "properties": {
3441
+ "sessionId": {
3442
+ "type": "string",
3443
+ "format": "uuid"
3444
+ },
3445
+ "assetIds": {
3446
+ "type": "array",
3447
+ "minItems": 1,
3448
+ "maxItems": 50,
3449
+ "uniqueItems": true,
3450
+ "items": {
3451
+ "type": "string",
3452
+ "format": "uuid"
3453
+ }
3454
+ },
3455
+ "targetDir": {
3456
+ "type": "string",
3457
+ "minLength": 1
3458
+ }
3459
+ },
3460
+ "required": [
3461
+ "sessionId",
3462
+ "assetIds",
3463
+ "targetDir"
3464
+ ]
3465
+ },
3466
+ "outputSchema": {
3467
+ "type": "object",
3468
+ "oneOf": [
3469
+ {
3470
+ "type": "object",
3471
+ "properties": {
3472
+ "ok": {
3473
+ "const": true
3474
+ }
3475
+ }
3476
+ },
3477
+ {
3478
+ "type": "object",
3479
+ "properties": {
3480
+ "ok": {
3481
+ "const": false
3482
+ },
3483
+ "error": {
3484
+ "type": "object",
3485
+ "properties": {
3486
+ "code": {
3487
+ "type": "string"
3488
+ },
3489
+ "message": {
3490
+ "type": "string"
3491
+ },
3492
+ "retryable": {
3493
+ "type": "boolean"
3494
+ },
3495
+ "recoveryAction": {
3496
+ "type": "string"
3497
+ }
3498
+ },
3499
+ "required": [
3500
+ "code",
3501
+ "message",
3502
+ "retryable",
3503
+ "recoveryAction"
3504
+ ],
3505
+ "additionalProperties": false
3506
+ }
3507
+ },
3508
+ "required": [
3509
+ "ok",
3510
+ "error"
3511
+ ],
3512
+ "additionalProperties": false
3513
+ }
3514
+ ]
3515
+ },
3516
+ "examples": [
3517
+ {
3518
+ "request": {
3519
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3520
+ "assetIds": [
3521
+ "00000000-0000-4000-8000-000000000001"
3522
+ ],
3523
+ "targetDir": "<targetDir>"
3524
+ },
3525
+ "success": {}
3526
+ }
3527
+ ]
3528
+ },
3529
+ {
3530
+ "name": "platform_list_build_secrets",
3531
+ "description": "Read only exact operator-approved binding references for this session. Values are never retrieved. Authoring detach does not prove deployed runtime revocation.",
3532
+ "annotations": {
3533
+ "title": "Platform List Build Secrets",
3534
+ "readOnlyHint": true,
3535
+ "destructiveHint": false,
3536
+ "idempotentHint": true,
3537
+ "openWorldHint": true
3538
+ },
3539
+ "inputSchema": {
3540
+ "type": "object",
3541
+ "additionalProperties": false,
3542
+ "properties": {
3543
+ "sessionId": {
3544
+ "type": "string",
3545
+ "format": "uuid"
3546
+ }
3547
+ },
3548
+ "required": [
3549
+ "sessionId"
3550
+ ]
3551
+ },
3552
+ "outputSchema": {
3553
+ "type": "object",
3554
+ "oneOf": [
3555
+ {
3556
+ "type": "object",
3557
+ "properties": {
3558
+ "ok": {
3559
+ "const": true
3560
+ }
3561
+ }
3562
+ },
3563
+ {
3564
+ "type": "object",
3565
+ "properties": {
3566
+ "ok": {
3567
+ "const": false
3568
+ },
3569
+ "error": {
3570
+ "type": "object",
3571
+ "properties": {
3572
+ "code": {
3573
+ "type": "string"
3574
+ },
3575
+ "message": {
3576
+ "type": "string"
3577
+ },
3578
+ "retryable": {
3579
+ "type": "boolean"
3580
+ },
3581
+ "recoveryAction": {
3582
+ "type": "string"
3583
+ }
3584
+ },
3585
+ "required": [
3586
+ "code",
3587
+ "message",
3588
+ "retryable",
3589
+ "recoveryAction"
3590
+ ],
3591
+ "additionalProperties": false
3592
+ }
3593
+ },
3594
+ "required": [
3595
+ "ok",
3596
+ "error"
3597
+ ],
3598
+ "additionalProperties": false
3599
+ }
3600
+ ]
3601
+ },
3602
+ "examples": [
3603
+ {
3604
+ "request": {
3605
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3606
+ },
3607
+ "success": {}
3608
+ }
3609
+ ]
3610
+ },
3611
+ {
3612
+ "name": "platform_add_acceptance_check",
3613
+ "description": "Add a required acceptance check bound to this build session and deployed revision. A semantic control query requires separate Build data-verification consent.",
3614
+ "annotations": {
3615
+ "title": "Platform Add Acceptance Check",
3616
+ "readOnlyHint": false,
3617
+ "destructiveHint": false,
3618
+ "idempotentHint": true,
3619
+ "openWorldHint": true
3620
+ },
3621
+ "inputSchema": {
3622
+ "type": "object",
3623
+ "additionalProperties": false,
3624
+ "properties": {
3625
+ "sessionId": {
3626
+ "type": "string",
3627
+ "format": "uuid"
3628
+ },
3629
+ "artifactVersionId": {
3630
+ "type": "string",
3631
+ "format": "uuid"
3632
+ },
3633
+ "idempotencyKey": {
3634
+ "type": "string",
3635
+ "minLength": 1,
3636
+ "maxLength": 128,
3637
+ "pattern": "^[A-Za-z0-9._:-]+$"
3638
+ },
3639
+ "description": {
3640
+ "type": "string",
3641
+ "minLength": 3,
3642
+ "maxLength": 1000
3643
+ }
3644
+ },
3645
+ "required": [
3646
+ "sessionId",
3647
+ "artifactVersionId",
3648
+ "idempotencyKey",
3649
+ "description"
3650
+ ]
3651
+ },
3652
+ "outputSchema": {
3653
+ "type": "object",
3654
+ "oneOf": [
3655
+ {
3656
+ "type": "object",
3657
+ "properties": {
3658
+ "ok": {
3659
+ "const": true
3660
+ }
3661
+ }
3662
+ },
3663
+ {
3664
+ "type": "object",
3665
+ "properties": {
3666
+ "ok": {
3667
+ "const": false
3668
+ },
3669
+ "error": {
3670
+ "type": "object",
3671
+ "properties": {
3672
+ "code": {
3673
+ "type": "string"
3674
+ },
3675
+ "message": {
3676
+ "type": "string"
3677
+ },
3678
+ "retryable": {
3679
+ "type": "boolean"
3680
+ },
3681
+ "recoveryAction": {
3682
+ "type": "string"
3683
+ }
3684
+ },
3685
+ "required": [
3686
+ "code",
3687
+ "message",
3688
+ "retryable",
3689
+ "recoveryAction"
3690
+ ],
3691
+ "additionalProperties": false
3692
+ }
3693
+ },
3694
+ "required": [
3695
+ "ok",
3696
+ "error"
3697
+ ],
3698
+ "additionalProperties": false
3699
+ }
3700
+ ]
3701
+ },
3702
+ "examples": [
3703
+ {
3704
+ "request": {
3705
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3706
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3707
+ "idempotencyKey": "example-request",
3708
+ "description": "<description>"
3709
+ },
3710
+ "success": {}
3711
+ }
3712
+ ]
3713
+ },
3714
+ {
3715
+ "name": "platform_run_acceptance_checks",
3716
+ "description": "Run required acceptance checks for the exact current draft revision through the shared service.",
3717
+ "annotations": {
3718
+ "title": "Platform Run Acceptance Checks",
3719
+ "readOnlyHint": false,
3720
+ "destructiveHint": false,
3721
+ "idempotentHint": true,
3722
+ "openWorldHint": true
3723
+ },
3724
+ "inputSchema": {
3725
+ "type": "object",
3726
+ "additionalProperties": false,
3727
+ "properties": {
3728
+ "sessionId": {
3729
+ "type": "string",
3730
+ "format": "uuid"
3731
+ },
3732
+ "artifactVersionId": {
3733
+ "type": "string",
3734
+ "format": "uuid"
3735
+ },
3736
+ "idempotencyKey": {
3737
+ "type": "string",
3738
+ "minLength": 1,
3739
+ "maxLength": 128,
3740
+ "pattern": "^[A-Za-z0-9._:-]+$"
3741
+ }
3742
+ },
3743
+ "required": [
3744
+ "sessionId",
3745
+ "artifactVersionId",
3746
+ "idempotencyKey"
3747
+ ]
3748
+ },
3749
+ "outputSchema": {
3750
+ "type": "object",
3751
+ "oneOf": [
3752
+ {
3753
+ "type": "object",
3754
+ "properties": {
3755
+ "ok": {
3756
+ "const": true
3757
+ }
3758
+ }
3759
+ },
3760
+ {
3761
+ "type": "object",
3762
+ "properties": {
3763
+ "ok": {
3764
+ "const": false
3765
+ },
3766
+ "error": {
3767
+ "type": "object",
3768
+ "properties": {
3769
+ "code": {
3770
+ "type": "string"
3771
+ },
3772
+ "message": {
3773
+ "type": "string"
3774
+ },
3775
+ "retryable": {
3776
+ "type": "boolean"
3777
+ },
3778
+ "recoveryAction": {
3779
+ "type": "string"
3780
+ }
3781
+ },
3782
+ "required": [
3783
+ "code",
3784
+ "message",
3785
+ "retryable",
3786
+ "recoveryAction"
3787
+ ],
3788
+ "additionalProperties": false
3789
+ }
3790
+ },
3791
+ "required": [
3792
+ "ok",
3793
+ "error"
3794
+ ],
3795
+ "additionalProperties": false
3796
+ }
3797
+ ]
3798
+ },
3799
+ "examples": [
3800
+ {
3801
+ "request": {
3802
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3803
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3804
+ "idempotencyKey": "example-request"
3805
+ },
3806
+ "success": {}
3807
+ }
3808
+ ]
3809
+ },
3810
+ {
3811
+ "name": "platform_record_acceptance_review",
3812
+ "description": "Record the builder's acceptance review without impersonating the independent validator or removing required checks.",
3813
+ "annotations": {
3814
+ "title": "Platform Record Acceptance Review",
3815
+ "readOnlyHint": false,
3816
+ "destructiveHint": false,
3817
+ "idempotentHint": true,
3818
+ "openWorldHint": true
3819
+ },
3820
+ "inputSchema": {
3821
+ "type": "object",
3822
+ "additionalProperties": false,
3823
+ "properties": {
3824
+ "sessionId": {
3825
+ "type": "string",
3826
+ "format": "uuid"
3827
+ },
3828
+ "artifactVersionId": {
3829
+ "type": "string",
3830
+ "format": "uuid"
3831
+ },
3832
+ "idempotencyKey": {
3833
+ "type": "string",
3834
+ "minLength": 1,
3835
+ "maxLength": 128,
3836
+ "pattern": "^[A-Za-z0-9._:-]+$"
3837
+ },
3838
+ "checkId": {
3839
+ "type": "string",
3840
+ "format": "uuid"
3841
+ },
3842
+ "status": {
3843
+ "type": "string",
3844
+ "enum": [
3845
+ "passed",
3846
+ "failed"
3847
+ ]
3848
+ },
3849
+ "summary": {
3850
+ "type": "string",
3851
+ "minLength": 3,
3852
+ "maxLength": 2000
3853
+ }
3854
+ },
3855
+ "required": [
3856
+ "sessionId",
3857
+ "artifactVersionId",
3858
+ "idempotencyKey",
3859
+ "checkId",
3860
+ "status",
3861
+ "summary"
3862
+ ]
3863
+ },
3864
+ "outputSchema": {
3865
+ "type": "object",
3866
+ "oneOf": [
3867
+ {
3868
+ "type": "object",
3869
+ "properties": {
3870
+ "ok": {
3871
+ "const": true
3872
+ }
3873
+ }
3874
+ },
3875
+ {
3876
+ "type": "object",
3877
+ "properties": {
3878
+ "ok": {
3879
+ "const": false
3880
+ },
3881
+ "error": {
3882
+ "type": "object",
3883
+ "properties": {
3884
+ "code": {
3885
+ "type": "string"
3886
+ },
3887
+ "message": {
3888
+ "type": "string"
3889
+ },
3890
+ "retryable": {
3891
+ "type": "boolean"
3892
+ },
3893
+ "recoveryAction": {
3894
+ "type": "string"
3895
+ }
3896
+ },
3897
+ "required": [
3898
+ "code",
3899
+ "message",
3900
+ "retryable",
3901
+ "recoveryAction"
3902
+ ],
3903
+ "additionalProperties": false
3904
+ }
3905
+ },
3906
+ "required": [
3907
+ "ok",
3908
+ "error"
3909
+ ],
3910
+ "additionalProperties": false
3911
+ }
3912
+ ]
3913
+ },
3914
+ "examples": [
3915
+ {
3916
+ "request": {
3917
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3918
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3919
+ "idempotencyKey": "example-request",
3920
+ "checkId": "00000000-0000-4000-8000-000000000001",
3921
+ "status": "passed",
3922
+ "summary": "<summary>"
3923
+ },
3924
+ "success": {}
3925
+ }
3926
+ ]
3927
+ },
3928
+ {
3929
+ "name": "platform_prepare_artifact_validation",
3930
+ "description": "Prepare validation evidence for the exact private draft revision; missing required checks block readiness.",
3931
+ "annotations": {
3932
+ "title": "Platform Prepare Artifact Validation",
3933
+ "readOnlyHint": true,
3934
+ "destructiveHint": false,
3935
+ "idempotentHint": true,
3936
+ "openWorldHint": true
3937
+ },
3938
+ "inputSchema": {
3939
+ "type": "object",
3940
+ "additionalProperties": false,
3941
+ "properties": {
3942
+ "sessionId": {
3943
+ "type": "string",
3944
+ "format": "uuid"
3945
+ },
3946
+ "artifactVersionId": {
3947
+ "type": "string",
3948
+ "format": "uuid"
3949
+ },
3950
+ "deploymentRecordId": {
3951
+ "type": "string",
3952
+ "format": "uuid"
3953
+ }
3954
+ },
3955
+ "required": [
3956
+ "sessionId",
3957
+ "artifactVersionId",
3958
+ "deploymentRecordId"
3959
+ ]
3960
+ },
3961
+ "outputSchema": {
3962
+ "type": "object",
3963
+ "oneOf": [
3964
+ {
3965
+ "type": "object",
3966
+ "properties": {
3967
+ "ok": {
3968
+ "const": true
3969
+ }
3970
+ }
3971
+ },
3972
+ {
3973
+ "type": "object",
3974
+ "properties": {
3975
+ "ok": {
3976
+ "const": false
3977
+ },
3978
+ "error": {
3979
+ "type": "object",
3980
+ "properties": {
3981
+ "code": {
3982
+ "type": "string"
3983
+ },
3984
+ "message": {
3985
+ "type": "string"
3986
+ },
3987
+ "retryable": {
3988
+ "type": "boolean"
3989
+ },
3990
+ "recoveryAction": {
3991
+ "type": "string"
3992
+ }
3993
+ },
3994
+ "required": [
3995
+ "code",
3996
+ "message",
3997
+ "retryable",
3998
+ "recoveryAction"
3999
+ ],
4000
+ "additionalProperties": false
4001
+ }
4002
+ },
4003
+ "required": [
4004
+ "ok",
4005
+ "error"
4006
+ ],
4007
+ "additionalProperties": false
4008
+ }
4009
+ ]
4010
+ },
4011
+ "examples": [
4012
+ {
4013
+ "request": {
4014
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4015
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
4016
+ "deploymentRecordId": "00000000-0000-4000-8000-000000000001"
4017
+ },
4018
+ "success": {}
4019
+ }
4020
+ ]
4021
+ },
4022
+ {
4023
+ "name": "platform_request_artifact_validation",
4024
+ "description": "Request the independent reviewer for the exact deployment and bounded evidence. Returns durable operation status; unavailable infrastructure leaves operator review required, never approval.",
4025
+ "annotations": {
4026
+ "title": "Platform Request Artifact Validation",
4027
+ "readOnlyHint": false,
4028
+ "destructiveHint": false,
4029
+ "idempotentHint": true,
4030
+ "openWorldHint": true
4031
+ },
4032
+ "inputSchema": {
4033
+ "type": "object",
4034
+ "additionalProperties": false,
4035
+ "properties": {
4036
+ "sessionId": {
4037
+ "type": "string",
4038
+ "format": "uuid"
4039
+ },
4040
+ "artifactVersionId": {
4041
+ "type": "string",
4042
+ "format": "uuid"
4043
+ },
4044
+ "idempotencyKey": {
4045
+ "type": "string",
4046
+ "minLength": 1,
4047
+ "maxLength": 128,
4048
+ "pattern": "^[A-Za-z0-9._:-]+$"
4049
+ },
4050
+ "deploymentRecordId": {
4051
+ "type": "string",
4052
+ "format": "uuid"
4053
+ },
4054
+ "summary": {
4055
+ "type": "string",
4056
+ "minLength": 3,
4057
+ "maxLength": 4000
4058
+ },
4059
+ "waitMs": {
4060
+ "type": "integer",
4061
+ "minimum": 0,
4062
+ "maximum": 1000
4063
+ },
4064
+ "buildOk": {
4065
+ "type": "boolean"
4066
+ },
4067
+ "typecheckOk": {
4068
+ "type": "boolean"
4069
+ },
4070
+ "docImpact": {
4071
+ "type": "string",
4072
+ "enum": [
4073
+ "material",
4074
+ "none"
4075
+ ]
4076
+ },
4077
+ "docImpactNotes": {
4078
+ "type": "string",
4079
+ "minLength": 12,
4080
+ "maxLength": 2000
4081
+ },
4082
+ "visualReview": {
4083
+ "type": "object",
4084
+ "additionalProperties": true
4085
+ },
4086
+ "dataValidation": {
4087
+ "type": "object",
4088
+ "additionalProperties": true
4089
+ }
4090
+ },
4091
+ "required": [
4092
+ "sessionId",
4093
+ "artifactVersionId",
4094
+ "idempotencyKey",
4095
+ "deploymentRecordId",
4096
+ "summary",
4097
+ "docImpact",
4098
+ "docImpactNotes",
4099
+ "visualReview"
4100
+ ]
4101
+ },
4102
+ "outputSchema": {
4103
+ "type": "object",
4104
+ "oneOf": [
4105
+ {
4106
+ "type": "object",
4107
+ "properties": {
4108
+ "ok": {
4109
+ "const": true
4110
+ }
4111
+ }
4112
+ },
4113
+ {
4114
+ "type": "object",
4115
+ "properties": {
4116
+ "ok": {
4117
+ "const": false
4118
+ },
4119
+ "error": {
4120
+ "type": "object",
4121
+ "properties": {
4122
+ "code": {
4123
+ "type": "string"
4124
+ },
4125
+ "message": {
4126
+ "type": "string"
4127
+ },
4128
+ "retryable": {
4129
+ "type": "boolean"
4130
+ },
4131
+ "recoveryAction": {
4132
+ "type": "string"
4133
+ }
4134
+ },
4135
+ "required": [
4136
+ "code",
4137
+ "message",
4138
+ "retryable",
4139
+ "recoveryAction"
4140
+ ],
4141
+ "additionalProperties": false
4142
+ }
4143
+ },
4144
+ "required": [
4145
+ "ok",
4146
+ "error"
4147
+ ],
4148
+ "additionalProperties": false
4149
+ }
4150
+ ]
4151
+ },
4152
+ "examples": [
4153
+ {
4154
+ "request": {
4155
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4156
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
4157
+ "idempotencyKey": "example-request",
4158
+ "deploymentRecordId": "00000000-0000-4000-8000-000000000001",
4159
+ "summary": "<summary>",
4160
+ "docImpact": "material",
4161
+ "docImpactNotes": "<docImpactNotes>",
4162
+ "visualReview": {}
4163
+ },
4164
+ "success": {}
4165
+ }
4166
+ ]
4167
+ },
4168
+ {
4169
+ "name": "platform_artifact_validation_status",
4170
+ "description": "Read the original validation result and pending prompts without starting another reviewer or deploy. Current authorization is rechecked before evidence delivery.",
4171
+ "annotations": {
4172
+ "title": "Platform Artifact Validation Status",
4173
+ "readOnlyHint": true,
4174
+ "destructiveHint": false,
4175
+ "idempotentHint": true,
4176
+ "openWorldHint": true
4177
+ },
4178
+ "inputSchema": {
4179
+ "type": "object",
4180
+ "additionalProperties": false,
4181
+ "properties": {
4182
+ "sessionId": {
4183
+ "type": "string",
4184
+ "format": "uuid"
4185
+ },
4186
+ "operationId": {
4187
+ "type": "string",
4188
+ "format": "uuid"
4189
+ }
4190
+ },
4191
+ "required": [
4192
+ "sessionId",
4193
+ "operationId"
4194
+ ]
4195
+ },
4196
+ "outputSchema": {
4197
+ "type": "object",
4198
+ "oneOf": [
4199
+ {
4200
+ "type": "object",
4201
+ "properties": {
4202
+ "ok": {
4203
+ "const": true
4204
+ }
4205
+ }
4206
+ },
4207
+ {
4208
+ "type": "object",
4209
+ "properties": {
4210
+ "ok": {
4211
+ "const": false
4212
+ },
4213
+ "error": {
4214
+ "type": "object",
4215
+ "properties": {
4216
+ "code": {
4217
+ "type": "string"
4218
+ },
4219
+ "message": {
4220
+ "type": "string"
4221
+ },
4222
+ "retryable": {
4223
+ "type": "boolean"
4224
+ },
4225
+ "recoveryAction": {
4226
+ "type": "string"
4227
+ }
4228
+ },
4229
+ "required": [
4230
+ "code",
4231
+ "message",
4232
+ "retryable",
4233
+ "recoveryAction"
4234
+ ],
4235
+ "additionalProperties": false
4236
+ }
4237
+ },
4238
+ "required": [
4239
+ "ok",
4240
+ "error"
4241
+ ],
4242
+ "additionalProperties": false
4243
+ }
4244
+ ]
4245
+ },
4246
+ "examples": [
4247
+ {
4248
+ "request": {
4249
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4250
+ "operationId": "00000000-0000-4000-8000-000000000001"
4251
+ },
4252
+ "success": {}
4253
+ }
4254
+ ]
4255
+ },
4256
+ {
4257
+ "name": "platform_answer_operator_prompt",
4258
+ "description": "Answer the exact saved operator prompt on the original review operation. Appends guidance and reopens the same eligible session; cannot approve validation or widen the saved grant.",
4259
+ "annotations": {
4260
+ "title": "Platform Answer Operator Prompt",
4261
+ "readOnlyHint": false,
4262
+ "destructiveHint": false,
4263
+ "idempotentHint": true,
4264
+ "openWorldHint": true
4265
+ },
4266
+ "inputSchema": {
4267
+ "type": "object",
4268
+ "additionalProperties": false,
4269
+ "properties": {
4270
+ "sessionId": {
4271
+ "type": "string",
4272
+ "format": "uuid"
4273
+ },
4274
+ "operationId": {
4275
+ "type": "string",
4276
+ "format": "uuid"
4277
+ },
4278
+ "promptId": {
4279
+ "type": "string",
4280
+ "format": "uuid"
4281
+ },
4282
+ "idempotencyKey": {
4283
+ "type": "string",
4284
+ "minLength": 1,
4285
+ "maxLength": 128,
4286
+ "pattern": "^[A-Za-z0-9._:-]+$"
4287
+ },
4288
+ "message": {
4289
+ "type": "string",
4290
+ "minLength": 3,
4291
+ "maxLength": 4000
4292
+ }
4293
+ },
4294
+ "required": [
4295
+ "sessionId",
4296
+ "operationId",
4297
+ "promptId",
4298
+ "idempotencyKey",
4299
+ "message"
4300
+ ]
4301
+ },
4302
+ "outputSchema": {
4303
+ "type": "object",
4304
+ "oneOf": [
4305
+ {
4306
+ "type": "object",
4307
+ "properties": {
4308
+ "ok": {
4309
+ "const": true
4310
+ }
4311
+ }
4312
+ },
4313
+ {
4314
+ "type": "object",
4315
+ "properties": {
4316
+ "ok": {
4317
+ "const": false
4318
+ },
4319
+ "error": {
4320
+ "type": "object",
4321
+ "properties": {
4322
+ "code": {
4323
+ "type": "string"
4324
+ },
4325
+ "message": {
4326
+ "type": "string"
4327
+ },
4328
+ "retryable": {
4329
+ "type": "boolean"
4330
+ },
4331
+ "recoveryAction": {
4332
+ "type": "string"
4333
+ }
4334
+ },
4335
+ "required": [
4336
+ "code",
4337
+ "message",
4338
+ "retryable",
4339
+ "recoveryAction"
4340
+ ],
4341
+ "additionalProperties": false
4342
+ }
4343
+ },
4344
+ "required": [
4345
+ "ok",
4346
+ "error"
4347
+ ],
4348
+ "additionalProperties": false
4349
+ }
4350
+ ]
4351
+ },
4352
+ "examples": [
4353
+ {
4354
+ "request": {
4355
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4356
+ "operationId": "00000000-0000-4000-8000-000000000001",
4357
+ "promptId": "00000000-0000-4000-8000-000000000001",
4358
+ "idempotencyKey": "example-request",
4359
+ "message": "<message>"
4360
+ },
4361
+ "success": {}
4362
+ }
4363
+ ]
2123
4364
  }
2124
4365
  ]
2125
4366
  }