@soat/cli 0.71.4 → 0.73.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.
Files changed (2) hide show
  1. package/dist/index.mjs +64 -10
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import * as os from "node:os";
13
13
  import { createHmac, timingSafeEqual } from "node:crypto";
14
14
 
15
15
  //#region package.json
16
- var version = "0.71.4";
16
+ var version = "0.73.1";
17
17
 
18
18
  //#endregion
19
19
  //#region src/cli-wrappers/wrappers/formations.ts
@@ -2933,7 +2933,7 @@ var routes = {
2933
2933
  "create-decider": {
2934
2934
  serviceClass: "Deciders",
2935
2935
  operationId: "createDecider",
2936
- description: "Creates a decider at version 1: a named question set and the backend that answers it, exactly one of `agent_id` and `tool_id`. Every question declares a finite answer space, validated here. The backend must be in the decider's project. An agent must carry no tool surface — no tool binding left active by `active_tool_ids` and no `knowledge_config.write_memory_store_id` — or the create is refused with `400 DECIDER_AGENT_NOT_TOOL_LESS`. A tool must be `http` or `pipeline` and must not pin `state` or `questions` in its `preset_parameters`, or the create is refused with `400 DECIDER_TOOL_NOT_CALLABLE`. A duplicate `name` in the project is `409 NAME_CONFLICT`.",
2936
+ description: "Creates a decider at version 1: a named question set and the backend that answers it, exactly one of `agent_id` and `tool_id`. Every question declares a finite answer space, validated here. The backend must be in the decider's project. An agent must carry no tool surface — no tool binding left active by `active_tool_ids` and no `knowledge_config.write_memory_store_id` — or the create is refused with `400 DECIDER_AGENT_NOT_TOOL_LESS`. A tool must be `http` or `pipeline` and must not pin `input` or `questions` in its `preset_parameters`, or the create is refused with `400 DECIDER_TOOL_NOT_CALLABLE`. A duplicate `name` in the project is `409 NAME_CONFLICT`.",
2937
2937
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/deciders",
2938
2938
  httpMethod: "post",
2939
2939
  pathParams: [],
@@ -2972,9 +2972,9 @@ var routes = {
2972
2972
  "in": "body"
2973
2973
  }, {
2974
2974
  "name": "questions",
2975
- "description": "Question id → question, 1 to 20 of them. A question id starts with a letter or underscore and holds only letters, digits and underscores (at most 64), since it keys the answer object.",
2975
+ "description": "The questions, in the order the model is shown them.",
2976
2976
  "required": true,
2977
- "type": "object",
2977
+ "type": "array",
2978
2978
  "in": "body"
2979
2979
  }, {
2980
2980
  "name": "version_label",
@@ -3050,9 +3050,9 @@ var routes = {
3050
3050
  "in": "body"
3051
3051
  }, {
3052
3052
  "name": "questions",
3053
- "description": "Question id → question, 1 to 20 of them. A question id starts with a letter or underscore and holds only letters, digits and underscores (at most 64), since it keys the answer object.",
3053
+ "description": "The questions, in the order the model is shown them.",
3054
3054
  "required": false,
3055
- "type": "object",
3055
+ "type": "array",
3056
3056
  "in": "body"
3057
3057
  }, {
3058
3058
  "name": "version_label",
@@ -3173,7 +3173,7 @@ var routes = {
3173
3173
  "create-decision": {
3174
3174
  serviceClass: "Deciders",
3175
3175
  operationId: "createDecision",
3176
- description: "Evaluates the decider against `state` and records the decision. The questions come from the decider, never from the request, so a call site can only supply what is judged. Everything that can refuse the request is checked before the decision is written, so a refusal is a `4xx` and never a polled failure: the agent's tool surface (`400 DECIDER_AGENT_NOT_TOOL_LESS`), a tool that cannot answer (`400 DECIDER_TOOL_NOT_CALLABLE`), a paused project (`409 PROJECT_PAUSED`) and, for an agent, quota admission (`429 QUOTA_EXCEEDED`). A tool backend is called with `{ state, questions }` and must answer `{ answers: { <question id>: { choice | score | value, probabilities? } } }`; an answer outside that contract fails the decision with `DECISION_ANSWER_INVALID`. With `wait: false`, the default, the answer is `201` with the decision `queued`; poll `GET /api/v1/decisions/{decision_id}` or subscribe to `decisions.completed` and `decisions.failed`. With `wait: true` it is `201` with the decision settled.",
3176
+ description: "Evaluates the decider against `input` and records the decision. The questions come from the decider, never from the request, so a call site can only supply what is judged. To send the questions with the request, use `POST /api/v1/decisions`. Everything that can refuse the request is checked before the decision is written, so a refusal is a `4xx` and never a polled failure: the agent's tool surface (`400 DECIDER_AGENT_NOT_TOOL_LESS`), a tool that cannot answer (`400 DECIDER_TOOL_NOT_CALLABLE`), a paused project (`409 PROJECT_PAUSED`) and, for an agent, quota admission (`429 QUOTA_EXCEEDED`). A tool backend is called with `{ input, questions }` and must answer `{ answers: [{ name, probability | choice | score, probabilities?, confidence? }] }`, the request and response of OpenAI's Decisions API; an answer outside that contract fails the decision with `DECISION_ANSWER_INVALID`. With `wait: false`, the default, the answer is `201` with the decision `queued`; poll `GET /api/v1/decisions/{decision_id}` or subscribe to `decisions.completed` and `decisions.failed`. With `wait: true` it is `201` with the decision settled.",
3177
3177
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/deciders",
3178
3178
  httpMethod: "post",
3179
3179
  pathParams: ["decider_id"],
@@ -3187,14 +3187,14 @@ var routes = {
3187
3187
  "type": "string",
3188
3188
  "in": "path"
3189
3189
  }, {
3190
- "name": "state",
3191
- "description": "What is judged: any JSON value. A string reaches the agent verbatim; anything else is serialized as JSON. Not stored.",
3190
+ "name": "input",
3191
+ "description": "What is judged, not stored: a string; a list of `user` messages whose `content` is a string or `input_text` and `input_image` parts (an image as a base64 data URL); or any other JSON value, which an agent is shown as indented JSON. An array of objects carrying `role` is read as messages.",
3192
3192
  "required": true,
3193
3193
  "type": "unknown",
3194
3194
  "in": "body"
3195
3195
  }, {
3196
3196
  "name": "metadata",
3197
- "description": "Caller-owned annotations stored on the decision and returned on every read — typically the id of what was judged, since the state itself is not stored. Written once, with the decision. A non-object is rejected with `400 VALIDATION_FAILED` and no decision is written.",
3197
+ "description": "Caller-owned annotations stored on the decision and returned on every read — typically the id of what was judged, since the input itself is not stored. Written once, with the decision. A non-object is rejected with `400 VALIDATION_FAILED` and no decision is written.",
3198
3198
  "required": false,
3199
3199
  "type": "object",
3200
3200
  "in": "body"
@@ -3248,6 +3248,60 @@ var routes = {
3248
3248
  "in": "query"
3249
3249
  }]
3250
3250
  },
3251
+ "create-inline-decision": {
3252
+ serviceClass: "Deciders",
3253
+ operationId: "createInlineDecision",
3254
+ description: "Evaluates `questions` sent with the request against `input`, answered by the agent or tool the request names (exactly one of `agent_id` and `tool_id`, held to the same rules as a decider's backend), and records the decision with its questions. The request and answers are those of OpenAI's Decisions API, with the backend in place of `model`. No decider names the questions, so the decision carries them in `questions` and has no `decider_id` or `decider_version`. Admission, `wait` and the tool contract are those of `POST /api/v1/deciders/{decider_id}/decisions`.",
3255
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/deciders",
3256
+ httpMethod: "post",
3257
+ pathParams: [],
3258
+ queryParams: [],
3259
+ headerParams: [],
3260
+ cookieParams: [],
3261
+ flags: [{
3262
+ "name": "project_id",
3263
+ "description": "Project ID (required if not using project key auth)",
3264
+ "required": false,
3265
+ "type": "string",
3266
+ "in": "body"
3267
+ }, {
3268
+ "name": "agent_id",
3269
+ "description": "A tool-less agent that answers",
3270
+ "required": false,
3271
+ "type": "string",
3272
+ "in": "body"
3273
+ }, {
3274
+ "name": "tool_id",
3275
+ "description": "An http or pipeline tool that answers",
3276
+ "required": false,
3277
+ "type": "string",
3278
+ "in": "body"
3279
+ }, {
3280
+ "name": "questions",
3281
+ "description": "The questions, in the order the model is shown them.",
3282
+ "required": true,
3283
+ "type": "array",
3284
+ "in": "body"
3285
+ }, {
3286
+ "name": "input",
3287
+ "description": "What is judged, not stored: a string; a list of `user` messages whose `content` is a string or `input_text` and `input_image` parts (an image as a base64 data URL); or any other JSON value, which an agent is shown as indented JSON. An array of objects carrying `role` is read as messages.",
3288
+ "required": true,
3289
+ "type": "unknown",
3290
+ "in": "body"
3291
+ }, {
3292
+ "name": "metadata",
3293
+ "description": "Caller-owned annotations stored on the decision. A non-object is rejected with `400 VALIDATION_FAILED`.",
3294
+ "required": false,
3295
+ "type": "object",
3296
+ "in": "body"
3297
+ }, {
3298
+ "name": "wait",
3299
+ "description": "True evaluates before answering and returns the settled decision. False — the default — returns the `queued` decision at once. A tool call, `builtin` or MCP, always waits.",
3300
+ "required": false,
3301
+ "type": "boolean",
3302
+ "in": "body"
3303
+ }]
3304
+ },
3251
3305
  "get-decision": {
3252
3306
  serviceClass: "Deciders",
3253
3307
  operationId: "getDecision",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soat/cli",
3
- "version": "0.71.4",
3
+ "version": "0.73.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.71.4",
25
+ "@soat/sdk": "0.73.1",
26
26
  "@ttoss/logger": "^0.10.0",
27
27
  "commander": "^15.0.0",
28
28
  "js-yaml": "^5.4.2"