@soat/sdk 0.54.0 → 0.56.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.d.cts CHANGED
@@ -482,7 +482,15 @@ type Agent = {
482
482
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
483
483
  */
484
484
  tags?: TagBag;
485
+ /**
486
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
487
+ *
488
+ */
485
489
  min_score?: number;
490
+ /**
491
+ * Maximum number of results to inject. Omitted, 10 are injected.
492
+ *
493
+ */
486
494
  limit?: number;
487
495
  /**
488
496
  * Public ID of the memory store the agent can write to during generation. When set, a write_memory tool is automatically available to the agent.
@@ -678,7 +686,15 @@ type CreateAgentRequest = {
678
686
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
679
687
  */
680
688
  tags?: TagBag;
689
+ /**
690
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
691
+ *
692
+ */
681
693
  min_score?: number;
694
+ /**
695
+ * Maximum number of results to inject. Omitted, 10 are injected.
696
+ *
697
+ */
682
698
  limit?: number;
683
699
  /**
684
700
  * Public ID of the memory store the agent can write to during generation. When set, a write_memory tool is automatically available to the agent.
@@ -768,7 +784,15 @@ type UpdateAgentRequest = {
768
784
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
769
785
  */
770
786
  tags?: TagBag;
787
+ /**
788
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
789
+ *
790
+ */
771
791
  min_score?: number;
792
+ /**
793
+ * Maximum number of results to inject. Omitted, 10 are injected.
794
+ *
795
+ */
772
796
  limit?: number;
773
797
  /**
774
798
  * Public ID of the memory store the agent can write to during generation. When set, a write_memory tool is automatically available to the agent.
@@ -869,7 +893,15 @@ type CreateAgentGenerationRequest = {
869
893
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
870
894
  */
871
895
  tags?: TagBag;
896
+ /**
897
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
898
+ *
899
+ */
872
900
  min_score?: number;
901
+ /**
902
+ * Maximum number of results to inject. Omitted, 10 are injected.
903
+ *
904
+ */
873
905
  limit?: number;
874
906
  } | null;
875
907
  };
@@ -1542,6 +1574,10 @@ type ConversationRecord = {
1542
1574
  * Actor ID associated with this conversation
1543
1575
  */
1544
1576
  actor_id?: string | null;
1577
+ /**
1578
+ * Whether this conversation's turns are embedded for vector retrieval. Turns are stored and chunked either way, so `none` leaves them readable and reachable by full-text search without paying for an embedding. `null` (the default) inherits the project's `default_conversation_retrieval`.
1579
+ */
1580
+ retrieval?: 'embed' | 'none' | null;
1545
1581
  };
