diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index b6d2b3c5e..f7d37789b 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -10497,694 +10497,6 @@ ] } }, - "/guardrail/rules": { - "get": { - "operationId": "GuardrailRulesController_list", - "summary": "List guardrail rules", - "parameters": [ - { - "name": "limit", - "required": false, - "in": "query", - "description": "Positive bounded list size, matching the shared library reader.", - "schema": { - "minimum": 1, - "maximum": 1000, - "default": 100, - "type": "number" - } - }, - { - "name": "search", - "required": false, - "in": "query", - "description": "Case-insensitive name or identifier fragment; omitted means all resources.", - "schema": { - "type": "string" - } - }, - { - "name": "packId", - "required": false, - "in": "query", - "description": "Limits rules to a pack in the authenticated organization without per-member requests.", - "schema": { - "format": "uuid", - "type": "string" - } - }, - { - "name": "createdAtGt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtGe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GuardrailRule" - } - } - } - } - } - }, - "tags": [ - "Guardrail Rules" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, - "/guardrail/rules/paginated": { - "get": { - "operationId": "GuardrailRulesController_paginated", - "summary": "List paginated guardrail rules", - "parameters": [ - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "minimum": 1, - "maximum": 1000, - "default": 100, - "type": "number" - } - }, - { - "name": "search", - "required": false, - "in": "query", - "description": "Case-insensitive name or identifier fragment; omitted means all resources.", - "schema": { - "type": "string" - } - }, - { - "name": "packId", - "required": false, - "in": "query", - "description": "Limits rules to a pack in the authenticated organization without per-member requests.", - "schema": { - "format": "uuid", - "type": "string" - } - }, - { - "name": "sortBy", - "required": false, - "in": "query", - "description": "Only persisted creation order is supported, with the ID as a stable tie-breaker.", - "schema": { - "enum": [ - "createdAt" - ], - "type": "string" - } - }, - { - "name": "createdAtGt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtGe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "page", - "required": false, - "in": "query", - "description": "A safe integer page; the reader also validates the computed offset.", - "schema": { - "minimum": 1, - "maximum": 9007199254740991, - "type": "number" - } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "This is the sort order for pagination. Defaults to 'DESC'.", - "schema": { - "enum": [ - "ASC", - "DESC" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuardrailRulesPage" - } - } - } - } - }, - "tags": [ - "Guardrail Rules" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, - "/guardrail/rules/{id}": { - "get": { - "operationId": "GuardrailRulesController_find", - "summary": "Get guardrail rule", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "description": "The unique identifier for the resource.", - "schema": { - "format": "uuid", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuardrailRule" - } - } - } - } - }, - "tags": [ - "Guardrail Rules" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, - "/guardrail/packs": { - "get": { - "operationId": "GuardrailPacksController_list", - "summary": "List guardrail packs", - "parameters": [ - { - "name": "limit", - "required": false, - "in": "query", - "description": "Positive bounded list size, matching the shared library reader.", - "schema": { - "minimum": 1, - "maximum": 1000, - "default": 100, - "type": "number" - } - }, - { - "name": "search", - "required": false, - "in": "query", - "description": "Case-insensitive name or identifier fragment; omitted means all resources.", - "schema": { - "type": "string" - } - }, - { - "name": "createdAtGt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtGe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GuardrailPack" - } - } - } - } - } - }, - "tags": [ - "Guardrail Packs" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, - "/guardrail/packs/paginated": { - "get": { - "operationId": "GuardrailPacksController_paginated", - "summary": "List paginated guardrail packs", - "parameters": [ - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "minimum": 1, - "maximum": 1000, - "default": 100, - "type": "number" - } - }, - { - "name": "search", - "required": false, - "in": "query", - "description": "Case-insensitive name or identifier fragment; omitted means all resources.", - "schema": { - "type": "string" - } - }, - { - "name": "sortBy", - "required": false, - "in": "query", - "description": "Only persisted creation order is supported, with the ID as a stable tie-breaker.", - "schema": { - "enum": [ - "createdAt" - ], - "type": "string" - } - }, - { - "name": "createdAtGt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtGe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "page", - "required": false, - "in": "query", - "description": "A safe integer page; the reader also validates the computed offset.", - "schema": { - "minimum": 1, - "maximum": 9007199254740991, - "type": "number" - } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "This is the sort order for pagination. Defaults to 'DESC'.", - "schema": { - "enum": [ - "ASC", - "DESC" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuardrailPacksPage" - } - } - } - } - }, - "tags": [ - "Guardrail Packs" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, - "/guardrail/packs/{id}": { - "get": { - "operationId": "GuardrailPacksController_find", - "summary": "Get guardrail pack", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "description": "The unique identifier for the resource.", - "schema": { - "format": "uuid", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuardrailPack" - } - } - } - } - }, - "tags": [ - "Guardrail Packs" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, "/provider/{provider}/{resourceName}": { "post": { "operationId": "ProviderResourceController_createProviderResource", @@ -13101,6 +12413,13 @@ "zu" ] }, + "keyterms": { + "description": "Words or phrases to bias the transcription towards, such as product names. Supported on scribe_v2 (up to 100 terms of 50 characters each) and scribe_v2_realtime (up to 50 terms of 20 characters each). Each term has at most 5 words and none of `< > { } [ ] \\`. Adds ElevenLabs' keyterm prompting rate to the transcriber cost.", + "type": "array", + "items": { + "type": "string" + } + }, "silenceThresholdSeconds": { "type": "number", "description": "This is the number of seconds of silence before VAD commits (0.3-3.0).", @@ -16332,6 +15651,13 @@ "zu" ] }, + "keyterms": { + "description": "Words or phrases to bias the transcription towards, such as product names. Supported on scribe_v2 (up to 100 terms of 50 characters each) and scribe_v2_realtime (up to 50 terms of 20 characters each). Each term has at most 5 words and none of `< > { } [ ] \\`. Adds ElevenLabs' keyterm prompting rate to the transcriber cost.", + "type": "array", + "items": { + "type": "string" + } + }, "silenceThresholdSeconds": { "type": "number", "description": "This is the number of seconds of silence before VAD commits (0.3-3.0).", @@ -44692,6 +44018,124 @@ } } }, + "AssistantGoalErrorDTO": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer", + "minimum": 400, + "maximum": 599 + }, + "error": { + "type": "string" + }, + "message": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + }, + "required": [ + "statusCode", + "message" + ] + }, + "AssistantGoalCreateDTO": { + "type": "object", + "properties": { + "succeedsWhen": { + "type": "string", + "maxLength": 600, + "minLength": 1, + "description": "Success criteria. Trimmed before commit; blank or non-PostgreSQL-compatible text is rejected." + }, + "leaveOut": { + "type": "string", + "nullable": true, + "maxLength": 300, + "minLength": 1, + "description": "Optional trimmed exclusions. Omit or send null for no exclusions." + } + }, + "required": [ + "succeedsWhen" + ] + }, + "AssistantGoalDTO": { + "type": "object", + "properties": { + "orgId": { + "type": "string", + "format": "uuid" + }, + "assistantId": { + "type": "string", + "format": "uuid" + }, + "goalId": { + "type": "string", + "format": "uuid" + }, + "goalVersion": { + "type": "string", + "description": "Committed decimal bigint revision." + }, + "succeedsWhen": { + "type": "string" + }, + "leaveOut": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "Committed goal-change time anchoring its fixed backfill window." + } + }, + "required": [ + "orgId", + "assistantId", + "goalId", + "goalVersion", + "succeedsWhen", + "createdAt" + ] + }, + "AssistantGoalSetDTO": { + "type": "object", + "properties": { + "expectedGoalVersion": { + "type": "string", + "pattern": "^[1-9][0-9]{0,18}$", + "description": "Observed current revision of this goal as a positive decimal bigint string." + }, + "succeedsWhen": { + "type": "string", + "maxLength": 600, + "minLength": 1, + "description": "Success criteria. Trimmed before commit; blank or non-PostgreSQL-compatible text is rejected." + }, + "leaveOut": { + "type": "string", + "nullable": true, + "maxLength": 300, + "minLength": 1, + "description": "Optional trimmed exclusions. Omit or send null for no exclusions." + } + }, + "required": [ + "expectedGoalVersion", + "succeedsWhen" + ] + }, "Squad": { "type": "object", "properties": { @@ -67426,6 +66870,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -67553,6 +66998,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -67679,6 +67125,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -67869,6 +67316,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -67947,6 +67395,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -68017,6 +67466,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -68147,6 +67597,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -68229,6 +67680,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -68303,6 +67755,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -69189,6 +68642,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -69271,6 +68725,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -69345,6 +68800,7 @@ "formulas": { "type": "array", "description": "Formulas are mathematical expressions applied on the data returned by the queries to transform them before being used to create the insight.\nThe formulas needs to be a valid mathematical expression, supported by MathJS - https://mathjs.org/docs/expressions/syntax.html\nA formula is created by using the query names as the variable.\nThe formulas must contain at least one query name in the LiquidJS format {{query_name}} or {{['query name']}} which will be substituted with the query result.\nFor example, if you have 2 queries, 'Was Booking Made' and 'Average Call Duration', you can create a formula like this:\n```\n{{['Query 1']}} / {{['Query 2']}} * 100\n```\n\n```\n({{[Query 1]}} * 10) + {{[Query 2]}}\n```\nThis will take the\n\nYou can also use the query names as the variable in the formula.", + "maxItems": 20, "items": { "$ref": "#/components/schemas/InsightFormula" } @@ -79718,6 +79174,28 @@ "metadata" ] }, + "CreateGuardrailPackDTO": { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "\\S" + }, + "ruleIds": { + "type": "array", + "description": "Projected from membership rows; a supplied array replaces membership.", + "maxItems": 100, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "name", + "ruleIds" + ] + }, "GuardrailPack": { "type": "object", "properties": { @@ -79739,11 +79217,12 @@ }, "name": { "type": "string", - "pattern": "/\\S/" + "pattern": "\\S" }, "ruleIds": { "type": "array", "description": "Projected from membership rows; a supplied array replaces membership.", + "maxItems": 100, "items": { "type": "string", "format": "uuid" @@ -79759,6 +79238,107 @@ "ruleIds" ] }, + "GuardrailPackImpact": { + "type": "object", + "properties": { + "assistantIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "assistantIds" + ] + }, + "GuardrailPackSnapshot": { + "type": "object", + "properties": { + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string", + "pattern": "\\S" + }, + "ruleIds": { + "type": "array", + "description": "Projected from membership rows; a supplied array replaces membership.", + "maxItems": 100, + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "updatedAt", + "name", + "ruleIds" + ] + }, + "SaveGuardrailPackDTO": { + "type": "object", + "properties": { + "name": { + "type": "string", + "pattern": "\\S" + }, + "ruleIds": { + "type": "array", + "description": "Projected from membership rows; a supplied array replaces membership.", + "maxItems": 100, + "items": { + "type": "string", + "format": "uuid" + } + }, + "expected": { + "description": "The complete last-read snapshot prevents silently replacing another editor’s changes.", + "allOf": [ + { + "$ref": "#/components/schemas/GuardrailPackSnapshot" + } + ] + }, + "confirmedAssistantIds": { + "description": "Exact deduplicated impact acknowledged by the user; rechecked while the pack is locked.", + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + }, + "required": [ + "expected" + ] + }, + "GuardrailPackConflictResponseDTO": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Machine-readable cause; clients branch on this, never on `message`.", + "enum": [ + "pack_changed", + "impact_changed", + "global_assignment" + ] + }, + "message": { + "type": "string", + "description": "Sentence-case copy safe to show the user." + } + }, + "required": [ + "error", + "message" + ] + }, "GuardrailPacksPage": { "type": "object", "properties": {