@soat/cli 0.45.0 → 0.47.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.
- package/dist/index.mjs +310 -40
- package/package.json +2 -2
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.
|
|
16
|
+
var version = "0.47.0";
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region src/cli-wrappers/wrappers/formations.ts
|
|
@@ -481,7 +481,7 @@ var routes = {
|
|
|
481
481
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
|
|
482
482
|
httpMethod: "get",
|
|
483
483
|
pathParams: [],
|
|
484
|
-
queryParams: ["project_id", "external_id", "agent_id", "chat_id", "conversation_id", "limit", "offset"],
|
|
484
|
+
queryParams: ["project_id", "external_id", "name", "agent_id", "chat_id", "conversation_id", "tags", "limit", "offset"],
|
|
485
485
|
flags: [{
|
|
486
486
|
"name": "project_id",
|
|
487
487
|
"description": "Project ID (optional)",
|
|
@@ -494,6 +494,12 @@ var routes = {
|
|
|
494
494
|
"required": false,
|
|
495
495
|
"type": "string",
|
|
496
496
|
"in": "query"
|
|
497
|
+
}, {
|
|
498
|
+
"name": "name",
|
|
499
|
+
"description": "Case-insensitive substring match on the actor name",
|
|
500
|
+
"required": false,
|
|
501
|
+
"type": "string",
|
|
502
|
+
"in": "query"
|
|
497
503
|
}, {
|
|
498
504
|
"name": "agent_id",
|
|
499
505
|
"description": "Return only actors linked to this agent",
|
|
@@ -512,6 +518,12 @@ var routes = {
|
|
|
512
518
|
"required": false,
|
|
513
519
|
"type": "string",
|
|
514
520
|
"in": "query"
|
|
521
|
+
}, {
|
|
522
|
+
"name": "tags",
|
|
523
|
+
"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",
|
|
524
|
+
"required": false,
|
|
525
|
+
"type": "array",
|
|
526
|
+
"in": "query"
|
|
515
527
|
}, {
|
|
516
528
|
"name": "limit",
|
|
517
529
|
"description": "Maximum number of results to return",
|
|
@@ -634,7 +646,7 @@ var routes = {
|
|
|
634
646
|
"in": "body"
|
|
635
647
|
}, {
|
|
636
648
|
"name": "tags",
|
|
637
|
-
"description": "",
|
|
649
|
+
"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.",
|
|
638
650
|
"required": false,
|
|
639
651
|
"type": "object",
|
|
640
652
|
"in": "body"
|
|
@@ -1284,7 +1296,7 @@ var routes = {
|
|
|
1284
1296
|
"in": "body"
|
|
1285
1297
|
}, {
|
|
1286
1298
|
"name": "knowledge_config",
|
|
1287
|
-
"description": "Per-generation knowledge retrieval override. Array filters (memory_ids,
|
|
1299
|
+
"description": "Per-generation knowledge retrieval override. Array filters (memory_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.",
|
|
1288
1300
|
"required": false,
|
|
1289
1301
|
"type": "object",
|
|
1290
1302
|
"in": "body"
|
|
@@ -2295,7 +2307,7 @@ var routes = {
|
|
|
2295
2307
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
|
|
2296
2308
|
httpMethod: "get",
|
|
2297
2309
|
pathParams: [],
|
|
2298
|
-
queryParams: ["project_id", "actor_id", "limit", "offset"],
|
|
2310
|
+
queryParams: ["project_id", "actor_id", "tags", "limit", "offset"],
|
|
2299
2311
|
flags: [{
|
|
2300
2312
|
"name": "project_id",
|
|
2301
2313
|
"description": "Project ID (optional)",
|
|
@@ -2308,6 +2320,12 @@ var routes = {
|
|
|
2308
2320
|
"required": false,
|
|
2309
2321
|
"type": "string",
|
|
2310
2322
|
"in": "query"
|
|
2323
|
+
}, {
|
|
2324
|
+
"name": "tags",
|
|
2325
|
+
"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",
|
|
2326
|
+
"required": false,
|
|
2327
|
+
"type": "array",
|
|
2328
|
+
"in": "query"
|
|
2311
2329
|
}, {
|
|
2312
2330
|
"name": "limit",
|
|
2313
2331
|
"description": "Maximum number of results to return",
|
|
@@ -2613,7 +2631,7 @@ var routes = {
|
|
|
2613
2631
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2614
2632
|
httpMethod: "get",
|
|
2615
2633
|
pathParams: [],
|
|
2616
|
-
queryParams: ["project_id", "path_prefix", "limit", "offset"],
|
|
2634
|
+
queryParams: ["project_id", "path_prefix", "tags", "limit", "offset"],
|
|
2617
2635
|
flags: [{
|
|
2618
2636
|
"name": "project_id",
|
|
2619
2637
|
"description": "Project ID (optional)",
|
|
@@ -2626,6 +2644,12 @@ var routes = {
|
|
|
2626
2644
|
"required": false,
|
|
2627
2645
|
"type": "string",
|
|
2628
2646
|
"in": "query"
|
|
2647
|
+
}, {
|
|
2648
|
+
"name": "tags",
|
|
2649
|
+
"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",
|
|
2650
|
+
"required": false,
|
|
2651
|
+
"type": "array",
|
|
2652
|
+
"in": "query"
|
|
2629
2653
|
}, {
|
|
2630
2654
|
"name": "limit",
|
|
2631
2655
|
"description": "Maximum number of results to return",
|
|
@@ -2686,7 +2710,7 @@ var routes = {
|
|
|
2686
2710
|
"in": "body"
|
|
2687
2711
|
}, {
|
|
2688
2712
|
"name": "tags",
|
|
2689
|
-
"description": "Key-value tags",
|
|
2713
|
+
"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.",
|
|
2690
2714
|
"required": false,
|
|
2691
2715
|
"type": "object",
|
|
2692
2716
|
"in": "body"
|
|
@@ -2744,7 +2768,7 @@ var routes = {
|
|
|
2744
2768
|
"in": "body"
|
|
2745
2769
|
}, {
|
|
2746
2770
|
"name": "tags",
|
|
2747
|
-
"description": "Key-value tags
|
|
2771
|
+
"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.",
|
|
2748
2772
|
"required": false,
|
|
2749
2773
|
"type": "object",
|
|
2750
2774
|
"in": "body"
|
|
@@ -2824,7 +2848,7 @@ var routes = {
|
|
|
2824
2848
|
"in": "body"
|
|
2825
2849
|
}, {
|
|
2826
2850
|
"name": "tags",
|
|
2827
|
-
"description": "Key-value tags",
|
|
2851
|
+
"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.",
|
|
2828
2852
|
"required": false,
|
|
2829
2853
|
"type": "object",
|
|
2830
2854
|
"in": "body"
|
|
@@ -3697,13 +3721,19 @@ var routes = {
|
|
|
3697
3721
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
|
|
3698
3722
|
httpMethod: "get",
|
|
3699
3723
|
pathParams: [],
|
|
3700
|
-
queryParams: ["project_id", "limit", "offset"],
|
|
3724
|
+
queryParams: ["project_id", "tags", "limit", "offset"],
|
|
3701
3725
|
flags: [{
|
|
3702
3726
|
"name": "project_id",
|
|
3703
3727
|
"description": "Filter files by project ID",
|
|
3704
3728
|
"required": false,
|
|
3705
3729
|
"type": "string",
|
|
3706
3730
|
"in": "query"
|
|
3731
|
+
}, {
|
|
3732
|
+
"name": "tags",
|
|
3733
|
+
"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",
|
|
3734
|
+
"required": false,
|
|
3735
|
+
"type": "array",
|
|
3736
|
+
"in": "query"
|
|
3707
3737
|
}, {
|
|
3708
3738
|
"name": "limit",
|
|
3709
3739
|
"description": "Maximum number of results to return",
|
|
@@ -3933,13 +3963,19 @@ var routes = {
|
|
|
3933
3963
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
|
|
3934
3964
|
httpMethod: "get",
|
|
3935
3965
|
pathParams: ["file_id"],
|
|
3936
|
-
queryParams: [],
|
|
3966
|
+
queryParams: ["token"],
|
|
3937
3967
|
flags: [{
|
|
3938
3968
|
"name": "file_id",
|
|
3939
3969
|
"description": "File ID",
|
|
3940
3970
|
"required": true,
|
|
3941
3971
|
"type": "string",
|
|
3942
3972
|
"in": "path"
|
|
3973
|
+
}, {
|
|
3974
|
+
"name": "token",
|
|
3975
|
+
"description": "Signed single-file download token, an alternative to a bearer credential (issued for ingestion-rule converters).",
|
|
3976
|
+
"required": false,
|
|
3977
|
+
"type": "string",
|
|
3978
|
+
"in": "query"
|
|
3943
3979
|
}]
|
|
3944
3980
|
},
|
|
3945
3981
|
"update-file-metadata": {
|
|
@@ -3983,13 +4019,19 @@ var routes = {
|
|
|
3983
4019
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
|
|
3984
4020
|
httpMethod: "get",
|
|
3985
4021
|
pathParams: ["file_id"],
|
|
3986
|
-
queryParams: [],
|
|
4022
|
+
queryParams: ["token"],
|
|
3987
4023
|
flags: [{
|
|
3988
4024
|
"name": "file_id",
|
|
3989
4025
|
"description": "File ID",
|
|
3990
4026
|
"required": true,
|
|
3991
4027
|
"type": "string",
|
|
3992
4028
|
"in": "path"
|
|
4029
|
+
}, {
|
|
4030
|
+
"name": "token",
|
|
4031
|
+
"description": "Signed single-file download token, an alternative to a bearer credential (issued for ingestion-rule converters).",
|
|
4032
|
+
"required": false,
|
|
4033
|
+
"type": "string",
|
|
4034
|
+
"in": "query"
|
|
3993
4035
|
}]
|
|
3994
4036
|
},
|
|
3995
4037
|
"get-file-tags": {
|
|
@@ -4265,7 +4307,7 @@ var routes = {
|
|
|
4265
4307
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/generations",
|
|
4266
4308
|
httpMethod: "get",
|
|
4267
4309
|
pathParams: [],
|
|
4268
|
-
queryParams: ["agent_id", "trace_id", "initiator_generation_id", "chain_id", "orchestration_run_id", "node_id", "status", "limit", "offset"],
|
|
4310
|
+
queryParams: ["agent_id", "trace_id", "session_id", "actor_id", "initiator_generation_id", "chain_id", "orchestration_run_id", "node_id", "status", "limit", "offset"],
|
|
4269
4311
|
flags: [{
|
|
4270
4312
|
"name": "agent_id",
|
|
4271
4313
|
"description": "Filter by agent public ID",
|
|
@@ -4278,6 +4320,18 @@ var routes = {
|
|
|
4278
4320
|
"required": false,
|
|
4279
4321
|
"type": "string",
|
|
4280
4322
|
"in": "query"
|
|
4323
|
+
}, {
|
|
4324
|
+
"name": "session_id",
|
|
4325
|
+
"description": "Return only the generations dispatched through one session — the turns behind that conversation's spend. A session that does not exist in scope yields an empty page.\n",
|
|
4326
|
+
"required": false,
|
|
4327
|
+
"type": "string",
|
|
4328
|
+
"in": "query"
|
|
4329
|
+
}, {
|
|
4330
|
+
"name": "actor_id",
|
|
4331
|
+
"description": "Return only the generations one end user started, across every session they appear in. An actor that does not exist in scope yields an empty page.\n",
|
|
4332
|
+
"required": false,
|
|
4333
|
+
"type": "string",
|
|
4334
|
+
"in": "query"
|
|
4281
4335
|
}, {
|
|
4282
4336
|
"name": "initiator_generation_id",
|
|
4283
4337
|
"description": "Filter by the public ID of the parent generation. Returns all generations triggered by that generation — sub-agent invocations. Null-initiated (top-level) generations are not returned.\n",
|
|
@@ -4895,7 +4949,7 @@ var routes = {
|
|
|
4895
4949
|
"search-knowledge": {
|
|
4896
4950
|
serviceClass: "Knowledge",
|
|
4897
4951
|
operationId: "searchKnowledge",
|
|
4898
|
-
description: "Searches across documents and memory entries using semantic search, file paths, document IDs,
|
|
4952
|
+
description: "Searches across documents and memory entries using semantic search, file paths, document IDs, memory IDs, or tags. At least one of `query`, `tags`, `document_paths`, `document_ids`, or `memory_ids` must be provided.",
|
|
4899
4953
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/knowledge",
|
|
4900
4954
|
httpMethod: "post",
|
|
4901
4955
|
pathParams: [],
|
|
@@ -4930,12 +4984,6 @@ var routes = {
|
|
|
4930
4984
|
"required": false,
|
|
4931
4985
|
"type": "array",
|
|
4932
4986
|
"in": "body"
|
|
4933
|
-
}, {
|
|
4934
|
-
"name": "memory_tags",
|
|
4935
|
-
"description": "Search entries in memories whose tags match any of these patterns (glob supported)",
|
|
4936
|
-
"required": false,
|
|
4937
|
-
"type": "array",
|
|
4938
|
-
"in": "body"
|
|
4939
4987
|
}, {
|
|
4940
4988
|
"name": "document_paths",
|
|
4941
4989
|
"description": "Filter results to documents whose file path starts with one of these prefixes",
|
|
@@ -4948,6 +4996,12 @@ var routes = {
|
|
|
4948
4996
|
"required": false,
|
|
4949
4997
|
"type": "array",
|
|
4950
4998
|
"in": "body"
|
|
4999
|
+
}, {
|
|
5000
|
+
"name": "tags",
|
|
5001
|
+
"description": "Filter results to documents and memory entries whose `tags` contain every one of these key-value pairs (exact, case-sensitive match). The only filter that scopes both stores, so passing it alone searches both. For memory it matches at entry granularity: an entry is returned when its parent memory's tags match or its own do.",
|
|
5002
|
+
"required": false,
|
|
5003
|
+
"type": "object",
|
|
5004
|
+
"in": "body"
|
|
4951
5005
|
}]
|
|
4952
5006
|
},
|
|
4953
5007
|
"list-memories": {
|
|
@@ -4966,7 +5020,7 @@ var routes = {
|
|
|
4966
5020
|
"in": "query"
|
|
4967
5021
|
}, {
|
|
4968
5022
|
"name": "tags",
|
|
4969
|
-
"description": "Filter
|
|
5023
|
+
"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",
|
|
4970
5024
|
"required": false,
|
|
4971
5025
|
"type": "array",
|
|
4972
5026
|
"in": "query"
|
|
@@ -5012,9 +5066,9 @@ var routes = {
|
|
|
5012
5066
|
"in": "body"
|
|
5013
5067
|
}, {
|
|
5014
5068
|
"name": "tags",
|
|
5015
|
-
"description": "Optional
|
|
5069
|
+
"description": "Optional key-value tags. Scopes the memory in knowledge search, where every requested pair must match exactly.",
|
|
5016
5070
|
"required": false,
|
|
5017
|
-
"type": "
|
|
5071
|
+
"type": "object",
|
|
5018
5072
|
"in": "body"
|
|
5019
5073
|
}]
|
|
5020
5074
|
},
|
|
@@ -5062,9 +5116,9 @@ var routes = {
|
|
|
5062
5116
|
"in": "body"
|
|
5063
5117
|
}, {
|
|
5064
5118
|
"name": "tags",
|
|
5065
|
-
"description": "Optional
|
|
5119
|
+
"description": "Optional key-value tags. Replaces the stored bag; `null` clears it.",
|
|
5066
5120
|
"required": false,
|
|
5067
|
-
"type": "
|
|
5121
|
+
"type": "object",
|
|
5068
5122
|
"in": "body"
|
|
5069
5123
|
}]
|
|
5070
5124
|
},
|
|
@@ -5084,6 +5138,54 @@ var routes = {
|
|
|
5084
5138
|
"in": "path"
|
|
5085
5139
|
}]
|
|
5086
5140
|
},
|
|
5141
|
+
"get-memory-tags": {
|
|
5142
|
+
serviceClass: "Memories",
|
|
5143
|
+
operationId: "getMemoryTags",
|
|
5144
|
+
description: "Returns all tags attached to the memory",
|
|
5145
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
|
|
5146
|
+
httpMethod: "get",
|
|
5147
|
+
pathParams: ["memory_id"],
|
|
5148
|
+
queryParams: [],
|
|
5149
|
+
flags: [{
|
|
5150
|
+
"name": "memory_id",
|
|
5151
|
+
"description": "Memory ID",
|
|
5152
|
+
"required": true,
|
|
5153
|
+
"type": "string",
|
|
5154
|
+
"in": "path"
|
|
5155
|
+
}]
|
|
5156
|
+
},
|
|
5157
|
+
"replace-memory-tags": {
|
|
5158
|
+
serviceClass: "Memories",
|
|
5159
|
+
operationId: "replaceMemoryTags",
|
|
5160
|
+
description: "Replaces all tags on the memory with the provided tags (not merged)",
|
|
5161
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
|
|
5162
|
+
httpMethod: "put",
|
|
5163
|
+
pathParams: ["memory_id"],
|
|
5164
|
+
queryParams: [],
|
|
5165
|
+
flags: [{
|
|
5166
|
+
"name": "memory_id",
|
|
5167
|
+
"description": "Memory ID",
|
|
5168
|
+
"required": true,
|
|
5169
|
+
"type": "string",
|
|
5170
|
+
"in": "path"
|
|
5171
|
+
}]
|
|
5172
|
+
},
|
|
5173
|
+
"merge-memory-tags": {
|
|
5174
|
+
serviceClass: "Memories",
|
|
5175
|
+
operationId: "mergeMemoryTags",
|
|
5176
|
+
description: "Merges provided tags with existing tags (existing tags are preserved unless overridden)",
|
|
5177
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
|
|
5178
|
+
httpMethod: "patch",
|
|
5179
|
+
pathParams: ["memory_id"],
|
|
5180
|
+
queryParams: [],
|
|
5181
|
+
flags: [{
|
|
5182
|
+
"name": "memory_id",
|
|
5183
|
+
"description": "Memory ID",
|
|
5184
|
+
"required": true,
|
|
5185
|
+
"type": "string",
|
|
5186
|
+
"in": "path"
|
|
5187
|
+
}]
|
|
5188
|
+
},
|
|
5087
5189
|
"list-memory-entries": {
|
|
5088
5190
|
serviceClass: "MemoryEntries",
|
|
5089
5191
|
operationId: "listMemoryEntries",
|
|
@@ -5091,13 +5193,19 @@ var routes = {
|
|
|
5091
5193
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
|
|
5092
5194
|
httpMethod: "get",
|
|
5093
5195
|
pathParams: [],
|
|
5094
|
-
queryParams: ["memory_id", "limit", "offset", "include_invalidated"],
|
|
5196
|
+
queryParams: ["memory_id", "tags", "limit", "offset", "include_invalidated"],
|
|
5095
5197
|
flags: [{
|
|
5096
5198
|
"name": "memory_id",
|
|
5097
5199
|
"description": "Memory container to list entries from (mem_...)",
|
|
5098
5200
|
"required": true,
|
|
5099
5201
|
"type": "string",
|
|
5100
5202
|
"in": "query"
|
|
5203
|
+
}, {
|
|
5204
|
+
"name": "tags",
|
|
5205
|
+
"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",
|
|
5206
|
+
"required": false,
|
|
5207
|
+
"type": "array",
|
|
5208
|
+
"in": "query"
|
|
5101
5209
|
}, {
|
|
5102
5210
|
"name": "limit",
|
|
5103
5211
|
"description": "Maximum number of results to return",
|
|
@@ -5146,9 +5254,9 @@ var routes = {
|
|
|
5146
5254
|
"in": "body"
|
|
5147
5255
|
}, {
|
|
5148
5256
|
"name": "tags",
|
|
5149
|
-
"description": "Per-entry
|
|
5257
|
+
"description": "Per-entry key-value tags, used for entry-granularity filtering by `tags` in search-knowledge.",
|
|
5150
5258
|
"required": false,
|
|
5151
|
-
"type": "
|
|
5259
|
+
"type": "object",
|
|
5152
5260
|
"in": "body"
|
|
5153
5261
|
}, {
|
|
5154
5262
|
"name": "metadata",
|
|
@@ -5202,9 +5310,9 @@ var routes = {
|
|
|
5202
5310
|
"in": "body"
|
|
5203
5311
|
}, {
|
|
5204
5312
|
"name": "tags",
|
|
5205
|
-
"description": "Replaces the entry's tags. Pass null or an empty
|
|
5313
|
+
"description": "Replaces the entry's tags. Pass null or an empty object to clear.",
|
|
5206
5314
|
"required": false,
|
|
5207
|
-
"type": "
|
|
5315
|
+
"type": "object",
|
|
5208
5316
|
"in": "body"
|
|
5209
5317
|
}, {
|
|
5210
5318
|
"name": "metadata",
|
|
@@ -5230,6 +5338,54 @@ var routes = {
|
|
|
5230
5338
|
"in": "path"
|
|
5231
5339
|
}]
|
|
5232
5340
|
},
|
|
5341
|
+
"get-memory-entry-tags": {
|
|
5342
|
+
serviceClass: "MemoryEntries",
|
|
5343
|
+
operationId: "getMemoryEntryTags",
|
|
5344
|
+
description: "Returns all tags attached to the memory entry",
|
|
5345
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
|
|
5346
|
+
httpMethod: "get",
|
|
5347
|
+
pathParams: ["entry_id"],
|
|
5348
|
+
queryParams: [],
|
|
5349
|
+
flags: [{
|
|
5350
|
+
"name": "entry_id",
|
|
5351
|
+
"description": "Memory entry ID",
|
|
5352
|
+
"required": true,
|
|
5353
|
+
"type": "string",
|
|
5354
|
+
"in": "path"
|
|
5355
|
+
}]
|
|
5356
|
+
},
|
|
5357
|
+
"replace-memory-entry-tags": {
|
|
5358
|
+
serviceClass: "MemoryEntries",
|
|
5359
|
+
operationId: "replaceMemoryEntryTags",
|
|
5360
|
+
description: "Replaces all tags on the memory entry with the provided tags (not merged)",
|
|
5361
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
|
|
5362
|
+
httpMethod: "put",
|
|
5363
|
+
pathParams: ["entry_id"],
|
|
5364
|
+
queryParams: [],
|
|
5365
|
+
flags: [{
|
|
5366
|
+
"name": "entry_id",
|
|
5367
|
+
"description": "Memory entry ID",
|
|
5368
|
+
"required": true,
|
|
5369
|
+
"type": "string",
|
|
5370
|
+
"in": "path"
|
|
5371
|
+
}]
|
|
5372
|
+
},
|
|
5373
|
+
"merge-memory-entry-tags": {
|
|
5374
|
+
serviceClass: "MemoryEntries",
|
|
5375
|
+
operationId: "mergeMemoryEntryTags",
|
|
5376
|
+
description: "Merges provided tags with existing tags (existing tags are preserved unless overridden)",
|
|
5377
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
|
|
5378
|
+
httpMethod: "patch",
|
|
5379
|
+
pathParams: ["entry_id"],
|
|
5380
|
+
queryParams: [],
|
|
5381
|
+
flags: [{
|
|
5382
|
+
"name": "entry_id",
|
|
5383
|
+
"description": "Memory entry ID",
|
|
5384
|
+
"required": true,
|
|
5385
|
+
"type": "string",
|
|
5386
|
+
"in": "path"
|
|
5387
|
+
}]
|
|
5388
|
+
},
|
|
5233
5389
|
"list-model-routes": {
|
|
5234
5390
|
serviceClass: "ModelRoutes",
|
|
5235
5391
|
operationId: "listModelRoutes",
|
|
@@ -6429,13 +6585,19 @@ var routes = {
|
|
|
6429
6585
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/secrets",
|
|
6430
6586
|
httpMethod: "delete",
|
|
6431
6587
|
pathParams: ["secret_id"],
|
|
6432
|
-
queryParams: [],
|
|
6588
|
+
queryParams: ["force"],
|
|
6433
6589
|
flags: [{
|
|
6434
6590
|
"name": "secret_id",
|
|
6435
6591
|
"description": "Secret ID",
|
|
6436
6592
|
"required": true,
|
|
6437
6593
|
"type": "string",
|
|
6438
6594
|
"in": "path"
|
|
6595
|
+
}, {
|
|
6596
|
+
"name": "force",
|
|
6597
|
+
"description": "Delete the secret even when AI providers reference it, destroying those providers too. Without it a referenced secret answers SECRET_HAS_DEPENDENTS.",
|
|
6598
|
+
"required": false,
|
|
6599
|
+
"type": "boolean",
|
|
6600
|
+
"in": "query"
|
|
6439
6601
|
}]
|
|
6440
6602
|
},
|
|
6441
6603
|
"list-sessions": {
|
|
@@ -6445,8 +6607,14 @@ var routes = {
|
|
|
6445
6607
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
|
|
6446
6608
|
httpMethod: "get",
|
|
6447
6609
|
pathParams: [],
|
|
6448
|
-
queryParams: ["agent_id", "actor_id", "status", "limit", "offset"],
|
|
6610
|
+
queryParams: ["project_id", "agent_id", "actor_id", "status", "tags", "limit", "offset"],
|
|
6449
6611
|
flags: [{
|
|
6612
|
+
"name": "project_id",
|
|
6613
|
+
"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",
|
|
6614
|
+
"required": false,
|
|
6615
|
+
"type": "string",
|
|
6616
|
+
"in": "query"
|
|
6617
|
+
}, {
|
|
6450
6618
|
"name": "agent_id",
|
|
6451
6619
|
"description": "Filter by agent public ID",
|
|
6452
6620
|
"required": false,
|
|
@@ -6464,6 +6632,12 @@ var routes = {
|
|
|
6464
6632
|
"required": false,
|
|
6465
6633
|
"type": "string",
|
|
6466
6634
|
"in": "query"
|
|
6635
|
+
}, {
|
|
6636
|
+
"name": "tags",
|
|
6637
|
+
"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",
|
|
6638
|
+
"required": false,
|
|
6639
|
+
"type": "array",
|
|
6640
|
+
"in": "query"
|
|
6467
6641
|
}, {
|
|
6468
6642
|
"name": "limit",
|
|
6469
6643
|
"description": "",
|
|
@@ -6533,7 +6707,7 @@ var routes = {
|
|
|
6533
6707
|
"get-session": {
|
|
6534
6708
|
serviceClass: "Sessions",
|
|
6535
6709
|
operationId: "getSession",
|
|
6536
|
-
description: "Returns details of a single session.",
|
|
6710
|
+
description: "Returns details of a single session, including a `usage` roll-up of what its generations cost. The listing omits `usage`; for a window, a split by day or model, or one end user across every session, narrow the usage aggregate with `session_id` / `actor_id` instead.",
|
|
6537
6711
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
|
|
6538
6712
|
httpMethod: "get",
|
|
6539
6713
|
pathParams: ["session_id"],
|
|
@@ -6750,7 +6924,7 @@ var routes = {
|
|
|
6750
6924
|
"in": "body"
|
|
6751
6925
|
}, {
|
|
6752
6926
|
"name": "tags",
|
|
6753
|
-
"description": "
|
|
6927
|
+
"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.",
|
|
6754
6928
|
"required": false,
|
|
6755
6929
|
"type": "object",
|
|
6756
6930
|
"in": "body"
|
|
@@ -7803,11 +7977,11 @@ var routes = {
|
|
|
7803
7977
|
"list-usage-events": {
|
|
7804
7978
|
serviceClass: "Usage",
|
|
7805
7979
|
operationId: "listUsageEvents",
|
|
7806
|
-
description: "Returns the raw usage events the caller can access, most recent first,
|
|
7980
|
+
description: "Returns the raw usage events the caller can access, most recent first, narrowed by any combination of the same filters the aggregate takes — agent, generation, trace, actor, session, AI provider, orchestration run, orchestration, trigger, action, meter type, model or `source` — so a rollup and the events behind it are addressed the same way. Each event is the per-generation token usage as reported by the provider, for audit and reconciliation. An id naming nothing in scope yields an empty page rather than dropping the filter, so a mistyped narrowing can never widen the list past what was asked for.",
|
|
7807
7981
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/usage",
|
|
7808
7982
|
httpMethod: "get",
|
|
7809
7983
|
pathParams: [],
|
|
7810
|
-
queryParams: ["agent_id", "generation_id", "trace_id", "actor_id", "session_id", "trigger_id", "action_id", "meter_type", "source", "limit", "offset"],
|
|
7984
|
+
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"],
|
|
7811
7985
|
flags: [{
|
|
7812
7986
|
"name": "agent_id",
|
|
7813
7987
|
"description": "Filter by agent public ID",
|
|
@@ -7838,6 +8012,30 @@ var routes = {
|
|
|
7838
8012
|
"required": false,
|
|
7839
8013
|
"type": "string",
|
|
7840
8014
|
"in": "query"
|
|
8015
|
+
}, {
|
|
8016
|
+
"name": "ai_provider_id",
|
|
8017
|
+
"description": "Filter by the provider record the spend was billed against. A provider that does not exist in scope yields an empty page.\n",
|
|
8018
|
+
"required": false,
|
|
8019
|
+
"type": "string",
|
|
8020
|
+
"in": "query"
|
|
8021
|
+
}, {
|
|
8022
|
+
"name": "orchestration_run_id",
|
|
8023
|
+
"description": "Filter by the orchestration run that metered the event. A run that does not exist in scope yields an empty page.\n",
|
|
8024
|
+
"required": false,
|
|
8025
|
+
"type": "string",
|
|
8026
|
+
"in": "query"
|
|
8027
|
+
}, {
|
|
8028
|
+
"name": "orchestration_id",
|
|
8029
|
+
"description": "Filter by orchestration — the events of the runs it started itself, not the subtree its `loop` or `sub_orchestration` nodes started. An orchestration that does not exist in scope yields an empty page.\n",
|
|
8030
|
+
"required": false,
|
|
8031
|
+
"type": "string",
|
|
8032
|
+
"in": "query"
|
|
8033
|
+
}, {
|
|
8034
|
+
"name": "model",
|
|
8035
|
+
"description": "Filter by the as-billed SKU the event recorded. Matched as recorded, so it still selects events whose provider has since been deleted.\n",
|
|
8036
|
+
"required": false,
|
|
8037
|
+
"type": "string",
|
|
8038
|
+
"in": "query"
|
|
7841
8039
|
}, {
|
|
7842
8040
|
"name": "trigger_id",
|
|
7843
8041
|
"description": "Filter by the trigger that initiated the generation",
|
|
@@ -7879,11 +8077,11 @@ var routes = {
|
|
|
7879
8077
|
"get-usage-aggregate": {
|
|
7880
8078
|
serviceClass: "Usage",
|
|
7881
8079
|
operationId: "getUsageAggregate",
|
|
7882
|
-
description: "Returns a project's usage rolled up over an optional `[from, to]` time window, bucketed by a single dimension and
|
|
8080
|
+
description: "Returns a project's usage rolled up over an optional `[from, to]` time window, optionally bucketed by a single dimension and narrowed by any combination of thirteen filters — session, actor, agent, AI provider, orchestration run, orchestration, generation, trace, meter type, model, source, trigger and action. That is how \"what did this conversation cost\", \"what has this end user cost\" and \"what did this agent cost\" are answered. Each group and the grand total carry an `event_count`, summed token counts, a measured `quantity` per component (so infra meters report their real amount, not zeros), and `cost_usd` (null when no event in the bucket was priced). This is the per-project cost-by-range/by-category query — a monthly figure without scanning raw usage events client-side. Narrowings intersect and apply to the whole rollup — every bucket, `totals` and `totals.distinct` alike — so each composes with any `group_by`, and all thirteen are echoed back under `filters`. The eight naming a resource are resolved against the project, and one naming nothing there empties the rollup rather than being dropped: a mistyped id must never read back as the project's whole spend. The other five are matched against the value the event recorded. `groups` is paginated. Its `total` is the number of distinct buckets in the window — bucket cardinality, including a null bucket for the events the dimension does not apply to, and never a count of entities. To count entities, send `include=distinct` and read `totals.distinct`. `totals` always describes the whole window — never the page above it, and never the bucketing: omit `group_by` and `totals` is unchanged while `groups` is empty.",
|
|
7883
8081
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/usage",
|
|
7884
8082
|
httpMethod: "get",
|
|
7885
8083
|
pathParams: [],
|
|
7886
|
-
queryParams: ["project_id", "group_by", "include", "from", "to", "meter_type", "limit", "offset"],
|
|
8084
|
+
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"],
|
|
7887
8085
|
flags: [{
|
|
7888
8086
|
"name": "project_id",
|
|
7889
8087
|
"description": "Project public ID to aggregate usage for",
|
|
@@ -7892,8 +8090,8 @@ var routes = {
|
|
|
7892
8090
|
"in": "query"
|
|
7893
8091
|
}, {
|
|
7894
8092
|
"name": "group_by",
|
|
7895
|
-
"description": "Dimension to bucket by. `day` buckets on the event's UTC calendar day; the others bucket on the matching column. `ai_provider` buckets on the provider the spend was billed against — a routed generation's serving target, or the agent's pinned provider. `model` buckets on the model id *and* the provider that served it, so one model name served by two providers is two groups (see `ai_provider_id`). `source` buckets by what the spend was incurred for (`eval`, `eval_judge`), which is how verification spend is priced apart from the traffic serving real users; unlabelled traffic collapses into the single `null` bucket. `orchestration_run` buckets on the orchestration run the event belongs to — a standalone generation runs no orchestration and collapses into the single `null` bucket, so the bucket count under this dimension is not a count of runs.\n",
|
|
7896
|
-
"required":
|
|
8093
|
+
"description": "Dimension to bucket by. Omit it to skip bucketing entirely: `totals` still describes the whole window and `groups` is an empty page, which is what \"what did this one thing cost\" wants. A value naming no dimension is a `400`. `day` buckets on the event's UTC calendar day; the others bucket on the matching column. `ai_provider` buckets on the provider the spend was billed against — a routed generation's serving target, or the agent's pinned provider. `model` buckets on the model id *and* the provider that served it, so one model name served by two providers is two groups (see `ai_provider_id`). `source` buckets by what the spend was incurred for (`eval`, `eval_judge`), which is how verification spend is priced apart from the traffic serving real users; unlabelled traffic collapses into the single `null` bucket. `orchestration_run` buckets on the orchestration run the event belongs to — a standalone generation runs no orchestration and collapses into the single `null` bucket, so the bucket count under this dimension is not a count of runs.\n",
|
|
8094
|
+
"required": false,
|
|
7897
8095
|
"type": "string",
|
|
7898
8096
|
"in": "query"
|
|
7899
8097
|
}, {
|
|
@@ -7920,6 +8118,78 @@ var routes = {
|
|
|
7920
8118
|
"required": false,
|
|
7921
8119
|
"type": "string",
|
|
7922
8120
|
"in": "query"
|
|
8121
|
+
}, {
|
|
8122
|
+
"name": "session_id",
|
|
8123
|
+
"description": "Narrow the whole rollup — every bucket, `totals` and `totals.distinct` alike — to one session's traffic. Combines with `group_by`: `group_by=day&session_id=…` is a conversation's spend per day, `group_by=model` is the same spend split by model. An id naming no session in this project yields an empty rollup, never the project total.\n",
|
|
8124
|
+
"required": false,
|
|
8125
|
+
"type": "string",
|
|
8126
|
+
"in": "query"
|
|
8127
|
+
}, {
|
|
8128
|
+
"name": "actor_id",
|
|
8129
|
+
"description": "The same narrowing, for one end user across every session they appear in. This is the figure behind a `scope: actor`, `metric: cost_usd` quota — what that actor has spent, against the cap it is held to.\n",
|
|
8130
|
+
"required": false,
|
|
8131
|
+
"type": "string",
|
|
8132
|
+
"in": "query"
|
|
8133
|
+
}, {
|
|
8134
|
+
"name": "agent_id",
|
|
8135
|
+
"description": "Narrow to one agent's traffic, across every session, run and trigger that dispatched it.\n",
|
|
8136
|
+
"required": false,
|
|
8137
|
+
"type": "string",
|
|
8138
|
+
"in": "query"
|
|
8139
|
+
}, {
|
|
8140
|
+
"name": "ai_provider_id",
|
|
8141
|
+
"description": "Narrow to the spend billed against one provider record — a routed generation's serving target, or the agent's pinned provider.\n",
|
|
8142
|
+
"required": false,
|
|
8143
|
+
"type": "string",
|
|
8144
|
+
"in": "query"
|
|
8145
|
+
}, {
|
|
8146
|
+
"name": "orchestration_run_id",
|
|
8147
|
+
"description": "Narrow to the events one orchestration run metered.",
|
|
8148
|
+
"required": false,
|
|
8149
|
+
"type": "string",
|
|
8150
|
+
"in": "query"
|
|
8151
|
+
}, {
|
|
8152
|
+
"name": "orchestration_id",
|
|
8153
|
+
"description": "Narrow to the runs of one orchestration — the runs it started itself, never the subtree a `loop` or `sub_orchestration` node started under it, which is metered against the child orchestration where it was incurred. Additive: summed across a project's orchestrations the figures reach the project total exactly once. For the subtree figure of a single invocation, read `usage` on the run.\n",
|
|
8154
|
+
"required": false,
|
|
8155
|
+
"type": "string",
|
|
8156
|
+
"in": "query"
|
|
8157
|
+
}, {
|
|
8158
|
+
"name": "generation_id",
|
|
8159
|
+
"description": "Narrow to one generation's events. A generation writes more than one when it meters several dimensions (tokens and compute).\n",
|
|
8160
|
+
"required": false,
|
|
8161
|
+
"type": "string",
|
|
8162
|
+
"in": "query"
|
|
8163
|
+
}, {
|
|
8164
|
+
"name": "trace_id",
|
|
8165
|
+
"description": "Narrow to the events recorded under one trace.",
|
|
8166
|
+
"required": false,
|
|
8167
|
+
"type": "string",
|
|
8168
|
+
"in": "query"
|
|
8169
|
+
}, {
|
|
8170
|
+
"name": "model",
|
|
8171
|
+
"description": "Narrow to one model, matched against the as-billed SKU the event recorded. A value naming no model yields an empty rollup, not an error. Under `group_by=model` this is a single-bucket rollup; under any other dimension it is that model's spend split by the dimension.\n",
|
|
8172
|
+
"required": false,
|
|
8173
|
+
"type": "string",
|
|
8174
|
+
"in": "query"
|
|
8175
|
+
}, {
|
|
8176
|
+
"name": "source",
|
|
8177
|
+
"description": "Narrow by what the spend was incurred for — `eval` and `eval_judge` are verification spend. Ordinary traffic carries no source, so it cannot be selected by this filter; omit the filter for everything.\n",
|
|
8178
|
+
"required": false,
|
|
8179
|
+
"type": "string",
|
|
8180
|
+
"in": "query"
|
|
8181
|
+
}, {
|
|
8182
|
+
"name": "trigger_id",
|
|
8183
|
+
"description": "Narrow to the spend one trigger initiated. Matched as recorded rather than resolved, so it still selects the spend of a trigger that has since been deleted.\n",
|
|
8184
|
+
"required": false,
|
|
8185
|
+
"type": "string",
|
|
8186
|
+
"in": "query"
|
|
8187
|
+
}, {
|
|
8188
|
+
"name": "action_id",
|
|
8189
|
+
"description": "Narrow to one caller-supplied action label, for per-action spend. Matched as recorded, like `trigger_id`.\n",
|
|
8190
|
+
"required": false,
|
|
8191
|
+
"type": "string",
|
|
8192
|
+
"in": "query"
|
|
7923
8193
|
}, {
|
|
7924
8194
|
"name": "limit",
|
|
7925
8195
|
"description": "Maximum number of `groups` entries to return. Clamped to 100. Does not affect `totals` or `groups.total`, which describe the whole window.\n",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soat/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.0",
|
|
4
4
|
"description": "CLI for SOAT — open-source infrastructure for production-ready AI agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agents",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@inquirer/input": "^5.1.2",
|
|
24
24
|
"@inquirer/password": "^5.1.1",
|
|
25
|
-
"@soat/sdk": "0.
|
|
25
|
+
"@soat/sdk": "0.47.0",
|
|
26
26
|
"@ttoss/logger": "^0.8.19",
|
|
27
27
|
"commander": "^15.0.0",
|
|
28
28
|
"js-yaml": "^5.2.1"
|