1546
1582
  type ConversationMessageRecord = {
1547
1583
  /**
@@ -4701,14 +4737,15 @@ type OrchestrationNode = {
4701
4737
  [key: string]: unknown;
4702
4738
  };
4703
4739
  /**
4704
- * Maps state write paths to values. Each key is a `state.<path>` destination (the `state.` prefix is optional); each value is JSON Logic (https://jsonlogic.com) evaluated against `{ "output": <node artifact>, "state": <run state> }` — e.g. `{ "summary": {"var": "output.content"} }` writes the artifact's `content` field to `state.summary`. The same evaluator as input_mapping/transform/condition; only the context differs.
4740
+ * Maps state write paths to values. Each key is a `state.<path>` destination (the `state.` prefix is optional); each value is JSON Logic (https://jsonlogic.com) evaluated against `{ "output": <node artifact>, "state": <run state> }` — e.g. `{ "summary": {"var": "output.content"} }` writes the artifact's `content` field to `state.summary`. The same evaluator as input_mapping/transform/condition; only the context differs. An `agent` node's artifact always carries both `content` (the text response) and `object` (the parsed value when a schema applied, `null` otherwise), so `output.content` reads the same whether or not the node declares an `output_schema`.
4705
4741
  *
4706
4742
  */
4707
4743
  state_mapping?: {
4708
4744
  [key: string]: unknown;
4709
4745
  };
4710
4746
  /**
4711
- * For agent nodes — JSON Schema for structured output parsing.
4747
+ * For agent nodes — JSON Schema the model's answer is parsed into, reaching the artifact as `object`. Declaring it here is only needed for an agent that carries no `output_schema` of its own: the agent's schema already produces the artifact's `object` wherever that agent generates.
4748
+ *
4712
4749
  */
4713
4750
  output_schema?: {
4714
4751
  [key: string]: unknown;
@@ -5077,6 +5114,11 @@ type NodeExecution = {
5077
5114
  *
5078
5115
  */
5079
5116
  attempt: number;
5117
+ /**
5118
+ * How many times this attempt was dispatched, including the first. A worker that stops mid-node leaves its task to be redelivered, and the redelivery re-runs the node under this same record — so a count above 1 is work the run issued, and was billed for, more than once.
5119
+ *
5120
+ */
5121
+ dispatches: number;
5080
5122
  /**
5081
5123
  * Node execution status. `running` marks an execution record whose node is still in flight. Open set — new statuses may be added in minor releases; clients must tolerate unknown values.
5082
5124
  */
@@ -5267,6 +5309,10 @@ type ProjectRecord = {
5267
5309
  * Whether `GET` requests naming this project are recorded in the audit log. `false` by default — v1 audits mutations only.
5268
5310
  */
5269
5311
  audit_reads_enabled?: boolean;
5312
+ /**
5313
+ * What a conversation that names no `retrieval` of its own does. `none` by default.
5314
+ */
5315
+ default_conversation_retrieval?: 'embed' | 'none';
5270
5316
  /**
5271
5317
  * Days of trace/generation content retention before the daily sweep purges it. `null` means retention is disabled (the default) and content is kept until purged on demand.
5272
5318
  */
@@ -5642,6 +5688,8 @@ type SubmitSessionToolOutputsRequest = {
5642
5688
  };
5643
5689
  /**
5644
5690
  * 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.
5691
+ *
5692
+ * Keys 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.
5645
5693
  */
5646
5694
  type TagBag = {
5647
5695
  [key: string]: string;
@@ -9345,6 +9393,10 @@ type CreateConversationData = {
9345
9393
  * Actor ID to associate with this conversation
9346
9394
  */
9347
9395
  actor_id?: string | null;
9396
+ /**
9397
+ * Whether this conversation's turns are embedded for vector retrieval. Turns are stored and chunked either way, so `none` leaves them readable and reachable by full-text search without paying for an embedding. `null` (the default) inherits the project's `default_conversation_retrieval`.
9398
+ */
9399
+ retrieval?: 'embed' | 'none' | null;
9348
9400
  };
9349
9401
  path?: never;
9350
9402
  query?: never;
@@ -9448,6 +9500,10 @@ type UpdateConversationData = {
9448
9500
  * New conversation name
9449
9501
  */
9450
9502
  name?: string | null;
9503
+ /**
9504
+ * Whether this conversation's turns are embedded for vector retrieval. Turns are stored and chunked either way, so `none` leaves them readable and reachable by full-text search without paying for an embedding. `null` (the default) inherits the project's `default_conversation_retrieval`. Switching it on embeds the turns already in the conversation, so the whole conversation becomes retrievable rather than only what is said next.
9505
+ */
9506
+ retrieval?: 'embed' | 'none' | null;
9451
9507
  };
9452
9508
  path: {
9453
9509
  /**
@@ -9855,7 +9911,7 @@ type CreateDocumentData = {
9855
9911
  project_id?: string;
9856
9912
  content: string;
9857
9913
  /**
9858
- * Logical path within the project (e.g. /reports/q1.txt). Defaults to /filename if omitted.
9914
+ * Logical path within the project (e.g. /reports/q1.txt). Defaults to `/<filename>`, or to `/<document_id>.txt` when neither is given — a document with no path is reachable only by its id, since a prefix filter never matches null.
9859
9915
  */
9860
9916
  path?: string;
9861
9917
  filename?: string;
@@ -11463,6 +11519,10 @@ type ListFilesData = {
11463
11519
  * Filter files by project ID
11464
11520
  */
11465
11521
  project_id?: string;
11522
+ /**
11523
+ * Only files under this directory. The prefix is a path boundary, not a substring: `/reports` returns `/reports/q1.txt` and never `/reports-archive/q1.txt`, and `/` selects the whole project. A leading slash is optional and a trailing one is ignored, so `reports`, `/reports` and `/reports/` are the same filter. `%` and `_` are literal characters, not wildcards. Naming a directory under `/.system/` is what includes platform-written files, which a list without this parameter leaves out.
11524
+ */
11525
+ path_prefix?: string;
11466
11526
  /**
11467
11527
  * 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.
11468
11528
  *
@@ -15437,6 +15497,10 @@ type UpdateProjectData = {
15437
15497
  * Opt the project into read auditing. When true, `GET` requests that name this project are recorded in the audit log alongside mutations. Defaults to `false`.
15438
15498
  */
15439
15499
  audit_reads_enabled?: boolean;
15500
+ /**
15501
+ * 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.
15502
+ */
15503
+ default_conversation_retrieval?: 'embed' | 'none';
15440
15504
  /**
15441
15505
  * How long trace and generation content is kept before the daily retention sweep content-purges it. `null` (the default) disables retention; otherwise an integer >= 1. The sweep uses the same purge path as `DELETE /traces/{trace_id}/content`, so the row survives as an auditable skeleton with `content_redacted_at` set.
15442
15506
  */
package/dist/index.d.mts CHANGED
@@ -482,7 +482,15 @@ type Agent = {
482
482
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
483
483
  */
484
484
  tags?: TagBag;
485
+ /**
486
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
487
+ *
488
+ */
485
489
  min_score?: number;
490
+ /**
491
+ * Maximum number of results to inject. Omitted, 10 are injected.
492
+ *
493
+ */
486
494
  limit?: number;
487
495
  /**
488
496
  * Public ID of the memory store the agent can write to during generation. When set, a write_memory tool is automatically available to the agent.
@@ -678,7 +686,15 @@ type CreateAgentRequest = {
678
686
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
679
687
  */
680
688
  tags?: TagBag;
689
+ /**
690
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
691
+ *
692
+ */
681
693
  min_score?: number;
694
+ /**
695
+ * Maximum number of results to inject. Omitted, 10 are injected.
696
+ *
697
+ */
682
698
  limit?: number;
683
699
  /**
684
700
  * Public ID of the memory store the agent can write to during generation. When set, a write_memory tool is automatically available to the agent.
@@ -768,7 +784,15 @@ type UpdateAgentRequest = {
768
784
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
769
785
  */
770
786
  tags?: TagBag;
787
+ /**
788
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
789
+ *
790
+ */
771
791
  min_score?: number;
792
+ /**
793
+ * Maximum number of results to inject. Omitted, 10 are injected.
794
+ *
795
+ */
772
796
  limit?: number;
773
797
  /**
774
798
  * Public ID of the memory store the agent can write to during generation. When set, a write_memory tool is automatically available to the agent.
@@ -869,7 +893,15 @@ type CreateAgentGenerationRequest = {
869
893
  * Key-value pairs a result's own `tags` must all contain (exact match). Scopes documents and memories alike.
870
894
  */
871
895
  tags?: TagBag;
896
+ /**
897
+ * Minimum raw cosine similarity (0–1) a vector candidate must reach to be ranked, the floor the search endpoint spells `min_similarity`. No default: omitted means no floor at all, and every one of the `limit` nearest chunks is injected however weak it is.
898
+ *
899
+ */
872
900
  min_score?: number;
901
+ /**
902
+ * Maximum number of results to inject. Omitted, 10 are injected.
903
+ *
904
+ */
873
905
  limit?: number;
874
906
  } | null;
875
907
  };
@@ -1542,6 +1574,10 @@ type ConversationRecord = {
1542
1574
  * Actor ID associated with this conversation
1543
1575
  */
1544
1576
  actor_id?: string | null;
1577
+ /**
1578
+ * Whether this conversation's turns are embedded for vector retrieval. Turns are stored and chunked either way, so `none` leaves them readable and reachable by full-text search without paying for an embedding. `null` (the default) inherits the project's `default_conversation_retrieval`.
1579
+ */
1580
+ retrieval?: 'embed' | 'none' | null;
1545
1581
  };
1546
1582
  type ConversationMessageRecord = {
1547
1583
  /**
@@ -4701,14 +4737,15 @@ type OrchestrationNode = {
4701
4737
  [key: string]: unknown;
4702
4738
  };
4703
4739
  /**
4704
- * Maps state write paths to values. Each key is a `state.<path>` destination (the `state.` prefix is optional); each value is JSON Logic (https://jsonlogic.com) evaluated against `{ "output": <node artifact>, "state": <run state> }` — e.g. `{ "summary": {"var": "output.content"} }` writes the artifact's `content` field to `state.summary`. The same evaluator as input_mapping/transform/condition; only the context differs.
4740
+ * Maps state write paths to values. Each key is a `state.<path>` destination (the `state.` prefix is optional); each value is JSON Logic (https://jsonlogic.com) evaluated against `{ "output": <node artifact>, "state": <run state> }` — e.g. `{ "summary": {"var": "output.content"} }` writes the artifact's `content` field to `state.summary`. The same evaluator as input_mapping/transform/condition; only the context differs. An `agent` node's artifact always carries both `content` (the text response) and `object` (the parsed value when a schema applied, `null` otherwise), so `output.content` reads the same whether or not the node declares an `output_schema`.
4705
4741
  *
4706
4742
  */
4707
4743
  state_mapping?: {
4708
4744
  [key: string]: unknown;
4709
4745
  };
4710
4746
  /**
4711
- * For agent nodes — JSON Schema for structured output parsing.
4747
+ * For agent nodes — JSON Schema the model's answer is parsed into, reaching the artifact as `object`. Declaring it here is only needed for an agent that carries no `output_schema` of its own: the agent's schema already produces the artifact's `object` wherever that agent generates.
4748
+ *
4712
4749
  */
4713
4750
  output_schema?: {
4714
4751
  [key: string]: unknown;
@@ -5077,6 +5114,11 @@ type NodeExecution = {
5077
5114
  *
5078
5115
  */
5079
5116
  attempt: number;
5117
+ /**
5118
+ * How many times this attempt was dispatched, including the first. A worker that stops mid-node leaves its task to be redelivered, and the redelivery re-runs the node under this same record — so a count above 1 is work the run issued, and was billed for, more than once.
5119
+ *
5120
+ */
5121
+ dispatches: number;
5080
5122
  /**
5081
5123
  * Node execution status. `running` marks an execution record whose node is still in flight. Open set — new statuses may be added in minor releases; clients must tolerate unknown values.
5082
5124
  */
@@ -5267,6 +5309,10 @@ type ProjectRecord = {
5267
5309
  * Whether `GET` requests naming this project are recorded in the audit log. `false` by default — v1 audits mutations only.
5268
5310
  */
5269
5311
  audit_reads_enabled?: boolean;
5312
+ /**
5313
+ * What a conversation that names no `retrieval` of its own does. `none` by default.
5314
+ */
5315
+ default_conversation_retrieval?: 'embed' | 'none';
5270
5316
  /**
5271
5317
  * Days of trace/generation content retention before the daily sweep purges it. `null` means retention is disabled (the default) and content is kept until purged on demand.
5272
5318
  */
@@ -5642,6 +5688,8 @@ type SubmitSessionToolOutputsRequest = {
5642
5688
  };
5643
5689
  /**
5644
5690
  * 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.
5691
+ *
5692
+ * Keys 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.
5645
5693
  */
5646
5694
  type TagBag = {
5647
5695
  [key: string]: string;
@@ -9345,6 +9393,10 @@ type CreateConversationData = {
9345
9393
  * Actor ID to associate with this conversation
9346
9394
  */
9347
9395
  actor_id?: string | null;
9396
+ /**
9397
+ * Whether this conversation's turns are embedded for vector retrieval. Turns are stored and chunked either way, so `none` leaves them readable and reachable by full-text search without paying for an embedding. `null` (the default) inherits the project's `default_conversation_retrieval`.
9398
+ */
9399
+ retrieval?: 'embed' | 'none' | null;
9348
9400
  };
9349
9401
  path?: never;
9350
9402
  query?: never;
@@ -9448,6 +9500,10 @@ type UpdateConversationData = {
9448
9500
  * New conversation name
9449
9501
  */
9450
9502
  name?: string | null;
9503
+ /**
9504
+ * Whether this conversation's turns are embedded for vector retrieval. Turns are stored and chunked either way, so `none` leaves them readable and reachable by full-text search without paying for an embedding. `null` (the default) inherits the project's `default_conversation_retrieval`. Switching it on embeds the turns already in the conversation, so the whole conversation becomes retrievable rather than only what is said next.
9505
+ */
9506
+ retrieval?: 'embed' | 'none' | null;
9451
9507
  };
9452
9508
  path: {
9453
9509
  /**
@@ -9855,7 +9911,7 @@ type CreateDocumentData = {
9855
9911
  project_id?: string;
9856
9912
  content: string;
9857
9913
  /**
9858
- * Logical path within the project (e.g. /reports/q1.txt). Defaults to /filename if omitted.
9914
+ * Logical path within the project (e.g. /reports/q1.txt). Defaults to `/<filename>`, or to `/<document_id>.txt` when neither is given — a document with no path is reachable only by its id, since a prefix filter never matches null.
9859
9915
  */
9860
9916
  path?: string;
9861
9917
  filename?: string;
@@ -11463,6 +11519,10 @@ type ListFilesData = {
11463
11519
  * Filter files by project ID
11464
11520
  */
11465
11521
  project_id?: string;
11522
+ /**
11523
+ * Only files under this directory. The prefix is a path boundary, not a substring: `/reports` returns `/reports/q1.txt` and never `/reports-archive/q1.txt`, and `/` selects the whole project. A leading slash is optional and a trailing one is ignored, so `reports`, `/reports` and `/reports/` are the same filter. `%` and `_` are literal characters, not wildcards. Naming a directory under `/.system/` is what includes platform-written files, which a list without this parameter leaves out.
11524
+ */
11525
+ path_prefix?: string;
11466
11526
  /**
11467
11527
  * 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.
11468
11528
  *
@@ -15437,6 +15497,10 @@ type UpdateProjectData = {
15437
15497
  * Opt the project into read auditing. When true, `GET` requests that name this project are recorded in the audit log alongside mutations. Defaults to `false`.
15438
15498
  */
15439
15499
  audit_reads_enabled?: boolean;
15500
+ /**
15501
+ * 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.
15502
+ */
15503
+ default_conversation_retrieval?: 'embed' | 'none';
15440
15504
  /**
15441
15505
  * How long trace and generation content is kept before the daily retention sweep content-purges it. `null` (the default) disables retention; otherwise an integer >= 1. The sweep uses the same purge path as `DELETE /traces/{trace_id}/content`, so the row survives as an auditable skeleton with `content_redacted_at` set.
15442
15506
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soat/sdk",
3
- "version": "0.54.0",
3
+ "version": "0.56.0",
4
4
  "description": "TypeScript SDK for SOAT — open-source infrastructure for production-ready AI agents.",
5
5
  "keywords": [
6
6
  "ai-agents",