@agent-vm/agent-portal-sdk 0.0.147 → 0.0.149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/contract-fixtures/portable-contracts/approval/managed-google-challenge.fixture.json +66 -0
  2. package/contract-fixtures/portable-contracts/discovery/describe-result.fixture.json +5 -1
  3. package/contract-fixtures/portable-contracts/discovery/google-describe-duplicate-availability.fixture.json +103 -0
  4. package/contract-fixtures/portable-contracts/discovery/google-describe-duplicate-requirements.fixture.json +83 -0
  5. package/contract-fixtures/portable-contracts/discovery/google-describe-unverified-ready.fixture.json +78 -0
  6. package/contract-fixtures/portable-contracts/discovery/google-describe-valid.fixture.json +144 -0
  7. package/contract-fixtures/portable-contracts/discovery/google-list-duplicate-availability.fixture.json +109 -0
  8. package/contract-fixtures/portable-contracts/discovery/google-list-duplicate-requirements.fixture.json +89 -0
  9. package/contract-fixtures/portable-contracts/discovery/google-list-unverified-ready.fixture.json +84 -0
  10. package/contract-fixtures/portable-contracts/discovery/google-list-valid.fixture.json +156 -0
  11. package/contract-fixtures/portable-contracts/discovery/google-search-duplicate-availability.fixture.json +108 -0
  12. package/contract-fixtures/portable-contracts/discovery/google-search-duplicate-requirements.fixture.json +88 -0
  13. package/contract-fixtures/portable-contracts/discovery/google-search-unverified-ready.fixture.json +83 -0
  14. package/contract-fixtures/portable-contracts/discovery/google-search-valid.fixture.json +154 -0
  15. package/contract-fixtures/portable-contracts/discovery/list-result.fixture.json +5 -1
  16. package/contract-fixtures/portable-contracts/discovery/search-result.fixture.json +5 -1
  17. package/contract-fixtures/portable-contracts/files/attachment-cleaned-result.fixture.json +16 -0
  18. package/contract-fixtures/portable-contracts/files/attachment-parent-path-rejected.fixture.json +17 -0
  19. package/contract-fixtures/portable-contracts/files/attachment-public-request.fixture.json +26 -0
  20. package/contract-fixtures/portable-contracts/files/attachment-public-result.fixture.json +26 -0
  21. package/contract-fixtures/portable-contracts/files/attachment-recipient-rejected.fixture.json +19 -0
  22. package/contract-fixtures/portable-contracts/files/attachment-settle-request.fixture.json +20 -0
  23. package/contract-fixtures/portable-contracts/files/attachment-stage-request.fixture.json +26 -0
  24. package/contract-fixtures/portable-contracts/files/attachment-staged-result.fixture.json +24 -0
  25. package/contract-fixtures/portable-contracts/files/file-list-request.fixture.json +14 -0
  26. package/contract-fixtures/portable-contracts/files/file-listed-result.fixture.json +21 -0
  27. package/contract-fixtures/portable-contracts/files/file-materialized-result.fixture.json +17 -0
  28. package/contract-fixtures/portable-contracts/files/file-request-root-rejected.fixture.json +15 -0
  29. package/contract-fixtures/portable-contracts/files/file-result-payload-rejected.fixture.json +18 -0
  30. package/contract-fixtures/portable-contracts/outcomes/completed-file-delivery-partial.fixture.json +84 -0
  31. package/contract-fixtures/portable-contracts/outcomes/invalid-retryable-file-delivery.fixture.json +40 -0
  32. package/dist/approval-surface/index.d.ts +1 -1
  33. package/dist/approval-surface/index.js +1 -1
  34. package/dist/{approval-surface-Cqk_hAtN.js → approval-surface-CfbAG-81.js} +4 -4
  35. package/dist/{approval-surface-Cqk_hAtN.js.map → approval-surface-CfbAG-81.js.map} +1 -1
  36. package/dist/artifact-surface/index.js +1 -1
  37. package/dist/{artifact-surface-CHEu4tDd.js → artifact-surface-Db5KQOA0.js} +2 -2
  38. package/dist/{artifact-surface-CHEu4tDd.js.map → artifact-surface-Db5KQOA0.js.map} +1 -1
  39. package/dist/capability-description-surface/index.d.ts +2 -2
  40. package/dist/capability-description-surface/index.js +3 -3
  41. package/dist/capability-description-surface-DKZLjpG4.js +2 -0
  42. package/dist/{capability-descriptor-schema-v9tj7yKr.js → capability-descriptor-schema-5evBt6Hl.js} +39 -3
  43. package/dist/capability-descriptor-schema-5evBt6Hl.js.map +1 -0
  44. package/dist/cli/tool-portal.js +5 -5
  45. package/dist/contracts/index.js +1 -1
  46. package/dist/{contracts-X9wWs2lP.js → contracts-K6l783Yb.js} +5 -5
  47. package/dist/{contracts-X9wWs2lP.js.map → contracts-K6l783Yb.js.map} +1 -1
  48. package/dist/gateway-runtime-client/index.d.ts +5 -3
  49. package/dist/gateway-runtime-client/index.d.ts.map +1 -1
  50. package/dist/gateway-runtime-client/index.js +13 -6
  51. package/dist/gateway-runtime-client/index.js.map +1 -1
  52. package/dist/{index-DV6xiWeS.d.ts → index-BSG2bf1j.d.ts} +3 -3
  53. package/dist/{index-DV6xiWeS.d.ts.map → index-BSG2bf1j.d.ts.map} +1 -1
  54. package/dist/{index-ciLRJYVb.d.ts → index-Ba_G25p_.d.ts} +37 -37
  55. package/dist/{index-ciLRJYVb.d.ts.map → index-Ba_G25p_.d.ts.map} +1 -1
  56. package/dist/index-ByBEiqZp.d.ts +388 -0
  57. package/dist/index-ByBEiqZp.d.ts.map +1 -0
  58. package/dist/{index-D4UDHMft.d.ts → index-C5NsqQls.d.ts} +31 -9
  59. package/dist/index-C5NsqQls.d.ts.map +1 -0
  60. package/dist/{index-3aVlpTwE.d.ts → index-C8gs_YWX.d.ts} +134 -18
  61. package/dist/{index-3aVlpTwE.d.ts.map → index-C8gs_YWX.d.ts.map} +1 -1
  62. package/dist/{index-C-QFWaH5.d.ts → index-E3B9TETl.d.ts} +11 -1
  63. package/dist/index-E3B9TETl.d.ts.map +1 -0
  64. package/dist/index.d.ts +7 -7
  65. package/dist/index.js +15 -15
  66. package/dist/{json-value-schema-Br5M7d7X.js → json-value-schema-rxMrw9uZ.js} +2 -2
  67. package/dist/{json-value-schema-Br5M7d7X.js.map → json-value-schema-rxMrw9uZ.js.map} +1 -1
  68. package/dist/{namespace-discovery-schema-DwbJHVLu.js → namespace-discovery-schema-BBWRZZnD.js} +2 -2
  69. package/dist/{namespace-discovery-schema-DwbJHVLu.js.map → namespace-discovery-schema-BBWRZZnD.js.map} +1 -1
  70. package/dist/portable-contracts/index.d.ts +1 -1
  71. package/dist/portable-contracts/index.js +2 -2
  72. package/dist/{portable-contracts-BJEMMNwI.js → portable-contracts-D7axGgu1.js} +75 -15
  73. package/dist/portable-contracts-D7axGgu1.js.map +1 -0
  74. package/dist/{portable-refinement-authoring-C1Q92x2G.js → portable-refinement-authoring-oFICWLOo.js} +16 -2
  75. package/dist/portable-refinement-authoring-oFICWLOo.js.map +1 -0
  76. package/dist/{portal-call-request-schema-Cl0kTLaX.js → portal-call-request-schema-B1dbBjmW.js} +4 -4
  77. package/dist/{portal-call-request-schema-Cl0kTLaX.js.map → portal-call-request-schema-B1dbBjmW.js.map} +1 -1
  78. package/dist/{portal-call-result-schema-CFnKfcvZ.d.ts → portal-call-result-schema-CjfCOa84.d.ts} +1561 -313
  79. package/dist/portal-call-result-schema-CjfCOa84.d.ts.map +1 -0
  80. package/dist/{portal-call-result-schema-B25_rzZZ.js → portal-call-result-schema-DVJ6FyTz.js} +24 -8
  81. package/dist/portal-call-result-schema-DVJ6FyTz.js.map +1 -0
  82. package/dist/portal-call-surface/index.d.ts +3 -3
  83. package/dist/portal-call-surface/index.js +4 -4
  84. package/dist/portal-call-surface-BPVX-rjw.js +175 -0
  85. package/dist/portal-call-surface-BPVX-rjw.js.map +1 -0
  86. package/dist/portal-event-surface/index.d.ts +1 -1
  87. package/dist/portal-event-surface/index.js +1 -1
  88. package/dist/{portal-event-surface-Bp3rXsBz.js → portal-event-surface-Z76kra2a.js} +2 -2
  89. package/dist/{portal-event-surface-Bp3rXsBz.js.map → portal-event-surface-Z76kra2a.js.map} +1 -1
  90. package/dist/{request-id-schema-Hq_6lSFV.js → request-id-schema-DQ84TX-D.js} +2 -2
  91. package/dist/{request-id-schema-Hq_6lSFV.js.map → request-id-schema-DQ84TX-D.js.map} +1 -1
  92. package/dist/testing/index.d.ts +1 -1
  93. package/dist/testing/index.js +2 -2
  94. package/dist/tool-portal-mcp-client/index.d.ts +1 -1
  95. package/dist/tool-portal-mcp-client/index.js +1 -1
  96. package/dist/tool-portal-mcp-client/node-tool-portal-mcp-transport.d.ts +1 -1
  97. package/dist/{tool-portal-mcp-client-DZoloMod.js → tool-portal-mcp-client-DSDLoZ5e.js} +5 -5
  98. package/dist/{tool-portal-mcp-client-DZoloMod.js.map → tool-portal-mcp-client-DSDLoZ5e.js.map} +1 -1
  99. package/package.json +3 -2
  100. package/portable-contract-schema-manifest.json +1868 -79
  101. package/dist/capability-description-surface-CplIb93y.js +0 -2
  102. package/dist/capability-descriptor-schema-v9tj7yKr.js.map +0 -1
  103. package/dist/index-C-QFWaH5.d.ts.map +0 -1
  104. package/dist/index-D4UDHMft.d.ts.map +0 -1
  105. package/dist/index-m4Mlc5zK.d.ts +0 -142
  106. package/dist/index-m4Mlc5zK.d.ts.map +0 -1
  107. package/dist/portable-contracts-BJEMMNwI.js.map +0 -1
  108. package/dist/portable-refinement-authoring-C1Q92x2G.js.map +0 -1
  109. package/dist/portal-call-result-schema-B25_rzZZ.js.map +0 -1
  110. package/dist/portal-call-result-schema-CFnKfcvZ.d.ts.map +0 -1
  111. package/dist/portal-call-surface-qykVz_8k.js +0 -84
  112. package/dist/portal-call-surface-qykVz_8k.js.map +0 -1
