@soat/cli 0.60.0 → 0.61.1
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 +34 -10
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import * as os from "node:os";
|
|
|
13
13
|
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
14
14
|
|
|
15
15
|
//#region package.json
|
|
16
|
-
var version = "0.
|
|
16
|
+
var version = "0.61.1";
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region src/cli-wrappers/wrappers/formations.ts
|
|
@@ -5345,7 +5345,7 @@ var routes = {
|
|
|
5345
5345
|
"evaluate-guardrail": {
|
|
5346
5346
|
serviceClass: "Guardrails",
|
|
5347
5347
|
operationId: "evaluateGuardrail",
|
|
5348
|
-
description: "Runs the full evaluation pipeline — the `class` expression, the guard, the context tool per `context_mode`, live `runtime.*` resolution — against caller-supplied `args` and `guardrail_context`, and returns the exact `guardrail_evaluation` record a real call would produce. Nothing executes, no approval item is filed, and no activity entry is written. This is the adoption path: preview a document's decisions against production-shaped calls before attaching it — or before editing a widely-attached one. Pass an optional `tool_id` to resolve `runtime.
|
|
5348
|
+
description: "Runs the full evaluation pipeline — the `class` expression, the guard, the context tool per `context_mode`, live `runtime.*` resolution — against caller-supplied `args` and `guardrail_context`, and returns the exact `guardrail_evaluation` record a real call would produce. Nothing executes, no approval item is filed, and no activity entry is written. This is the adoption path: preview a document's decisions against production-shaped calls before attaching it — or before editing a widely-attached one. Pass an optional `tool_id` to resolve `runtime.tools.*`.",
|
|
5349
5349
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/guardrails",
|
|
5350
5350
|
httpMethod: "post",
|
|
5351
5351
|
pathParams: ["guardrail_id"],
|
|
@@ -5372,7 +5372,7 @@ var routes = {
|
|
|
5372
5372
|
"in": "body"
|
|
5373
5373
|
}, {
|
|
5374
5374
|
"name": "tool_id",
|
|
5375
|
-
"description": "Optional tool to resolve `runtime.
|
|
5375
|
+
"description": "Optional tool to resolve `runtime.tools.*` against.",
|
|
5376
5376
|
"required": false,
|
|
5377
5377
|
"type": "string",
|
|
5378
5378
|
"in": "body"
|
|
@@ -9539,11 +9539,11 @@ var routes = {
|
|
|
9539
9539
|
"list-usage-events": {
|
|
9540
9540
|
serviceClass: "Usage",
|
|
9541
9541
|
operationId: "listUsageEvents",
|
|
9542
|
-
description: "Returns the raw usage events the caller can access, most recent first, narrowed by any combination of the same filters the aggregate takes — agent, generation, trace, actor, session, AI provider, orchestration run, orchestration, trigger, action, meter type, model or `source` — so a rollup and the events behind it are addressed the same way. Each event is the per-generation token usage as reported by the provider, for audit and reconciliation. An id naming nothing in scope yields an empty page rather than dropping the filter, so a mistyped narrowing can never widen the list past what was asked for.",
|
|
9542
|
+
description: "Returns the raw usage events the caller can access, most recent first, narrowed by any combination of the same filters the aggregate takes — agent, generation, trace, actor, session, AI provider, orchestration run, orchestration, tool, trigger, action, outcome, meter type, model or `source` — so a rollup and the events behind it are addressed the same way. Each event is the per-generation token usage as reported by the provider, for audit and reconciliation. An id naming nothing in scope yields an empty page rather than dropping the filter, so a mistyped narrowing can never widen the list past what was asked for.",
|
|
9543
9543
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/usage",
|
|
9544
9544
|
httpMethod: "get",
|
|
9545
9545
|
pathParams: [],
|
|
9546
|
-
queryParams: ["agent_id", "generation_id", "trace_id", "actor_id", "session_id", "ai_provider_id", "orchestration_run_id", "orchestration_id", "model", "trigger_id", "action_id", "meter_type", "source", "limit", "offset"],
|
|
9546
|
+
queryParams: ["agent_id", "generation_id", "trace_id", "actor_id", "session_id", "ai_provider_id", "orchestration_run_id", "orchestration_id", "model", "trigger_id", "action_id", "tool_id", "outcome", "meter_type", "source", "limit", "offset"],
|
|
9547
9547
|
headerParams: [],
|
|
9548
9548
|
cookieParams: [],
|
|
9549
9549
|
flags: [{
|
|
@@ -9612,15 +9612,27 @@ var routes = {
|
|
|
9612
9612
|
"required": false,
|
|
9613
9613
|
"type": "string",
|
|
9614
9614
|
"in": "query"
|
|
9615
|
+
}, {
|
|
9616
|
+
"name": "tool_id",
|
|
9617
|
+
"description": "Filter by the tool a `tool_execution` event metered. A tool that does not exist in scope yields an empty page.\n",
|
|
9618
|
+
"required": false,
|
|
9619
|
+
"type": "string",
|
|
9620
|
+
"in": "query"
|
|
9621
|
+
}, {
|
|
9622
|
+
"name": "outcome",
|
|
9623
|
+
"description": "Filter by how a `tool_execution` call ended: `ok`, `error` or `timeout`. Every other meter carries no outcome and is matched by none of them.\n",
|
|
9624
|
+
"required": false,
|
|
9625
|
+
"type": "string",
|
|
9626
|
+
"in": "query"
|
|
9615
9627
|
}, {
|
|
9616
9628
|
"name": "meter_type",
|
|
9617
|
-
"description": "Filter by meter type (e.g. `llm_tokens`, `compute_execution`, `api_request`, `storage`)\n",
|
|
9629
|
+
"description": "Filter by meter type (e.g. `llm_tokens`, `compute_execution`, `api_request`, `storage`, `tool_execution`)\n",
|
|
9618
9630
|
"required": false,
|
|
9619
9631
|
"type": "string",
|
|
9620
9632
|
"in": "query"
|
|
9621
9633
|
}, {
|
|
9622
9634
|
"name": "source",
|
|
9623
|
-
"description": "Filter by what the spend was incurred for. `eval` is an eval run's item generations
|
|
9635
|
+
"description": "Filter by what the spend was incurred for. `eval` is an eval run's item generations, `eval_judge` an `llm_judge` scorer's own completion and `eval_scorer` a `tool` scorer's call, so verification spend is `source` in (`eval`, `eval_judge`, `eval_scorer`); `embedding` is any embedding call. Ordinary agent traffic carries no source and is matched by none of them.\n",
|
|
9624
9636
|
"required": false,
|
|
9625
9637
|
"type": "string",
|
|
9626
9638
|
"in": "query"
|
|
@@ -9641,11 +9653,11 @@ var routes = {
|
|
|
9641
9653
|
"get-usage-aggregate": {
|
|
9642
9654
|
serviceClass: "Usage",
|
|
9643
9655
|
operationId: "getUsageAggregate",
|
|
9644
|
-
description: "Returns a project's usage rolled up over an optional `[from, to]` time window, optionally bucketed by a single dimension and narrowed by any combination of
|
|
9656
|
+
description: "Returns a project's usage rolled up over an optional `[from, to]` time window, optionally bucketed by a single dimension and narrowed by any combination of fifteen filters — session, actor, agent, AI provider, orchestration run, orchestration, generation, trace, tool, meter type, model, source, trigger, action and outcome. That is how \"what did this conversation cost\", \"what has this end user cost\" and \"what did this agent cost\" are answered. Each group and the grand total carry an `event_count`, summed token counts, a measured `quantity` per component (so infra meters report their real amount, not zeros), and `cost_usd` (null when no event in the bucket was priced). This is the per-project cost-by-range/by-category query — a monthly figure without scanning raw usage events client-side. Narrowings intersect and apply to the whole rollup — every bucket, `totals` and `totals.distinct` alike — so each composes with any `group_by`, and all fifteen are echoed back under `filters`. The nine naming a resource are resolved against the project, and one naming nothing there empties the rollup rather than being dropped: a mistyped id must never read back as the project's whole spend. The other six are matched against the value the event recorded. `groups` is paginated. Its `total` is the number of distinct buckets in the window — bucket cardinality, including a null bucket for the events the dimension does not apply to, and never a count of entities. To count entities, send `include=distinct` and read `totals.distinct`. `totals` always describes the whole window — never the page above it, and never the bucketing: omit `group_by` and `totals` is unchanged while `groups` is empty.",
|
|
9645
9657
|
moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/usage",
|
|
9646
9658
|
httpMethod: "get",
|
|
9647
9659
|
pathParams: [],
|
|
9648
|
-
queryParams: ["project_id", "group_by", "include", "from", "to", "meter_type", "session_id", "actor_id", "agent_id", "ai_provider_id", "orchestration_run_id", "orchestration_id", "generation_id", "trace_id", "model", "source", "trigger_id", "action_id", "limit", "offset"],
|
|
9660
|
+
queryParams: ["project_id", "group_by", "include", "from", "to", "meter_type", "session_id", "actor_id", "agent_id", "ai_provider_id", "orchestration_run_id", "orchestration_id", "generation_id", "trace_id", "model", "source", "trigger_id", "action_id", "tool_id", "outcome", "limit", "offset"],
|
|
9649
9661
|
headerParams: [],
|
|
9650
9662
|
cookieParams: [],
|
|
9651
9663
|
flags: [{
|
|
@@ -9680,7 +9692,7 @@ var routes = {
|
|
|
9680
9692
|
"in": "query"
|
|
9681
9693
|
}, {
|
|
9682
9694
|
"name": "meter_type",
|
|
9683
|
-
"description": "Narrow the rollup to one meter type (e.g. `llm_tokens`, `compute_execution`, `api_request`, `storage`). Omit to include every meter. An unknown type yields an empty rollup, not an error.\n",
|
|
9695
|
+
"description": "Narrow the rollup to one meter type (e.g. `llm_tokens`, `compute_execution`, `api_request`, `storage`, `tool_execution`). Omit to include every meter. An unknown type yields an empty rollup, not an error.\n",
|
|
9684
9696
|
"required": false,
|
|
9685
9697
|
"type": "string",
|
|
9686
9698
|
"in": "query"
|
|
@@ -9756,6 +9768,18 @@ var routes = {
|
|
|
9756
9768
|
"required": false,
|
|
9757
9769
|
"type": "string",
|
|
9758
9770
|
"in": "query"
|
|
9771
|
+
}, {
|
|
9772
|
+
"name": "tool_id",
|
|
9773
|
+
"description": "Narrow to the executions of one tool. An id naming no tool in this project yields an empty rollup.\n",
|
|
9774
|
+
"required": false,
|
|
9775
|
+
"type": "string",
|
|
9776
|
+
"in": "query"
|
|
9777
|
+
}, {
|
|
9778
|
+
"name": "outcome",
|
|
9779
|
+
"description": "Narrow `tool_execution` events by how the call ended — `ok`, `error` or `timeout` — matched as recorded. `outcome=error` is a tool's failures without a second meter.\n",
|
|
9780
|
+
"required": false,
|
|
9781
|
+
"type": "string",
|
|
9782
|
+
"in": "query"
|
|
9759
9783
|
}, {
|
|
9760
9784
|
"name": "limit",
|
|
9761
9785
|
"description": "Maximum number of `groups` entries to return. Clamped to 100. Does not affect `totals` or `groups.total`, which describe the whole window.\n",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soat/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.1",
|
|
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.
|
|
25
|
+
"@soat/sdk": "0.61.1",
|
|
26
26
|
"@ttoss/logger": "^0.8.20",
|
|
27
27
|
"commander": "^15.0.0",
|
|
28
28
|
"js-yaml": "^5.4.2"
|