@topline-build/harness-mcp 0.5.3 → 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
 
3
3
  > Generated from `src/index.ts#BUILD_MCP_TOOLS`. Do not edit this file by hand.
4
4
 
5
- Package: `@topline-build/harness-mcp@0.5.3`
5
+ Package: `@topline-build/harness-mcp@0.6.0`
6
6
  Transport: `stdio`
7
7
  Default protocol: `2025-11-25`
8
8
  Canonical guide: https://topline.build/docs/build-mcp-guide
@@ -359,6 +359,31 @@ Input schema:
359
359
  "minLength": 1,
360
360
  "maxLength": 128,
361
361
  "description": "Optional stable retry key; generated deterministically when omitted."
362
+ },
363
+ "sessionId": {
364
+ "type": "string",
365
+ "format": "uuid"
366
+ },
367
+ "artifactVersionId": {
368
+ "type": "string",
369
+ "format": "uuid",
370
+ "description": "Exact current version from the session or checkout; required with sessionId."
371
+ },
372
+ "idempotencyKey": {
373
+ "type": "string",
374
+ "minLength": 1,
375
+ "maxLength": 128,
376
+ "pattern": "^[A-Za-z0-9._:-]+$"
377
+ },
378
+ "inspectedSourceHash": {
379
+ "type": "string",
380
+ "pattern": "^[0-9a-fA-F]{64}$",
381
+ "description": "Echo the session/source checkout hash; required with sessionId. expectedBundleSha256 separately pins the newly inspected local upload."
382
+ },
383
+ "platformAppDir": {
384
+ "type": "string",
385
+ "minLength": 1,
386
+ "description": "Saved remote app root from an existing-app checkout. Session mode only; preserve this when the local checkout directory has a different name."
362
387
  }
363
388
  },
364
389
  "required": [
@@ -495,6 +520,11 @@ Input schema:
495
520
  "appDir": {
496
521
  "type": "string",
497
522
  "minLength": 1
523
+ },
524
+ "platformAppDir": {
525
+ "type": "string",
526
+ "minLength": 1,
527
+ "description": "Preserve the saved remote source root returned by checkout when inspecting an existing app."
498
528
  }
499
529
  },
500
530
  "required": [
@@ -2710,3 +2740,1876 @@ Output schema:
2710
2740
  ]
2711
2741
  }