@@ -7,6 +7,7 @@
7
7
  "portal.artifact-read.default-truncated",
8
8
  "portal.batch.unique-item-ids",
9
9
  "portal.describe.default-includes",
10
+ "portal.google.discovery-policy",
10
11
  "portal.json.canonical",
11
12
  "portal.json.max-object-entries",
12
13
  "portal.list.default-limit",
@@ -161,7 +162,7 @@
161
162
  "portal.call.item-result": {
162
163
  "jsonSchema": {
163
164
  "$schema": "https://json-schema.org/draft/2020-12/schema",
164
- "oneOf": [
165
+ "anyOf": [
165
166
  {
166
167
  "type": "object",
167
168
  "properties": {
@@ -308,6 +309,224 @@
308
309
  "required": ["id", "operationId", "outcome", "owningGeneration", "status", "value"],
309
310
  "additionalProperties": false
310
311
  },
312
+ {
313
+ "type": "object",
314
+ "properties": {
315
+ "artifacts": {
316
+ "maxItems": 32,
317
+ "type": "array",
318
+ "items": {
319
+ "type": "object",
320
+ "properties": {
321
+ "byteLength": {
322
+ "type": "integer",
323
+ "minimum": 0,
324
+ "maximum": 9007199254740991
325
+ },
326
+ "expiresAt": {
327
+ "type": "string",
328
+ "format": "date-time",
329
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
330
+ },
331
+ "fingerprint": {
332
+ "type": "string",
333
+ "pattern": "^sha256:[0-9a-f]{64}$"
334
+ },
335
+ "id": {
336
+ "type": "string",
337
+ "minLength": 1
338
+ },
339
+ "mediaType": {
340
+ "type": "string"
341
+ }
342
+ },
343
+ "required": ["byteLength", "expiresAt", "fingerprint", "id"],
344
+ "additionalProperties": false
345
+ }
346
+ },
347
+ "diagnostics": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "object",
351
+ "properties": {
352
+ "code": {
353
+ "type": "string",
354
+ "enum": [
355
+ "provider_unavailable",
356
+ "capability_denied",
357
+ "approval_required",
358
+ "validation_failed",
359
+ "execution_failed",
360
+ "output_truncated",
361
+ "timeout",
362
+ "cancelled",
363
+ "artifact_unavailable"
364
+ ]
365
+ },
366
+ "level": {
367
+ "type": "string",
368
+ "enum": ["debug", "info", "warn", "error"]
369
+ },
370
+ "safeMessage": {
371
+ "type": "string",
372
+ "maxLength": 500
373
+ },
374
+ "safeParams": {
375
+ "type": "object",
376
+ "propertyNames": {
377
+ "type": "string"
378
+ },
379
+ "additionalProperties": {
380
+ "anyOf": [
381
+ {
382
+ "type": "string"
383
+ },
384
+ {
385
+ "type": "number"
386
+ },
387
+ {
388
+ "type": "boolean"
389
+ }
390
+ ]
391
+ }
392
+ }
393
+ },
394
+ "required": ["code", "level", "safeMessage"],
395
+ "additionalProperties": false
396
+ }
397
+ },
398
+ "error": {
399
+ "type": "object",
400
+ "properties": {
401
+ "code": {
402
+ "type": "string",
403
+ "enum": [
404
+ "invalid_request",
405
+ "not_found",
406
+ "not_authorized",
407
+ "approval_required",
408
+ "capability_denied",
409
+ "validation_failed",
410
+ "provider_unavailable",
411
+ "execution_failed",
412
+ "cancelled",
413
+ "timeout"
414
+ ]
415
+ },
416
+ "message": {
417
+ "type": "string",
418
+ "minLength": 1,
419
+ "maxLength": 500
420
+ },
421
+ "retryable": {
422
+ "type": "boolean"
423
+ },
424
+ "safeDiagnostic": {
425
+ "type": "object",
426
+ "properties": {
427
+ "code": {
428
+ "type": "string",
429
+ "enum": [
430
+ "provider_unavailable",
431
+ "capability_denied",
432
+ "approval_required",
433
+ "validation_failed",
434
+ "execution_failed",
435
+ "output_truncated",
436
+ "timeout",
437
+ "cancelled",
438
+ "artifact_unavailable"
439
+ ]
440
+ },
441
+ "level": {
442
+ "type": "string",
443
+ "enum": ["debug", "info", "warn", "error"]
444
+ },
445
+ "safeMessage": {
446
+ "type": "string",
447
+ "maxLength": 500
448
+ },
449
+ "safeParams": {
450
+ "type": "object",
451
+ "propertyNames": {
452
+ "type": "string"
453
+ },
454
+ "additionalProperties": {
455
+ "anyOf": [
456
+ {
457
+ "type": "string"
458
+ },
459
+ {
460
+ "type": "number"
461
+ },
462
+ {
463
+ "type": "boolean"
464
+ }
465
+ ]
466
+ }
467
+ }
468
+ },
469
+ "required": ["code", "level", "safeMessage"],
470
+ "additionalProperties": false
471
+ }
472
+ },
473
+ "required": ["code", "message"],
474
+ "additionalProperties": false
475
+ },
476
+ "id": {
477
+ "type": "string",
478
+ "minLength": 1
479
+ },
480
+ "operationId": {
481
+ "type": "string",
482
+ "minLength": 1
483
+ },
484
+ "outcome": {
485
+ "type": "object",
486
+ "properties": {
487
+ "certainty": {
488
+ "type": "string",
489
+ "const": "proven"
490
+ },
491
+ "completion": {
492
+ "type": "string",
493
+ "const": "failed"
494
+ },
495
+ "kind": {
496
+ "type": "string",
497
+ "const": "completed"
498
+ },
499
+ "retryClass": {
500
+ "type": "string",
501
+ "const": "forbidden"
502
+ }
503
+ },
504
+ "required": ["certainty", "completion", "kind", "retryClass"],
505
+ "additionalProperties": false
506
+ },
507
+ "owningGeneration": {
508
+ "type": "string",
509
+ "minLength": 1
510
+ },
511
+ "status": {
512
+ "type": "string",
513
+ "const": "error"
514
+ },
515
+ "value": {
516
+ "$ref": "#/$defs/__schema0"
517
+ }
518
+ },
519
+ "required": [
520
+ "error",
521
+ "id",
522
+ "operationId",
523
+ "outcome",
524
+ "owningGeneration",
525
+ "status",
526
+ "value"
527
+ ],
528
+ "additionalProperties": false
529
+ },
311
530
  {
312
531
  "type": "object",
313
532
  "properties": {
@@ -594,53 +813,116 @@
594
813
  "type": "object",
595
814
  "properties": {
596
815
  "approvalChallenge": {
597
- "type": "object",
598
- "properties": {
599
- "challengeId": {
600
- "type": "string",
601
- "format": "uuid",
602
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
603
- },
604
- "expiresAt": {
605
- "type": "string",
606
- "format": "date-time",
607
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
608
- }
609
- },
610
- "required": ["challengeId", "expiresAt"],
611
- "additionalProperties": false
612
- },
613
- "error": {
614
- "type": "object",
615
- "properties": {
616
- "code": {
617
- "type": "string",
618
- "const": "approval_required"
619
- },
620
- "message": {
621
- "type": "string",
622
- "minLength": 1,
623
- "maxLength": 500
624
- },
625
- "retryable": {
626
- "type": "boolean"
627
- },
628
- "safeDiagnostic": {
816
+ "anyOf": [
817
+ {
629
818
  "type": "object",
630
819
  "properties": {
631
- "code": {
820
+ "challengeId": {
632
821
  "type": "string",
633
- "enum": [
634
- "provider_unavailable",
635
- "capability_denied",
636
- "approval_required",
637
- "validation_failed",
638
- "execution_failed",
639
- "output_truncated",
640
- "timeout",
641
- "cancelled",
642
- "artifact_unavailable"
643
- ]
822
+ "format": "uuid",
823
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
824
+ },
825
+ "expiresAt": {
826
+ "type": "string",
827
+ "format": "date-time",
828
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
829
+ }
830
+ },
831
+ "required": ["challengeId", "expiresAt"],
832
+ "additionalProperties": false
833
+ },
834
+ {
835
+ "type": "object",
836
+ "properties": {
837
+ "challengeId": {
838
+ "type": "string",
839
+ "format": "uuid",
840
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
841
+ },
842
+ "expiresAt": {
843
+ "type": "string",
844
+ "format": "date-time",
845
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
846
+ },
847
+ "kind": {
848
+ "type": "string",
849
+ "const": "managed_google"
850
+ },
851
+ "managedGoogleDisplay": {
852
+ "type": "object",
853
+ "properties": {
854
+ "accountId": {
855
+ "type": "string",
856
+ "format": "uuid",
857
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
858
+ },
859
+ "authorizationId": {
860
+ "type": "string",
861
+ "format": "uuid",
862
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
863
+ },
864
+ "accountAlias": {
865
+ "type": "string",
866
+ "minLength": 1,
867
+ "maxLength": 320
868
+ },
869
+ "applicationLabel": {
870
+ "type": "string",
871
+ "minLength": 1,
872
+ "maxLength": 160
873
+ },
874
+ "authorizationMetadataRevision": {
875
+ "type": "integer",
876
+ "exclusiveMinimum": 0,
877
+ "maximum": 9007199254740991
878
+ }
879
+ },
880
+ "required": [
881
+ "accountId",
882
+ "authorizationId",
883
+ "accountAlias",
884
+ "applicationLabel",
885
+ "authorizationMetadataRevision"
886
+ ],
887
+ "additionalProperties": false
888
+ }
889
+ },
890
+ "required": ["challengeId", "expiresAt", "kind", "managedGoogleDisplay"],
891
+ "additionalProperties": false
892
+ }
893
+ ]
894
+ },
895
+ "error": {
896
+ "type": "object",
897
+ "properties": {
898
+ "code": {
899
+ "type": "string",
900
+ "const": "approval_required"
901
+ },
902
+ "message": {
903
+ "type": "string",
904
+ "minLength": 1,
905
+ "maxLength": 500
906
+ },
907
+ "retryable": {
908
+ "type": "boolean"
909
+ },
910
+ "safeDiagnostic": {
911
+ "type": "object",
912
+ "properties": {
913
+ "code": {
914
+ "type": "string",
915
+ "enum": [
916
+ "provider_unavailable",
917
+ "capability_denied",
918
+ "approval_required",
919
+ "validation_failed",
920
+ "execution_failed",
921
+ "output_truncated",
922
+ "timeout",
923
+ "cancelled",
924
+ "artifact_unavailable"
925
+ ]
644
926
  },
645
927
  "level": {
646
928
  "type": "string",
@@ -851,6 +1133,340 @@
851
1133
  "portal.request-id.not-reserved"
852
1134
  ]
853
1135
  },
1136
+ "portal.file.request": {
1137
+ "jsonSchema": {
1138
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1139
+ "oneOf": [
1140
+ {
1141
+ "type": "object",
1142
+ "properties": {
1143
+ "action": {
1144
+ "type": "string",
1145
+ "const": "attach"
1146
+ },
1147
+ "source": {
1148
+ "oneOf": [
1149
+ {
1150
+ "type": "object",
1151
+ "properties": {
1152
+ "kind": {
1153
+ "type": "string",
1154
+ "const": "operation-file"
1155
+ },
1156
+ "referenceId": {
1157
+ "type": "string",
1158
+ "format": "uuid",
1159
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1160
+ },
1161
+ "path": {
1162
+ "type": "string",
1163
+ "minLength": 1,
1164
+ "maxLength": 8192
1165
+ }
1166
+ },
1167
+ "required": ["kind", "referenceId", "path"],
1168
+ "additionalProperties": false
1169
+ },
1170
+ {
1171
+ "type": "object",
1172
+ "properties": {
1173
+ "kind": {
1174
+ "type": "string",
1175
+ "const": "tool-vm-file"
1176
+ },
1177
+ "path": {
1178
+ "type": "string",
1179
+ "minLength": 1,
1180
+ "maxLength": 8192
1181
+ }
1182
+ },
1183
+ "required": ["kind", "path"],
1184
+ "additionalProperties": false
1185
+ }
1186
+ ]
1187
+ },
1188
+ "caption": {
1189
+ "type": "string",
1190
+ "maxLength": 1024
1191
+ }
1192
+ },
1193
+ "required": ["action", "source"],
1194
+ "additionalProperties": false
1195
+ }
1196
+ ]
1197
+ },
1198
+ "refinementIdentities": []
1199
+ },
1200
+ "portal.file.result": {
1201
+ "jsonSchema": {
1202
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1203
+ "oneOf": [
1204
+ {
1205
+ "type": "object",
1206
+ "properties": {
1207
+ "kind": {
1208
+ "type": "string",
1209
+ "const": "attached"
1210
+ },
1211
+ "messageId": {
1212
+ "type": "string",
1213
+ "minLength": 1,
1214
+ "maxLength": 256
1215
+ },
1216
+ "fileName": {
1217
+ "type": "string",
1218
+ "minLength": 1,
1219
+ "maxLength": 255
1220
+ },
1221
+ "byteLength": {
1222
+ "type": "integer",
1223
+ "minimum": 0,
1224
+ "maximum": 16777216
1225
+ },
1226
+ "sha256": {
1227
+ "type": "string",
1228
+ "pattern": "^[a-f0-9]{64}$"
1229
+ },
1230
+ "cleanup": {
1231
+ "type": "string",
1232
+ "enum": ["complete", "pending"]
1233
+ }
1234
+ },
1235
+ "required": ["kind", "messageId", "fileName", "byteLength", "sha256", "cleanup"],
1236
+ "additionalProperties": false
1237
+ },
1238
+ {
1239
+ "type": "object",
1240
+ "properties": {
1241
+ "kind": {
1242
+ "type": "string",
1243
+ "const": "attachment-failed"
1244
+ },
1245
+ "reason": {
1246
+ "type": "string",
1247
+ "enum": ["route-unavailable", "staging-failed", "native-send-failed"]
1248
+ },
1249
+ "cleanup": {
1250
+ "type": "string",
1251
+ "enum": ["complete", "pending"]
1252
+ }
1253
+ },
1254
+ "required": ["kind", "reason", "cleanup"],
1255
+ "additionalProperties": false
1256
+ },
1257
+ {
1258
+ "type": "object",
1259
+ "properties": {
1260
+ "kind": {
1261
+ "type": "string",
1262
+ "const": "attachment-unconfirmed"
1263
+ },
1264
+ "reason": {
1265
+ "type": "string",
1266
+ "enum": ["send-timeout", "send-error"]
1267
+ },
1268
+ "cleanup": {
1269
+ "type": "string",
1270
+ "enum": ["complete", "pending"]
1271
+ }
1272
+ },
1273
+ "required": ["kind", "reason", "cleanup"],
1274
+ "additionalProperties": false
1275
+ },
1276
+ {
1277
+ "type": "object",
1278
+ "properties": {
1279
+ "kind": {
1280
+ "type": "string",
1281
+ "const": "failed"
1282
+ },
1283
+ "reason": {
1284
+ "type": "string",
1285
+ "enum": [
1286
+ "unavailable",
1287
+ "busy",
1288
+ "expired",
1289
+ "stale-authority",
1290
+ "invalid-path",
1291
+ "size-limit",
1292
+ "destination-conflict",
1293
+ "transfer-failed",
1294
+ "cleanup-pending"
1295
+ ]
1296
+ }
1297
+ },
1298
+ "required": ["kind", "reason"],
1299
+ "additionalProperties": false
1300
+ }
1301
+ ]
1302
+ },
1303
+ "refinementIdentities": []
1304
+ },
1305
+ "portal.attachment.request": {
1306
+ "jsonSchema": {
1307
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1308
+ "oneOf": [
1309
+ {
1310
+ "type": "object",
1311
+ "properties": {
1312
+ "action": {
1313
+ "type": "string",
1314
+ "const": "stage"
1315
+ },
1316
+ "source": {
1317
+ "oneOf": [
1318
+ {
1319
+ "type": "object",
1320
+ "properties": {
1321
+ "kind": {
1322
+ "type": "string",
1323
+ "const": "operation-file"
1324
+ },
1325
+ "referenceId": {
1326
+ "type": "string",
1327
+ "format": "uuid",
1328
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1329
+ },
1330
+ "path": {
1331
+ "type": "string",
1332
+ "minLength": 1,
1333
+ "maxLength": 8192
1334
+ }
1335
+ },
1336
+ "required": ["kind", "referenceId", "path"],
1337
+ "additionalProperties": false
1338
+ },
1339
+ {
1340
+ "type": "object",
1341
+ "properties": {
1342
+ "kind": {
1343
+ "type": "string",
1344
+ "const": "tool-vm-file"
1345
+ },
1346
+ "path": {
1347
+ "type": "string",
1348
+ "minLength": 1,
1349
+ "maxLength": 8192
1350
+ }
1351
+ },
1352
+ "required": ["kind", "path"],
1353
+ "additionalProperties": false
1354
+ }
1355
+ ]
1356
+ }
1357
+ },
1358
+ "required": ["action", "source"],
1359
+ "additionalProperties": false
1360
+ },
1361
+ {
1362
+ "type": "object",
1363
+ "properties": {
1364
+ "action": {
1365
+ "type": "string",
1366
+ "const": "settle"
1367
+ },
1368
+ "stagingId": {
1369
+ "type": "string",
1370
+ "format": "uuid",
1371
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1372
+ },
1373
+ "outcome": {
1374
+ "type": "string",
1375
+ "enum": ["sent", "failed", "unconfirmed", "sender-pending"]
1376
+ }
1377
+ },
1378
+ "required": ["action", "stagingId", "outcome"],
1379
+ "additionalProperties": false
1380
+ }
1381
+ ]
1382
+ },
1383
+ "refinementIdentities": []
1384
+ },
1385
+ "portal.attachment.result": {
1386
+ "jsonSchema": {
1387
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1388
+ "oneOf": [
1389
+ {
1390
+ "type": "object",
1391
+ "properties": {
1392
+ "kind": {
1393
+ "type": "string",
1394
+ "const": "staged"
1395
+ },
1396
+ "stagingId": {
1397
+ "type": "string",
1398
+ "format": "uuid",
1399
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1400
+ },
1401
+ "path": {
1402
+ "type": "string",
1403
+ "pattern": "^\\/home\\/hermes\\/\\.cache\\/agent-vm-native\\/[a-f0-9]{64}\\/[a-f0-9]{64}\\/portal-native-[a-z0-9][a-z0-9_-]{0,63}-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\\/(?!\\.{1,2}$)[^/\\\\\\u0000-\\u001f\\u007f]{1,255}$"
1404
+ },
1405
+ "byteLength": {
1406
+ "type": "integer",
1407
+ "minimum": 0,
1408
+ "maximum": 16777216
1409
+ },
1410
+ "sha256": {
1411
+ "type": "string",
1412
+ "pattern": "^[a-f0-9]{64}$"
1413
+ }
1414
+ },
1415
+ "required": ["kind", "stagingId", "path", "byteLength", "sha256"],
1416
+ "additionalProperties": false
1417
+ },
1418
+ {
1419
+ "type": "object",
1420
+ "properties": {
1421
+ "kind": {
1422
+ "type": "string",
1423
+ "const": "failed"
1424
+ },
1425
+ "reason": {
1426
+ "type": "string",
1427
+ "enum": ["unavailable", "capacity", "transfer-failed", "cleanup-pending"]
1428
+ }
1429
+ },
1430
+ "required": ["kind", "reason"],
1431
+ "additionalProperties": false
1432
+ },
1433
+ {
1434
+ "type": "object",
1435
+ "properties": {
1436
+ "kind": {
1437
+ "type": "string",
1438
+ "const": "cleaned"
1439
+ }
1440
+ },
1441
+ "required": ["kind"],
1442
+ "additionalProperties": false
1443
+ },
1444
+ {
1445
+ "type": "object",
1446
+ "properties": {
1447
+ "kind": {
1448
+ "type": "string",
1449
+ "const": "retained"
1450
+ }
1451
+ },
1452
+ "required": ["kind"],
1453
+ "additionalProperties": false
1454
+ },
1455
+ {
1456
+ "type": "object",
1457
+ "properties": {
1458
+ "kind": {
1459
+ "type": "string",
1460
+ "const": "unavailable"
1461
+ }
1462
+ },
1463
+ "required": ["kind"],
1464
+ "additionalProperties": false
1465
+ }
1466
+ ]
1467
+ },
1468
+ "refinementIdentities": []
1469
+ },
854
1470
  "portal.call.result": {
855
1471
  "jsonSchema": {
856
1472
  "$schema": "https://json-schema.org/draft/2020-12/schema",
@@ -914,11 +1530,165 @@
914
1530
  "items": {
915
1531
  "type": "array",
916
1532
  "items": {
917
- "oneOf": [
1533
+ "anyOf": [
1534
+ {
1535
+ "type": "object",
1536
+ "properties": {
1537
+ "artifacts": {
1538
+ "type": "array",
1539
+ "items": {
1540
+ "type": "object",
1541
+ "properties": {
1542
+ "byteLength": {
1543
+ "type": "integer",
1544
+ "minimum": 0,
1545
+ "maximum": 9007199254740991
1546
+ },
1547
+ "expiresAt": {
1548
+ "type": "string",
1549
+ "format": "date-time",
1550
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
1551
+ },
1552
+ "fingerprint": {
1553
+ "type": "string",
1554
+ "pattern": "^sha256:[0-9a-f]{64}$"
1555
+ },
1556
+ "id": {
1557
+ "type": "string",
1558
+ "minLength": 1
1559
+ },
1560
+ "mediaType": {
1561
+ "type": "string"
1562
+ }
1563
+ },
1564
+ "required": ["byteLength", "expiresAt", "fingerprint", "id"],
1565
+ "additionalProperties": false
1566
+ }
1567
+ },
1568
+ "diagnostics": {
1569
+ "type": "array",
1570
+ "items": {
1571
+ "type": "object",
1572
+ "properties": {
1573
+ "code": {
1574
+ "type": "string",
1575
+ "enum": [
1576
+ "provider_unavailable",
1577
+ "capability_denied",
1578
+ "approval_required",
1579
+ "validation_failed",
1580
+ "execution_failed",
1581
+ "output_truncated",
1582
+ "timeout",
1583
+ "cancelled",
1584
+ "artifact_unavailable"
1585
+ ]
1586
+ },
1587
+ "level": {
1588
+ "type": "string",
1589
+ "enum": ["debug", "info", "warn", "error"]
1590
+ },
1591
+ "safeMessage": {
1592
+ "type": "string",
1593
+ "maxLength": 500
1594
+ },
1595
+ "safeParams": {
1596
+ "type": "object",
1597
+ "propertyNames": {
1598
+ "type": "string"
1599
+ },
1600
+ "additionalProperties": {
1601
+ "anyOf": [
1602
+ {
1603
+ "type": "string"
1604
+ },
1605
+ {
1606
+ "type": "number"
1607
+ },
1608
+ {
1609
+ "type": "boolean"
1610
+ }
1611
+ ]
1612
+ }
1613
+ }
1614
+ },
1615
+ "required": ["code", "level", "safeMessage"],
1616
+ "additionalProperties": false
1617
+ }
1618
+ },
1619
+ "id": {
1620
+ "type": "string",
1621
+ "minLength": 1
1622
+ },
1623
+ "operationId": {
1624
+ "type": "string",
1625
+ "minLength": 1
1626
+ },
1627
+ "outcome": {
1628
+ "type": "object",
1629
+ "properties": {
1630
+ "certainty": {
1631
+ "type": "string",
1632
+ "const": "proven"
1633
+ },
1634
+ "completion": {
1635
+ "type": "string",
1636
+ "const": "succeeded"
1637
+ },
1638
+ "kind": {
1639
+ "type": "string",
1640
+ "const": "completed"
1641
+ },
1642
+ "retryClass": {
1643
+ "type": "string",
1644
+ "const": "forbidden"
1645
+ }
1646
+ },
1647
+ "required": ["certainty", "completion", "kind", "retryClass"],
1648
+ "additionalProperties": false
1649
+ },
1650
+ "owningGeneration": {
1651
+ "type": "string",
1652
+ "minLength": 1
1653
+ },
1654
+ "status": {
1655
+ "type": "string",
1656
+ "const": "ok"
1657
+ },
1658
+ "truncation": {
1659
+ "type": "object",
1660
+ "properties": {
1661
+ "omittedBytes": {
1662
+ "type": "integer",
1663
+ "minimum": 0,
1664
+ "maximum": 9007199254740991
1665
+ },
1666
+ "truncated": {
1667
+ "type": "boolean"
1668
+ }
1669
+ },
1670
+ "required": ["truncated"],
1671
+ "additionalProperties": false
1672
+ },
1673
+ "value": {
1674
+ "$ref": "#/$defs/__schema0"
1675
+ }
1676
+ },
1677
+ "required": [
1678
+ "id",
1679
+ "operationId",
1680
+ "outcome",
1681
+ "owningGeneration",
1682
+ "status",
1683
+ "value"
1684
+ ],
1685
+ "additionalProperties": false
1686
+ },
918
1687
  {
919
1688
  "type": "object",
920
1689
  "properties": {
921
1690
  "artifacts": {
1691
+ "maxItems": 32,
922
1692
  "type": "array",
923
1693
  "items": {
924
1694
  "type": "object",
@@ -1000,6 +1770,84 @@
1000
1770
  "additionalProperties": false
1001
1771
  }
1002
1772
  },
1773
+ "error": {
1774
+ "type": "object",
1775
+ "properties": {
1776
+ "code": {
1777
+ "type": "string",
1778
+ "enum": [
1779
+ "invalid_request",
1780
+ "not_found",
1781
+ "not_authorized",
1782
+ "approval_required",
1783
+ "capability_denied",
1784
+ "validation_failed",
1785
+ "provider_unavailable",
1786
+ "execution_failed",
1787
+ "cancelled",
1788
+ "timeout"
1789
+ ]
1790
+ },
1791
+ "message": {
1792
+ "type": "string",
1793
+ "minLength": 1,
1794
+ "maxLength": 500
1795
+ },
1796
+ "retryable": {
1797
+ "type": "boolean"
1798
+ },
1799
+ "safeDiagnostic": {
1800
+ "type": "object",
1801
+ "properties": {
1802
+ "code": {
1803
+ "type": "string",
1804
+ "enum": [
1805
+ "provider_unavailable",
1806
+ "capability_denied",
1807
+ "approval_required",
1808
+ "validation_failed",
1809
+ "execution_failed",
1810
+ "output_truncated",
1811
+ "timeout",
1812
+ "cancelled",
1813
+ "artifact_unavailable"
1814
+ ]
1815
+ },
1816
+ "level": {
1817
+ "type": "string",
1818
+ "enum": ["debug", "info", "warn", "error"]
1819
+ },
1820
+ "safeMessage": {
1821
+ "type": "string",
1822
+ "maxLength": 500
1823
+ },
1824
+ "safeParams": {
1825
+ "type": "object",
1826
+ "propertyNames": {
1827
+ "type": "string"
1828
+ },
1829
+ "additionalProperties": {
1830
+ "anyOf": [
1831
+ {
1832
+ "type": "string"
1833
+ },
1834
+ {
1835
+ "type": "number"
1836
+ },
1837
+ {
1838
+ "type": "boolean"
1839
+ }
1840
+ ]
1841
+ }
1842
+ }
1843
+ },
1844
+ "required": ["code", "level", "safeMessage"],
1845
+ "additionalProperties": false
1846
+ }
1847
+ },
1848
+ "required": ["code", "message"],
1849
+ "additionalProperties": false
1850
+ },
1003
1851
  "id": {
1004
1852
  "type": "string",
1005
1853
  "minLength": 1
@@ -1017,7 +1865,7 @@
1017
1865
  },
1018
1866
  "completion": {
1019
1867
  "type": "string",
1020
- "const": "succeeded"
1868
+ "const": "failed"
1021
1869
  },
1022
1870
  "kind": {
1023
1871
  "type": "string",
@@ -1037,28 +1885,14 @@
1037
1885
  },
1038
1886
  "status": {
1039
1887
  "type": "string",
1040
- "const": "ok"
1041
- },
1042
- "truncation": {
1043
- "type": "object",
1044
- "properties": {
1045
- "omittedBytes": {
1046
- "type": "integer",
1047
- "minimum": 0,
1048
- "maximum": 9007199254740991
1049
- },
1050
- "truncated": {
1051
- "type": "boolean"
1052
- }
1053
- },
1054
- "required": ["truncated"],
1055
- "additionalProperties": false
1888
+ "const": "error"
1056
1889
  },
1057
1890
  "value": {
1058
1891
  "$ref": "#/$defs/__schema0"
1059
1892
  }
1060
1893
  },
1061
1894
  "required": [
1895
+ "error",
1062
1896
  "id",
1063
1897
  "operationId",
1064
1898
  "outcome",
@@ -1361,21 +2195,84 @@
1361
2195
  "type": "object",
1362
2196
  "properties": {
1363
2197
  "approvalChallenge": {
1364
- "type": "object",
1365
- "properties": {
1366
- "challengeId": {
1367
- "type": "string",
1368
- "format": "uuid",
1369
- "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
2198
+ "anyOf": [
2199
+ {
2200
+ "type": "object",
2201
+ "properties": {
2202
+ "challengeId": {
2203
+ "type": "string",
2204
+ "format": "uuid",
2205
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
2206
+ },
2207
+ "expiresAt": {
2208
+ "type": "string",
2209
+ "format": "date-time",
2210
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
2211
+ }
2212
+ },
2213
+ "required": ["challengeId", "expiresAt"],
2214
+ "additionalProperties": false
1370
2215
  },
1371
- "expiresAt": {
1372
- "type": "string",
1373
- "format": "date-time",
1374
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
2216
+ {
2217
+ "type": "object",
2218
+ "properties": {
2219
+ "challengeId": {
2220
+ "type": "string",
2221
+ "format": "uuid",
2222
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
2223
+ },
2224
+ "expiresAt": {
2225
+ "type": "string",
2226
+ "format": "date-time",
2227
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
2228
+ },
2229
+ "kind": {
2230
+ "type": "string",
2231
+ "const": "managed_google"
2232
+ },
2233
+ "managedGoogleDisplay": {
2234
+ "type": "object",
2235
+ "properties": {
2236
+ "accountId": {
2237
+ "type": "string",
2238
+ "format": "uuid",
2239
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
2240
+ },
2241
+ "authorizationId": {
2242
+ "type": "string",
2243
+ "format": "uuid",
2244
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
2245
+ },
2246
+ "accountAlias": {
2247
+ "type": "string",
2248
+ "minLength": 1,
2249
+ "maxLength": 320
2250
+ },
2251
+ "applicationLabel": {
2252
+ "type": "string",
2253
+ "minLength": 1,
2254
+ "maxLength": 160
2255
+ },
2256
+ "authorizationMetadataRevision": {
2257
+ "type": "integer",
2258
+ "exclusiveMinimum": 0,
2259
+ "maximum": 9007199254740991
2260
+ }
2261
+ },
2262
+ "required": [
2263
+ "accountId",
2264
+ "authorizationId",
2265
+ "accountAlias",
2266
+ "applicationLabel",
2267
+ "authorizationMetadataRevision"
2268
+ ],
2269
+ "additionalProperties": false
2270
+ }
2271
+ },
2272
+ "required": ["challengeId", "expiresAt", "kind", "managedGoogleDisplay"],
2273
+ "additionalProperties": false
1375
2274
  }
1376
- },
1377
- "required": ["challengeId", "expiresAt"],
1378
- "additionalProperties": false
2275
+ ]
1379
2276
  },
1380
2277
  "error": {
1381
2278
  "type": "object",
@@ -1810,6 +2707,50 @@
1810
2707
  "$ref": "#/$defs/__schema0"
1811
2708
  }
1812
2709
  },
2710
+ "callDisposition": {
2711
+ "oneOf": [
2712
+ {
2713
+ "type": "object",
2714
+ "properties": {
2715
+ "kind": {
2716
+ "type": "string",
2717
+ "const": "without-approval"
2718
+ }
2719
+ },
2720
+ "required": ["kind"],
2721
+ "additionalProperties": false
2722
+ },
2723
+ {
2724
+ "type": "object",
2725
+ "properties": {
2726
+ "kind": {
2727
+ "type": "string",
2728
+ "const": "requires-approval"
2729
+ }
2730
+ },
2731
+ "required": ["kind"],
2732
+ "additionalProperties": false
2733
+ },
2734
+ {
2735
+ "type": "object",
2736
+ "properties": {
2737
+ "describeBeforeCall": {
2738
+ "type": "boolean",
2739
+ "const": true
2740
+ },
2741
+ "kind": {
2742
+ "type": "string",
2743
+ "const": "invocation-dependent"
2744
+ }
2745
+ },
2746
+ "required": ["describeBeforeCall", "kind"],
2747
+ "additionalProperties": false
2748
+ }
2749
+ ]
2750
+ },
2751
+ "description": {
2752
+ "type": "string"
2753
+ },
1813
2754
  "inputSchema": {
1814
2755
  "type": "object",
1815
2756
  "propertyNames": {
@@ -1854,10 +2795,262 @@
1854
2795
  "required": ["message", "next"],
1855
2796
  "additionalProperties": false
1856
2797
  },
2798
+ "title": {
2799
+ "type": "string",
2800
+ "minLength": 1
2801
+ },
1857
2802
  "name": {
1858
2803
  "type": "string",
1859
2804
  "minLength": 1
1860
2805
  },
2806
+ "oauthAvailability": {
2807
+ "oneOf": [
2808
+ {
2809
+ "type": "object",
2810
+ "properties": {
2811
+ "kind": {
2812
+ "type": "string",
2813
+ "const": "operation-options"
2814
+ },
2815
+ "items": {
2816
+ "readOnly": true,
2817
+ "maxItems": 256,
2818
+ "type": "array",
2819
+ "items": {
2820
+ "type": "object",
2821
+ "properties": {
2822
+ "requirement": {
2823
+ "type": "object",
2824
+ "properties": {
2825
+ "applicationId": {
2826
+ "type": "string",
2827
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,127}$"
2828
+ },
2829
+ "operationId": {
2830
+ "type": "string",
2831
+ "minLength": 1,
2832
+ "maxLength": 128
2833
+ }
2834
+ },
2835
+ "required": ["applicationId", "operationId"],
2836
+ "additionalProperties": false
2837
+ },
2838
+ "availability": {
2839
+ "oneOf": [
2840
+ {
2841
+ "type": "object",
2842
+ "properties": {
2843
+ "kind": {
2844
+ "type": "string",
2845
+ "const": "accounts"
2846
+ },
2847
+ "accounts": {
2848
+ "readOnly": true,
2849
+ "maxItems": 256,
2850
+ "type": "array",
2851
+ "items": {
2852
+ "type": "object",
2853
+ "properties": {
2854
+ "accountId": {
2855
+ "type": "string",
2856
+ "format": "uuid",
2857
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
2858
+ },
2859
+ "metadata": {
2860
+ "oneOf": [
2861
+ {
2862
+ "type": "object",
2863
+ "properties": {
2864
+ "kind": {
2865
+ "type": "string",
2866
+ "const": "verified"
2867
+ },
2868
+ "accountAlias": {
2869
+ "type": "string",
2870
+ "minLength": 1,
2871
+ "maxLength": 320
2872
+ }
2873
+ },
2874
+ "required": [
2875
+ "kind",
2876
+ "accountAlias"
2877
+ ],
2878
+ "additionalProperties": false
2879
+ },
2880
+ {
2881
+ "type": "object",
2882
+ "properties": {
2883
+ "kind": {
2884
+ "type": "string",
2885
+ "const": "unavailable"
2886
+ }
2887
+ },
2888
+ "required": ["kind"],
2889
+ "additionalProperties": false
2890
+ }
2891
+ ]
2892
+ },
2893
+ "availability": {
2894
+ "oneOf": [
2895
+ {
2896
+ "type": "object",
2897
+ "properties": {
2898
+ "kind": {
2899
+ "type": "string",
2900
+ "const": "ready"
2901
+ },
2902
+ "disposition": {
2903
+ "type": "string",
2904
+ "enum": ["ask", "allow"]
2905
+ },
2906
+ "overrideRevision": {
2907
+ "type": "integer",
2908
+ "exclusiveMinimum": 0,
2909
+ "maximum": 9007199254740991
2910
+ },
2911
+ "defaultsRevision": {
2912
+ "type": "string",
2913
+ "minLength": 1,
2914
+ "maxLength": 256
2915
+ }
2916
+ },
2917
+ "required": [
2918
+ "kind",
2919
+ "disposition",
2920
+ "overrideRevision",
2921
+ "defaultsRevision"
2922
+ ],
2923
+ "additionalProperties": false
2924
+ },
2925
+ {
2926
+ "type": "object",
2927
+ "properties": {
2928
+ "kind": {
2929
+ "type": "string",
2930
+ "const": "consent-required"
2931
+ }
2932
+ },
2933
+ "required": ["kind"],
2934
+ "additionalProperties": false
2935
+ },
2936
+ {
2937
+ "type": "object",
2938
+ "properties": {
2939
+ "kind": {
2940
+ "type": "string",
2941
+ "const": "denied"
2942
+ }
2943
+ },
2944
+ "required": ["kind"],
2945
+ "additionalProperties": false
2946
+ },
2947
+ {
2948
+ "type": "object",
2949
+ "properties": {
2950
+ "kind": {
2951
+ "type": "string",
2952
+ "const": "unavailable"
2953
+ }
2954
+ },
2955
+ "required": ["kind"],
2956
+ "additionalProperties": false
2957
+ }
2958
+ ]
2959
+ }
2960
+ },
2961
+ "required": [
2962
+ "accountId",
2963
+ "metadata",
2964
+ "availability"
2965
+ ],
2966
+ "additionalProperties": false
2967
+ }
2968
+ }
2969
+ },
2970
+ "required": ["kind", "accounts"],
2971
+ "additionalProperties": false
2972
+ },
2973
+ {
2974
+ "type": "object",
2975
+ "properties": {
2976
+ "kind": {
2977
+ "type": "string",
2978
+ "const": "unavailable"
2979
+ }
2980
+ },
2981
+ "required": ["kind"],
2982
+ "additionalProperties": false
2983
+ }
2984
+ ]
2985
+ }
2986
+ },
2987
+ "required": ["requirement", "availability"],
2988
+ "additionalProperties": false
2989
+ }
2990
+ }
2991
+ },
2992
+ "required": ["kind", "items"],
2993
+ "additionalProperties": false
2994
+ },
2995
+ {
2996
+ "type": "object",
2997
+ "properties": {
2998
+ "kind": {
2999
+ "type": "string",
3000
+ "const": "unavailable"
3001
+ }
3002
+ },
3003
+ "required": ["kind"],
3004
+ "additionalProperties": false
3005
+ }
3006
+ ]
3007
+ },
3008
+ "oauthRequirement": {
3009
+ "type": "object",
3010
+ "properties": {
3011
+ "kind": {
3012
+ "type": "string",
3013
+ "const": "google-account"
3014
+ },
3015
+ "accountArgument": {
3016
+ "type": "string",
3017
+ "const": "accountId"
3018
+ },
3019
+ "describeBeforeCall": {
3020
+ "type": "boolean",
3021
+ "const": true
3022
+ },
3023
+ "operations": {
3024
+ "readOnly": true,
3025
+ "minItems": 1,
3026
+ "maxItems": 256,
3027
+ "type": "array",
3028
+ "items": {
3029
+ "type": "object",
3030
+ "properties": {
3031
+ "applicationId": {
3032
+ "type": "string",
3033
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,127}$"
3034
+ },
3035
+ "operationId": {
3036
+ "type": "string",
3037
+ "minLength": 1,
3038
+ "maxLength": 128
3039
+ }
3040
+ },
3041
+ "required": ["applicationId", "operationId"],
3042
+ "additionalProperties": false
3043
+ }
3044
+ }
3045
+ },
3046
+ "required": [
3047
+ "kind",
3048
+ "accountArgument",
3049
+ "describeBeforeCall",
3050
+ "operations"
3051
+ ],
3052
+ "additionalProperties": false
3053
+ },
1861
3054
  "toolRef": {
1862
3055
  "type": "string",
1863
3056
  "minLength": 1
@@ -2097,7 +3290,11 @@
2097
3290
  }
2098
3291
  }
2099
3292
  },
2100
- "refinementIdentities": ["portal.request-id.not-reserved", "portal.result.aggregate-status"]
3293
+ "refinementIdentities": [
3294
+ "portal.google.discovery-policy",
3295
+ "portal.request-id.not-reserved",
3296
+ "portal.result.aggregate-status"
3297
+ ]
2101
3298
  },
2102
3299
  "portal.json-value": {
2103
3300
  "jsonSchema": {
@@ -2406,9 +3603,53 @@
2406
3603
  "items": {
2407
3604
  "type": "object",
2408
3605
  "properties": {
3606
+ "callDisposition": {
3607
+ "oneOf": [
3608
+ {
3609
+ "type": "object",
3610
+ "properties": {
3611
+ "kind": {
3612
+ "type": "string",
3613
+ "const": "without-approval"
3614
+ }
3615
+ },
3616
+ "required": ["kind"],
3617
+ "additionalProperties": false
3618
+ },
3619
+ {
3620
+ "type": "object",
3621
+ "properties": {
3622
+ "kind": {
3623
+ "type": "string",
3624
+ "const": "requires-approval"
3625
+ }
3626
+ },
3627
+ "required": ["kind"],
3628
+ "additionalProperties": false
3629
+ },
3630
+ {
3631
+ "type": "object",
3632
+ "properties": {
3633
+ "describeBeforeCall": {
3634
+ "type": "boolean",
3635
+ "const": true
3636
+ },
3637
+ "kind": {
3638
+ "type": "string",
3639
+ "const": "invocation-dependent"
3640
+ }
3641
+ },
3642
+ "required": ["describeBeforeCall", "kind"],
3643
+ "additionalProperties": false
3644
+ }
3645
+ ]
3646
+ },
2409
3647
  "description": {
2410
3648
  "type": "string"
2411
3649
  },
3650
+ "descriptionTruncated": {
3651
+ "type": "boolean"
3652
+ },
2412
3653
  "input": {
2413
3654
  "type": "object",
2414
3655
  "properties": {
@@ -2504,6 +3745,254 @@
2504
3745
  "type": "string",
2505
3746
  "minLength": 1
2506
3747
  },
3748
+ "oauthAvailability": {
3749
+ "oneOf": [
3750
+ {
3751
+ "type": "object",
3752
+ "properties": {
3753
+ "kind": {
3754
+ "type": "string",
3755
+ "const": "operation-options"
3756
+ },
3757
+ "items": {
3758
+ "readOnly": true,
3759
+ "maxItems": 256,
3760
+ "type": "array",
3761
+ "items": {
3762
+ "type": "object",
3763
+ "properties": {
3764
+ "requirement": {
3765
+ "type": "object",
3766
+ "properties": {
3767
+ "applicationId": {
3768
+ "type": "string",
3769
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,127}$"
3770
+ },
3771
+ "operationId": {
3772
+ "type": "string",
3773
+ "minLength": 1,
3774
+ "maxLength": 128
3775
+ }
3776
+ },
3777
+ "required": ["applicationId", "operationId"],
3778
+ "additionalProperties": false
3779
+ },
3780
+ "availability": {
3781
+ "oneOf": [
3782
+ {
3783
+ "type": "object",
3784
+ "properties": {
3785
+ "kind": {
3786
+ "type": "string",
3787
+ "const": "accounts"
3788
+ },
3789
+ "accounts": {
3790
+ "readOnly": true,
3791
+ "maxItems": 256,
3792
+ "type": "array",
3793
+ "items": {
3794
+ "type": "object",
3795
+ "properties": {
3796
+ "accountId": {
3797
+ "type": "string",
3798
+ "format": "uuid",
3799
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
3800
+ },
3801
+ "metadata": {
3802
+ "oneOf": [
3803
+ {
3804
+ "type": "object",
3805
+ "properties": {
3806
+ "kind": {
3807
+ "type": "string",
3808
+ "const": "verified"
3809
+ },
3810
+ "accountAlias": {
3811
+ "type": "string",
3812
+ "minLength": 1,
3813
+ "maxLength": 320
3814
+ }
3815
+ },
3816
+ "required": [
3817
+ "kind",
3818
+ "accountAlias"
3819
+ ],
3820
+ "additionalProperties": false
3821
+ },
3822
+ {
3823
+ "type": "object",
3824
+ "properties": {
3825
+ "kind": {
3826
+ "type": "string",
3827
+ "const": "unavailable"
3828
+ }
3829
+ },
3830
+ "required": ["kind"],
3831
+ "additionalProperties": false
3832
+ }
3833
+ ]
3834
+ },
3835
+ "availability": {
3836
+ "oneOf": [
3837
+ {
3838
+ "type": "object",
3839
+ "properties": {
3840
+ "kind": {
3841
+ "type": "string",
3842
+ "const": "ready"
3843
+ },
3844
+ "disposition": {
3845
+ "type": "string",
3846
+ "enum": ["ask", "allow"]
3847
+ },
3848
+ "overrideRevision": {
3849
+ "type": "integer",
3850
+ "exclusiveMinimum": 0,
3851
+ "maximum": 9007199254740991
3852
+ },
3853
+ "defaultsRevision": {
3854
+ "type": "string",
3855
+ "minLength": 1,
3856
+ "maxLength": 256
3857
+ }
3858
+ },
3859
+ "required": [
3860
+ "kind",
3861
+ "disposition",
3862
+ "overrideRevision",
3863
+ "defaultsRevision"
3864
+ ],
3865
+ "additionalProperties": false
3866
+ },
3867
+ {
3868
+ "type": "object",
3869
+ "properties": {
3870
+ "kind": {
3871
+ "type": "string",
3872
+ "const": "consent-required"
3873
+ }
3874
+ },
3875
+ "required": ["kind"],
3876
+ "additionalProperties": false
3877
+ },
3878
+ {
3879
+ "type": "object",
3880
+ "properties": {
3881
+ "kind": {
3882
+ "type": "string",
3883
+ "const": "denied"
3884
+ }
3885
+ },
3886
+ "required": ["kind"],
3887
+ "additionalProperties": false
3888
+ },
3889
+ {
3890
+ "type": "object",
3891
+ "properties": {
3892
+ "kind": {
3893
+ "type": "string",
3894
+ "const": "unavailable"
3895
+ }
3896
+ },
3897
+ "required": ["kind"],
3898
+ "additionalProperties": false
3899
+ }
3900
+ ]
3901
+ }
3902
+ },
3903
+ "required": [
3904
+ "accountId",
3905
+ "metadata",
3906
+ "availability"
3907
+ ],
3908
+ "additionalProperties": false
3909
+ }
3910
+ }
3911
+ },
3912
+ "required": ["kind", "accounts"],
3913
+ "additionalProperties": false
3914
+ },
3915
+ {
3916
+ "type": "object",
3917
+ "properties": {
3918
+ "kind": {
3919
+ "type": "string",
3920
+ "const": "unavailable"
3921
+ }
3922
+ },
3923
+ "required": ["kind"],
3924
+ "additionalProperties": false
3925
+ }
3926
+ ]
3927
+ }
3928
+ },
3929
+ "required": ["requirement", "availability"],
3930
+ "additionalProperties": false
3931
+ }
3932
+ }
3933
+ },
3934
+ "required": ["kind", "items"],
3935
+ "additionalProperties": false
3936
+ },
3937
+ {
3938
+ "type": "object",
3939
+ "properties": {
3940
+ "kind": {
3941
+ "type": "string",
3942
+ "const": "unavailable"
3943
+ }
3944
+ },
3945
+ "required": ["kind"],
3946
+ "additionalProperties": false
3947
+ }
3948
+ ]
3949
+ },
3950
+ "oauthRequirement": {
3951
+ "type": "object",
3952
+ "properties": {
3953
+ "kind": {
3954
+ "type": "string",
3955
+ "const": "google-account"
3956
+ },
3957
+ "accountArgument": {
3958
+ "type": "string",
3959
+ "const": "accountId"
3960
+ },
3961
+ "describeBeforeCall": {
3962
+ "type": "boolean",
3963
+ "const": true
3964
+ },
3965
+ "operations": {
3966
+ "readOnly": true,
3967
+ "minItems": 1,
3968
+ "maxItems": 256,
3969
+ "type": "array",
3970
+ "items": {
3971
+ "type": "object",
3972
+ "properties": {
3973
+ "applicationId": {
3974
+ "type": "string",
3975
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,127}$"
3976
+ },
3977
+ "operationId": {
3978
+ "type": "string",
3979
+ "minLength": 1,
3980
+ "maxLength": 128
3981
+ }
3982
+ },
3983
+ "required": ["applicationId", "operationId"],
3984
+ "additionalProperties": false
3985
+ }
3986
+ }
3987
+ },
3988
+ "required": [
3989
+ "kind",
3990
+ "accountArgument",
3991
+ "describeBeforeCall",
3992
+ "operations"
3993
+ ],
3994
+ "additionalProperties": false
3995
+ },
2507
3996
  "toolRef": {
2508
3997
  "type": "string",
2509
3998
  "minLength": 1
@@ -2694,7 +4183,11 @@
2694
4183
  "required": ["items", "ok"],
2695
4184
  "additionalProperties": false
2696
4185
  },
2697
- "refinementIdentities": ["portal.request-id.not-reserved", "portal.result.aggregate-status"]
4186
+ "refinementIdentities": [
4187
+ "portal.google.discovery-policy",
4188
+ "portal.request-id.not-reserved",
4189
+ "portal.result.aggregate-status"
4190
+ ]
2698
4191
  },
2699
4192
  "portal.progress.event": {
2700
4193
  "jsonSchema": {
@@ -2961,9 +4454,53 @@
2961
4454
  "items": {
2962
4455
  "type": "object",
2963
4456
  "properties": {
4457
+ "callDisposition": {
4458
+ "oneOf": [
4459
+ {
4460
+ "type": "object",
4461
+ "properties": {
4462
+ "kind": {
4463
+ "type": "string",
4464
+ "const": "without-approval"
4465
+ }
4466
+ },
4467
+ "required": ["kind"],
4468
+ "additionalProperties": false
4469
+ },
4470
+ {
4471
+ "type": "object",
4472
+ "properties": {
4473
+ "kind": {
4474
+ "type": "string",
4475
+ "const": "requires-approval"
4476
+ }
4477
+ },
4478
+ "required": ["kind"],
4479
+ "additionalProperties": false
4480
+ },
4481
+ {
4482
+ "type": "object",
4483
+ "properties": {
4484
+ "describeBeforeCall": {
4485
+ "type": "boolean",
4486
+ "const": true
4487
+ },
4488
+ "kind": {
4489
+ "type": "string",
4490
+ "const": "invocation-dependent"
4491
+ }
4492
+ },
4493
+ "required": ["describeBeforeCall", "kind"],
4494
+ "additionalProperties": false
4495
+ }
4496
+ ]
4497
+ },
2964
4498
  "description": {
2965
4499
  "type": "string"
2966
4500
  },
4501
+ "descriptionTruncated": {
4502
+ "type": "boolean"
4503
+ },
2967
4504
  "input": {
2968
4505
  "type": "object",
2969
4506
  "properties": {
@@ -3059,6 +4596,254 @@
3059
4596
  "type": "string",
3060
4597
  "minLength": 1
3061
4598
  },
4599
+ "oauthAvailability": {
4600
+ "oneOf": [
4601
+ {
4602
+ "type": "object",
4603
+ "properties": {
4604
+ "kind": {
4605
+ "type": "string",
4606
+ "const": "operation-options"
4607
+ },
4608
+ "items": {
4609
+ "readOnly": true,
4610
+ "maxItems": 256,
4611
+ "type": "array",
4612
+ "items": {
4613
+ "type": "object",
4614
+ "properties": {
4615
+ "requirement": {
4616
+ "type": "object",
4617
+ "properties": {
4618
+ "applicationId": {
4619
+ "type": "string",
4620
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,127}$"
4621
+ },
4622
+ "operationId": {
4623
+ "type": "string",
4624
+ "minLength": 1,
4625
+ "maxLength": 128
4626
+ }
4627
+ },
4628
+ "required": ["applicationId", "operationId"],
4629
+ "additionalProperties": false
4630
+ },
4631
+ "availability": {
4632
+ "oneOf": [
4633
+ {
4634
+ "type": "object",
4635
+ "properties": {
4636
+ "kind": {
4637
+ "type": "string",
4638
+ "const": "accounts"
4639
+ },
4640
+ "accounts": {
4641
+ "readOnly": true,
4642
+ "maxItems": 256,
4643
+ "type": "array",
4644
+ "items": {
4645
+ "type": "object",
4646
+ "properties": {
4647
+ "accountId": {
4648
+ "type": "string",
4649
+ "format": "uuid",
4650
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
4651
+ },
4652
+ "metadata": {
4653
+ "oneOf": [
4654
+ {
4655
+ "type": "object",
4656
+ "properties": {
4657
+ "kind": {
4658
+ "type": "string",
4659
+ "const": "verified"
4660
+ },
4661
+ "accountAlias": {
4662
+ "type": "string",
4663
+ "minLength": 1,
4664
+ "maxLength": 320
4665
+ }
4666
+ },
4667
+ "required": [
4668
+ "kind",
4669
+ "accountAlias"
4670
+ ],
4671
+ "additionalProperties": false
4672
+ },
4673
+ {
4674
+ "type": "object",
4675
+ "properties": {
4676
+ "kind": {
4677
+ "type": "string",
4678
+ "const": "unavailable"
4679
+ }
4680
+ },
4681
+ "required": ["kind"],
4682
+ "additionalProperties": false
4683
+ }
4684
+ ]
4685
+ },
4686
+ "availability": {
4687
+ "oneOf": [
4688
+ {
4689
+ "type": "object",
4690
+ "properties": {
4691
+ "kind": {
4692
+ "type": "string",
4693
+ "const": "ready"
4694
+ },
4695
+ "disposition": {
4696
+ "type": "string",
4697
+ "enum": ["ask", "allow"]
4698
+ },
4699
+ "overrideRevision": {
4700
+ "type": "integer",
4701
+ "exclusiveMinimum": 0,
4702
+ "maximum": 9007199254740991
4703
+ },
4704
+ "defaultsRevision": {
4705
+ "type": "string",
4706
+ "minLength": 1,
4707
+ "maxLength": 256
4708
+ }
4709
+ },
4710
+ "required": [
4711
+ "kind",
4712
+ "disposition",
4713
+ "overrideRevision",
4714
+ "defaultsRevision"
4715
+ ],
4716
+ "additionalProperties": false
4717
+ },
4718
+ {
4719
+ "type": "object",
4720
+ "properties": {
4721
+ "kind": {
4722
+ "type": "string",
4723
+ "const": "consent-required"
4724
+ }
4725
+ },
4726
+ "required": ["kind"],
4727
+ "additionalProperties": false
4728
+ },
4729
+ {
4730
+ "type": "object",
4731
+ "properties": {
4732
+ "kind": {
4733
+ "type": "string",
4734
+ "const": "denied"
4735
+ }
4736
+ },
4737
+ "required": ["kind"],
4738
+ "additionalProperties": false
4739
+ },
4740
+ {
4741
+ "type": "object",
4742
+ "properties": {
4743
+ "kind": {
4744
+ "type": "string",
4745
+ "const": "unavailable"
4746
+ }
4747
+ },
4748
+ "required": ["kind"],
4749
+ "additionalProperties": false
4750
+ }
4751
+ ]
4752
+ }
4753
+ },
4754
+ "required": [
4755
+ "accountId",
4756
+ "metadata",
4757
+ "availability"
4758
+ ],
4759
+ "additionalProperties": false
4760
+ }
4761
+ }
4762
+ },
4763
+ "required": ["kind", "accounts"],
4764
+ "additionalProperties": false
4765
+ },
4766
+ {
4767
+ "type": "object",
4768
+ "properties": {
4769
+ "kind": {
4770
+ "type": "string",
4771
+ "const": "unavailable"
4772
+ }
4773
+ },
4774
+ "required": ["kind"],
4775
+ "additionalProperties": false
4776
+ }
4777
+ ]
4778
+ }
4779
+ },
4780
+ "required": ["requirement", "availability"],
4781
+ "additionalProperties": false
4782
+ }
4783
+ }
4784
+ },
4785
+ "required": ["kind", "items"],
4786
+ "additionalProperties": false
4787
+ },
4788
+ {
4789
+ "type": "object",
4790
+ "properties": {
4791
+ "kind": {
4792
+ "type": "string",
4793
+ "const": "unavailable"
4794
+ }
4795
+ },
4796
+ "required": ["kind"],
4797
+ "additionalProperties": false
4798
+ }
4799
+ ]
4800
+ },
4801
+ "oauthRequirement": {
4802
+ "type": "object",
4803
+ "properties": {
4804
+ "kind": {
4805
+ "type": "string",
4806
+ "const": "google-account"
4807
+ },
4808
+ "accountArgument": {
4809
+ "type": "string",
4810
+ "const": "accountId"
4811
+ },
4812
+ "describeBeforeCall": {
4813
+ "type": "boolean",
4814
+ "const": true
4815
+ },
4816
+ "operations": {
4817
+ "readOnly": true,
4818
+ "minItems": 1,
4819
+ "maxItems": 256,
4820
+ "type": "array",
4821
+ "items": {
4822
+ "type": "object",
4823
+ "properties": {
4824
+ "applicationId": {
4825
+ "type": "string",
4826
+ "pattern": "^[a-z0-9][a-z0-9._-]{0,127}$"
4827
+ },
4828
+ "operationId": {
4829
+ "type": "string",
4830
+ "minLength": 1,
4831
+ "maxLength": 128
4832
+ }
4833
+ },
4834
+ "required": ["applicationId", "operationId"],
4835
+ "additionalProperties": false
4836
+ }
4837
+ }
4838
+ },
4839
+ "required": [
4840
+ "kind",
4841
+ "accountArgument",
4842
+ "describeBeforeCall",
4843
+ "operations"
4844
+ ],
4845
+ "additionalProperties": false
4846
+ },
3062
4847
  "toolRef": {
3063
4848
  "type": "string",
3064
4849
  "minLength": 1
@@ -3316,7 +5101,11 @@
3316
5101
  }
3317
5102
  }
3318
5103
  },
3319
- "refinementIdentities": ["portal.request-id.not-reserved", "portal.result.aggregate-status"]
5104
+ "refinementIdentities": [
5105
+ "portal.google.discovery-policy",
5106
+ "portal.request-id.not-reserved",
5107
+ "portal.result.aggregate-status"
5108
+ ]
3320
5109
  },
3321
5110
  "gateway.approval.decision-request": {
3322
5111
  "jsonSchema": {