@thinkai/tai-api-contract 2.171.0 → 2.173.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/generated/openapi.d.ts +884 -1
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +1024 -3
- package/package.json +1 -1
- package/src/generated/openapi.ts +884 -1
package/src/generated/openapi.ts
CHANGED
|
@@ -3279,7 +3279,7 @@ export interface paths {
|
|
|
3279
3279
|
};
|
|
3280
3280
|
/**
|
|
3281
3281
|
* Workspace chat readiness
|
|
3282
|
-
* @description Any workspace member. 403 `code_intelligence_disabled` when Engineering Context Graph is off. `status` is `indexing`, `generating_agent_md`, `failed`, or `ready`. Chat stays closed until `ready`: create thread and post message return `409 chat_not_ready` with `progressMessage` when status is not ready. An open index wave reports `indexing` until every job in that wave is terminal.
|
|
3282
|
+
* @description Any workspace member. 403 `code_intelligence_disabled` when Engineering Context Graph is off. `status` is `indexing`, `generating_agent_md`, `failed`, or `ready`. Chat stays closed until `ready`: create thread and post message return `409 chat_not_ready` with `progressMessage` when status is not ready. An open index wave reports `indexing` until every job in that wave is terminal. When ready, includes `activeProvider` and `attachmentLimits` for Conversations file uploads.
|
|
3283
3283
|
*/
|
|
3284
3284
|
get: operations["getCodeChatReadiness"];
|
|
3285
3285
|
put?: never;
|
|
@@ -3290,6 +3290,26 @@ export interface paths {
|
|
|
3290
3290
|
patch?: never;
|
|
3291
3291
|
trace?: never;
|
|
3292
3292
|
};
|
|
3293
|
+
"/workspaces/{workspaceId}/code-chat/attachments": {
|
|
3294
|
+
parameters: {
|
|
3295
|
+
query?: never;
|
|
3296
|
+
header?: never;
|
|
3297
|
+
path?: never;
|
|
3298
|
+
cookie?: never;
|
|
3299
|
+
};
|
|
3300
|
+
get?: never;
|
|
3301
|
+
put?: never;
|
|
3302
|
+
/**
|
|
3303
|
+
* Upload a Conversations attachment
|
|
3304
|
+
* @description Any workspace member when chat is ready. Validates size/type against the active provider profile (`attachmentLimits` from readiness). Returns metadata; pass `id` as `attachmentIds` on the next POST message. Max 5 MB per file.
|
|
3305
|
+
*/
|
|
3306
|
+
post: operations["postCodeChatAttachment"];
|
|
3307
|
+
delete?: never;
|
|
3308
|
+
options?: never;
|
|
3309
|
+
head?: never;
|
|
3310
|
+
patch?: never;
|
|
3311
|
+
trace?: never;
|
|
3312
|
+
};
|
|
3293
3313
|
"/workspaces/{workspaceId}/code-chat/indexes/{indexId}": {
|
|
3294
3314
|
parameters: {
|
|
3295
3315
|
query?: never;
|
|
@@ -4786,6 +4806,118 @@ export interface paths {
|
|
|
4786
4806
|
patch?: never;
|
|
4787
4807
|
trace?: never;
|
|
4788
4808
|
};
|
|
4809
|
+
"/workspaces/{workspaceId}/evals/suites": {
|
|
4810
|
+
parameters: {
|
|
4811
|
+
query?: never;
|
|
4812
|
+
header?: never;
|
|
4813
|
+
path?: never;
|
|
4814
|
+
cookie?: never;
|
|
4815
|
+
};
|
|
4816
|
+
/**
|
|
4817
|
+
* List eval suites for a workspace
|
|
4818
|
+
* @description Returns the latest version of each eval suite in the workspace (max 50 suites). Requires workspace membership (`requireWorkspaceMember`). Empty workspace → `{ "suites": [] }`.
|
|
4819
|
+
*/
|
|
4820
|
+
get: operations["listEvalSuites"];
|
|
4821
|
+
put?: never;
|
|
4822
|
+
/**
|
|
4823
|
+
* Create an eval suite
|
|
4824
|
+
* @description Creates a suite at `version: 1`. Requires workspace editor or admin (`requireWorkspaceEditor`). Rejects when both `target.promptBody` is empty and model fields are missing; when `cases` is empty (`400` `eval_suite_cases_required`); or when the workspace already has 50 suites. Each case must include at least one expected signal.
|
|
4825
|
+
*/
|
|
4826
|
+
post: operations["createEvalSuite"];
|
|
4827
|
+
delete?: never;
|
|
4828
|
+
options?: never;
|
|
4829
|
+
head?: never;
|
|
4830
|
+
patch?: never;
|
|
4831
|
+
trace?: never;
|
|
4832
|
+
};
|
|
4833
|
+
"/workspaces/{workspaceId}/evals/suites/{suiteId}": {
|
|
4834
|
+
parameters: {
|
|
4835
|
+
query?: never;
|
|
4836
|
+
header?: never;
|
|
4837
|
+
path?: never;
|
|
4838
|
+
cookie?: never;
|
|
4839
|
+
};
|
|
4840
|
+
/**
|
|
4841
|
+
* Get an eval suite (latest version)
|
|
4842
|
+
* @description Returns the latest version of the suite. Historical versions are retained for runs via `suiteVersion` + snapshot on each run; this endpoint does not expose prior versions. Requires workspace membership.
|
|
4843
|
+
*/
|
|
4844
|
+
get: operations["getEvalSuite"];
|
|
4845
|
+
/**
|
|
4846
|
+
* Update an eval suite
|
|
4847
|
+
* @description Replaces mutable suite fields. Requires workspace editor or admin. Changing `target`, `cases`, or `promptBody` increments `version` by 1 and keeps prior versions immutable for historical runs. Cosmetic name/description-only updates do not bump `version`. Same validation rules as create (cases required, target required, bounds).
|
|
4848
|
+
*/
|
|
4849
|
+
put: operations["updateEvalSuite"];
|
|
4850
|
+
post?: never;
|
|
4851
|
+
delete?: never;
|
|
4852
|
+
options?: never;
|
|
4853
|
+
head?: never;
|
|
4854
|
+
patch?: never;
|
|
4855
|
+
trace?: never;
|
|
4856
|
+
};
|
|
4857
|
+
"/workspaces/{workspaceId}/evals/suites/{suiteId}/runs": {
|
|
4858
|
+
parameters: {
|
|
4859
|
+
query?: never;
|
|
4860
|
+
header?: never;
|
|
4861
|
+
path?: never;
|
|
4862
|
+
cookie?: never;
|
|
4863
|
+
};
|
|
4864
|
+
/**
|
|
4865
|
+
* List recent eval runs for a suite
|
|
4866
|
+
* @description Returns the last 50 runs for the suite (newest first). Empty → `{ "runs": [] }`. Requires workspace membership. Does not trigger scoring.
|
|
4867
|
+
*/
|
|
4868
|
+
get: operations["listEvalRuns"];
|
|
4869
|
+
put?: never;
|
|
4870
|
+
/**
|
|
4871
|
+
* Enqueue an eval suite run
|
|
4872
|
+
* @description Enqueues an async eval run. Returns `202` with `{ runId, status: "queued" }`. Never scores on the request path — a worker claims the run, uses `fixtureCompletion` when present (or live completion when provider credentials exist), applies deterministic expected-signal scoring, and persists results. Requires workspace editor or admin. At most one active (`queued`|`running`) run per suite; a second POST returns `409` `eval_run_in_progress`.
|
|
4873
|
+
*/
|
|
4874
|
+
post: operations["enqueueEvalRun"];
|
|
4875
|
+
delete?: never;
|
|
4876
|
+
options?: never;
|
|
4877
|
+
head?: never;
|
|
4878
|
+
patch?: never;
|
|
4879
|
+
trace?: never;
|
|
4880
|
+
};
|
|
4881
|
+
"/workspaces/{workspaceId}/evals/suites/{suiteId}/runs/{runId}": {
|
|
4882
|
+
parameters: {
|
|
4883
|
+
query?: never;
|
|
4884
|
+
header?: never;
|
|
4885
|
+
path?: never;
|
|
4886
|
+
cookie?: never;
|
|
4887
|
+
};
|
|
4888
|
+
/**
|
|
4889
|
+
* Get an eval run with case results
|
|
4890
|
+
* @description Returns persisted run status and case results. While `queued` or `running`, `caseResults` may be empty and `score` null. Requires workspace membership. Does not trigger scoring.
|
|
4891
|
+
*/
|
|
4892
|
+
get: operations["getEvalRun"];
|
|
4893
|
+
put?: never;
|
|
4894
|
+
post?: never;
|
|
4895
|
+
delete?: never;
|
|
4896
|
+
options?: never;
|
|
4897
|
+
head?: never;
|
|
4898
|
+
patch?: never;
|
|
4899
|
+
trace?: never;
|
|
4900
|
+
};
|
|
4901
|
+
"/workspaces/{workspaceId}/evals/insights": {
|
|
4902
|
+
parameters: {
|
|
4903
|
+
query?: never;
|
|
4904
|
+
header?: never;
|
|
4905
|
+
path?: never;
|
|
4906
|
+
cookie?: never;
|
|
4907
|
+
};
|
|
4908
|
+
/**
|
|
4909
|
+
* Eval insights (regressions, tips, efficiency, model comparison)
|
|
4910
|
+
* @description Workspace-level Insights for prompt/model evals. Computes regressions when prior score − current score ≥ 0.10 on the same suiteId+suiteVersion case set (or suite score drop ≥ 0.10); prompt tips from failed signal notes / case names; token efficiency averages over successful cases in the last succeeded run per suite; and model comparison rollups. No succeeded runs → empty arrays and null `tokenEfficiency`. Requires workspace membership. Distinct from `/insights-recommendations` and AI Usage & Spend.
|
|
4911
|
+
*/
|
|
4912
|
+
get: operations["getEvalInsights"];
|
|
4913
|
+
put?: never;
|
|
4914
|
+
post?: never;
|
|
4915
|
+
delete?: never;
|
|
4916
|
+
options?: never;
|
|
4917
|
+
head?: never;
|
|
4918
|
+
patch?: never;
|
|
4919
|
+
trace?: never;
|
|
4920
|
+
};
|
|
4789
4921
|
}
|
|
4790
4922
|
export type webhooks = Record<string, never>;
|
|
4791
4923
|
export interface components {
|
|
@@ -5393,6 +5525,26 @@ export interface components {
|
|
|
5393
5525
|
/** Format: date-time */
|
|
5394
5526
|
updatedAt: string | null;
|
|
5395
5527
|
};
|
|
5528
|
+
CodeChatAttachmentLimitsDto: {
|
|
5529
|
+
maxFiles: number;
|
|
5530
|
+
maxBytesPerFile: number;
|
|
5531
|
+
maxTotalBytes: number;
|
|
5532
|
+
maxTextChars: number;
|
|
5533
|
+
maxPdfPages: number;
|
|
5534
|
+
allowedMimeTypes: string[];
|
|
5535
|
+
allowedExtensions: string[];
|
|
5536
|
+
supportsImages: boolean;
|
|
5537
|
+
supportsPdf: boolean;
|
|
5538
|
+
};
|
|
5539
|
+
CodeChatAttachmentMetaDto: {
|
|
5540
|
+
/** Format: uuid */
|
|
5541
|
+
id: string;
|
|
5542
|
+
filename: string;
|
|
5543
|
+
mimeType: string;
|
|
5544
|
+
sizeBytes: number;
|
|
5545
|
+
/** Format: date-time */
|
|
5546
|
+
createdAt: string;
|
|
5547
|
+
};
|
|
5396
5548
|
CodeChatReadinessDto: {
|
|
5397
5549
|
/** @enum {string} */
|
|
5398
5550
|
status: "indexing" | "generating_agent_md" | "failed" | "ready";
|
|
@@ -5406,6 +5558,12 @@ export interface components {
|
|
|
5406
5558
|
indexingCadence: "daily" | "weekly" | "manual";
|
|
5407
5559
|
/** @enum {string|null} */
|
|
5408
5560
|
agentMdSource: "generated" | "admin" | null;
|
|
5561
|
+
/**
|
|
5562
|
+
* @description Active Ask synthesizer for attachment limit profiles
|
|
5563
|
+
* @enum {string|null}
|
|
5564
|
+
*/
|
|
5565
|
+
activeProvider?: "claude" | "cursor" | null;
|
|
5566
|
+
attachmentLimits?: components["schemas"]["CodeChatAttachmentLimitsDto"];
|
|
5409
5567
|
};
|
|
5410
5568
|
CodeWikiGuidanceDto: {
|
|
5411
5569
|
/**
|
|
@@ -9936,6 +10094,8 @@ export interface components {
|
|
|
9936
10094
|
citations: components["schemas"]["CodeChatCitationDto"][];
|
|
9937
10095
|
/** Format: date-time */
|
|
9938
10096
|
createdAt: string;
|
|
10097
|
+
/** @description Present on user turns that included uploaded files */
|
|
10098
|
+
attachments?: components["schemas"]["CodeChatAttachmentMetaDto"][];
|
|
9939
10099
|
};
|
|
9940
10100
|
CodeChatThreadDetailDto: components["schemas"]["CodeChatThreadDto"] & {
|
|
9941
10101
|
messages: components["schemas"]["CodeChatMessageDto"][];
|
|
@@ -9952,6 +10112,17 @@ export interface components {
|
|
|
9952
10112
|
* @enum {string}
|
|
9953
10113
|
*/
|
|
9954
10114
|
intent?: "inventory_apis" | "inventory_modules";
|
|
10115
|
+
/** @description Previously uploaded attachment ids to bind to this user turn */
|
|
10116
|
+
attachmentIds?: string[];
|
|
10117
|
+
};
|
|
10118
|
+
CodeChatUploadAttachmentBodyDto: {
|
|
10119
|
+
filename: string;
|
|
10120
|
+
mimeType: string;
|
|
10121
|
+
/** @description Base64-encoded file bytes (no data-URL prefix required) */
|
|
10122
|
+
contentBase64: string;
|
|
10123
|
+
/** Format: uuid */
|
|
10124
|
+
threadId?: string | null;
|
|
10125
|
+
pdfPageCount?: number | null;
|
|
9955
10126
|
};
|
|
9956
10127
|
CodeChatMessageReplyDto: components["schemas"]["CodeChatMessageDto"] & {
|
|
9957
10128
|
/**
|
|
@@ -11020,6 +11191,203 @@ export interface components {
|
|
|
11020
11191
|
limit: number;
|
|
11021
11192
|
offset: number;
|
|
11022
11193
|
};
|
|
11194
|
+
/**
|
|
11195
|
+
* @description Deterministic scorer kinds for golden-case expected signals. Case pass = all signals pass. No LLM-as-judge in v1.
|
|
11196
|
+
* @enum {string}
|
|
11197
|
+
*/
|
|
11198
|
+
EvalExpectedSignalKindDto: "contains" | "not_contains" | "regex" | "json_path_equals";
|
|
11199
|
+
/**
|
|
11200
|
+
* @description Model provider vocabulary aligned with AI Usage `modelName` surfaces (`cursor` | `claude`).
|
|
11201
|
+
* @enum {string}
|
|
11202
|
+
*/
|
|
11203
|
+
EvalAiProviderDto: "cursor" | "claude";
|
|
11204
|
+
/** @description One expected signal on a golden case. Use `value` for `contains` / `not_contains` (substring) and for `json_path_equals` (expected value as string). Use `pattern` for `regex`. Use `path` (JSONPath) for `json_path_equals`. */
|
|
11205
|
+
EvalExpectedSignalDto: {
|
|
11206
|
+
id: string;
|
|
11207
|
+
kind: components["schemas"]["EvalExpectedSignalKindDto"];
|
|
11208
|
+
/** @description Substring for `contains` / `not_contains`, or expected value for `json_path_equals`. */
|
|
11209
|
+
value?: string;
|
|
11210
|
+
/** @description Regular expression source for `regex`. */
|
|
11211
|
+
pattern?: string;
|
|
11212
|
+
/** @description JSONPath expression for `json_path_equals`. */
|
|
11213
|
+
path?: string;
|
|
11214
|
+
};
|
|
11215
|
+
/** @description One golden case in a suite. 1–20 cases per suite; each case requires ≥1 expected signal. When `fixtureCompletion` is set, the worker scores that text without calling a live model (CI/demo path). */
|
|
11216
|
+
EvalCaseDto: {
|
|
11217
|
+
id: string;
|
|
11218
|
+
name: string;
|
|
11219
|
+
/** @description Case input payload (opaque string; often JSON text). */
|
|
11220
|
+
input: string;
|
|
11221
|
+
/** @description Optional fixture completion. When present, the worker uses it instead of a live provider call. */
|
|
11222
|
+
fixtureCompletion?: string;
|
|
11223
|
+
expectedSignals: components["schemas"]["EvalExpectedSignalDto"][];
|
|
11224
|
+
};
|
|
11225
|
+
/** @description Suite target — at least one of prompt or model. Prompt path requires non-empty `promptBody` (text snapshot) and may include optional `promptKey` slug. Model path requires `provider` + `modelName` (vendor string, same vocabulary as AI Usage `modelName`). Create/update reject when both prompt body is empty and model fields are missing. No separate prompt-template registry in v1; versioning is the suite `version`. */
|
|
11226
|
+
EvalSuiteTargetDto: {
|
|
11227
|
+
/** @description Prompt text snapshot. Empty string allowed only when model fields are set. */
|
|
11228
|
+
promptBody?: string;
|
|
11229
|
+
/** @description Optional slug for the prompt (not a registry foreign key in v1). */
|
|
11230
|
+
promptKey?: string | null;
|
|
11231
|
+
/**
|
|
11232
|
+
* @description Model provider; null when suite is prompt-only.
|
|
11233
|
+
* @enum {string|null}
|
|
11234
|
+
*/
|
|
11235
|
+
provider?: "cursor" | "claude" | null;
|
|
11236
|
+
/** @description Vendor model id string (aligned with AI Usage `modelName`). */
|
|
11237
|
+
modelName?: string | null;
|
|
11238
|
+
};
|
|
11239
|
+
/** @description Latest version of a workspace eval suite. Max 50 suites per workspace. Name 1–120 chars; description ≤ 2000; version starts at 1. */
|
|
11240
|
+
EvalSuiteDto: {
|
|
11241
|
+
/** Format: uuid */
|
|
11242
|
+
id: string;
|
|
11243
|
+
name: string;
|
|
11244
|
+
description: string;
|
|
11245
|
+
/** @description Monotonic suite version; bumps when target/cases/promptBody change. */
|
|
11246
|
+
version: number;
|
|
11247
|
+
/** Format: date-time */
|
|
11248
|
+
createdAt: string;
|
|
11249
|
+
/** Format: date-time */
|
|
11250
|
+
updatedAt: string;
|
|
11251
|
+
/** Format: uuid */
|
|
11252
|
+
createdByUserId: string;
|
|
11253
|
+
target: components["schemas"]["EvalSuiteTargetDto"];
|
|
11254
|
+
cases: components["schemas"]["EvalCaseDto"][];
|
|
11255
|
+
};
|
|
11256
|
+
EvalSuiteListDto: {
|
|
11257
|
+
suites: components["schemas"]["EvalSuiteDto"][];
|
|
11258
|
+
};
|
|
11259
|
+
CreateEvalSuiteBodyDto: {
|
|
11260
|
+
name: string;
|
|
11261
|
+
/** @default */
|
|
11262
|
+
description: string;
|
|
11263
|
+
target: components["schemas"]["EvalSuiteTargetDto"];
|
|
11264
|
+
cases: components["schemas"]["EvalCaseDto"][];
|
|
11265
|
+
};
|
|
11266
|
+
/** @description Full replace of mutable suite fields. Version bumps only when `target`, `cases`, or `promptBody` change versus the stored latest version. */
|
|
11267
|
+
UpdateEvalSuiteBodyDto: {
|
|
11268
|
+
name: string;
|
|
11269
|
+
/** @default */
|
|
11270
|
+
description: string;
|
|
11271
|
+
target: components["schemas"]["EvalSuiteTargetDto"];
|
|
11272
|
+
cases: components["schemas"]["EvalCaseDto"][];
|
|
11273
|
+
};
|
|
11274
|
+
/** @enum {string} */
|
|
11275
|
+
EvalRunStatusDto: "queued" | "running" | "succeeded" | "failed" | "cancelled";
|
|
11276
|
+
/**
|
|
11277
|
+
* @description Per-case outcome. `error` is used when completion is unavailable (`code: completion_unavailable`) or another non-score failure occurs.
|
|
11278
|
+
* @enum {string}
|
|
11279
|
+
*/
|
|
11280
|
+
EvalCaseResultStatusDto: "passed" | "failed" | "error";
|
|
11281
|
+
/** @description Persisted result for one case. `pass` is true only when `status` is `passed` (all expected signals matched). On signal failure, `pass` is false and `failedSignalIds` lists the failing signal ids. On `completion_unavailable`, `status` is `error` and `code` is set. */
|
|
11282
|
+
EvalCaseResultDto: {
|
|
11283
|
+
caseId: string;
|
|
11284
|
+
name: string;
|
|
11285
|
+
status: components["schemas"]["EvalCaseResultStatusDto"];
|
|
11286
|
+
pass: boolean;
|
|
11287
|
+
failedSignalIds: string[];
|
|
11288
|
+
/** @description Completion text used for scoring (fixture or live). */
|
|
11289
|
+
completion?: string | null;
|
|
11290
|
+
inputTokens?: number | null;
|
|
11291
|
+
outputTokens?: number | null;
|
|
11292
|
+
/** @description Provider-reported cost in cents when available. */
|
|
11293
|
+
costCents?: number | null;
|
|
11294
|
+
/** @description Machine-readable error when `status` is `error` (e.g. `completion_unavailable`). */
|
|
11295
|
+
code?: string | null;
|
|
11296
|
+
/** @description Human-readable error detail when `status` is `error`. */
|
|
11297
|
+
error?: string | null;
|
|
11298
|
+
};
|
|
11299
|
+
/** @description Immutable suite snapshot pinned on a run (`suiteVersion` + JSON). Used so historical runs stay interpretable after later suite edits. */
|
|
11300
|
+
EvalSuiteSnapshotDto: {
|
|
11301
|
+
name: string;
|
|
11302
|
+
description: string;
|
|
11303
|
+
version: number;
|
|
11304
|
+
target: components["schemas"]["EvalSuiteTargetDto"];
|
|
11305
|
+
cases: components["schemas"]["EvalCaseDto"][];
|
|
11306
|
+
};
|
|
11307
|
+
/** @description Persisted eval run. Suite score = `passedCases / scoredCases` in [0,1] when at least one case was scored; `null` when the run ends with all cases in `error` (status `failed`). List endpoints return at most the last 50 runs per suite. */
|
|
11308
|
+
EvalRunDto: {
|
|
11309
|
+
/** Format: uuid */
|
|
11310
|
+
id: string;
|
|
11311
|
+
/** Format: uuid */
|
|
11312
|
+
suiteId: string;
|
|
11313
|
+
suiteVersion: number;
|
|
11314
|
+
status: components["schemas"]["EvalRunStatusDto"];
|
|
11315
|
+
/**
|
|
11316
|
+
* Format: date-time
|
|
11317
|
+
* @description Set when the worker claims the run (`running`).
|
|
11318
|
+
*/
|
|
11319
|
+
startedAt: string | null;
|
|
11320
|
+
/** Format: date-time */
|
|
11321
|
+
finishedAt: string | null;
|
|
11322
|
+
passCount: number;
|
|
11323
|
+
failCount: number;
|
|
11324
|
+
errorCount: number;
|
|
11325
|
+
/** @description `passedCases / scoredCases` in [0,1], or null when no case was scored (all-error run). */
|
|
11326
|
+
score: number | null;
|
|
11327
|
+
caseResults: components["schemas"]["EvalCaseResultDto"][];
|
|
11328
|
+
/** @description Pinned suite snapshot for this run (present on persisted runs). */
|
|
11329
|
+
suiteSnapshot?: components["schemas"]["EvalSuiteSnapshotDto"] | null;
|
|
11330
|
+
};
|
|
11331
|
+
EvalRunListDto: {
|
|
11332
|
+
runs: components["schemas"]["EvalRunDto"][];
|
|
11333
|
+
};
|
|
11334
|
+
EvalRunEnqueueResponseDto: {
|
|
11335
|
+
/** Format: uuid */
|
|
11336
|
+
runId: string;
|
|
11337
|
+
/**
|
|
11338
|
+
* @description Always `queued` on enqueue; poll GET run for progress.
|
|
11339
|
+
* @enum {string}
|
|
11340
|
+
*/
|
|
11341
|
+
status: "queued";
|
|
11342
|
+
};
|
|
11343
|
+
/** @description Regression when prior score − current score ≥ 0.10 on the same suiteId+suiteVersion case set, or suite score drop ≥ 0.10. */
|
|
11344
|
+
EvalRegressionDto: {
|
|
11345
|
+
/** Format: uuid */
|
|
11346
|
+
suiteId: string;
|
|
11347
|
+
suiteName?: string;
|
|
11348
|
+
suiteVersion: number;
|
|
11349
|
+
/** @description Set for case-level regressions; null for suite-level score drops. */
|
|
11350
|
+
caseId?: string | null;
|
|
11351
|
+
caseName?: string | null;
|
|
11352
|
+
/** Format: uuid */
|
|
11353
|
+
priorRunId?: string;
|
|
11354
|
+
/** Format: uuid */
|
|
11355
|
+
currentRunId?: string;
|
|
11356
|
+
priorScore: number;
|
|
11357
|
+
currentScore: number;
|
|
11358
|
+
/** @description priorScore − currentScore (always ≥ 0.10 for listed items). */
|
|
11359
|
+
scoreDrop: number;
|
|
11360
|
+
};
|
|
11361
|
+
/** @description Tip derived from failed signal notes / case names on recent runs. */
|
|
11362
|
+
EvalPromptTipDto: {
|
|
11363
|
+
/** Format: uuid */
|
|
11364
|
+
suiteId: string;
|
|
11365
|
+
suiteName?: string;
|
|
11366
|
+
caseId?: string | null;
|
|
11367
|
+
caseName?: string | null;
|
|
11368
|
+
signalId?: string | null;
|
|
11369
|
+
message: string;
|
|
11370
|
+
};
|
|
11371
|
+
/** @description Averages over successful cases in the last succeeded run per suite (workspace rollup). Nullables when token/cost fields were not returned. */
|
|
11372
|
+
EvalTokenEfficiencyDto: {
|
|
11373
|
+
avgInputTokens: number | null;
|
|
11374
|
+
avgOutputTokens: number | null;
|
|
11375
|
+
avgCostCents: number | null;
|
|
11376
|
+
};
|
|
11377
|
+
EvalModelComparisonDto: {
|
|
11378
|
+
provider: components["schemas"]["EvalAiProviderDto"];
|
|
11379
|
+
modelName: string;
|
|
11380
|
+
suiteCount: number;
|
|
11381
|
+
/** @description Average suite score across succeeded runs for this model; null when none. */
|
|
11382
|
+
avgScore: number | null;
|
|
11383
|
+
};
|
|
11384
|
+
/** @description Insights hub payload for Prompt & model evals. Empty succeeded-run history → empty arrays and null `tokenEfficiency`. */
|
|
11385
|
+
EvalInsightsDto: {
|
|
11386
|
+
regressions: components["schemas"]["EvalRegressionDto"][];
|
|
11387
|
+
promptTips: components["schemas"]["EvalPromptTipDto"][];
|
|
11388
|
+
tokenEfficiency: components["schemas"]["EvalTokenEfficiencyDto"] | null;
|
|
11389
|
+
modelComparison: components["schemas"]["EvalModelComparisonDto"][];
|
|
11390
|
+
};
|
|
11023
11391
|
};
|
|
11024
11392
|
responses: {
|
|
11025
11393
|
/** @description Missing or invalid bearer token */
|
|
@@ -11057,6 +11425,10 @@ export interface components {
|
|
|
11057
11425
|
};
|
|
11058
11426
|
parameters: {
|
|
11059
11427
|
WorkspaceId: string;
|
|
11428
|
+
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
11429
|
+
EvalSuiteId: string;
|
|
11430
|
+
/** @description Eval run id (`tai_workspace_eval_runs.id`). */
|
|
11431
|
+
EvalRunId: string;
|
|
11060
11432
|
RepoId: string;
|
|
11061
11433
|
/** @description Provider repository slug in `owner/repo` form (GitHub). Used for shareable public URLs; resolves to the same row as `repoId` UUID internally. */
|
|
11062
11434
|
ProviderSlug: string;
|
|
@@ -11202,6 +11574,8 @@ export type PutCodeIntelligenceSettingsDto = components['schemas']['PutCodeIntel
|
|
|
11202
11574
|
export type CodeWikiGuidanceTopicDto = components['schemas']['CodeWikiGuidanceTopicDto'];
|
|
11203
11575
|
export type PutCodeIntelligenceAgentMdDto = components['schemas']['PutCodeIntelligenceAgentMdDto'];
|
|
11204
11576
|
export type CodeIntelligenceAgentMdDto = components['schemas']['CodeIntelligenceAgentMdDto'];
|
|
11577
|
+
export type CodeChatAttachmentLimitsDto = components['schemas']['CodeChatAttachmentLimitsDto'];
|
|
11578
|
+
export type CodeChatAttachmentMetaDto = components['schemas']['CodeChatAttachmentMetaDto'];
|
|
11205
11579
|
export type CodeChatReadinessDto = components['schemas']['CodeChatReadinessDto'];
|
|
11206
11580
|
export type CodeWikiGuidanceDto = components['schemas']['CodeWikiGuidanceDto'];
|
|
11207
11581
|
export type WorkspaceConfigDto = components['schemas']['WorkspaceConfigDto'];
|
|
@@ -11618,6 +11992,7 @@ export type CodeChatCitationDto = components['schemas']['CodeChatCitationDto'];
|
|
|
11618
11992
|
export type CodeChatMessageDto = components['schemas']['CodeChatMessageDto'];
|
|
11619
11993
|
export type CodeChatThreadDetailDto = components['schemas']['CodeChatThreadDetailDto'];
|
|
11620
11994
|
export type CodeChatPostMessageBodyDto = components['schemas']['CodeChatPostMessageBodyDto'];
|
|
11995
|
+
export type CodeChatUploadAttachmentBodyDto = components['schemas']['CodeChatUploadAttachmentBodyDto'];
|
|
11621
11996
|
export type CodeChatMessageReplyDto = components['schemas']['CodeChatMessageReplyDto'];
|
|
11622
11997
|
export type CodeChatApiRouteRowDto = components['schemas']['CodeChatApiRouteRowDto'];
|
|
11623
11998
|
export type CodeChatModuleInventoryRowDto = components['schemas']['CodeChatModuleInventoryRowDto'];
|
|
@@ -11706,10 +12081,33 @@ export type InsightsTestPyramidCiQualityDto = components['schemas']['InsightsTes
|
|
|
11706
12081
|
export type InsightsTestPyramidSummaryDto = components['schemas']['InsightsTestPyramidSummaryDto'];
|
|
11707
12082
|
export type InsightsTestPyramidRepoItemDto = components['schemas']['InsightsTestPyramidRepoItemDto'];
|
|
11708
12083
|
export type InsightsTestPyramidRepoListDto = components['schemas']['InsightsTestPyramidRepoListDto'];
|
|
12084
|
+
export type EvalExpectedSignalKindDto = components['schemas']['EvalExpectedSignalKindDto'];
|
|
12085
|
+
export type EvalAiProviderDto = components['schemas']['EvalAiProviderDto'];
|
|
12086
|
+
export type EvalExpectedSignalDto = components['schemas']['EvalExpectedSignalDto'];
|
|
12087
|
+
export type EvalCaseDto = components['schemas']['EvalCaseDto'];
|
|
12088
|
+
export type EvalSuiteTargetDto = components['schemas']['EvalSuiteTargetDto'];
|
|
12089
|
+
export type EvalSuiteDto = components['schemas']['EvalSuiteDto'];
|
|
12090
|
+
export type EvalSuiteListDto = components['schemas']['EvalSuiteListDto'];
|
|
12091
|
+
export type CreateEvalSuiteBodyDto = components['schemas']['CreateEvalSuiteBodyDto'];
|
|
12092
|
+
export type UpdateEvalSuiteBodyDto = components['schemas']['UpdateEvalSuiteBodyDto'];
|
|
12093
|
+
export type EvalRunStatusDto = components['schemas']['EvalRunStatusDto'];
|
|
12094
|
+
export type EvalCaseResultStatusDto = components['schemas']['EvalCaseResultStatusDto'];
|
|
12095
|
+
export type EvalCaseResultDto = components['schemas']['EvalCaseResultDto'];
|
|
12096
|
+
export type EvalSuiteSnapshotDto = components['schemas']['EvalSuiteSnapshotDto'];
|
|
12097
|
+
export type EvalRunDto = components['schemas']['EvalRunDto'];
|
|
12098
|
+
export type EvalRunListDto = components['schemas']['EvalRunListDto'];
|
|
12099
|
+
export type EvalRunEnqueueResponseDto = components['schemas']['EvalRunEnqueueResponseDto'];
|
|
12100
|
+
export type EvalRegressionDto = components['schemas']['EvalRegressionDto'];
|
|
12101
|
+
export type EvalPromptTipDto = components['schemas']['EvalPromptTipDto'];
|
|
12102
|
+
export type EvalTokenEfficiencyDto = components['schemas']['EvalTokenEfficiencyDto'];
|
|
12103
|
+
export type EvalModelComparisonDto = components['schemas']['EvalModelComparisonDto'];
|
|
12104
|
+
export type EvalInsightsDto = components['schemas']['EvalInsightsDto'];
|
|
11709
12105
|
export type ResponseUnauthorized = components['responses']['Unauthorized'];
|
|
11710
12106
|
export type ResponseForbidden = components['responses']['Forbidden'];
|
|
11711
12107
|
export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
|
|
11712
12108
|
export type ParameterWorkspaceId = components['parameters']['WorkspaceId'];
|
|
12109
|
+
export type ParameterEvalSuiteId = components['parameters']['EvalSuiteId'];
|
|
12110
|
+
export type ParameterEvalRunId = components['parameters']['EvalRunId'];
|
|
11713
12111
|
export type ParameterRepoId = components['parameters']['RepoId'];
|
|
11714
12112
|
export type ParameterProviderSlug = components['parameters']['ProviderSlug'];
|
|
11715
12113
|
export type ParameterProjectId = components['parameters']['ProjectId'];
|
|
@@ -20605,6 +21003,69 @@ export interface operations {
|
|
|
20605
21003
|
};
|
|
20606
21004
|
};
|
|
20607
21005
|
};
|
|
21006
|
+
postCodeChatAttachment: {
|
|
21007
|
+
parameters: {
|
|
21008
|
+
query?: never;
|
|
21009
|
+
header?: never;
|
|
21010
|
+
path: {
|
|
21011
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
21012
|
+
};
|
|
21013
|
+
cookie?: never;
|
|
21014
|
+
};
|
|
21015
|
+
requestBody: {
|
|
21016
|
+
content: {
|
|
21017
|
+
"application/json": components["schemas"]["CodeChatUploadAttachmentBodyDto"];
|
|
21018
|
+
};
|
|
21019
|
+
};
|
|
21020
|
+
responses: {
|
|
21021
|
+
/** @description Attachment stored */
|
|
21022
|
+
201: {
|
|
21023
|
+
headers: {
|
|
21024
|
+
[name: string]: unknown;
|
|
21025
|
+
};
|
|
21026
|
+
content: {
|
|
21027
|
+
"application/json": components["schemas"]["CodeChatAttachmentMetaDto"];
|
|
21028
|
+
};
|
|
21029
|
+
};
|
|
21030
|
+
/** @description Validation failed (size, type, totals) */
|
|
21031
|
+
400: {
|
|
21032
|
+
headers: {
|
|
21033
|
+
[name: string]: unknown;
|
|
21034
|
+
};
|
|
21035
|
+
content: {
|
|
21036
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
21037
|
+
};
|
|
21038
|
+
};
|
|
21039
|
+
401: components["responses"]["Unauthorized"];
|
|
21040
|
+
/** @description Engineering Context Graph is off */
|
|
21041
|
+
403: {
|
|
21042
|
+
headers: {
|
|
21043
|
+
[name: string]: unknown;
|
|
21044
|
+
};
|
|
21045
|
+
content: {
|
|
21046
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
21047
|
+
};
|
|
21048
|
+
};
|
|
21049
|
+
/** @description Chat not ready */
|
|
21050
|
+
409: {
|
|
21051
|
+
headers: {
|
|
21052
|
+
[name: string]: unknown;
|
|
21053
|
+
};
|
|
21054
|
+
content: {
|
|
21055
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
21056
|
+
};
|
|
21057
|
+
};
|
|
21058
|
+
/** @description Could not process the file */
|
|
21059
|
+
422: {
|
|
21060
|
+
headers: {
|
|
21061
|
+
[name: string]: unknown;
|
|
21062
|
+
};
|
|
21063
|
+
content: {
|
|
21064
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
21065
|
+
};
|
|
21066
|
+
};
|
|
21067
|
+
};
|
|
21068
|
+
};
|
|
20608
21069
|
getCodeChatIndex: {
|
|
20609
21070
|
parameters: {
|
|
20610
21071
|
query?: never;
|
|
@@ -24217,4 +24678,426 @@ export interface operations {
|
|
|
24217
24678
|
};
|
|
24218
24679
|
};
|
|
24219
24680
|
};
|
|
24681
|
+
listEvalSuites: {
|
|
24682
|
+
parameters: {
|
|
24683
|
+
query?: never;
|
|
24684
|
+
header?: never;
|
|
24685
|
+
path: {
|
|
24686
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
24687
|
+
};
|
|
24688
|
+
cookie?: never;
|
|
24689
|
+
};
|
|
24690
|
+
requestBody?: never;
|
|
24691
|
+
responses: {
|
|
24692
|
+
/** @description Suite list (latest version per suite) */
|
|
24693
|
+
200: {
|
|
24694
|
+
headers: {
|
|
24695
|
+
[name: string]: unknown;
|
|
24696
|
+
};
|
|
24697
|
+
content: {
|
|
24698
|
+
/**
|
|
24699
|
+
* @example {
|
|
24700
|
+
* "suites": []
|
|
24701
|
+
* }
|
|
24702
|
+
*/
|
|
24703
|
+
"application/json": components["schemas"]["EvalSuiteListDto"];
|
|
24704
|
+
};
|
|
24705
|
+
};
|
|
24706
|
+
401: components["responses"]["Unauthorized"];
|
|
24707
|
+
403: components["responses"]["Forbidden"];
|
|
24708
|
+
/** @description Workspace not found */
|
|
24709
|
+
404: {
|
|
24710
|
+
headers: {
|
|
24711
|
+
[name: string]: unknown;
|
|
24712
|
+
};
|
|
24713
|
+
content: {
|
|
24714
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24715
|
+
};
|
|
24716
|
+
};
|
|
24717
|
+
};
|
|
24718
|
+
};
|
|
24719
|
+
createEvalSuite: {
|
|
24720
|
+
parameters: {
|
|
24721
|
+
query?: never;
|
|
24722
|
+
header?: never;
|
|
24723
|
+
path: {
|
|
24724
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
24725
|
+
};
|
|
24726
|
+
cookie?: never;
|
|
24727
|
+
};
|
|
24728
|
+
requestBody: {
|
|
24729
|
+
content: {
|
|
24730
|
+
/**
|
|
24731
|
+
* @example {
|
|
24732
|
+
* "name": "Greeting quality",
|
|
24733
|
+
* "description": "Fixture-backed smoke suite for the support greeting prompt",
|
|
24734
|
+
* "target": {
|
|
24735
|
+
* "promptBody": "You are a support agent. Greet the user by name.",
|
|
24736
|
+
* "promptKey": "support-greeting",
|
|
24737
|
+
* "provider": "cursor",
|
|
24738
|
+
* "modelName": "gpt-4.1-mini"
|
|
24739
|
+
* },
|
|
24740
|
+
* "cases": [
|
|
24741
|
+
* {
|
|
24742
|
+
* "id": "case-hello",
|
|
24743
|
+
* "name": "Hello Alice",
|
|
24744
|
+
* "input": "{\"name\":\"Alice\"}",
|
|
24745
|
+
* "fixtureCompletion": "Hello Alice, how can I help you today?",
|
|
24746
|
+
* "expectedSignals": [
|
|
24747
|
+
* {
|
|
24748
|
+
* "id": "sig-contains-hello",
|
|
24749
|
+
* "kind": "contains",
|
|
24750
|
+
* "value": "Hello Alice"
|
|
24751
|
+
* },
|
|
24752
|
+
* {
|
|
24753
|
+
* "id": "sig-not-sorry",
|
|
24754
|
+
* "kind": "not_contains",
|
|
24755
|
+
* "value": "I cannot"
|
|
24756
|
+
* }
|
|
24757
|
+
* ]
|
|
24758
|
+
* }
|
|
24759
|
+
* ]
|
|
24760
|
+
* }
|
|
24761
|
+
*/
|
|
24762
|
+
"application/json": components["schemas"]["CreateEvalSuiteBodyDto"];
|
|
24763
|
+
};
|
|
24764
|
+
};
|
|
24765
|
+
responses: {
|
|
24766
|
+
/** @description Suite created */
|
|
24767
|
+
201: {
|
|
24768
|
+
headers: {
|
|
24769
|
+
[name: string]: unknown;
|
|
24770
|
+
};
|
|
24771
|
+
content: {
|
|
24772
|
+
"application/json": components["schemas"]["EvalSuiteDto"];
|
|
24773
|
+
};
|
|
24774
|
+
};
|
|
24775
|
+
/** @description Validation failed — empty cases (`eval_suite_cases_required`), missing target (prompt and model), invalid name/description lengths, case/signal bounds, or malformed body. */
|
|
24776
|
+
400: {
|
|
24777
|
+
headers: {
|
|
24778
|
+
[name: string]: unknown;
|
|
24779
|
+
};
|
|
24780
|
+
content: {
|
|
24781
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24782
|
+
};
|
|
24783
|
+
};
|
|
24784
|
+
401: components["responses"]["Unauthorized"];
|
|
24785
|
+
/** @description Authenticated but not a workspace editor/admin */
|
|
24786
|
+
403: {
|
|
24787
|
+
headers: {
|
|
24788
|
+
[name: string]: unknown;
|
|
24789
|
+
};
|
|
24790
|
+
content: {
|
|
24791
|
+
/**
|
|
24792
|
+
* @example {
|
|
24793
|
+
* "error": "Workspace editor role required",
|
|
24794
|
+
* "code": "workspace_editor_required"
|
|
24795
|
+
* }
|
|
24796
|
+
*/
|
|
24797
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24798
|
+
};
|
|
24799
|
+
};
|
|
24800
|
+
/** @description Workspace not found */
|
|
24801
|
+
404: {
|
|
24802
|
+
headers: {
|
|
24803
|
+
[name: string]: unknown;
|
|
24804
|
+
};
|
|
24805
|
+
content: {
|
|
24806
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24807
|
+
};
|
|
24808
|
+
};
|
|
24809
|
+
/** @description Workspace already has the maximum of 50 suites */
|
|
24810
|
+
409: {
|
|
24811
|
+
headers: {
|
|
24812
|
+
[name: string]: unknown;
|
|
24813
|
+
};
|
|
24814
|
+
content: {
|
|
24815
|
+
/**
|
|
24816
|
+
* @example {
|
|
24817
|
+
* "error": "Maximum of 50 eval suites per workspace",
|
|
24818
|
+
* "code": "eval_suite_limit_reached"
|
|
24819
|
+
* }
|
|
24820
|
+
*/
|
|
24821
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24822
|
+
};
|
|
24823
|
+
};
|
|
24824
|
+
};
|
|
24825
|
+
};
|
|
24826
|
+
getEvalSuite: {
|
|
24827
|
+
parameters: {
|
|
24828
|
+
query?: never;
|
|
24829
|
+
header?: never;
|
|
24830
|
+
path: {
|
|
24831
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
24832
|
+
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
24833
|
+
suiteId: components["parameters"]["EvalSuiteId"];
|
|
24834
|
+
};
|
|
24835
|
+
cookie?: never;
|
|
24836
|
+
};
|
|
24837
|
+
requestBody?: never;
|
|
24838
|
+
responses: {
|
|
24839
|
+
/** @description Suite (latest version) */
|
|
24840
|
+
200: {
|
|
24841
|
+
headers: {
|
|
24842
|
+
[name: string]: unknown;
|
|
24843
|
+
};
|
|
24844
|
+
content: {
|
|
24845
|
+
"application/json": components["schemas"]["EvalSuiteDto"];
|
|
24846
|
+
};
|
|
24847
|
+
};
|
|
24848
|
+
401: components["responses"]["Unauthorized"];
|
|
24849
|
+
403: components["responses"]["Forbidden"];
|
|
24850
|
+
/** @description Workspace or suite not found */
|
|
24851
|
+
404: {
|
|
24852
|
+
headers: {
|
|
24853
|
+
[name: string]: unknown;
|
|
24854
|
+
};
|
|
24855
|
+
content: {
|
|
24856
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24857
|
+
};
|
|
24858
|
+
};
|
|
24859
|
+
};
|
|
24860
|
+
};
|
|
24861
|
+
updateEvalSuite: {
|
|
24862
|
+
parameters: {
|
|
24863
|
+
query?: never;
|
|
24864
|
+
header?: never;
|
|
24865
|
+
path: {
|
|
24866
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
24867
|
+
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
24868
|
+
suiteId: components["parameters"]["EvalSuiteId"];
|
|
24869
|
+
};
|
|
24870
|
+
cookie?: never;
|
|
24871
|
+
};
|
|
24872
|
+
requestBody: {
|
|
24873
|
+
content: {
|
|
24874
|
+
"application/json": components["schemas"]["UpdateEvalSuiteBodyDto"];
|
|
24875
|
+
};
|
|
24876
|
+
};
|
|
24877
|
+
responses: {
|
|
24878
|
+
/** @description Suite updated (possibly with bumped version) */
|
|
24879
|
+
200: {
|
|
24880
|
+
headers: {
|
|
24881
|
+
[name: string]: unknown;
|
|
24882
|
+
};
|
|
24883
|
+
content: {
|
|
24884
|
+
"application/json": components["schemas"]["EvalSuiteDto"];
|
|
24885
|
+
};
|
|
24886
|
+
};
|
|
24887
|
+
/** @description Validation failed (same codes as create) */
|
|
24888
|
+
400: {
|
|
24889
|
+
headers: {
|
|
24890
|
+
[name: string]: unknown;
|
|
24891
|
+
};
|
|
24892
|
+
content: {
|
|
24893
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24894
|
+
};
|
|
24895
|
+
};
|
|
24896
|
+
401: components["responses"]["Unauthorized"];
|
|
24897
|
+
/** @description Authenticated but not a workspace editor/admin */
|
|
24898
|
+
403: {
|
|
24899
|
+
headers: {
|
|
24900
|
+
[name: string]: unknown;
|
|
24901
|
+
};
|
|
24902
|
+
content: {
|
|
24903
|
+
/**
|
|
24904
|
+
* @example {
|
|
24905
|
+
* "error": "Workspace editor role required",
|
|
24906
|
+
* "code": "workspace_editor_required"
|
|
24907
|
+
* }
|
|
24908
|
+
*/
|
|
24909
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24910
|
+
};
|
|
24911
|
+
};
|
|
24912
|
+
/** @description Workspace or suite not found */
|
|
24913
|
+
404: {
|
|
24914
|
+
headers: {
|
|
24915
|
+
[name: string]: unknown;
|
|
24916
|
+
};
|
|
24917
|
+
content: {
|
|
24918
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24919
|
+
};
|
|
24920
|
+
};
|
|
24921
|
+
};
|
|
24922
|
+
};
|
|
24923
|
+
listEvalRuns: {
|
|
24924
|
+
parameters: {
|
|
24925
|
+
query?: never;
|
|
24926
|
+
header?: never;
|
|
24927
|
+
path: {
|
|
24928
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
24929
|
+
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
24930
|
+
suiteId: components["parameters"]["EvalSuiteId"];
|
|
24931
|
+
};
|
|
24932
|
+
cookie?: never;
|
|
24933
|
+
};
|
|
24934
|
+
requestBody?: never;
|
|
24935
|
+
responses: {
|
|
24936
|
+
/** @description Run history (max 50) */
|
|
24937
|
+
200: {
|
|
24938
|
+
headers: {
|
|
24939
|
+
[name: string]: unknown;
|
|
24940
|
+
};
|
|
24941
|
+
content: {
|
|
24942
|
+
/**
|
|
24943
|
+
* @example {
|
|
24944
|
+
* "runs": []
|
|
24945
|
+
* }
|
|
24946
|
+
*/
|
|
24947
|
+
"application/json": components["schemas"]["EvalRunListDto"];
|
|
24948
|
+
};
|
|
24949
|
+
};
|
|
24950
|
+
401: components["responses"]["Unauthorized"];
|
|
24951
|
+
403: components["responses"]["Forbidden"];
|
|
24952
|
+
/** @description Workspace or suite not found */
|
|
24953
|
+
404: {
|
|
24954
|
+
headers: {
|
|
24955
|
+
[name: string]: unknown;
|
|
24956
|
+
};
|
|
24957
|
+
content: {
|
|
24958
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
24959
|
+
};
|
|
24960
|
+
};
|
|
24961
|
+
};
|
|
24962
|
+
};
|
|
24963
|
+
enqueueEvalRun: {
|
|
24964
|
+
parameters: {
|
|
24965
|
+
query?: never;
|
|
24966
|
+
header?: never;
|
|
24967
|
+
path: {
|
|
24968
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
24969
|
+
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
24970
|
+
suiteId: components["parameters"]["EvalSuiteId"];
|
|
24971
|
+
};
|
|
24972
|
+
cookie?: never;
|
|
24973
|
+
};
|
|
24974
|
+
requestBody?: never;
|
|
24975
|
+
responses: {
|
|
24976
|
+
/** @description Run queued */
|
|
24977
|
+
202: {
|
|
24978
|
+
headers: {
|
|
24979
|
+
[name: string]: unknown;
|
|
24980
|
+
};
|
|
24981
|
+
content: {
|
|
24982
|
+
/**
|
|
24983
|
+
* @example {
|
|
24984
|
+
* "runId": "22222222-2222-4222-8222-222222222222",
|
|
24985
|
+
* "status": "queued"
|
|
24986
|
+
* }
|
|
24987
|
+
*/
|
|
24988
|
+
"application/json": components["schemas"]["EvalRunEnqueueResponseDto"];
|
|
24989
|
+
};
|
|
24990
|
+
};
|
|
24991
|
+
401: components["responses"]["Unauthorized"];
|
|
24992
|
+
/** @description Authenticated but not a workspace editor/admin */
|
|
24993
|
+
403: {
|
|
24994
|
+
headers: {
|
|
24995
|
+
[name: string]: unknown;
|
|
24996
|
+
};
|
|
24997
|
+
content: {
|
|
24998
|
+
/**
|
|
24999
|
+
* @example {
|
|
25000
|
+
* "error": "Workspace editor role required",
|
|
25001
|
+
* "code": "workspace_editor_required"
|
|
25002
|
+
* }
|
|
25003
|
+
*/
|
|
25004
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
25005
|
+
};
|
|
25006
|
+
};
|
|
25007
|
+
/** @description Workspace or suite not found */
|
|
25008
|
+
404: {
|
|
25009
|
+
headers: {
|
|
25010
|
+
[name: string]: unknown;
|
|
25011
|
+
};
|
|
25012
|
+
content: {
|
|
25013
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
25014
|
+
};
|
|
25015
|
+
};
|
|
25016
|
+
/** @description An active queued or running eval already exists for this suite */
|
|
25017
|
+
409: {
|
|
25018
|
+
headers: {
|
|
25019
|
+
[name: string]: unknown;
|
|
25020
|
+
};
|
|
25021
|
+
content: {
|
|
25022
|
+
/**
|
|
25023
|
+
* @example {
|
|
25024
|
+
* "error": "An eval run is already in progress for this suite",
|
|
25025
|
+
* "code": "eval_run_in_progress"
|
|
25026
|
+
* }
|
|
25027
|
+
*/
|
|
25028
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
25029
|
+
};
|
|
25030
|
+
};
|
|
25031
|
+
};
|
|
25032
|
+
};
|
|
25033
|
+
getEvalRun: {
|
|
25034
|
+
parameters: {
|
|
25035
|
+
query?: never;
|
|
25036
|
+
header?: never;
|
|
25037
|
+
path: {
|
|
25038
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
25039
|
+
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
25040
|
+
suiteId: components["parameters"]["EvalSuiteId"];
|
|
25041
|
+
/** @description Eval run id (`tai_workspace_eval_runs.id`). */
|
|
25042
|
+
runId: components["parameters"]["EvalRunId"];
|
|
25043
|
+
};
|
|
25044
|
+
cookie?: never;
|
|
25045
|
+
};
|
|
25046
|
+
requestBody?: never;
|
|
25047
|
+
responses: {
|
|
25048
|
+
/** @description Run detail */
|
|
25049
|
+
200: {
|
|
25050
|
+
headers: {
|
|
25051
|
+
[name: string]: unknown;
|
|
25052
|
+
};
|
|
25053
|
+
content: {
|
|
25054
|
+
"application/json": components["schemas"]["EvalRunDto"];
|
|
25055
|
+
};
|
|
25056
|
+
};
|
|
25057
|
+
401: components["responses"]["Unauthorized"];
|
|
25058
|
+
403: components["responses"]["Forbidden"];
|
|
25059
|
+
/** @description Workspace, suite, or run not found */
|
|
25060
|
+
404: {
|
|
25061
|
+
headers: {
|
|
25062
|
+
[name: string]: unknown;
|
|
25063
|
+
};
|
|
25064
|
+
content: {
|
|
25065
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
25066
|
+
};
|
|
25067
|
+
};
|
|
25068
|
+
};
|
|
25069
|
+
};
|
|
25070
|
+
getEvalInsights: {
|
|
25071
|
+
parameters: {
|
|
25072
|
+
query?: never;
|
|
25073
|
+
header?: never;
|
|
25074
|
+
path: {
|
|
25075
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
25076
|
+
};
|
|
25077
|
+
cookie?: never;
|
|
25078
|
+
};
|
|
25079
|
+
requestBody?: never;
|
|
25080
|
+
responses: {
|
|
25081
|
+
/** @description Insights payload */
|
|
25082
|
+
200: {
|
|
25083
|
+
headers: {
|
|
25084
|
+
[name: string]: unknown;
|
|
25085
|
+
};
|
|
25086
|
+
content: {
|
|
25087
|
+
"application/json": components["schemas"]["EvalInsightsDto"];
|
|
25088
|
+
};
|
|
25089
|
+
};
|
|
25090
|
+
401: components["responses"]["Unauthorized"];
|
|
25091
|
+
403: components["responses"]["Forbidden"];
|
|
25092
|
+
/** @description Workspace not found */
|
|
25093
|
+
404: {
|
|
25094
|
+
headers: {
|
|
25095
|
+
[name: string]: unknown;
|
|
25096
|
+
};
|
|
25097
|
+
content: {
|
|
25098
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
25099
|
+
};
|
|
25100
|
+
};
|
|
25101
|
+
};
|
|
25102
|
+
};
|
|
24220
25103
|
}
|