@soat/cli 0.56.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +1219 -31
  2. package/package.json +3 -3
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import * as os from "node:os";
13
13
  import { createHmac, timingSafeEqual } from "node:crypto";
14
14
 
15
15
  //#region package.json
16
- var version = "0.56.0";
16
+ var version = "0.58.0";
17
17
 
18
18
  //#endregion
19
19
  //#region src/cli-wrappers/wrappers/formations.ts
@@ -442,6 +442,8 @@ var routes = {
442
442
  httpMethod: "get",
443
443
  pathParams: [],
444
444
  queryParams: ["project_id", "kind", "severity", "agent_id", "generation_id", "orchestration_run_id", "cursor", "limit"],
445
+ headerParams: [],
446
+ cookieParams: [],
445
447
  flags: [{
446
448
  "name": "project_id",
447
449
  "description": "Project ID (required if not using project key auth)",
@@ -492,6 +494,54 @@ var routes = {
492
494
  "in": "query"
493
495
  }]
494
496
  },
497
+ "export-activity": {
498
+ serviceClass: "Activity",
499
+ operationId: "exportActivity",
500
+ description: "Streams a project's activity entries as newline-delimited JSON — one entry object per line, **oldest first**, where the feed itself reads newest first: a feed answers what just happened, and a file is read start to end. `project_id` is required: the export is per-project by design. Filters behave exactly as they do on the list endpoint.",
501
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/activity",
502
+ httpMethod: "get",
503
+ pathParams: [],
504
+ queryParams: ["project_id", "kind", "severity", "agent_id", "generation_id", "orchestration_run_id"],
505
+ headerParams: [],
506
+ cookieParams: [],
507
+ flags: [{
508
+ "name": "project_id",
509
+ "description": "Project whose activity is exported",
510
+ "required": true,
511
+ "type": "string",
512
+ "in": "query"
513
+ }, {
514
+ "name": "kind",
515
+ "description": "Only entries of this kind",
516
+ "required": false,
517
+ "type": "string",
518
+ "in": "query"
519
+ }, {
520
+ "name": "severity",
521
+ "description": "Only entries of this severity",
522
+ "required": false,
523
+ "type": "string",
524
+ "in": "query"
525
+ }, {
526
+ "name": "agent_id",
527
+ "description": "Only entries an agent produced",
528
+ "required": false,
529
+ "type": "string",
530
+ "in": "query"
531
+ }, {
532
+ "name": "generation_id",
533
+ "description": "Only entries a generation produced",
534
+ "required": false,
535
+ "type": "string",
536
+ "in": "query"
537
+ }, {
538
+ "name": "orchestration_run_id",
539
+ "description": "Only entries an orchestration run produced",
540
+ "required": false,
541
+ "type": "string",
542
+ "in": "query"
543
+ }]
544
+ },
495
545
  "list-actors": {
496
546
  serviceClass: "Actors",
497
547
  operationId: "listActors",
@@ -500,6 +550,8 @@ var routes = {
500
550
  httpMethod: "get",
501
551
  pathParams: [],
502
552
  queryParams: ["project_id", "external_id", "name", "agent_id", "chat_id", "conversation_id", "tags", "limit", "offset"],
553
+ headerParams: [],
554
+ cookieParams: [],
503
555
  flags: [{
504
556
  "name": "project_id",
505
557
  "description": "Project ID (optional)",
@@ -564,6 +616,8 @@ var routes = {
564
616
  httpMethod: "post",
565
617
  pathParams: [],
566
618
  queryParams: [],
619
+ headerParams: [],
620
+ cookieParams: [],
567
621
  flags: [{
568
622
  "name": "project_id",
569
623
  "description": "Project ID. Required for JWT auth; omit when using an project key.",
@@ -610,6 +664,8 @@ var routes = {
610
664
  httpMethod: "get",
611
665
  pathParams: ["actor_id"],
612
666
  queryParams: [],
667
+ headerParams: [],
668
+ cookieParams: [],
613
669
  flags: [{
614
670
  "name": "actor_id",
615
671
  "description": "Actor ID",
@@ -626,6 +682,8 @@ var routes = {
626
682
  httpMethod: "patch",
627
683
  pathParams: ["actor_id"],
628
684
  queryParams: [],
685
+ headerParams: [],
686
+ cookieParams: [],
629
687
  flags: [{
630
688
  "name": "actor_id",
631
689
  "description": "Actor ID",
@@ -664,7 +722,7 @@ var routes = {
664
722
  "in": "body"
665
723
  }, {
666
724
  "name": "tags",
667
- "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.",
725
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
668
726
  "required": false,
669
727
  "type": "object",
670
728
  "in": "body"
@@ -678,6 +736,8 @@ var routes = {
678
736
  httpMethod: "delete",
679
737
  pathParams: ["actor_id"],
680
738
  queryParams: [],
739
+ headerParams: [],
740
+ cookieParams: [],
681
741
  flags: [{
682
742
  "name": "actor_id",
683
743
  "description": "Actor ID",
@@ -694,6 +754,8 @@ var routes = {
694
754
  httpMethod: "get",
695
755
  pathParams: ["actor_id"],
696
756
  queryParams: [],
757
+ headerParams: [],
758
+ cookieParams: [],
697
759
  flags: [{
698
760
  "name": "actor_id",
699
761
  "description": "Actor ID",
@@ -710,6 +772,8 @@ var routes = {
710
772
  httpMethod: "put",
711
773
  pathParams: ["actor_id"],
712
774
  queryParams: [],
775
+ headerParams: [],
776
+ cookieParams: [],
713
777
  flags: [{
714
778
  "name": "actor_id",
715
779
  "description": "Actor ID",
@@ -726,6 +790,8 @@ var routes = {
726
790
  httpMethod: "patch",
727
791
  pathParams: ["actor_id"],
728
792
  queryParams: [],
793
+ headerParams: [],
794
+ cookieParams: [],
729
795
  flags: [{
730
796
  "name": "actor_id",
731
797
  "description": "Actor ID",
@@ -742,6 +808,8 @@ var routes = {
742
808
  httpMethod: "get",
743
809
  pathParams: [],
744
810
  queryParams: ["project_id", "limit", "offset"],
811
+ headerParams: [],
812
+ cookieParams: [],
745
813
  flags: [{
746
814
  "name": "project_id",
747
815
  "description": "Project public ID to filter by",
@@ -770,6 +838,8 @@ var routes = {
770
838
  httpMethod: "post",
771
839
  pathParams: [],
772
840
  queryParams: [],
841
+ headerParams: [],
842
+ cookieParams: [],
773
843
  flags: [{
774
844
  "name": "project_id",
775
845
  "description": "Public ID of the project",
@@ -822,7 +892,7 @@ var routes = {
822
892
  "name": "tool_choice",
823
893
  "description": "Tool choice strategy. Accepts a string (`\"auto\"`, `\"required\"`) or an object (`{ \"type\": \"tool\", \"tool_name\": \"my_tool\" }`). A forcing value (`\"required\"` or the object form) forbids a final assistant message on every step of every turn, including a resumed or continued one, so it requires a `has_tool_call` entry in `stop_conditions` — otherwise the write is refused with `FORCED_TOOL_CHOICE_CANNOT_STOP`.",
824
894
  "required": false,
825
- "type": "any",
895
+ "type": "unknown",
826
896
  "in": "body"
827
897
  }, {
828
898
  "name": "stop_conditions",
@@ -918,6 +988,8 @@ var routes = {
918
988
  httpMethod: "get",
919
989
  pathParams: ["agent_id"],
920
990
  queryParams: [],
991
+ headerParams: [],
992
+ cookieParams: [],
921
993
  flags: [{
922
994
  "name": "agent_id",
923
995
  "description": "",
@@ -934,6 +1006,8 @@ var routes = {
934
1006
  httpMethod: "put",
935
1007
  pathParams: ["agent_id"],
936
1008
  queryParams: [],
1009
+ headerParams: [],
1010
+ cookieParams: [],
937
1011
  flags: [{
938
1012
  "name": "agent_id",
939
1013
  "description": "",
@@ -986,7 +1060,7 @@ var routes = {
986
1060
  "name": "tool_choice",
987
1061
  "description": "Tool choice strategy. Accepts a string (`\"auto\"`, `\"required\"`) or an object (`{ \"type\": \"tool\", \"tool_name\": \"my_tool\" }`). A forcing value (`\"required\"` or the object form) forbids a final assistant message on every step of every turn, including a resumed or continued one, so it requires a `has_tool_call` entry in `stop_conditions` — otherwise the write is refused with `FORCED_TOOL_CHOICE_CANNOT_STOP`.",
988
1062
  "required": false,
989
- "type": "any",
1063
+ "type": "unknown",
990
1064
  "in": "body"
991
1065
  }, {
992
1066
  "name": "stop_conditions",
@@ -1072,6 +1146,12 @@ var routes = {
1072
1146
  "required": false,
1073
1147
  "type": "string",
1074
1148
  "in": "body"
1149
+ }, {
1150
+ "name": "expected_version",
1151
+ "description": "Refuses the write unless the resource is at this version.",
1152
+ "required": false,
1153
+ "type": "integer",
1154
+ "in": "body"
1075
1155
  }]
1076
1156
  },
1077
1157
  "patch-agent": {
@@ -1082,12 +1162,20 @@ var routes = {
1082
1162
  httpMethod: "patch",
1083
1163
  pathParams: ["agent_id"],
1084
1164
  queryParams: [],
1165
+ headerParams: ["If-Match"],
1166
+ cookieParams: [],
1085
1167
  flags: [{
1086
1168
  "name": "agent_id",
1087
1169
  "description": "",
1088
1170
  "required": true,
1089
1171
  "type": "string",
1090
1172
  "in": "path"
1173
+ }, {
1174
+ "name": "If-Match",
1175
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
1176
+ "required": false,
1177
+ "type": "string",
1178
+ "in": "header"
1091
1179
  }, {
1092
1180
  "name": "ai_provider_id",
1093
1181
  "description": "",
@@ -1134,7 +1222,7 @@ var routes = {
1134
1222
  "name": "tool_choice",
1135
1223
  "description": "Tool choice strategy. Accepts a string (`\"auto\"`, `\"required\"`) or an object (`{ \"type\": \"tool\", \"tool_name\": \"my_tool\" }`). A forcing value (`\"required\"` or the object form) forbids a final assistant message on every step of every turn, including a resumed or continued one, so it requires a `has_tool_call` entry in `stop_conditions` — otherwise the write is refused with `FORCED_TOOL_CHOICE_CANNOT_STOP`.",
1136
1224
  "required": false,
1137
- "type": "any",
1225
+ "type": "unknown",
1138
1226
  "in": "body"
1139
1227
  }, {
1140
1228
  "name": "stop_conditions",
@@ -1220,6 +1308,12 @@ var routes = {
1220
1308
  "required": false,
1221
1309
  "type": "string",
1222
1310
  "in": "body"
1311
+ }, {
1312
+ "name": "expected_version",
1313
+ "description": "Refuses the write unless the resource is at this version.",
1314
+ "required": false,
1315
+ "type": "integer",
1316
+ "in": "body"
1223
1317
  }]
1224
1318
  },
1225
1319
  "delete-agent": {
@@ -1230,6 +1324,8 @@ var routes = {
1230
1324
  httpMethod: "delete",
1231
1325
  pathParams: ["agent_id"],
1232
1326
  queryParams: ["force"],
1327
+ headerParams: [],
1328
+ cookieParams: [],
1233
1329
  flags: [{
1234
1330
  "name": "agent_id",
1235
1331
  "description": "",
@@ -1252,6 +1348,8 @@ var routes = {
1252
1348
  httpMethod: "post",
1253
1349
  pathParams: ["agent_id"],
1254
1350
  queryParams: ["wait"],
1351
+ headerParams: [],
1352
+ cookieParams: [],
1255
1353
  flags: [{
1256
1354
  "name": "agent_id",
1257
1355
  "description": "",
@@ -1326,7 +1424,7 @@ var routes = {
1326
1424
  "in": "body"
1327
1425
  }, {
1328
1426
  "name": "knowledge_config",
1329
- "description": "Per-generation knowledge retrieval override. Array filters (memory_store_ids, document_ids, document_paths) are unioned with the agent's stored knowledge_config; `tags` pairs are merged with the override winning per key; scalar fields (min_score, limit) use the per-generation value when present.",
1427
+ "description": "Per-generation knowledge retrieval override. Array filters (memory_store_ids, document_ids, document_paths) are unioned with the agent's stored knowledge_config; `tags` pairs are merged with the override winning per key; scalar fields (min_score, rrf_k, recency_half_life_days, limit) use the per-generation value when present.",
1330
1428
  "required": false,
1331
1429
  "type": "object",
1332
1430
  "in": "body"
@@ -1340,6 +1438,8 @@ var routes = {
1340
1438
  httpMethod: "post",
1341
1439
  pathParams: ["agent_id", "generation_id"],
1342
1440
  queryParams: [],
1441
+ headerParams: [],
1442
+ cookieParams: [],
1343
1443
  flags: [{
1344
1444
  "name": "agent_id",
1345
1445
  "description": "",
@@ -1368,6 +1468,8 @@ var routes = {
1368
1468
  httpMethod: "get",
1369
1469
  pathParams: ["agent_id"],
1370
1470
  queryParams: ["limit", "offset"],
1471
+ headerParams: [],
1472
+ cookieParams: [],
1371
1473
  flags: [{
1372
1474
  "name": "agent_id",
1373
1475
  "description": "",
@@ -1396,6 +1498,8 @@ var routes = {
1396
1498
  httpMethod: "get",
1397
1499
  pathParams: ["agent_id", "version"],
1398
1500
  queryParams: [],
1501
+ headerParams: [],
1502
+ cookieParams: [],
1399
1503
  flags: [{
1400
1504
  "name": "agent_id",
1401
1505
  "description": "",
@@ -1418,6 +1522,8 @@ var routes = {
1418
1522
  httpMethod: "post",
1419
1523
  pathParams: ["agent_id", "version"],
1420
1524
  queryParams: [],
1525
+ headerParams: [],
1526
+ cookieParams: [],
1421
1527
  flags: [{
1422
1528
  "name": "agent_id",
1423
1529
  "description": "",
@@ -1446,6 +1552,8 @@ var routes = {
1446
1552
  httpMethod: "put",
1447
1553
  pathParams: ["agent_id"],
1448
1554
  queryParams: [],
1555
+ headerParams: [],
1556
+ cookieParams: [],
1449
1557
  flags: [{
1450
1558
  "name": "agent_id",
1451
1559
  "description": "",
@@ -1486,6 +1594,8 @@ var routes = {
1486
1594
  httpMethod: "post",
1487
1595
  pathParams: ["agent_id"],
1488
1596
  queryParams: [],
1597
+ headerParams: [],
1598
+ cookieParams: [],
1489
1599
  flags: [{
1490
1600
  "name": "agent_id",
1491
1601
  "description": "",
@@ -1502,6 +1612,8 @@ var routes = {
1502
1612
  httpMethod: "post",
1503
1613
  pathParams: ["agent_id"],
1504
1614
  queryParams: [],
1615
+ headerParams: [],
1616
+ cookieParams: [],
1505
1617
  flags: [{
1506
1618
  "name": "agent_id",
1507
1619
  "description": "",
@@ -1518,6 +1630,8 @@ var routes = {
1518
1630
  httpMethod: "get",
1519
1631
  pathParams: [],
1520
1632
  queryParams: ["project_id", "limit", "offset"],
1633
+ headerParams: [],
1634
+ cookieParams: [],
1521
1635
  flags: [{
1522
1636
  "name": "project_id",
1523
1637
  "description": "Project ID (required if not using project key auth)",
@@ -1546,6 +1660,8 @@ var routes = {
1546
1660
  httpMethod: "post",
1547
1661
  pathParams: [],
1548
1662
  queryParams: [],
1663
+ headerParams: [],
1664
+ cookieParams: [],
1549
1665
  flags: [{
1550
1666
  "name": "project_id",
1551
1667
  "description": "Project ID (required if not using project key auth)",
@@ -1598,6 +1714,8 @@ var routes = {
1598
1714
  httpMethod: "get",
1599
1715
  pathParams: ["ai_provider_id"],
1600
1716
  queryParams: [],
1717
+ headerParams: [],
1718
+ cookieParams: [],
1601
1719
  flags: [{
1602
1720
  "name": "ai_provider_id",
1603
1721
  "description": "AI Provider ID",
@@ -1614,6 +1732,8 @@ var routes = {
1614
1732
  httpMethod: "patch",
1615
1733
  pathParams: ["ai_provider_id"],
1616
1734
  queryParams: [],
1735
+ headerParams: [],
1736
+ cookieParams: [],
1617
1737
  flags: [{
1618
1738
  "name": "ai_provider_id",
1619
1739
  "description": "AI Provider ID",
@@ -1666,6 +1786,8 @@ var routes = {
1666
1786
  httpMethod: "delete",
1667
1787
  pathParams: ["ai_provider_id"],
1668
1788
  queryParams: ["force"],
1789
+ headerParams: [],
1790
+ cookieParams: [],
1669
1791
  flags: [{
1670
1792
  "name": "ai_provider_id",
1671
1793
  "description": "AI Provider ID",
@@ -1688,6 +1810,8 @@ var routes = {
1688
1810
  httpMethod: "get",
1689
1811
  pathParams: ["ai_provider_id"],
1690
1812
  queryParams: [],
1813
+ headerParams: [],
1814
+ cookieParams: [],
1691
1815
  flags: [{
1692
1816
  "name": "ai_provider_id",
1693
1817
  "description": "AI Provider ID",
@@ -1704,6 +1828,8 @@ var routes = {
1704
1828
  httpMethod: "get",
1705
1829
  pathParams: ["ai_provider_id"],
1706
1830
  queryParams: [],
1831
+ headerParams: [],
1832
+ cookieParams: [],
1707
1833
  flags: [{
1708
1834
  "name": "ai_provider_id",
1709
1835
  "description": "AI Provider ID",
@@ -1720,6 +1846,8 @@ var routes = {
1720
1846
  httpMethod: "put",
1721
1847
  pathParams: ["ai_provider_id"],
1722
1848
  queryParams: [],
1849
+ headerParams: [],
1850
+ cookieParams: [],
1723
1851
  flags: [{
1724
1852
  "name": "ai_provider_id",
1725
1853
  "description": "AI Provider ID",
@@ -1742,6 +1870,8 @@ var routes = {
1742
1870
  httpMethod: "get",
1743
1871
  pathParams: [],
1744
1872
  queryParams: ["limit", "offset"],
1873
+ headerParams: [],
1874
+ cookieParams: [],
1745
1875
  flags: [{
1746
1876
  "name": "limit",
1747
1877
  "description": "Maximum number of results to return",
@@ -1764,6 +1894,8 @@ var routes = {
1764
1894
  httpMethod: "post",
1765
1895
  pathParams: [],
1766
1896
  queryParams: [],
1897
+ headerParams: [],
1898
+ cookieParams: [],
1767
1899
  flags: [{
1768
1900
  "name": "name",
1769
1901
  "description": "Key name for identification",
@@ -1792,6 +1924,8 @@ var routes = {
1792
1924
  httpMethod: "get",
1793
1925
  pathParams: ["api_key_id"],
1794
1926
  queryParams: [],
1927
+ headerParams: [],
1928
+ cookieParams: [],
1795
1929
  flags: [{
1796
1930
  "name": "api_key_id",
1797
1931
  "description": "API key public ID (key_ prefix)",
@@ -1808,6 +1942,8 @@ var routes = {
1808
1942
  httpMethod: "put",
1809
1943
  pathParams: ["api_key_id"],
1810
1944
  queryParams: [],
1945
+ headerParams: [],
1946
+ cookieParams: [],
1811
1947
  flags: [{
1812
1948
  "name": "api_key_id",
1813
1949
  "description": "API key public ID (key_ prefix)",
@@ -1842,6 +1978,8 @@ var routes = {
1842
1978
  httpMethod: "delete",
1843
1979
  pathParams: ["api_key_id"],
1844
1980
  queryParams: [],
1981
+ headerParams: [],
1982
+ cookieParams: [],
1845
1983
  flags: [{
1846
1984
  "name": "api_key_id",
1847
1985
  "description": "API key public ID (key_ prefix)",
@@ -1858,6 +1996,8 @@ var routes = {
1858
1996
  httpMethod: "get",
1859
1997
  pathParams: [],
1860
1998
  queryParams: ["project_id", "status", "origin", "expires_before", "limit", "offset"],
1999
+ headerParams: [],
2000
+ cookieParams: [],
1861
2001
  flags: [{
1862
2002
  "name": "project_id",
1863
2003
  "description": "Project ID (required if not using project key auth)",
@@ -1904,6 +2044,8 @@ var routes = {
1904
2044
  httpMethod: "get",
1905
2045
  pathParams: [],
1906
2046
  queryParams: ["project_id", "status", "min_count", "limit", "offset"],
2047
+ headerParams: [],
2048
+ cookieParams: [],
1907
2049
  flags: [{
1908
2050
  "name": "project_id",
1909
2051
  "description": "Project ID (required if not using project key auth)",
@@ -1944,6 +2086,8 @@ var routes = {
1944
2086
  httpMethod: "get",
1945
2087
  pathParams: ["approval_id"],
1946
2088
  queryParams: [],
2089
+ headerParams: [],
2090
+ cookieParams: [],
1947
2091
  flags: [{
1948
2092
  "name": "approval_id",
1949
2093
  "description": "Approval item ID",
@@ -1960,6 +2104,8 @@ var routes = {
1960
2104
  httpMethod: "post",
1961
2105
  pathParams: ["approval_id"],
1962
2106
  queryParams: [],
2107
+ headerParams: [],
2108
+ cookieParams: [],
1963
2109
  flags: [{
1964
2110
  "name": "approval_id",
1965
2111
  "description": "Approval item ID",
@@ -1982,6 +2128,8 @@ var routes = {
1982
2128
  httpMethod: "post",
1983
2129
  pathParams: ["approval_id"],
1984
2130
  queryParams: [],
2131
+ headerParams: [],
2132
+ cookieParams: [],
1985
2133
  flags: [{
1986
2134
  "name": "approval_id",
1987
2135
  "description": "Approval item ID",
@@ -2004,6 +2152,8 @@ var routes = {
2004
2152
  httpMethod: "get",
2005
2153
  pathParams: [],
2006
2154
  queryParams: ["project_id", "action", "principal_id", "resource_public_id", "resource_srn", "from", "to", "limit", "offset"],
2155
+ headerParams: [],
2156
+ cookieParams: [],
2007
2157
  flags: [{
2008
2158
  "name": "project_id",
2009
2159
  "description": "Project ID (scopes results; required if not using project key auth for a specific project)",
@@ -2068,6 +2218,8 @@ var routes = {
2068
2218
  httpMethod: "get",
2069
2219
  pathParams: [],
2070
2220
  queryParams: ["project_id", "action", "principal_id", "resource_public_id", "resource_srn", "from", "to"],
2221
+ headerParams: [],
2222
+ cookieParams: [],
2071
2223
  flags: [{
2072
2224
  "name": "project_id",
2073
2225
  "description": "Project whose entries are exported",
@@ -2120,6 +2272,8 @@ var routes = {
2120
2272
  httpMethod: "get",
2121
2273
  pathParams: ["entry_id"],
2122
2274
  queryParams: [],
2275
+ headerParams: [],
2276
+ cookieParams: [],
2123
2277
  flags: [{
2124
2278
  "name": "entry_id",
2125
2279
  "description": "Audit entry ID",
@@ -2136,6 +2290,8 @@ var routes = {
2136
2290
  httpMethod: "get",
2137
2291
  pathParams: [],
2138
2292
  queryParams: ["project_id", "status", "agent_id", "limit", "offset"],
2293
+ headerParams: [],
2294
+ cookieParams: [],
2139
2295
  flags: [{
2140
2296
  "name": "project_id",
2141
2297
  "description": "Project ID (required if not using project key auth)",
@@ -2176,6 +2332,8 @@ var routes = {
2176
2332
  httpMethod: "get",
2177
2333
  pathParams: ["chain_id"],
2178
2334
  queryParams: [],
2335
+ headerParams: [],
2336
+ cookieParams: [],
2179
2337
  flags: [{
2180
2338
  "name": "chain_id",
2181
2339
  "description": "Continuation chain ID",
@@ -2192,6 +2350,8 @@ var routes = {
2192
2350
  httpMethod: "get",
2193
2351
  pathParams: [],
2194
2352
  queryParams: ["project_id", "limit", "offset"],
2353
+ headerParams: [],
2354
+ cookieParams: [],
2195
2355
  flags: [{
2196
2356
  "name": "project_id",
2197
2357
  "description": "Project public ID to filter by",
@@ -2220,6 +2380,8 @@ var routes = {
2220
2380
  httpMethod: "post",
2221
2381
  pathParams: [],
2222
2382
  queryParams: [],
2383
+ headerParams: [],
2384
+ cookieParams: [],
2223
2385
  flags: [{
2224
2386
  "name": "ai_provider_id",
2225
2387
  "description": "Public ID of the AI provider to pin. Optional: omit it to inherit the project's `default_model_route_id`, which gives the chat provider failover. Omitting it returns `400` when the project has no default, and cannot be combined with `model` — each route target names its own.",
@@ -2260,6 +2422,8 @@ var routes = {
2260
2422
  httpMethod: "get",
2261
2423
  pathParams: ["chat_id"],
2262
2424
  queryParams: [],
2425
+ headerParams: [],
2426
+ cookieParams: [],
2263
2427
  flags: [{
2264
2428
  "name": "chat_id",
2265
2429
  "description": "",
@@ -2276,6 +2440,8 @@ var routes = {
2276
2440
  httpMethod: "delete",
2277
2441
  pathParams: ["chat_id"],
2278
2442
  queryParams: [],
2443
+ headerParams: [],
2444
+ cookieParams: [],
2279
2445
  flags: [{
2280
2446
  "name": "chat_id",
2281
2447
  "description": "",
@@ -2292,6 +2458,8 @@ var routes = {
2292
2458
  httpMethod: "post",
2293
2459
  pathParams: [],
2294
2460
  queryParams: [],
2461
+ headerParams: [],
2462
+ cookieParams: [],
2295
2463
  flags: [{
2296
2464
  "name": "ai_provider_id",
2297
2465
  "description": "Public ID of the AI provider to run the completion against. Mutually exclusive with `chat_id`; exactly one of the two is required.\n",
@@ -2338,6 +2506,8 @@ var routes = {
2338
2506
  httpMethod: "get",
2339
2507
  pathParams: [],
2340
2508
  queryParams: ["project_id", "actor_id", "tags", "limit", "offset"],
2509
+ headerParams: [],
2510
+ cookieParams: [],
2341
2511
  flags: [{
2342
2512
  "name": "project_id",
2343
2513
  "description": "Project ID (optional)",
@@ -2378,6 +2548,8 @@ var routes = {
2378
2548
  httpMethod: "post",
2379
2549
  pathParams: [],
2380
2550
  queryParams: [],
2551
+ headerParams: [],
2552
+ cookieParams: [],
2381
2553
  flags: [{
2382
2554
  "name": "project_id",
2383
2555
  "description": "Project ID. Required for JWT auth; omit when using an project key.",
@@ -2418,6 +2590,8 @@ var routes = {
2418
2590
  httpMethod: "get",
2419
2591
  pathParams: ["conversation_id"],
2420
2592
  queryParams: [],
2593
+ headerParams: [],
2594
+ cookieParams: [],
2421
2595
  flags: [{
2422
2596
  "name": "conversation_id",
2423
2597
  "description": "Conversation ID",
@@ -2434,6 +2608,8 @@ var routes = {
2434
2608
  httpMethod: "patch",
2435
2609
  pathParams: ["conversation_id"],
2436
2610
  queryParams: [],
2611
+ headerParams: [],
2612
+ cookieParams: [],
2437
2613
  flags: [{
2438
2614
  "name": "conversation_id",
2439
2615
  "description": "Conversation ID",
@@ -2468,6 +2644,8 @@ var routes = {
2468
2644
  httpMethod: "delete",
2469
2645
  pathParams: ["conversation_id"],
2470
2646
  queryParams: [],
2647
+ headerParams: [],
2648
+ cookieParams: [],
2471
2649
  flags: [{
2472
2650
  "name": "conversation_id",
2473
2651
  "description": "Conversation ID",
@@ -2484,6 +2662,8 @@ var routes = {
2484
2662
  httpMethod: "get",
2485
2663
  pathParams: ["conversation_id"],
2486
2664
  queryParams: ["limit", "offset"],
2665
+ headerParams: [],
2666
+ cookieParams: [],
2487
2667
  flags: [{
2488
2668
  "name": "conversation_id",
2489
2669
  "description": "Conversation ID",
@@ -2512,6 +2692,8 @@ var routes = {
2512
2692
  httpMethod: "post",
2513
2693
  pathParams: ["conversation_id"],
2514
2694
  queryParams: [],
2695
+ headerParams: [],
2696
+ cookieParams: [],
2515
2697
  flags: [{
2516
2698
  "name": "conversation_id",
2517
2699
  "description": "Conversation ID",
@@ -2544,7 +2726,7 @@ var routes = {
2544
2726
  "in": "body"
2545
2727
  }, {
2546
2728
  "name": "metadata",
2547
- "description": "Optional structured metadata to attach to the message (e.g. phone number, channel). Stored as-is and injected into the AI prompt context.",
2729
+ "description": "Caller-owned annotations on the message (e.g. a phone number, a channel), stored as sent and returned verbatim. The platform does not read the bag, so nothing in it reaches the model: a value the model should see belongs in `message`.",
2548
2730
  "required": false,
2549
2731
  "type": "object",
2550
2732
  "in": "body"
@@ -2558,6 +2740,8 @@ var routes = {
2558
2740
  httpMethod: "post",
2559
2741
  pathParams: ["conversation_id"],
2560
2742
  queryParams: ["wait"],
2743
+ headerParams: [],
2744
+ cookieParams: [],
2561
2745
  flags: [{
2562
2746
  "name": "conversation_id",
2563
2747
  "description": "",
@@ -2604,6 +2788,8 @@ var routes = {
2604
2788
  httpMethod: "delete",
2605
2789
  pathParams: ["conversation_id", "document_id"],
2606
2790
  queryParams: [],
2791
+ headerParams: [],
2792
+ cookieParams: [],
2607
2793
  flags: [{
2608
2794
  "name": "conversation_id",
2609
2795
  "description": "Conversation ID",
@@ -2626,6 +2812,8 @@ var routes = {
2626
2812
  httpMethod: "get",
2627
2813
  pathParams: ["conversation_id"],
2628
2814
  queryParams: [],
2815
+ headerParams: [],
2816
+ cookieParams: [],
2629
2817
  flags: [{
2630
2818
  "name": "conversation_id",
2631
2819
  "description": "Conversation ID",
@@ -2642,6 +2830,8 @@ var routes = {
2642
2830
  httpMethod: "put",
2643
2831
  pathParams: ["conversation_id"],
2644
2832
  queryParams: [],
2833
+ headerParams: [],
2834
+ cookieParams: [],
2645
2835
  flags: [{
2646
2836
  "name": "conversation_id",
2647
2837
  "description": "Conversation ID",
@@ -2658,6 +2848,8 @@ var routes = {
2658
2848
  httpMethod: "patch",
2659
2849
  pathParams: ["conversation_id"],
2660
2850
  queryParams: [],
2851
+ headerParams: [],
2852
+ cookieParams: [],
2661
2853
  flags: [{
2662
2854
  "name": "conversation_id",
2663
2855
  "description": "Conversation ID",
@@ -2673,7 +2865,9 @@ var routes = {
2673
2865
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
2674
2866
  httpMethod: "get",
2675
2867
  pathParams: [],
2676
- queryParams: ["project_id", "path_prefix", "tags", "limit", "offset"],
2868
+ queryParams: ["project_id", "path_prefix", "include_withdrawn", "related_to", "tags", "metadata", "limit", "offset"],
2869
+ headerParams: [],
2870
+ cookieParams: [],
2677
2871
  flags: [{
2678
2872
  "name": "project_id",
2679
2873
  "description": "Project ID (optional)",
@@ -2686,12 +2880,30 @@ var routes = {
2686
2880
  "required": false,
2687
2881
  "type": "string",
2688
2882
  "in": "query"
2883
+ }, {
2884
+ "name": "include_withdrawn",
2885
+ "description": "Include withdrawn documents. A withdrawn document leaves every default read and is not in the knowledge index at all — its chunks are dropped when it is withdrawn — so this shows it in the listing but never in a search.",
2886
+ "required": false,
2887
+ "type": "boolean",
2888
+ "in": "query"
2889
+ }, {
2890
+ "name": "related_to",
2891
+ "description": "Only documents related to this one, on either side of the edge: what it points at, and what points at it. An id with no relations narrows the listing to nothing.",
2892
+ "required": false,
2893
+ "type": "string",
2894
+ "in": "query"
2689
2895
  }, {
2690
2896
  "name": "tags",
2691
2897
  "description": "Filter by tag pairs, written `key:value` (split on the first colon, so a value may contain colons). Repeat the parameter for several pairs; **all** must be present with exactly that value.\n",
2692
2898
  "required": false,
2693
2899
  "type": "array",
2694
2900
  "in": "query"
2901
+ }, {
2902
+ "name": "metadata",
2903
+ "description": "A `MetadataFilter` as JSON, url-encoded. It travels as JSON rather than as `key:value` pairs because the match is exact and a query string cannot otherwise say whether `3` is the number or the string.",
2904
+ "required": false,
2905
+ "type": "string",
2906
+ "in": "query"
2695
2907
  }, {
2696
2908
  "name": "limit",
2697
2909
  "description": "Maximum number of results to return",
@@ -2714,6 +2926,8 @@ var routes = {
2714
2926
  httpMethod: "post",
2715
2927
  pathParams: [],
2716
2928
  queryParams: [],
2929
+ headerParams: [],
2930
+ cookieParams: [],
2717
2931
  flags: [{
2718
2932
  "name": "project_id",
2719
2933
  "description": "Project ID. Required for JWT auth; omit when using an project key.",
@@ -2752,7 +2966,7 @@ var routes = {
2752
2966
  "in": "body"
2753
2967
  }, {
2754
2968
  "name": "tags",
2755
- "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.",
2969
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
2756
2970
  "required": false,
2757
2971
  "type": "object",
2758
2972
  "in": "body"
@@ -2784,6 +2998,8 @@ var routes = {
2784
2998
  httpMethod: "post",
2785
2999
  pathParams: [],
2786
3000
  queryParams: ["wait"],
3001
+ headerParams: [],
3002
+ cookieParams: [],
2787
3003
  flags: [{
2788
3004
  "name": "wait",
2789
3005
  "description": "When omitted or `false` (default), processing runs in the background and `202 Accepted` is returned immediately with `status=pending`. Pass `true` to block until processing completes and receive `201 Created` with `status=ready`.",
@@ -2810,7 +3026,7 @@ var routes = {
2810
3026
  "in": "body"
2811
3027
  }, {
2812
3028
  "name": "tags",
2813
- "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.",
3029
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
2814
3030
  "required": false,
2815
3031
  "type": "object",
2816
3032
  "in": "body"
@@ -2834,6 +3050,30 @@ var routes = {
2834
3050
  "in": "body"
2835
3051
  }]
2836
3052
  },
3053
+ "export-documents": {
3054
+ serviceClass: "Documents",
3055
+ operationId: "exportDocuments",
3056
+ description: "Streams a project's documents as newline-delimited JSON — one document object per line, oldest first — for archiving the corpus or shipping it into another system. `project_id` is required: the export is per-project by design. The rows are the rows the listing returns for the same caller, so a policy that hides a document hides it here too, and withdrawn documents and the reserved `/.system/` root are left out.",
3057
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3058
+ httpMethod: "get",
3059
+ pathParams: [],
3060
+ queryParams: ["project_id", "path_prefix"],
3061
+ headerParams: [],
3062
+ cookieParams: [],
3063
+ flags: [{
3064
+ "name": "project_id",
3065
+ "description": "Project whose documents are exported",
3066
+ "required": true,
3067
+ "type": "string",
3068
+ "in": "query"
3069
+ }, {
3070
+ "name": "path_prefix",
3071
+ "description": "Only documents filed under this directory. The prefix is a path boundary, not a substring, exactly as on the listing.",
3072
+ "required": false,
3073
+ "type": "string",
3074
+ "in": "query"
3075
+ }]
3076
+ },
2837
3077
  "get-document": {
2838
3078
  serviceClass: "Documents",
2839
3079
  operationId: "getDocument",
@@ -2842,6 +3082,8 @@ var routes = {
2842
3082
  httpMethod: "get",
2843
3083
  pathParams: ["document_id"],
2844
3084
  queryParams: [],
3085
+ headerParams: [],
3086
+ cookieParams: [],
2845
3087
  flags: [{
2846
3088
  "name": "document_id",
2847
3089
  "description": "Document ID",
@@ -2858,12 +3100,20 @@ var routes = {
2858
3100
  httpMethod: "patch",
2859
3101
  pathParams: ["document_id"],
2860
3102
  queryParams: [],
3103
+ headerParams: ["If-Match"],
3104
+ cookieParams: [],
2861
3105
  flags: [{
2862
3106
  "name": "document_id",
2863
3107
  "description": "Document ID",
2864
3108
  "required": true,
2865
3109
  "type": "string",
2866
3110
  "in": "path"
3111
+ }, {
3112
+ "name": "If-Match",
3113
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
3114
+ "required": false,
3115
+ "type": "string",
3116
+ "in": "header"
2867
3117
  }, {
2868
3118
  "name": "content",
2869
3119
  "description": "New text content",
@@ -2884,16 +3134,22 @@ var routes = {
2884
3134
  "in": "body"
2885
3135
  }, {
2886
3136
  "name": "metadata",
2887
- "description": "Arbitrary metadata object. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.",
3137
+ "description": "Arbitrary metadata object, replacing the stored bag; `null` clears it. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.",
2888
3138
  "required": false,
2889
3139
  "type": "object",
2890
3140
  "in": "body"
2891
3141
  }, {
2892
3142
  "name": "tags",
2893
- "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.",
3143
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
2894
3144
  "required": false,
2895
3145
  "type": "object",
2896
3146
  "in": "body"
3147
+ }, {
3148
+ "name": "expected_version",
3149
+ "description": "Refuses the write unless the document is at this version.",
3150
+ "required": false,
3151
+ "type": "integer",
3152
+ "in": "body"
2897
3153
  }]
2898
3154
  },
2899
3155
  "delete-document": {
@@ -2904,6 +3160,8 @@ var routes = {
2904
3160
  httpMethod: "delete",
2905
3161
  pathParams: ["document_id"],
2906
3162
  queryParams: [],
3163
+ headerParams: [],
3164
+ cookieParams: [],
2907
3165
  flags: [{
2908
3166
  "name": "document_id",
2909
3167
  "description": "Document ID",
@@ -2912,6 +3170,78 @@ var routes = {
2912
3170
  "in": "path"
2913
3171
  }]
2914
3172
  },
3173
+ "list-document-relations": {
3174
+ serviceClass: "Documents",
3175
+ operationId: "listDocumentRelations",
3176
+ description: "Returns the typed edges this document asserts about others, oldest first. An edge is owned by the document it leaves, so this is what the document claims — use `?related_to=` on the listing to find what claims something about it.",
3177
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3178
+ httpMethod: "get",
3179
+ pathParams: ["document_id"],
3180
+ queryParams: [],
3181
+ headerParams: [],
3182
+ cookieParams: [],
3183
+ flags: [{
3184
+ "name": "document_id",
3185
+ "description": "",
3186
+ "required": true,
3187
+ "type": "string",
3188
+ "in": "path"
3189
+ }]
3190
+ },
3191
+ "create-document-relation": {
3192
+ serviceClass: "Documents",
3193
+ operationId: "createDocumentRelation",
3194
+ description: "Asserts a typed edge from this document to another in the same project. Asserting the same edge twice is `409`: an edge is a fact, and the second assertion is the same fact. Writing an edge is a write of the asserting document (`documents:UpdateDocument`); the document it points at is unchanged, which is what lets an agent record what its own report derives from without being able to make another report claim anything.",
3195
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3196
+ httpMethod: "post",
3197
+ pathParams: ["document_id"],
3198
+ queryParams: [],
3199
+ headerParams: [],
3200
+ cookieParams: [],
3201
+ flags: [{
3202
+ "name": "document_id",
3203
+ "description": "",
3204
+ "required": true,
3205
+ "type": "string",
3206
+ "in": "path"
3207
+ }, {
3208
+ "name": "type",
3209
+ "description": "What this document claims about the other",
3210
+ "required": true,
3211
+ "type": "string",
3212
+ "in": "body"
3213
+ }, {
3214
+ "name": "to_document_id",
3215
+ "description": "The document the edge points at. Must be in the same project, and visible to the caller.",
3216
+ "required": true,
3217
+ "type": "string",
3218
+ "in": "body"
3219
+ }]
3220
+ },
3221
+ "delete-document-relation": {
3222
+ serviceClass: "Documents",
3223
+ operationId: "deleteDocumentRelation",
3224
+ description: "Removes an edge this document asserts. Both documents are left as they are — retracting a claim is not a change to what it was about.",
3225
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3226
+ httpMethod: "delete",
3227
+ pathParams: ["document_id", "relation_id"],
3228
+ queryParams: [],
3229
+ headerParams: [],
3230
+ cookieParams: [],
3231
+ flags: [{
3232
+ "name": "document_id",
3233
+ "description": "",
3234
+ "required": true,
3235
+ "type": "string",
3236
+ "in": "path"
3237
+ }, {
3238
+ "name": "relation_id",
3239
+ "description": "",
3240
+ "required": true,
3241
+ "type": "string",
3242
+ "in": "path"
3243
+ }]
3244
+ },
2915
3245
  "get-document-status": {
2916
3246
  serviceClass: "Documents",
2917
3247
  operationId: "getDocumentStatus",
@@ -2920,6 +3250,8 @@ var routes = {
2920
3250
  httpMethod: "get",
2921
3251
  pathParams: ["document_id"],
2922
3252
  queryParams: [],
3253
+ headerParams: [],
3254
+ cookieParams: [],
2923
3255
  flags: [{
2924
3256
  "name": "document_id",
2925
3257
  "description": "Document ID",
@@ -2928,6 +3260,126 @@ var routes = {
2928
3260
  "in": "path"
2929
3261
  }]
2930
3262
  },
3263
+ "withdraw-document": {
3264
+ serviceClass: "Documents",
3265
+ operationId: "withdrawDocument",
3266
+ description: "Takes a document out of every default read while keeping its history. The withdrawal is archived as a **tombstone version**, so one mechanism answers what a document holds now and there is no second lifecycle flag for a reader to miss. Its chunks are dropped from the knowledge index, so a withdrawn document costs a live search nothing. The content is not lost with them: it is in the version before the tombstone, which [`POST /api/v1/documents/{document_id}/versions/{version}/restore`](/docs/api/documents/restore-document-version) re-chunks from. `DELETE` stays what it is — permanent, and it removes the backing file. Withdrawal is the reversible act. It does not apply under `/.system/`: a platform-written document keeps the owning module's lifecycle.",
3267
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3268
+ httpMethod: "post",
3269
+ pathParams: ["document_id"],
3270
+ queryParams: [],
3271
+ headerParams: ["If-Match"],
3272
+ cookieParams: [],
3273
+ flags: [{
3274
+ "name": "document_id",
3275
+ "description": "",
3276
+ "required": true,
3277
+ "type": "string",
3278
+ "in": "path"
3279
+ }, {
3280
+ "name": "If-Match",
3281
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
3282
+ "required": false,
3283
+ "type": "string",
3284
+ "in": "header"
3285
+ }, {
3286
+ "name": "version_label",
3287
+ "description": "Optional tag for the tombstone version this write archives.",
3288
+ "required": false,
3289
+ "type": "string",
3290
+ "in": "body"
3291
+ }, {
3292
+ "name": "expected_version",
3293
+ "description": "Refuses the withdrawal unless the document is at this version.",
3294
+ "required": false,
3295
+ "type": "integer",
3296
+ "in": "body"
3297
+ }]
3298
+ },
3299
+ "list-document-versions": {
3300
+ serviceClass: "Documents",
3301
+ operationId: "listDocumentVersions",
3302
+ description: "Returns the document's archived states, newest first. A version is written on create and on every subsequent write that changes the content or its annotations, and a withdrawal is archived as a version carrying no content.",
3303
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3304
+ httpMethod: "get",
3305
+ pathParams: ["document_id"],
3306
+ queryParams: ["limit", "offset"],
3307
+ headerParams: [],
3308
+ cookieParams: [],
3309
+ flags: [{
3310
+ "name": "document_id",
3311
+ "description": "",
3312
+ "required": true,
3313
+ "type": "string",
3314
+ "in": "path"
3315
+ }, {
3316
+ "name": "limit",
3317
+ "description": "Maximum number of results to return",
3318
+ "required": false,
3319
+ "type": "integer",
3320
+ "in": "query"
3321
+ }, {
3322
+ "name": "offset",
3323
+ "description": "Number of results to skip",
3324
+ "required": false,
3325
+ "type": "integer",
3326
+ "in": "query"
3327
+ }]
3328
+ },
3329
+ "get-document-version": {
3330
+ serviceClass: "Documents",
3331
+ operationId: "getDocumentVersion",
3332
+ description: "Returns the exact content and annotations the document held at a given version, which is what lets a run that cited a version read what it read.",
3333
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3334
+ httpMethod: "get",
3335
+ pathParams: ["document_id", "version"],
3336
+ queryParams: [],
3337
+ headerParams: [],
3338
+ cookieParams: [],
3339
+ flags: [{
3340
+ "name": "document_id",
3341
+ "description": "",
3342
+ "required": true,
3343
+ "type": "string",
3344
+ "in": "path"
3345
+ }, {
3346
+ "name": "version",
3347
+ "description": "",
3348
+ "required": true,
3349
+ "type": "integer",
3350
+ "in": "path"
3351
+ }]
3352
+ },
3353
+ "restore-document-version": {
3354
+ serviceClass: "Documents",
3355
+ operationId: "restoreDocumentVersion",
3356
+ description: "Writes an archived version's content and annotations back as the document's live state, which archives them again as a **new** version rather than rewinding the counter — so a run citing any version in between still resolves. The restore runs through the ordinary update path, so the content is re-chunked and re-embedded; restoring the state the document already holds is a no-op and archives nothing. Restoring any content version of a withdrawn document brings it back into listings and search. A tombstone version has no content, so naming one is `400 VALIDATION_FAILED`: restore the version before it instead.",
3357
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
3358
+ httpMethod: "post",
3359
+ pathParams: ["document_id", "version"],
3360
+ queryParams: [],
3361
+ headerParams: [],
3362
+ cookieParams: [],
3363
+ flags: [{
3364
+ "name": "document_id",
3365
+ "description": "",
3366
+ "required": true,
3367
+ "type": "string",
3368
+ "in": "path"
3369
+ }, {
3370
+ "name": "version",
3371
+ "description": "",
3372
+ "required": true,
3373
+ "type": "integer",
3374
+ "in": "path"
3375
+ }, {
3376
+ "name": "label",
3377
+ "description": "Optional tag for the version this restore archives. Defaults to `restored from v<version>`.",
3378
+ "required": false,
3379
+ "type": "string",
3380
+ "in": "body"
3381
+ }]
3382
+ },
2931
3383
  "reingest-document": {
2932
3384
  serviceClass: "Documents",
2933
3385
  operationId: "reingestDocument",
@@ -2936,6 +3388,8 @@ var routes = {
2936
3388
  httpMethod: "post",
2937
3389
  pathParams: ["document_id"],
2938
3390
  queryParams: ["wait"],
3391
+ headerParams: [],
3392
+ cookieParams: [],
2939
3393
  flags: [{
2940
3394
  "name": "document_id",
2941
3395
  "description": "Document ID",
@@ -2976,6 +3430,8 @@ var routes = {
2976
3430
  httpMethod: "post",
2977
3431
  pathParams: ["document_id"],
2978
3432
  queryParams: ["token"],
3433
+ headerParams: [],
3434
+ cookieParams: [],
2979
3435
  flags: [{
2980
3436
  "name": "document_id",
2981
3437
  "description": "Document ID",
@@ -3010,6 +3466,8 @@ var routes = {
3010
3466
  httpMethod: "get",
3011
3467
  pathParams: ["document_id"],
3012
3468
  queryParams: [],
3469
+ headerParams: [],
3470
+ cookieParams: [],
3013
3471
  flags: [{
3014
3472
  "name": "document_id",
3015
3473
  "description": "Document ID",
@@ -3026,6 +3484,8 @@ var routes = {
3026
3484
  httpMethod: "put",
3027
3485
  pathParams: ["document_id"],
3028
3486
  queryParams: [],
3487
+ headerParams: [],
3488
+ cookieParams: [],
3029
3489
  flags: [{
3030
3490
  "name": "document_id",
3031
3491
  "description": "Document ID",
@@ -3042,6 +3502,8 @@ var routes = {
3042
3502
  httpMethod: "patch",
3043
3503
  pathParams: ["document_id"],
3044
3504
  queryParams: [],
3505
+ headerParams: [],
3506
+ cookieParams: [],
3045
3507
  flags: [{
3046
3508
  "name": "document_id",
3047
3509
  "description": "Document ID",
@@ -3058,6 +3520,8 @@ var routes = {
3058
3520
  httpMethod: "post",
3059
3521
  pathParams: [],
3060
3522
  queryParams: [],
3523
+ headerParams: [],
3524
+ cookieParams: [],
3061
3525
  flags: [{
3062
3526
  "name": "project_id",
3063
3527
  "description": "Project the call's usage is billed to. Optional; a project-scoped credential supplies its own. Requires write access to the named project.",
@@ -3086,6 +3550,8 @@ var routes = {
3086
3550
  httpMethod: "get",
3087
3551
  pathParams: [],
3088
3552
  queryParams: ["project_id", "limit", "offset"],
3553
+ headerParams: [],
3554
+ cookieParams: [],
3089
3555
  flags: [{
3090
3556
  "name": "project_id",
3091
3557
  "description": "Project ID (required if not using project key auth)",
@@ -3114,6 +3580,8 @@ var routes = {
3114
3580
  httpMethod: "post",
3115
3581
  pathParams: [],
3116
3582
  queryParams: [],
3583
+ headerParams: [],
3584
+ cookieParams: [],
3117
3585
  flags: [{
3118
3586
  "name": "project_id",
3119
3587
  "description": "Project ID (required if not using project key auth)",
@@ -3142,6 +3610,8 @@ var routes = {
3142
3610
  httpMethod: "get",
3143
3611
  pathParams: ["dataset_id"],
3144
3612
  queryParams: [],
3613
+ headerParams: [],
3614
+ cookieParams: [],
3145
3615
  flags: [{
3146
3616
  "name": "dataset_id",
3147
3617
  "description": "Dataset ID",
@@ -3158,6 +3628,8 @@ var routes = {
3158
3628
  httpMethod: "put",
3159
3629
  pathParams: ["dataset_id"],
3160
3630
  queryParams: [],
3631
+ headerParams: [],
3632
+ cookieParams: [],
3161
3633
  flags: [{
3162
3634
  "name": "dataset_id",
3163
3635
  "description": "Dataset ID",
@@ -3186,6 +3658,8 @@ var routes = {
3186
3658
  httpMethod: "delete",
3187
3659
  pathParams: ["dataset_id"],
3188
3660
  queryParams: [],
3661
+ headerParams: [],
3662
+ cookieParams: [],
3189
3663
  flags: [{
3190
3664
  "name": "dataset_id",
3191
3665
  "description": "Dataset ID",
@@ -3202,6 +3676,8 @@ var routes = {
3202
3676
  httpMethod: "get",
3203
3677
  pathParams: ["dataset_id"],
3204
3678
  queryParams: ["limit", "offset"],
3679
+ headerParams: [],
3680
+ cookieParams: [],
3205
3681
  flags: [{
3206
3682
  "name": "dataset_id",
3207
3683
  "description": "Dataset ID",
@@ -3230,6 +3706,8 @@ var routes = {
3230
3706
  httpMethod: "post",
3231
3707
  pathParams: ["dataset_id"],
3232
3708
  queryParams: [],
3709
+ headerParams: [],
3710
+ cookieParams: [],
3233
3711
  flags: [{
3234
3712
  "name": "dataset_id",
3235
3713
  "description": "Dataset ID",
@@ -3264,6 +3742,8 @@ var routes = {
3264
3742
  httpMethod: "post",
3265
3743
  pathParams: ["dataset_id"],
3266
3744
  queryParams: [],
3745
+ headerParams: [],
3746
+ cookieParams: [],
3267
3747
  flags: [{
3268
3748
  "name": "dataset_id",
3269
3749
  "description": "Dataset ID",
@@ -3298,6 +3778,8 @@ var routes = {
3298
3778
  httpMethod: "put",
3299
3779
  pathParams: ["dataset_id", "item_id"],
3300
3780
  queryParams: [],
3781
+ headerParams: [],
3782
+ cookieParams: [],
3301
3783
  flags: [{
3302
3784
  "name": "dataset_id",
3303
3785
  "description": "Dataset ID",
@@ -3338,6 +3820,8 @@ var routes = {
3338
3820
  httpMethod: "delete",
3339
3821
  pathParams: ["dataset_id", "item_id"],
3340
3822
  queryParams: [],
3823
+ headerParams: [],
3824
+ cookieParams: [],
3341
3825
  flags: [{
3342
3826
  "name": "dataset_id",
3343
3827
  "description": "Dataset ID",
@@ -3360,6 +3844,8 @@ var routes = {
3360
3844
  httpMethod: "get",
3361
3845
  pathParams: [],
3362
3846
  queryParams: ["project_id", "limit", "offset"],
3847
+ headerParams: [],
3848
+ cookieParams: [],
3363
3849
  flags: [{
3364
3850
  "name": "project_id",
3365
3851
  "description": "Project ID (required if not using project key auth)",
@@ -3388,6 +3874,8 @@ var routes = {
3388
3874
  httpMethod: "post",
3389
3875
  pathParams: [],
3390
3876
  queryParams: [],
3877
+ headerParams: [],
3878
+ cookieParams: [],
3391
3879
  flags: [{
3392
3880
  "name": "project_id",
3393
3881
  "description": "Project ID (required if not using project key auth)",
@@ -3434,6 +3922,8 @@ var routes = {
3434
3922
  httpMethod: "get",
3435
3923
  pathParams: ["eval_id"],
3436
3924
  queryParams: [],
3925
+ headerParams: [],
3926
+ cookieParams: [],
3437
3927
  flags: [{
3438
3928
  "name": "eval_id",
3439
3929
  "description": "Eval ID",
@@ -3450,6 +3940,8 @@ var routes = {
3450
3940
  httpMethod: "put",
3451
3941
  pathParams: ["eval_id"],
3452
3942
  queryParams: [],
3943
+ headerParams: [],
3944
+ cookieParams: [],
3453
3945
  flags: [{
3454
3946
  "name": "eval_id",
3455
3947
  "description": "Eval ID",
@@ -3496,6 +3988,8 @@ var routes = {
3496
3988
  httpMethod: "delete",
3497
3989
  pathParams: ["eval_id"],
3498
3990
  queryParams: [],
3991
+ headerParams: [],
3992
+ cookieParams: [],
3499
3993
  flags: [{
3500
3994
  "name": "eval_id",
3501
3995
  "description": "Eval ID",
@@ -3512,6 +4006,8 @@ var routes = {
3512
4006
  httpMethod: "get",
3513
4007
  pathParams: ["eval_id"],
3514
4008
  queryParams: ["limit", "offset"],
4009
+ headerParams: [],
4010
+ cookieParams: [],
3515
4011
  flags: [{
3516
4012
  "name": "eval_id",
3517
4013
  "description": "Eval ID",
@@ -3540,6 +4036,8 @@ var routes = {
3540
4036
  httpMethod: "post",
3541
4037
  pathParams: ["eval_id"],
3542
4038
  queryParams: [],
4039
+ headerParams: [],
4040
+ cookieParams: [],
3543
4041
  flags: [{
3544
4042
  "name": "eval_id",
3545
4043
  "description": "Eval ID",
@@ -3586,6 +4084,8 @@ var routes = {
3586
4084
  httpMethod: "get",
3587
4085
  pathParams: ["eval_id", "eval_run_id"],
3588
4086
  queryParams: [],
4087
+ headerParams: [],
4088
+ cookieParams: [],
3589
4089
  flags: [{
3590
4090
  "name": "eval_id",
3591
4091
  "description": "Eval ID",
@@ -3608,6 +4108,8 @@ var routes = {
3608
4108
  httpMethod: "get",
3609
4109
  pathParams: ["eval_id", "eval_run_id"],
3610
4110
  queryParams: ["limit", "offset"],
4111
+ headerParams: [],
4112
+ cookieParams: [],
3611
4113
  flags: [{
3612
4114
  "name": "eval_id",
3613
4115
  "description": "Eval ID",
@@ -3642,6 +4144,8 @@ var routes = {
3642
4144
  httpMethod: "post",
3643
4145
  pathParams: ["eval_id", "eval_run_id"],
3644
4146
  queryParams: [],
4147
+ headerParams: [],
4148
+ cookieParams: [],
3645
4149
  flags: [{
3646
4150
  "name": "eval_id",
3647
4151
  "description": "Eval ID",
@@ -3664,6 +4168,8 @@ var routes = {
3664
4168
  httpMethod: "get",
3665
4169
  pathParams: [],
3666
4170
  queryParams: ["project_id", "status", "severity", "kind", "limit", "offset"],
4171
+ headerParams: [],
4172
+ cookieParams: [],
3667
4173
  flags: [{
3668
4174
  "name": "project_id",
3669
4175
  "description": "Project ID (required if not using project key auth)",
@@ -3710,6 +4216,8 @@ var routes = {
3710
4216
  httpMethod: "get",
3711
4217
  pathParams: ["exception_id"],
3712
4218
  queryParams: [],
4219
+ headerParams: [],
4220
+ cookieParams: [],
3713
4221
  flags: [{
3714
4222
  "name": "exception_id",
3715
4223
  "description": "Exception item ID",
@@ -3726,6 +4234,8 @@ var routes = {
3726
4234
  httpMethod: "post",
3727
4235
  pathParams: ["exception_id"],
3728
4236
  queryParams: [],
4237
+ headerParams: [],
4238
+ cookieParams: [],
3729
4239
  flags: [{
3730
4240
  "name": "exception_id",
3731
4241
  "description": "Exception item ID",
@@ -3742,6 +4252,8 @@ var routes = {
3742
4252
  httpMethod: "post",
3743
4253
  pathParams: ["exception_id"],
3744
4254
  queryParams: [],
4255
+ headerParams: [],
4256
+ cookieParams: [],
3745
4257
  flags: [{
3746
4258
  "name": "exception_id",
3747
4259
  "description": "Exception item ID",
@@ -3764,6 +4276,8 @@ var routes = {
3764
4276
  httpMethod: "get",
3765
4277
  pathParams: [],
3766
4278
  queryParams: ["project_id", "path_prefix", "tags", "limit", "offset"],
4279
+ headerParams: [],
4280
+ cookieParams: [],
3767
4281
  flags: [{
3768
4282
  "name": "project_id",
3769
4283
  "description": "Filter files by project ID",
@@ -3804,6 +4318,8 @@ var routes = {
3804
4318
  httpMethod: "post",
3805
4319
  pathParams: [],
3806
4320
  queryParams: [],
4321
+ headerParams: [],
4322
+ cookieParams: [],
3807
4323
  flags: [{
3808
4324
  "name": "project_id",
3809
4325
  "description": "Public ID of the project. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise.",
@@ -3836,9 +4352,9 @@ var routes = {
3836
4352
  "in": "body"
3837
4353
  }, {
3838
4354
  "name": "metadata",
3839
- "description": "JSON string with additional metadata",
4355
+ "description": "Caller-owned annotations on a resource, stored as the object they were written as: the types a value was written with are the types a read returns, so a filter can ask an ordering question about a number. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.\n\nNo key is reserved, and that is the point: every piece of state the platform owns lives in its own typed column, so nothing written here reaches platform state. The platform never reads the bag — it is not an IAM context, not a policy input and not part of a prompt — which is what separates it from a tag bag.",
3840
4356
  "required": false,
3841
- "type": "string",
4357
+ "type": "object",
3842
4358
  "in": "body"
3843
4359
  }]
3844
4360
  },
@@ -3850,6 +4366,8 @@ var routes = {
3850
4366
  httpMethod: "post",
3851
4367
  pathParams: [],
3852
4368
  queryParams: [],
4369
+ headerParams: [],
4370
+ cookieParams: [],
3853
4371
  flags: []
3854
4372
  },
3855
4373
  "upload-file-base64": {
@@ -3860,6 +4378,8 @@ var routes = {
3860
4378
  httpMethod: "post",
3861
4379
  pathParams: [],
3862
4380
  queryParams: [],
4381
+ headerParams: [],
4382
+ cookieParams: [],
3863
4383
  flags: [{
3864
4384
  "name": "project_id",
3865
4385
  "description": "Public ID of the project",
@@ -3892,9 +4412,9 @@ var routes = {
3892
4412
  "in": "body"
3893
4413
  }, {
3894
4414
  "name": "metadata",
3895
- "description": "JSON string with additional metadata",
4415
+ "description": "Caller-owned annotations on a resource, stored as the object they were written as: the types a value was written with are the types a read returns, so a filter can ask an ordering question about a number. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.\n\nNo key is reserved, and that is the point: every piece of state the platform owns lives in its own typed column, so nothing written here reaches platform state. The platform never reads the bag — it is not an IAM context, not a policy input and not part of a prompt — which is what separates it from a tag bag.",
3896
4416
  "required": false,
3897
- "type": "string",
4417
+ "type": "object",
3898
4418
  "in": "body"
3899
4419
  }]
3900
4420
  },
@@ -3906,6 +4426,8 @@ var routes = {
3906
4426
  httpMethod: "post",
3907
4427
  pathParams: [],
3908
4428
  queryParams: [],
4429
+ headerParams: [],
4430
+ cookieParams: [],
3909
4431
  flags: [{
3910
4432
  "name": "project_id",
3911
4433
  "description": "Public ID of the project",
@@ -3940,6 +4462,8 @@ var routes = {
3940
4462
  httpMethod: "post",
3941
4463
  pathParams: ["token"],
3942
4464
  queryParams: [],
4465
+ headerParams: [],
4466
+ cookieParams: [],
3943
4467
  flags: [{
3944
4468
  "name": "token",
3945
4469
  "description": "The single-use upload token (e.g. upt_...)",
@@ -3966,9 +4490,9 @@ var routes = {
3966
4490
  "in": "body"
3967
4491
  }, {
3968
4492
  "name": "metadata",
3969
- "description": "JSON string with additional metadata",
4493
+ "description": "Caller-owned annotations on a resource, stored as the object they were written as: the types a value was written with are the types a read returns, so a filter can ask an ordering question about a number. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.\n\nNo key is reserved, and that is the point: every piece of state the platform owns lives in its own typed column, so nothing written here reaches platform state. The platform never reads the bag — it is not an IAM context, not a policy input and not part of a prompt — which is what separates it from a tag bag.",
3970
4494
  "required": false,
3971
- "type": "string",
4495
+ "type": "object",
3972
4496
  "in": "body"
3973
4497
  }]
3974
4498
  },
@@ -3980,6 +4504,8 @@ var routes = {
3980
4504
  httpMethod: "get",
3981
4505
  pathParams: ["file_id"],
3982
4506
  queryParams: [],
4507
+ headerParams: [],
4508
+ cookieParams: [],
3983
4509
  flags: [{
3984
4510
  "name": "file_id",
3985
4511
  "description": "File ID",
@@ -3996,6 +4522,8 @@ var routes = {
3996
4522
  httpMethod: "delete",
3997
4523
  pathParams: ["file_id"],
3998
4524
  queryParams: [],
4525
+ headerParams: [],
4526
+ cookieParams: [],
3999
4527
  flags: [{
4000
4528
  "name": "file_id",
4001
4529
  "description": "ID of the file to delete",
@@ -4012,6 +4540,8 @@ var routes = {
4012
4540
  httpMethod: "get",
4013
4541
  pathParams: ["file_id"],
4014
4542
  queryParams: ["token"],
4543
+ headerParams: [],
4544
+ cookieParams: [],
4015
4545
  flags: [{
4016
4546
  "name": "file_id",
4017
4547
  "description": "File ID",
@@ -4034,6 +4564,8 @@ var routes = {
4034
4564
  httpMethod: "patch",
4035
4565
  pathParams: ["file_id"],
4036
4566
  queryParams: [],
4567
+ headerParams: [],
4568
+ cookieParams: [],
4037
4569
  flags: [{
4038
4570
  "name": "file_id",
4039
4571
  "description": "File ID",
@@ -4042,9 +4574,9 @@ var routes = {
4042
4574
  "in": "path"
4043
4575
  }, {
4044
4576
  "name": "metadata",
4045
- "description": "New metadata as a JSON string",
4577
+ "description": "Replaces the stored bag; `null` clears it.",
4046
4578
  "required": false,
4047
- "type": "string",
4579
+ "type": "object",
4048
4580
  "in": "body"
4049
4581
  }, {
4050
4582
  "name": "prefix",
@@ -4068,6 +4600,8 @@ var routes = {
4068
4600
  httpMethod: "get",
4069
4601
  pathParams: ["file_id"],
4070
4602
  queryParams: ["token"],
4603
+ headerParams: [],
4604
+ cookieParams: [],
4071
4605
  flags: [{
4072
4606
  "name": "file_id",
4073
4607
  "description": "File ID",
@@ -4090,6 +4624,8 @@ var routes = {
4090
4624
  httpMethod: "get",
4091
4625
  pathParams: ["file_id"],
4092
4626
  queryParams: [],
4627
+ headerParams: [],
4628
+ cookieParams: [],
4093
4629
  flags: [{
4094
4630
  "name": "file_id",
4095
4631
  "description": "File ID",
@@ -4106,6 +4642,8 @@ var routes = {
4106
4642
  httpMethod: "put",
4107
4643
  pathParams: ["file_id"],
4108
4644
  queryParams: [],
4645
+ headerParams: [],
4646
+ cookieParams: [],
4109
4647
  flags: [{
4110
4648
  "name": "file_id",
4111
4649
  "description": "File ID",
@@ -4122,6 +4660,8 @@ var routes = {
4122
4660
  httpMethod: "patch",
4123
4661
  pathParams: ["file_id"],
4124
4662
  queryParams: [],
4663
+ headerParams: [],
4664
+ cookieParams: [],
4125
4665
  flags: [{
4126
4666
  "name": "file_id",
4127
4667
  "description": "File ID",
@@ -4138,11 +4678,13 @@ var routes = {
4138
4678
  httpMethod: "post",
4139
4679
  pathParams: [],
4140
4680
  queryParams: [],
4681
+ headerParams: [],
4682
+ cookieParams: [],
4141
4683
  flags: [{
4142
4684
  "name": "template",
4143
4685
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
4144
4686
  "required": false,
4145
- "type": "string",
4687
+ "type": "unknown",
4146
4688
  "in": "body"
4147
4689
  }, {
4148
4690
  "name": "parameters",
@@ -4160,6 +4702,8 @@ var routes = {
4160
4702
  httpMethod: "post",
4161
4703
  pathParams: [],
4162
4704
  queryParams: [],
4705
+ headerParams: [],
4706
+ cookieParams: [],
4163
4707
  flags: [{
4164
4708
  "name": "project_id",
4165
4709
  "description": "Project ID. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise.",
@@ -4176,7 +4720,7 @@ var routes = {
4176
4720
  "name": "template",
4177
4721
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
4178
4722
  "required": true,
4179
- "type": "string",
4723
+ "type": "unknown",
4180
4724
  "in": "body"
4181
4725
  }, {
4182
4726
  "name": "parameters",
@@ -4194,6 +4738,8 @@ var routes = {
4194
4738
  httpMethod: "get",
4195
4739
  pathParams: [],
4196
4740
  queryParams: ["project_id", "limit", "offset"],
4741
+ headerParams: [],
4742
+ cookieParams: [],
4197
4743
  flags: [{
4198
4744
  "name": "project_id",
4199
4745
  "description": "Project ID (required if not using project key auth)",
@@ -4222,6 +4768,8 @@ var routes = {
4222
4768
  httpMethod: "post",
4223
4769
  pathParams: [],
4224
4770
  queryParams: [],
4771
+ headerParams: [],
4772
+ cookieParams: [],
4225
4773
  flags: [{
4226
4774
  "name": "project_id",
4227
4775
  "description": "Project ID. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise.",
@@ -4238,7 +4786,7 @@ var routes = {
4238
4786
  "name": "template",
4239
4787
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
4240
4788
  "required": true,
4241
- "type": "string",
4789
+ "type": "unknown",
4242
4790
  "in": "body"
4243
4791
  }, {
4244
4792
  "name": "parameters",
@@ -4262,6 +4810,8 @@ var routes = {
4262
4810
  httpMethod: "get",
4263
4811
  pathParams: ["formation_id"],
4264
4812
  queryParams: [],
4813
+ headerParams: [],
4814
+ cookieParams: [],
4265
4815
  flags: [{
4266
4816
  "name": "formation_id",
4267
4817
  "description": "",
@@ -4278,6 +4828,8 @@ var routes = {
4278
4828
  httpMethod: "put",
4279
4829
  pathParams: ["formation_id"],
4280
4830
  queryParams: [],
4831
+ headerParams: [],
4832
+ cookieParams: [],
4281
4833
  flags: [{
4282
4834
  "name": "formation_id",
4283
4835
  "description": "",
@@ -4288,7 +4840,7 @@ var routes = {
4288
4840
  "name": "template",
4289
4841
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
4290
4842
  "required": false,
4291
- "type": "string",
4843
+ "type": "unknown",
4292
4844
  "in": "body"
4293
4845
  }, {
4294
4846
  "name": "parameters",
@@ -4312,6 +4864,8 @@ var routes = {
4312
4864
  httpMethod: "delete",
4313
4865
  pathParams: ["formation_id"],
4314
4866
  queryParams: [],
4867
+ headerParams: [],
4868
+ cookieParams: [],
4315
4869
  flags: [{
4316
4870
  "name": "formation_id",
4317
4871
  "description": "",
@@ -4328,6 +4882,8 @@ var routes = {
4328
4882
  httpMethod: "get",
4329
4883
  pathParams: ["formation_id"],
4330
4884
  queryParams: ["limit", "offset"],
4885
+ headerParams: [],
4886
+ cookieParams: [],
4331
4887
  flags: [{
4332
4888
  "name": "formation_id",
4333
4889
  "description": "",
@@ -4356,6 +4912,8 @@ var routes = {
4356
4912
  httpMethod: "get",
4357
4913
  pathParams: [],
4358
4914
  queryParams: ["agent_id", "trace_id", "session_id", "actor_id", "initiator_generation_id", "chain_id", "orchestration_run_id", "node_id", "status", "limit", "offset"],
4915
+ headerParams: [],
4916
+ cookieParams: [],
4359
4917
  flags: [{
4360
4918
  "name": "agent_id",
4361
4919
  "description": "Filter by agent public ID",
@@ -4432,6 +4990,8 @@ var routes = {
4432
4990
  httpMethod: "get",
4433
4991
  pathParams: ["generation_id"],
4434
4992
  queryParams: [],
4993
+ headerParams: [],
4994
+ cookieParams: [],
4435
4995
  flags: [{
4436
4996
  "name": "generation_id",
4437
4997
  "description": "Public ID of the generation",
@@ -4448,6 +5008,8 @@ var routes = {
4448
5008
  httpMethod: "patch",
4449
5009
  pathParams: ["generation_id"],
4450
5010
  queryParams: [],
5011
+ headerParams: [],
5012
+ cookieParams: [],
4451
5013
  flags: [{
4452
5014
  "name": "generation_id",
4453
5015
  "description": "Public ID of the generation",
@@ -4470,6 +5032,8 @@ var routes = {
4470
5032
  httpMethod: "delete",
4471
5033
  pathParams: ["generation_id"],
4472
5034
  queryParams: [],
5035
+ headerParams: [],
5036
+ cookieParams: [],
4473
5037
  flags: [{
4474
5038
  "name": "generation_id",
4475
5039
  "description": "Public ID of the generation",
@@ -4486,6 +5050,8 @@ var routes = {
4486
5050
  httpMethod: "get",
4487
5051
  pathParams: ["generation_id"],
4488
5052
  queryParams: [],
5053
+ headerParams: [],
5054
+ cookieParams: [],
4489
5055
  flags: [{
4490
5056
  "name": "generation_id",
4491
5057
  "description": "Public ID of the generation",
@@ -4502,6 +5068,8 @@ var routes = {
4502
5068
  httpMethod: "get",
4503
5069
  pathParams: [],
4504
5070
  queryParams: ["project_id", "limit", "offset"],
5071
+ headerParams: [],
5072
+ cookieParams: [],
4505
5073
  flags: [{
4506
5074
  "name": "project_id",
4507
5075
  "description": "Project public ID to filter by",
@@ -4530,6 +5098,8 @@ var routes = {
4530
5098
  httpMethod: "post",
4531
5099
  pathParams: [],
4532
5100
  queryParams: [],
5101
+ headerParams: [],
5102
+ cookieParams: [],
4533
5103
  flags: [{
4534
5104
  "name": "project_id",
4535
5105
  "description": "Public ID of the project",
@@ -4582,6 +5152,8 @@ var routes = {
4582
5152
  httpMethod: "get",
4583
5153
  pathParams: ["guardrail_id"],
4584
5154
  queryParams: [],
5155
+ headerParams: [],
5156
+ cookieParams: [],
4585
5157
  flags: [{
4586
5158
  "name": "guardrail_id",
4587
5159
  "description": "",
@@ -4598,12 +5170,20 @@ var routes = {
4598
5170
  httpMethod: "patch",
4599
5171
  pathParams: ["guardrail_id"],
4600
5172
  queryParams: [],
5173
+ headerParams: ["If-Match"],
5174
+ cookieParams: [],
4601
5175
  flags: [{
4602
5176
  "name": "guardrail_id",
4603
5177
  "description": "",
4604
5178
  "required": true,
4605
5179
  "type": "string",
4606
5180
  "in": "path"
5181
+ }, {
5182
+ "name": "If-Match",
5183
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
5184
+ "required": false,
5185
+ "type": "string",
5186
+ "in": "header"
4607
5187
  }, {
4608
5188
  "name": "name",
4609
5189
  "description": "",
@@ -4640,6 +5220,12 @@ var routes = {
4640
5220
  "required": false,
4641
5221
  "type": "string",
4642
5222
  "in": "body"
5223
+ }, {
5224
+ "name": "expected_version",
5225
+ "description": "Refuses the write unless the resource is at this version.",
5226
+ "required": false,
5227
+ "type": "integer",
5228
+ "in": "body"
4643
5229
  }]
4644
5230
  },
4645
5231
  "delete-guardrail": {
@@ -4650,6 +5236,8 @@ var routes = {
4650
5236
  httpMethod: "delete",
4651
5237
  pathParams: ["guardrail_id"],
4652
5238
  queryParams: [],
5239
+ headerParams: [],
5240
+ cookieParams: [],
4653
5241
  flags: [{
4654
5242
  "name": "guardrail_id",
4655
5243
  "description": "",
@@ -4666,6 +5254,8 @@ var routes = {
4666
5254
  httpMethod: "get",
4667
5255
  pathParams: ["guardrail_id"],
4668
5256
  queryParams: ["limit", "offset"],
5257
+ headerParams: [],
5258
+ cookieParams: [],
4669
5259
  flags: [{
4670
5260
  "name": "guardrail_id",
4671
5261
  "description": "",
@@ -4694,6 +5284,8 @@ var routes = {
4694
5284
  httpMethod: "get",
4695
5285
  pathParams: ["guardrail_id", "version"],
4696
5286
  queryParams: [],
5287
+ headerParams: [],
5288
+ cookieParams: [],
4697
5289
  flags: [{
4698
5290
  "name": "guardrail_id",
4699
5291
  "description": "",
@@ -4716,6 +5308,8 @@ var routes = {
4716
5308
  httpMethod: "post",
4717
5309
  pathParams: ["guardrail_id", "version"],
4718
5310
  queryParams: [],
5311
+ headerParams: [],
5312
+ cookieParams: [],
4719
5313
  flags: [{
4720
5314
  "name": "guardrail_id",
4721
5315
  "description": "",
@@ -4744,6 +5338,8 @@ var routes = {
4744
5338
  httpMethod: "post",
4745
5339
  pathParams: ["guardrail_id"],
4746
5340
  queryParams: [],
5341
+ headerParams: [],
5342
+ cookieParams: [],
4747
5343
  flags: [{
4748
5344
  "name": "guardrail_id",
4749
5345
  "description": "",
@@ -4778,6 +5374,8 @@ var routes = {
4778
5374
  httpMethod: "get",
4779
5375
  pathParams: [],
4780
5376
  queryParams: ["project_id", "limit", "offset"],
5377
+ headerParams: [],
5378
+ cookieParams: [],
4781
5379
  flags: [{
4782
5380
  "name": "project_id",
4783
5381
  "description": "Project ID (required if not using project key auth)",
@@ -4806,6 +5404,8 @@ var routes = {
4806
5404
  httpMethod: "post",
4807
5405
  pathParams: [],
4808
5406
  queryParams: [],
5407
+ headerParams: [],
5408
+ cookieParams: [],
4809
5409
  flags: [{
4810
5410
  "name": "project_id",
4811
5411
  "description": "Project ID (required if not using project key auth)",
@@ -4888,6 +5488,8 @@ var routes = {
4888
5488
  httpMethod: "get",
4889
5489
  pathParams: ["ingestion_rule_id"],
4890
5490
  queryParams: [],
5491
+ headerParams: [],
5492
+ cookieParams: [],
4891
5493
  flags: [{
4892
5494
  "name": "ingestion_rule_id",
4893
5495
  "description": "Ingestion rule ID",
@@ -4904,6 +5506,8 @@ var routes = {
4904
5506
  httpMethod: "patch",
4905
5507
  pathParams: ["ingestion_rule_id"],
4906
5508
  queryParams: [],
5509
+ headerParams: [],
5510
+ cookieParams: [],
4907
5511
  flags: [{
4908
5512
  "name": "ingestion_rule_id",
4909
5513
  "description": "Ingestion rule ID",
@@ -4972,7 +5576,7 @@ var routes = {
4972
5576
  "in": "body"
4973
5577
  }, {
4974
5578
  "name": "metadata",
4975
- "description": "",
5579
+ "description": "A `MetadataBag` on a field where `null` is meaningful — a full-replacement update that clears the bag, or a record whose bag was never set.",
4976
5580
  "required": false,
4977
5581
  "type": "object",
4978
5582
  "in": "body"
@@ -4986,6 +5590,8 @@ var routes = {
4986
5590
  httpMethod: "delete",
4987
5591
  pathParams: ["ingestion_rule_id"],
4988
5592
  queryParams: [],
5593
+ headerParams: [],
5594
+ cookieParams: [],
4989
5595
  flags: [{
4990
5596
  "name": "ingestion_rule_id",
4991
5597
  "description": "Ingestion rule ID",
@@ -5002,6 +5608,8 @@ var routes = {
5002
5608
  httpMethod: "post",
5003
5609
  pathParams: [],
5004
5610
  queryParams: [],
5611
+ headerParams: [],
5612
+ cookieParams: [],
5005
5613
  flags: [{
5006
5614
  "name": "project_id",
5007
5615
  "description": "Limit search to a specific project",
@@ -5074,6 +5682,12 @@ var routes = {
5074
5682
  "required": false,
5075
5683
  "type": "object",
5076
5684
  "in": "body"
5685
+ }, {
5686
+ "name": "metadata",
5687
+ "description": "Filter document results by their `metadata` bag. A document-store filter: a memory carries no such bag, so passing it alone searches documents, as `document_paths` does.",
5688
+ "required": false,
5689
+ "type": "object",
5690
+ "in": "body"
5077
5691
  }]
5078
5692
  },
5079
5693
  "list-memories": {
@@ -5084,6 +5698,8 @@ var routes = {
5084
5698
  httpMethod: "get",
5085
5699
  pathParams: [],
5086
5700
  queryParams: ["memory_store_id", "tags", "limit", "offset", "include_invalidated"],
5701
+ headerParams: [],
5702
+ cookieParams: [],
5087
5703
  flags: [{
5088
5704
  "name": "memory_store_id",
5089
5705
  "description": "Memory store to list memories from (mstore_...)",
@@ -5110,7 +5726,7 @@ var routes = {
5110
5726
  "in": "query"
5111
5727
  }, {
5112
5728
  "name": "include_invalidated",
5113
- "description": "Include invalidated (superseded) memories. They are excluded by default; set this to audit the supersede history.",
5729
+ "description": "Include invalidated memories — superseded or retracted. They are excluded by default; set this to audit what a store once held.",
5114
5730
  "required": false,
5115
5731
  "type": "boolean",
5116
5732
  "in": "query"
@@ -5124,6 +5740,8 @@ var routes = {
5124
5740
  httpMethod: "post",
5125
5741
  pathParams: [],
5126
5742
  queryParams: [],
5743
+ headerParams: [],
5744
+ cookieParams: [],
5127
5745
  flags: [{
5128
5746
  "name": "memory_store_id",
5129
5747
  "description": "Memory store to add the memory to (mstore_...)",
@@ -5188,6 +5806,8 @@ var routes = {
5188
5806
  httpMethod: "get",
5189
5807
  pathParams: ["memory_id"],
5190
5808
  queryParams: [],
5809
+ headerParams: [],
5810
+ cookieParams: [],
5191
5811
  flags: [{
5192
5812
  "name": "memory_id",
5193
5813
  "description": "",
@@ -5204,12 +5824,20 @@ var routes = {
5204
5824
  httpMethod: "put",
5205
5825
  pathParams: ["memory_id"],
5206
5826
  queryParams: [],
5827
+ headerParams: ["If-Match"],
5828
+ cookieParams: [],
5207
5829
  flags: [{
5208
5830
  "name": "memory_id",
5209
5831
  "description": "",
5210
5832
  "required": true,
5211
5833
  "type": "string",
5212
5834
  "in": "path"
5835
+ }, {
5836
+ "name": "If-Match",
5837
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
5838
+ "required": false,
5839
+ "type": "string",
5840
+ "in": "header"
5213
5841
  }, {
5214
5842
  "name": "content",
5215
5843
  "description": "Updated text content",
@@ -5228,6 +5856,12 @@ var routes = {
5228
5856
  "required": false,
5229
5857
  "type": "object",
5230
5858
  "in": "body"
5859
+ }, {
5860
+ "name": "expected_version",
5861
+ "description": "Refuses the write unless the memory is at this version.",
5862
+ "required": false,
5863
+ "type": "integer",
5864
+ "in": "body"
5231
5865
  }]
5232
5866
  },
5233
5867
  "delete-memory": {
@@ -5238,6 +5872,8 @@ var routes = {
5238
5872
  httpMethod: "delete",
5239
5873
  pathParams: ["memory_id"],
5240
5874
  queryParams: [],
5875
+ headerParams: [],
5876
+ cookieParams: [],
5241
5877
  flags: [{
5242
5878
  "name": "memory_id",
5243
5879
  "description": "",
@@ -5246,6 +5882,36 @@ var routes = {
5246
5882
  "in": "path"
5247
5883
  }]
5248
5884
  },
5885
+ "retract-memory": {
5886
+ serviceClass: "Memories",
5887
+ operationId: "retractMemory",
5888
+ description: "Retires a fact that stopped holding with nothing replacing it. The memory leaves the default listing, [knowledge search](/docs/api/knowledge/search-knowledge) and write deduplication, so restating the fact later lands as a new memory. It is an invalidation with no successor, which is what tells it apart from a supersede: `invalidated_at` is set and `superseded_by_memory_id` stays null. The retraction is appended to the assertion ledger with outcome `retracted`, so who withdrew the fact is part of the record. The memory stays readable by id, with its text and its assertions. `DELETE` remains the way to remove it outright.",
5889
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5890
+ httpMethod: "post",
5891
+ pathParams: ["memory_id"],
5892
+ queryParams: [],
5893
+ headerParams: ["If-Match"],
5894
+ cookieParams: [],
5895
+ flags: [{
5896
+ "name": "memory_id",
5897
+ "description": "",
5898
+ "required": true,
5899
+ "type": "string",
5900
+ "in": "path"
5901
+ }, {
5902
+ "name": "If-Match",
5903
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
5904
+ "required": false,
5905
+ "type": "string",
5906
+ "in": "header"
5907
+ }, {
5908
+ "name": "expected_version",
5909
+ "description": "Refuses the retraction unless the memory is at this version.",
5910
+ "required": false,
5911
+ "type": "integer",
5912
+ "in": "body"
5913
+ }]
5914
+ },
5249
5915
  "list-memory-assertions": {
5250
5916
  serviceClass: "Memories",
5251
5917
  operationId: "listMemoryAssertions",
@@ -5254,6 +5920,8 @@ var routes = {
5254
5920
  httpMethod: "get",
5255
5921
  pathParams: ["memory_id"],
5256
5922
  queryParams: ["limit", "offset"],
5923
+ headerParams: [],
5924
+ cookieParams: [],
5257
5925
  flags: [{
5258
5926
  "name": "memory_id",
5259
5927
  "description": "",
@@ -5282,6 +5950,8 @@ var routes = {
5282
5950
  httpMethod: "get",
5283
5951
  pathParams: ["memory_id"],
5284
5952
  queryParams: [],
5953
+ headerParams: [],
5954
+ cookieParams: [],
5285
5955
  flags: [{
5286
5956
  "name": "memory_id",
5287
5957
  "description": "Memory ID",
@@ -5298,6 +5968,8 @@ var routes = {
5298
5968
  httpMethod: "put",
5299
5969
  pathParams: ["memory_id"],
5300
5970
  queryParams: [],
5971
+ headerParams: [],
5972
+ cookieParams: [],
5301
5973
  flags: [{
5302
5974
  "name": "memory_id",
5303
5975
  "description": "Memory ID",
@@ -5314,6 +5986,8 @@ var routes = {
5314
5986
  httpMethod: "patch",
5315
5987
  pathParams: ["memory_id"],
5316
5988
  queryParams: [],
5989
+ headerParams: [],
5990
+ cookieParams: [],
5317
5991
  flags: [{
5318
5992
  "name": "memory_id",
5319
5993
  "description": "Memory ID",
@@ -5330,6 +6004,8 @@ var routes = {
5330
6004
  httpMethod: "get",
5331
6005
  pathParams: [],
5332
6006
  queryParams: ["memory_store_id", "project_id", "limit", "offset"],
6007
+ headerParams: [],
6008
+ cookieParams: [],
5333
6009
  flags: [{
5334
6010
  "name": "memory_store_id",
5335
6011
  "description": "Only the rules of this memory store",
@@ -5364,6 +6040,8 @@ var routes = {
5364
6040
  httpMethod: "post",
5365
6041
  pathParams: [],
5366
6042
  queryParams: [],
6043
+ headerParams: [],
6044
+ cookieParams: [],
5367
6045
  flags: [{
5368
6046
  "name": "memory_store_id",
5369
6047
  "description": "The destination store, and the rule's owning scope",
@@ -5440,6 +6118,8 @@ var routes = {
5440
6118
  httpMethod: "get",
5441
6119
  pathParams: ["memory_rule_id"],
5442
6120
  queryParams: [],
6121
+ headerParams: [],
6122
+ cookieParams: [],
5443
6123
  flags: [{
5444
6124
  "name": "memory_rule_id",
5445
6125
  "description": "Memory rule ID",
@@ -5456,6 +6136,8 @@ var routes = {
5456
6136
  httpMethod: "patch",
5457
6137
  pathParams: ["memory_rule_id"],
5458
6138
  queryParams: [],
6139
+ headerParams: [],
6140
+ cookieParams: [],
5459
6141
  flags: [{
5460
6142
  "name": "memory_rule_id",
5461
6143
  "description": "Memory rule ID",
@@ -5532,6 +6214,8 @@ var routes = {
5532
6214
  httpMethod: "delete",
5533
6215
  pathParams: ["memory_rule_id"],
5534
6216
  queryParams: [],
6217
+ headerParams: [],
6218
+ cookieParams: [],
5535
6219
  flags: [{
5536
6220
  "name": "memory_rule_id",
5537
6221
  "description": "Memory rule ID",
@@ -5548,6 +6232,8 @@ var routes = {
5548
6232
  httpMethod: "get",
5549
6233
  pathParams: [],
5550
6234
  queryParams: ["project_id", "tags", "limit", "offset"],
6235
+ headerParams: [],
6236
+ cookieParams: [],
5551
6237
  flags: [{
5552
6238
  "name": "project_id",
5553
6239
  "description": "Project ID (required if not using project key auth)",
@@ -5582,6 +6268,8 @@ var routes = {
5582
6268
  httpMethod: "post",
5583
6269
  pathParams: [],
5584
6270
  queryParams: [],
6271
+ headerParams: [],
6272
+ cookieParams: [],
5585
6273
  flags: [{
5586
6274
  "name": "project_id",
5587
6275
  "description": "Project ID (required if not using project key auth)",
@@ -5628,6 +6316,8 @@ var routes = {
5628
6316
  httpMethod: "get",
5629
6317
  pathParams: ["memory_store_id"],
5630
6318
  queryParams: [],
6319
+ headerParams: [],
6320
+ cookieParams: [],
5631
6321
  flags: [{
5632
6322
  "name": "memory_store_id",
5633
6323
  "description": "",
@@ -5644,6 +6334,8 @@ var routes = {
5644
6334
  httpMethod: "put",
5645
6335
  pathParams: ["memory_store_id"],
5646
6336
  queryParams: [],
6337
+ headerParams: [],
6338
+ cookieParams: [],
5647
6339
  flags: [{
5648
6340
  "name": "memory_store_id",
5649
6341
  "description": "",
@@ -5690,6 +6382,8 @@ var routes = {
5690
6382
  httpMethod: "delete",
5691
6383
  pathParams: ["memory_store_id"],
5692
6384
  queryParams: [],
6385
+ headerParams: [],
6386
+ cookieParams: [],
5693
6387
  flags: [{
5694
6388
  "name": "memory_store_id",
5695
6389
  "description": "",
@@ -5706,6 +6400,8 @@ var routes = {
5706
6400
  httpMethod: "get",
5707
6401
  pathParams: ["memory_store_id"],
5708
6402
  queryParams: ["mechanism", "outcome", "generation_id", "since", "limit", "offset"],
6403
+ headerParams: [],
6404
+ cookieParams: [],
5709
6405
  flags: [{
5710
6406
  "name": "memory_store_id",
5711
6407
  "description": "",
@@ -5750,6 +6446,36 @@ var routes = {
5750
6446
  "in": "query"
5751
6447
  }]
5752
6448
  },
6449
+ "export-memories": {
6450
+ serviceClass: "MemoryStores",
6451
+ operationId: "exportMemories",
6452
+ description: "Streams one store's memories as newline-delimited JSON — one memory object per line, oldest first. Invalidated memories (retracted or superseded) are left out unless `include_invalidated` asks for them, so the file holds what the store currently asserts. The rows are the rows the listing returns for the same caller.",
6453
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
6454
+ httpMethod: "get",
6455
+ pathParams: ["memory_store_id"],
6456
+ queryParams: ["include_invalidated", "tags"],
6457
+ headerParams: [],
6458
+ cookieParams: [],
6459
+ flags: [{
6460
+ "name": "memory_store_id",
6461
+ "description": "Memory store whose memories are exported",
6462
+ "required": true,
6463
+ "type": "string",
6464
+ "in": "path"
6465
+ }, {
6466
+ "name": "include_invalidated",
6467
+ "description": "Include memories that were retracted or superseded",
6468
+ "required": false,
6469
+ "type": "boolean",
6470
+ "in": "query"
6471
+ }, {
6472
+ "name": "tags",
6473
+ "description": "Filter by tag pairs, written `key:value` (split on the first colon, so a value may contain colons). Repeat the parameter for several pairs; **all** must be present with exactly that value.\n",
6474
+ "required": false,
6475
+ "type": "array",
6476
+ "in": "query"
6477
+ }]
6478
+ },
5753
6479
  "get-memory-store-tags": {
5754
6480
  serviceClass: "MemoryStores",
5755
6481
  operationId: "getMemoryStoreTags",
@@ -5758,6 +6484,8 @@ var routes = {
5758
6484
  httpMethod: "get",
5759
6485
  pathParams: ["memory_store_id"],
5760
6486
  queryParams: [],
6487
+ headerParams: [],
6488
+ cookieParams: [],
5761
6489
  flags: [{
5762
6490
  "name": "memory_store_id",
5763
6491
  "description": "Memory store ID",
@@ -5774,6 +6502,8 @@ var routes = {
5774
6502
  httpMethod: "put",
5775
6503
  pathParams: ["memory_store_id"],
5776
6504
  queryParams: [],
6505
+ headerParams: [],
6506
+ cookieParams: [],
5777
6507
  flags: [{
5778
6508
  "name": "memory_store_id",
5779
6509
  "description": "Memory store ID",
@@ -5790,6 +6520,8 @@ var routes = {
5790
6520
  httpMethod: "patch",
5791
6521
  pathParams: ["memory_store_id"],
5792
6522
  queryParams: [],
6523
+ headerParams: [],
6524
+ cookieParams: [],
5793
6525
  flags: [{
5794
6526
  "name": "memory_store_id",
5795
6527
  "description": "Memory store ID",
@@ -5798,6 +6530,174 @@ var routes = {
5798
6530
  "in": "path"
5799
6531
  }]
5800
6532
  },
6533
+ "list-metadata-schemas": {
6534
+ serviceClass: "MetadataSchemas",
6535
+ operationId: "listMetadataSchemas",
6536
+ description: "Returns the declarations in scope, oldest first. `resource_type` narrows them to one governed resource.",
6537
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/metadata-schemas",
6538
+ httpMethod: "get",
6539
+ pathParams: [],
6540
+ queryParams: ["project_id", "resource_type", "limit", "offset"],
6541
+ headerParams: [],
6542
+ cookieParams: [],
6543
+ flags: [{
6544
+ "name": "project_id",
6545
+ "description": "Project public ID (proj_ prefix)",
6546
+ "required": false,
6547
+ "type": "string",
6548
+ "in": "query"
6549
+ }, {
6550
+ "name": "resource_type",
6551
+ "description": "Return only the declarations governing this resource.",
6552
+ "required": false,
6553
+ "type": "string",
6554
+ "in": "query"
6555
+ }, {
6556
+ "name": "limit",
6557
+ "description": "Maximum number of results to return",
6558
+ "required": false,
6559
+ "type": "integer",
6560
+ "in": "query"
6561
+ }, {
6562
+ "name": "offset",
6563
+ "description": "Number of results to skip",
6564
+ "required": false,
6565
+ "type": "integer",
6566
+ "in": "query"
6567
+ }]
6568
+ },
6569
+ "create-metadata-schema": {
6570
+ serviceClass: "MetadataSchemas",
6571
+ operationId: "createMetadataSchema",
6572
+ description: "Declares what `metadata` must satisfy for one resource type under one selector. A document is selected by `path_prefix`, matched on a path boundary: `/reports` covers `/reports/q1.txt` and never `/reports-archive/q1.txt`. The schema is compiled here, so one JSON Schema cannot parse is refused rather than stored — a stored one would be a rule that silently governs nothing. One selector has one schema per resource type; a second declaration of the same one is `409 NAME_CONFLICT`. The reserved root `/.system` cannot be governed: a platform-written document carries no caller metadata.",
6573
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/metadata-schemas",
6574
+ httpMethod: "post",
6575
+ pathParams: [],
6576
+ queryParams: [],
6577
+ headerParams: [],
6578
+ cookieParams: [],
6579
+ flags: [{
6580
+ "name": "project_id",
6581
+ "description": "Project the declaration governs. Optional for a project-scoped API key, which supplies it.",
6582
+ "required": false,
6583
+ "type": "string",
6584
+ "in": "body"
6585
+ }, {
6586
+ "name": "resource_type",
6587
+ "description": "The resource whose metadata this declaration governs. A type appears here once its write path reads the registry, so a declaration always has a door that enforces it.",
6588
+ "required": true,
6589
+ "type": "string",
6590
+ "in": "body"
6591
+ }, {
6592
+ "name": "path_prefix",
6593
+ "description": "The selector a `document` declaration must carry: the directory it governs.",
6594
+ "required": false,
6595
+ "type": "string",
6596
+ "in": "body"
6597
+ }, {
6598
+ "name": "schema",
6599
+ "description": "A JSON Schema. Its keywords are its own vocabulary and are stored as written.",
6600
+ "required": true,
6601
+ "type": "object",
6602
+ "in": "body"
6603
+ }]
6604
+ },
6605
+ "validate-metadata": {
6606
+ serviceClass: "MetadataSchemas",
6607
+ operationId: "validateMetadata",
6608
+ description: "Answers what a write would be told, without writing: a caller preparing a batch learns which declaration would refuse it, and why, before it sends anything. It reports; it does not enforce. The refusal itself lives in each resource's own write path, because a check a writer has to call is advisory and the writer who skips it is the one the rule exists for.",
6609
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/metadata-schemas",
6610
+ httpMethod: "post",
6611
+ pathParams: [],
6612
+ queryParams: [],
6613
+ headerParams: [],
6614
+ cookieParams: [],
6615
+ flags: [{
6616
+ "name": "project_id",
6617
+ "description": "",
6618
+ "required": false,
6619
+ "type": "string",
6620
+ "in": "body"
6621
+ }, {
6622
+ "name": "path",
6623
+ "description": "The path the document would be filed at, which decides which declaration governs it.",
6624
+ "required": true,
6625
+ "type": "string",
6626
+ "in": "body"
6627
+ }, {
6628
+ "name": "metadata",
6629
+ "description": "The bag to judge. Absent or `null` is judged as an empty bag.",
6630
+ "required": false,
6631
+ "type": "object",
6632
+ "in": "body"
6633
+ }]
6634
+ },
6635
+ "get-metadata-schema": {
6636
+ serviceClass: "MetadataSchemas",
6637
+ operationId: "getMetadataSchema",
6638
+ description: "Get a metadata schema",
6639
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/metadata-schemas",
6640
+ httpMethod: "get",
6641
+ pathParams: ["metadata_schema_id"],
6642
+ queryParams: [],
6643
+ headerParams: [],
6644
+ cookieParams: [],
6645
+ flags: [{
6646
+ "name": "metadata_schema_id",
6647
+ "description": "",
6648
+ "required": true,
6649
+ "type": "string",
6650
+ "in": "path"
6651
+ }]
6652
+ },
6653
+ "update-metadata-schema": {
6654
+ serviceClass: "MetadataSchemas",
6655
+ operationId: "updateMetadataSchema",
6656
+ description: "Changes the schema, the selector, or both. `resource_type` is fixed at creation: it decides the selector's spelling and which write path reads the row, so changing it would silently repoint the declaration at a different door — delete it and declare again instead.",
6657
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/metadata-schemas",
6658
+ httpMethod: "patch",
6659
+ pathParams: ["metadata_schema_id"],
6660
+ queryParams: [],
6661
+ headerParams: [],
6662
+ cookieParams: [],
6663
+ flags: [{
6664
+ "name": "metadata_schema_id",
6665
+ "description": "",
6666
+ "required": true,
6667
+ "type": "string",
6668
+ "in": "path"
6669
+ }, {
6670
+ "name": "path_prefix",
6671
+ "description": "The declaration's new selector.",
6672
+ "required": false,
6673
+ "type": "string",
6674
+ "in": "body"
6675
+ }, {
6676
+ "name": "schema",
6677
+ "description": "Replaces the declared JSON Schema.",
6678
+ "required": false,
6679
+ "type": "object",
6680
+ "in": "body"
6681
+ }]
6682
+ },
6683
+ "delete-metadata-schema": {
6684
+ serviceClass: "MetadataSchemas",
6685
+ operationId: "deleteMetadataSchema",
6686
+ description: "Removes the declaration. Documents already stored keep the metadata they hold — the rule governed writes, not rows.",
6687
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/metadata-schemas",
6688
+ httpMethod: "delete",
6689
+ pathParams: ["metadata_schema_id"],
6690
+ queryParams: [],
6691
+ headerParams: [],
6692
+ cookieParams: [],
6693
+ flags: [{
6694
+ "name": "metadata_schema_id",
6695
+ "description": "",
6696
+ "required": true,
6697
+ "type": "string",
6698
+ "in": "path"
6699
+ }]
6700
+ },
5801
6701
  "list-model-routes": {
5802
6702
  serviceClass: "ModelRoutes",
5803
6703
  operationId: "listModelRoutes",
@@ -5806,6 +6706,8 @@ var routes = {
5806
6706
  httpMethod: "get",
5807
6707
  pathParams: [],
5808
6708
  queryParams: ["project_id", "limit", "offset"],
6709
+ headerParams: [],
6710
+ cookieParams: [],
5809
6711
  flags: [{
5810
6712
  "name": "project_id",
5811
6713
  "description": "Project ID (required if not using project key auth)",
@@ -5834,6 +6736,8 @@ var routes = {
5834
6736
  httpMethod: "post",
5835
6737
  pathParams: [],
5836
6738
  queryParams: [],
6739
+ headerParams: [],
6740
+ cookieParams: [],
5837
6741
  flags: [{
5838
6742
  "name": "project_id",
5839
6743
  "description": "Project ID (required if not using project key auth)",
@@ -5880,6 +6784,8 @@ var routes = {
5880
6784
  httpMethod: "get",
5881
6785
  pathParams: ["route_id"],
5882
6786
  queryParams: [],
6787
+ headerParams: [],
6788
+ cookieParams: [],
5883
6789
  flags: [{
5884
6790
  "name": "route_id",
5885
6791
  "description": "Model route ID",
@@ -5896,6 +6802,8 @@ var routes = {
5896
6802
  httpMethod: "put",
5897
6803
  pathParams: ["route_id"],
5898
6804
  queryParams: [],
6805
+ headerParams: [],
6806
+ cookieParams: [],
5899
6807
  flags: [{
5900
6808
  "name": "route_id",
5901
6809
  "description": "Model route ID",
@@ -5942,6 +6850,8 @@ var routes = {
5942
6850
  httpMethod: "delete",
5943
6851
  pathParams: ["route_id"],
5944
6852
  queryParams: [],
6853
+ headerParams: [],
6854
+ cookieParams: [],
5945
6855
  flags: [{
5946
6856
  "name": "route_id",
5947
6857
  "description": "Model route ID",
@@ -5958,6 +6868,8 @@ var routes = {
5958
6868
  httpMethod: "get",
5959
6869
  pathParams: [],
5960
6870
  queryParams: ["project_id", "limit", "offset"],
6871
+ headerParams: [],
6872
+ cookieParams: [],
5961
6873
  flags: [{
5962
6874
  "name": "project_id",
5963
6875
  "description": "Filter by project public ID",
@@ -5986,6 +6898,8 @@ var routes = {
5986
6898
  httpMethod: "post",
5987
6899
  pathParams: [],
5988
6900
  queryParams: [],
6901
+ headerParams: [],
6902
+ cookieParams: [],
5989
6903
  flags: [{
5990
6904
  "name": "project_id",
5991
6905
  "description": "Public ID of the project. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise.",
@@ -6044,6 +6958,8 @@ var routes = {
6044
6958
  httpMethod: "post",
6045
6959
  pathParams: [],
6046
6960
  queryParams: [],
6961
+ headerParams: [],
6962
+ cookieParams: [],
6047
6963
  flags: [{
6048
6964
  "name": "nodes",
6049
6965
  "description": "",
@@ -6072,6 +6988,8 @@ var routes = {
6072
6988
  httpMethod: "get",
6073
6989
  pathParams: [],
6074
6990
  queryParams: [],
6991
+ headerParams: [],
6992
+ cookieParams: [],
6075
6993
  flags: []
6076
6994
  },
6077
6995
  "get-orchestration": {
@@ -6082,6 +7000,8 @@ var routes = {
6082
7000
  httpMethod: "get",
6083
7001
  pathParams: ["orchestration_id"],
6084
7002
  queryParams: [],
7003
+ headerParams: [],
7004
+ cookieParams: [],
6085
7005
  flags: [{
6086
7006
  "name": "orchestration_id",
6087
7007
  "description": "Public ID of the orchestration (orch_...)",
@@ -6098,12 +7018,20 @@ var routes = {
6098
7018
  httpMethod: "patch",
6099
7019
  pathParams: ["orchestration_id"],
6100
7020
  queryParams: [],
7021
+ headerParams: ["If-Match"],
7022
+ cookieParams: [],
6101
7023
  flags: [{
6102
7024
  "name": "orchestration_id",
6103
7025
  "description": "Public ID of the orchestration (orch_...)",
6104
7026
  "required": true,
6105
7027
  "type": "string",
6106
7028
  "in": "path"
7029
+ }, {
7030
+ "name": "If-Match",
7031
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
7032
+ "required": false,
7033
+ "type": "string",
7034
+ "in": "header"
6107
7035
  }, {
6108
7036
  "name": "name",
6109
7037
  "description": "",
@@ -6146,6 +7074,12 @@ var routes = {
6146
7074
  "required": false,
6147
7075
  "type": "string",
6148
7076
  "in": "body"
7077
+ }, {
7078
+ "name": "expected_version",
7079
+ "description": "Refuses the write unless the resource is at this version.",
7080
+ "required": false,
7081
+ "type": "integer",
7082
+ "in": "body"
6149
7083
  }]
6150
7084
  },
6151
7085
  "delete-orchestration": {
@@ -6156,6 +7090,8 @@ var routes = {
6156
7090
  httpMethod: "delete",
6157
7091
  pathParams: ["orchestration_id"],
6158
7092
  queryParams: [],
7093
+ headerParams: [],
7094
+ cookieParams: [],
6159
7095
  flags: [{
6160
7096
  "name": "orchestration_id",
6161
7097
  "description": "Public ID of the orchestration (orch_...)",
@@ -6172,6 +7108,8 @@ var routes = {
6172
7108
  httpMethod: "get",
6173
7109
  pathParams: ["orchestration_id"],
6174
7110
  queryParams: ["limit", "offset"],
7111
+ headerParams: [],
7112
+ cookieParams: [],
6175
7113
  flags: [{
6176
7114
  "name": "orchestration_id",
6177
7115
  "description": "Public ID of the orchestration (orch_...)",
@@ -6200,6 +7138,8 @@ var routes = {
6200
7138
  httpMethod: "get",
6201
7139
  pathParams: ["orchestration_id", "version"],
6202
7140
  queryParams: [],
7141
+ headerParams: [],
7142
+ cookieParams: [],
6203
7143
  flags: [{
6204
7144
  "name": "orchestration_id",
6205
7145
  "description": "Public ID of the orchestration (orch_...)",
@@ -6222,6 +7162,8 @@ var routes = {
6222
7162
  httpMethod: "post",
6223
7163
  pathParams: ["orchestration_id", "version"],
6224
7164
  queryParams: [],
7165
+ headerParams: [],
7166
+ cookieParams: [],
6225
7167
  flags: [{
6226
7168
  "name": "orchestration_id",
6227
7169
  "description": "Public ID of the orchestration (orch_...)",
@@ -6250,6 +7192,8 @@ var routes = {
6250
7192
  httpMethod: "get",
6251
7193
  pathParams: [],
6252
7194
  queryParams: ["orchestration_id", "parent_orchestration_run_id", "nested", "status", "limit", "offset"],
7195
+ headerParams: [],
7196
+ cookieParams: [],
6253
7197
  flags: [{
6254
7198
  "name": "orchestration_id",
6255
7199
  "description": "Filter by orchestration public ID (orch_...)",
@@ -6296,6 +7240,8 @@ var routes = {
6296
7240
  httpMethod: "post",
6297
7241
  pathParams: [],
6298
7242
  queryParams: [],
7243
+ headerParams: [],
7244
+ cookieParams: [],
6299
7245
  flags: [{
6300
7246
  "name": "orchestration_id",
6301
7247
  "description": "Orchestration to run (orch_...).",
@@ -6310,7 +7256,7 @@ var routes = {
6310
7256
  "in": "body"
6311
7257
  }, {
6312
7258
  "name": "tool_context",
6313
- "description": "Key-value pairs forwarded as `X-Soat-Context-<key>` headers on every `http`, `mcp` and `builtin` tool call made by an agent node of this run — including the agents of any child run a `loop` or `sub_orchestration` node starts. The header name is `X-Soat-Context-` plus the key verbatim; no character is re-cased.\n\nThe bag is stored on the run and re-read on every step, so it survives an `awaiting_input` pause, a `sleeping` wait, a background worker drive and a crash redrive. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY` and no run is created.\n\nThe reserved identity keys (`session_id`, `actor_id`, `actor_external_id`) are stripped at generation time — a caller cannot address them from here.",
7259
+ "description": "Key-value pairs forwarded as `X-Soat-Context-<key>` headers on every `http`, `mcp` and `builtin` tool call made by an agent node of this run — including the agents of any child run a `loop` or `sub_orchestration` node starts. The header name is `X-Soat-Context-` plus the key verbatim; no character is re-cased.\n\nThe bag is stored on the run and re-read on every step, so it survives an `awaiting_input` pause, a `sleeping` wait, a background worker drive and a crash redrive. It is **write-only**: a run is a record every principal who may read runs can read, and a credential in it is not theirs to see, so it is never returned on one. It also does not outlive the run: reaching a terminal status (`succeeded`, `failed`, `cancelled` or `expired`) clears it. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY` and no run is created.\n\nThe reserved identity keys (`session_id`, `actor_id`, `actor_external_id`) are stripped at generation time — a caller cannot address them from here.",
6314
7260
  "required": false,
6315
7261
  "type": "object",
6316
7262
  "in": "body"
@@ -6342,6 +7288,8 @@ var routes = {
6342
7288
  httpMethod: "post",
6343
7289
  pathParams: ["orchestration_run_id"],
6344
7290
  queryParams: [],
7291
+ headerParams: [],
7292
+ cookieParams: [],
6345
7293
  flags: [{
6346
7294
  "name": "orchestration_run_id",
6347
7295
  "description": "Public ID of the run (run_...)",
@@ -6358,6 +7306,8 @@ var routes = {
6358
7306
  httpMethod: "post",
6359
7307
  pathParams: ["orchestration_run_id"],
6360
7308
  queryParams: [],
7309
+ headerParams: [],
7310
+ cookieParams: [],
6361
7311
  flags: [{
6362
7312
  "name": "orchestration_run_id",
6363
7313
  "description": "Public ID of the run (run_...)",
@@ -6380,6 +7330,8 @@ var routes = {
6380
7330
  httpMethod: "post",
6381
7331
  pathParams: ["orchestration_run_id"],
6382
7332
  queryParams: [],
7333
+ headerParams: [],
7334
+ cookieParams: [],
6383
7335
  flags: [{
6384
7336
  "name": "orchestration_run_id",
6385
7337
  "description": "Public ID of the run (run_...)",
@@ -6408,6 +7360,8 @@ var routes = {
6408
7360
  httpMethod: "post",
6409
7361
  pathParams: ["orchestration_run_id"],
6410
7362
  queryParams: [],
7363
+ headerParams: [],
7364
+ cookieParams: [],
6411
7365
  flags: [{
6412
7366
  "name": "orchestration_run_id",
6413
7367
  "description": "Public ID of the run (run_...)",
@@ -6424,6 +7378,8 @@ var routes = {
6424
7378
  httpMethod: "get",
6425
7379
  pathParams: ["orchestration_run_id"],
6426
7380
  queryParams: [],
7381
+ headerParams: [],
7382
+ cookieParams: [],
6427
7383
  flags: [{
6428
7384
  "name": "orchestration_run_id",
6429
7385
  "description": "Public ID of the run (run_...)",
@@ -6440,6 +7396,8 @@ var routes = {
6440
7396
  httpMethod: "get",
6441
7397
  pathParams: [],
6442
7398
  queryParams: ["user_id", "limit", "offset"],
7399
+ headerParams: [],
7400
+ cookieParams: [],
6443
7401
  flags: [{
6444
7402
  "name": "user_id",
6445
7403
  "description": "Return only policies attached to this user (user_...)",
@@ -6468,6 +7426,8 @@ var routes = {
6468
7426
  httpMethod: "post",
6469
7427
  pathParams: [],
6470
7428
  queryParams: [],
7429
+ headerParams: [],
7430
+ cookieParams: [],
6471
7431
  flags: [{
6472
7432
  "name": "name",
6473
7433
  "description": "",
@@ -6496,6 +7456,8 @@ var routes = {
6496
7456
  httpMethod: "get",
6497
7457
  pathParams: ["policy_id"],
6498
7458
  queryParams: [],
7459
+ headerParams: [],
7460
+ cookieParams: [],
6499
7461
  flags: [{
6500
7462
  "name": "policy_id",
6501
7463
  "description": "Policy public ID (pol_ prefix)",
@@ -6512,6 +7474,8 @@ var routes = {
6512
7474
  httpMethod: "put",
6513
7475
  pathParams: ["policy_id"],
6514
7476
  queryParams: [],
7477
+ headerParams: [],
7478
+ cookieParams: [],
6515
7479
  flags: [{
6516
7480
  "name": "policy_id",
6517
7481
  "description": "Policy public ID (pol_ prefix)",
@@ -6546,6 +7510,8 @@ var routes = {
6546
7510
  httpMethod: "delete",
6547
7511
  pathParams: ["policy_id"],
6548
7512
  queryParams: [],
7513
+ headerParams: [],
7514
+ cookieParams: [],
6549
7515
  flags: [{
6550
7516
  "name": "policy_id",
6551
7517
  "description": "Policy public ID (pol_ prefix)",
@@ -6562,6 +7528,8 @@ var routes = {
6562
7528
  httpMethod: "get",
6563
7529
  pathParams: [],
6564
7530
  queryParams: ["limit", "offset"],
7531
+ headerParams: [],
7532
+ cookieParams: [],
6565
7533
  flags: [{
6566
7534
  "name": "limit",
6567
7535
  "description": "Maximum number of results to return",
@@ -6584,6 +7552,8 @@ var routes = {
6584
7552
  httpMethod: "post",
6585
7553
  pathParams: [],
6586
7554
  queryParams: [],
7555
+ headerParams: [],
7556
+ cookieParams: [],
6587
7557
  flags: [{
6588
7558
  "name": "name",
6589
7559
  "description": "",
@@ -6600,6 +7570,8 @@ var routes = {
6600
7570
  httpMethod: "get",
6601
7571
  pathParams: ["project_id"],
6602
7572
  queryParams: [],
7573
+ headerParams: [],
7574
+ cookieParams: [],
6603
7575
  flags: [{
6604
7576
  "name": "project_id",
6605
7577
  "description": "Project public ID (proj_ prefix)",
@@ -6611,11 +7583,13 @@ var routes = {
6611
7583
  "update-project": {
6612
7584
  serviceClass: "Projects",
6613
7585
  operationId: "updateProject",
6614
- description: "Updates a project's name, its attached guardrails (`guardrail_ids` — the project-scope baseline governing every tool call by every agent in the project), its orchestration concurrency limit (`max_concurrent_runs`), its continuation-chain ceiling (`max_chain_generations`), its orchestration nesting bound (`max_orchestration_run_depth`), its inherited model route (`default_model_route_id`), its read-auditing opt-in (`audit_reads_enabled`), its trace-content retention window (`trace_content_retention_days`), and/or its zero-retention setting (`trace_content_mode`). At least one field is required. Requires admin role. Detaching a guardrail (removing an id) additionally requires guardrails:DetachGuardrail.",
7586
+ description: "Updates a project's name, its attached guardrails (`guardrail_ids` — the project-scope baseline governing every tool call by every agent in the project), its orchestration concurrency limit (`max_concurrent_runs`), its continuation-chain ceiling (`max_chain_generations`), its orchestration nesting bound (`max_orchestration_run_depth`), its inherited model route (`default_model_route_id`), its read-auditing opt-in (`audit_reads_enabled`), its priced-model requirement (`require_priced_model`), its trace-content retention window (`trace_content_retention_days`), and/or its zero-retention setting (`trace_content_mode`). At least one field is required. Requires admin role. Detaching a guardrail (removing an id) additionally requires guardrails:DetachGuardrail.",
6615
7587
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/projects",
6616
7588
  httpMethod: "patch",
6617
7589
  pathParams: ["project_id"],
6618
7590
  queryParams: [],
7591
+ headerParams: [],
7592
+ cookieParams: [],
6619
7593
  flags: [{
6620
7594
  "name": "project_id",
6621
7595
  "description": "Project public ID (proj_ prefix)",
@@ -6664,6 +7638,12 @@ var routes = {
6664
7638
  "required": false,
6665
7639
  "type": "boolean",
6666
7640
  "in": "body"
7641
+ }, {
7642
+ "name": "require_priced_model",
7643
+ "description": "Refuse a generation whose model carries no price row for every billable token component, with `409 MODEL_NOT_PRICED`. Defaults to `false`, where an unpriced model runs and meters at `cost_usd: null`. The check runs before the provider is called, so a refused turn spends nothing, and covers every target of a model route the turn may fail over to.",
7644
+ "required": false,
7645
+ "type": "boolean",
7646
+ "in": "body"
6667
7647
  }, {
6668
7648
  "name": "default_conversation_retrieval",
6669
7649
  "description": "What a conversation that names no `retrieval` of its own does. `none` by default: a turn is embedded because someone asked for the conversation to be retrievable, never merely because it was said. Turns are stored and chunked on both settings.",
@@ -6692,6 +7672,8 @@ var routes = {
6692
7672
  httpMethod: "delete",
6693
7673
  pathParams: ["project_id"],
6694
7674
  queryParams: ["force"],
7675
+ headerParams: [],
7676
+ cookieParams: [],
6695
7677
  flags: [{
6696
7678
  "name": "project_id",
6697
7679
  "description": "Project public ID (proj_ prefix)",
@@ -6714,6 +7696,8 @@ var routes = {
6714
7696
  httpMethod: "get",
6715
7697
  pathParams: ["project_id"],
6716
7698
  queryParams: [],
7699
+ headerParams: [],
7700
+ cookieParams: [],
6717
7701
  flags: [{
6718
7702
  "name": "project_id",
6719
7703
  "description": "Project public ID (proj_ prefix)",
@@ -6730,6 +7714,8 @@ var routes = {
6730
7714
  httpMethod: "put",
6731
7715
  pathParams: ["project_id"],
6732
7716
  queryParams: [],
7717
+ headerParams: [],
7718
+ cookieParams: [],
6733
7719
  flags: [{
6734
7720
  "name": "project_id",
6735
7721
  "description": "Project public ID (proj_ prefix)",
@@ -6752,6 +7738,8 @@ var routes = {
6752
7738
  httpMethod: "get",
6753
7739
  pathParams: [],
6754
7740
  queryParams: ["project_id", "limit", "offset"],
7741
+ headerParams: [],
7742
+ cookieParams: [],
6755
7743
  flags: [{
6756
7744
  "name": "project_id",
6757
7745
  "description": "Project ID (required if not using project key auth)",
@@ -6780,6 +7768,8 @@ var routes = {
6780
7768
  httpMethod: "post",
6781
7769
  pathParams: [],
6782
7770
  queryParams: [],
7771
+ headerParams: [],
7772
+ cookieParams: [],
6783
7773
  flags: [{
6784
7774
  "name": "project_id",
6785
7775
  "description": "Project ID (required if not using project key auth)",
@@ -6844,6 +7834,8 @@ var routes = {
6844
7834
  httpMethod: "get",
6845
7835
  pathParams: ["quota_id"],
6846
7836
  queryParams: [],
7837
+ headerParams: [],
7838
+ cookieParams: [],
6847
7839
  flags: [{
6848
7840
  "name": "quota_id",
6849
7841
  "description": "Quota ID",
@@ -6860,6 +7852,8 @@ var routes = {
6860
7852
  httpMethod: "patch",
6861
7853
  pathParams: ["quota_id"],
6862
7854
  queryParams: [],
7855
+ headerParams: [],
7856
+ cookieParams: [],
6863
7857
  flags: [{
6864
7858
  "name": "quota_id",
6865
7859
  "description": "Quota ID",
@@ -6894,6 +7888,8 @@ var routes = {
6894
7888
  httpMethod: "delete",
6895
7889
  pathParams: ["quota_id"],
6896
7890
  queryParams: [],
7891
+ headerParams: [],
7892
+ cookieParams: [],
6897
7893
  flags: [{
6898
7894
  "name": "quota_id",
6899
7895
  "description": "Quota ID",
@@ -6910,6 +7906,8 @@ var routes = {
6910
7906
  httpMethod: "get",
6911
7907
  pathParams: [],
6912
7908
  queryParams: ["project_id", "limit", "offset"],
7909
+ headerParams: [],
7910
+ cookieParams: [],
6913
7911
  flags: [{
6914
7912
  "name": "project_id",
6915
7913
  "description": "Project ID (required if not using project key auth)",
@@ -6938,6 +7936,8 @@ var routes = {
6938
7936
  httpMethod: "post",
6939
7937
  pathParams: [],
6940
7938
  queryParams: [],
7939
+ headerParams: [],
7940
+ cookieParams: [],
6941
7941
  flags: [{
6942
7942
  "name": "project_id",
6943
7943
  "description": "Project ID (required if not using project key auth)",
@@ -6966,6 +7966,8 @@ var routes = {
6966
7966
  httpMethod: "get",
6967
7967
  pathParams: ["secret_id"],
6968
7968
  queryParams: [],
7969
+ headerParams: [],
7970
+ cookieParams: [],
6969
7971
  flags: [{
6970
7972
  "name": "secret_id",
6971
7973
  "description": "Secret ID",
@@ -6982,6 +7984,8 @@ var routes = {
6982
7984
  httpMethod: "patch",
6983
7985
  pathParams: ["secret_id"],
6984
7986
  queryParams: [],
7987
+ headerParams: [],
7988
+ cookieParams: [],
6985
7989
  flags: [{
6986
7990
  "name": "secret_id",
6987
7991
  "description": "Secret ID",
@@ -7010,6 +8014,8 @@ var routes = {
7010
8014
  httpMethod: "delete",
7011
8015
  pathParams: ["secret_id"],
7012
8016
  queryParams: ["force"],
8017
+ headerParams: [],
8018
+ cookieParams: [],
7013
8019
  flags: [{
7014
8020
  "name": "secret_id",
7015
8021
  "description": "Secret ID",
@@ -7032,6 +8038,8 @@ var routes = {
7032
8038
  httpMethod: "get",
7033
8039
  pathParams: [],
7034
8040
  queryParams: ["project_id", "agent_id", "actor_id", "status", "tags", "limit", "offset"],
8041
+ headerParams: [],
8042
+ cookieParams: [],
7035
8043
  flags: [{
7036
8044
  "name": "project_id",
7037
8045
  "description": "Filter by project public ID. Required for `soat:ResourceTag` policy conditions to narrow the listing: a policy is read per project, so without it the listing is scoped to the projects the caller can access and nothing further.\n",
@@ -7084,6 +8092,8 @@ var routes = {
7084
8092
  httpMethod: "post",
7085
8093
  pathParams: [],
7086
8094
  queryParams: [],
8095
+ headerParams: [],
8096
+ cookieParams: [],
7087
8097
  flags: [{
7088
8098
  "name": "agent_id",
7089
8099
  "description": "Agent this session belongs to",
@@ -7110,7 +8120,7 @@ var routes = {
7110
8120
  "in": "body"
7111
8121
  }, {
7112
8122
  "name": "tool_context",
7113
- "description": "Key-value pairs forwarded as `X-Soat-Context-<key>` headers on every `http`, `mcp` and `builtin` tool call in this session. The header name is the deployment's configured context prefix (`X-Soat-Context-` by default) plus the key verbatim — no character is re-cased. Keys are never case-converted — they round-trip exactly as sent. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY`.",
8123
+ "description": "Key-value pairs forwarded as `X-Soat-Context-<key>` headers on every `http`, `mcp` and `builtin` tool call in this session. The header name is the deployment's configured context prefix (`X-Soat-Context-` by default) plus the key verbatim — no character is re-cased. Keys are stored exactly as sent and never case-converted. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY`. `session_id`, `actor_id` and `actor_external_id` are server-derived and dropped from the stored bag, in any casing. Write-only: no read of a session returns it. It also does not outlive the session: closing or expiring it clears the bag.",
7114
8124
  "required": false,
7115
8125
  "type": "object",
7116
8126
  "in": "body"
@@ -7136,6 +8146,8 @@ var routes = {
7136
8146
  httpMethod: "get",
7137
8147
  pathParams: ["session_id"],
7138
8148
  queryParams: [],
8149
+ headerParams: [],
8150
+ cookieParams: [],
7139
8151
  flags: [{
7140
8152
  "name": "session_id",
7141
8153
  "description": "Session public ID",
@@ -7152,6 +8164,8 @@ var routes = {
7152
8164
  httpMethod: "patch",
7153
8165
  pathParams: ["session_id"],
7154
8166
  queryParams: [],
8167
+ headerParams: [],
8168
+ cookieParams: [],
7155
8169
  flags: [{
7156
8170
  "name": "session_id",
7157
8171
  "description": "Session public ID",
@@ -7178,7 +8192,7 @@ var routes = {
7178
8192
  "in": "body"
7179
8193
  }, {
7180
8194
  "name": "tool_context",
7181
- "description": "Key-value pairs forwarded as `X-Soat-Context-<key>` headers on every `http`, `mcp` and `builtin` tool call in this session. The header name is the deployment's configured context prefix (`X-Soat-Context-` by default) plus the key verbatim — no character is re-cased. Keys are never case-converted — they round-trip exactly as sent. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY`.",
8195
+ "description": "Key-value pairs forwarded as `X-Soat-Context-<key>` headers on every `http`, `mcp` and `builtin` tool call in this session. The header name is the deployment's configured context prefix (`X-Soat-Context-` by default) plus the key verbatim — no character is re-cased. Keys are stored exactly as sent and never case-converted. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY`. `session_id`, `actor_id` and `actor_external_id` are server-derived and dropped from the stored bag, in any casing. Write-only: no read of a session returns it. It also does not outlive the session: closing or expiring it clears the bag.",
7182
8196
  "required": false,
7183
8197
  "type": "object",
7184
8198
  "in": "body"
@@ -7204,6 +8218,8 @@ var routes = {
7204
8218
  httpMethod: "delete",
7205
8219
  pathParams: ["session_id"],
7206
8220
  queryParams: [],
8221
+ headerParams: [],
8222
+ cookieParams: [],
7207
8223
  flags: [{
7208
8224
  "name": "session_id",
7209
8225
  "description": "Session public ID",
@@ -7220,6 +8236,8 @@ var routes = {
7220
8236
  httpMethod: "post",
7221
8237
  pathParams: ["session_id"],
7222
8238
  queryParams: [],
8239
+ headerParams: [],
8240
+ cookieParams: [],
7223
8241
  flags: [{
7224
8242
  "name": "session_id",
7225
8243
  "description": "Session public ID",
@@ -7260,6 +8278,8 @@ var routes = {
7260
8278
  httpMethod: "post",
7261
8279
  pathParams: ["session_id"],
7262
8280
  queryParams: ["wait"],
8281
+ headerParams: [],
8282
+ cookieParams: [],
7263
8283
  flags: [{
7264
8284
  "name": "session_id",
7265
8285
  "description": "Session public ID",
@@ -7294,6 +8314,8 @@ var routes = {
7294
8314
  httpMethod: "post",
7295
8315
  pathParams: ["session_id"],
7296
8316
  queryParams: [],
8317
+ headerParams: [],
8318
+ cookieParams: [],
7297
8319
  flags: [{
7298
8320
  "name": "session_id",
7299
8321
  "description": "Session public ID",
@@ -7322,6 +8344,8 @@ var routes = {
7322
8344
  httpMethod: "post",
7323
8345
  pathParams: ["session_id"],
7324
8346
  queryParams: [],
8347
+ headerParams: [],
8348
+ cookieParams: [],
7325
8349
  flags: [{
7326
8350
  "name": "session_id",
7327
8351
  "description": "Session public ID",
@@ -7348,7 +8372,7 @@ var routes = {
7348
8372
  "in": "body"
7349
8373
  }, {
7350
8374
  "name": "tags",
7351
- "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.",
8375
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
7352
8376
  "required": false,
7353
8377
  "type": "object",
7354
8378
  "in": "body"
@@ -7368,6 +8392,8 @@ var routes = {
7368
8392
  httpMethod: "get",
7369
8393
  pathParams: ["session_id"],
7370
8394
  queryParams: ["limit", "offset"],
8395
+ headerParams: [],
8396
+ cookieParams: [],
7371
8397
  flags: [{
7372
8398
  "name": "session_id",
7373
8399
  "description": "Session public ID",
@@ -7396,6 +8422,8 @@ var routes = {
7396
8422
  httpMethod: "get",
7397
8423
  pathParams: ["session_id"],
7398
8424
  queryParams: [],
8425
+ headerParams: [],
8426
+ cookieParams: [],
7399
8427
  flags: [{
7400
8428
  "name": "session_id",
7401
8429
  "description": "Session public ID",
@@ -7412,6 +8440,8 @@ var routes = {
7412
8440
  httpMethod: "put",
7413
8441
  pathParams: ["session_id"],
7414
8442
  queryParams: [],
8443
+ headerParams: [],
8444
+ cookieParams: [],
7415
8445
  flags: [{
7416
8446
  "name": "session_id",
7417
8447
  "description": "Session public ID",
@@ -7428,6 +8458,8 @@ var routes = {
7428
8458
  httpMethod: "patch",
7429
8459
  pathParams: ["session_id"],
7430
8460
  queryParams: [],
8461
+ headerParams: [],
8462
+ cookieParams: [],
7431
8463
  flags: [{
7432
8464
  "name": "session_id",
7433
8465
  "description": "Session public ID",
@@ -7444,6 +8476,8 @@ var routes = {
7444
8476
  httpMethod: "get",
7445
8477
  pathParams: [],
7446
8478
  queryParams: ["project_id", "workflow_id", "state", "status", "automation_status", "assignee", "limit", "offset"],
8479
+ headerParams: [],
8480
+ cookieParams: [],
7447
8481
  flags: [{
7448
8482
  "name": "project_id",
7449
8483
  "description": "",
@@ -7502,6 +8536,8 @@ var routes = {
7502
8536
  httpMethod: "post",
7503
8537
  pathParams: [],
7504
8538
  queryParams: [],
8539
+ headerParams: [],
8540
+ cookieParams: [],
7505
8541
  flags: [{
7506
8542
  "name": "project_id",
7507
8543
  "description": "",
@@ -7560,6 +8596,8 @@ var routes = {
7560
8596
  httpMethod: "get",
7561
8597
  pathParams: ["task_id"],
7562
8598
  queryParams: [],
8599
+ headerParams: [],
8600
+ cookieParams: [],
7563
8601
  flags: [{
7564
8602
  "name": "task_id",
7565
8603
  "description": "",
@@ -7576,6 +8614,8 @@ var routes = {
7576
8614
  httpMethod: "patch",
7577
8615
  pathParams: ["task_id"],
7578
8616
  queryParams: [],
8617
+ headerParams: [],
8618
+ cookieParams: [],
7579
8619
  flags: [{
7580
8620
  "name": "task_id",
7581
8621
  "description": "",
@@ -7610,6 +8650,8 @@ var routes = {
7610
8650
  httpMethod: "delete",
7611
8651
  pathParams: ["task_id"],
7612
8652
  queryParams: [],
8653
+ headerParams: [],
8654
+ cookieParams: [],
7613
8655
  flags: [{
7614
8656
  "name": "task_id",
7615
8657
  "description": "",
@@ -7626,6 +8668,8 @@ var routes = {
7626
8668
  httpMethod: "post",
7627
8669
  pathParams: ["task_id"],
7628
8670
  queryParams: [],
8671
+ headerParams: [],
8672
+ cookieParams: [],
7629
8673
  flags: [{
7630
8674
  "name": "task_id",
7631
8675
  "description": "",
@@ -7660,6 +8704,8 @@ var routes = {
7660
8704
  httpMethod: "post",
7661
8705
  pathParams: ["task_id"],
7662
8706
  queryParams: [],
8707
+ headerParams: [],
8708
+ cookieParams: [],
7663
8709
  flags: [{
7664
8710
  "name": "task_id",
7665
8711
  "description": "",
@@ -7682,6 +8728,8 @@ var routes = {
7682
8728
  httpMethod: "post",
7683
8729
  pathParams: ["task_id"],
7684
8730
  queryParams: [],
8731
+ headerParams: [],
8732
+ cookieParams: [],
7685
8733
  flags: [{
7686
8734
  "name": "task_id",
7687
8735
  "description": "",
@@ -7698,6 +8746,8 @@ var routes = {
7698
8746
  httpMethod: "get",
7699
8747
  pathParams: ["task_id"],
7700
8748
  queryParams: [],
8749
+ headerParams: [],
8750
+ cookieParams: [],
7701
8751
  flags: [{
7702
8752
  "name": "task_id",
7703
8753
  "description": "",
@@ -7714,6 +8764,8 @@ var routes = {
7714
8764
  httpMethod: "get",
7715
8765
  pathParams: [],
7716
8766
  queryParams: ["project_id", "limit", "offset"],
8767
+ headerParams: [],
8768
+ cookieParams: [],
7717
8769
  flags: [{
7718
8770
  "name": "project_id",
7719
8771
  "description": "Project public ID to filter by",
@@ -7742,6 +8794,8 @@ var routes = {
7742
8794
  httpMethod: "post",
7743
8795
  pathParams: [],
7744
8796
  queryParams: [],
8797
+ headerParams: [],
8798
+ cookieParams: [],
7745
8799
  flags: [{
7746
8800
  "name": "project_id",
7747
8801
  "description": "Public ID of the project",
@@ -7836,6 +8890,8 @@ var routes = {
7836
8890
  httpMethod: "get",
7837
8891
  pathParams: ["tool_id"],
7838
8892
  queryParams: [],
8893
+ headerParams: [],
8894
+ cookieParams: [],
7839
8895
  flags: [{
7840
8896
  "name": "tool_id",
7841
8897
  "description": "",
@@ -7852,6 +8908,8 @@ var routes = {
7852
8908
  httpMethod: "patch",
7853
8909
  pathParams: ["tool_id"],
7854
8910
  queryParams: [],
8911
+ headerParams: [],
8912
+ cookieParams: [],
7855
8913
  flags: [{
7856
8914
  "name": "tool_id",
7857
8915
  "description": "",
@@ -7946,6 +9004,8 @@ var routes = {
7946
9004
  httpMethod: "delete",
7947
9005
  pathParams: ["tool_id"],
7948
9006
  queryParams: [],
9007
+ headerParams: [],
9008
+ cookieParams: [],
7949
9009
  flags: [{
7950
9010
  "name": "tool_id",
7951
9011
  "description": "",
@@ -7962,6 +9022,8 @@ var routes = {
7962
9022
  httpMethod: "post",
7963
9023
  pathParams: ["tool_id"],
7964
9024
  queryParams: [],
9025
+ headerParams: [],
9026
+ cookieParams: [],
7965
9027
  flags: [{
7966
9028
  "name": "tool_id",
7967
9029
  "description": "",
@@ -7996,6 +9058,8 @@ var routes = {
7996
9058
  httpMethod: "get",
7997
9059
  pathParams: [],
7998
9060
  queryParams: ["project_id", "limit", "offset"],
9061
+ headerParams: [],
9062
+ cookieParams: [],
7999
9063
  flags: [{
8000
9064
  "name": "project_id",
8001
9065
  "description": "Project public ID to filter by",
@@ -8024,6 +9088,8 @@ var routes = {
8024
9088
  httpMethod: "get",
8025
9089
  pathParams: ["trace_id"],
8026
9090
  queryParams: [],
9091
+ headerParams: [],
9092
+ cookieParams: [],
8027
9093
  flags: [{
8028
9094
  "name": "trace_id",
8029
9095
  "description": "Public ID of the trace",
@@ -8040,6 +9106,8 @@ var routes = {
8040
9106
  httpMethod: "get",
8041
9107
  pathParams: ["trace_id"],
8042
9108
  queryParams: ["include"],
9109
+ headerParams: [],
9110
+ cookieParams: [],
8043
9111
  flags: [{
8044
9112
  "name": "trace_id",
8045
9113
  "description": "Public ID of any trace in the tree (root or child)",
@@ -8062,6 +9130,8 @@ var routes = {
8062
9130
  httpMethod: "delete",
8063
9131
  pathParams: ["trace_id"],
8064
9132
  queryParams: [],
9133
+ headerParams: [],
9134
+ cookieParams: [],
8065
9135
  flags: [{
8066
9136
  "name": "trace_id",
8067
9137
  "description": "Public ID of the trace",
@@ -8078,6 +9148,8 @@ var routes = {
8078
9148
  httpMethod: "get",
8079
9149
  pathParams: [],
8080
9150
  queryParams: ["project_id", "type", "target_type", "limit", "offset"],
9151
+ headerParams: [],
9152
+ cookieParams: [],
8081
9153
  flags: [{
8082
9154
  "name": "project_id",
8083
9155
  "description": "",
@@ -8118,6 +9190,8 @@ var routes = {
8118
9190
  httpMethod: "post",
8119
9191
  pathParams: [],
8120
9192
  queryParams: [],
9193
+ headerParams: [],
9194
+ cookieParams: [],
8121
9195
  flags: [{
8122
9196
  "name": "project_id",
8123
9197
  "description": "Public ID of the project. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise.",
@@ -8166,6 +9240,12 @@ var routes = {
8166
9240
  "required": false,
8167
9241
  "type": "object",
8168
9242
  "in": "body"
9243
+ }, {
9244
+ "name": "tool_context",
9245
+ "description": "Caller context every firing forwards to the run it starts, so an agent whose tools authorize through `{{context:<key>}}` can be put on a schedule — a firing has no request to carry one. Each key is forwarded as one `X-Soat-Context-<key>` header.\n\n**Write-only.** It is accepted here and never returned on a read, so the record cannot be used to recover a value.\n\nA value may be a `{{secret:...}}` reference, which keeps the credential in the [secret](/docs/modules/secrets) store and leaves only its name on the trigger; it is resolved at fire time, so rotating the secret changes the next firing without touching the trigger. A reference naming a secret that does not exist in this project is refused here rather than at fire time.\n",
9246
+ "required": false,
9247
+ "type": "object",
9248
+ "in": "body"
8169
9249
  }, {
8170
9250
  "name": "cron",
8171
9251
  "description": "5-field cron expression (UTC). Required when type is schedule",
@@ -8200,6 +9280,8 @@ var routes = {
8200
9280
  httpMethod: "get",
8201
9281
  pathParams: ["trigger_id"],
8202
9282
  queryParams: [],
9283
+ headerParams: [],
9284
+ cookieParams: [],
8203
9285
  flags: [{
8204
9286
  "name": "trigger_id",
8205
9287
  "description": "",
@@ -8216,6 +9298,8 @@ var routes = {
8216
9298
  httpMethod: "patch",
8217
9299
  pathParams: ["trigger_id"],
8218
9300
  queryParams: [],
9301
+ headerParams: [],
9302
+ cookieParams: [],
8219
9303
  flags: [{
8220
9304
  "name": "trigger_id",
8221
9305
  "description": "",
@@ -8258,6 +9342,12 @@ var routes = {
8258
9342
  "required": false,
8259
9343
  "type": "object",
8260
9344
  "in": "body"
9345
+ }, {
9346
+ "name": "tool_context",
9347
+ "description": "Replaces the stored bag; `null` clears it. Write-only and resolved at fire time — see `CreateTriggerRequest.tool_context`.\n",
9348
+ "required": false,
9349
+ "type": "object",
9350
+ "in": "body"
8261
9351
  }, {
8262
9352
  "name": "cron",
8263
9353
  "description": "",
@@ -8292,6 +9382,8 @@ var routes = {
8292
9382
  httpMethod: "delete",
8293
9383
  pathParams: ["trigger_id"],
8294
9384
  queryParams: [],
9385
+ headerParams: [],
9386
+ cookieParams: [],
8295
9387
  flags: [{
8296
9388
  "name": "trigger_id",
8297
9389
  "description": "",
@@ -8308,6 +9400,8 @@ var routes = {
8308
9400
  httpMethod: "post",
8309
9401
  pathParams: ["trigger_id"],
8310
9402
  queryParams: [],
9403
+ headerParams: [],
9404
+ cookieParams: [],
8311
9405
  flags: [{
8312
9406
  "name": "trigger_id",
8313
9407
  "description": "",
@@ -8320,6 +9414,12 @@ var routes = {
8320
9414
  "required": false,
8321
9415
  "type": "object",
8322
9416
  "in": "body"
9417
+ }, {
9418
+ "name": "tool_context",
9419
+ "description": "Fire-time caller context, shallow-merged per key over the trigger's stored `tool_context`. A manual fire has a caller, so this is the one path that can supply a value without storing it.\n\nForwarded exactly as written: a `{{secret:...}}` reference is resolved only in the trigger's stored bag, never in one supplied here.\n",
9420
+ "required": false,
9421
+ "type": "object",
9422
+ "in": "body"
8323
9423
  }]
8324
9424
  },
8325
9425
  "get-trigger-secret": {
@@ -8330,6 +9430,8 @@ var routes = {
8330
9430
  httpMethod: "get",
8331
9431
  pathParams: ["trigger_id"],
8332
9432
  queryParams: [],
9433
+ headerParams: [],
9434
+ cookieParams: [],
8333
9435
  flags: [{
8334
9436
  "name": "trigger_id",
8335
9437
  "description": "",
@@ -8346,6 +9448,8 @@ var routes = {
8346
9448
  httpMethod: "post",
8347
9449
  pathParams: ["trigger_id"],
8348
9450
  queryParams: [],
9451
+ headerParams: [],
9452
+ cookieParams: [],
8349
9453
  flags: [{
8350
9454
  "name": "trigger_id",
8351
9455
  "description": "",
@@ -8362,6 +9466,8 @@ var routes = {
8362
9466
  httpMethod: "get",
8363
9467
  pathParams: [],
8364
9468
  queryParams: ["trigger_id", "limit", "offset"],
9469
+ headerParams: [],
9470
+ cookieParams: [],
8365
9471
  flags: [{
8366
9472
  "name": "trigger_id",
8367
9473
  "description": "Trigger to list firings for (trg_...)",
@@ -8390,6 +9496,8 @@ var routes = {
8390
9496
  httpMethod: "get",
8391
9497
  pathParams: ["firing_id"],
8392
9498
  queryParams: [],
9499
+ headerParams: [],
9500
+ cookieParams: [],
8393
9501
  flags: [{
8394
9502
  "name": "firing_id",
8395
9503
  "description": "",
@@ -8406,6 +9514,8 @@ var routes = {
8406
9514
  httpMethod: "get",
8407
9515
  pathParams: [],
8408
9516
  queryParams: ["agent_id", "generation_id", "trace_id", "actor_id", "session_id", "ai_provider_id", "orchestration_run_id", "orchestration_id", "model", "trigger_id", "action_id", "meter_type", "source", "limit", "offset"],
9517
+ headerParams: [],
9518
+ cookieParams: [],
8409
9519
  flags: [{
8410
9520
  "name": "agent_id",
8411
9521
  "description": "Filter by agent public ID",
@@ -8506,6 +9616,8 @@ var routes = {
8506
9616
  httpMethod: "get",
8507
9617
  pathParams: [],
8508
9618
  queryParams: ["project_id", "group_by", "include", "from", "to", "meter_type", "session_id", "actor_id", "agent_id", "ai_provider_id", "orchestration_run_id", "orchestration_id", "generation_id", "trace_id", "model", "source", "trigger_id", "action_id", "limit", "offset"],
9619
+ headerParams: [],
9620
+ cookieParams: [],
8509
9621
  flags: [{
8510
9622
  "name": "project_id",
8511
9623
  "description": "Project public ID to aggregate usage for",
@@ -8636,6 +9748,8 @@ var routes = {
8636
9748
  httpMethod: "get",
8637
9749
  pathParams: [],
8638
9750
  queryParams: ["project_id", "limit", "offset"],
9751
+ headerParams: [],
9752
+ cookieParams: [],
8639
9753
  flags: [{
8640
9754
  "name": "project_id",
8641
9755
  "description": "Filter by project public ID",
@@ -8664,6 +9778,8 @@ var routes = {
8664
9778
  httpMethod: "post",
8665
9779
  pathParams: [],
8666
9780
  queryParams: [],
9781
+ headerParams: [],
9782
+ cookieParams: [],
8667
9783
  flags: [{
8668
9784
  "name": "project_id",
8669
9785
  "description": "",
@@ -8698,6 +9814,8 @@ var routes = {
8698
9814
  httpMethod: "delete",
8699
9815
  pathParams: ["threshold_id"],
8700
9816
  queryParams: [],
9817
+ headerParams: [],
9818
+ cookieParams: [],
8701
9819
  flags: [{
8702
9820
  "name": "threshold_id",
8703
9821
  "description": "Threshold public ID",
@@ -8714,6 +9832,8 @@ var routes = {
8714
9832
  httpMethod: "get",
8715
9833
  pathParams: [],
8716
9834
  queryParams: ["generation_id", "orchestration_run_id"],
9835
+ headerParams: [],
9836
+ cookieParams: [],
8717
9837
  flags: [{
8718
9838
  "name": "generation_id",
8719
9839
  "description": "Generation public ID. Mutually exclusive with orchestration_run_id.\n",
@@ -8736,6 +9856,8 @@ var routes = {
8736
9856
  httpMethod: "get",
8737
9857
  pathParams: [],
8738
9858
  queryParams: [],
9859
+ headerParams: [],
9860
+ cookieParams: [],
8739
9861
  flags: []
8740
9862
  },
8741
9863
  "upsert-price-book": {
@@ -8746,6 +9868,8 @@ var routes = {
8746
9868
  httpMethod: "put",
8747
9869
  pathParams: [],
8748
9870
  queryParams: [],
9871
+ headerParams: [],
9872
+ cookieParams: [],
8749
9873
  flags: [{
8750
9874
  "name": "prices",
8751
9875
  "description": "",
@@ -8762,6 +9886,8 @@ var routes = {
8762
9886
  httpMethod: "get",
8763
9887
  pathParams: [],
8764
9888
  queryParams: [],
9889
+ headerParams: [],
9890
+ cookieParams: [],
8765
9891
  flags: []
8766
9892
  },
8767
9893
  "list-users": {
@@ -8772,6 +9898,8 @@ var routes = {
8772
9898
  httpMethod: "get",
8773
9899
  pathParams: [],
8774
9900
  queryParams: ["limit", "offset"],
9901
+ headerParams: [],
9902
+ cookieParams: [],
8775
9903
  flags: [{
8776
9904
  "name": "limit",
8777
9905
  "description": "Maximum number of results to return",
@@ -8794,6 +9922,8 @@ var routes = {
8794
9922
  httpMethod: "post",
8795
9923
  pathParams: [],
8796
9924
  queryParams: [],
9925
+ headerParams: [],
9926
+ cookieParams: [],
8797
9927
  flags: [{
8798
9928
  "name": "username",
8799
9929
  "description": "",
@@ -8822,6 +9952,8 @@ var routes = {
8822
9952
  httpMethod: "get",
8823
9953
  pathParams: ["user_id"],
8824
9954
  queryParams: [],
9955
+ headerParams: [],
9956
+ cookieParams: [],
8825
9957
  flags: [{
8826
9958
  "name": "user_id",
8827
9959
  "description": "User ID",
@@ -8838,6 +9970,8 @@ var routes = {
8838
9970
  httpMethod: "delete",
8839
9971
  pathParams: ["user_id"],
8840
9972
  queryParams: [],
9973
+ headerParams: [],
9974
+ cookieParams: [],
8841
9975
  flags: [{
8842
9976
  "name": "user_id",
8843
9977
  "description": "User ID",
@@ -8854,6 +9988,8 @@ var routes = {
8854
9988
  httpMethod: "post",
8855
9989
  pathParams: [],
8856
9990
  queryParams: [],
9991
+ headerParams: [],
9992
+ cookieParams: [],
8857
9993
  flags: [{
8858
9994
  "name": "username",
8859
9995
  "description": "",
@@ -8876,6 +10012,8 @@ var routes = {
8876
10012
  httpMethod: "post",
8877
10013
  pathParams: [],
8878
10014
  queryParams: [],
10015
+ headerParams: [],
10016
+ cookieParams: [],
8879
10017
  flags: [{
8880
10018
  "name": "username",
8881
10019
  "description": "",
@@ -8898,6 +10036,8 @@ var routes = {
8898
10036
  httpMethod: "put",
8899
10037
  pathParams: ["user_id"],
8900
10038
  queryParams: [],
10039
+ headerParams: [],
10040
+ cookieParams: [],
8901
10041
  flags: [{
8902
10042
  "name": "user_id",
8903
10043
  "description": "User public ID (user_ prefix)",
@@ -8920,6 +10060,8 @@ var routes = {
8920
10060
  httpMethod: "get",
8921
10061
  pathParams: [],
8922
10062
  queryParams: ["project_id", "limit", "offset"],
10063
+ headerParams: [],
10064
+ cookieParams: [],
8923
10065
  flags: [{
8924
10066
  "name": "project_id",
8925
10067
  "description": "",
@@ -8948,6 +10090,8 @@ var routes = {
8948
10090
  httpMethod: "post",
8949
10091
  pathParams: [],
8950
10092
  queryParams: [],
10093
+ headerParams: [],
10094
+ cookieParams: [],
8951
10095
  flags: [{
8952
10096
  "name": "project_id",
8953
10097
  "description": "Public ID of the project. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise.",
@@ -8994,6 +10138,8 @@ var routes = {
8994
10138
  httpMethod: "get",
8995
10139
  pathParams: ["webhook_id"],
8996
10140
  queryParams: [],
10141
+ headerParams: [],
10142
+ cookieParams: [],
8997
10143
  flags: [{
8998
10144
  "name": "webhook_id",
8999
10145
  "description": "",
@@ -9010,6 +10156,8 @@ var routes = {
9010
10156
  httpMethod: "put",
9011
10157
  pathParams: ["webhook_id"],
9012
10158
  queryParams: [],
10159
+ headerParams: [],
10160
+ cookieParams: [],
9013
10161
  flags: [{
9014
10162
  "name": "webhook_id",
9015
10163
  "description": "",
@@ -9062,6 +10210,8 @@ var routes = {
9062
10210
  httpMethod: "delete",
9063
10211
  pathParams: ["webhook_id"],
9064
10212
  queryParams: [],
10213
+ headerParams: [],
10214
+ cookieParams: [],
9065
10215
  flags: [{
9066
10216
  "name": "webhook_id",
9067
10217
  "description": "",
@@ -9078,6 +10228,8 @@ var routes = {
9078
10228
  httpMethod: "get",
9079
10229
  pathParams: [],
9080
10230
  queryParams: ["webhook_id", "limit", "offset"],
10231
+ headerParams: [],
10232
+ cookieParams: [],
9081
10233
  flags: [{
9082
10234
  "name": "webhook_id",
9083
10235
  "description": "Webhook to list deliveries for (wh_...)",
@@ -9106,6 +10258,8 @@ var routes = {
9106
10258
  httpMethod: "get",
9107
10259
  pathParams: ["delivery_id"],
9108
10260
  queryParams: [],
10261
+ headerParams: [],
10262
+ cookieParams: [],
9109
10263
  flags: [{
9110
10264
  "name": "delivery_id",
9111
10265
  "description": "",
@@ -9122,6 +10276,8 @@ var routes = {
9122
10276
  httpMethod: "post",
9123
10277
  pathParams: ["delivery_id"],
9124
10278
  queryParams: [],
10279
+ headerParams: [],
10280
+ cookieParams: [],
9125
10281
  flags: [{
9126
10282
  "name": "delivery_id",
9127
10283
  "description": "Delivery to send again (wh_deliv_...)",
@@ -9138,6 +10294,8 @@ var routes = {
9138
10294
  httpMethod: "get",
9139
10295
  pathParams: ["webhook_id"],
9140
10296
  queryParams: [],
10297
+ headerParams: [],
10298
+ cookieParams: [],
9141
10299
  flags: [{
9142
10300
  "name": "webhook_id",
9143
10301
  "description": "",
@@ -9154,6 +10312,8 @@ var routes = {
9154
10312
  httpMethod: "post",
9155
10313
  pathParams: ["webhook_id"],
9156
10314
  queryParams: [],
10315
+ headerParams: [],
10316
+ cookieParams: [],
9157
10317
  flags: [{
9158
10318
  "name": "webhook_id",
9159
10319
  "description": "",
@@ -9170,6 +10330,8 @@ var routes = {
9170
10330
  httpMethod: "get",
9171
10331
  pathParams: [],
9172
10332
  queryParams: ["project_id", "limit", "offset"],
10333
+ headerParams: [],
10334
+ cookieParams: [],
9173
10335
  flags: [{
9174
10336
  "name": "project_id",
9175
10337
  "description": "",
@@ -9198,6 +10360,8 @@ var routes = {
9198
10360
  httpMethod: "post",
9199
10361
  pathParams: [],
9200
10362
  queryParams: [],
10363
+ headerParams: [],
10364
+ cookieParams: [],
9201
10365
  flags: [{
9202
10366
  "name": "project_id",
9203
10367
  "description": "",
@@ -9250,6 +10414,8 @@ var routes = {
9250
10414
  httpMethod: "get",
9251
10415
  pathParams: ["workflow_id"],
9252
10416
  queryParams: [],
10417
+ headerParams: [],
10418
+ cookieParams: [],
9253
10419
  flags: [{
9254
10420
  "name": "workflow_id",
9255
10421
  "description": "",
@@ -9266,12 +10432,20 @@ var routes = {
9266
10432
  httpMethod: "patch",
9267
10433
  pathParams: ["workflow_id"],
9268
10434
  queryParams: [],
10435
+ headerParams: ["If-Match"],
10436
+ cookieParams: [],
9269
10437
  flags: [{
9270
10438
  "name": "workflow_id",
9271
10439
  "description": "",
9272
10440
  "required": true,
9273
10441
  "type": "string",
9274
10442
  "in": "path"
10443
+ }, {
10444
+ "name": "If-Match",
10445
+ "description": "The version the caller believes the resource holds, as an entity tag (`3` or `\"3\"`). Equivalent to `expected_version` in the request body; `*` states no precondition beyond the resource existing. A mismatch is `409 VERSION_CONFLICT`.",
10446
+ "required": false,
10447
+ "type": "string",
10448
+ "in": "header"
9275
10449
  }, {
9276
10450
  "name": "name",
9277
10451
  "description": "",
@@ -9308,6 +10482,12 @@ var routes = {
9308
10482
  "required": false,
9309
10483
  "type": "string",
9310
10484
  "in": "body"
10485
+ }, {
10486
+ "name": "expected_version",
10487
+ "description": "Refuses the write unless the resource is at this version.",
10488
+ "required": false,
10489
+ "type": "integer",
10490
+ "in": "body"
9311
10491
  }]
9312
10492
  },
9313
10493
  "delete-workflow": {
@@ -9318,6 +10498,8 @@ var routes = {
9318
10498
  httpMethod: "delete",
9319
10499
  pathParams: ["workflow_id"],
9320
10500
  queryParams: [],
10501
+ headerParams: [],
10502
+ cookieParams: [],
9321
10503
  flags: [{
9322
10504
  "name": "workflow_id",
9323
10505
  "description": "",
@@ -9334,6 +10516,8 @@ var routes = {
9334
10516
  httpMethod: "get",
9335
10517
  pathParams: ["workflow_id"],
9336
10518
  queryParams: ["limit", "offset"],
10519
+ headerParams: [],
10520
+ cookieParams: [],
9337
10521
  flags: [{
9338
10522
  "name": "workflow_id",
9339
10523
  "description": "",
@@ -9362,6 +10546,8 @@ var routes = {
9362
10546
  httpMethod: "get",
9363
10547
  pathParams: ["workflow_id", "version"],
9364
10548
  queryParams: [],
10549
+ headerParams: [],
10550
+ cookieParams: [],
9365
10551
  flags: [{
9366
10552
  "name": "workflow_id",
9367
10553
  "description": "",
@@ -9384,6 +10570,8 @@ var routes = {
9384
10570
  httpMethod: "post",
9385
10571
  pathParams: ["workflow_id", "version"],
9386
10572
  queryParams: [],
10573
+ headerParams: [],
10574
+ cookieParams: [],
9387
10575
  flags: [{
9388
10576
  "name": "workflow_id",
9389
10577
  "description": "",