@soat/cli 0.49.1 → 0.51.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 +234 -118
  2. 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.49.1";
16
+ var version = "0.51.0";
17
17
 
18
18
  //#endregion
19
19
  //#region src/cli-wrappers/wrappers/formations.ts
@@ -1308,13 +1308,13 @@ var routes = {
1308
1308
  "in": "body"
1309
1309
  }, {
1310
1310
  "name": "extract",
1311
- "description": "Per-turn override of the agent's `knowledge_config.extraction` default. Omit to follow the agent's stored config. Set `false` to suppress automatic memory extraction for this turn (e.g. an operational or tool-listing turn that would only add noise to a curated memory). Set `true` to force extraction on for this turn even when the agent does not enable it by default, provided the agent has a `write_memory_id`. Has no effect on streaming or `requires_action` turns, which never extract.",
1311
+ "description": "Per-turn override of the agent's `knowledge_config.extraction` default. Omit to follow the agent's stored config. Set `false` to suppress automatic memory store extraction for this turn (e.g. an operational or tool-listing turn that would only add noise to a curated memory store). Set `true` to force extraction on for this turn even when the agent does not enable it by default, provided the agent has a `write_memory_store_id`. Has no effect on streaming or `requires_action` turns, which never extract.",
1312
1312
  "required": false,
1313
1313
  "type": "boolean",
1314
1314
  "in": "body"
1315
1315
  }, {
1316
1316
  "name": "knowledge_config",
1317
- "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.",
1317
+ "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.",
1318
1318
  "required": false,
1319
1319
  "type": "object",
1320
1320
  "in": "body"
@@ -4967,7 +4967,7 @@ var routes = {
4967
4967
  "search-knowledge": {
4968
4968
  serviceClass: "Knowledge",
4969
4969
  operationId: "searchKnowledge",
4970
- description: "Searches across documents and memory entries using hybrid retrieval — a vector query and a full-text query per source, fused by reciprocal rank — or by file paths, document IDs, memory IDs, or tags. At least one of `query`, `tags`, `document_paths`, `document_ids`, or `memory_ids` must be provided.",
4970
+ description: "Searches across documents and memories using hybrid retrieval — a vector query and a full-text query per source, fused by reciprocal rank — or by file paths, document IDs, memory store IDs, or tags. At least one of `query`, `tags`, `document_paths`, `document_ids`, or `memory_store_ids` must be provided.",
4971
4971
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/knowledge",
4972
4972
  httpMethod: "post",
4973
4973
  pathParams: [],
@@ -5004,7 +5004,7 @@ var routes = {
5004
5004
  "in": "body"
5005
5005
  }, {
5006
5006
  "name": "recency_half_life_days",
5007
- "description": "Half-life, in days, of a recency decay applied to **memory** results after fusion: a result's `score` is multiplied by `2 ^ (-age_in_days / recency_half_life_days)`, where age is measured from its `updated_at`. Document results are never decayed. `0` — the default, and the default of the deployment's `KNOWLEDGE_RECENCY_HALF_LIFE_DAYS` — disables the blend entirely; it is a switch, not a lower bound, and sending `0` turns off a deployment-wide decay for this one request. Accepts fractions (`0.5` is twelve hours). How many ranks a given half-life costs depends on `rrf_k`. Only applies when `query` is provided.",
5007
+ "description": "Half-life, in days, of a recency decay applied to **memory store** results after fusion: a result's `score` is multiplied by `2 ^ (-age_in_days / recency_half_life_days)`, where age is measured from its `updated_at`. Document results are never decayed. `0` — the default, and the default of the deployment's `KNOWLEDGE_RECENCY_HALF_LIFE_DAYS` — disables the blend entirely; it is a switch, not a lower bound, and sending `0` turns off a deployment-wide decay for this one request. Accepts fractions (`0.5` is twelve hours). How many ranks a given half-life costs depends on `rrf_k`. Only applies when `query` is provided.",
5008
5008
  "required": false,
5009
5009
  "type": "number",
5010
5010
  "in": "body"
@@ -5015,8 +5015,8 @@ var routes = {
5015
5015
  "type": "integer",
5016
5016
  "in": "body"
5017
5017
  }, {
5018
- "name": "memory_ids",
5019
- "description": "Search entries within these specific memories",
5018
+ "name": "memory_store_ids",
5019
+ "description": "Search memories within these specific memory stores",
5020
5020
  "required": false,
5021
5021
  "type": "array",
5022
5022
  "in": "body"
@@ -5034,7 +5034,7 @@ var routes = {
5034
5034
  "in": "body"
5035
5035
  }, {
5036
5036
  "name": "tags",
5037
- "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.",
5037
+ "description": "Filter results to documents and memories 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 memories it matches at memory granularity: a memory is returned when its parent memory store's tags match or its own do.",
5038
5038
  "required": false,
5039
5039
  "type": "object",
5040
5040
  "in": "body"
@@ -5043,15 +5043,15 @@ var routes = {
5043
5043
  "list-memories": {
5044
5044
  serviceClass: "Memories",
5045
5045
  operationId: "listMemories",
5046
- description: "Returns a list of memory configurations for a project",
5046
+ description: "Returns all memories in a memory store",
5047
5047
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5048
5048
  httpMethod: "get",
5049
5049
  pathParams: [],
5050
- queryParams: ["project_id", "tags", "limit", "offset"],
5050
+ queryParams: ["memory_store_id", "tags", "limit", "offset", "include_invalidated"],
5051
5051
  flags: [{
5052
- "name": "project_id",
5053
- "description": "Project ID (required if not using project key auth)",
5054
- "required": false,
5052
+ "name": "memory_store_id",
5053
+ "description": "Memory store to list memories from (mstore_...)",
5054
+ "required": true,
5055
5055
  "type": "string",
5056
5056
  "in": "query"
5057
5057
  }, {
@@ -5072,46 +5072,76 @@ var routes = {
5072
5072
  "required": false,
5073
5073
  "type": "integer",
5074
5074
  "in": "query"
5075
+ }, {
5076
+ "name": "include_invalidated",
5077
+ "description": "Include invalidated (superseded) memories. They are excluded by default; set this to audit the supersede history.",
5078
+ "required": false,
5079
+ "type": "boolean",
5080
+ "in": "query"
5075
5081
  }]
5076
5082
  },
5077
5083
  "create-memory": {
5078
5084
  serviceClass: "Memories",
5079
5085
  operationId: "createMemory",
5080
- description: "Creates a new memory configuration in a project",
5086
+ description: "Writes a fact to the specified memory store through the standard write algorithm: the content is embedded (or matched to text the store already holds), compared against the most similar currently-valid memory, and resolved to exactly one of three outcomes — `skipped` at or above `duplicate_threshold`, `superseded` at or above `supersede_threshold`, `created` below it. Every call records one assertion, whatever the outcome.",
5081
5087
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5082
5088
  httpMethod: "post",
5083
5089
  pathParams: [],
5084
5090
  queryParams: [],
5085
5091
  flags: [{
5086
- "name": "project_id",
5087
- "description": "Project ID (required if not using project key auth)",
5088
- "required": false,
5092
+ "name": "memory_store_id",
5093
+ "description": "Memory store to add the memory to (mstore_...)",
5094
+ "required": true,
5089
5095
  "type": "string",
5090
5096
  "in": "body"
5091
5097
  }, {
5092
- "name": "name",
5093
- "description": "Memory name",
5098
+ "name": "content",
5099
+ "description": "The text content of the memory",
5094
5100
  "required": true,
5095
5101
  "type": "string",
5096
5102
  "in": "body"
5097
5103
  }, {
5098
- "name": "description",
5099
- "description": "Optional description",
5104
+ "name": "source_type",
5105
+ "description": "Whether there is a source to point at. `conversation` requires `source_id`; `manual` rejects it.",
5106
+ "required": false,
5107
+ "type": "string",
5108
+ "in": "body"
5109
+ }, {
5110
+ "name": "source_id",
5111
+ "description": "The conversation this fact was learned in. Required when `source_type` is `conversation`, and rejected otherwise.",
5100
5112
  "required": false,
5101
5113
  "type": "string",
5102
5114
  "in": "body"
5103
5115
  }, {
5104
5116
  "name": "tags",
5105
- "description": "Optional key-value tags. Scopes the memory in knowledge search, where every requested pair must match exactly.",
5117
+ "description": "Per-memory key-value tags, used for memory-granularity filtering by `tags` in search-knowledge.",
5106
5118
  "required": false,
5107
5119
  "type": "object",
5108
5120
  "in": "body"
5121
+ }, {
5122
+ "name": "metadata",
5123
+ "description": "Arbitrary structured metadata attached to the memory",
5124
+ "required": false,
5125
+ "type": "object",
5126
+ "in": "body"
5127
+ }, {
5128
+ "name": "duplicate_threshold",
5129
+ "description": "Cosine similarity at or above which the incoming content is a duplicate of an existing memory and the write is skipped. Overrides the store's `duplicate_threshold` for this call; falls back to the store's value, then to `0.95`.",
5130
+ "required": false,
5131
+ "type": "number",
5132
+ "in": "body"
5133
+ }, {
5134
+ "name": "supersede_threshold",
5135
+ "description": "Cosine similarity at or above which the incoming content restates a fact that has changed: the top match is invalidated and a new memory replaces it. Overrides the store's `supersede_threshold` for this call; falls back to the store's value, then to `0.90`. The effective pair must satisfy `supersede_threshold < duplicate_threshold`, and the check runs against the effective pair — so overriding only one value cannot invert it against the store's other one.",
5136
+ "required": false,
5137
+ "type": "number",
5138
+ "in": "body"
5109
5139
  }]
5110
5140
  },
5111
5141
  "get-memory": {
5112
5142
  serviceClass: "Memories",
5113
5143
  operationId: "getMemory",
5114
- description: "Returns a single memory configuration by ID",
5144
+ description: "Returns a single memory by ID",
5115
5145
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5116
5146
  httpMethod: "get",
5117
5147
  pathParams: ["memory_id"],
@@ -5127,7 +5157,7 @@ var routes = {
5127
5157
  "update-memory": {
5128
5158
  serviceClass: "Memories",
5129
5159
  operationId: "updateMemory",
5130
- description: "Updates an existing memory configuration",
5160
+ description: "Updates an existing memory. Regenerates the embedding if content changes.",
5131
5161
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5132
5162
  httpMethod: "put",
5133
5163
  pathParams: ["memory_id"],
@@ -5139,20 +5169,20 @@ var routes = {
5139
5169
  "type": "string",
5140
5170
  "in": "path"
5141
5171
  }, {
5142
- "name": "name",
5143
- "description": "Memory name",
5172
+ "name": "content",
5173
+ "description": "Updated text content",
5144
5174
  "required": false,
5145
5175
  "type": "string",
5146
5176
  "in": "body"
5147
5177
  }, {
5148
- "name": "description",
5149
- "description": "Optional description",
5178
+ "name": "tags",
5179
+ "description": "Replaces the memory's tags. Pass null or an empty object to clear.",
5150
5180
  "required": false,
5151
- "type": "string",
5181
+ "type": "object",
5152
5182
  "in": "body"
5153
5183
  }, {
5154
- "name": "tags",
5155
- "description": "Optional key-value tags. Replaces the stored bag; `null` clears it.",
5184
+ "name": "metadata",
5185
+ "description": "Replaces the memory's metadata. Pass null to clear.",
5156
5186
  "required": false,
5157
5187
  "type": "object",
5158
5188
  "in": "body"
@@ -5161,7 +5191,7 @@ var routes = {
5161
5191
  "delete-memory": {
5162
5192
  serviceClass: "Memories",
5163
5193
  operationId: "deleteMemory",
5164
- description: "Deletes a memory configuration",
5194
+ description: "Deletes a memory",
5165
5195
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5166
5196
  httpMethod: "delete",
5167
5197
  pathParams: ["memory_id"],
@@ -5174,6 +5204,34 @@ var routes = {
5174
5204
  "in": "path"
5175
5205
  }]
5176
5206
  },
5207
+ "list-memory-assertions": {
5208
+ serviceClass: "Memories",
5209
+ operationId: "listMemoryAssertions",
5210
+ description: "Returns every write that resolved into this memory, oldest first: the one that created it, the duplicates it absorbed, and the assertion that superseded another memory in its favour. A superseded memory keeps its own assertions, so the chain can be walked in both directions.",
5211
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
5212
+ httpMethod: "get",
5213
+ pathParams: ["memory_id"],
5214
+ queryParams: ["limit", "offset"],
5215
+ flags: [{
5216
+ "name": "memory_id",
5217
+ "description": "",
5218
+ "required": true,
5219
+ "type": "string",
5220
+ "in": "path"
5221
+ }, {
5222
+ "name": "limit",
5223
+ "description": "Maximum number of results to return",
5224
+ "required": false,
5225
+ "type": "integer",
5226
+ "in": "query"
5227
+ }, {
5228
+ "name": "offset",
5229
+ "description": "Number of results to skip",
5230
+ "required": false,
5231
+ "type": "integer",
5232
+ "in": "query"
5233
+ }]
5234
+ },
5177
5235
  "get-memory-tags": {
5178
5236
  serviceClass: "Memories",
5179
5237
  operationId: "getMemoryTags",
@@ -5222,18 +5280,18 @@ var routes = {
5222
5280
  "in": "path"
5223
5281
  }]
5224
5282
  },
5225
- "list-memory-entries": {
5226
- serviceClass: "MemoryEntries",
5227
- operationId: "listMemoryEntries",
5228
- description: "Returns all entries in a memory container",
5229
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5283
+ "list-memory-stores": {
5284
+ serviceClass: "MemoryStores",
5285
+ operationId: "listMemoryStores",
5286
+ description: "Returns a list of memory store configurations for a project",
5287
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5230
5288
  httpMethod: "get",
5231
5289
  pathParams: [],
5232
- queryParams: ["memory_id", "tags", "limit", "offset", "include_invalidated"],
5290
+ queryParams: ["project_id", "tags", "limit", "offset"],
5233
5291
  flags: [{
5234
- "name": "memory_id",
5235
- "description": "Memory container to list entries from (mem_...)",
5236
- "required": true,
5292
+ "name": "project_id",
5293
+ "description": "Project ID (required if not using project key auth)",
5294
+ "required": false,
5237
5295
  "type": "string",
5238
5296
  "in": "query"
5239
5297
  }, {
@@ -5254,169 +5312,227 @@ var routes = {
5254
5312
  "required": false,
5255
5313
  "type": "integer",
5256
5314
  "in": "query"
5257
- }, {
5258
- "name": "include_invalidated",
5259
- "description": "Include invalidated (superseded) entries. They are excluded by default; set this to audit the supersede history.",
5260
- "required": false,
5261
- "type": "boolean",
5262
- "in": "query"
5263
5315
  }]
5264
5316
  },
5265
- "create-memory-entry": {
5266
- serviceClass: "MemoryEntries",
5267
- operationId: "createMemoryEntry",
5268
- description: "Creates a new entry in the specified memory container. Automatically generates an embedding for semantic search, and skips the write when an existing entry is a near-duplicate (see `duplicate_threshold`). A merely similar fact is stored as its own entry: this path has no agent context and therefore no model to consolidate two facts into one.",
5269
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5317
+ "create-memory-store": {
5318
+ serviceClass: "MemoryStores",
5319
+ operationId: "createMemoryStore",
5320
+ description: "Creates a new memory store configuration in a project",
5321
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5270
5322
  httpMethod: "post",
5271
5323
  pathParams: [],
5272
5324
  queryParams: [],
5273
5325
  flags: [{
5274
- "name": "memory_id",
5275
- "description": "Memory container to add the entry to (mem_...)",
5276
- "required": true,
5326
+ "name": "project_id",
5327
+ "description": "Project ID (required if not using project key auth)",
5328
+ "required": false,
5277
5329
  "type": "string",
5278
5330
  "in": "body"
5279
5331
  }, {
5280
- "name": "content",
5281
- "description": "The text content of the memory entry",
5332
+ "name": "name",
5333
+ "description": "Memory store name",
5282
5334
  "required": true,
5283
5335
  "type": "string",
5284
5336
  "in": "body"
5285
5337
  }, {
5286
- "name": "source_type",
5287
- "description": "How this entry was created",
5338
+ "name": "description",
5339
+ "description": "Optional description",
5288
5340
  "required": false,
5289
5341
  "type": "string",
5290
5342
  "in": "body"
5291
5343
  }, {
5292
5344
  "name": "tags",
5293
- "description": "Per-entry key-value tags, used for entry-granularity filtering by `tags` in search-knowledge.",
5345
+ "description": "Optional key-value tags. Scopes the memory store in knowledge search, where every requested pair must match exactly.",
5294
5346
  "required": false,
5295
5347
  "type": "object",
5296
5348
  "in": "body"
5297
5349
  }, {
5298
- "name": "metadata",
5299
- "description": "Arbitrary structured metadata attached to the entry",
5350
+ "name": "duplicate_threshold",
5351
+ "description": "The store's dedup policy: cosine similarity at or above which an incoming fact is already known and the write is skipped. `null` (the default) uses the algorithm constant `0.95`. A single `POST /api/v1/memories` call may override it; the agent tool and the post-turn rule never can.",
5300
5352
  "required": false,
5301
- "type": "object",
5353
+ "type": "number",
5302
5354
  "in": "body"
5303
5355
  }, {
5304
- "name": "duplicate_threshold",
5305
- "description": "Cosine similarity score at or above which the incoming content is considered a duplicate of an existing entry and skipped (default 0.95). Below it the entry is always created.",
5356
+ "name": "supersede_threshold",
5357
+ "description": "Cosine similarity at or above which an incoming fact restates a known one that has changed: the matched memory is invalidated and replaced. `null` (the default) uses the algorithm constant `0.90`. Must be lower than the effective `duplicate_threshold`, or the write is rejected with `400 VALIDATION_FAILED` — equal makes `superseded` unreachable and inverted swallows `skipped`.",
5306
5358
  "required": false,
5307
5359
  "type": "number",
5308
5360
  "in": "body"
5309
5361
  }]
5310
5362
  },
5311
- "get-memory-entry": {
5312
- serviceClass: "MemoryEntries",
5313
- operationId: "getMemoryEntry",
5314
- description: "Returns a single memory entry by ID",
5315
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5363
+ "get-memory-store": {
5364
+ serviceClass: "MemoryStores",
5365
+ operationId: "getMemoryStore",
5366
+ description: "Returns a single memory store configuration by ID",
5367
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5316
5368
  httpMethod: "get",
5317
- pathParams: ["entry_id"],
5369
+ pathParams: ["memory_store_id"],
5318
5370
  queryParams: [],
5319
5371
  flags: [{
5320
- "name": "entry_id",
5372
+ "name": "memory_store_id",
5321
5373
  "description": "",
5322
5374
  "required": true,
5323
5375
  "type": "string",
5324
5376
  "in": "path"
5325
5377
  }]
5326
5378
  },
5327
- "update-memory-entry": {
5328
- serviceClass: "MemoryEntries",
5329
- operationId: "updateMemoryEntry",
5330
- description: "Updates an existing memory entry. Regenerates the embedding if content changes.",
5331
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5379
+ "update-memory-store": {
5380
+ serviceClass: "MemoryStores",
5381
+ operationId: "updateMemoryStore",
5382
+ description: "Updates an existing memory store configuration",
5383
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5332
5384
  httpMethod: "put",
5333
- pathParams: ["entry_id"],
5385
+ pathParams: ["memory_store_id"],
5334
5386
  queryParams: [],
5335
5387
  flags: [{
5336
- "name": "entry_id",
5388
+ "name": "memory_store_id",
5337
5389
  "description": "",
5338
5390
  "required": true,
5339
5391
  "type": "string",
5340
5392
  "in": "path"
5341
5393
  }, {
5342
- "name": "content",
5343
- "description": "Updated text content",
5394
+ "name": "name",
5395
+ "description": "Memory store name",
5396
+ "required": false,
5397
+ "type": "string",
5398
+ "in": "body"
5399
+ }, {
5400
+ "name": "description",
5401
+ "description": "Optional description",
5344
5402
  "required": false,
5345
5403
  "type": "string",
5346
5404
  "in": "body"
5347
5405
  }, {
5348
5406
  "name": "tags",
5349
- "description": "Replaces the entry's tags. Pass null or an empty object to clear.",
5407
+ "description": "Optional key-value tags. Replaces the stored bag; `null` clears it.",
5350
5408
  "required": false,
5351
5409
  "type": "object",
5352
5410
  "in": "body"
5353
5411
  }, {
5354
- "name": "metadata",
5355
- "description": "Replaces the entry's metadata. Pass null to clear.",
5412
+ "name": "duplicate_threshold",
5413
+ "description": "The store's dedup policy: cosine similarity at or above which an incoming fact is already known and the write is skipped. `null` (the default) uses the algorithm constant `0.95`. A single `POST /api/v1/memories` call may override it; the agent tool and the post-turn rule never can.",
5356
5414
  "required": false,
5357
- "type": "object",
5415
+ "type": "number",
5416
+ "in": "body"
5417
+ }, {
5418
+ "name": "supersede_threshold",
5419
+ "description": "Cosine similarity at or above which an incoming fact restates a known one that has changed: the matched memory is invalidated and replaced. `null` (the default) uses the algorithm constant `0.90`. Must be lower than the effective `duplicate_threshold`, or the write is rejected with `400 VALIDATION_FAILED` — equal makes `superseded` unreachable and inverted swallows `skipped`.",
5420
+ "required": false,
5421
+ "type": "number",
5358
5422
  "in": "body"
5359
5423
  }]
5360
5424
  },
5361
- "delete-memory-entry": {
5362
- serviceClass: "MemoryEntries",
5363
- operationId: "deleteMemoryEntry",
5364
- description: "Deletes a memory entry",
5365
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5425
+ "delete-memory-store": {
5426
+ serviceClass: "MemoryStores",
5427
+ operationId: "deleteMemoryStore",
5428
+ description: "Deletes a memory store configuration",
5429
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5366
5430
  httpMethod: "delete",
5367
- pathParams: ["entry_id"],
5431
+ pathParams: ["memory_store_id"],
5368
5432
  queryParams: [],
5369
5433
  flags: [{
5370
- "name": "entry_id",
5434
+ "name": "memory_store_id",
5371
5435
  "description": "",
5372
5436
  "required": true,
5373
5437
  "type": "string",
5374
5438
  "in": "path"
5375
5439
  }]
5376
5440
  },
5377
- "get-memory-entry-tags": {
5378
- serviceClass: "MemoryEntries",
5379
- operationId: "getMemoryEntryTags",
5380
- description: "Returns all tags attached to the memory entry",
5381
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5441
+ "list-memory-store-assertions": {
5442
+ serviceClass: "MemoryStores",
5443
+ operationId: "listMemoryStoreAssertions",
5444
+ description: "Returns the store's write ledger, newest first: one row per write attempt, skips included. This is how \"which write path is filling this store?\" is asked — a question no column on a memory row could answer, because a skipped write produced no memory at all.",
5445
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5382
5446
  httpMethod: "get",
5383
- pathParams: ["entry_id"],
5447
+ pathParams: ["memory_store_id"],
5448
+ queryParams: ["mechanism", "outcome", "generation_id", "since", "limit", "offset"],
5449
+ flags: [{
5450
+ "name": "memory_store_id",
5451
+ "description": "",
5452
+ "required": true,
5453
+ "type": "string",
5454
+ "in": "path"
5455
+ }, {
5456
+ "name": "mechanism",
5457
+ "description": "Only assertions that came through this door.",
5458
+ "required": false,
5459
+ "type": "string",
5460
+ "in": "query"
5461
+ }, {
5462
+ "name": "outcome",
5463
+ "description": "Only assertions that resolved this way.",
5464
+ "required": false,
5465
+ "type": "string",
5466
+ "in": "query"
5467
+ }, {
5468
+ "name": "generation_id",
5469
+ "description": "Only assertions made during this generation. A generation that does not exist matches nothing rather than widening to the whole store.",
5470
+ "required": false,
5471
+ "type": "string",
5472
+ "in": "query"
5473
+ }, {
5474
+ "name": "since",
5475
+ "description": "Only assertions recorded at or after this instant.",
5476
+ "required": false,
5477
+ "type": "string",
5478
+ "in": "query"
5479
+ }, {
5480
+ "name": "limit",
5481
+ "description": "Maximum number of results to return",
5482
+ "required": false,
5483
+ "type": "integer",
5484
+ "in": "query"
5485
+ }, {
5486
+ "name": "offset",
5487
+ "description": "Number of results to skip",
5488
+ "required": false,
5489
+ "type": "integer",
5490
+ "in": "query"
5491
+ }]
5492
+ },
5493
+ "get-memory-store-tags": {
5494
+ serviceClass: "MemoryStores",
5495
+ operationId: "getMemoryStoreTags",
5496
+ description: "Returns all tags attached to the memory store",
5497
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5498
+ httpMethod: "get",
5499
+ pathParams: ["memory_store_id"],
5384
5500
  queryParams: [],
5385
5501
  flags: [{
5386
- "name": "entry_id",
5387
- "description": "Memory entry ID",
5502
+ "name": "memory_store_id",
5503
+ "description": "Memory store ID",
5388
5504
  "required": true,
5389
5505
  "type": "string",
5390
5506
  "in": "path"
5391
5507
  }]
5392
5508
  },
5393
- "replace-memory-entry-tags": {
5394
- serviceClass: "MemoryEntries",
5395
- operationId: "replaceMemoryEntryTags",
5396
- description: "Replaces all tags on the memory entry with the provided tags (not merged)",
5397
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5509
+ "replace-memory-store-tags": {
5510
+ serviceClass: "MemoryStores",
5511
+ operationId: "replaceMemoryStoreTags",
5512
+ description: "Replaces all tags on the memory store with the provided tags (not merged)",
5513
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5398
5514
  httpMethod: "put",
5399
- pathParams: ["entry_id"],
5515
+ pathParams: ["memory_store_id"],
5400
5516
  queryParams: [],
5401
5517
  flags: [{
5402
- "name": "entry_id",
5403
- "description": "Memory entry ID",
5518
+ "name": "memory_store_id",
5519
+ "description": "Memory store ID",
5404
5520
  "required": true,
5405
5521
  "type": "string",
5406
5522
  "in": "path"
5407
5523
  }]
5408
5524
  },
5409
- "merge-memory-entry-tags": {
5410
- serviceClass: "MemoryEntries",
5411
- operationId: "mergeMemoryEntryTags",
5412
- description: "Merges provided tags into the memory entry's existing tags (existing tags are preserved unless overridden)",
5413
- moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-entries",
5525
+ "merge-memory-store-tags": {
5526
+ serviceClass: "MemoryStores",
5527
+ operationId: "mergeMemoryStoreTags",
5528
+ description: "Merges provided tags into the memory store's existing tags (existing tags are preserved unless overridden)",
5529
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memory-stores",
5414
5530
  httpMethod: "patch",
5415
- pathParams: ["entry_id"],
5531
+ pathParams: ["memory_store_id"],
5416
5532
  queryParams: [],
5417
5533
  flags: [{
5418
- "name": "entry_id",
5419
- "description": "Memory entry ID",
5534
+ "name": "memory_store_id",
5535
+ "description": "Memory store ID",
5420
5536
  "required": true,
5421
5537
  "type": "string",
5422
5538
  "in": "path"
@@ -6299,7 +6415,7 @@ var routes = {
6299
6415
  "delete-project": {
6300
6416
  serviceClass: "Projects",
6301
6417
  operationId: "deleteProject",
6302
- description: "Deletes a project. Requires admin role. Fails with `409` if the project has any dependent resource, unless `force=true` is passed, in which case those resources are deleted along with the project. Every project-scoped resource counts: agents, ai providers, model routes, tools, ingestion rules, actors, chats, conversations, sessions, generations, traces, datasets, evals, workflows, tasks, triggers, orchestrations and their runs, formations, memories, secrets, files, guardrails, quotas, usage history — and the activity, approval, exception and guardrail-evaluation records a project accumulates while it runs. Audit log entries are the one exception: they outlive the project, keeping their record with `project_id` cleared.",
6418
+ description: "Deletes a project. Requires admin role. Fails with `409` if the project has any dependent resource, unless `force=true` is passed, in which case those resources are deleted along with the project. Every project-scoped resource counts: agents, ai providers, model routes, tools, ingestion rules, actors, chats, conversations, sessions, generations, traces, datasets, evals, workflows, tasks, triggers, orchestrations and their runs, formations, memory stores, secrets, files, guardrails, quotas, usage history — and the activity, approval, exception and guardrail-evaluation records a project accumulates while it runs. Audit log entries are the one exception: they outlive the project, keeping their record with `project_id` cleared.",
6303
6419
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/projects",
6304
6420
  httpMethod: "delete",
6305
6421
  pathParams: ["project_id"],
@@ -6387,7 +6503,7 @@ var routes = {
6387
6503
  "create-quota": {
6388
6504
  serviceClass: "Quotas",
6389
6505
  operationId: "createQuota",
6390
- description: "Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409. `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory-entry create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.",
6506
+ description: "Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409. `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.",
6391
6507
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/quotas",
6392
6508
  httpMethod: "post",
6393
6509
  pathParams: [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soat/cli",
3
- "version": "0.49.1",
3
+ "version": "0.51.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.6",
24
24
  "@inquirer/password": "^5.2.2",
25
- "@soat/sdk": "0.49.1",
25
+ "@soat/sdk": "0.51.0",
26
26
  "@ttoss/logger": "^0.8.20",
27
27
  "commander": "^15.0.0",
28
28
  "js-yaml": "^5.4.2"