2712
2742
  ```
2743
+
2744
+ ### `platform_capability_status`
2745
+
2746
+ 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.
2747
+
2748
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
2749
+
2750
+ Example request:
2751
+
2752
+ ```json
2753
+ {}
2754
+ ```
2755
+
2756
+ Example success:
2757
+
2758
+ ```json
2759
+ {}
2760
+ ```
2761
+
2762
+ Input schema:
2763
+
2764
+ ```json
2765
+ {
2766
+ "type": "object",
2767
+ "additionalProperties": false,
2768
+ "properties": {},
2769
+ "required": []
2770
+ }
2771
+ ```
2772
+
2773
+ Output schema:
2774
+
2775
+ ```json
2776
+ {
2777
+ "type": "object",
2778
+ "oneOf": [
2779
+ {
2780
+ "type": "object",
2781
+ "properties": {
2782
+ "ok": {
2783
+ "const": true
2784
+ }
2785
+ }
2786
+ },
2787
+ {
2788
+ "type": "object",
2789
+ "properties": {
2790
+ "ok": {
2791
+ "const": false
2792
+ },
2793
+ "error": {
2794
+ "type": "object",
2795
+ "properties": {
2796
+ "code": {
2797
+ "type": "string"
2798
+ },
2799
+ "message": {
2800
+ "type": "string"
2801
+ },
2802
+ "retryable": {
2803
+ "type": "boolean"
2804
+ },
2805
+ "recoveryAction": {
2806
+ "type": "string"
2807
+ }
2808
+ },
2809
+ "required": [
2810
+ "code",
2811
+ "message",
2812
+ "retryable",
2813
+ "recoveryAction"
2814
+ ],
2815
+ "additionalProperties": false
2816
+ }
2817
+ },
2818
+ "required": [
2819
+ "ok",
2820
+ "error"
2821
+ ],
2822
+ "additionalProperties": false
2823
+ }
2824
+ ]
2825
+ }
2826
+ ```
2827
+
2828
+ ### `platform_start_build_session`
2829
+
2830
+ 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.
2831
+
2832
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
2833
+
2834
+ Example request:
2835
+
2836
+ ```json
2837
+ {
2838
+ "idempotencyKey": "example-request",
2839
+ "budgetCents": 0,
2840
+ "brief": "<brief>"
2841
+ }
2842
+ ```
2843
+
2844
+ Example success:
2845
+
2846
+ ```json
2847
+ {}
2848
+ ```
2849
+
2850
+ Input schema:
2851
+
2852
+ ```json
2853
+ {
2854
+ "type": "object",
2855
+ "additionalProperties": false,
2856
+ "properties": {
2857
+ "idempotencyKey": {
2858
+ "type": "string",
2859
+ "minLength": 1,
2860
+ "maxLength": 128,
2861
+ "pattern": "^[A-Za-z0-9._:-]+$"
2862
+ },
2863
+ "artifactId": {
2864
+ "type": "string",
2865
+ "format": "uuid"
2866
+ },
2867
+ "artifactVersionId": {
2868
+ "type": "string",
2869
+ "format": "uuid"
2870
+ },
2871
+ "manifest": {
2872
+ "type": "object"
2873
+ },
2874
+ "projectId": {
2875
+ "type": "string",
2876
+ "format": "uuid"
2877
+ },
2878
+ "owningConversationId": {
2879
+ "type": "string",
2880
+ "format": "uuid"
2881
+ },
2882
+ "budgetCents": {
2883
+ "type": "integer",
2884
+ "minimum": 0,
2885
+ "maximum": 100000
2886
+ },
2887
+ "brief": {
2888
+ "type": "string",
2889
+ "minLength": 3,
2890
+ "maxLength": 4000
2891
+ }
2892
+ },
2893
+ "required": [
2894
+ "idempotencyKey",
2895
+ "budgetCents",
2896
+ "brief"
2897
+ ]
2898
+ }
2899
+ ```
2900
+
2901
+ Output schema:
2902
+
2903
+ ```json
2904
+ {
2905
+ "type": "object",
2906
+ "oneOf": [
2907
+ {
2908
+ "type": "object",
2909
+ "properties": {
2910
+ "ok": {
2911
+ "const": true
2912
+ }
2913
+ }
2914
+ },
2915
+ {
2916
+ "type": "object",
2917
+ "properties": {
2918
+ "ok": {
2919
+ "const": false
2920
+ },
2921
+ "error": {
2922
+ "type": "object",
2923
+ "properties": {
2924
+ "code": {
2925
+ "type": "string"
2926
+ },
2927
+ "message": {
2928
+ "type": "string"
2929
+ },
2930
+ "retryable": {
2931
+ "type": "boolean"
2932
+ },
2933
+ "recoveryAction": {
2934
+ "type": "string"
2935
+ }
2936
+ },
2937
+ "required": [
2938
+ "code",
2939
+ "message",
2940
+ "retryable",
2941
+ "recoveryAction"
2942
+ ],
2943
+ "additionalProperties": false
2944
+ }
2945
+ },
2946
+ "required": [
2947
+ "ok",
2948
+ "error"
2949
+ ],
2950
+ "additionalProperties": false
2951
+ }
2952
+ ]
2953
+ }
2954
+ ```
2955
+
2956
+ ### `platform_read_build_session`
2957
+
2958
+ Read the owned build session and original pending operations. Does not start another coder or deployment.
2959
+
2960
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
2961
+
2962
+ Example request:
2963
+
2964
+ ```json
2965
+ {
2966
+ "sessionId": "00000000-0000-4000-8000-000000000001"
2967
+ }
2968
+ ```
2969
+
2970
+ Example success:
2971
+
2972
+ ```json
2973
+ {}
2974
+ ```
2975
+
2976
+ Input schema:
2977
+
2978
+ ```json
2979
+ {
2980
+ "type": "object",
2981
+ "additionalProperties": false,
2982
+ "properties": {
2983
+ "sessionId": {
2984
+ "type": "string",
2985
+ "format": "uuid"
2986
+ }
2987
+ },
2988
+ "required": [
2989
+ "sessionId"
2990
+ ]
2991
+ }
2992
+ ```
2993
+
2994
+ Output schema:
2995
+
2996
+ ```json
2997
+ {
2998
+ "type": "object",
2999
+ "oneOf": [
3000
+ {
3001
+ "type": "object",
3002
+ "properties": {
3003
+ "ok": {
3004
+ "const": true
3005
+ }
3006
+ }
3007
+ },
3008
+ {
3009
+ "type": "object",
3010
+ "properties": {
3011
+ "ok": {
3012
+ "const": false
3013
+ },
3014
+ "error": {
3015
+ "type": "object",
3016
+ "properties": {
3017
+ "code": {
3018
+ "type": "string"
3019
+ },
3020
+ "message": {
3021
+ "type": "string"
3022
+ },
3023
+ "retryable": {
3024
+ "type": "boolean"
3025
+ },
3026
+ "recoveryAction": {
3027
+ "type": "string"
3028
+ }
3029
+ },
3030
+ "required": [
3031
+ "code",
3032
+ "message",
3033
+ "retryable",
3034
+ "recoveryAction"
3035
+ ],
3036
+ "additionalProperties": false
3037
+ }
3038
+ },
3039
+ "required": [
3040
+ "ok",
3041
+ "error"
3042
+ ],
3043
+ "additionalProperties": false
3044
+ }
3045
+ ]
3046
+ }
3047
+ ```
3048
+
3049
+ ### `platform_close_build_session`
3050
+
3051
+ Stop new authoring and request pending-operation cancellation. Unknown effects retain their reservation; cancellation does not undo committed writes.
3052
+
3053
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
3054
+
3055
+ Example request:
3056
+
3057
+ ```json
3058
+ {
3059
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3060
+ }
3061
+ ```
3062
+
3063
+ Example success:
3064
+
3065
+ ```json
3066
+ {}
3067
+ ```
3068
+
3069
+ Input schema:
3070
+
3071
+ ```json
3072
+ {
3073
+ "type": "object",
3074
+ "additionalProperties": false,
3075
+ "properties": {
3076
+ "sessionId": {
3077
+ "type": "string",
3078
+ "format": "uuid"
3079
+ }
3080
+ },
3081
+ "required": [
3082
+ "sessionId"
3083
+ ]
3084
+ }
3085
+ ```
3086
+
3087
+ Output schema:
3088
+
3089
+ ```json
3090
+ {
3091
+ "type": "object",
3092
+ "oneOf": [
3093
+ {
3094
+ "type": "object",
3095
+ "properties": {
3096
+ "ok": {
3097
+ "const": true
3098
+ }
3099
+ }
3100
+ },
3101
+ {
3102
+ "type": "object",
3103
+ "properties": {
3104
+ "ok": {
3105
+ "const": false
3106
+ },
3107
+ "error": {
3108
+ "type": "object",
3109
+ "properties": {
3110
+ "code": {
3111
+ "type": "string"
3112
+ },
3113
+ "message": {
3114
+ "type": "string"
3115
+ },
3116
+ "retryable": {
3117
+ "type": "boolean"
3118
+ },
3119
+ "recoveryAction": {
3120
+ "type": "string"
3121
+ }
3122
+ },
3123
+ "required": [
3124
+ "code",
3125
+ "message",
3126
+ "retryable",
3127
+ "recoveryAction"
3128
+ ],
3129
+ "additionalProperties": false
3130
+ }
3131
+ },
3132
+ "required": [
3133
+ "ok",
3134
+ "error"
3135
+ ],
3136
+ "additionalProperties": false
3137
+ }
3138
+ ]
3139
+ }
3140
+ ```
3141
+
3142
+ ### `platform_run_artifact_workspace_sql`
3143
+
3144
+ 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.
3145
+
3146
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
3147
+
3148
+ Example request:
3149
+
3150
+ ```json
3151
+ {
3152
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3153
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3154
+ "idempotencyKey": "example-request",
3155
+ "sql": "<sql>",
3156
+ "purpose": "<purpose>"
3157
+ }
3158
+ ```
3159
+
3160
+ Example success:
3161
+
3162
+ ```json
3163
+ {}
3164
+ ```
3165
+
3166
+ Input schema:
3167
+
3168
+ ```json
3169
+ {
3170
+ "type": "object",
3171
+ "additionalProperties": false,
3172
+ "properties": {
3173
+ "sessionId": {
3174
+ "type": "string",
3175
+ "format": "uuid"
3176
+ },
3177
+ "artifactVersionId": {
3178
+ "type": "string",
3179
+ "format": "uuid"
3180
+ },
3181
+ "idempotencyKey": {
3182
+ "type": "string",
3183
+ "minLength": 1,
3184
+ "maxLength": 128,
3185
+ "pattern": "^[A-Za-z0-9._:-]+$"
3186
+ },
3187
+ "sql": {
3188
+ "type": "string",
3189
+ "minLength": 1,
3190
+ "maxLength": 20000
3191
+ },
3192
+ "purpose": {
3193
+ "type": "string",
3194
+ "minLength": 3,
3195
+ "maxLength": 500
3196
+ },
3197
+ "params": {
3198
+ "type": "object",
3199
+ "additionalProperties": true
3200
+ },
3201
+ "maxRows": {
3202
+ "type": "integer",
3203
+ "minimum": 1,
3204
+ "maximum": 5000
3205
+ },
3206
+ "documentation": {
3207
+ "type": "object"
3208
+ },
3209
+ "columnDocumentation": {
3210
+ "type": "object"
3211
+ }
3212
+ },
3213
+ "required": [
3214
+ "sessionId",
3215
+ "artifactVersionId",
3216
+ "idempotencyKey",
3217
+ "sql",
3218
+ "purpose"
3219
+ ]
3220
+ }
3221
+ ```
3222
+
3223
+ Output schema:
3224
+
3225
+ ```json
3226
+ {
3227
+ "type": "object",
3228
+ "oneOf": [
3229
+ {
3230
+ "type": "object",
3231
+ "properties": {
3232
+ "ok": {
3233
+ "const": true
3234
+ }
3235
+ }
3236
+ },
3237
+ {
3238
+ "type": "object",
3239
+ "properties": {
3240
+ "ok": {
3241
+ "const": false
3242
+ },
3243
+ "error": {
3244
+ "type": "object",
3245
+ "properties": {
3246
+ "code": {
3247
+ "type": "string"
3248
+ },
3249
+ "message": {
3250
+ "type": "string"
3251
+ },
3252
+ "retryable": {
3253
+ "type": "boolean"
3254
+ },
3255
+ "recoveryAction": {
3256
+ "type": "string"
3257
+ }
3258
+ },
3259
+ "required": [
3260
+ "code",
3261
+ "message",
3262
+ "retryable",
3263
+ "recoveryAction"
3264
+ ],
3265
+ "additionalProperties": false
3266
+ }
3267
+ },
3268
+ "required": [
3269
+ "ok",
3270
+ "error"
3271
+ ],
3272
+ "additionalProperties": false
3273
+ }
3274
+ ]
3275
+ }
3276
+ ```
3277
+
3278
+ ### `platform_checkout_artifact_app`
3279
+
3280
+ 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.
3281
+
3282
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
3283
+
3284
+ Example request:
3285
+
3286
+ ```json
3287
+ {
3288
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3289
+ "targetDir": "<targetDir>"
3290
+ }
3291
+ ```
3292
+
3293
+ Example success:
3294
+
3295
+ ```json
3296
+ {}
3297
+ ```
3298
+
3299
+ Input schema:
3300
+
3301
+ ```json
3302
+ {
3303
+ "type": "object",
3304
+ "additionalProperties": false,
3305
+ "properties": {
3306
+ "sessionId": {
3307
+ "type": "string",
3308
+ "format": "uuid"
3309
+ },
3310
+ "targetDir": {
3311
+ "type": "string",
3312
+ "minLength": 1
3313
+ }
3314
+ },
3315
+ "required": [
3316
+ "sessionId",
3317
+ "targetDir"
3318
+ ]
3319
+ }
3320
+ ```
3321
+
3322
+ Output schema:
3323
+
3324
+ ```json
3325
+ {
3326
+ "type": "object",
3327
+ "oneOf": [
3328
+ {
3329
+ "type": "object",
3330
+ "properties": {
3331
+ "ok": {
3332
+ "const": true
3333
+ }
3334
+ }
3335
+ },
3336
+ {
3337
+ "type": "object",
3338
+ "properties": {
3339
+ "ok": {
3340
+ "const": false
3341
+ },
3342
+ "error": {
3343
+ "type": "object",
3344
+ "properties": {
3345
+ "code": {
3346
+ "type": "string"
3347
+ },
3348
+ "message": {
3349
+ "type": "string"
3350
+ },
3351
+ "retryable": {
3352
+ "type": "boolean"
3353
+ },
3354
+ "recoveryAction": {
3355
+ "type": "string"
3356
+ }
3357
+ },
3358
+ "required": [
3359
+ "code",
3360
+ "message",
3361
+ "retryable",
3362
+ "recoveryAction"
3363
+ ],
3364
+ "additionalProperties": false
3365
+ }
3366
+ },
3367
+ "required": [
3368
+ "ok",
3369
+ "error"
3370
+ ],
3371
+ "additionalProperties": false
3372
+ }
3373
+ ]
3374
+ }
3375
+ ```
3376
+
3377
+ ### `platform_list_asset_folders`
3378
+
3379
+ List the session's permitted reusable asset folders.
3380
+
3381
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
3382
+
3383
+ Example request:
3384
+
3385
+ ```json
3386
+ {
3387
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3388
+ }
3389
+ ```
3390
+
3391
+ Example success:
3392
+
3393
+ ```json
3394
+ {}
3395
+ ```
3396
+
3397
+ Input schema:
3398
+
3399
+ ```json
3400
+ {
3401
+ "type": "object",
3402
+ "additionalProperties": false,
3403
+ "properties": {
3404
+ "sessionId": {
3405
+ "type": "string",
3406
+ "format": "uuid"
3407
+ }
3408
+ },
3409
+ "required": [
3410
+ "sessionId"
3411
+ ]
3412
+ }
3413
+ ```
3414
+
3415
+ Output schema:
3416
+
3417
+ ```json
3418
+ {
3419
+ "type": "object",
3420
+ "oneOf": [
3421
+ {
3422
+ "type": "object",
3423
+ "properties": {
3424
+ "ok": {
3425
+ "const": true
3426
+ }
3427
+ }
3428
+ },
3429
+ {
3430
+ "type": "object",
3431
+ "properties": {
3432
+ "ok": {
3433
+ "const": false
3434
+ },
3435
+ "error": {
3436
+ "type": "object",
3437
+ "properties": {
3438
+ "code": {
3439
+ "type": "string"
3440
+ },
3441
+ "message": {
3442
+ "type": "string"
3443
+ },
3444
+ "retryable": {
3445
+ "type": "boolean"
3446
+ },
3447
+ "recoveryAction": {
3448
+ "type": "string"
3449
+ }
3450
+ },
3451
+ "required": [
3452
+ "code",
3453
+ "message",
3454
+ "retryable",
3455
+ "recoveryAction"
3456
+ ],
3457
+ "additionalProperties": false
3458
+ }
3459
+ },
3460
+ "required": [
3461
+ "ok",
3462
+ "error"
3463
+ ],
3464
+ "additionalProperties": false
3465
+ }
3466
+ ]
3467
+ }
3468
+ ```
3469
+
3470
+ ### `platform_list_assets`
3471
+
3472
+ List permitted reusable asset metadata with bounded pagination; excluded/deleted attachments are omitted.
3473
+
3474
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
3475
+
3476
+ Example request:
3477
+
3478
+ ```json
3479
+ {
3480
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3481
+ }
3482
+ ```
3483
+
3484
+ Example success:
3485
+
3486
+ ```json
3487
+ {}
3488
+ ```
3489
+
3490
+ Input schema:
3491
+
3492
+ ```json
3493
+ {
3494
+ "type": "object",
3495
+ "additionalProperties": false,
3496
+ "properties": {
3497
+ "sessionId": {
3498
+ "type": "string",
3499
+ "format": "uuid"
3500
+ },
3501
+ "query": {
3502
+ "type": "string",
3503
+ "maxLength": 200
3504
+ },
3505
+ "folderId": {
3506
+ "type": "string",
3507
+ "format": "uuid"
3508
+ },
3509
+ "limit": {
3510
+ "type": "integer",
3511
+ "minimum": 1,
3512
+ "maximum": 500
3513
+ },
3514
+ "offset": {
3515
+ "type": "integer",
3516
+ "minimum": 0
3517
+ }
3518
+ },
3519
+ "required": [
3520
+ "sessionId"
3521
+ ]
3522
+ }
3523
+ ```
3524
+
3525
+ Output schema:
3526
+
3527
+ ```json
3528
+ {
3529
+ "type": "object",
3530
+ "oneOf": [
3531
+ {
3532
+ "type": "object",
3533
+ "properties": {
3534
+ "ok": {
3535
+ "const": true
3536
+ }
3537
+ }
3538
+ },
3539
+ {
3540
+ "type": "object",
3541
+ "properties": {
3542
+ "ok": {
3543
+ "const": false
3544
+ },
3545
+ "error": {
3546
+ "type": "object",
3547
+ "properties": {
3548
+ "code": {
3549
+ "type": "string"
3550
+ },
3551
+ "message": {
3552
+ "type": "string"
3553
+ },
3554
+ "retryable": {
3555
+ "type": "boolean"
3556
+ },
3557
+ "recoveryAction": {
3558
+ "type": "string"
3559
+ }
3560
+ },
3561
+ "required": [
3562
+ "code",
3563
+ "message",
3564
+ "retryable",
3565
+ "recoveryAction"
3566
+ ],
3567
+ "additionalProperties": false
3568
+ }
3569
+ },
3570
+ "required": [
3571
+ "ok",
3572
+ "error"
3573
+ ],
3574
+ "additionalProperties": false
3575
+ }
3576
+ ]
3577
+ }
3578
+ ```
3579
+
3580
+ ### `platform_materialize_assets`
3581
+
3582
+ Download exactly selected approved files into a new local directory. Verify each authenticated transfer's hash and size; source and attachment budgets remain separate.
3583
+
3584
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
3585
+
3586
+ Example request:
3587
+
3588
+ ```json
3589
+ {
3590
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3591
+ "assetIds": [
3592
+ "00000000-0000-4000-8000-000000000001"
3593
+ ],
3594
+ "targetDir": "<targetDir>"
3595
+ }
3596
+ ```
3597
+
3598
+ Example success:
3599
+
3600
+ ```json
3601
+ {}
3602
+ ```
3603
+
3604
+ Input schema:
3605
+
3606
+ ```json
3607
+ {
3608
+ "type": "object",
3609
+ "additionalProperties": false,
3610
+ "properties": {
3611
+ "sessionId": {
3612
+ "type": "string",
3613
+ "format": "uuid"
3614
+ },
3615
+ "assetIds": {
3616
+ "type": "array",
3617
+ "minItems": 1,
3618
+ "maxItems": 50,
3619
+ "uniqueItems": true,
3620
+ "items": {
3621
+ "type": "string",
3622
+ "format": "uuid"
3623
+ }
3624
+ },
3625
+ "targetDir": {
3626
+ "type": "string",
3627
+ "minLength": 1
3628
+ }
3629
+ },
3630
+ "required": [
3631
+ "sessionId",
3632
+ "assetIds",
3633
+ "targetDir"
3634
+ ]
3635
+ }
3636
+ ```
3637
+
3638
+ Output schema:
3639
+
3640
+ ```json
3641
+ {
3642
+ "type": "object",
3643
+ "oneOf": [
3644
+ {
3645
+ "type": "object",
3646
+ "properties": {
3647
+ "ok": {
3648
+ "const": true
3649
+ }
3650
+ }
3651
+ },
3652
+ {
3653
+ "type": "object",
3654
+ "properties": {
3655
+ "ok": {
3656
+ "const": false
3657
+ },
3658
+ "error": {
3659
+ "type": "object",
3660
+ "properties": {
3661
+ "code": {
3662
+ "type": "string"
3663
+ },
3664
+ "message": {
3665
+ "type": "string"
3666
+ },
3667
+ "retryable": {
3668
+ "type": "boolean"
3669
+ },
3670
+ "recoveryAction": {
3671
+ "type": "string"
3672
+ }
3673
+ },
3674
+ "required": [
3675
+ "code",
3676
+ "message",
3677
+ "retryable",
3678
+ "recoveryAction"
3679
+ ],
3680
+ "additionalProperties": false
3681
+ }
3682
+ },
3683
+ "required": [
3684
+ "ok",
3685
+ "error"
3686
+ ],
3687
+ "additionalProperties": false
3688
+ }
3689
+ ]
3690
+ }
3691
+ ```
3692
+
3693
+ ### `platform_list_build_secrets`
3694
+
3695
+ Read only exact operator-approved binding references for this session. Values are never retrieved. Authoring detach does not prove deployed runtime revocation.
3696
+
3697
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
3698
+
3699
+ Example request:
3700
+
3701
+ ```json
3702
+ {
3703
+ "sessionId": "00000000-0000-4000-8000-000000000001"
3704
+ }
3705
+ ```
3706
+
3707
+ Example success:
3708
+
3709
+ ```json
3710
+ {}
3711
+ ```
3712
+
3713
+ Input schema:
3714
+
3715
+ ```json
3716
+ {
3717
+ "type": "object",
3718
+ "additionalProperties": false,
3719
+ "properties": {
3720
+ "sessionId": {
3721
+ "type": "string",
3722
+ "format": "uuid"
3723
+ }
3724
+ },
3725
+ "required": [
3726
+ "sessionId"
3727
+ ]
3728
+ }
3729
+ ```
3730
+
3731
+ Output schema:
3732
+
3733
+ ```json
3734
+ {
3735
+ "type": "object",
3736
+ "oneOf": [
3737
+ {
3738
+ "type": "object",
3739
+ "properties": {
3740
+ "ok": {
3741
+ "const": true
3742
+ }
3743
+ }
3744
+ },
3745
+ {
3746
+ "type": "object",
3747
+ "properties": {
3748
+ "ok": {
3749
+ "const": false
3750
+ },
3751
+ "error": {
3752
+ "type": "object",
3753
+ "properties": {
3754
+ "code": {
3755
+ "type": "string"
3756
+ },
3757
+ "message": {
3758
+ "type": "string"
3759
+ },
3760
+ "retryable": {
3761
+ "type": "boolean"
3762
+ },
3763
+ "recoveryAction": {
3764
+ "type": "string"
3765
+ }
3766
+ },
3767
+ "required": [
3768
+ "code",
3769
+ "message",
3770
+ "retryable",
3771
+ "recoveryAction"
3772
+ ],
3773
+ "additionalProperties": false
3774
+ }
3775
+ },
3776
+ "required": [
3777
+ "ok",
3778
+ "error"
3779
+ ],
3780
+ "additionalProperties": false
3781
+ }
3782
+ ]
3783
+ }
3784
+ ```
3785
+
3786
+ ### `platform_add_acceptance_check`
3787
+
3788
+ Add a required acceptance check bound to this build session and deployed revision. A semantic control query requires separate Build data-verification consent.
3789
+
3790
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
3791
+
3792
+ Example request:
3793
+
3794
+ ```json
3795
+ {
3796
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3797
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3798
+ "idempotencyKey": "example-request",
3799
+ "description": "<description>"
3800
+ }
3801
+ ```
3802
+
3803
+ Example success:
3804
+
3805
+ ```json
3806
+ {}
3807
+ ```
3808
+
3809
+ Input schema:
3810
+
3811
+ ```json
3812
+ {
3813
+ "type": "object",
3814
+ "additionalProperties": false,
3815
+ "properties": {
3816
+ "sessionId": {
3817
+ "type": "string",
3818
+ "format": "uuid"
3819
+ },
3820
+ "artifactVersionId": {
3821
+ "type": "string",
3822
+ "format": "uuid"
3823
+ },
3824
+ "idempotencyKey": {
3825
+ "type": "string",
3826
+ "minLength": 1,
3827
+ "maxLength": 128,
3828
+ "pattern": "^[A-Za-z0-9._:-]+$"
3829
+ },
3830
+ "description": {
3831
+ "type": "string",
3832
+ "minLength": 3,
3833
+ "maxLength": 1000
3834
+ }
3835
+ },
3836
+ "required": [
3837
+ "sessionId",
3838
+ "artifactVersionId",
3839
+ "idempotencyKey",
3840
+ "description"
3841
+ ]
3842
+ }
3843
+ ```
3844
+
3845
+ Output schema:
3846
+
3847
+ ```json
3848
+ {
3849
+ "type": "object",
3850
+ "oneOf": [
3851
+ {
3852
+ "type": "object",
3853
+ "properties": {
3854
+ "ok": {
3855
+ "const": true
3856
+ }
3857
+ }
3858
+ },
3859
+ {
3860
+ "type": "object",
3861
+ "properties": {
3862
+ "ok": {
3863
+ "const": false
3864
+ },
3865
+ "error": {
3866
+ "type": "object",
3867
+ "properties": {
3868
+ "code": {
3869
+ "type": "string"
3870
+ },
3871
+ "message": {
3872
+ "type": "string"
3873
+ },
3874
+ "retryable": {
3875
+ "type": "boolean"
3876
+ },
3877
+ "recoveryAction": {
3878
+ "type": "string"
3879
+ }
3880
+ },
3881
+ "required": [
3882
+ "code",
3883
+ "message",
3884
+ "retryable",
3885
+ "recoveryAction"
3886
+ ],
3887
+ "additionalProperties": false
3888
+ }
3889
+ },
3890
+ "required": [
3891
+ "ok",
3892
+ "error"
3893
+ ],
3894
+ "additionalProperties": false
3895
+ }
3896
+ ]
3897
+ }
3898
+ ```
3899
+
3900
+ ### `platform_run_acceptance_checks`
3901
+
3902
+ Run required acceptance checks for the exact current draft revision through the shared service.
3903
+
3904
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
3905
+
3906
+ Example request:
3907
+
3908
+ ```json
3909
+ {
3910
+ "sessionId": "00000000-0000-4000-8000-000000000001",
3911
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
3912
+ "idempotencyKey": "example-request"
3913
+ }
3914
+ ```
3915
+
3916
+ Example success:
3917
+
3918
+ ```json
3919
+ {}
3920
+ ```
3921
+
3922
+ Input schema:
3923
+
3924
+ ```json
3925
+ {
3926
+ "type": "object",
3927
+ "additionalProperties": false,
3928
+ "properties": {
3929
+ "sessionId": {
3930
+ "type": "string",
3931
+ "format": "uuid"
3932
+ },
3933
+ "artifactVersionId": {
3934
+ "type": "string",
3935
+ "format": "uuid"
3936
+ },
3937
+ "idempotencyKey": {
3938
+ "type": "string",
3939
+ "minLength": 1,
3940
+ "maxLength": 128,
3941
+ "pattern": "^[A-Za-z0-9._:-]+$"
3942
+ }
3943
+ },
3944
+ "required": [
3945
+ "sessionId",
3946
+ "artifactVersionId",
3947
+ "idempotencyKey"
3948
+ ]
3949
+ }
3950
+ ```
3951
+
3952
+ Output schema:
3953
+
3954
+ ```json
3955
+ {
3956
+ "type": "object",
3957
+ "oneOf": [
3958
+ {
3959
+ "type": "object",
3960
+ "properties": {
3961
+ "ok": {
3962
+ "const": true
3963
+ }
3964
+ }
3965
+ },
3966
+ {
3967
+ "type": "object",
3968
+ "properties": {
3969
+ "ok": {
3970
+ "const": false
3971
+ },
3972
+ "error": {
3973
+ "type": "object",
3974
+ "properties": {
3975
+ "code": {
3976
+ "type": "string"
3977
+ },
3978
+ "message": {
3979
+ "type": "string"
3980
+ },
3981
+ "retryable": {
3982
+ "type": "boolean"
3983
+ },
3984
+ "recoveryAction": {
3985
+ "type": "string"
3986
+ }
3987
+ },
3988
+ "required": [
3989
+ "code",
3990
+ "message",
3991
+ "retryable",
3992
+ "recoveryAction"
3993
+ ],
3994
+ "additionalProperties": false
3995
+ }
3996
+ },
3997
+ "required": [
3998
+ "ok",
3999
+ "error"
4000
+ ],
4001
+ "additionalProperties": false
4002
+ }
4003
+ ]
4004
+ }
4005
+ ```
4006
+
4007
+ ### `platform_record_acceptance_review`
4008
+
4009
+ Record the builder's acceptance review without impersonating the independent validator or removing required checks.
4010
+
4011
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
4012
+
4013
+ Example request:
4014
+
4015
+ ```json
4016
+ {
4017
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4018
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
4019
+ "idempotencyKey": "example-request",
4020
+ "checkId": "00000000-0000-4000-8000-000000000001",
4021
+ "status": "passed",
4022
+ "summary": "<summary>"
4023
+ }
4024
+ ```
4025
+
4026
+ Example success:
4027
+
4028
+ ```json
4029
+ {}
4030
+ ```
4031
+
4032
+ Input schema:
4033
+
4034
+ ```json
4035
+ {
4036
+ "type": "object",
4037
+ "additionalProperties": false,
4038
+ "properties": {
4039
+ "sessionId": {
4040
+ "type": "string",
4041
+ "format": "uuid"
4042
+ },
4043
+ "artifactVersionId": {
4044
+ "type": "string",
4045
+ "format": "uuid"
4046
+ },
4047
+ "idempotencyKey": {
4048
+ "type": "string",
4049
+ "minLength": 1,
4050
+ "maxLength": 128,
4051
+ "pattern": "^[A-Za-z0-9._:-]+$"
4052
+ },
4053
+ "checkId": {
4054
+ "type": "string",
4055
+ "format": "uuid"
4056
+ },
4057
+ "status": {
4058
+ "type": "string",
4059
+ "enum": [
4060
+ "passed",
4061
+ "failed"
4062
+ ]
4063
+ },
4064
+ "summary": {
4065
+ "type": "string",
4066
+ "minLength": 3,
4067
+ "maxLength": 2000
4068
+ }
4069
+ },
4070
+ "required": [
4071
+ "sessionId",
4072
+ "artifactVersionId",
4073
+ "idempotencyKey",
4074
+ "checkId",
4075
+ "status",
4076
+ "summary"
4077
+ ]
4078
+ }
4079
+ ```
4080
+
4081
+ Output schema:
4082
+
4083
+ ```json
4084
+ {
4085
+ "type": "object",
4086
+ "oneOf": [
4087
+ {
4088
+ "type": "object",
4089
+ "properties": {
4090
+ "ok": {
4091
+ "const": true
4092
+ }
4093
+ }
4094
+ },
4095
+ {
4096
+ "type": "object",
4097
+ "properties": {
4098
+ "ok": {
4099
+ "const": false
4100
+ },
4101
+ "error": {
4102
+ "type": "object",
4103
+ "properties": {
4104
+ "code": {
4105
+ "type": "string"
4106
+ },
4107
+ "message": {
4108
+ "type": "string"
4109
+ },
4110
+ "retryable": {
4111
+ "type": "boolean"
4112
+ },
4113
+ "recoveryAction": {
4114
+ "type": "string"
4115
+ }
4116
+ },
4117
+ "required": [
4118
+ "code",
4119
+ "message",
4120
+ "retryable",
4121
+ "recoveryAction"
4122
+ ],
4123
+ "additionalProperties": false
4124
+ }
4125
+ },
4126
+ "required": [
4127
+ "ok",
4128
+ "error"
4129
+ ],
4130
+ "additionalProperties": false
4131
+ }
4132
+ ]
4133
+ }
4134
+ ```
4135
+
4136
+ ### `platform_prepare_artifact_validation`
4137
+
4138
+ Prepare validation evidence for the exact private draft revision; missing required checks block readiness.
4139
+
4140
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
4141
+
4142
+ Example request:
4143
+
4144
+ ```json
4145
+ {
4146
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4147
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
4148
+ "deploymentRecordId": "00000000-0000-4000-8000-000000000001"
4149
+ }
4150
+ ```
4151
+
4152
+ Example success:
4153
+
4154
+ ```json
4155
+ {}
4156
+ ```
4157
+
4158
+ Input schema:
4159
+
4160
+ ```json
4161
+ {
4162
+ "type": "object",
4163
+ "additionalProperties": false,
4164
+ "properties": {
4165
+ "sessionId": {
4166
+ "type": "string",
4167
+ "format": "uuid"
4168
+ },
4169
+ "artifactVersionId": {
4170
+ "type": "string",
4171
+ "format": "uuid"
4172
+ },
4173
+ "deploymentRecordId": {
4174
+ "type": "string",
4175
+ "format": "uuid"
4176
+ }
4177
+ },
4178
+ "required": [
4179
+ "sessionId",
4180
+ "artifactVersionId",
4181
+ "deploymentRecordId"
4182
+ ]
4183
+ }
4184
+ ```
4185
+
4186
+ Output schema:
4187
+
4188
+ ```json
4189
+ {
4190
+ "type": "object",
4191
+ "oneOf": [
4192
+ {
4193
+ "type": "object",
4194
+ "properties": {
4195
+ "ok": {
4196
+ "const": true
4197
+ }
4198
+ }
4199
+ },
4200
+ {
4201
+ "type": "object",
4202
+ "properties": {
4203
+ "ok": {
4204
+ "const": false
4205
+ },
4206
+ "error": {
4207
+ "type": "object",
4208
+ "properties": {
4209
+ "code": {
4210
+ "type": "string"
4211
+ },
4212
+ "message": {
4213
+ "type": "string"
4214
+ },
4215
+ "retryable": {
4216
+ "type": "boolean"
4217
+ },
4218
+ "recoveryAction": {
4219
+ "type": "string"
4220
+ }
4221
+ },
4222
+ "required": [
4223
+ "code",
4224
+ "message",
4225
+ "retryable",
4226
+ "recoveryAction"
4227
+ ],
4228
+ "additionalProperties": false
4229
+ }
4230
+ },
4231
+ "required": [
4232
+ "ok",
4233
+ "error"
4234
+ ],
4235
+ "additionalProperties": false
4236
+ }
4237
+ ]
4238
+ }
4239
+ ```
4240
+
4241
+ ### `platform_request_artifact_validation`
4242
+
4243
+ Request the independent reviewer for the exact deployment and bounded evidence. Returns durable operation status; unavailable infrastructure leaves operator review required, never approval.
4244
+
4245
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
4246
+
4247
+ Example request:
4248
+
4249
+ ```json
4250
+ {
4251
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4252
+ "artifactVersionId": "00000000-0000-4000-8000-000000000001",
4253
+ "idempotencyKey": "example-request",
4254
+ "deploymentRecordId": "00000000-0000-4000-8000-000000000001",
4255
+ "summary": "<summary>",
4256
+ "docImpact": "material",
4257
+ "docImpactNotes": "<docImpactNotes>",
4258
+ "visualReview": {}
4259
+ }
4260
+ ```
4261
+
4262
+ Example success:
4263
+
4264
+ ```json
4265
+ {}
4266
+ ```
4267
+
4268
+ Input schema:
4269
+
4270
+ ```json
4271
+ {
4272
+ "type": "object",
4273
+ "additionalProperties": false,
4274
+ "properties": {
4275
+ "sessionId": {
4276
+ "type": "string",
4277
+ "format": "uuid"
4278
+ },
4279
+ "artifactVersionId": {
4280
+ "type": "string",
4281
+ "format": "uuid"
4282
+ },
4283
+ "idempotencyKey": {
4284
+ "type": "string",
4285
+ "minLength": 1,
4286
+ "maxLength": 128,
4287
+ "pattern": "^[A-Za-z0-9._:-]+$"
4288
+ },
4289
+ "deploymentRecordId": {
4290
+ "type": "string",
4291
+ "format": "uuid"
4292
+ },
4293
+ "summary": {
4294
+ "type": "string",
4295
+ "minLength": 3,
4296
+ "maxLength": 4000
4297
+ },
4298
+ "waitMs": {
4299
+ "type": "integer",
4300
+ "minimum": 0,
4301
+ "maximum": 1000
4302
+ },
4303
+ "buildOk": {
4304
+ "type": "boolean"
4305
+ },
4306
+ "typecheckOk": {
4307
+ "type": "boolean"
4308
+ },
4309
+ "docImpact": {
4310
+ "type": "string",
4311
+ "enum": [
4312
+ "material",
4313
+ "none"
4314
+ ]
4315
+ },
4316
+ "docImpactNotes": {
4317
+ "type": "string",
4318
+ "minLength": 12,
4319
+ "maxLength": 2000
4320
+ },
4321
+ "visualReview": {
4322
+ "type": "object",
4323
+ "additionalProperties": true
4324
+ },
4325
+ "dataValidation": {
4326
+ "type": "object",
4327
+ "additionalProperties": true
4328
+ }
4329
+ },
4330
+ "required": [
4331
+ "sessionId",
4332
+ "artifactVersionId",
4333
+ "idempotencyKey",
4334
+ "deploymentRecordId",
4335
+ "summary",
4336
+ "docImpact",
4337
+ "docImpactNotes",
4338
+ "visualReview"
4339
+ ]
4340
+ }
4341
+ ```
4342
+
4343
+ Output schema:
4344
+
4345
+ ```json
4346
+ {
4347
+ "type": "object",
4348
+ "oneOf": [
4349
+ {
4350
+ "type": "object",
4351
+ "properties": {
4352
+ "ok": {
4353
+ "const": true
4354
+ }
4355
+ }
4356
+ },
4357
+ {
4358
+ "type": "object",
4359
+ "properties": {
4360
+ "ok": {
4361
+ "const": false
4362
+ },
4363
+ "error": {
4364
+ "type": "object",
4365
+ "properties": {
4366
+ "code": {
4367
+ "type": "string"
4368
+ },
4369
+ "message": {
4370
+ "type": "string"
4371
+ },
4372
+ "retryable": {
4373
+ "type": "boolean"
4374
+ },
4375
+ "recoveryAction": {
4376
+ "type": "string"
4377
+ }
4378
+ },
4379
+ "required": [
4380
+ "code",
4381
+ "message",
4382
+ "retryable",
4383
+ "recoveryAction"
4384
+ ],
4385
+ "additionalProperties": false
4386
+ }
4387
+ },
4388
+ "required": [
4389
+ "ok",
4390
+ "error"
4391
+ ],
4392
+ "additionalProperties": false
4393
+ }
4394
+ ]
4395
+ }
4396
+ ```
4397
+
4398
+ ### `platform_artifact_validation_status`
4399
+
4400
+ Read the original validation result and pending prompts without starting another reviewer or deploy. Current authorization is rechecked before evidence delivery.
4401
+
4402
+ Safety: read-only=true, destructive=false, idempotent=true, open-world=true.
4403
+
4404
+ Example request:
4405
+
4406
+ ```json
4407
+ {
4408
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4409
+ "operationId": "00000000-0000-4000-8000-000000000001"
4410
+ }
4411
+ ```
4412
+
4413
+ Example success:
4414
+
4415
+ ```json
4416
+ {}
4417
+ ```
4418
+
4419
+ Input schema:
4420
+
4421
+ ```json
4422
+ {
4423
+ "type": "object",
4424
+ "additionalProperties": false,
4425
+ "properties": {
4426
+ "sessionId": {
4427
+ "type": "string",
4428
+ "format": "uuid"
4429
+ },
4430
+ "operationId": {
4431
+ "type": "string",
4432
+ "format": "uuid"
4433
+ }
4434
+ },
4435
+ "required": [
4436
+ "sessionId",
4437
+ "operationId"
4438
+ ]
4439
+ }
4440
+ ```
4441
+
4442
+ Output schema:
4443
+
4444
+ ```json
4445
+ {
4446
+ "type": "object",
4447
+ "oneOf": [
4448
+ {
4449
+ "type": "object",
4450
+ "properties": {
4451
+ "ok": {
4452
+ "const": true
4453
+ }
4454
+ }
4455
+ },
4456
+ {
4457
+ "type": "object",
4458
+ "properties": {
4459
+ "ok": {
4460
+ "const": false
4461
+ },
4462
+ "error": {
4463
+ "type": "object",
4464
+ "properties": {
4465
+ "code": {
4466
+ "type": "string"
4467
+ },
4468
+ "message": {
4469
+ "type": "string"
4470
+ },
4471
+ "retryable": {
4472
+ "type": "boolean"
4473
+ },
4474
+ "recoveryAction": {
4475
+ "type": "string"
4476
+ }
4477
+ },
4478
+ "required": [
4479
+ "code",
4480
+ "message",
4481
+ "retryable",
4482
+ "recoveryAction"
4483
+ ],
4484
+ "additionalProperties": false
4485
+ }
4486
+ },
4487
+ "required": [
4488
+ "ok",
4489
+ "error"
4490
+ ],
4491
+ "additionalProperties": false
4492
+ }
4493
+ ]
4494
+ }
4495
+ ```
4496
+
4497
+ ### `platform_answer_operator_prompt`
4498
+
4499
+ 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.
4500
+
4501
+ Safety: read-only=false, destructive=false, idempotent=true, open-world=true.
4502
+
4503
+ Example request:
4504
+
4505
+ ```json
4506
+ {
4507
+ "sessionId": "00000000-0000-4000-8000-000000000001",
4508
+ "operationId": "00000000-0000-4000-8000-000000000001",
4509
+ "promptId": "00000000-0000-4000-8000-000000000001",
4510
+ "idempotencyKey": "example-request",
4511
+ "message": "<message>"
4512
+ }
4513
+ ```
4514
+
4515
+ Example success:
4516
+
4517
+ ```json
4518
+ {}
4519
+ ```
4520
+
4521
+ Input schema:
4522
+
4523
+ ```json
4524
+ {
4525
+ "type": "object",
4526
+ "additionalProperties": false,
4527
+ "properties": {
4528
+ "sessionId": {
4529
+ "type": "string",
4530
+ "format": "uuid"
4531
+ },
4532
+ "operationId": {
4533
+ "type": "string",
4534
+ "format": "uuid"
4535
+ },
4536
+ "promptId": {
4537
+ "type": "string",
4538
+ "format": "uuid"
4539
+ },
4540
+ "idempotencyKey": {
4541
+ "type": "string",
4542
+ "minLength": 1,
4543
+ "maxLength": 128,
4544
+ "pattern": "^[A-Za-z0-9._:-]+$"
4545
+ },
4546
+ "message": {
4547
+ "type": "string",
4548
+ "minLength": 3,
4549
+ "maxLength": 4000
4550
+ }
4551
+ },
4552
+ "required": [
4553
+ "sessionId",
4554
+ "operationId",
4555
+ "promptId",
4556
+ "idempotencyKey",
4557
+ "message"
4558
+ ]
4559
+ }
4560
+ ```
4561
+
4562
+ Output schema:
4563
+
4564
+ ```json
4565
+ {
4566
+ "type": "object",
4567
+ "oneOf": [
4568
+ {
4569
+ "type": "object",
4570
+ "properties": {
4571
+ "ok": {
4572
+ "const": true
4573
+ }
4574
+ }
4575
+ },
4576
+ {
4577
+ "type": "object",
4578
+ "properties": {
4579
+ "ok": {
4580
+ "const": false
4581
+ },
4582
+ "error": {
4583
+ "type": "object",
4584
+ "properties": {
4585
+ "code": {
4586
+ "type": "string"
4587
+ },
4588
+ "message": {
4589
+ "type": "string"
4590
+ },
4591
+ "retryable": {
4592
+ "type": "boolean"
4593
+ },
4594
+ "recoveryAction": {
4595
+ "type": "string"
4596
+ }
4597
+ },
4598
+ "required": [
4599
+ "code",
4600
+ "message",
4601
+ "retryable",
4602
+ "recoveryAction"
4603
+ ],
4604
+ "additionalProperties": false
4605
+ }
4606
+ },
4607
+ "required": [
4608
+ "ok",
4609
+ "error"
4610
+ ],
4611
+ "additionalProperties": false
4612
+ }
4613
+ ]
4614
+ }
4615
+ ```