windmill-client 1.849.0 → 1.851.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/core/OpenAPI.mjs +1 -1
- package/dist/index.js +325 -302
- package/dist/services.gen.d.ts +150 -138
- package/dist/services.gen.mjs +324 -301
- package/dist/types.gen.d.ts +644 -542
- package/package.json +1 -1
package/dist/types.gen.d.ts
CHANGED
|
@@ -1045,7 +1045,7 @@ export type AiAgent = {
|
|
|
1045
1045
|
*/
|
|
1046
1046
|
id: string;
|
|
1047
1047
|
/**
|
|
1048
|
-
* The name the AI agent calls this tool by, not a human label. On a flowmodule tool it must match ^[a-zA-Z0-9_]+$ - letters, numbers and underscores only (e.g. 'search_documentation', not 'Search documentation') - and always be set; on an mcp or
|
|
1048
|
+
* The name the AI agent calls this tool by, not a human label. On a flowmodule tool it must match ^[a-zA-Z0-9_]+$ - letters, numbers and underscores only (e.g. 'search_documentation', not 'Search documentation') - and always be set; on an mcp, websearch or question tool it is a plain label. Put the human-readable explanation in 'description'.
|
|
1049
1049
|
*/
|
|
1050
1050
|
summary?: string;
|
|
1051
1051
|
/**
|
|
@@ -1056,6 +1056,10 @@ export type AiAgent = {
|
|
|
1056
1056
|
* Scopes the token of this tool's jobs is restricted to, on top of the agent step's own restriction: a tool can only narrow it.
|
|
1057
1057
|
*/
|
|
1058
1058
|
job_token_scopes?: Array<(string)> | null;
|
|
1059
|
+
/**
|
|
1060
|
+
* Flowmodule and mcp tools only. Each call waits for a person to approve or reject it from the flow's run page or chat, without the agent holding a worker. Calls in the same turn that do not require approval run right away. A rejected call, or one nobody answers within 30 minutes, is reported to the AI as not run.
|
|
1061
|
+
*/
|
|
1062
|
+
requires_approval?: boolean;
|
|
1059
1063
|
/**
|
|
1060
1064
|
* The implementation of a tool. Can be a flow module (script/flow) or an MCP tool reference
|
|
1061
1065
|
*/
|
|
@@ -1077,6 +1081,12 @@ export type AiAgent = {
|
|
|
1077
1081
|
exclude_tools?: Array<(string)>;
|
|
1078
1082
|
} | {
|
|
1079
1083
|
tool_type: 'websearch';
|
|
1084
|
+
} | {
|
|
1085
|
+
tool_type: 'question';
|
|
1086
|
+
/**
|
|
1087
|
+
* Seconds to wait for an answer before the question is reported to the AI as timed out. Defaults to 1800.
|
|
1088
|
+
*/
|
|
1089
|
+
timeout?: number;
|
|
1080
1090
|
};
|
|
1081
1091
|
}>;
|
|
1082
1092
|
type: 'aiagent';
|
|
@@ -1230,6 +1240,27 @@ export type FlowStatusModule = {
|
|
|
1230
1240
|
};
|
|
1231
1241
|
} | {
|
|
1232
1242
|
type: 'web_search';
|
|
1243
|
+
} | {
|
|
1244
|
+
type: 'approval';
|
|
1245
|
+
call_id: string;
|
|
1246
|
+
calls: Array<{
|
|
1247
|
+
function_name: string;
|
|
1248
|
+
arguments: unknown;
|
|
1249
|
+
}>;
|
|
1250
|
+
expires_at: string;
|
|
1251
|
+
} | {
|
|
1252
|
+
type: 'question';
|
|
1253
|
+
call_id: string;
|
|
1254
|
+
question: string;
|
|
1255
|
+
/**
|
|
1256
|
+
* answers the model proposes; a free-text answer is always possible
|
|
1257
|
+
*/
|
|
1258
|
+
choices?: Array<(string)>;
|
|
1259
|
+
/**
|
|
1260
|
+
* whether several choices can be picked together
|
|
1261
|
+
*/
|
|
1262
|
+
multi_select?: boolean;
|
|
1263
|
+
expires_at: string;
|
|
1233
1264
|
} | {
|
|
1234
1265
|
type: 'message';
|
|
1235
1266
|
})>;
|
|
@@ -6888,6 +6919,10 @@ export type GitRepositorySettings = {
|
|
|
6888
6919
|
auto_pull?: AutoPullSettings;
|
|
6889
6920
|
promotion_open_prs?: boolean;
|
|
6890
6921
|
fork_open_prs?: boolean;
|
|
6922
|
+
/**
|
|
6923
|
+
* review every pull request against the tracked branch with the workspace's AI
|
|
6924
|
+
*/
|
|
6925
|
+
ai_review_prs?: boolean;
|
|
6891
6926
|
/**
|
|
6892
6927
|
* server-owned, last failure opening a PR for a deploy branch of this repo
|
|
6893
6928
|
*/
|
|
@@ -7190,6 +7225,10 @@ export type RoleCapabilities = {
|
|
|
7190
7225
|
apps: AuthorLevel;
|
|
7191
7226
|
manage_schedules: boolean;
|
|
7192
7227
|
manage_triggers: boolean;
|
|
7228
|
+
/**
|
|
7229
|
+
* Fork the workspace.
|
|
7230
|
+
*/
|
|
7231
|
+
fork: boolean;
|
|
7193
7232
|
visibility: RoleVisibility;
|
|
7194
7233
|
};
|
|
7195
7234
|
/**
|
|
@@ -7201,6 +7240,7 @@ export type RoleCapabilitiesPatch = {
|
|
|
7201
7240
|
apps?: AuthorLevel;
|
|
7202
7241
|
manage_schedules?: boolean;
|
|
7203
7242
|
manage_triggers?: boolean;
|
|
7243
|
+
fork?: boolean;
|
|
7204
7244
|
visibility?: {
|
|
7205
7245
|
[key: string]: (boolean);
|
|
7206
7246
|
};
|
|
@@ -7608,6 +7648,13 @@ export type ProtectionRuleset = {
|
|
|
7608
7648
|
rules: ProtectionRules;
|
|
7609
7649
|
bypass_groups: RuleBypasserGroups;
|
|
7610
7650
|
bypass_users: RuleBypasserUsers;
|
|
7651
|
+
fork_role_mapping?: ForkRoleMapping;
|
|
7652
|
+
};
|
|
7653
|
+
/**
|
|
7654
|
+
* Role a member of this workspace gets in a fork of it, keyed by the role it holds here. Unmapped roles carry over unchanged; where two rulesets map the same role, the first by name wins. On update, omitting it leaves the stored mapping unchanged.
|
|
7655
|
+
*/
|
|
7656
|
+
export type ForkRoleMapping = {
|
|
7657
|
+
[key: string]: (string);
|
|
7611
7658
|
};
|
|
7612
7659
|
/**
|
|
7613
7660
|
* Configuration of protection restrictions
|
|
@@ -10351,6 +10398,7 @@ export type CreateProtectionRuleData = {
|
|
|
10351
10398
|
rules: ProtectionRules;
|
|
10352
10399
|
bypass_groups: RuleBypasserGroups;
|
|
10353
10400
|
bypass_users: RuleBypasserUsers;
|
|
10401
|
+
fork_role_mapping?: ForkRoleMapping;
|
|
10354
10402
|
};
|
|
10355
10403
|
workspace: string;
|
|
10356
10404
|
};
|
|
@@ -10367,6 +10415,7 @@ export type UpdateProtectionRuleData = {
|
|
|
10367
10415
|
rules: ProtectionRules;
|
|
10368
10416
|
bypass_groups: RuleBypasserGroups;
|
|
10369
10417
|
bypass_users: RuleBypasserUsers;
|
|
10418
|
+
fork_role_mapping?: ForkRoleMapping;
|
|
10370
10419
|
};
|
|
10371
10420
|
/**
|
|
10372
10421
|
* Name of the protection rule to update
|
|
@@ -10605,6 +10654,7 @@ export type GetInstanceUiResponse = {
|
|
|
10605
10654
|
instance_banner?: unknown;
|
|
10606
10655
|
accent_color?: unknown;
|
|
10607
10656
|
api_base_url?: unknown;
|
|
10657
|
+
api_base_url_applies_to?: unknown;
|
|
10608
10658
|
};
|
|
10609
10659
|
export type GetRuffConfigResponse = string;
|
|
10610
10660
|
export type GetLocalResponse = unknown;
|
|
@@ -16288,250 +16338,22 @@ export type UnshareAgentFromSlackChannelData = {
|
|
|
16288
16338
|
workspace: string;
|
|
16289
16339
|
};
|
|
16290
16340
|
export type UnshareAgentFromSlackChannelResponse = string;
|
|
16291
|
-
export type
|
|
16292
|
-
workspace: string;
|
|
16293
|
-
};
|
|
16294
|
-
export type ListEvalDatasetsResponse = Array<EvalDataset>;
|
|
16295
|
-
export type CreateEvalDatasetData = {
|
|
16296
|
-
/**
|
|
16297
|
-
* new eval dataset
|
|
16298
|
-
*/
|
|
16341
|
+
export type CompleteAiData = {
|
|
16299
16342
|
requestBody: {
|
|
16300
|
-
|
|
16301
|
-
|
|
16302
|
-
scorers?: Array<Scorer>;
|
|
16303
|
-
/**
|
|
16304
|
-
* The cases to create the dataset holding, so one can be assembled in a single act rather than created empty and filled in afterwards.
|
|
16305
|
-
*/
|
|
16306
|
-
cases?: Array<NewEvalCase>;
|
|
16307
|
-
};
|
|
16308
|
-
workspace: string;
|
|
16309
|
-
};
|
|
16310
|
-
export type CreateEvalDatasetResponse = string;
|
|
16311
|
-
export type GetEvalDatasetData = {
|
|
16312
|
-
path: string;
|
|
16313
|
-
workspace: string;
|
|
16314
|
-
};
|
|
16315
|
-
export type GetEvalDatasetResponse = EvalDataset;
|
|
16316
|
-
export type UpdateEvalDatasetData = {
|
|
16317
|
-
path: string;
|
|
16318
|
-
/**
|
|
16319
|
-
* updated eval dataset
|
|
16320
|
-
*/
|
|
16321
|
-
requestBody: {
|
|
16322
|
-
/**
|
|
16323
|
-
* Renames the dataset. Its cases and experiments follow through the foreign keys, so a rename keeps the history it already has.
|
|
16324
|
-
*
|
|
16325
|
-
*/
|
|
16326
|
-
path?: string;
|
|
16327
|
-
/**
|
|
16328
|
-
* Left out to keep the stored summary; sent as "" to clear it.
|
|
16329
|
-
*/
|
|
16330
|
-
summary?: string;
|
|
16331
|
-
/**
|
|
16332
|
-
* Left out to keep the dataset's columns as they are; sent to replace them wholesale.
|
|
16333
|
-
*
|
|
16334
|
-
*/
|
|
16335
|
-
scorers?: Array<Scorer>;
|
|
16343
|
+
system: string;
|
|
16344
|
+
user: string;
|
|
16336
16345
|
/**
|
|
16337
|
-
*
|
|
16338
|
-
*
|
|
16346
|
+
* defaults to the AI config's default model
|
|
16339
16347
|
*/
|
|
16340
|
-
|
|
16348
|
+
model?: AIProviderModel;
|
|
16349
|
+
max_tokens?: number;
|
|
16341
16350
|
};
|
|
16342
16351
|
workspace: string;
|
|
16343
16352
|
};
|
|
16344
|
-
export type
|
|
16345
|
-
|
|
16346
|
-
|
|
16347
|
-
workspace: string;
|
|
16348
|
-
};
|
|
16349
|
-
export type DeleteEvalDatasetResponse = string;
|
|
16350
|
-
export type ListEvalCasesData = {
|
|
16351
|
-
/**
|
|
16352
|
-
* which page to return (start at 1, default 1)
|
|
16353
|
-
*/
|
|
16354
|
-
page?: number;
|
|
16355
|
-
path: string;
|
|
16356
|
-
/**
|
|
16357
|
-
* number of items to return for a given page (default 30, max 100)
|
|
16358
|
-
*/
|
|
16359
|
-
perPage?: number;
|
|
16360
|
-
workspace: string;
|
|
16361
|
-
};
|
|
16362
|
-
export type ListEvalCasesResponse = {
|
|
16363
|
-
cases: Array<EvalCase>;
|
|
16364
|
-
};
|
|
16365
|
-
export type EvalSubjectStateData = {
|
|
16366
|
-
path: string;
|
|
16367
|
-
workspace: string;
|
|
16368
|
-
};
|
|
16369
|
-
export type EvalSubjectStateResponse = {
|
|
16370
|
-
version?: number;
|
|
16371
|
-
};
|
|
16372
|
-
export type EvalRunPayloadData = {
|
|
16373
|
-
/**
|
|
16374
|
-
* The flow job that answered the case.
|
|
16375
|
-
*/
|
|
16376
|
-
jobId: string;
|
|
16377
|
-
workspace: string;
|
|
16378
|
-
};
|
|
16379
|
-
export type EvalRunPayloadResponse = {
|
|
16380
|
-
/**
|
|
16381
|
-
* The case, the answer, and every tool call the agent made.
|
|
16382
|
-
*/
|
|
16383
|
-
run: {
|
|
16384
|
-
[key: string]: unknown;
|
|
16385
|
-
};
|
|
16386
|
-
/**
|
|
16387
|
-
* The same run as a judge agent is shown it.
|
|
16388
|
-
*/
|
|
16389
|
-
rendered: string;
|
|
16390
|
-
};
|
|
16391
|
-
export type ScorerDefaultsData = {
|
|
16392
|
-
workspace: string;
|
|
16393
|
-
};
|
|
16394
|
-
export type ScorerDefaultsResponse = {
|
|
16395
|
-
/**
|
|
16396
|
-
* The system prompt a judge agent is created with.
|
|
16397
|
-
*/
|
|
16398
|
-
judge_prompt: string;
|
|
16399
|
-
script_template: string;
|
|
16400
|
-
};
|
|
16401
|
-
export type RecentScorersData = {
|
|
16402
|
-
/**
|
|
16403
|
-
* only scorers of this kind
|
|
16404
|
-
*/
|
|
16405
|
-
kind?: 'script' | 'agent';
|
|
16406
|
-
workspace: string;
|
|
16407
|
-
};
|
|
16408
|
-
export type RecentScorersResponse = Array<(Scorer & {
|
|
16409
|
-
/**
|
|
16410
|
-
* The dataset it is a column of.
|
|
16411
|
-
*/
|
|
16412
|
-
dataset: string;
|
|
16413
|
-
})>;
|
|
16414
|
-
export type RunExperimentData = {
|
|
16415
|
-
/**
|
|
16416
|
-
* what to run
|
|
16417
|
-
*/
|
|
16418
|
-
requestBody: {
|
|
16419
|
-
dataset: string;
|
|
16420
|
-
subject: EvalSubject;
|
|
16421
|
-
};
|
|
16422
|
-
workspace: string;
|
|
16423
|
-
};
|
|
16424
|
-
export type RunExperimentResponse = string;
|
|
16425
|
-
export type CollectExperimentData = {
|
|
16426
|
-
id: string;
|
|
16427
|
-
workspace: string;
|
|
16428
|
-
};
|
|
16429
|
-
export type CollectExperimentResponse = number;
|
|
16430
|
-
export type ListAllExperimentsData = {
|
|
16431
|
-
/**
|
|
16432
|
-
* Restrict to one agent's runs, which is what makes the list a history rather than a log. Runs of what is deployed, of a past version, and of the edits waiting on top are all that agent's, so this does not discriminate by kind.
|
|
16433
|
-
*
|
|
16434
|
-
*/
|
|
16435
|
-
subjectPath?: string;
|
|
16436
|
-
workspace: string;
|
|
16437
|
-
};
|
|
16438
|
-
export type ListAllExperimentsResponse = Array<EvalExperiment>;
|
|
16439
|
-
export type ExperimentResultsData = {
|
|
16440
|
-
/**
|
|
16441
|
-
* The experiment every column is compared against. A delta is only computed between two scores of the same scorer id, and a column the baseline was never scored with reports it rather than showing a difference.
|
|
16442
|
-
*
|
|
16443
|
-
*/
|
|
16444
|
-
baseline?: string;
|
|
16445
|
-
/**
|
|
16446
|
-
* the experiment to read
|
|
16447
|
-
*/
|
|
16448
|
-
id: string;
|
|
16449
|
-
path: string;
|
|
16450
|
-
workspace: string;
|
|
16451
|
-
};
|
|
16452
|
-
export type ExperimentResultsResponse = {
|
|
16453
|
-
experiment: EvalExperiment;
|
|
16454
|
-
baseline?: EvalExperiment;
|
|
16455
|
-
/**
|
|
16456
|
-
* The columns, which belong to the dataset rather than the experiment.
|
|
16457
|
-
*/
|
|
16458
|
-
scorers: Array<Scorer>;
|
|
16459
|
-
rows: Array<ExperimentRow>;
|
|
16460
|
-
means: Array<ScorerMean>;
|
|
16461
|
-
/**
|
|
16462
|
-
* Cells scoring lower than the baseline, across every column.
|
|
16463
|
-
*/
|
|
16464
|
-
regressed: number;
|
|
16465
|
-
/**
|
|
16466
|
-
* The version the subject is on now. A row that ran against an earlier one describes an agent that no longer exists.
|
|
16467
|
-
*
|
|
16468
|
-
*/
|
|
16469
|
-
subject_current_version?: number;
|
|
16470
|
-
/**
|
|
16471
|
-
* What the agent hashes to as deployed. A run of unsaved edits carrying this hash ran exactly what is deployed now — the edits were saved — so it is a run of that version rather than of edits.
|
|
16472
|
-
*
|
|
16473
|
-
*/
|
|
16474
|
-
subject_deployed_hash?: string;
|
|
16475
|
-
};
|
|
16476
|
-
export type ListPathAutocompletePathsData = {
|
|
16477
|
-
/**
|
|
16478
|
-
* bypass the server-side cache and re-query the DB, refreshing the
|
|
16479
|
-
* cache. Used right after a deploy so the new path appears immediately.
|
|
16480
|
-
*
|
|
16481
|
-
*/
|
|
16482
|
-
force?: boolean;
|
|
16483
|
-
workspace: string;
|
|
16484
|
-
};
|
|
16485
|
-
export type ListPathAutocompletePathsResponse = {
|
|
16486
|
-
paths: Array<(string)>;
|
|
16487
|
-
};
|
|
16488
|
-
export type ListRawAppsData = {
|
|
16489
|
-
/**
|
|
16490
|
-
* filter by exact matching user creator. Supports comma-separated list (e.g. 'alice,bob') and negation by prefixing all values with '!' (e.g. '!alice,!bob')
|
|
16491
|
-
*/
|
|
16492
|
-
createdBy?: string;
|
|
16493
|
-
/**
|
|
16494
|
-
* When true, append per-user draft rows whose path has no
|
|
16495
|
-
* deployed counterpart. Synthesized rows carry `draft_only: true`
|
|
16496
|
-
* so the home page can render a "Draft" badge. Gated to
|
|
16497
|
-
* non-operators + page 0 + no narrowing filters on the backend so
|
|
16498
|
-
* picker callers stay deployed-only and pagination stays clean.
|
|
16499
|
-
*
|
|
16500
|
-
*/
|
|
16501
|
-
includeDraftOnly?: boolean;
|
|
16502
|
-
/**
|
|
16503
|
-
* Filter by label
|
|
16504
|
-
*/
|
|
16505
|
-
label?: string;
|
|
16506
|
-
/**
|
|
16507
|
-
* order by desc order (default true)
|
|
16508
|
-
*/
|
|
16509
|
-
orderDesc?: boolean;
|
|
16510
|
-
/**
|
|
16511
|
-
* which page to return (start at 1, default 1)
|
|
16512
|
-
*/
|
|
16513
|
-
page?: number;
|
|
16514
|
-
/**
|
|
16515
|
-
* mask to filter exact matching path
|
|
16516
|
-
*/
|
|
16517
|
-
pathExact?: string;
|
|
16518
|
-
/**
|
|
16519
|
-
* mask to filter matching starting path
|
|
16520
|
-
*/
|
|
16521
|
-
pathStart?: string;
|
|
16522
|
-
/**
|
|
16523
|
-
* number of items to return for a given page (default 30, max 100)
|
|
16524
|
-
*/
|
|
16525
|
-
perPage?: number;
|
|
16526
|
-
/**
|
|
16527
|
-
* (default false)
|
|
16528
|
-
* show only the starred items
|
|
16529
|
-
*
|
|
16530
|
-
*/
|
|
16531
|
-
starredOnly?: boolean;
|
|
16532
|
-
workspace: string;
|
|
16353
|
+
export type CompleteAiResponse = {
|
|
16354
|
+
text: string;
|
|
16355
|
+
model: AIProviderModel;
|
|
16533
16356
|
};
|
|
16534
|
-
export type ListRawAppsResponse = Array<ListableRawApp>;
|
|
16535
16357
|
export type RecordAiUsageData = {
|
|
16536
16358
|
requestBody: {
|
|
16537
16359
|
events: Array<AITokenUsageEvent>;
|
|
@@ -16711,6 +16533,250 @@ export type UnshareAiSessionData = {
|
|
|
16711
16533
|
workspace: string;
|
|
16712
16534
|
};
|
|
16713
16535
|
export type UnshareAiSessionResponse = string;
|
|
16536
|
+
export type ListEvalDatasetsData = {
|
|
16537
|
+
workspace: string;
|
|
16538
|
+
};
|
|
16539
|
+
export type ListEvalDatasetsResponse = Array<EvalDataset>;
|
|
16540
|
+
export type CreateEvalDatasetData = {
|
|
16541
|
+
/**
|
|
16542
|
+
* new eval dataset
|
|
16543
|
+
*/
|
|
16544
|
+
requestBody: {
|
|
16545
|
+
path: string;
|
|
16546
|
+
summary?: string;
|
|
16547
|
+
scorers?: Array<Scorer>;
|
|
16548
|
+
/**
|
|
16549
|
+
* The cases to create the dataset holding, so one can be assembled in a single act rather than created empty and filled in afterwards.
|
|
16550
|
+
*/
|
|
16551
|
+
cases?: Array<NewEvalCase>;
|
|
16552
|
+
};
|
|
16553
|
+
workspace: string;
|
|
16554
|
+
};
|
|
16555
|
+
export type CreateEvalDatasetResponse = string;
|
|
16556
|
+
export type GetEvalDatasetData = {
|
|
16557
|
+
path: string;
|
|
16558
|
+
workspace: string;
|
|
16559
|
+
};
|
|
16560
|
+
export type GetEvalDatasetResponse = EvalDataset;
|
|
16561
|
+
export type UpdateEvalDatasetData = {
|
|
16562
|
+
path: string;
|
|
16563
|
+
/**
|
|
16564
|
+
* updated eval dataset
|
|
16565
|
+
*/
|
|
16566
|
+
requestBody: {
|
|
16567
|
+
/**
|
|
16568
|
+
* Renames the dataset. Its cases and experiments follow through the foreign keys, so a rename keeps the history it already has.
|
|
16569
|
+
*
|
|
16570
|
+
*/
|
|
16571
|
+
path?: string;
|
|
16572
|
+
/**
|
|
16573
|
+
* Left out to keep the stored summary; sent as "" to clear it.
|
|
16574
|
+
*/
|
|
16575
|
+
summary?: string;
|
|
16576
|
+
/**
|
|
16577
|
+
* Left out to keep the dataset's columns as they are; sent to replace them wholesale.
|
|
16578
|
+
*
|
|
16579
|
+
*/
|
|
16580
|
+
scorers?: Array<Scorer>;
|
|
16581
|
+
/**
|
|
16582
|
+
* The cases as they should stand afterwards: all of them, each carrying its id if the dataset already has it. Sent with the rest of an edit so that a rename the dataset refuses refuses the case edits with it.
|
|
16583
|
+
*
|
|
16584
|
+
*/
|
|
16585
|
+
cases?: Array<SaveEvalCase>;
|
|
16586
|
+
};
|
|
16587
|
+
workspace: string;
|
|
16588
|
+
};
|
|
16589
|
+
export type UpdateEvalDatasetResponse = string;
|
|
16590
|
+
export type DeleteEvalDatasetData = {
|
|
16591
|
+
path: string;
|
|
16592
|
+
workspace: string;
|
|
16593
|
+
};
|
|
16594
|
+
export type DeleteEvalDatasetResponse = string;
|
|
16595
|
+
export type ListEvalCasesData = {
|
|
16596
|
+
/**
|
|
16597
|
+
* which page to return (start at 1, default 1)
|
|
16598
|
+
*/
|
|
16599
|
+
page?: number;
|
|
16600
|
+
path: string;
|
|
16601
|
+
/**
|
|
16602
|
+
* number of items to return for a given page (default 30, max 100)
|
|
16603
|
+
*/
|
|
16604
|
+
perPage?: number;
|
|
16605
|
+
workspace: string;
|
|
16606
|
+
};
|
|
16607
|
+
export type ListEvalCasesResponse = {
|
|
16608
|
+
cases: Array<EvalCase>;
|
|
16609
|
+
};
|
|
16610
|
+
export type EvalSubjectStateData = {
|
|
16611
|
+
path: string;
|
|
16612
|
+
workspace: string;
|
|
16613
|
+
};
|
|
16614
|
+
export type EvalSubjectStateResponse = {
|
|
16615
|
+
version?: number;
|
|
16616
|
+
};
|
|
16617
|
+
export type EvalRunPayloadData = {
|
|
16618
|
+
/**
|
|
16619
|
+
* The flow job that answered the case.
|
|
16620
|
+
*/
|
|
16621
|
+
jobId: string;
|
|
16622
|
+
workspace: string;
|
|
16623
|
+
};
|
|
16624
|
+
export type EvalRunPayloadResponse = {
|
|
16625
|
+
/**
|
|
16626
|
+
* The case, the answer, and every tool call the agent made.
|
|
16627
|
+
*/
|
|
16628
|
+
run: {
|
|
16629
|
+
[key: string]: unknown;
|
|
16630
|
+
};
|
|
16631
|
+
/**
|
|
16632
|
+
* The same run as a judge agent is shown it.
|
|
16633
|
+
*/
|
|
16634
|
+
rendered: string;
|
|
16635
|
+
};
|
|
16636
|
+
export type ScorerDefaultsData = {
|
|
16637
|
+
workspace: string;
|
|
16638
|
+
};
|
|
16639
|
+
export type ScorerDefaultsResponse = {
|
|
16640
|
+
/**
|
|
16641
|
+
* The system prompt a judge agent is created with.
|
|
16642
|
+
*/
|
|
16643
|
+
judge_prompt: string;
|
|
16644
|
+
script_template: string;
|
|
16645
|
+
};
|
|
16646
|
+
export type RecentScorersData = {
|
|
16647
|
+
/**
|
|
16648
|
+
* only scorers of this kind
|
|
16649
|
+
*/
|
|
16650
|
+
kind?: 'script' | 'agent';
|
|
16651
|
+
workspace: string;
|
|
16652
|
+
};
|
|
16653
|
+
export type RecentScorersResponse = Array<(Scorer & {
|
|
16654
|
+
/**
|
|
16655
|
+
* The dataset it is a column of.
|
|
16656
|
+
*/
|
|
16657
|
+
dataset: string;
|
|
16658
|
+
})>;
|
|
16659
|
+
export type RunExperimentData = {
|
|
16660
|
+
/**
|
|
16661
|
+
* what to run
|
|
16662
|
+
*/
|
|
16663
|
+
requestBody: {
|
|
16664
|
+
dataset: string;
|
|
16665
|
+
subject: EvalSubject;
|
|
16666
|
+
};
|
|
16667
|
+
workspace: string;
|
|
16668
|
+
};
|
|
16669
|
+
export type RunExperimentResponse = string;
|
|
16670
|
+
export type CollectExperimentData = {
|
|
16671
|
+
id: string;
|
|
16672
|
+
workspace: string;
|
|
16673
|
+
};
|
|
16674
|
+
export type CollectExperimentResponse = number;
|
|
16675
|
+
export type ListAllExperimentsData = {
|
|
16676
|
+
/**
|
|
16677
|
+
* Restrict to one agent's runs, which is what makes the list a history rather than a log. Runs of what is deployed, of a past version, and of the edits waiting on top are all that agent's, so this does not discriminate by kind.
|
|
16678
|
+
*
|
|
16679
|
+
*/
|
|
16680
|
+
subjectPath?: string;
|
|
16681
|
+
workspace: string;
|
|
16682
|
+
};
|
|
16683
|
+
export type ListAllExperimentsResponse = Array<EvalExperiment>;
|
|
16684
|
+
export type ExperimentResultsData = {
|
|
16685
|
+
/**
|
|
16686
|
+
* The experiment every column is compared against. A delta is only computed between two scores of the same scorer id, and a column the baseline was never scored with reports it rather than showing a difference.
|
|
16687
|
+
*
|
|
16688
|
+
*/
|
|
16689
|
+
baseline?: string;
|
|
16690
|
+
/**
|
|
16691
|
+
* the experiment to read
|
|
16692
|
+
*/
|
|
16693
|
+
id: string;
|
|
16694
|
+
path: string;
|
|
16695
|
+
workspace: string;
|
|
16696
|
+
};
|
|
16697
|
+
export type ExperimentResultsResponse = {
|
|
16698
|
+
experiment: EvalExperiment;
|
|
16699
|
+
baseline?: EvalExperiment;
|
|
16700
|
+
/**
|
|
16701
|
+
* The columns, which belong to the dataset rather than the experiment.
|
|
16702
|
+
*/
|
|
16703
|
+
scorers: Array<Scorer>;
|
|
16704
|
+
rows: Array<ExperimentRow>;
|
|
16705
|
+
means: Array<ScorerMean>;
|
|
16706
|
+
/**
|
|
16707
|
+
* Cells scoring lower than the baseline, across every column.
|
|
16708
|
+
*/
|
|
16709
|
+
regressed: number;
|
|
16710
|
+
/**
|
|
16711
|
+
* The version the subject is on now. A row that ran against an earlier one describes an agent that no longer exists.
|
|
16712
|
+
*
|
|
16713
|
+
*/
|
|
16714
|
+
subject_current_version?: number;
|
|
16715
|
+
/**
|
|
16716
|
+
* What the agent hashes to as deployed. A run of unsaved edits carrying this hash ran exactly what is deployed now — the edits were saved — so it is a run of that version rather than of edits.
|
|
16717
|
+
*
|
|
16718
|
+
*/
|
|
16719
|
+
subject_deployed_hash?: string;
|
|
16720
|
+
};
|
|
16721
|
+
export type ListPathAutocompletePathsData = {
|
|
16722
|
+
/**
|
|
16723
|
+
* bypass the server-side cache and re-query the DB, refreshing the
|
|
16724
|
+
* cache. Used right after a deploy so the new path appears immediately.
|
|
16725
|
+
*
|
|
16726
|
+
*/
|
|
16727
|
+
force?: boolean;
|
|
16728
|
+
workspace: string;
|
|
16729
|
+
};
|
|
16730
|
+
export type ListPathAutocompletePathsResponse = {
|
|
16731
|
+
paths: Array<(string)>;
|
|
16732
|
+
};
|
|
16733
|
+
export type ListRawAppsData = {
|
|
16734
|
+
/**
|
|
16735
|
+
* filter by exact matching user creator. Supports comma-separated list (e.g. 'alice,bob') and negation by prefixing all values with '!' (e.g. '!alice,!bob')
|
|
16736
|
+
*/
|
|
16737
|
+
createdBy?: string;
|
|
16738
|
+
/**
|
|
16739
|
+
* When true, append per-user draft rows whose path has no
|
|
16740
|
+
* deployed counterpart. Synthesized rows carry `draft_only: true`
|
|
16741
|
+
* so the home page can render a "Draft" badge. Gated to
|
|
16742
|
+
* non-operators + page 0 + no narrowing filters on the backend so
|
|
16743
|
+
* picker callers stay deployed-only and pagination stays clean.
|
|
16744
|
+
*
|
|
16745
|
+
*/
|
|
16746
|
+
includeDraftOnly?: boolean;
|
|
16747
|
+
/**
|
|
16748
|
+
* Filter by label
|
|
16749
|
+
*/
|
|
16750
|
+
label?: string;
|
|
16751
|
+
/**
|
|
16752
|
+
* order by desc order (default true)
|
|
16753
|
+
*/
|
|
16754
|
+
orderDesc?: boolean;
|
|
16755
|
+
/**
|
|
16756
|
+
* which page to return (start at 1, default 1)
|
|
16757
|
+
*/
|
|
16758
|
+
page?: number;
|
|
16759
|
+
/**
|
|
16760
|
+
* mask to filter exact matching path
|
|
16761
|
+
*/
|
|
16762
|
+
pathExact?: string;
|
|
16763
|
+
/**
|
|
16764
|
+
* mask to filter matching starting path
|
|
16765
|
+
*/
|
|
16766
|
+
pathStart?: string;
|
|
16767
|
+
/**
|
|
16768
|
+
* number of items to return for a given page (default 30, max 100)
|
|
16769
|
+
*/
|
|
16770
|
+
perPage?: number;
|
|
16771
|
+
/**
|
|
16772
|
+
* (default false)
|
|
16773
|
+
* show only the starred items
|
|
16774
|
+
*
|
|
16775
|
+
*/
|
|
16776
|
+
starredOnly?: boolean;
|
|
16777
|
+
workspace: string;
|
|
16778
|
+
};
|
|
16779
|
+
export type ListRawAppsResponse = Array<ListableRawApp>;
|
|
16714
16780
|
export type ResumeSuspendedTriggerJobsData = {
|
|
16715
16781
|
/**
|
|
16716
16782
|
* Optional list of job IDs to reassign
|
|
@@ -20011,6 +20077,10 @@ export type GetHubProjectExportData = {
|
|
|
20011
20077
|
* hub project slug (3-50 chars, lowercase alphanumeric and hyphens, no leading/trailing hyphen)
|
|
20012
20078
|
*/
|
|
20013
20079
|
slug: string;
|
|
20080
|
+
/**
|
|
20081
|
+
* id of a reviewed project version to export instead of the current one (see the hub's `/projects/{slug}/versions`)
|
|
20082
|
+
*/
|
|
20083
|
+
version?: number;
|
|
20014
20084
|
workspace: string;
|
|
20015
20085
|
};
|
|
20016
20086
|
export type GetHubProjectExportResponse = string;
|
|
@@ -24172,6 +24242,7 @@ export type $OpenApiTs = {
|
|
|
24172
24242
|
rules: ProtectionRules;
|
|
24173
24243
|
bypass_groups: RuleBypasserGroups;
|
|
24174
24244
|
bypass_users: RuleBypasserUsers;
|
|
24245
|
+
fork_role_mapping?: ForkRoleMapping;
|
|
24175
24246
|
};
|
|
24176
24247
|
workspace: string;
|
|
24177
24248
|
};
|
|
@@ -24201,6 +24272,7 @@ export type $OpenApiTs = {
|
|
|
24201
24272
|
rules: ProtectionRules;
|
|
24202
24273
|
bypass_groups: RuleBypasserGroups;
|
|
24203
24274
|
bypass_users: RuleBypasserUsers;
|
|
24275
|
+
fork_role_mapping?: ForkRoleMapping;
|
|
24204
24276
|
};
|
|
24205
24277
|
/**
|
|
24206
24278
|
* Name of the protection rule to update
|
|
@@ -24748,12 +24820,13 @@ export type $OpenApiTs = {
|
|
|
24748
24820
|
get: {
|
|
24749
24821
|
res: {
|
|
24750
24822
|
/**
|
|
24751
|
-
* the instance_banner, accent_color and
|
|
24823
|
+
* the instance_banner, accent_color, api_base_url and api_base_url_applies_to settings
|
|
24752
24824
|
*/
|
|
24753
24825
|
200: {
|
|
24754
24826
|
instance_banner?: unknown;
|
|
24755
24827
|
accent_color?: unknown;
|
|
24756
24828
|
api_base_url?: unknown;
|
|
24829
|
+
api_base_url_applies_to?: unknown;
|
|
24757
24830
|
};
|
|
24758
24831
|
};
|
|
24759
24832
|
};
|
|
@@ -33701,6 +33774,334 @@ export type $OpenApiTs = {
|
|
|
33701
33774
|
};
|
|
33702
33775
|
};
|
|
33703
33776
|
};
|
|
33777
|
+
'/w/{workspace}/ai/complete': {
|
|
33778
|
+
post: {
|
|
33779
|
+
req: {
|
|
33780
|
+
requestBody: {
|
|
33781
|
+
system: string;
|
|
33782
|
+
user: string;
|
|
33783
|
+
/**
|
|
33784
|
+
* defaults to the AI config's default model
|
|
33785
|
+
*/
|
|
33786
|
+
model?: AIProviderModel;
|
|
33787
|
+
max_tokens?: number;
|
|
33788
|
+
};
|
|
33789
|
+
workspace: string;
|
|
33790
|
+
};
|
|
33791
|
+
res: {
|
|
33792
|
+
/**
|
|
33793
|
+
* the answer, and the model that wrote it
|
|
33794
|
+
*/
|
|
33795
|
+
200: {
|
|
33796
|
+
text: string;
|
|
33797
|
+
model: AIProviderModel;
|
|
33798
|
+
};
|
|
33799
|
+
};
|
|
33800
|
+
};
|
|
33801
|
+
};
|
|
33802
|
+
'/w/{workspace}/ai/usage': {
|
|
33803
|
+
post: {
|
|
33804
|
+
req: {
|
|
33805
|
+
requestBody: {
|
|
33806
|
+
events: Array<AITokenUsageEvent>;
|
|
33807
|
+
};
|
|
33808
|
+
workspace: string;
|
|
33809
|
+
};
|
|
33810
|
+
res: {
|
|
33811
|
+
/**
|
|
33812
|
+
* usage recorded
|
|
33813
|
+
*/
|
|
33814
|
+
204: void;
|
|
33815
|
+
};
|
|
33816
|
+
};
|
|
33817
|
+
get: {
|
|
33818
|
+
req: {
|
|
33819
|
+
days?: number;
|
|
33820
|
+
groupBy?: 'day' | 'user' | 'model';
|
|
33821
|
+
/**
|
|
33822
|
+
* workspace-wide usage (admin only) or the calling user's own
|
|
33823
|
+
*/
|
|
33824
|
+
scope?: 'workspace' | 'self';
|
|
33825
|
+
workspace: string;
|
|
33826
|
+
};
|
|
33827
|
+
res: {
|
|
33828
|
+
/**
|
|
33829
|
+
* usage buckets
|
|
33830
|
+
*/
|
|
33831
|
+
200: {
|
|
33832
|
+
buckets: Array<AITokenUsageBucket>;
|
|
33833
|
+
/**
|
|
33834
|
+
* more buckets matched than were returned, so summing them under-reports
|
|
33835
|
+
*/
|
|
33836
|
+
truncated: boolean;
|
|
33837
|
+
};
|
|
33838
|
+
};
|
|
33839
|
+
};
|
|
33840
|
+
};
|
|
33841
|
+
'/w/{workspace}/ai/sessions/list': {
|
|
33842
|
+
get: {
|
|
33843
|
+
req: {
|
|
33844
|
+
workspace: string;
|
|
33845
|
+
};
|
|
33846
|
+
res: {
|
|
33847
|
+
/**
|
|
33848
|
+
* backups, newest first; `enabled` is false when the workspace has no storage for them
|
|
33849
|
+
*/
|
|
33850
|
+
200: {
|
|
33851
|
+
enabled: boolean;
|
|
33852
|
+
/**
|
|
33853
|
+
* names the storage answered from; sync state recorded against another one is void
|
|
33854
|
+
*/
|
|
33855
|
+
storage_id?: string;
|
|
33856
|
+
/**
|
|
33857
|
+
* bumped by every workspace key rotation; sync state recorded under another one is void
|
|
33858
|
+
*/
|
|
33859
|
+
backup_generation?: number;
|
|
33860
|
+
/**
|
|
33861
|
+
* the storage answered from is the instance object store, standing in for a workspace without storage of its own; a removal owed to it is retired by any answer from the workspace's own storage
|
|
33862
|
+
*/
|
|
33863
|
+
fallback?: boolean;
|
|
33864
|
+
/**
|
|
33865
|
+
* the newest 500 at most
|
|
33866
|
+
*/
|
|
33867
|
+
sessions: Array<AISessionBackupListing>;
|
|
33868
|
+
/**
|
|
33869
|
+
* the user has more sessions than the answer names
|
|
33870
|
+
*/
|
|
33871
|
+
truncated?: boolean;
|
|
33872
|
+
};
|
|
33873
|
+
};
|
|
33874
|
+
};
|
|
33875
|
+
};
|
|
33876
|
+
'/w/{workspace}/ai/sessions/pull': {
|
|
33877
|
+
post: {
|
|
33878
|
+
req: {
|
|
33879
|
+
requestBody: {
|
|
33880
|
+
ids: Array<(string)>;
|
|
33881
|
+
resume?: AISessionBackupCursor;
|
|
33882
|
+
};
|
|
33883
|
+
workspace: string;
|
|
33884
|
+
};
|
|
33885
|
+
res: {
|
|
33886
|
+
/**
|
|
33887
|
+
* the backups found; `deferred` lists ids that did not fit the response budget
|
|
33888
|
+
*/
|
|
33889
|
+
200: {
|
|
33890
|
+
enabled: boolean;
|
|
33891
|
+
storage_id?: string;
|
|
33892
|
+
backup_generation?: number;
|
|
33893
|
+
fallback?: boolean;
|
|
33894
|
+
sessions: Array<AISessionBackup>;
|
|
33895
|
+
deferred: Array<(string)>;
|
|
33896
|
+
};
|
|
33897
|
+
};
|
|
33898
|
+
};
|
|
33899
|
+
};
|
|
33900
|
+
'/w/{workspace}/ai/sessions/push': {
|
|
33901
|
+
post: {
|
|
33902
|
+
req: {
|
|
33903
|
+
requestBody: {
|
|
33904
|
+
/**
|
|
33905
|
+
* the email the push was prepared for; refused with a 409 when it is not the caller's
|
|
33906
|
+
*/
|
|
33907
|
+
owner: string;
|
|
33908
|
+
sessions?: Array<AISessionBackupPush>;
|
|
33909
|
+
removed?: Array<(string)>;
|
|
33910
|
+
};
|
|
33911
|
+
workspace: string;
|
|
33912
|
+
};
|
|
33913
|
+
res: {
|
|
33914
|
+
/**
|
|
33915
|
+
* one result per session written or removed, in request order
|
|
33916
|
+
*/
|
|
33917
|
+
200: {
|
|
33918
|
+
enabled: boolean;
|
|
33919
|
+
storage_id?: string;
|
|
33920
|
+
backup_generation?: number;
|
|
33921
|
+
fallback?: boolean;
|
|
33922
|
+
results: Array<{
|
|
33923
|
+
id: string;
|
|
33924
|
+
error?: string;
|
|
33925
|
+
/**
|
|
33926
|
+
* nothing was written and the session must be pushed whole again; an incremental part found no listed session to ride on (the backup was removed, or a push split over parts is in progress or was abandoned), or a later part of a push split over parts found another push had superseded it
|
|
33927
|
+
*/
|
|
33928
|
+
needs_whole?: boolean;
|
|
33929
|
+
}>;
|
|
33930
|
+
};
|
|
33931
|
+
};
|
|
33932
|
+
};
|
|
33933
|
+
};
|
|
33934
|
+
'/w/{workspace}/ai/shared_artifacts/share': {
|
|
33935
|
+
post: {
|
|
33936
|
+
req: {
|
|
33937
|
+
requestBody: {
|
|
33938
|
+
/**
|
|
33939
|
+
* the artifact's id in the author's session
|
|
33940
|
+
*/
|
|
33941
|
+
artifact_id: string;
|
|
33942
|
+
name: string;
|
|
33943
|
+
kind: 'md' | 'html';
|
|
33944
|
+
version: number;
|
|
33945
|
+
content: string;
|
|
33946
|
+
};
|
|
33947
|
+
workspace: string;
|
|
33948
|
+
};
|
|
33949
|
+
res: {
|
|
33950
|
+
/**
|
|
33951
|
+
* the shared copy
|
|
33952
|
+
*/
|
|
33953
|
+
200: SharedAiArtifactInfo;
|
|
33954
|
+
};
|
|
33955
|
+
};
|
|
33956
|
+
};
|
|
33957
|
+
'/w/{workspace}/ai/shared_artifacts/status': {
|
|
33958
|
+
get: {
|
|
33959
|
+
req: {
|
|
33960
|
+
artifactId: string;
|
|
33961
|
+
workspace: string;
|
|
33962
|
+
};
|
|
33963
|
+
res: {
|
|
33964
|
+
/**
|
|
33965
|
+
* the live share, if any, and how long shares last
|
|
33966
|
+
*/
|
|
33967
|
+
200: {
|
|
33968
|
+
retention_secs: number;
|
|
33969
|
+
share?: SharedAiArtifactInfo;
|
|
33970
|
+
};
|
|
33971
|
+
};
|
|
33972
|
+
};
|
|
33973
|
+
};
|
|
33974
|
+
'/w/{workspace}/ai/shared_artifacts/get/{id}': {
|
|
33975
|
+
get: {
|
|
33976
|
+
req: {
|
|
33977
|
+
id: string;
|
|
33978
|
+
workspace: string;
|
|
33979
|
+
};
|
|
33980
|
+
res: {
|
|
33981
|
+
/**
|
|
33982
|
+
* the shared artifact
|
|
33983
|
+
*/
|
|
33984
|
+
200: SharedAiArtifactInfo & {
|
|
33985
|
+
content: string;
|
|
33986
|
+
/**
|
|
33987
|
+
* whether the caller authored the share or is a workspace admin
|
|
33988
|
+
*/
|
|
33989
|
+
can_unshare: boolean;
|
|
33990
|
+
};
|
|
33991
|
+
};
|
|
33992
|
+
};
|
|
33993
|
+
};
|
|
33994
|
+
'/w/{workspace}/ai/shared_artifacts/delete/{id}': {
|
|
33995
|
+
delete: {
|
|
33996
|
+
req: {
|
|
33997
|
+
id: string;
|
|
33998
|
+
workspace: string;
|
|
33999
|
+
};
|
|
34000
|
+
res: {
|
|
34001
|
+
/**
|
|
34002
|
+
* share deleted
|
|
34003
|
+
*/
|
|
34004
|
+
200: string;
|
|
34005
|
+
};
|
|
34006
|
+
};
|
|
34007
|
+
};
|
|
34008
|
+
'/w/{workspace}/ai/shared_sessions/share': {
|
|
34009
|
+
post: {
|
|
34010
|
+
req: {
|
|
34011
|
+
requestBody: {
|
|
34012
|
+
/**
|
|
34013
|
+
* the session's id in the author's browser
|
|
34014
|
+
*/
|
|
34015
|
+
session_id: string;
|
|
34016
|
+
name: string;
|
|
34017
|
+
/**
|
|
34018
|
+
* left as it is on an existing share when absent; a new share starts private
|
|
34019
|
+
*/
|
|
34020
|
+
is_public?: boolean;
|
|
34021
|
+
message_count: number;
|
|
34022
|
+
snapshot: {
|
|
34023
|
+
[key: string]: unknown;
|
|
34024
|
+
};
|
|
34025
|
+
};
|
|
34026
|
+
workspace: string;
|
|
34027
|
+
};
|
|
34028
|
+
res: {
|
|
34029
|
+
/**
|
|
34030
|
+
* the shared snapshot
|
|
34031
|
+
*/
|
|
34032
|
+
200: SharedAiSessionInfo;
|
|
34033
|
+
};
|
|
34034
|
+
};
|
|
34035
|
+
};
|
|
34036
|
+
'/w/{workspace}/ai/shared_sessions/status': {
|
|
34037
|
+
get: {
|
|
34038
|
+
req: {
|
|
34039
|
+
sessionId: string;
|
|
34040
|
+
workspace: string;
|
|
34041
|
+
};
|
|
34042
|
+
res: {
|
|
34043
|
+
/**
|
|
34044
|
+
* the share, if any
|
|
34045
|
+
*/
|
|
34046
|
+
200: {
|
|
34047
|
+
share?: SharedAiSessionInfo;
|
|
34048
|
+
};
|
|
34049
|
+
};
|
|
34050
|
+
};
|
|
34051
|
+
};
|
|
34052
|
+
'/w/{workspace}/ai/shared_sessions/set_public/{id}': {
|
|
34053
|
+
post: {
|
|
34054
|
+
req: {
|
|
34055
|
+
id: string;
|
|
34056
|
+
requestBody: {
|
|
34057
|
+
is_public: boolean;
|
|
34058
|
+
};
|
|
34059
|
+
workspace: string;
|
|
34060
|
+
};
|
|
34061
|
+
res: {
|
|
34062
|
+
/**
|
|
34063
|
+
* the updated share
|
|
34064
|
+
*/
|
|
34065
|
+
200: SharedAiSessionInfo;
|
|
34066
|
+
};
|
|
34067
|
+
};
|
|
34068
|
+
};
|
|
34069
|
+
'/w/{workspace}/ai_u/shared_sessions/get/{id}': {
|
|
34070
|
+
get: {
|
|
34071
|
+
req: {
|
|
34072
|
+
id: string;
|
|
34073
|
+
workspace: string;
|
|
34074
|
+
};
|
|
34075
|
+
res: {
|
|
34076
|
+
/**
|
|
34077
|
+
* the shared session
|
|
34078
|
+
*/
|
|
34079
|
+
200: SharedAiSessionInfo & {
|
|
34080
|
+
snapshot: {
|
|
34081
|
+
[key: string]: unknown;
|
|
34082
|
+
};
|
|
34083
|
+
/**
|
|
34084
|
+
* whether the caller authored the share or is a workspace admin
|
|
34085
|
+
*/
|
|
34086
|
+
can_unshare: boolean;
|
|
34087
|
+
};
|
|
34088
|
+
};
|
|
34089
|
+
};
|
|
34090
|
+
};
|
|
34091
|
+
'/w/{workspace}/ai/shared_sessions/delete/{id}': {
|
|
34092
|
+
delete: {
|
|
34093
|
+
req: {
|
|
34094
|
+
id: string;
|
|
34095
|
+
workspace: string;
|
|
34096
|
+
};
|
|
34097
|
+
res: {
|
|
34098
|
+
/**
|
|
34099
|
+
* share deleted
|
|
34100
|
+
*/
|
|
34101
|
+
200: string;
|
|
34102
|
+
};
|
|
34103
|
+
};
|
|
34104
|
+
};
|
|
33704
34105
|
'/w/{workspace}/ai_evals/datasets/list': {
|
|
33705
34106
|
get: {
|
|
33706
34107
|
req: {
|
|
@@ -34090,309 +34491,6 @@ export type $OpenApiTs = {
|
|
|
34090
34491
|
};
|
|
34091
34492
|
};
|
|
34092
34493
|
};
|
|
34093
|
-
'/w/{workspace}/ai/usage': {
|
|
34094
|
-
post: {
|
|
34095
|
-
req: {
|
|
34096
|
-
requestBody: {
|
|
34097
|
-
events: Array<AITokenUsageEvent>;
|
|
34098
|
-
};
|
|
34099
|
-
workspace: string;
|
|
34100
|
-
};
|
|
34101
|
-
res: {
|
|
34102
|
-
/**
|
|
34103
|
-
* usage recorded
|
|
34104
|
-
*/
|
|
34105
|
-
204: void;
|
|
34106
|
-
};
|
|
34107
|
-
};
|
|
34108
|
-
get: {
|
|
34109
|
-
req: {
|
|
34110
|
-
days?: number;
|
|
34111
|
-
groupBy?: 'day' | 'user' | 'model';
|
|
34112
|
-
/**
|
|
34113
|
-
* workspace-wide usage (admin only) or the calling user's own
|
|
34114
|
-
*/
|
|
34115
|
-
scope?: 'workspace' | 'self';
|
|
34116
|
-
workspace: string;
|
|
34117
|
-
};
|
|
34118
|
-
res: {
|
|
34119
|
-
/**
|
|
34120
|
-
* usage buckets
|
|
34121
|
-
*/
|
|
34122
|
-
200: {
|
|
34123
|
-
buckets: Array<AITokenUsageBucket>;
|
|
34124
|
-
/**
|
|
34125
|
-
* more buckets matched than were returned, so summing them under-reports
|
|
34126
|
-
*/
|
|
34127
|
-
truncated: boolean;
|
|
34128
|
-
};
|
|
34129
|
-
};
|
|
34130
|
-
};
|
|
34131
|
-
};
|
|
34132
|
-
'/w/{workspace}/ai/sessions/list': {
|
|
34133
|
-
get: {
|
|
34134
|
-
req: {
|
|
34135
|
-
workspace: string;
|
|
34136
|
-
};
|
|
34137
|
-
res: {
|
|
34138
|
-
/**
|
|
34139
|
-
* backups, newest first; `enabled` is false when the workspace has no storage for them
|
|
34140
|
-
*/
|
|
34141
|
-
200: {
|
|
34142
|
-
enabled: boolean;
|
|
34143
|
-
/**
|
|
34144
|
-
* names the storage answered from; sync state recorded against another one is void
|
|
34145
|
-
*/
|
|
34146
|
-
storage_id?: string;
|
|
34147
|
-
/**
|
|
34148
|
-
* bumped by every workspace key rotation; sync state recorded under another one is void
|
|
34149
|
-
*/
|
|
34150
|
-
backup_generation?: number;
|
|
34151
|
-
/**
|
|
34152
|
-
* the storage answered from is the instance object store, standing in for a workspace without storage of its own; a removal owed to it is retired by any answer from the workspace's own storage
|
|
34153
|
-
*/
|
|
34154
|
-
fallback?: boolean;
|
|
34155
|
-
/**
|
|
34156
|
-
* the newest 500 at most
|
|
34157
|
-
*/
|
|
34158
|
-
sessions: Array<AISessionBackupListing>;
|
|
34159
|
-
/**
|
|
34160
|
-
* the user has more sessions than the answer names
|
|
34161
|
-
*/
|
|
34162
|
-
truncated?: boolean;
|
|
34163
|
-
};
|
|
34164
|
-
};
|
|
34165
|
-
};
|
|
34166
|
-
};
|
|
34167
|
-
'/w/{workspace}/ai/sessions/pull': {
|
|
34168
|
-
post: {
|
|
34169
|
-
req: {
|
|
34170
|
-
requestBody: {
|
|
34171
|
-
ids: Array<(string)>;
|
|
34172
|
-
resume?: AISessionBackupCursor;
|
|
34173
|
-
};
|
|
34174
|
-
workspace: string;
|
|
34175
|
-
};
|
|
34176
|
-
res: {
|
|
34177
|
-
/**
|
|
34178
|
-
* the backups found; `deferred` lists ids that did not fit the response budget
|
|
34179
|
-
*/
|
|
34180
|
-
200: {
|
|
34181
|
-
enabled: boolean;
|
|
34182
|
-
storage_id?: string;
|
|
34183
|
-
backup_generation?: number;
|
|
34184
|
-
fallback?: boolean;
|
|
34185
|
-
sessions: Array<AISessionBackup>;
|
|
34186
|
-
deferred: Array<(string)>;
|
|
34187
|
-
};
|
|
34188
|
-
};
|
|
34189
|
-
};
|
|
34190
|
-
};
|
|
34191
|
-
'/w/{workspace}/ai/sessions/push': {
|
|
34192
|
-
post: {
|
|
34193
|
-
req: {
|
|
34194
|
-
requestBody: {
|
|
34195
|
-
/**
|
|
34196
|
-
* the email the push was prepared for; refused with a 409 when it is not the caller's
|
|
34197
|
-
*/
|
|
34198
|
-
owner: string;
|
|
34199
|
-
sessions?: Array<AISessionBackupPush>;
|
|
34200
|
-
removed?: Array<(string)>;
|
|
34201
|
-
};
|
|
34202
|
-
workspace: string;
|
|
34203
|
-
};
|
|
34204
|
-
res: {
|
|
34205
|
-
/**
|
|
34206
|
-
* one result per session written or removed, in request order
|
|
34207
|
-
*/
|
|
34208
|
-
200: {
|
|
34209
|
-
enabled: boolean;
|
|
34210
|
-
storage_id?: string;
|
|
34211
|
-
backup_generation?: number;
|
|
34212
|
-
fallback?: boolean;
|
|
34213
|
-
results: Array<{
|
|
34214
|
-
id: string;
|
|
34215
|
-
error?: string;
|
|
34216
|
-
/**
|
|
34217
|
-
* nothing was written and the session must be pushed whole again; an incremental part found no listed session to ride on (the backup was removed, or a push split over parts is in progress or was abandoned), or a later part of a push split over parts found another push had superseded it
|
|
34218
|
-
*/
|
|
34219
|
-
needs_whole?: boolean;
|
|
34220
|
-
}>;
|
|
34221
|
-
};
|
|
34222
|
-
};
|
|
34223
|
-
};
|
|
34224
|
-
};
|
|
34225
|
-
'/w/{workspace}/ai/shared_artifacts/share': {
|
|
34226
|
-
post: {
|
|
34227
|
-
req: {
|
|
34228
|
-
requestBody: {
|
|
34229
|
-
/**
|
|
34230
|
-
* the artifact's id in the author's session
|
|
34231
|
-
*/
|
|
34232
|
-
artifact_id: string;
|
|
34233
|
-
name: string;
|
|
34234
|
-
kind: 'md' | 'html';
|
|
34235
|
-
version: number;
|
|
34236
|
-
content: string;
|
|
34237
|
-
};
|
|
34238
|
-
workspace: string;
|
|
34239
|
-
};
|
|
34240
|
-
res: {
|
|
34241
|
-
/**
|
|
34242
|
-
* the shared copy
|
|
34243
|
-
*/
|
|
34244
|
-
200: SharedAiArtifactInfo;
|
|
34245
|
-
};
|
|
34246
|
-
};
|
|
34247
|
-
};
|
|
34248
|
-
'/w/{workspace}/ai/shared_artifacts/status': {
|
|
34249
|
-
get: {
|
|
34250
|
-
req: {
|
|
34251
|
-
artifactId: string;
|
|
34252
|
-
workspace: string;
|
|
34253
|
-
};
|
|
34254
|
-
res: {
|
|
34255
|
-
/**
|
|
34256
|
-
* the live share, if any, and how long shares last
|
|
34257
|
-
*/
|
|
34258
|
-
200: {
|
|
34259
|
-
retention_secs: number;
|
|
34260
|
-
share?: SharedAiArtifactInfo;
|
|
34261
|
-
};
|
|
34262
|
-
};
|
|
34263
|
-
};
|
|
34264
|
-
};
|
|
34265
|
-
'/w/{workspace}/ai/shared_artifacts/get/{id}': {
|
|
34266
|
-
get: {
|
|
34267
|
-
req: {
|
|
34268
|
-
id: string;
|
|
34269
|
-
workspace: string;
|
|
34270
|
-
};
|
|
34271
|
-
res: {
|
|
34272
|
-
/**
|
|
34273
|
-
* the shared artifact
|
|
34274
|
-
*/
|
|
34275
|
-
200: SharedAiArtifactInfo & {
|
|
34276
|
-
content: string;
|
|
34277
|
-
/**
|
|
34278
|
-
* whether the caller authored the share or is a workspace admin
|
|
34279
|
-
*/
|
|
34280
|
-
can_unshare: boolean;
|
|
34281
|
-
};
|
|
34282
|
-
};
|
|
34283
|
-
};
|
|
34284
|
-
};
|
|
34285
|
-
'/w/{workspace}/ai/shared_artifacts/delete/{id}': {
|
|
34286
|
-
delete: {
|
|
34287
|
-
req: {
|
|
34288
|
-
id: string;
|
|
34289
|
-
workspace: string;
|
|
34290
|
-
};
|
|
34291
|
-
res: {
|
|
34292
|
-
/**
|
|
34293
|
-
* share deleted
|
|
34294
|
-
*/
|
|
34295
|
-
200: string;
|
|
34296
|
-
};
|
|
34297
|
-
};
|
|
34298
|
-
};
|
|
34299
|
-
'/w/{workspace}/ai/shared_sessions/share': {
|
|
34300
|
-
post: {
|
|
34301
|
-
req: {
|
|
34302
|
-
requestBody: {
|
|
34303
|
-
/**
|
|
34304
|
-
* the session's id in the author's browser
|
|
34305
|
-
*/
|
|
34306
|
-
session_id: string;
|
|
34307
|
-
name: string;
|
|
34308
|
-
/**
|
|
34309
|
-
* left as it is on an existing share when absent; a new share starts private
|
|
34310
|
-
*/
|
|
34311
|
-
is_public?: boolean;
|
|
34312
|
-
message_count: number;
|
|
34313
|
-
snapshot: {
|
|
34314
|
-
[key: string]: unknown;
|
|
34315
|
-
};
|
|
34316
|
-
};
|
|
34317
|
-
workspace: string;
|
|
34318
|
-
};
|
|
34319
|
-
res: {
|
|
34320
|
-
/**
|
|
34321
|
-
* the shared snapshot
|
|
34322
|
-
*/
|
|
34323
|
-
200: SharedAiSessionInfo;
|
|
34324
|
-
};
|
|
34325
|
-
};
|
|
34326
|
-
};
|
|
34327
|
-
'/w/{workspace}/ai/shared_sessions/status': {
|
|
34328
|
-
get: {
|
|
34329
|
-
req: {
|
|
34330
|
-
sessionId: string;
|
|
34331
|
-
workspace: string;
|
|
34332
|
-
};
|
|
34333
|
-
res: {
|
|
34334
|
-
/**
|
|
34335
|
-
* the share, if any
|
|
34336
|
-
*/
|
|
34337
|
-
200: {
|
|
34338
|
-
share?: SharedAiSessionInfo;
|
|
34339
|
-
};
|
|
34340
|
-
};
|
|
34341
|
-
};
|
|
34342
|
-
};
|
|
34343
|
-
'/w/{workspace}/ai/shared_sessions/set_public/{id}': {
|
|
34344
|
-
post: {
|
|
34345
|
-
req: {
|
|
34346
|
-
id: string;
|
|
34347
|
-
requestBody: {
|
|
34348
|
-
is_public: boolean;
|
|
34349
|
-
};
|
|
34350
|
-
workspace: string;
|
|
34351
|
-
};
|
|
34352
|
-
res: {
|
|
34353
|
-
/**
|
|
34354
|
-
* the updated share
|
|
34355
|
-
*/
|
|
34356
|
-
200: SharedAiSessionInfo;
|
|
34357
|
-
};
|
|
34358
|
-
};
|
|
34359
|
-
};
|
|
34360
|
-
'/w/{workspace}/ai_u/shared_sessions/get/{id}': {
|
|
34361
|
-
get: {
|
|
34362
|
-
req: {
|
|
34363
|
-
id: string;
|
|
34364
|
-
workspace: string;
|
|
34365
|
-
};
|
|
34366
|
-
res: {
|
|
34367
|
-
/**
|
|
34368
|
-
* the shared session
|
|
34369
|
-
*/
|
|
34370
|
-
200: SharedAiSessionInfo & {
|
|
34371
|
-
snapshot: {
|
|
34372
|
-
[key: string]: unknown;
|
|
34373
|
-
};
|
|
34374
|
-
/**
|
|
34375
|
-
* whether the caller authored the share or is a workspace admin
|
|
34376
|
-
*/
|
|
34377
|
-
can_unshare: boolean;
|
|
34378
|
-
};
|
|
34379
|
-
};
|
|
34380
|
-
};
|
|
34381
|
-
};
|
|
34382
|
-
'/w/{workspace}/ai/shared_sessions/delete/{id}': {
|
|
34383
|
-
delete: {
|
|
34384
|
-
req: {
|
|
34385
|
-
id: string;
|
|
34386
|
-
workspace: string;
|
|
34387
|
-
};
|
|
34388
|
-
res: {
|
|
34389
|
-
/**
|
|
34390
|
-
* share deleted
|
|
34391
|
-
*/
|
|
34392
|
-
200: string;
|
|
34393
|
-
};
|
|
34394
|
-
};
|
|
34395
|
-
};
|
|
34396
34494
|
'/w/{workspace}/trigger/{trigger_kind}/resume_suspended_trigger_jobs/{trigger_path}': {
|
|
34397
34495
|
post: {
|
|
34398
34496
|
req: {
|
|
@@ -40290,6 +40388,10 @@ export type $OpenApiTs = {
|
|
|
40290
40388
|
* hub project slug (3-50 chars, lowercase alphanumeric and hyphens, no leading/trailing hyphen)
|
|
40291
40389
|
*/
|
|
40292
40390
|
slug: string;
|
|
40391
|
+
/**
|
|
40392
|
+
* id of a reviewed project version to export instead of the current one (see the hub's `/projects/{slug}/versions`)
|
|
40393
|
+
*/
|
|
40394
|
+
version?: number;
|
|
40293
40395
|
workspace: string;
|
|
40294
40396
|
};
|
|
40295
40397
|
res: {
|