@soat/cli 0.20.4 → 0.21.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 +653 -341
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { load } from "js-yaml";
|
|
|
13
13
|
import * as os from "node:os";
|
|
14
14
|
|
|
15
15
|
//#region package.json
|
|
16
|
-
var version = "0.
|
|
16
|
+
var version = "0.21.0";
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region src/cli-wrappers/wrappers/formations.ts
|
|
@@ -1184,17 +1184,23 @@ var routes = {
|
|
|
1184
1184
|
"create-agent-generation": {
|
|
1185
1185
|
serviceClass: "Agents",
|
|
1186
1186
|
operationId: "createAgentGeneration",
|
|
1187
|
-
description: "Sends messages to the agent, resolves its tools, and runs the AI model loop.
|
|
1187
|
+
description: "Sends messages to the agent, resolves its tools, and runs the AI model loop. Background by default: returns `202 Accepted` with a `generation_id` to poll via `GET /api/v1/generations/{generation_id}`. Pass `?wait=true` to block and receive the result inline, where client tools pause the generation and return `requires_action`. Streaming (`stream: true`) implies waiting.",
|
|
1188
1188
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
|
|
1189
1189
|
httpMethod: "post",
|
|
1190
1190
|
pathParams: ["agent_id"],
|
|
1191
|
-
queryParams: [],
|
|
1191
|
+
queryParams: ["wait"],
|
|
1192
1192
|
flags: [{
|
|
1193
1193
|
"name": "agent_id",
|
|
1194
1194
|
"description": "",
|
|
1195
1195
|
"required": true,
|
|
1196
1196
|
"type": "string",
|
|
1197
1197
|
"in": "path"
|
|
1198
|
+
}, {
|
|
1199
|
+
"name": "wait",
|
|
1200
|
+
"description": "When omitted or `false` (default), the generation runs in the background and `202 Accepted` is returned immediately with a `generation_id` to poll. Pass `true` to block until the generation settles and receive the result. Mutually exclusive with `stream: true`. A `soat` tool call always waits.",
|
|
1201
|
+
"required": false,
|
|
1202
|
+
"type": "boolean",
|
|
1203
|
+
"in": "query"
|
|
1198
1204
|
}, {
|
|
1199
1205
|
"name": "messages",
|
|
1200
1206
|
"description": "",
|
|
@@ -1407,12 +1413,18 @@ var routes = {
|
|
|
1407
1413
|
"required": true,
|
|
1408
1414
|
"type": "integer",
|
|
1409
1415
|
"in": "body"
|
|
1416
|
+
}, {
|
|
1417
|
+
"name": "promotion_gate",
|
|
1418
|
+
"description": "Eval to gate promotion on. It must belong to this project and evaluate this agent; anything else is a `400`. Omit it, or send null, for a rollout that can be promoted at will.",
|
|
1419
|
+
"required": false,
|
|
1420
|
+
"type": "string",
|
|
1421
|
+
"in": "body"
|
|
1410
1422
|
}]
|
|
1411
1423
|
},
|
|
1412
1424
|
"promote-agent-release": {
|
|
1413
1425
|
serviceClass: "AgentVersions",
|
|
1414
1426
|
operationId: "promoteAgentRelease",
|
|
1415
|
-
description: "Makes the canary version's config the agent's live config and clears the release. The canary is pinned by version, so an edit that landed mid-rollout is not promoted in its place — it stays an unreleased draft in the version history.",
|
|
1427
|
+
description: "Makes the canary version's config the agent's live config and clears the release. The canary is pinned by version, so an edit that landed mid-rollout is not promoted in its place — it stays an unreleased draft in the version history. When the release carries a `promotion_gate`, the eval it names must have a run that finished `completed` with `passed: true` **and** was pinned to the canary version (`agent_version`); otherwise the call is a `409` and the rollout is left running untouched. The run that cleared the gate is recorded as `eval_run_id` on the version that goes live.",
|
|
1416
1428
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
|
|
1417
1429
|
httpMethod: "post",
|
|
1418
1430
|
pathParams: ["agent_id"],
|
|
@@ -1592,7 +1604,7 @@ var routes = {
|
|
|
1592
1604
|
"delete-ai-provider": {
|
|
1593
1605
|
serviceClass: "AIProviders",
|
|
1594
1606
|
operationId: "deleteAiProvider",
|
|
1595
|
-
description: "Deletes an AI provider configuration. Live references — chats, agents,
|
|
1607
|
+
description: "Deletes an AI provider configuration. Live references — chats, agents, and model routes whose targets name this provider — always block deletion with `409 AI_PROVIDER_HAS_DEPENDENTS`; `force` does not override them, so delete or repoint those resources first. Soft dependents — price overrides and usage/generation records — also block with `409` unless `force=true`, which deletes the provider's price overrides and unlinks (nulls) its usage history, preserving those rows. The `409` body's `error.meta` reports the counts, a sample of offending IDs, and a `forcible` flag that is `true` when a `force=true` retry would succeed.",
|
|
1596
1608
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
|
|
1597
1609
|
httpMethod: "delete",
|
|
1598
1610
|
pathParams: ["ai_provider_id"],
|
|
@@ -1605,12 +1617,28 @@ var routes = {
|
|
|
1605
1617
|
"in": "path"
|
|
1606
1618
|
}, {
|
|
1607
1619
|
"name": "force",
|
|
1608
|
-
"description": "When `true`, delete the provider's price overrides and unlink its usage
|
|
1620
|
+
"description": "When `true`, delete the provider's price overrides and unlink its usage history so a provider with only soft dependents can be removed. Has no effect on live references (chats, agents, model routes), which always block deletion.\n",
|
|
1609
1621
|
"required": false,
|
|
1610
1622
|
"type": "boolean",
|
|
1611
1623
|
"in": "query"
|
|
1612
1624
|
}]
|
|
1613
1625
|
},
|
|
1626
|
+
"list-ai-provider-models": {
|
|
1627
|
+
serviceClass: "AIProviders",
|
|
1628
|
+
operationId: "listAiProviderModels",
|
|
1629
|
+
description: "Asks the provider which models it can run, using this provider record's own credentials and configuration, and returns provider-native model ids — the same strings `default_model` and an agent's `model` carry. Which models are reachable is a property of the credential, not of the provider type: a Vertex provider sees only the publisher models its Google Cloud project and location serve, and a Bedrock provider only the foundation models enabled in its region. Reading the list is how a caller avoids pinning a model that fails at generation time. Not every provider type can answer. `azure` lists deployments an operator named rather than models, and `ollama` lists whatever was pulled onto that host, so both return `400 MODEL_LISTING_UNSUPPORTED`.",
|
|
1630
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
|
|
1631
|
+
httpMethod: "get",
|
|
1632
|
+
pathParams: ["ai_provider_id"],
|
|
1633
|
+
queryParams: [],
|
|
1634
|
+
flags: [{
|
|
1635
|
+
"name": "ai_provider_id",
|
|
1636
|
+
"description": "AI Provider ID",
|
|
1637
|
+
"required": true,
|
|
1638
|
+
"type": "string",
|
|
1639
|
+
"in": "path"
|
|
1640
|
+
}]
|
|
1641
|
+
},
|
|
1614
1642
|
"get-ai-provider-prices": {
|
|
1615
1643
|
serviceClass: "AIProviders",
|
|
1616
1644
|
operationId: "getAiProviderPrices",
|
|
@@ -2416,17 +2444,23 @@ var routes = {
|
|
|
2416
2444
|
"generate-conversation-message": {
|
|
2417
2445
|
serviceClass: "Conversations",
|
|
2418
2446
|
operationId: "generateConversationMessage",
|
|
2419
|
-
description: "Generates the next message using the specified actor's linked agent or chat. On `completed`, the reply is persisted as a new ConversationMessage authored by that actor. On `requires_action`, nothing is persisted; the caller must submit tool outputs via the Agents module and re-invoke generate
|
|
2447
|
+
description: "Generates the next message using the specified actor's linked agent or chat. Background by default: returns `202 Accepted` immediately and the reply lands as a new ConversationMessage when it completes — poll `GET /api/v1/conversations/{conversation_id}/messages` for it. Pass `?wait=true` to block and receive the result inline. On `completed`, the reply is persisted as a new ConversationMessage authored by that actor. On `requires_action`, nothing is persisted; the caller must submit tool outputs via the Agents module and re-invoke generate — so a flow using client tools should pass `?wait=true`.",
|
|
2420
2448
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
|
|
2421
2449
|
httpMethod: "post",
|
|
2422
2450
|
pathParams: ["conversation_id"],
|
|
2423
|
-
queryParams: [],
|
|
2451
|
+
queryParams: ["wait"],
|
|
2424
2452
|
flags: [{
|
|
2425
2453
|
"name": "conversation_id",
|
|
2426
2454
|
"description": "",
|
|
2427
2455
|
"required": true,
|
|
2428
2456
|
"type": "string",
|
|
2429
2457
|
"in": "path"
|
|
2458
|
+
}, {
|
|
2459
|
+
"name": "wait",
|
|
2460
|
+
"description": "When omitted or `false` (default), the generation runs in the background and `202 Accepted` is returned immediately. Pass `true` to block until the generation settles and receive the result. A `soat` tool call always waits.",
|
|
2461
|
+
"required": false,
|
|
2462
|
+
"type": "boolean",
|
|
2463
|
+
"in": "query"
|
|
2430
2464
|
}, {
|
|
2431
2465
|
"name": "agent_id",
|
|
2432
2466
|
"description": "ID of the agent that will produce the next message.",
|
|
@@ -2523,11 +2557,11 @@ var routes = {
|
|
|
2523
2557
|
"in": "path"
|
|
2524
2558
|
}]
|
|
2525
2559
|
},
|
|
2526
|
-
"list-
|
|
2527
|
-
serviceClass: "
|
|
2528
|
-
operationId: "
|
|
2529
|
-
description: "Returns all
|
|
2530
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2560
|
+
"list-documents": {
|
|
2561
|
+
serviceClass: "Documents",
|
|
2562
|
+
operationId: "listDocuments",
|
|
2563
|
+
description: "Returns all documents the caller has access to. If projectId is provided, returns only documents in that project. project keys are scoped to a single project automatically. JWT users without projectId receive documents across all their accessible projects.",
|
|
2564
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2531
2565
|
httpMethod: "get",
|
|
2532
2566
|
pathParams: [],
|
|
2533
2567
|
queryParams: ["project_id", "limit", "offset"],
|
|
@@ -2551,243 +2585,383 @@ var routes = {
|
|
|
2551
2585
|
"in": "query"
|
|
2552
2586
|
}]
|
|
2553
2587
|
},
|
|
2554
|
-
"create-
|
|
2555
|
-
serviceClass: "
|
|
2556
|
-
operationId: "
|
|
2557
|
-
description: "Creates a new
|
|
2558
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2588
|
+
"create-document": {
|
|
2589
|
+
serviceClass: "Documents",
|
|
2590
|
+
operationId: "createDocument",
|
|
2591
|
+
description: "Creates a new text document and generates an embedding vector for semantic search. project keys automatically infer the project from the key's scope; JWT callers must supply projectId.",
|
|
2592
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2559
2593
|
httpMethod: "post",
|
|
2560
2594
|
pathParams: [],
|
|
2561
2595
|
queryParams: [],
|
|
2562
2596
|
flags: [{
|
|
2563
2597
|
"name": "project_id",
|
|
2564
|
-
"description": "Project ID. Required for JWT auth; omit when using
|
|
2598
|
+
"description": "Project ID. Required for JWT auth; omit when using an project key.",
|
|
2565
2599
|
"required": false,
|
|
2566
2600
|
"type": "string",
|
|
2567
2601
|
"in": "body"
|
|
2568
2602
|
}, {
|
|
2569
|
-
"name": "
|
|
2603
|
+
"name": "content",
|
|
2570
2604
|
"description": "",
|
|
2571
2605
|
"required": true,
|
|
2572
2606
|
"type": "string",
|
|
2573
2607
|
"in": "body"
|
|
2574
2608
|
}, {
|
|
2575
|
-
"name": "
|
|
2576
|
-
"description": "",
|
|
2609
|
+
"name": "path",
|
|
2610
|
+
"description": "Logical path within the project (e.g. /reports/q1.txt). Defaults to /filename if omitted.",
|
|
2577
2611
|
"required": false,
|
|
2578
2612
|
"type": "string",
|
|
2579
2613
|
"in": "body"
|
|
2580
2614
|
}, {
|
|
2581
|
-
"name": "
|
|
2582
|
-
"description": "
|
|
2615
|
+
"name": "filename",
|
|
2616
|
+
"description": "",
|
|
2583
2617
|
"required": false,
|
|
2584
2618
|
"type": "string",
|
|
2585
2619
|
"in": "body"
|
|
2586
2620
|
}, {
|
|
2587
|
-
"name": "
|
|
2588
|
-
"description": "
|
|
2621
|
+
"name": "title",
|
|
2622
|
+
"description": "Document title",
|
|
2589
2623
|
"required": false,
|
|
2590
2624
|
"type": "string",
|
|
2591
2625
|
"in": "body"
|
|
2592
2626
|
}, {
|
|
2593
|
-
"name": "
|
|
2594
|
-
"description": "",
|
|
2627
|
+
"name": "metadata",
|
|
2628
|
+
"description": "Arbitrary metadata object. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.",
|
|
2595
2629
|
"required": false,
|
|
2596
|
-
"type": "
|
|
2630
|
+
"type": "object",
|
|
2597
2631
|
"in": "body"
|
|
2598
2632
|
}, {
|
|
2599
|
-
"name": "
|
|
2600
|
-
"description": "
|
|
2633
|
+
"name": "tags",
|
|
2634
|
+
"description": "Key-value tags",
|
|
2601
2635
|
"required": false,
|
|
2602
2636
|
"type": "object",
|
|
2603
2637
|
"in": "body"
|
|
2604
2638
|
}, {
|
|
2605
|
-
"name": "
|
|
2606
|
-
"description": "",
|
|
2639
|
+
"name": "chunk_strategy",
|
|
2640
|
+
"description": "How to split the content into embeddable chunks. `whole` (default) stores the content as a single chunk; `size` splits into fixed-size character windows with overlap. `page` is equivalent to `whole` for plain text.",
|
|
2607
2641
|
"required": false,
|
|
2608
|
-
"type": "
|
|
2642
|
+
"type": "string",
|
|
2609
2643
|
"in": "body"
|
|
2610
2644
|
}, {
|
|
2611
|
-
"name": "
|
|
2612
|
-
"description": "",
|
|
2645
|
+
"name": "chunk_size",
|
|
2646
|
+
"description": "Window size in characters when `chunk_strategy=size`. Defaults to 1000.",
|
|
2613
2647
|
"required": false,
|
|
2614
|
-
"type": "
|
|
2648
|
+
"type": "integer",
|
|
2649
|
+
"in": "body"
|
|
2650
|
+
}, {
|
|
2651
|
+
"name": "chunk_overlap",
|
|
2652
|
+
"description": "Overlap in characters between consecutive windows when `chunk_strategy=size`. Defaults to 200.",
|
|
2653
|
+
"required": false,
|
|
2654
|
+
"type": "integer",
|
|
2615
2655
|
"in": "body"
|
|
2616
2656
|
}]
|
|
2617
2657
|
},
|
|
2618
|
-
"
|
|
2619
|
-
serviceClass: "
|
|
2620
|
-
operationId: "
|
|
2621
|
-
description: "
|
|
2622
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2623
|
-
httpMethod: "
|
|
2624
|
-
pathParams: [
|
|
2625
|
-
queryParams: [],
|
|
2658
|
+
"ingest-document": {
|
|
2659
|
+
serviceClass: "Documents",
|
|
2660
|
+
operationId: "ingestDocument",
|
|
2661
|
+
description: "Parses an already-uploaded file and creates one Document split into one or more embedded chunks. The source format is detected from the file's content type: PDFs are parsed page-by-page; `text/plain` and `text/markdown` files are read as a single source. How the source is chunked is controlled by `chunk_strategy`. A file can only back one Document — a second call with the same `file_id` returns `409 FILE_ALREADY_INGESTED`. To re-process an already-ingested file (e.g. with a different `chunk_strategy`), use `POST /documents/{document_id}/ingest`; to ingest the same source under a different path, upload a new copy of the file first.",
|
|
2662
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2663
|
+
httpMethod: "post",
|
|
2664
|
+
pathParams: [],
|
|
2665
|
+
queryParams: ["wait"],
|
|
2626
2666
|
flags: [{
|
|
2627
|
-
"name": "
|
|
2628
|
-
"description": "
|
|
2667
|
+
"name": "wait",
|
|
2668
|
+
"description": "When omitted or `false` (default), processing runs in the background and `202 Accepted` is returned immediately with `status=pending`. Pass `true` to block until processing completes and receive `201 Created` with `status=ready`.",
|
|
2669
|
+
"required": false,
|
|
2670
|
+
"type": "boolean",
|
|
2671
|
+
"in": "query"
|
|
2672
|
+
}, {
|
|
2673
|
+
"name": "file_id",
|
|
2674
|
+
"description": "ID of the uploaded file. Must be one of application/pdf, text/plain, text/markdown.",
|
|
2629
2675
|
"required": true,
|
|
2630
2676
|
"type": "string",
|
|
2631
|
-
"in": "
|
|
2677
|
+
"in": "body"
|
|
2678
|
+
}, {
|
|
2679
|
+
"name": "project_id",
|
|
2680
|
+
"description": "Project ID. Required for JWT auth; omit when using a project key.",
|
|
2681
|
+
"required": false,
|
|
2682
|
+
"type": "string",
|
|
2683
|
+
"in": "body"
|
|
2684
|
+
}, {
|
|
2685
|
+
"name": "path_prefix",
|
|
2686
|
+
"description": "Path prefix under which to store the document (e.g. /docs/). The filename is appended automatically.",
|
|
2687
|
+
"required": false,
|
|
2688
|
+
"type": "string",
|
|
2689
|
+
"in": "body"
|
|
2690
|
+
}, {
|
|
2691
|
+
"name": "tags",
|
|
2692
|
+
"description": "Key-value tags to attach to the document.",
|
|
2693
|
+
"required": false,
|
|
2694
|
+
"type": "object",
|
|
2695
|
+
"in": "body"
|
|
2696
|
+
}, {
|
|
2697
|
+
"name": "chunk_strategy",
|
|
2698
|
+
"description": "How to split the source into chunks. `page` (default) creates one chunk per non-empty page (PDF); for non-paged sources it yields a single chunk. `whole` joins everything into one chunk. `size` splits into fixed-size character windows with overlap.",
|
|
2699
|
+
"required": false,
|
|
2700
|
+
"type": "string",
|
|
2701
|
+
"in": "body"
|
|
2702
|
+
}, {
|
|
2703
|
+
"name": "chunk_size",
|
|
2704
|
+
"description": "Window size in characters when `chunk_strategy=size`. Defaults to 1000.",
|
|
2705
|
+
"required": false,
|
|
2706
|
+
"type": "integer",
|
|
2707
|
+
"in": "body"
|
|
2708
|
+
}, {
|
|
2709
|
+
"name": "chunk_overlap",
|
|
2710
|
+
"description": "Overlap in characters between consecutive windows when `chunk_strategy=size`. Defaults to 200.",
|
|
2711
|
+
"required": false,
|
|
2712
|
+
"type": "integer",
|
|
2713
|
+
"in": "body"
|
|
2632
2714
|
}]
|
|
2633
2715
|
},
|
|
2634
|
-
"get-
|
|
2635
|
-
serviceClass: "
|
|
2636
|
-
operationId: "
|
|
2637
|
-
description: "Returns a
|
|
2638
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2716
|
+
"get-document": {
|
|
2717
|
+
serviceClass: "Documents",
|
|
2718
|
+
operationId: "getDocument",
|
|
2719
|
+
description: "Returns a document with its text content",
|
|
2720
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2639
2721
|
httpMethod: "get",
|
|
2640
|
-
pathParams: ["
|
|
2722
|
+
pathParams: ["document_id"],
|
|
2641
2723
|
queryParams: [],
|
|
2642
2724
|
flags: [{
|
|
2643
|
-
"name": "
|
|
2644
|
-
"description": "
|
|
2725
|
+
"name": "document_id",
|
|
2726
|
+
"description": "Document ID",
|
|
2645
2727
|
"required": true,
|
|
2646
2728
|
"type": "string",
|
|
2647
2729
|
"in": "path"
|
|
2648
2730
|
}]
|
|
2649
2731
|
},
|
|
2650
|
-
"update-
|
|
2651
|
-
serviceClass: "
|
|
2652
|
-
operationId: "
|
|
2653
|
-
description: "Updates
|
|
2654
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2732
|
+
"update-document": {
|
|
2733
|
+
serviceClass: "Documents",
|
|
2734
|
+
operationId: "updateDocument",
|
|
2735
|
+
description: "Updates document content, title, path, metadata, or tags. Supplying `path` moves the document to a new logical path within the project.",
|
|
2736
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2655
2737
|
httpMethod: "patch",
|
|
2656
|
-
pathParams: ["
|
|
2738
|
+
pathParams: ["document_id"],
|
|
2657
2739
|
queryParams: [],
|
|
2658
2740
|
flags: [{
|
|
2659
|
-
"name": "
|
|
2660
|
-
"description": "
|
|
2741
|
+
"name": "document_id",
|
|
2742
|
+
"description": "Document ID",
|
|
2661
2743
|
"required": true,
|
|
2662
2744
|
"type": "string",
|
|
2663
2745
|
"in": "path"
|
|
2664
2746
|
}, {
|
|
2665
|
-
"name": "
|
|
2666
|
-
"description": "",
|
|
2667
|
-
"required": false,
|
|
2668
|
-
"type": "string",
|
|
2669
|
-
"in": "body"
|
|
2670
|
-
}, {
|
|
2671
|
-
"name": "description",
|
|
2672
|
-
"description": "",
|
|
2747
|
+
"name": "content",
|
|
2748
|
+
"description": "New text content",
|
|
2673
2749
|
"required": false,
|
|
2674
2750
|
"type": "string",
|
|
2675
2751
|
"in": "body"
|
|
2676
2752
|
}, {
|
|
2677
|
-
"name": "
|
|
2678
|
-
"description": "
|
|
2753
|
+
"name": "title",
|
|
2754
|
+
"description": "New title",
|
|
2679
2755
|
"required": false,
|
|
2680
2756
|
"type": "string",
|
|
2681
2757
|
"in": "body"
|
|
2682
2758
|
}, {
|
|
2683
|
-
"name": "
|
|
2684
|
-
"description": "",
|
|
2759
|
+
"name": "path",
|
|
2760
|
+
"description": "Logical path within the project (e.g. /reports/q1.txt). Pass null to clear.",
|
|
2685
2761
|
"required": false,
|
|
2686
2762
|
"type": "string",
|
|
2687
2763
|
"in": "body"
|
|
2688
2764
|
}, {
|
|
2689
|
-
"name": "
|
|
2690
|
-
"description": "",
|
|
2691
|
-
"required": false,
|
|
2692
|
-
"type": "integer",
|
|
2693
|
-
"in": "body"
|
|
2694
|
-
}, {
|
|
2695
|
-
"name": "synthesis",
|
|
2696
|
-
"description": "Override for the final synthesis pass that weighs the deliberation into a single outcome.",
|
|
2765
|
+
"name": "metadata",
|
|
2766
|
+
"description": "Arbitrary metadata object. Unlike other body fields, keys are stored and returned verbatim in the casing supplied — they are not converted between snake_case and camelCase.",
|
|
2697
2767
|
"required": false,
|
|
2698
2768
|
"type": "object",
|
|
2699
2769
|
"in": "body"
|
|
2700
2770
|
}, {
|
|
2701
2771
|
"name": "tags",
|
|
2702
|
-
"description": "",
|
|
2772
|
+
"description": "Key-value tags",
|
|
2703
2773
|
"required": false,
|
|
2704
2774
|
"type": "object",
|
|
2705
2775
|
"in": "body"
|
|
2706
|
-
}, {
|
|
2707
|
-
"name": "participants",
|
|
2708
|
-
"description": "",
|
|
2709
|
-
"required": false,
|
|
2710
|
-
"type": "array",
|
|
2711
|
-
"in": "body"
|
|
2712
2776
|
}]
|
|
2713
2777
|
},
|
|
2714
|
-
"delete-
|
|
2715
|
-
serviceClass: "
|
|
2716
|
-
operationId: "
|
|
2717
|
-
description: "Deletes a
|
|
2718
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2778
|
+
"delete-document": {
|
|
2779
|
+
serviceClass: "Documents",
|
|
2780
|
+
operationId: "deleteDocument",
|
|
2781
|
+
description: "Deletes a document and its underlying file",
|
|
2782
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2719
2783
|
httpMethod: "delete",
|
|
2720
|
-
pathParams: ["
|
|
2784
|
+
pathParams: ["document_id"],
|
|
2721
2785
|
queryParams: [],
|
|
2722
2786
|
flags: [{
|
|
2723
|
-
"name": "
|
|
2724
|
-
"description": "
|
|
2787
|
+
"name": "document_id",
|
|
2788
|
+
"description": "Document ID",
|
|
2725
2789
|
"required": true,
|
|
2726
2790
|
"type": "string",
|
|
2727
2791
|
"in": "path"
|
|
2728
2792
|
}]
|
|
2729
2793
|
},
|
|
2730
|
-
"
|
|
2731
|
-
serviceClass: "
|
|
2732
|
-
operationId: "
|
|
2733
|
-
description: "Returns
|
|
2734
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2794
|
+
"get-document-status": {
|
|
2795
|
+
serviceClass: "Documents",
|
|
2796
|
+
operationId: "getDocumentStatus",
|
|
2797
|
+
description: "Returns a lightweight ingestion status payload for polling — `status`, `chunk_count`, `total_pages`, and (when failed) `error`. Unlike `GET /documents/{document_id}`, it never returns the assembled chunk content, so it is cheap to poll on large documents. A document whose ingestion has stalled (no progress past the configured timeout) is transitioned to `failed` with `error=INGESTION_TIMEOUT` on read.",
|
|
2798
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2735
2799
|
httpMethod: "get",
|
|
2736
|
-
pathParams: ["
|
|
2737
|
-
queryParams: [
|
|
2800
|
+
pathParams: ["document_id"],
|
|
2801
|
+
queryParams: [],
|
|
2802
|
+
flags: [{
|
|
2803
|
+
"name": "document_id",
|
|
2804
|
+
"description": "Document ID",
|
|
2805
|
+
"required": true,
|
|
2806
|
+
"type": "string",
|
|
2807
|
+
"in": "path"
|
|
2808
|
+
}]
|
|
2809
|
+
},
|
|
2810
|
+
"reingest-document": {
|
|
2811
|
+
serviceClass: "Documents",
|
|
2812
|
+
operationId: "reingestDocument",
|
|
2813
|
+
description: "Re-runs ingestion for an existing document against its already-stored source file. Existing chunks are discarded and the document is reset to `status=pending` before re-processing. Use this to recover a document stuck in `processing`/`failed` or to re-chunk with a different strategy without re-uploading the file. Background by default (`202`); pass `?wait=true` to run synchronously (`201`).",
|
|
2814
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2815
|
+
httpMethod: "post",
|
|
2816
|
+
pathParams: ["document_id"],
|
|
2817
|
+
queryParams: ["wait"],
|
|
2738
2818
|
flags: [{
|
|
2739
|
-
"name": "
|
|
2740
|
-
"description": "
|
|
2819
|
+
"name": "document_id",
|
|
2820
|
+
"description": "Document ID",
|
|
2741
2821
|
"required": true,
|
|
2742
2822
|
"type": "string",
|
|
2743
2823
|
"in": "path"
|
|
2744
2824
|
}, {
|
|
2745
|
-
"name": "
|
|
2746
|
-
"description": "",
|
|
2825
|
+
"name": "wait",
|
|
2826
|
+
"description": "When omitted or `false` (default), processing runs in the background and `202 Accepted` is returned immediately with `status=pending`. Pass `true` to block until processing completes and receive `201 Created` with `status=ready`.",
|
|
2747
2827
|
"required": false,
|
|
2748
|
-
"type": "
|
|
2828
|
+
"type": "boolean",
|
|
2749
2829
|
"in": "query"
|
|
2750
2830
|
}, {
|
|
2751
|
-
"name": "
|
|
2752
|
-
"description": "",
|
|
2831
|
+
"name": "chunk_strategy",
|
|
2832
|
+
"description": "How to split the source into chunks. Defaults to `page`.",
|
|
2833
|
+
"required": false,
|
|
2834
|
+
"type": "string",
|
|
2835
|
+
"in": "body"
|
|
2836
|
+
}, {
|
|
2837
|
+
"name": "chunk_size",
|
|
2838
|
+
"description": "Window size in characters when `chunk_strategy=size`. Defaults to 1000.",
|
|
2753
2839
|
"required": false,
|
|
2754
2840
|
"type": "integer",
|
|
2755
|
-
"in": "
|
|
2841
|
+
"in": "body"
|
|
2842
|
+
}, {
|
|
2843
|
+
"name": "chunk_overlap",
|
|
2844
|
+
"description": "Overlap in characters between consecutive windows when `chunk_strategy=size`. Defaults to 200.",
|
|
2845
|
+
"required": false,
|
|
2846
|
+
"type": "integer",
|
|
2847
|
+
"in": "body"
|
|
2756
2848
|
}]
|
|
2757
2849
|
},
|
|
2758
|
-
"
|
|
2759
|
-
serviceClass: "
|
|
2760
|
-
operationId: "
|
|
2761
|
-
description: "
|
|
2762
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2850
|
+
"complete-ingestion-callback": {
|
|
2851
|
+
serviceClass: "Documents",
|
|
2852
|
+
operationId: "completeIngestionCallback",
|
|
2853
|
+
description: "Token-authed callback for a tool converter that deferred conversion by returning `{ \"status\": \"pending\" }` (see the Ingestion Rules module docs). Not IAM-gated — the external converter is not a SOAT principal, so it authenticates with the single-use token minted for this document and ingestion attempt (delivered as `callback.token` / embedded in `callback.url` in the original converter invocation). Accepted only while the document is still awaiting that exact attempt; rejected with `409` if the attempt already completed, timed out, or was superseded by a re-ingest.",
|
|
2854
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2763
2855
|
httpMethod: "post",
|
|
2764
|
-
pathParams: ["
|
|
2765
|
-
queryParams: [],
|
|
2856
|
+
pathParams: ["document_id"],
|
|
2857
|
+
queryParams: ["token"],
|
|
2766
2858
|
flags: [{
|
|
2767
|
-
"name": "
|
|
2768
|
-
"description": "
|
|
2859
|
+
"name": "document_id",
|
|
2860
|
+
"description": "Document ID",
|
|
2769
2861
|
"required": true,
|
|
2770
2862
|
"type": "string",
|
|
2771
2863
|
"in": "path"
|
|
2772
2864
|
}, {
|
|
2773
|
-
"name": "
|
|
2774
|
-
"description": "
|
|
2865
|
+
"name": "token",
|
|
2866
|
+
"description": "Single-use signed token from the original `callback.token`",
|
|
2775
2867
|
"required": true,
|
|
2776
2868
|
"type": "string",
|
|
2869
|
+
"in": "query"
|
|
2870
|
+
}, {
|
|
2871
|
+
"name": "text",
|
|
2872
|
+
"description": "",
|
|
2873
|
+
"required": false,
|
|
2874
|
+
"type": "string",
|
|
2875
|
+
"in": "body"
|
|
2876
|
+
}, {
|
|
2877
|
+
"name": "pages",
|
|
2878
|
+
"description": "",
|
|
2879
|
+
"required": false,
|
|
2880
|
+
"type": "array",
|
|
2777
2881
|
"in": "body"
|
|
2778
2882
|
}]
|
|
2779
2883
|
},
|
|
2780
|
-
"
|
|
2884
|
+
"get-document-tags": {
|
|
2781
2885
|
serviceClass: "Documents",
|
|
2782
|
-
operationId: "
|
|
2783
|
-
description: "Returns all
|
|
2886
|
+
operationId: "getDocumentTags",
|
|
2887
|
+
description: "Returns all tags attached to the document",
|
|
2888
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2889
|
+
httpMethod: "get",
|
|
2890
|
+
pathParams: ["document_id"],
|
|
2891
|
+
queryParams: [],
|
|
2892
|
+
flags: [{
|
|
2893
|
+
"name": "document_id",
|
|
2894
|
+
"description": "Document ID",
|
|
2895
|
+
"required": true,
|
|
2896
|
+
"type": "string",
|
|
2897
|
+
"in": "path"
|
|
2898
|
+
}]
|
|
2899
|
+
},
|
|
2900
|
+
"replace-document-tags": {
|
|
2901
|
+
serviceClass: "Documents",
|
|
2902
|
+
operationId: "replaceDocumentTags",
|
|
2903
|
+
description: "Replaces all tags on the document with the provided tags (not merged)",
|
|
2904
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2905
|
+
httpMethod: "put",
|
|
2906
|
+
pathParams: ["document_id"],
|
|
2907
|
+
queryParams: [],
|
|
2908
|
+
flags: [{
|
|
2909
|
+
"name": "document_id",
|
|
2910
|
+
"description": "Document ID",
|
|
2911
|
+
"required": true,
|
|
2912
|
+
"type": "string",
|
|
2913
|
+
"in": "path"
|
|
2914
|
+
}]
|
|
2915
|
+
},
|
|
2916
|
+
"merge-document-tags": {
|
|
2917
|
+
serviceClass: "Documents",
|
|
2918
|
+
operationId: "mergeDocumentTags",
|
|
2919
|
+
description: "Merges provided tags with existing tags (existing tags are preserved unless overridden)",
|
|
2784
2920
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
2921
|
+
httpMethod: "patch",
|
|
2922
|
+
pathParams: ["document_id"],
|
|
2923
|
+
queryParams: [],
|
|
2924
|
+
flags: [{
|
|
2925
|
+
"name": "document_id",
|
|
2926
|
+
"description": "Document ID",
|
|
2927
|
+
"required": true,
|
|
2928
|
+
"type": "string",
|
|
2929
|
+
"in": "path"
|
|
2930
|
+
}]
|
|
2931
|
+
},
|
|
2932
|
+
"create-embeddings": {
|
|
2933
|
+
serviceClass: "Embeddings",
|
|
2934
|
+
operationId: "createEmbeddings",
|
|
2935
|
+
description: "Generates embedding vectors for one or more text inputs using the server's configured embedding model. Provide `input` for a single text or `inputs` for a batch. At least one is required. Returns `embedding` when `input` is used, and `embeddings` when `inputs` is used.",
|
|
2936
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/embeddings",
|
|
2937
|
+
httpMethod: "post",
|
|
2938
|
+
pathParams: [],
|
|
2939
|
+
queryParams: [],
|
|
2940
|
+
flags: [{
|
|
2941
|
+
"name": "input",
|
|
2942
|
+
"description": "Single text to embed.",
|
|
2943
|
+
"required": false,
|
|
2944
|
+
"type": "string",
|
|
2945
|
+
"in": "body"
|
|
2946
|
+
}, {
|
|
2947
|
+
"name": "inputs",
|
|
2948
|
+
"description": "Batch of texts to embed.",
|
|
2949
|
+
"required": false,
|
|
2950
|
+
"type": "array",
|
|
2951
|
+
"in": "body"
|
|
2952
|
+
}]
|
|
2953
|
+
},
|
|
2954
|
+
"list-datasets": {
|
|
2955
|
+
serviceClass: "Evaluations",
|
|
2956
|
+
operationId: "listDatasets",
|
|
2957
|
+
description: "Returns the datasets defined in a project",
|
|
2958
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
2785
2959
|
httpMethod: "get",
|
|
2786
2960
|
pathParams: [],
|
|
2787
2961
|
queryParams: ["project_id", "limit", "offset"],
|
|
2788
2962
|
flags: [{
|
|
2789
2963
|
"name": "project_id",
|
|
2790
|
-
"description": "Project ID (
|
|
2964
|
+
"description": "Project ID (required if not using project key auth)",
|
|
2791
2965
|
"required": false,
|
|
2792
2966
|
"type": "string",
|
|
2793
2967
|
"in": "query"
|
|
@@ -2805,370 +2979,508 @@ var routes = {
|
|
|
2805
2979
|
"in": "query"
|
|
2806
2980
|
}]
|
|
2807
2981
|
},
|
|
2808
|
-
"create-
|
|
2809
|
-
serviceClass: "
|
|
2810
|
-
operationId: "
|
|
2811
|
-
description: "Creates a
|
|
2812
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2982
|
+
"create-dataset": {
|
|
2983
|
+
serviceClass: "Evaluations",
|
|
2984
|
+
operationId: "createDataset",
|
|
2985
|
+
description: "Creates a project-scoped dataset — a named collection of test cases an eval runs an agent against. Names are unique per project. Datasets are operator-owned **fixtures**. The platform's content purge never deletes or mutates a dataset item, so erasing a generation cannot silently stop a test suite from being runnable.",
|
|
2986
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
2813
2987
|
httpMethod: "post",
|
|
2814
2988
|
pathParams: [],
|
|
2815
2989
|
queryParams: [],
|
|
2816
2990
|
flags: [{
|
|
2817
2991
|
"name": "project_id",
|
|
2818
|
-
"description": "Project ID
|
|
2992
|
+
"description": "Project ID (required if not using project key auth)",
|
|
2819
2993
|
"required": false,
|
|
2820
2994
|
"type": "string",
|
|
2821
2995
|
"in": "body"
|
|
2822
2996
|
}, {
|
|
2823
|
-
"name": "
|
|
2824
|
-
"description": "",
|
|
2997
|
+
"name": "name",
|
|
2998
|
+
"description": "Unique name within the project",
|
|
2825
2999
|
"required": true,
|
|
2826
3000
|
"type": "string",
|
|
2827
3001
|
"in": "body"
|
|
2828
3002
|
}, {
|
|
2829
|
-
"name": "
|
|
2830
|
-
"description": "
|
|
3003
|
+
"name": "description",
|
|
3004
|
+
"description": "What this suite covers",
|
|
2831
3005
|
"required": false,
|
|
2832
3006
|
"type": "string",
|
|
2833
3007
|
"in": "body"
|
|
3008
|
+
}]
|
|
3009
|
+
},
|
|
3010
|
+
"get-dataset": {
|
|
3011
|
+
serviceClass: "Evaluations",
|
|
3012
|
+
operationId: "getDataset",
|
|
3013
|
+
description: "Returns a specific dataset",
|
|
3014
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3015
|
+
httpMethod: "get",
|
|
3016
|
+
pathParams: ["dataset_id"],
|
|
3017
|
+
queryParams: [],
|
|
3018
|
+
flags: [{
|
|
3019
|
+
"name": "dataset_id",
|
|
3020
|
+
"description": "Dataset ID",
|
|
3021
|
+
"required": true,
|
|
3022
|
+
"type": "string",
|
|
3023
|
+
"in": "path"
|
|
3024
|
+
}]
|
|
3025
|
+
},
|
|
3026
|
+
"update-dataset": {
|
|
3027
|
+
serviceClass: "Evaluations",
|
|
3028
|
+
operationId: "updateDataset",
|
|
3029
|
+
description: "Updates a dataset's name and/or description",
|
|
3030
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3031
|
+
httpMethod: "put",
|
|
3032
|
+
pathParams: ["dataset_id"],
|
|
3033
|
+
queryParams: [],
|
|
3034
|
+
flags: [{
|
|
3035
|
+
"name": "dataset_id",
|
|
3036
|
+
"description": "Dataset ID",
|
|
3037
|
+
"required": true,
|
|
3038
|
+
"type": "string",
|
|
3039
|
+
"in": "path"
|
|
2834
3040
|
}, {
|
|
2835
|
-
"name": "
|
|
3041
|
+
"name": "name",
|
|
2836
3042
|
"description": "",
|
|
2837
3043
|
"required": false,
|
|
2838
3044
|
"type": "string",
|
|
2839
3045
|
"in": "body"
|
|
2840
3046
|
}, {
|
|
2841
|
-
"name": "
|
|
2842
|
-
"description": "
|
|
3047
|
+
"name": "description",
|
|
3048
|
+
"description": "",
|
|
3049
|
+
"required": false,
|
|
3050
|
+
"type": "string",
|
|
3051
|
+
"in": "body"
|
|
3052
|
+
}]
|
|
3053
|
+
},
|
|
3054
|
+
"delete-dataset": {
|
|
3055
|
+
serviceClass: "Evaluations",
|
|
3056
|
+
operationId: "deleteDataset",
|
|
3057
|
+
description: "Deletes a dataset, its items, and every eval bound to it. Results of runs that already scored those items keep their frozen copies of the input and expected output.",
|
|
3058
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3059
|
+
httpMethod: "delete",
|
|
3060
|
+
pathParams: ["dataset_id"],
|
|
3061
|
+
queryParams: [],
|
|
3062
|
+
flags: [{
|
|
3063
|
+
"name": "dataset_id",
|
|
3064
|
+
"description": "Dataset ID",
|
|
3065
|
+
"required": true,
|
|
3066
|
+
"type": "string",
|
|
3067
|
+
"in": "path"
|
|
3068
|
+
}]
|
|
3069
|
+
},
|
|
3070
|
+
"list-dataset-items": {
|
|
3071
|
+
serviceClass: "Evaluations",
|
|
3072
|
+
operationId: "listDatasetItems",
|
|
3073
|
+
description: "Returns the test cases in a dataset, oldest first",
|
|
3074
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3075
|
+
httpMethod: "get",
|
|
3076
|
+
pathParams: ["dataset_id"],
|
|
3077
|
+
queryParams: ["limit", "offset"],
|
|
3078
|
+
flags: [{
|
|
3079
|
+
"name": "dataset_id",
|
|
3080
|
+
"description": "Dataset ID",
|
|
3081
|
+
"required": true,
|
|
3082
|
+
"type": "string",
|
|
3083
|
+
"in": "path"
|
|
3084
|
+
}, {
|
|
3085
|
+
"name": "limit",
|
|
3086
|
+
"description": "Maximum number of results to return",
|
|
3087
|
+
"required": false,
|
|
3088
|
+
"type": "integer",
|
|
3089
|
+
"in": "query"
|
|
3090
|
+
}, {
|
|
3091
|
+
"name": "offset",
|
|
3092
|
+
"description": "Number of results to skip",
|
|
3093
|
+
"required": false,
|
|
3094
|
+
"type": "integer",
|
|
3095
|
+
"in": "query"
|
|
3096
|
+
}]
|
|
3097
|
+
},
|
|
3098
|
+
"create-dataset-item": {
|
|
3099
|
+
serviceClass: "Evaluations",
|
|
3100
|
+
operationId: "createDatasetItem",
|
|
3101
|
+
description: "Adds one test case. `input` is replayed verbatim as the generation's messages, so it must be a non-empty array of `{ role, content }`.",
|
|
3102
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3103
|
+
httpMethod: "post",
|
|
3104
|
+
pathParams: ["dataset_id"],
|
|
3105
|
+
queryParams: [],
|
|
3106
|
+
flags: [{
|
|
3107
|
+
"name": "dataset_id",
|
|
3108
|
+
"description": "Dataset ID",
|
|
3109
|
+
"required": true,
|
|
3110
|
+
"type": "string",
|
|
3111
|
+
"in": "path"
|
|
3112
|
+
}, {
|
|
3113
|
+
"name": "input",
|
|
3114
|
+
"description": "Messages replayed verbatim as the generation's input",
|
|
3115
|
+
"required": true,
|
|
3116
|
+
"type": "array",
|
|
3117
|
+
"in": "body"
|
|
3118
|
+
}, {
|
|
3119
|
+
"name": "expected_output",
|
|
3120
|
+
"description": "Reference answer for exact_match / llm_judge scorers",
|
|
2843
3121
|
"required": false,
|
|
2844
3122
|
"type": "string",
|
|
2845
3123
|
"in": "body"
|
|
2846
3124
|
}, {
|
|
2847
3125
|
"name": "metadata",
|
|
2848
|
-
"description": "
|
|
3126
|
+
"description": "Free-form tags, opaque to the platform",
|
|
2849
3127
|
"required": false,
|
|
2850
3128
|
"type": "object",
|
|
2851
3129
|
"in": "body"
|
|
3130
|
+
}]
|
|
3131
|
+
},
|
|
3132
|
+
"update-dataset-item": {
|
|
3133
|
+
serviceClass: "Evaluations",
|
|
3134
|
+
operationId: "updateDatasetItem",
|
|
3135
|
+
description: "Updates a test case. Runs that already scored it are unaffected — each result carries its own frozen copy of the input and expected output.",
|
|
3136
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3137
|
+
httpMethod: "put",
|
|
3138
|
+
pathParams: ["dataset_id", "item_id"],
|
|
3139
|
+
queryParams: [],
|
|
3140
|
+
flags: [{
|
|
3141
|
+
"name": "dataset_id",
|
|
3142
|
+
"description": "Dataset ID",
|
|
3143
|
+
"required": true,
|
|
3144
|
+
"type": "string",
|
|
3145
|
+
"in": "path"
|
|
2852
3146
|
}, {
|
|
2853
|
-
"name": "
|
|
2854
|
-
"description": "
|
|
3147
|
+
"name": "item_id",
|
|
3148
|
+
"description": "Dataset item ID",
|
|
3149
|
+
"required": true,
|
|
3150
|
+
"type": "string",
|
|
3151
|
+
"in": "path"
|
|
3152
|
+
}, {
|
|
3153
|
+
"name": "input",
|
|
3154
|
+
"description": "Messages replayed verbatim as the generation's input",
|
|
3155
|
+
"required": false,
|
|
3156
|
+
"type": "array",
|
|
3157
|
+
"in": "body"
|
|
3158
|
+
}, {
|
|
3159
|
+
"name": "expected_output",
|
|
3160
|
+
"description": "",
|
|
3161
|
+
"required": false,
|
|
3162
|
+
"type": "string",
|
|
3163
|
+
"in": "body"
|
|
3164
|
+
}, {
|
|
3165
|
+
"name": "metadata",
|
|
3166
|
+
"description": "",
|
|
2855
3167
|
"required": false,
|
|
2856
3168
|
"type": "object",
|
|
2857
3169
|
"in": "body"
|
|
3170
|
+
}]
|
|
3171
|
+
},
|
|
3172
|
+
"delete-dataset-item": {
|
|
3173
|
+
serviceClass: "Evaluations",
|
|
3174
|
+
operationId: "deleteDatasetItem",
|
|
3175
|
+
description: "Deletes a test case. Results of runs that already scored it stay readable; their `dataset_item_id` becomes null.",
|
|
3176
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3177
|
+
httpMethod: "delete",
|
|
3178
|
+
pathParams: ["dataset_id", "item_id"],
|
|
3179
|
+
queryParams: [],
|
|
3180
|
+
flags: [{
|
|
3181
|
+
"name": "dataset_id",
|
|
3182
|
+
"description": "Dataset ID",
|
|
3183
|
+
"required": true,
|
|
3184
|
+
"type": "string",
|
|
3185
|
+
"in": "path"
|
|
2858
3186
|
}, {
|
|
2859
|
-
"name": "
|
|
2860
|
-
"description": "
|
|
3187
|
+
"name": "item_id",
|
|
3188
|
+
"description": "Dataset item ID",
|
|
3189
|
+
"required": true,
|
|
3190
|
+
"type": "string",
|
|
3191
|
+
"in": "path"
|
|
3192
|
+
}]
|
|
3193
|
+
},
|
|
3194
|
+
"list-evals": {
|
|
3195
|
+
serviceClass: "Evaluations",
|
|
3196
|
+
operationId: "listEvals",
|
|
3197
|
+
description: "Returns the evals defined in a project",
|
|
3198
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3199
|
+
httpMethod: "get",
|
|
3200
|
+
pathParams: [],
|
|
3201
|
+
queryParams: ["project_id", "limit", "offset"],
|
|
3202
|
+
flags: [{
|
|
3203
|
+
"name": "project_id",
|
|
3204
|
+
"description": "Project ID (required if not using project key auth)",
|
|
2861
3205
|
"required": false,
|
|
2862
3206
|
"type": "string",
|
|
2863
|
-
"in": "
|
|
3207
|
+
"in": "query"
|
|
2864
3208
|
}, {
|
|
2865
|
-
"name": "
|
|
2866
|
-
"description": "
|
|
3209
|
+
"name": "limit",
|
|
3210
|
+
"description": "Maximum number of results to return",
|
|
2867
3211
|
"required": false,
|
|
2868
3212
|
"type": "integer",
|
|
2869
|
-
"in": "
|
|
3213
|
+
"in": "query"
|
|
2870
3214
|
}, {
|
|
2871
|
-
"name": "
|
|
2872
|
-
"description": "
|
|
3215
|
+
"name": "offset",
|
|
3216
|
+
"description": "Number of results to skip",
|
|
2873
3217
|
"required": false,
|
|
2874
3218
|
"type": "integer",
|
|
2875
|
-
"in": "
|
|
3219
|
+
"in": "query"
|
|
2876
3220
|
}]
|
|
2877
3221
|
},
|
|
2878
|
-
"
|
|
2879
|
-
serviceClass: "
|
|
2880
|
-
operationId: "
|
|
2881
|
-
description: "
|
|
2882
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3222
|
+
"create-eval": {
|
|
3223
|
+
serviceClass: "Evaluations",
|
|
3224
|
+
operationId: "createEval",
|
|
3225
|
+
description: "Binds an agent under test to a dataset and a list of scorers. The agent and the dataset must belong to the same project as the eval; a cross-project reference is rejected with 400. Scorer config is frozen here rather than read from the agent at run time, so two runs of the same eval are always judged by the same criteria and their comparison measures the agent instead of the config drifting underneath it. Each scorer `type` may appear at most once.",
|
|
3226
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
2883
3227
|
httpMethod: "post",
|
|
2884
3228
|
pathParams: [],
|
|
2885
|
-
queryParams: [
|
|
3229
|
+
queryParams: [],
|
|
2886
3230
|
flags: [{
|
|
2887
|
-
"name": "async",
|
|
2888
|
-
"description": "When omitted or `true` (default), processing runs in the background and `202 Accepted` is returned immediately with `status=pending`. Pass `false` to run synchronously and receive `201 Created` with `status=ready`.",
|
|
2889
|
-
"required": false,
|
|
2890
|
-
"type": "boolean",
|
|
2891
|
-
"in": "query"
|
|
2892
|
-
}, {
|
|
2893
|
-
"name": "file_id",
|
|
2894
|
-
"description": "ID of the uploaded file. Must be one of application/pdf, text/plain, text/markdown.",
|
|
2895
|
-
"required": true,
|
|
2896
|
-
"type": "string",
|
|
2897
|
-
"in": "body"
|
|
2898
|
-
}, {
|
|
2899
3231
|
"name": "project_id",
|
|
2900
|
-
"description": "Project ID
|
|
3232
|
+
"description": "Project ID (required if not using project key auth)",
|
|
2901
3233
|
"required": false,
|
|
2902
3234
|
"type": "string",
|
|
2903
3235
|
"in": "body"
|
|
2904
3236
|
}, {
|
|
2905
|
-
"name": "
|
|
2906
|
-
"description": "
|
|
2907
|
-
"required":
|
|
3237
|
+
"name": "name",
|
|
3238
|
+
"description": "Unique name within the project",
|
|
3239
|
+
"required": true,
|
|
2908
3240
|
"type": "string",
|
|
2909
3241
|
"in": "body"
|
|
2910
3242
|
}, {
|
|
2911
|
-
"name": "
|
|
2912
|
-
"description": "
|
|
2913
|
-
"required":
|
|
2914
|
-
"type": "
|
|
3243
|
+
"name": "agent_id",
|
|
3244
|
+
"description": "The agent under test",
|
|
3245
|
+
"required": true,
|
|
3246
|
+
"type": "string",
|
|
2915
3247
|
"in": "body"
|
|
2916
3248
|
}, {
|
|
2917
|
-
"name": "
|
|
2918
|
-
"description": "
|
|
2919
|
-
"required":
|
|
3249
|
+
"name": "dataset_id",
|
|
3250
|
+
"description": "The dataset to run it against",
|
|
3251
|
+
"required": true,
|
|
2920
3252
|
"type": "string",
|
|
2921
3253
|
"in": "body"
|
|
2922
3254
|
}, {
|
|
2923
|
-
"name": "
|
|
2924
|
-
"description": "
|
|
2925
|
-
"required":
|
|
2926
|
-
"type": "
|
|
3255
|
+
"name": "scorers",
|
|
3256
|
+
"description": "Scorer configs, a discriminated union on `type`. Each type may appear at most once. Every scorer produces `{ score: 0–1, passed: boolean }`; binary scorers emit 0 or 1.\n\n`exact_match` compares the trimmed output text to `expected_output`. `contains` looks for `value` in the output text. `json_logic` evaluates `expression` over `{ input, output, object, expected, item.metadata }`, where `object` is the structured output (absent when the agent has no `output_schema`). `output_schema` validates the structured output against the scorer's own `schema`, falling back to the agent's; it requires the agent to carry an `output_schema`, because without one the platform emits no structured output and every item would score 0.\n\n`llm_judge` grades the output with a model completion, returning a continuous score plus its `reasoning`. Its `pass_threshold` is required: a continuous score says nothing about where \"good enough\" is, and a defaulted cutoff would silently decide the gate.",
|
|
3257
|
+
"required": true,
|
|
3258
|
+
"type": "array",
|
|
2927
3259
|
"in": "body"
|
|
2928
3260
|
}, {
|
|
2929
|
-
"name": "
|
|
2930
|
-
"description": "
|
|
3261
|
+
"name": "pass_threshold",
|
|
3262
|
+
"description": "0–1. The run passes iff its pass rate — passed items over non-errored items — is at least this. Null reports scores without gating on them.",
|
|
2931
3263
|
"required": false,
|
|
2932
|
-
"type": "
|
|
3264
|
+
"type": "number",
|
|
2933
3265
|
"in": "body"
|
|
2934
3266
|
}]
|
|
2935
3267
|
},
|
|
2936
|
-
"get-
|
|
2937
|
-
serviceClass: "
|
|
2938
|
-
operationId: "
|
|
2939
|
-
description: "Returns a
|
|
2940
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3268
|
+
"get-eval": {
|
|
3269
|
+
serviceClass: "Evaluations",
|
|
3270
|
+
operationId: "getEval",
|
|
3271
|
+
description: "Returns a specific eval",
|
|
3272
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
2941
3273
|
httpMethod: "get",
|
|
2942
|
-
pathParams: ["
|
|
3274
|
+
pathParams: ["eval_id"],
|
|
2943
3275
|
queryParams: [],
|
|
2944
3276
|
flags: [{
|
|
2945
|
-
"name": "
|
|
2946
|
-
"description": "
|
|
3277
|
+
"name": "eval_id",
|
|
3278
|
+
"description": "Eval ID",
|
|
2947
3279
|
"required": true,
|
|
2948
3280
|
"type": "string",
|
|
2949
3281
|
"in": "path"
|
|
2950
3282
|
}]
|
|
2951
3283
|
},
|
|
2952
|
-
"update-
|
|
2953
|
-
serviceClass: "
|
|
2954
|
-
operationId: "
|
|
2955
|
-
description: "Updates
|
|
2956
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
2957
|
-
httpMethod: "
|
|
2958
|
-
pathParams: ["
|
|
3284
|
+
"update-eval": {
|
|
3285
|
+
serviceClass: "Evaluations",
|
|
3286
|
+
operationId: "updateEval",
|
|
3287
|
+
description: "Updates an eval. Changing `agent_id` re-validates the scorers against the new agent, since an `output_schema` scorer that was legal against the old one may not be.",
|
|
3288
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3289
|
+
httpMethod: "put",
|
|
3290
|
+
pathParams: ["eval_id"],
|
|
2959
3291
|
queryParams: [],
|
|
2960
3292
|
flags: [{
|
|
2961
|
-
"name": "
|
|
2962
|
-
"description": "
|
|
3293
|
+
"name": "eval_id",
|
|
3294
|
+
"description": "Eval ID",
|
|
2963
3295
|
"required": true,
|
|
2964
3296
|
"type": "string",
|
|
2965
3297
|
"in": "path"
|
|
2966
3298
|
}, {
|
|
2967
|
-
"name": "
|
|
2968
|
-
"description": "
|
|
3299
|
+
"name": "name",
|
|
3300
|
+
"description": "",
|
|
2969
3301
|
"required": false,
|
|
2970
3302
|
"type": "string",
|
|
2971
3303
|
"in": "body"
|
|
2972
3304
|
}, {
|
|
2973
|
-
"name": "
|
|
2974
|
-
"description": "
|
|
3305
|
+
"name": "agent_id",
|
|
3306
|
+
"description": "",
|
|
2975
3307
|
"required": false,
|
|
2976
3308
|
"type": "string",
|
|
2977
3309
|
"in": "body"
|
|
2978
3310
|
}, {
|
|
2979
|
-
"name": "
|
|
2980
|
-
"description": "
|
|
3311
|
+
"name": "dataset_id",
|
|
3312
|
+
"description": "",
|
|
2981
3313
|
"required": false,
|
|
2982
3314
|
"type": "string",
|
|
2983
3315
|
"in": "body"
|
|
2984
3316
|
}, {
|
|
2985
|
-
"name": "
|
|
2986
|
-
"description": "
|
|
3317
|
+
"name": "scorers",
|
|
3318
|
+
"description": "Scorer configs, a discriminated union on `type`. Each type may appear at most once. Every scorer produces `{ score: 0–1, passed: boolean }`; binary scorers emit 0 or 1.\n\n`exact_match` compares the trimmed output text to `expected_output`. `contains` looks for `value` in the output text. `json_logic` evaluates `expression` over `{ input, output, object, expected, item.metadata }`, where `object` is the structured output (absent when the agent has no `output_schema`). `output_schema` validates the structured output against the scorer's own `schema`, falling back to the agent's; it requires the agent to carry an `output_schema`, because without one the platform emits no structured output and every item would score 0.\n\n`llm_judge` grades the output with a model completion, returning a continuous score plus its `reasoning`. Its `pass_threshold` is required: a continuous score says nothing about where \"good enough\" is, and a defaulted cutoff would silently decide the gate.",
|
|
2987
3319
|
"required": false,
|
|
2988
|
-
"type": "
|
|
3320
|
+
"type": "array",
|
|
2989
3321
|
"in": "body"
|
|
2990
3322
|
}, {
|
|
2991
|
-
"name": "
|
|
2992
|
-
"description": "
|
|
3323
|
+
"name": "pass_threshold",
|
|
3324
|
+
"description": "",
|
|
2993
3325
|
"required": false,
|
|
2994
|
-
"type": "
|
|
3326
|
+
"type": "number",
|
|
2995
3327
|
"in": "body"
|
|
2996
3328
|
}]
|
|
2997
3329
|
},
|
|
2998
|
-
"delete-
|
|
2999
|
-
serviceClass: "
|
|
3000
|
-
operationId: "
|
|
3001
|
-
description: "Deletes
|
|
3002
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3330
|
+
"delete-eval": {
|
|
3331
|
+
serviceClass: "Evaluations",
|
|
3332
|
+
operationId: "deleteEval",
|
|
3333
|
+
description: "Deletes an eval, its runs, and their results",
|
|
3334
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3003
3335
|
httpMethod: "delete",
|
|
3004
|
-
pathParams: ["
|
|
3336
|
+
pathParams: ["eval_id"],
|
|
3005
3337
|
queryParams: [],
|
|
3006
3338
|
flags: [{
|
|
3007
|
-
"name": "
|
|
3008
|
-
"description": "
|
|
3339
|
+
"name": "eval_id",
|
|
3340
|
+
"description": "Eval ID",
|
|
3009
3341
|
"required": true,
|
|
3010
3342
|
"type": "string",
|
|
3011
3343
|
"in": "path"
|
|
3012
3344
|
}]
|
|
3013
3345
|
},
|
|
3014
|
-
"
|
|
3015
|
-
serviceClass: "
|
|
3016
|
-
operationId: "
|
|
3017
|
-
description: "Returns
|
|
3018
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3346
|
+
"list-eval-runs": {
|
|
3347
|
+
serviceClass: "Evaluations",
|
|
3348
|
+
operationId: "listEvalRuns",
|
|
3349
|
+
description: "Returns an eval's runs, newest first",
|
|
3350
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3019
3351
|
httpMethod: "get",
|
|
3020
|
-
pathParams: ["
|
|
3021
|
-
queryParams: [],
|
|
3352
|
+
pathParams: ["eval_id"],
|
|
3353
|
+
queryParams: ["limit", "offset"],
|
|
3022
3354
|
flags: [{
|
|
3023
|
-
"name": "
|
|
3024
|
-
"description": "
|
|
3355
|
+
"name": "eval_id",
|
|
3356
|
+
"description": "Eval ID",
|
|
3025
3357
|
"required": true,
|
|
3026
3358
|
"type": "string",
|
|
3027
3359
|
"in": "path"
|
|
3360
|
+
}, {
|
|
3361
|
+
"name": "limit",
|
|
3362
|
+
"description": "Maximum number of results to return",
|
|
3363
|
+
"required": false,
|
|
3364
|
+
"type": "integer",
|
|
3365
|
+
"in": "query"
|
|
3366
|
+
}, {
|
|
3367
|
+
"name": "offset",
|
|
3368
|
+
"description": "Number of results to skip",
|
|
3369
|
+
"required": false,
|
|
3370
|
+
"type": "integer",
|
|
3371
|
+
"in": "query"
|
|
3028
3372
|
}]
|
|
3029
3373
|
},
|
|
3030
|
-
"
|
|
3031
|
-
serviceClass: "
|
|
3032
|
-
operationId: "
|
|
3033
|
-
description: "
|
|
3034
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3374
|
+
"start-eval-run": {
|
|
3375
|
+
serviceClass: "Evaluations",
|
|
3376
|
+
operationId: "startEvalRun",
|
|
3377
|
+
description: "Runs the eval against its dataset, creating one real agent generation per item and scoring the outputs. `wait: true` executes the run synchronously and returns it terminal, with its scores. The dataset is capped at 25 items for a synchronous run; a larger one is rejected with 400 rather than partially scored. `wait: false` (the default) enqueues one task per item and returns immediately with `status: \"queued\"`. A worker executes the items and the run settles itself; poll `GET /evals/{eval_id}/runs/{eval_run_id}` for the terminal status, or subscribe to the `eval_run.completed` webhook. There is no item cap on a queued run. The whole run is pinned to **one** agent version, stamped on `agent_version`: pass one explicitly to evaluate a canary before promoting it, or omit it to use the active release's stable version (or the live draft when no release is in effect). Without the pin, release assignment would bucket each item independently and blend two configs into a single score. With `baseline_run_id`, the finished run's `aggregate_scores.baseline` carries per-scorer deltas against that run, computed over the items present and scorable in **both** runs, with the divergence counted. A delta over a shifted dataset is therefore never presented as a clean comparison.",
|
|
3378
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3035
3379
|
httpMethod: "post",
|
|
3036
|
-
pathParams: ["
|
|
3037
|
-
queryParams: [
|
|
3380
|
+
pathParams: ["eval_id"],
|
|
3381
|
+
queryParams: [],
|
|
3038
3382
|
flags: [{
|
|
3039
|
-
"name": "
|
|
3040
|
-
"description": "
|
|
3383
|
+
"name": "eval_id",
|
|
3384
|
+
"description": "Eval ID",
|
|
3041
3385
|
"required": true,
|
|
3042
3386
|
"type": "string",
|
|
3043
3387
|
"in": "path"
|
|
3044
3388
|
}, {
|
|
3045
|
-
"name": "
|
|
3046
|
-
"description": "
|
|
3389
|
+
"name": "wait",
|
|
3390
|
+
"description": "True runs the eval synchronously (25-item cap) and returns a terminal run with its scores. False — the default — enqueues the items and returns a `queued` run immediately.",
|
|
3047
3391
|
"required": false,
|
|
3048
3392
|
"type": "boolean",
|
|
3049
|
-
"in": "query"
|
|
3050
|
-
}, {
|
|
3051
|
-
"name": "chunk_strategy",
|
|
3052
|
-
"description": "How to split the source into chunks. Defaults to `page`.",
|
|
3053
|
-
"required": false,
|
|
3054
|
-
"type": "string",
|
|
3055
3393
|
"in": "body"
|
|
3056
3394
|
}, {
|
|
3057
|
-
"name": "
|
|
3058
|
-
"description": "
|
|
3395
|
+
"name": "agent_version",
|
|
3396
|
+
"description": "An archived agent version to evaluate. Defaults to the active release's stable version, or the live draft version when no release is in effect.",
|
|
3059
3397
|
"required": false,
|
|
3060
3398
|
"type": "integer",
|
|
3061
3399
|
"in": "body"
|
|
3062
3400
|
}, {
|
|
3063
|
-
"name": "
|
|
3064
|
-
"description": "
|
|
3401
|
+
"name": "baseline_run_id",
|
|
3402
|
+
"description": "A terminal run of the same eval to compare against. The finished run's `aggregate_scores.baseline` reports per-scorer deltas over the item intersection. A run of a different eval is rejected with 400.",
|
|
3065
3403
|
"required": false,
|
|
3066
|
-
"type": "
|
|
3404
|
+
"type": "string",
|
|
3067
3405
|
"in": "body"
|
|
3068
3406
|
}]
|
|
3069
3407
|
},
|
|
3070
|
-
"
|
|
3071
|
-
serviceClass: "
|
|
3072
|
-
operationId: "
|
|
3073
|
-
description: "
|
|
3074
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3075
|
-
httpMethod: "
|
|
3076
|
-
pathParams: ["
|
|
3077
|
-
queryParams: [
|
|
3408
|
+
"get-eval-run": {
|
|
3409
|
+
serviceClass: "Evaluations",
|
|
3410
|
+
operationId: "getEvalRun",
|
|
3411
|
+
description: "Returns a run's status, counts, and aggregate scores",
|
|
3412
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3413
|
+
httpMethod: "get",
|
|
3414
|
+
pathParams: ["eval_id", "eval_run_id"],
|
|
3415
|
+
queryParams: [],
|
|
3078
3416
|
flags: [{
|
|
3079
|
-
"name": "
|
|
3080
|
-
"description": "
|
|
3417
|
+
"name": "eval_id",
|
|
3418
|
+
"description": "Eval ID",
|
|
3081
3419
|
"required": true,
|
|
3082
3420
|
"type": "string",
|
|
3083
3421
|
"in": "path"
|
|
3084
3422
|
}, {
|
|
3085
|
-
"name": "
|
|
3086
|
-
"description": "
|
|
3423
|
+
"name": "eval_run_id",
|
|
3424
|
+
"description": "Eval run ID",
|
|
3087
3425
|
"required": true,
|
|
3088
3426
|
"type": "string",
|
|
3089
|
-
"in": "
|
|
3090
|
-
}, {
|
|
3091
|
-
"name": "text",
|
|
3092
|
-
"description": "",
|
|
3093
|
-
"required": false,
|
|
3094
|
-
"type": "string",
|
|
3095
|
-
"in": "body"
|
|
3096
|
-
}, {
|
|
3097
|
-
"name": "pages",
|
|
3098
|
-
"description": "",
|
|
3099
|
-
"required": false,
|
|
3100
|
-
"type": "array",
|
|
3101
|
-
"in": "body"
|
|
3427
|
+
"in": "path"
|
|
3102
3428
|
}]
|
|
3103
3429
|
},
|
|
3104
|
-
"
|
|
3105
|
-
serviceClass: "
|
|
3106
|
-
operationId: "
|
|
3107
|
-
description: "Returns
|
|
3108
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3430
|
+
"list-eval-results": {
|
|
3431
|
+
serviceClass: "Evaluations",
|
|
3432
|
+
operationId: "listEvalResults",
|
|
3433
|
+
description: "Returns the per-item results of a run, oldest first",
|
|
3434
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3109
3435
|
httpMethod: "get",
|
|
3110
|
-
pathParams: ["
|
|
3111
|
-
queryParams: [],
|
|
3436
|
+
pathParams: ["eval_id", "eval_run_id"],
|
|
3437
|
+
queryParams: ["limit", "offset"],
|
|
3112
3438
|
flags: [{
|
|
3113
|
-
"name": "
|
|
3114
|
-
"description": "
|
|
3439
|
+
"name": "eval_id",
|
|
3440
|
+
"description": "Eval ID",
|
|
3115
3441
|
"required": true,
|
|
3116
3442
|
"type": "string",
|
|
3117
3443
|
"in": "path"
|
|
3118
|
-
}
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
serviceClass: "Documents",
|
|
3122
|
-
operationId: "replaceDocumentTags",
|
|
3123
|
-
description: "Replaces all tags on the document with the provided tags (not merged)",
|
|
3124
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
|
|
3125
|
-
httpMethod: "put",
|
|
3126
|
-
pathParams: ["document_id"],
|
|
3127
|
-
queryParams: [],
|
|
3128
|
-
flags: [{
|
|
3129
|
-
"name": "document_id",
|
|
3130
|
-
"description": "Document ID",
|
|
3444
|
+
}, {
|
|
3445
|
+
"name": "eval_run_id",
|
|
3446
|
+
"description": "Eval run ID",
|
|
3131
3447
|
"required": true,
|
|
3132
3448
|
"type": "string",
|
|
3133
3449
|
"in": "path"
|
|
3450
|
+
}, {
|
|
3451
|
+
"name": "limit",
|
|
3452
|
+
"description": "Maximum number of results to return",
|
|
3453
|
+
"required": false,
|
|
3454
|
+
"type": "integer",
|
|
3455
|
+
"in": "query"
|
|
3456
|
+
}, {
|
|
3457
|
+
"name": "offset",
|
|
3458
|
+
"description": "Number of results to skip",
|
|
3459
|
+
"required": false,
|
|
3460
|
+
"type": "integer",
|
|
3461
|
+
"in": "query"
|
|
3134
3462
|
}]
|
|
3135
3463
|
},
|
|
3136
|
-
"
|
|
3137
|
-
serviceClass: "
|
|
3138
|
-
operationId: "
|
|
3139
|
-
description: "
|
|
3140
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/
|
|
3141
|
-
httpMethod: "
|
|
3142
|
-
pathParams: ["
|
|
3464
|
+
"cancel-eval-run": {
|
|
3465
|
+
serviceClass: "Evaluations",
|
|
3466
|
+
operationId: "cancelEvalRun",
|
|
3467
|
+
description: "Cancels a queued or running run: its outstanding item tasks are dropped so it stops consuming provider budget, and the run settles as `canceled`. Results already written are kept — they are real measurements of generations that were really paid for — and `completed_count` / `errored_count` report what ran. `aggregate_scores` is deliberately left null: a partial roll-up in the same field a completed run uses would read as a whole-dataset verdict. A run that has already finished is rejected with 400.",
|
|
3468
|
+
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/evaluations",
|
|
3469
|
+
httpMethod: "post",
|
|
3470
|
+
pathParams: ["eval_id", "eval_run_id"],
|
|
3143
3471
|
queryParams: [],
|
|
3144
3472
|
flags: [{
|
|
3145
|
-
"name": "
|
|
3146
|
-
"description": "
|
|
3473
|
+
"name": "eval_id",
|
|
3474
|
+
"description": "Eval ID",
|
|
3147
3475
|
"required": true,
|
|
3148
3476
|
"type": "string",
|
|
3149
3477
|
"in": "path"
|
|
3150
|
-
}]
|
|
3151
|
-
},
|
|
3152
|
-
"create-embeddings": {
|
|
3153
|
-
serviceClass: "Embeddings",
|
|
3154
|
-
operationId: "createEmbeddings",
|
|
3155
|
-
description: "Generates embedding vectors for one or more text inputs using the server's configured embedding model. Provide `input` for a single text or `inputs` for a batch. At least one is required. Returns `embedding` when `input` is used, and `embeddings` when `inputs` is used.",
|
|
3156
|
-
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/embeddings",
|
|
3157
|
-
httpMethod: "post",
|
|
3158
|
-
pathParams: [],
|
|
3159
|
-
queryParams: [],
|
|
3160
|
-
flags: [{
|
|
3161
|
-
"name": "input",
|
|
3162
|
-
"description": "Single text to embed.",
|
|
3163
|
-
"required": false,
|
|
3164
|
-
"type": "string",
|
|
3165
|
-
"in": "body"
|
|
3166
3478
|
}, {
|
|
3167
|
-
"name": "
|
|
3168
|
-
"description": "
|
|
3169
|
-
"required":
|
|
3170
|
-
"type": "
|
|
3171
|
-
"in": "
|
|
3479
|
+
"name": "eval_run_id",
|
|
3480
|
+
"description": "Eval run ID",
|
|
3481
|
+
"required": true,
|
|
3482
|
+
"type": "string",
|
|
3483
|
+
"in": "path"
|
|
3172
3484
|
}]
|
|
3173
3485
|
},
|
|
3174
3486
|
"list-exceptions": {
|
|
@@ -6128,11 +6440,11 @@ var routes = {
|
|
|
6128
6440
|
"generate-session-response": {
|
|
6129
6441
|
serviceClass: "Sessions",
|
|
6130
6442
|
operationId: "generateSessionResponse",
|
|
6131
|
-
description: "Triggers the agent to generate a response based on the current conversation.
|
|
6443
|
+
description: "Triggers the agent to generate a response based on the current conversation. Background by default: returns `202 Accepted` immediately while the generation runs. Pass ?wait=true to block and receive the assistant reply (or a requires_action status if the agent needs client tool outputs) in the response.",
|
|
6132
6444
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
|
|
6133
6445
|
httpMethod: "post",
|
|
6134
6446
|
pathParams: ["session_id"],
|
|
6135
|
-
queryParams: ["
|
|
6447
|
+
queryParams: ["wait"],
|
|
6136
6448
|
flags: [{
|
|
6137
6449
|
"name": "session_id",
|
|
6138
6450
|
"description": "Session public ID",
|
|
@@ -6140,8 +6452,8 @@ var routes = {
|
|
|
6140
6452
|
"type": "string",
|
|
6141
6453
|
"in": "path"
|
|
6142
6454
|
}, {
|
|
6143
|
-
"name": "
|
|
6144
|
-
"description": "When
|
|
6455
|
+
"name": "wait",
|
|
6456
|
+
"description": "When omitted or `false` (default), generation runs in the background and `202 Accepted` is returned immediately. Pass `true` to block until the generation settles and receive the result.",
|
|
6145
6457
|
"required": false,
|
|
6146
6458
|
"type": "boolean",
|
|
6147
6459
|
"in": "query"
|
|
@@ -7034,7 +7346,7 @@ var routes = {
|
|
|
7034
7346
|
"fire-trigger": {
|
|
7035
7347
|
serviceClass: "Triggers",
|
|
7036
7348
|
operationId: "fireTrigger",
|
|
7037
|
-
description: "Fires a trigger synchronously and returns the terminal firing record.",
|
|
7349
|
+
description: "Fires a trigger synchronously and returns the terminal firing record. The firing itself always settles here; an `eval` target's run is queued rather than executed inline, so the record names a `queued` run to poll.",
|
|
7038
7350
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/triggers",
|
|
7039
7351
|
httpMethod: "post",
|
|
7040
7352
|
pathParams: ["trigger_id"],
|
|
@@ -7047,7 +7359,7 @@ var routes = {
|
|
|
7047
7359
|
"in": "path"
|
|
7048
7360
|
}, {
|
|
7049
7361
|
"name": "input",
|
|
7050
|
-
"description": "Fire-time input, shallow-merged over the trigger's static input",
|
|
7362
|
+
"description": "Fire-time input, shallow-merged over the trigger's static input. For `eval` targets it may carry `agent_version` and `baseline_run_id`.",
|
|
7051
7363
|
"required": false,
|
|
7052
7364
|
"type": "object",
|
|
7053
7365
|
"in": "body"
|