@empiricalrun/playwright-utils 0.58.1 โ†’ 0.58.3

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.
@@ -1030,6 +1030,26 @@ export interface paths {
1030
1030
  patch?: never;
1031
1031
  trace?: never;
1032
1032
  };
1033
+ "/api/slack/messages": {
1034
+ parameters: {
1035
+ query?: never;
1036
+ header?: never;
1037
+ path?: never;
1038
+ cookie?: never;
1039
+ };
1040
+ get?: never;
1041
+ put?: never;
1042
+ /**
1043
+ * ๐Ÿค– Post a Slack message
1044
+ * @description Posts a Markdown message to a Slack channel or thread, as the Empirical bot, addressed by the `channel` and `ts` coordinates the agent was given. Sandbox-delegated principals only; the channel must be one the calling project can reach. When the coordinates match a thread linked to a chat session, the send is recorded and de-duplicated by idempotency key.
1045
+ */
1046
+ post: operations["slackSendMessage"];
1047
+ delete?: never;
1048
+ options?: never;
1049
+ head?: never;
1050
+ patch?: never;
1051
+ trace?: never;
1052
+ };
1033
1053
  "/api/slack/proxy": {
1034
1054
  parameters: {
1035
1055
  query?: never;
@@ -1050,6 +1070,26 @@ export interface paths {
1050
1070
  patch?: never;
1051
1071
  trace?: never;
1052
1072
  };
1073
+ "/api/slack/reactions": {
1074
+ parameters: {
1075
+ query?: never;
1076
+ header?: never;
1077
+ path?: never;
1078
+ cookie?: never;
1079
+ };
1080
+ get?: never;
1081
+ put?: never;
1082
+ /**
1083
+ * ๐Ÿค– React to a Slack message
1084
+ * @description Adds or removes an emoji reaction on a Slack message, as the Empirical bot. Sandbox-delegated principals only; the message must live in a channel the calling project can read. Idempotent โ€” re-adding an existing reaction succeeds.
1085
+ */
1086
+ post: operations["slackReaction"];
1087
+ delete?: never;
1088
+ options?: never;
1089
+ head?: never;
1090
+ patch?: never;
1091
+ trace?: never;
1092
+ };
1053
1093
  "/api/slack/channels/{id}": {
1054
1094
  parameters: {
1055
1095
  query?: never;
@@ -1454,6 +1494,26 @@ export interface paths {
1454
1494
  patch?: never;
1455
1495
  trace?: never;
1456
1496
  };
1497
+ "/api/infra/static-ips": {
1498
+ parameters: {
1499
+ query?: never;
1500
+ header?: never;
1501
+ path?: never;
1502
+ cookie?: never;
1503
+ };
1504
+ /**
1505
+ * ๐Ÿงช Get static egress IPs for a region
1506
+ * @description Returns the proxy endpoint and the egress IPs to allowlist for the given region.
1507
+ */
1508
+ get: operations["getStaticIps"];
1509
+ put?: never;
1510
+ post?: never;
1511
+ delete?: never;
1512
+ options?: never;
1513
+ head?: never;
1514
+ patch?: never;
1515
+ trace?: never;
1516
+ };
1457
1517
  "/api/v1/telemetry/overlay-dismissals": {
1458
1518
  parameters: {
1459
1519
  query?: never;
@@ -1503,7 +1563,7 @@ export interface paths {
1503
1563
  };
1504
1564
  /**
1505
1565
  * ๐Ÿงช List test run cases
1506
- * @description Returns a paginated list of every case in a test run โ€” passed, failed, flaky, and skipped โ€” sourced from the run ledger, with a fallback to the diagnosis table for pre-ledger runs. The project is derived from the run.
1566
+ * @description Returns a paginated list of every case in a test run โ€” passed, failed, flaky, and skipped โ€” sourced from the run ledger. The project is derived from the run.
1507
1567
  */
1508
1568
  get: operations["listTestRunCases"];
1509
1569
  put?: never;
@@ -1523,7 +1583,7 @@ export interface paths {
1523
1583
  };
1524
1584
  /**
1525
1585
  * ๐Ÿงช Get a test run case
1526
- * @description Retrieves a single case in a test run by its Playwright test ID, with the same pre-ledger diagnosis fallback. The project is derived from the run.
1586
+ * @description Retrieves a single case in a test run by its Playwright test ID. The project is derived from the run.
1527
1587
  */
1528
1588
  get: operations["getTestRunCase"];
1529
1589
  put?: never;
@@ -1541,19 +1601,35 @@ export interface paths {
1541
1601
  path?: never;
1542
1602
  cookie?: never;
1543
1603
  };
1544
- /**
1545
- * ๐Ÿค– List a chat session's upcoming alarms
1546
- * @description Returns the session's pending self-scheduled wake-ups (the agent set_alarm tool). Fired alarms are dropped by the scheduler, so every entry is still upcoming. Empty in environments without a scheduler.
1547
- */
1604
+ /** ๐Ÿค– List a session's alarms */
1548
1605
  get: operations["listChatSessionAlarms"];
1549
1606
  put?: never;
1550
- post?: never;
1607
+ /** ๐Ÿค– Create a session alarm */
1608
+ post: operations["createChatSessionAlarm"];
1551
1609
  delete?: never;
1552
1610
  options?: never;
1553
1611
  head?: never;
1554
1612
  patch?: never;
1555
1613
  trace?: never;
1556
1614
  };
1615
+ "/api/chat-sessions/{id}/alarms/{alarm_id}": {
1616
+ parameters: {
1617
+ query?: never;
1618
+ header?: never;
1619
+ path?: never;
1620
+ cookie?: never;
1621
+ };
1622
+ get?: never;
1623
+ put?: never;
1624
+ post?: never;
1625
+ /** ๐Ÿค– Delete a session alarm */
1626
+ delete: operations["deleteChatSessionAlarm"];
1627
+ options?: never;
1628
+ head?: never;
1629
+ /** ๐Ÿค– Update a session alarm */
1630
+ patch: operations["updateChatSessionAlarm"];
1631
+ trace?: never;
1632
+ };
1557
1633
  "/api/chat-sessions/{id}/threads": {
1558
1634
  parameters: {
1559
1635
  query?: never;
@@ -1589,7 +1665,7 @@ export interface paths {
1589
1665
  put?: never;
1590
1666
  /**
1591
1667
  * ๐Ÿค– Post a message to a session thread
1592
- * @description Posts an explicit Markdown message to an agent-controlled Slack thread. This does not create a chat-session user message and does not trigger automatic outbound mirroring.
1668
+ * @description Posts an explicit Markdown message to a Slack thread the agent controls, or to the source thread that started this session. This does not create a chat-session user message and does not trigger automatic outbound mirroring.
1593
1669
  */
1594
1670
  post: operations["createChatSessionThreadMessage"];
1595
1671
  delete?: never;
@@ -1896,74 +1972,6 @@ export interface paths {
1896
1972
  patch?: never;
1897
1973
  trace?: never;
1898
1974
  };
1899
- "/api/agent-workflows": {
1900
- parameters: {
1901
- query?: never;
1902
- header?: never;
1903
- path?: never;
1904
- cookie?: never;
1905
- };
1906
- /**
1907
- * ๐Ÿ›ก๏ธ List agent workflows
1908
- * @description Returns all agent workflows for the scoped project.
1909
- */
1910
- get: operations["listAgentWorkflows"];
1911
- put?: never;
1912
- /**
1913
- * ๐Ÿ›ก๏ธ Create an agent workflow
1914
- * @description Creates a cron-scheduled agent workflow for the scoped project and pokes the scheduler to re-sync cron schedules.
1915
- */
1916
- post: operations["createAgentWorkflow"];
1917
- delete?: never;
1918
- options?: never;
1919
- head?: never;
1920
- patch?: never;
1921
- trace?: never;
1922
- };
1923
- "/api/agent-workflows/{id}": {
1924
- parameters: {
1925
- query?: never;
1926
- header?: never;
1927
- path?: never;
1928
- cookie?: never;
1929
- };
1930
- get?: never;
1931
- put?: never;
1932
- post?: never;
1933
- /**
1934
- * ๐Ÿ›ก๏ธ Delete an agent workflow
1935
- * @description Deletes an agent workflow and re-syncs the scheduler.
1936
- */
1937
- delete: operations["deleteAgentWorkflow"];
1938
- options?: never;
1939
- head?: never;
1940
- /**
1941
- * ๐Ÿ›ก๏ธ Update an agent workflow
1942
- * @description Updates a workflow's prompt, schedule, or active state, then re-syncs the scheduler.
1943
- */
1944
- patch: operations["updateAgentWorkflow"];
1945
- trace?: never;
1946
- };
1947
- "/api/agent-workflows/{id}/trigger": {
1948
- parameters: {
1949
- query?: never;
1950
- header?: never;
1951
- path?: never;
1952
- cookie?: never;
1953
- };
1954
- get?: never;
1955
- put?: never;
1956
- /**
1957
- * ๐Ÿ›ก๏ธ Trigger an agent workflow
1958
- * @description Opens a chat session for the workflow's prompt. Called by the scheduler when the workflow's cron fires.
1959
- */
1960
- post: operations["triggerAgentWorkflow"];
1961
- delete?: never;
1962
- options?: never;
1963
- head?: never;
1964
- patch?: never;
1965
- trace?: never;
1966
- };
1967
1975
  "/api/alarms": {
1968
1976
  parameters: {
1969
1977
  query?: never;
@@ -2099,7 +2107,7 @@ export interface paths {
2099
2107
  head?: never;
2100
2108
  /**
2101
2109
  * โš™๏ธ Update a chat session
2102
- * @description Updates allowed fields on a chat session. Side effects: an `impacted_tests` change broadcasts a realtime update; an `environment_id` change rewrites the running sandbox's .env (both best-effort).
2110
+ * @description Updates allowed fields on a chat session. Side effect: an `impacted_tests` change broadcasts a realtime update (best-effort).
2103
2111
  */
2104
2112
  patch: operations["patchChatSession"];
2105
2113
  trace?: never;
@@ -2244,26 +2252,6 @@ export interface paths {
2244
2252
  patch?: never;
2245
2253
  trace?: never;
2246
2254
  };
2247
- "/api/chat-sessions/{id}/environment-variables": {
2248
- parameters: {
2249
- query?: never;
2250
- header?: never;
2251
- path?: never;
2252
- cookie?: never;
2253
- };
2254
- /**
2255
- * โš™๏ธ Get a session's environment variables
2256
- * @description Returns the environment variables resolved for the session's project and bound environment.
2257
- */
2258
- get: operations["getChatSessionEnvironmentVariables"];
2259
- put?: never;
2260
- post?: never;
2261
- delete?: never;
2262
- options?: never;
2263
- head?: never;
2264
- patch?: never;
2265
- trace?: never;
2266
- };
2267
2255
  "/api/chat-sessions/{id}/message": {
2268
2256
  parameters: {
2269
2257
  query?: never;
@@ -2519,8 +2507,8 @@ export interface paths {
2519
2507
  options?: never;
2520
2508
  head?: never;
2521
2509
  /**
2522
- * โš™๏ธ Update a thread's Slack sync
2523
- * @description Enables or disables two-way Slack sync for a session thread.
2510
+ * โš™๏ธ Update a notification thread's Slack sync
2511
+ * @description Enables or disables the session's Slack DM notifications for one user.
2524
2512
  */
2525
2513
  patch: operations["updateChatSessionSlackThreadSync"];
2526
2514
  trace?: never;
@@ -2885,26 +2873,6 @@ export interface paths {
2885
2873
  patch?: never;
2886
2874
  trace?: never;
2887
2875
  };
2888
- "/api/github/knowledge-files": {
2889
- parameters: {
2890
- query?: never;
2891
- header?: never;
2892
- path?: never;
2893
- cookie?: never;
2894
- };
2895
- /**
2896
- * โš™๏ธ List knowledge files
2897
- * @description Lists markdown knowledge files under `.empiricalrun` for a repo's project.
2898
- */
2899
- get: operations["listKnowledgeFiles"];
2900
- put?: never;
2901
- post?: never;
2902
- delete?: never;
2903
- options?: never;
2904
- head?: never;
2905
- patch?: never;
2906
- trace?: never;
2907
- };
2908
2876
  "/api/github/main-app/installations": {
2909
2877
  parameters: {
2910
2878
  query?: never;
@@ -3317,6 +3285,26 @@ export interface paths {
3317
3285
  patch?: never;
3318
3286
  trace?: never;
3319
3287
  };
3288
+ "/api/internal/spot-interruptions": {
3289
+ parameters: {
3290
+ query?: never;
3291
+ header?: never;
3292
+ path?: never;
3293
+ cookie?: never;
3294
+ };
3295
+ get?: never;
3296
+ put?: never;
3297
+ /**
3298
+ * โš™๏ธ Handle an ECS spot-interruption event
3299
+ * @description Re-dispatches the interrupted task's shard to the on-demand queue when the shard is still queued with no registered worker (a spot interruption between task launch and job pickup). Any other shard state is reported as `skipped`.
3300
+ */
3301
+ post: operations["handleSpotInterruption"];
3302
+ delete?: never;
3303
+ options?: never;
3304
+ head?: never;
3305
+ patch?: never;
3306
+ trace?: never;
3307
+ };
3320
3308
  "/api/internal/test-cases-sync": {
3321
3309
  parameters: {
3322
3310
  query?: never;
@@ -4329,6 +4317,66 @@ export interface paths {
4329
4317
  patch: operations["updatePlanAssignment"];
4330
4318
  trace?: never;
4331
4319
  };
4320
+ "/api/project-addons": {
4321
+ parameters: {
4322
+ query?: never;
4323
+ header?: never;
4324
+ path?: never;
4325
+ cookie?: never;
4326
+ };
4327
+ /**
4328
+ * โš™๏ธ ๐Ÿงช List add-ons for the scoped project
4329
+ * @description Returns every known add-on with its current state, plus the full period history for this project.
4330
+ */
4331
+ get: operations["listProjectAddons"];
4332
+ put?: never;
4333
+ post?: never;
4334
+ delete?: never;
4335
+ options?: never;
4336
+ head?: never;
4337
+ patch?: never;
4338
+ trace?: never;
4339
+ };
4340
+ "/api/project-addons/{addon}/disable": {
4341
+ parameters: {
4342
+ query?: never;
4343
+ header?: never;
4344
+ path?: never;
4345
+ cookie?: never;
4346
+ };
4347
+ get?: never;
4348
+ put?: never;
4349
+ /**
4350
+ * ๐Ÿงช Disable an add-on
4351
+ * @description Closes the open period, preserving it as history. Returns 409 when the add-on was not enabled, or when the add-on is still in use โ€” repo ownership cannot be turned off while the repository lives outside Empirical's GitHub org.
4352
+ */
4353
+ post: operations["disableProjectAddon"];
4354
+ delete?: never;
4355
+ options?: never;
4356
+ head?: never;
4357
+ patch?: never;
4358
+ trace?: never;
4359
+ };
4360
+ "/api/project-addons/{addon}/enable": {
4361
+ parameters: {
4362
+ query?: never;
4363
+ header?: never;
4364
+ path?: never;
4365
+ cookie?: never;
4366
+ };
4367
+ get?: never;
4368
+ put?: never;
4369
+ /**
4370
+ * ๐Ÿงช Enable an add-on
4371
+ * @description Opens a new period effective now. Returns 409 when the add-on is already enabled, so a double submit cannot create overlapping periods.
4372
+ */
4373
+ post: operations["enableProjectAddon"];
4374
+ delete?: never;
4375
+ options?: never;
4376
+ head?: never;
4377
+ patch?: never;
4378
+ trace?: never;
4379
+ };
4332
4380
  "/api/projects": {
4333
4381
  parameters: {
4334
4382
  query?: never;
@@ -4437,6 +4485,26 @@ export interface paths {
4437
4485
  patch?: never;
4438
4486
  trace?: never;
4439
4487
  };
4488
+ "/api/projects/{id}/manager-session": {
4489
+ parameters: {
4490
+ query?: never;
4491
+ header?: never;
4492
+ path?: never;
4493
+ cookie?: never;
4494
+ };
4495
+ get?: never;
4496
+ put?: never;
4497
+ /**
4498
+ * โš™๏ธ Get or create the project's manager session
4499
+ * @description Returns the project's manager session, creating it if there isn't one. A project has at most one open manager session, enforced by a partial unique index; the session is stamped `purpose = "manager"` server-side. Safe to call concurrently โ€” the loser of the race returns the winner.
4500
+ */
4501
+ post: operations["getOrCreateProjectManagerSession"];
4502
+ delete?: never;
4503
+ options?: never;
4504
+ head?: never;
4505
+ patch?: never;
4506
+ trace?: never;
4507
+ };
4440
4508
  "/api/projects/{id}/merge-requests": {
4441
4509
  parameters: {
4442
4510
  query?: never;
@@ -4745,6 +4813,26 @@ export interface paths {
4745
4813
  patch?: never;
4746
4814
  trace?: never;
4747
4815
  };
4816
+ "/api/projects/static-ip-proxy-token": {
4817
+ parameters: {
4818
+ query?: never;
4819
+ header?: never;
4820
+ path?: never;
4821
+ cookie?: never;
4822
+ };
4823
+ get?: never;
4824
+ put?: never;
4825
+ /**
4826
+ * Mint a static IP proxy token
4827
+ * @description Mints a short-lived, project-scoped static-IP proxy credential for the scoped project. Used by the sandbox token refresher.
4828
+ */
4829
+ post: operations["getProjectStaticIpProxyToken"];
4830
+ delete?: never;
4831
+ options?: never;
4832
+ head?: never;
4833
+ patch?: never;
4834
+ trace?: never;
4835
+ };
4748
4836
  "/api/razorpay/webhook": {
4749
4837
  parameters: {
4750
4838
  query?: never;
@@ -5079,7 +5167,7 @@ export interface paths {
5079
5167
  };
5080
5168
  /**
5081
5169
  * Get test run detail (UI)
5082
- * @description Returns everything the test-run detail page renders in one call: the enriched run, its diagnoses, the test cases those diagnoses reference, and the resolved created-by / cancelled-by users.
5170
+ * @description Returns everything the test-run detail page renders in one call: the enriched run, the first page of its cases, the test cases those rows reference, and the resolved created-by / cancelled-by users.
5083
5171
  */
5084
5172
  get: operations["getUiTestRunDetail"];
5085
5173
  put?: never;
@@ -6158,6 +6246,31 @@ export interface components {
6158
6246
  /** @description Error detail when ingestion fails. */
6159
6247
  error?: unknown;
6160
6248
  };
6249
+ SpotInterruptionResponse: {
6250
+ /** @description Response payload. */
6251
+ data: {
6252
+ /**
6253
+ * @description Whether the shard was re-dispatched, or the event needed no action.
6254
+ * @enum {string}
6255
+ */
6256
+ action: "reenqueued" | "skipped";
6257
+ /** @description Why the event was skipped; absent on re-enqueue. */
6258
+ reason?: string;
6259
+ };
6260
+ };
6261
+ SpotInterruptionRequest: {
6262
+ /** @description The stopped ECS task's `startedBy` tag (`emp/<runId>/<shard>/<jobType>`). */
6263
+ started_by: string;
6264
+ /**
6265
+ * @description AWS region the task-state-change event came from.
6266
+ * @enum {string}
6267
+ */
6268
+ region: "us-east-1" | "ap-south-1";
6269
+ /** @description ECS task id of the interrupted task, for the audit trail. */
6270
+ task_id?: string;
6271
+ /** @description ECS `stoppedReason`, for the audit trail. */
6272
+ stopped_reason?: string;
6273
+ };
6161
6274
  CreateProjectResponse: {
6162
6275
  /** @description Response payload. */
6163
6276
  data: {
@@ -6396,9 +6509,18 @@ export interface components {
6396
6509
  username: string;
6397
6510
  };
6398
6511
  };
6399
- MergeRequestsResponse: {
6400
- /** @description The page of merge requests. */
6401
- data: components["schemas"]["MergeRequest"][];
6512
+ ProjectStaticIpProxyTokenResponse: {
6513
+ /** @description Response payload. */
6514
+ data: {
6515
+ /** @description Static-IP proxy access token, HMAC signed. */
6516
+ token: string;
6517
+ /** @description Unix seconds at which the token stops being accepted. */
6518
+ expires_at: number;
6519
+ };
6520
+ };
6521
+ MergeRequestsResponse: {
6522
+ /** @description The page of merge requests. */
6523
+ data: components["schemas"]["MergeRequest"][];
6402
6524
  pagination: components["schemas"]["Pagination"];
6403
6525
  };
6404
6526
  MergeRequest: {
@@ -6566,6 +6688,59 @@ export interface components {
6566
6688
  /** @description Distinct chat sessions contributing to this row. */
6567
6689
  sessions: number;
6568
6690
  };
6691
+ ProjectManagerSessionResponse: {
6692
+ /** @description Response payload. */
6693
+ data: {
6694
+ chat_session: components["schemas"]["ChatSession"];
6695
+ /** @description True when this request created the session, false when it returned the existing one. */
6696
+ created: boolean;
6697
+ };
6698
+ };
6699
+ ChatSession: {
6700
+ /** @description Chat session ID. */
6701
+ id: number;
6702
+ /** @description Session title. */
6703
+ title: string | null;
6704
+ /** @description Creator user ID. */
6705
+ created_by: string | null;
6706
+ /** @description Creation timestamp (ISO). */
6707
+ created_at: string;
6708
+ /** @description Last update timestamp (ISO). */
6709
+ updated_at: string;
6710
+ /** @description Owning project ID. */
6711
+ project_id: number;
6712
+ /** @description Working branch name. */
6713
+ branch_name: string;
6714
+ /** @description Base branch name. */
6715
+ base_branch: string;
6716
+ /** @description Session mode (e.g. chat). */
6717
+ mode: string;
6718
+ /** @description Origin of the session. */
6719
+ source: string;
6720
+ /** @description Source-specific identifier. */
6721
+ source_identifier: string;
6722
+ /**
6723
+ * @description Workload class, assigned server-side; null for an ordinary user chat. Read-only โ€” no request body accepts it.
6724
+ * @enum {string|null}
6725
+ */
6726
+ purpose?: "triage" | "manager" | null;
6727
+ /** @description Requested model. */
6728
+ model: string | null;
6729
+ /** @description Opaque agent chat state. */
6730
+ chat_state?: unknown;
6731
+ /** @description Tests impacted by this session. */
6732
+ impacted_tests?: unknown;
6733
+ /** @description Whether the agent is awaiting user input. */
6734
+ ask_user_for_input: boolean | null;
6735
+ /** @description Langfuse trace ID. */
6736
+ langfuse_trace_id: string | null;
6737
+ /** @description Whether the session is closed. */
6738
+ is_closed: boolean;
6739
+ /** @description Feature flags enabled for the session. */
6740
+ feature_flags: string[];
6741
+ /** @description Durable outbox row for the first message. */
6742
+ pending_first_message?: unknown;
6743
+ };
6569
6744
  ProjectListResponse: {
6570
6745
  /** @description Response payload. */
6571
6746
  data: {
@@ -7299,11 +7474,9 @@ export interface components {
7299
7474
  /** @description Langfuse trace ID for observability. */
7300
7475
  langfuse_trace_id: string | null;
7301
7476
  /** @description Whether the session is closed. */
7302
- is_closed: boolean | null;
7477
+ is_closed: boolean;
7303
7478
  /** @description Feature flags active for this session. */
7304
7479
  feature_flags: string[];
7305
- /** @description Environment the session runs against. */
7306
- environment_id: number | null;
7307
7480
  /** @description Outboxed first message awaiting delivery. */
7308
7481
  pending_first_message?: unknown;
7309
7482
  } | null;
@@ -7410,11 +7583,9 @@ export interface components {
7410
7583
  /** @description Langfuse trace ID for observability. */
7411
7584
  langfuse_trace_id: string | null;
7412
7585
  /** @description Whether the session is closed. */
7413
- is_closed: boolean | null;
7586
+ is_closed: boolean;
7414
7587
  /** @description Feature flags active for this session. */
7415
7588
  feature_flags: string[];
7416
- /** @description Environment the session runs against. */
7417
- environment_id: number | null;
7418
7589
  /** @description Outboxed first message awaiting delivery. */
7419
7590
  pending_first_message?: unknown;
7420
7591
  /** @description Resolved details for the creating user, if available. */
@@ -7469,11 +7640,9 @@ export interface components {
7469
7640
  /** @description Langfuse trace ID for observability. */
7470
7641
  langfuse_trace_id: string | null;
7471
7642
  /** @description Whether the session is closed. */
7472
- is_closed: boolean | null;
7643
+ is_closed: boolean;
7473
7644
  /** @description Feature flags active for this session. */
7474
7645
  feature_flags: string[];
7475
- /** @description Environment the session runs against. */
7476
- environment_id: number | null;
7477
7646
  /** @description Outboxed first message awaiting delivery. */
7478
7647
  pending_first_message?: unknown;
7479
7648
  };
@@ -7501,6 +7670,73 @@ export interface components {
7501
7670
  }[];
7502
7671
  };
7503
7672
  };
7673
+ ListProjectAddonsResponse: {
7674
+ /** @description Response payload. */
7675
+ data: {
7676
+ addons: components["schemas"]["ProjectAddonState"][];
7677
+ /** @description Every period for this project, newest first. */
7678
+ history: components["schemas"]["ProjectAddonPeriod"][];
7679
+ };
7680
+ };
7681
+ ProjectAddonState: {
7682
+ /**
7683
+ * @description Add-on identifier.
7684
+ * @enum {string}
7685
+ */
7686
+ key: "static_ip_proxy" | "repo_ownership";
7687
+ name: string;
7688
+ description: string;
7689
+ /** @description Copy for the enable-confirmation dialog. Null when the add-on has nothing to warn about. */
7690
+ billing_note: string | null;
7691
+ /** @description True when there is an open period for this add-on. */
7692
+ enabled: boolean;
7693
+ /** @description effective_from of the open period, or null when disabled. */
7694
+ active_since: string | null;
7695
+ };
7696
+ ProjectAddonPeriod: {
7697
+ id: number;
7698
+ /**
7699
+ * @description Add-on identifier.
7700
+ * @enum {string}
7701
+ */
7702
+ addon: "static_ip_proxy" | "repo_ownership";
7703
+ /** @description ISO timestamp the add-on became active. */
7704
+ effective_from: string;
7705
+ /** @description ISO timestamp it was turned off; null while active. */
7706
+ effective_to: string | null;
7707
+ /** @description Order-form line this period bills against, when a priced line exists. Null for add-ons that are free today. */
7708
+ order_form_line_id: number | null;
7709
+ created_by: string | null;
7710
+ ended_by: string | null;
7711
+ };
7712
+ ProjectAddonResponse: {
7713
+ /** @description Response payload. */
7714
+ data: {
7715
+ addon: components["schemas"]["ProjectAddonPeriod"];
7716
+ };
7717
+ };
7718
+ EnableProjectAddonRequest: {
7719
+ /**
7720
+ * Format: date-time
7721
+ * @description Backdate the period to this ISO timestamp. Super admin only; defaults to now.
7722
+ */
7723
+ effective_from?: string;
7724
+ /** @description Order-form line (kind='addon') this period bills against. Super admin only. */
7725
+ order_form_line_id?: number;
7726
+ };
7727
+ StaticIpsResponse: {
7728
+ /** @description Response payload. */
7729
+ data: {
7730
+ /** @description AWS region of the proxy fleet. */
7731
+ region: string;
7732
+ /** @description Human-readable location. */
7733
+ location: string;
7734
+ /** @description Proxy endpoint to point Playwright's proxy config at. */
7735
+ endpoint: string;
7736
+ /** @description Egress IPs to allowlist. One per proxy instance. */
7737
+ ips: string[];
7738
+ };
7739
+ };
7504
7740
  SandboxSnapshotListResponse: {
7505
7741
  /** @description Response payload. */
7506
7742
  data: {
@@ -7811,7 +8047,7 @@ export interface components {
7811
8047
  name?: string | null;
7812
8048
  /** @description Short description (v2). */
7813
8049
  description?: string | null;
7814
- /** @description Origin of the memory, e.g. "app_knowledge". */
8050
+ /** @description Origin of the memory. Free text; "app_knowledge" marks rows migrated from the pre-rename App Knowledge files. */
7815
8051
  source?: string | null;
7816
8052
  /** @description Source file path for file-sourced memories; unique within the project. */
7817
8053
  source_path?: string | null;
@@ -7868,95 +8104,6 @@ export interface components {
7868
8104
  /** @description How far from now to fire, as a duration string with units m/h/d โ€” e.g. "15m", "2h", "1d", or compound "1h30m". Min 15m, max 72h (3 days). */
7869
8105
  delay: string;
7870
8106
  };
7871
- AgentWorkflowListResponse: {
7872
- /** @description Response payload. */
7873
- data: {
7874
- workflows: components["schemas"]["AgentWorkflow"][];
7875
- };
7876
- };
7877
- AgentWorkflow: {
7878
- /** @description Agent workflow ID. */
7879
- id: number;
7880
- /** @description ID of the project the workflow belongs to. */
7881
- project_id: number;
7882
- /** @description Prompt sent to the chat session when triggered. */
7883
- prompt: string;
7884
- /** @description Cron expression controlling when the workflow runs. */
7885
- cron_schedule: string;
7886
- /** @description Whether the workflow is active and scheduled. */
7887
- is_active: boolean;
7888
- /** @description ISO 8601 timestamp the workflow was created. */
7889
- created_at: string;
7890
- /** @description ISO 8601 timestamp the workflow was last updated. */
7891
- updated_at: string;
7892
- };
7893
- AgentWorkflowResponse: {
7894
- /** @description Response payload. */
7895
- data: {
7896
- workflow: components["schemas"]["AgentWorkflow"];
7897
- };
7898
- };
7899
- AgentWorkflowUpdateResponse: {
7900
- /** @description Response payload. */
7901
- data: {
7902
- workflow: components["schemas"]["AgentWorkflow"] & unknown;
7903
- };
7904
- };
7905
- AgentWorkflowDeleteResponse: {
7906
- /** @description Response payload. */
7907
- data: {
7908
- /** @description Always `true` when the workflow was deleted. */
7909
- success: boolean;
7910
- };
7911
- };
7912
- AgentWorkflowTriggerResponse: {
7913
- /** @description Response payload. */
7914
- data: {
7915
- chat_session: components["schemas"]["AgentWorkflowChatSession"];
7916
- };
7917
- };
7918
- AgentWorkflowChatSession: {
7919
- /** @description Chat session ID. */
7920
- id: number;
7921
- /** @description Session title, generated lazily. */
7922
- title: string | null;
7923
- /** @description User ID that created the session, if any. */
7924
- created_by: string | null;
7925
- /** @description ISO 8601 timestamp the session was created. */
7926
- created_at: string;
7927
- /** @description ISO 8601 timestamp the session was last updated. */
7928
- updated_at: string;
7929
- /** @description ID of the project the session belongs to. */
7930
- project_id: number;
7931
- /** @description Working branch for the session. */
7932
- branch_name: string;
7933
- /** @description Branch the working branch was created from. */
7934
- base_branch: string;
7935
- /** @description Session mode (e.g. `chat`). */
7936
- mode: string;
7937
- /** @description Origin of the session (`agent-workflow` here). */
7938
- source: string;
7939
- /** @description Stable identifier for the session's origin. */
7940
- source_identifier: string;
7941
- /** @description Model used for the session, if pinned. */
7942
- model: string | null;
7943
- /** @description Opaque serialized chat state. */
7944
- chat_state?: unknown;
7945
- /** @description Tests impacted by the session's changes. */
7946
- impacted_tests: unknown[];
7947
- /** @description Whether the session is awaiting user input. */
7948
- ask_user_for_input: boolean | null;
7949
- /** @description Langfuse trace ID for observability. */
7950
- langfuse_trace_id: string | null;
7951
- /** @description Whether the session has been closed. */
7952
- is_closed: boolean | null;
7953
- /** @description Feature flags enabled for the session. */
7954
- feature_flags: string[];
7955
- /** @description Environment ID scoped to the session, if any. */
7956
- environment_id: number | null;
7957
- /** @description Outbox payload for the session's first message. */
7958
- pending_first_message?: unknown;
7959
- };
7960
8107
  ProjectResourceListResponse: {
7961
8108
  /** @description The page of resources. */
7962
8109
  data: {
@@ -8304,6 +8451,28 @@ export interface components {
8304
8451
  /** @description Error message. */
8305
8452
  error: string;
8306
8453
  };
8454
+ SlackReactionResult: {
8455
+ /** @enum {boolean} */
8456
+ ok: true;
8457
+ /** @description Emoji name applied or removed. */
8458
+ reaction: string;
8459
+ /** @enum {string} */
8460
+ action: "add" | "remove";
8461
+ };
8462
+ SlackReactionError: {
8463
+ /** @description Error message. */
8464
+ error: string;
8465
+ };
8466
+ SlackMessageResult: {
8467
+ /** @enum {boolean} */
8468
+ ok: true;
8469
+ /** @description Timestamp id of the message that was posted. */
8470
+ ts: string;
8471
+ };
8472
+ SlackMessageError: {
8473
+ /** @description Error message. */
8474
+ error: string;
8475
+ };
8307
8476
  ChatSessionUsersResponse: {
8308
8477
  /** @description Response payload. */
8309
8478
  data: components["schemas"]["ChatSessionUserDetail"][];
@@ -8388,6 +8557,11 @@ export interface components {
8388
8557
  source: string;
8389
8558
  /** @description Source-specific identifier. */
8390
8559
  source_identifier: string;
8560
+ /**
8561
+ * @description Workload class, assigned server-side; null for an ordinary user chat. Read-only โ€” no request body accepts it.
8562
+ * @enum {string|null}
8563
+ */
8564
+ purpose?: "triage" | "manager" | null;
8391
8565
  /** @description Requested model. */
8392
8566
  model: string | null;
8393
8567
  /** @description Whether the agent is awaiting user input. */
@@ -8395,11 +8569,9 @@ export interface components {
8395
8569
  /** @description Langfuse trace ID. */
8396
8570
  langfuse_trace_id: string | null;
8397
8571
  /** @description Whether the session is closed. */
8398
- is_closed: boolean | null;
8572
+ is_closed: boolean;
8399
8573
  /** @description Feature flags enabled for the session. */
8400
8574
  feature_flags: string[];
8401
- /** @description Bound environment ID. */
8402
- environment_id: number | null;
8403
8575
  /** @description Resolved Supabase details for the creator. */
8404
8576
  created_by_user_detail?: {
8405
8577
  /** @description Supabase user ID. */
@@ -8428,48 +8600,6 @@ export interface components {
8428
8600
  chat_session: components["schemas"]["ChatSession"];
8429
8601
  };
8430
8602
  };
8431
- ChatSession: {
8432
- /** @description Chat session ID. */
8433
- id: number;
8434
- /** @description Session title. */
8435
- title: string | null;
8436
- /** @description Creator user ID. */
8437
- created_by: string | null;
8438
- /** @description Creation timestamp (ISO). */
8439
- created_at: string;
8440
- /** @description Last update timestamp (ISO). */
8441
- updated_at: string;
8442
- /** @description Owning project ID. */
8443
- project_id: number;
8444
- /** @description Working branch name. */
8445
- branch_name: string;
8446
- /** @description Base branch name. */
8447
- base_branch: string;
8448
- /** @description Session mode (e.g. chat). */
8449
- mode: string;
8450
- /** @description Origin of the session. */
8451
- source: string;
8452
- /** @description Source-specific identifier. */
8453
- source_identifier: string;
8454
- /** @description Requested model. */
8455
- model: string | null;
8456
- /** @description Opaque agent chat state. */
8457
- chat_state?: unknown;
8458
- /** @description Tests impacted by this session. */
8459
- impacted_tests?: unknown;
8460
- /** @description Whether the agent is awaiting user input. */
8461
- ask_user_for_input: boolean | null;
8462
- /** @description Langfuse trace ID. */
8463
- langfuse_trace_id: string | null;
8464
- /** @description Whether the session is closed. */
8465
- is_closed: boolean | null;
8466
- /** @description Feature flags enabled for the session. */
8467
- feature_flags: string[];
8468
- /** @description Bound environment ID. */
8469
- environment_id: number | null;
8470
- /** @description Durable outbox row for the first message. */
8471
- pending_first_message?: unknown;
8472
- };
8473
8603
  ChatSessionThreadsListResponse: {
8474
8604
  /** @description Response payload. */
8475
8605
  data: {
@@ -8575,6 +8705,11 @@ export interface components {
8575
8705
  source: string;
8576
8706
  /** @description Source-specific identifier. */
8577
8707
  source_identifier: string;
8708
+ /**
8709
+ * @description Workload class, assigned server-side; null for an ordinary user chat. Read-only โ€” no request body accepts it.
8710
+ * @enum {string|null}
8711
+ */
8712
+ purpose?: "triage" | "manager" | null;
8578
8713
  /** @description Requested model. */
8579
8714
  model: string | null;
8580
8715
  /** @description Opaque agent chat state. */
@@ -8586,11 +8721,9 @@ export interface components {
8586
8721
  /** @description Langfuse trace ID. */
8587
8722
  langfuse_trace_id: string | null;
8588
8723
  /** @description Whether the session is closed. */
8589
- is_closed: boolean | null;
8724
+ is_closed: boolean;
8590
8725
  /** @description Feature flags enabled for the session. */
8591
8726
  feature_flags: string[];
8592
- /** @description Bound environment ID. */
8593
- environment_id: number | null;
8594
8727
  /** @description Durable outbox row for the first message. */
8595
8728
  pending_first_message?: unknown;
8596
8729
  /** @description Resolved Supabase details for the creator. */
@@ -8617,34 +8750,6 @@ export interface components {
8617
8750
  chat_session: components["schemas"]["ChatSession"];
8618
8751
  };
8619
8752
  };
8620
- ChatSessionEnvironmentVariablesResponse: {
8621
- /** @description Response payload. */
8622
- data: {
8623
- environment_variables: components["schemas"]["ChatSessionEnvironmentVariable"][];
8624
- };
8625
- };
8626
- ChatSessionEnvironmentVariable: {
8627
- /** @description Environment variable ID. */
8628
- id: number;
8629
- /** @description Owning project ID. */
8630
- project_id: number;
8631
- /** @description Variable name. */
8632
- name: string;
8633
- /** @description Variable description. */
8634
- description: string;
8635
- /** @description Variable value. */
8636
- value: string;
8637
- /** @description Creation timestamp (ISO). */
8638
- created_at: string;
8639
- /** @description Last update timestamp (ISO). */
8640
- updated_at: string;
8641
- /** @description User who last updated the variable. */
8642
- updated_by: string | null;
8643
- /** @description Whether it applies to every environment. */
8644
- all_environments: boolean;
8645
- /** @description Environment IDs the variable applies to. */
8646
- environment_ids: number[];
8647
- };
8648
8753
  ChatSessionTimelineResponse: {
8649
8754
  /** @description Response payload. */
8650
8755
  data: components["schemas"]["ChatSessionTimelineEvent"][];
@@ -8910,21 +9015,6 @@ export interface components {
8910
9015
  /** @description Error message, or null on success. */
8911
9016
  error: string | null;
8912
9017
  };
8913
- ChatSessionAlarms: {
8914
- /** @description Upcoming self-scheduled wake-ups (set_alarm), soonest first. */
8915
- alarms: {
8916
- /** @description Opaque id of the scheduled alarm. */
8917
- alarm_id: string;
8918
- /** @description The scheduled wake-up time, as an ISO 8601 timestamp. */
8919
- wake_at: string;
8920
- /** @description The note the agent will receive back when the alarm fires. */
8921
- message: string;
8922
- }[];
8923
- };
8924
- ChatSessionAlarmsError: {
8925
- /** @description Human-readable error message. */
8926
- error: string;
8927
- };
8928
9018
  GithubCommitDiffResponse: {
8929
9019
  /** @description Response payload. */
8930
9020
  data: {
@@ -8958,22 +9048,6 @@ export interface components {
8958
9048
  tree?: unknown;
8959
9049
  };
8960
9050
  };
8961
- GithubKnowledgeFilesResponse: {
8962
- /** @description Response payload. */
8963
- data: {
8964
- /** @description Markdown knowledge files under `.empiricalrun`. */
8965
- files: {
8966
- /** @description File name. */
8967
- name: string;
8968
- /** @description File path. */
8969
- path: string;
8970
- /** @description File size in bytes. */
8971
- size: number;
8972
- /** @description ISO timestamp of last commit, if known. */
8973
- lastUpdated: string | null;
8974
- }[];
8975
- };
8976
- };
8977
9051
  GithubPrMergeResponse: {
8978
9052
  data: {
8979
9053
  /** @description Whether the PR was merged. */
@@ -10642,7 +10716,7 @@ export interface components {
10642
10716
  nesting: string[];
10643
10717
  /** @description Playwright project the case ran under. */
10644
10718
  test_project: string | null;
10645
- /** @description Number of retries; null for pre-ledger runs. */
10719
+ /** @description Number of retries; null when not recorded. */
10646
10720
  retries: number | null;
10647
10721
  /** @description Total duration in milliseconds. */
10648
10722
  total_duration: number | null;
@@ -10749,7 +10823,7 @@ export interface components {
10749
10823
  nesting: string[];
10750
10824
  /** @description Playwright project the case ran under. */
10751
10825
  test_project: string | null;
10752
- /** @description Number of retries; null for pre-ledger runs. */
10826
+ /** @description Number of retries; null when not recorded. */
10753
10827
  retries: number | null;
10754
10828
  /** @description Total duration in milliseconds. */
10755
10829
  total_duration: number | null;
@@ -10781,9 +10855,7 @@ export interface components {
10781
10855
  test_run: {
10782
10856
  project: components["schemas"]["UiTestRunProject"];
10783
10857
  testRun: components["schemas"]["EnrichedTestRun"];
10784
- /** @description Per-test summary/diagnosis details. */
10785
- flattenedSummaryDetails: components["schemas"]["UiTestCaseSummaryDetail"][];
10786
- /** @description Test cases referenced by the diagnoses' pw_test_ids, so the run detail page renders without a follow-up lookup. */
10858
+ /** @description Test cases referenced by the ledger first page's pw_test_ids, so the run detail page renders without a follow-up lookup. */
10787
10859
  test_cases: components["schemas"]["TestCase"][];
10788
10860
  /** @description Resolved details for the user that cancelled the run. */
10789
10861
  cancelled_by_user: {
@@ -10801,7 +10873,7 @@ export interface components {
10801
10873
  id: number;
10802
10874
  title: string | null;
10803
10875
  } | null;
10804
- /** @description First page of ledger-sourced cases, ordered failed โ†’ flaky โ†’ others so the default 'failed' filter and the failure-first list render correctly on first paint. Shipped inline so the ledger-source list renders without waiting on a fetch. Empty for pre-ledger runs (the client falls back to the diagnoses above). The client refetches the full set. */
10876
+ /** @description First page of ledger-sourced cases, ordered failed โ†’ flaky โ†’ others so the default 'failed' filter and the failure-first list render correctly on first paint. Shipped inline so the list renders without waiting on a fetch. The client refetches the full set. */
10805
10877
  ledger_cases: components["schemas"]["TestRunCase"][];
10806
10878
  /** @description Total ledger case count for the run, so the client knows how much the inline first page is truncating. */
10807
10879
  ledger_cases_total: number;
@@ -10947,64 +11019,15 @@ export interface components {
10947
11019
  picture: string;
10948
11020
  } | null;
10949
11021
  };
10950
- UiTestCaseSummaryDetail: {
10951
- /** @description Diagnosis row ID. */
10952
- id: number;
10953
- /** @description ISO 8601 creation timestamp. */
10954
- created_at: string;
10955
- /** @description Test case slug. */
10956
- slug: string | null;
10957
- /** @description Playwright test ID. */
10958
- pw_test_id: string | null;
10959
- /** @description Test run ID. */
10960
- test_run_id: string;
10961
- /** @description Test case status. */
10962
- status: string;
10963
- /** @description Playwright project the test ran under. */
10964
- test_project: string | null;
10965
- /** @description Last commit SHA before the run started. */
10966
- last_commit_before_run_started_at: string | null;
10967
- /** @description Source line that triggered the failure. */
10968
- failing_line: string | null;
10969
- /** @description Run-time test path `[file, ...suites, title]`. */
10970
- nesting: string[];
10971
- /** @description Per-retry details for the failed test. */
10972
- retry_details: {
10973
- retries: components["schemas"]["RetryDetail"][];
10974
- } | null;
10975
- /** @description Snoozes that apply to this test in this run. */
10976
- snooze_info: components["schemas"]["UiTestCaseSummaryDetailSnooze"][];
10977
- };
10978
- UiTestCaseSummaryDetailSnooze: {
10979
- /** @description Snooze ID. */
10980
- snooze_id: number;
10981
- /** @description Snooze description. */
10982
- description: string | null;
10983
- /** @description User ID that created the snooze. */
10984
- created_by: string | null;
10985
- /** @description Avatar URL of the snooze creator. */
10986
- created_by_picture: string | null;
10987
- /** @description ISO 8601 timestamp the snooze is active until. */
10988
- snooze_until: string | null;
10989
- /** @description ISO 8601 timestamp the snooze was created. */
10990
- created_at: string | null;
10991
- /**
10992
- * @description Why the snooze applies: `window` (active window overlapped the run) or `originating_run` (created from this run).
10993
- * @enum {string}
10994
- */
10995
- match_reason: "window" | "originating_run";
10996
- /** @description Environment the snooze is scoped to; null applies to all environments. */
10997
- scoped_to_environment_id: number | null;
10998
- };
10999
- TriageReportListResponse: {
11000
- /** @description The page of triage reports. */
11001
- data: {
11002
- triage_reports: components["schemas"]["TriageReport"][];
11003
- };
11004
- pagination: components["schemas"]["Pagination"];
11005
- };
11006
- TriageReport: {
11007
- /** @description Triage report ID. */
11022
+ TriageReportListResponse: {
11023
+ /** @description The page of triage reports. */
11024
+ data: {
11025
+ triage_reports: components["schemas"]["TriageReport"][];
11026
+ };
11027
+ pagination: components["schemas"]["Pagination"];
11028
+ };
11029
+ TriageReport: {
11030
+ /** @description Triage report ID. */
11008
11031
  id: number;
11009
11032
  /** @description ID of the test run this report belongs to. */
11010
11033
  test_run_id: number;
@@ -11601,6 +11624,8 @@ export interface components {
11601
11624
  state: "open" | "resolved";
11602
11625
  /** @description Current consecutive-fail streak. */
11603
11626
  consecutive_fails: number;
11627
+ /** @description Failing runs recorded on this alert since it opened: the run that opened it plus every run that kept it failing. Unlike `consecutive_fails`, an intervening pass does not reset it. */
11628
+ fails_since_opened: number;
11604
11629
  /** @description Recent evaluated outcomes, newest last. */
11605
11630
  recent_outcomes: components["schemas"]["AlertRunOutcome"][];
11606
11631
  /** @description The run whose failure opened the alert. */
@@ -11695,6 +11720,8 @@ export interface components {
11695
11720
  state: "open" | "resolved";
11696
11721
  /** @description Current consecutive-fail streak. */
11697
11722
  consecutive_fails: number;
11723
+ /** @description Failing runs recorded on this alert since it opened: the run that opened it plus every run that kept it failing. Unlike `consecutive_fails`, an intervening pass does not reset it. */
11724
+ fails_since_opened: number;
11698
11725
  /** @description Recent evaluated outcomes, newest last. */
11699
11726
  recent_outcomes: components["schemas"]["AlertRunOutcome"][];
11700
11727
  /** @description The run whose failure opened the alert. */
@@ -14950,6 +14977,84 @@ export interface operations {
14950
14977
  };
14951
14978
  };
14952
14979
  };
14980
+ slackSendMessage: {
14981
+ parameters: {
14982
+ query?: never;
14983
+ header?: never;
14984
+ path?: never;
14985
+ cookie?: never;
14986
+ };
14987
+ requestBody?: {
14988
+ content: {
14989
+ "application/json": {
14990
+ /** @description Slack channel id to post in. */
14991
+ channel: string;
14992
+ /** @description Timestamp id of a message in the thread to reply in โ€” pass the `ts` you were given for any message in that thread. Omit to post a new top-level message in the channel. */
14993
+ thread_ts?: string;
14994
+ /** @description Message body as Markdown; converted to Slack formatting. */
14995
+ markdown: string;
14996
+ /** @description Stable caller-generated key for safely retrying. Honoured when the thread belongs to a chat session; ignored otherwise. */
14997
+ idempotency_key?: string;
14998
+ };
14999
+ };
15000
+ };
15001
+ responses: {
15002
+ /** @description Message posted. */
15003
+ 200: {
15004
+ headers: {
15005
+ [name: string]: unknown;
15006
+ };
15007
+ content: {
15008
+ "application/json": components["schemas"]["SlackMessageResult"];
15009
+ };
15010
+ };
15011
+ /** @description Invalid request. */
15012
+ 400: {
15013
+ headers: {
15014
+ [name: string]: unknown;
15015
+ };
15016
+ content: {
15017
+ "application/json": components["schemas"]["SlackMessageError"];
15018
+ };
15019
+ };
15020
+ /** @description Sandbox authentication required, or the channel is out of scope. */
15021
+ 403: {
15022
+ headers: {
15023
+ [name: string]: unknown;
15024
+ };
15025
+ content: {
15026
+ "application/json": components["schemas"]["SlackMessageError"];
15027
+ };
15028
+ };
15029
+ /** @description Chat session or Slack connection not found. */
15030
+ 404: {
15031
+ headers: {
15032
+ [name: string]: unknown;
15033
+ };
15034
+ content: {
15035
+ "application/json": components["schemas"]["SlackMessageError"];
15036
+ };
15037
+ };
15038
+ /** @description Idempotency conflict. */
15039
+ 409: {
15040
+ headers: {
15041
+ [name: string]: unknown;
15042
+ };
15043
+ content: {
15044
+ "application/json": components["schemas"]["SlackMessageError"];
15045
+ };
15046
+ };
15047
+ /** @description Slack upstream error. */
15048
+ 502: {
15049
+ headers: {
15050
+ [name: string]: unknown;
15051
+ };
15052
+ content: {
15053
+ "application/json": components["schemas"]["SlackMessageError"];
15054
+ };
15055
+ };
15056
+ };
15057
+ };
14953
15058
  slackProxy: {
14954
15059
  parameters: {
14955
15060
  query?: never;
@@ -15023,6 +15128,88 @@ export interface operations {
15023
15128
  };
15024
15129
  };
15025
15130
  };
15131
+ slackReaction: {
15132
+ parameters: {
15133
+ query?: never;
15134
+ header?: never;
15135
+ path?: never;
15136
+ cookie?: never;
15137
+ };
15138
+ requestBody?: {
15139
+ content: {
15140
+ "application/json": {
15141
+ /** @description Slack channel id the message lives in. */
15142
+ channel: string;
15143
+ /** @description Timestamp id of the message to react to, e.g. `1783545993.688449`. */
15144
+ ts: string;
15145
+ /** @description Emoji name to react with, without colons โ€” e.g. `tada`, `eyes`, `shipit`. Any emoji the workspace has, built-in or custom; a name the workspace does not have is rejected with 400. */
15146
+ reaction: string;
15147
+ /**
15148
+ * @description Whether to add the reaction or take it back off. Removing is how a status reaction is superseded (e.g. drop `eyes` when adding `white_check_mark`).
15149
+ * @default add
15150
+ * @enum {string}
15151
+ */
15152
+ action?: "add" | "remove";
15153
+ };
15154
+ };
15155
+ };
15156
+ responses: {
15157
+ /** @description Reaction applied. */
15158
+ 200: {
15159
+ headers: {
15160
+ [name: string]: unknown;
15161
+ };
15162
+ content: {
15163
+ "application/json": components["schemas"]["SlackReactionResult"];
15164
+ };
15165
+ };
15166
+ /** @description Invalid request, or the workspace has no emoji by that name. */
15167
+ 400: {
15168
+ headers: {
15169
+ [name: string]: unknown;
15170
+ };
15171
+ content: {
15172
+ "application/json": components["schemas"]["SlackReactionError"];
15173
+ };
15174
+ };
15175
+ /** @description Sandbox authentication required, or the channel is out of scope. */
15176
+ 403: {
15177
+ headers: {
15178
+ [name: string]: unknown;
15179
+ };
15180
+ content: {
15181
+ "application/json": components["schemas"]["SlackReactionError"];
15182
+ };
15183
+ };
15184
+ /** @description Chat session or Slack connection not found. */
15185
+ 404: {
15186
+ headers: {
15187
+ [name: string]: unknown;
15188
+ };
15189
+ content: {
15190
+ "application/json": components["schemas"]["SlackReactionError"];
15191
+ };
15192
+ };
15193
+ /** @description The Slack workspace has not granted the reactions:write scope. */
15194
+ 424: {
15195
+ headers: {
15196
+ [name: string]: unknown;
15197
+ };
15198
+ content: {
15199
+ "application/json": components["schemas"]["SlackReactionError"];
15200
+ };
15201
+ };
15202
+ /** @description Slack upstream error. */
15203
+ 502: {
15204
+ headers: {
15205
+ [name: string]: unknown;
15206
+ };
15207
+ content: {
15208
+ "application/json": components["schemas"]["SlackReactionError"];
15209
+ };
15210
+ };
15211
+ };
15212
+ };
15026
15213
  deleteSlackChannel: {
15027
15214
  parameters: {
15028
15215
  query?: never;
@@ -16266,6 +16453,38 @@ export interface operations {
16266
16453
  };
16267
16454
  };
16268
16455
  };
16456
+ getStaticIps: {
16457
+ parameters: {
16458
+ query: {
16459
+ /** @description Region to look up. One of: ap-south-1. */
16460
+ region: string;
16461
+ };
16462
+ header?: never;
16463
+ path?: never;
16464
+ cookie?: never;
16465
+ };
16466
+ requestBody?: never;
16467
+ responses: {
16468
+ /** @description Static IPs for the region. */
16469
+ 200: {
16470
+ headers: {
16471
+ [name: string]: unknown;
16472
+ };
16473
+ content: {
16474
+ "application/json": components["schemas"]["StaticIpsResponse"];
16475
+ };
16476
+ };
16477
+ /** @description Missing or unknown region. */
16478
+ 400: {
16479
+ headers: {
16480
+ [name: string]: unknown;
16481
+ };
16482
+ content: {
16483
+ "application/json": components["schemas"]["ErrorResponse"];
16484
+ };
16485
+ };
16486
+ };
16487
+ };
16269
16488
  getOverlayDismissalSummary: {
16270
16489
  parameters: {
16271
16490
  query?: {
@@ -16464,64 +16683,134 @@ export interface operations {
16464
16683
  query?: never;
16465
16684
  header?: never;
16466
16685
  path: {
16467
- /** @description Chat session ID. */
16468
16686
  id: number;
16469
16687
  };
16470
16688
  cookie?: never;
16471
16689
  };
16472
16690
  requestBody?: never;
16473
16691
  responses: {
16474
- /** @description Upcoming alarms for the session. */
16692
+ /** @description Alarms */
16475
16693
  200: {
16476
16694
  headers: {
16477
16695
  [name: string]: unknown;
16478
16696
  };
16479
16697
  content: {
16480
- "application/json": components["schemas"]["ChatSessionAlarms"];
16481
- };
16482
- };
16483
- /** @description Invalid request. */
16484
- 400: {
16485
- headers: {
16486
- [name: string]: unknown;
16487
- };
16488
- content: {
16489
- "application/json": components["schemas"]["ErrorResponse"];
16698
+ "application/json": {
16699
+ alarms: {
16700
+ id: number;
16701
+ /** @description Compatibility alias for id. */
16702
+ alarm_id: string;
16703
+ /** @description One-time wake time; null for recurring cron alarms. */
16704
+ wake_at: string | null;
16705
+ chat_session_id: number;
16706
+ message: string;
16707
+ timing: {
16708
+ /** @enum {string} */
16709
+ type: "once";
16710
+ /** Format: date-time */
16711
+ run_at: string;
16712
+ } | {
16713
+ /** @enum {string} */
16714
+ type: "cron";
16715
+ cron: string;
16716
+ /** Format: date-time */
16717
+ ends_at?: string;
16718
+ };
16719
+ /** @enum {string} */
16720
+ status: "active" | "completed";
16721
+ last_run_at: string | null;
16722
+ created_at: string;
16723
+ updated_at: string;
16724
+ }[];
16725
+ };
16490
16726
  };
16491
16727
  };
16492
- /** @description Session not found. */
16728
+ /** @description Session not found */
16493
16729
  404: {
16494
16730
  headers: {
16495
16731
  [name: string]: unknown;
16496
16732
  };
16497
16733
  content: {
16498
- "application/json": components["schemas"]["ChatSessionAlarmsError"];
16734
+ "application/json": components["schemas"]["ErrorResponse"];
16499
16735
  };
16500
16736
  };
16501
16737
  };
16502
16738
  };
16503
- listChatSessionThreads: {
16739
+ createChatSessionAlarm: {
16504
16740
  parameters: {
16505
16741
  query?: never;
16506
16742
  header?: never;
16507
16743
  path: {
16508
- /** @description Chat session ID. */
16509
16744
  id: number;
16510
16745
  };
16511
16746
  cookie?: never;
16512
16747
  };
16513
- requestBody?: never;
16748
+ requestBody?: {
16749
+ content: {
16750
+ "application/json": {
16751
+ message: string;
16752
+ timing: {
16753
+ /** @enum {string} */
16754
+ type: "once";
16755
+ /** Format: date-time */
16756
+ run_at: string;
16757
+ } | {
16758
+ /** @enum {string} */
16759
+ type: "cron";
16760
+ cron: string;
16761
+ /** Format: date-time */
16762
+ ends_at?: string;
16763
+ };
16764
+ };
16765
+ };
16766
+ };
16514
16767
  responses: {
16515
- /** @description The session's threads. */
16516
- 200: {
16768
+ /** @description Created alarm */
16769
+ 201: {
16517
16770
  headers: {
16518
16771
  [name: string]: unknown;
16519
16772
  };
16520
16773
  content: {
16521
- "application/json": components["schemas"]["ChatSessionThreadsListResponse"];
16774
+ "application/json": {
16775
+ data: {
16776
+ id: number;
16777
+ /** @description Compatibility alias for id. */
16778
+ alarm_id: string;
16779
+ /** @description One-time wake time; null for recurring cron alarms. */
16780
+ wake_at: string | null;
16781
+ chat_session_id: number;
16782
+ message: string;
16783
+ timing: {
16784
+ /** @enum {string} */
16785
+ type: "once";
16786
+ /** Format: date-time */
16787
+ run_at: string;
16788
+ } | {
16789
+ /** @enum {string} */
16790
+ type: "cron";
16791
+ cron: string;
16792
+ /** Format: date-time */
16793
+ ends_at?: string;
16794
+ };
16795
+ /** @enum {string} */
16796
+ status: "active" | "completed";
16797
+ last_run_at: string | null;
16798
+ created_at: string;
16799
+ updated_at: string;
16800
+ };
16801
+ };
16522
16802
  };
16523
16803
  };
16524
- /** @description Chat session not found. */
16804
+ /** @description Invalid alarm */
16805
+ 400: {
16806
+ headers: {
16807
+ [name: string]: unknown;
16808
+ };
16809
+ content: {
16810
+ "application/json": components["schemas"]["ErrorResponse"];
16811
+ };
16812
+ };
16813
+ /** @description Session not found */
16525
16814
  404: {
16526
16815
  headers: {
16527
16816
  [name: string]: unknown;
@@ -16532,22 +16821,161 @@ export interface operations {
16532
16821
  };
16533
16822
  };
16534
16823
  };
16535
- createChatSessionThread: {
16824
+ deleteChatSessionAlarm: {
16536
16825
  parameters: {
16537
16826
  query?: never;
16538
16827
  header?: never;
16539
16828
  path: {
16540
- /** @description Chat session ID. */
16541
16829
  id: number;
16830
+ alarm_id: number;
16542
16831
  };
16543
16832
  cookie?: never;
16544
16833
  };
16545
- requestBody?: {
16546
- content: {
16547
- "application/json": {
16548
- /**
16549
- * @description Messaging provider. Only "slack" is supported.
16550
- * @default slack
16834
+ requestBody?: never;
16835
+ responses: {
16836
+ /** @description Deleted */
16837
+ 204: {
16838
+ headers: {
16839
+ [name: string]: unknown;
16840
+ };
16841
+ content?: never;
16842
+ };
16843
+ /** @description Alarm not found */
16844
+ 404: {
16845
+ headers: {
16846
+ [name: string]: unknown;
16847
+ };
16848
+ content: {
16849
+ "application/json": components["schemas"]["ErrorResponse"];
16850
+ };
16851
+ };
16852
+ };
16853
+ };
16854
+ updateChatSessionAlarm: {
16855
+ parameters: {
16856
+ query?: never;
16857
+ header?: never;
16858
+ path: {
16859
+ id: number;
16860
+ alarm_id: number;
16861
+ };
16862
+ cookie?: never;
16863
+ };
16864
+ requestBody?: {
16865
+ content: {
16866
+ "application/json": {
16867
+ message?: string;
16868
+ timing?: {
16869
+ /** @enum {string} */
16870
+ type: "once";
16871
+ /** Format: date-time */
16872
+ run_at: string;
16873
+ } | {
16874
+ /** @enum {string} */
16875
+ type: "cron";
16876
+ cron: string;
16877
+ /** Format: date-time */
16878
+ ends_at?: string;
16879
+ };
16880
+ };
16881
+ };
16882
+ };
16883
+ responses: {
16884
+ /** @description Updated alarm */
16885
+ 200: {
16886
+ headers: {
16887
+ [name: string]: unknown;
16888
+ };
16889
+ content: {
16890
+ "application/json": {
16891
+ data: {
16892
+ id: number;
16893
+ /** @description Compatibility alias for id. */
16894
+ alarm_id: string;
16895
+ /** @description One-time wake time; null for recurring cron alarms. */
16896
+ wake_at: string | null;
16897
+ chat_session_id: number;
16898
+ message: string;
16899
+ timing: {
16900
+ /** @enum {string} */
16901
+ type: "once";
16902
+ /** Format: date-time */
16903
+ run_at: string;
16904
+ } | {
16905
+ /** @enum {string} */
16906
+ type: "cron";
16907
+ cron: string;
16908
+ /** Format: date-time */
16909
+ ends_at?: string;
16910
+ };
16911
+ /** @enum {string} */
16912
+ status: "active" | "completed";
16913
+ last_run_at: string | null;
16914
+ created_at: string;
16915
+ updated_at: string;
16916
+ };
16917
+ };
16918
+ };
16919
+ };
16920
+ /** @description Alarm not found */
16921
+ 404: {
16922
+ headers: {
16923
+ [name: string]: unknown;
16924
+ };
16925
+ content: {
16926
+ "application/json": components["schemas"]["ErrorResponse"];
16927
+ };
16928
+ };
16929
+ };
16930
+ };
16931
+ listChatSessionThreads: {
16932
+ parameters: {
16933
+ query?: never;
16934
+ header?: never;
16935
+ path: {
16936
+ /** @description Chat session ID. */
16937
+ id: number;
16938
+ };
16939
+ cookie?: never;
16940
+ };
16941
+ requestBody?: never;
16942
+ responses: {
16943
+ /** @description The session's threads. */
16944
+ 200: {
16945
+ headers: {
16946
+ [name: string]: unknown;
16947
+ };
16948
+ content: {
16949
+ "application/json": components["schemas"]["ChatSessionThreadsListResponse"];
16950
+ };
16951
+ };
16952
+ /** @description Chat session not found. */
16953
+ 404: {
16954
+ headers: {
16955
+ [name: string]: unknown;
16956
+ };
16957
+ content: {
16958
+ "application/json": components["schemas"]["ErrorResponse"];
16959
+ };
16960
+ };
16961
+ };
16962
+ };
16963
+ createChatSessionThread: {
16964
+ parameters: {
16965
+ query?: never;
16966
+ header?: never;
16967
+ path: {
16968
+ /** @description Chat session ID. */
16969
+ id: number;
16970
+ };
16971
+ cookie?: never;
16972
+ };
16973
+ requestBody?: {
16974
+ content: {
16975
+ "application/json": {
16976
+ /**
16977
+ * @description Messaging provider. Only "slack" is supported.
16978
+ * @default slack
16551
16979
  * @enum {string}
16552
16980
  */
16553
16981
  provider?: "slack";
@@ -16725,7 +17153,7 @@ export interface operations {
16725
17153
  "application/json": components["schemas"]["ChatSessionThreadMessageResponse"];
16726
17154
  };
16727
17155
  };
16728
- /** @description Thread is not agent-controlled, or the idempotency key is missing. */
17156
+ /** @description Thread does not accept agent messages, Slack sync is disabled for it, or the idempotency key is missing. */
16729
17157
  400: {
16730
17158
  headers: {
16731
17159
  [name: string]: unknown;
@@ -17495,156 +17923,29 @@ export interface operations {
17495
17923
  };
17496
17924
  };
17497
17925
  };
17498
- listAgentWorkflows: {
17499
- parameters: {
17500
- query?: never;
17501
- header?: never;
17502
- path?: never;
17503
- cookie?: never;
17504
- };
17505
- requestBody?: never;
17506
- responses: {
17507
- /** @description The project's agent workflows. */
17508
- 200: {
17509
- headers: {
17510
- [name: string]: unknown;
17511
- };
17512
- content: {
17513
- "application/json": components["schemas"]["AgentWorkflowListResponse"];
17514
- };
17515
- };
17516
- /** @description Invalid or missing project scope. */
17517
- 400: {
17518
- headers: {
17519
- [name: string]: unknown;
17520
- };
17521
- content: {
17522
- "application/json": components["schemas"]["ErrorResponse"];
17523
- };
17524
- };
17525
- /** @description Project not found. */
17526
- 404: {
17527
- headers: {
17528
- [name: string]: unknown;
17529
- };
17530
- content: {
17531
- "application/json": components["schemas"]["ErrorResponse"];
17532
- };
17533
- };
17534
- };
17535
- };
17536
- createAgentWorkflow: {
17926
+ createAlarm: {
17537
17927
  parameters: {
17538
17928
  query?: never;
17539
17929
  header?: never;
17540
17930
  path?: never;
17541
17931
  cookie?: never;
17542
17932
  };
17543
- requestBody: {
17544
- content: {
17545
- "application/json": {
17546
- /** @description Prompt sent to the chat session when triggered. */
17547
- prompt: string;
17548
- /** @description Cron expression controlling when the workflow runs. */
17549
- cron_schedule: string;
17550
- };
17551
- };
17552
- };
17553
- responses: {
17554
- /** @description The created agent workflow. */
17555
- 200: {
17556
- headers: {
17557
- [name: string]: unknown;
17558
- };
17559
- content: {
17560
- "application/json": components["schemas"]["AgentWorkflowResponse"];
17561
- };
17562
- };
17563
- /** @description Invalid request or project scope. */
17564
- 400: {
17565
- headers: {
17566
- [name: string]: unknown;
17567
- };
17568
- content: {
17569
- "application/json": components["schemas"]["ErrorResponse"];
17570
- };
17571
- };
17572
- /** @description Project not found. */
17573
- 404: {
17574
- headers: {
17575
- [name: string]: unknown;
17576
- };
17577
- content: {
17578
- "application/json": components["schemas"]["ErrorResponse"];
17579
- };
17580
- };
17581
- };
17582
- };
17583
- deleteAgentWorkflow: {
17584
- parameters: {
17585
- query?: never;
17586
- header?: never;
17587
- path: {
17588
- /** @description Agent workflow ID. */
17589
- id: number;
17590
- };
17591
- cookie?: never;
17592
- };
17593
- requestBody?: never;
17594
- responses: {
17595
- /** @description The workflow was deleted. */
17596
- 200: {
17597
- headers: {
17598
- [name: string]: unknown;
17599
- };
17600
- content: {
17601
- "application/json": components["schemas"]["AgentWorkflowDeleteResponse"];
17602
- };
17603
- };
17604
- /** @description Workflow not found. */
17605
- 404: {
17606
- headers: {
17607
- [name: string]: unknown;
17608
- };
17609
- content: {
17610
- "application/json": components["schemas"]["ErrorResponse"];
17611
- };
17612
- };
17613
- };
17614
- };
17615
- updateAgentWorkflow: {
17616
- parameters: {
17617
- query?: never;
17618
- header?: never;
17619
- path: {
17620
- /** @description Agent workflow ID. */
17621
- id: number;
17622
- };
17623
- cookie?: never;
17624
- };
17625
17933
  requestBody?: {
17626
17934
  content: {
17627
- "application/json": {
17628
- /** @description New prompt for the workflow. */
17629
- prompt?: string;
17630
- /** @description New cron expression for the workflow. */
17631
- cron_schedule?: string;
17632
- /** @description Whether the workflow is active and will be scheduled. */
17633
- is_active?: boolean;
17634
- };
17935
+ "application/json": components["schemas"]["CreateAlarmRequest"];
17635
17936
  };
17636
17937
  };
17637
17938
  responses: {
17638
- /** @description The updated agent workflow. */
17939
+ /** @description The scheduled alarm. */
17639
17940
  200: {
17640
17941
  headers: {
17641
17942
  [name: string]: unknown;
17642
17943
  };
17643
17944
  content: {
17644
- "application/json": components["schemas"]["AgentWorkflowUpdateResponse"];
17945
+ "application/json": components["schemas"]["AlarmResponse"];
17645
17946
  };
17646
17947
  };
17647
- /** @description Invalid request. */
17948
+ /** @description Invalid duration or out of the allowed range. */
17648
17949
  400: {
17649
17950
  headers: {
17650
17951
  [name: string]: unknown;
@@ -17653,8 +17954,8 @@ export interface operations {
17653
17954
  "application/json": components["schemas"]["ErrorResponse"];
17654
17955
  };
17655
17956
  };
17656
- /** @description Workflow not found. */
17657
- 404: {
17957
+ /** @description Caller is not acting on behalf of a chat session. */
17958
+ 403: {
17658
17959
  headers: {
17659
17960
  [name: string]: unknown;
17660
17961
  };
@@ -17662,30 +17963,7 @@ export interface operations {
17662
17963
  "application/json": components["schemas"]["ErrorResponse"];
17663
17964
  };
17664
17965
  };
17665
- };
17666
- };
17667
- triggerAgentWorkflow: {
17668
- parameters: {
17669
- query?: never;
17670
- header?: never;
17671
- path: {
17672
- /** @description Agent workflow ID. */
17673
- id: number;
17674
- };
17675
- cookie?: never;
17676
- };
17677
- requestBody?: never;
17678
- responses: {
17679
- /** @description The chat session opened by the trigger. */
17680
- 200: {
17681
- headers: {
17682
- [name: string]: unknown;
17683
- };
17684
- content: {
17685
- "application/json": components["schemas"]["AgentWorkflowTriggerResponse"];
17686
- };
17687
- };
17688
- /** @description Workflow not found or inactive. */
17966
+ /** @description Chat session not found. */
17689
17967
  404: {
17690
17968
  headers: {
17691
17969
  [name: string]: unknown;
@@ -17694,41 +17972,8 @@ export interface operations {
17694
17972
  "application/json": components["schemas"]["ErrorResponse"];
17695
17973
  };
17696
17974
  };
17697
- };
17698
- };
17699
- createAlarm: {
17700
- parameters: {
17701
- query?: never;
17702
- header?: never;
17703
- path?: never;
17704
- cookie?: never;
17705
- };
17706
- requestBody?: {
17707
- content: {
17708
- "application/json": components["schemas"]["CreateAlarmRequest"];
17709
- };
17710
- };
17711
- responses: {
17712
- /** @description The scheduled alarm. */
17713
- 200: {
17714
- headers: {
17715
- [name: string]: unknown;
17716
- };
17717
- content: {
17718
- "application/json": components["schemas"]["AlarmResponse"];
17719
- };
17720
- };
17721
- /** @description Invalid duration or out of the allowed range. */
17722
- 400: {
17723
- headers: {
17724
- [name: string]: unknown;
17725
- };
17726
- content: {
17727
- "application/json": components["schemas"]["ErrorResponse"];
17728
- };
17729
- };
17730
- /** @description Caller is not acting on behalf of a chat session. */
17731
- 403: {
17975
+ /** @description Chat session is closed. */
17976
+ 409: {
17732
17977
  headers: {
17733
17978
  [name: string]: unknown;
17734
17979
  };
@@ -18110,7 +18355,6 @@ export interface operations {
18110
18355
  source_identifier?: string | null;
18111
18356
  model?: string | null;
18112
18357
  base_branch?: string | null;
18113
- environment_id?: number | null;
18114
18358
  send_slack_notification?: boolean | null;
18115
18359
  created_by?: string | null;
18116
18360
  };
@@ -18185,7 +18429,6 @@ export interface operations {
18185
18429
  title?: string;
18186
18430
  source?: string;
18187
18431
  source_identifier?: string;
18188
- environment_id?: number | null;
18189
18432
  model?: string;
18190
18433
  impacted_tests?: unknown;
18191
18434
  };
@@ -18492,38 +18735,6 @@ export interface operations {
18492
18735
  };
18493
18736
  };
18494
18737
  };
18495
- getChatSessionEnvironmentVariables: {
18496
- parameters: {
18497
- query?: never;
18498
- header?: never;
18499
- path: {
18500
- /** @description Chat session ID. */
18501
- id: number;
18502
- };
18503
- cookie?: never;
18504
- };
18505
- requestBody?: never;
18506
- responses: {
18507
- /** @description Resolved environment variables. */
18508
- 200: {
18509
- headers: {
18510
- [name: string]: unknown;
18511
- };
18512
- content: {
18513
- "application/json": components["schemas"]["ChatSessionEnvironmentVariablesResponse"];
18514
- };
18515
- };
18516
- /** @description Chat session not found. */
18517
- 404: {
18518
- headers: {
18519
- [name: string]: unknown;
18520
- };
18521
- content: {
18522
- "application/json": components["schemas"]["ErrorResponse"];
18523
- };
18524
- };
18525
- };
18526
- };
18527
18738
  forwardChatSessionMessage: {
18528
18739
  parameters: {
18529
18740
  query?: never;
@@ -19145,7 +19356,7 @@ export interface operations {
19145
19356
  requestBody?: {
19146
19357
  content: {
19147
19358
  "application/json": {
19148
- /** @description Whether to enable two-way Slack sync. */
19359
+ /** @description Whether this user's Slack DM mirrors the session's assistant messages. */
19149
19360
  sync_enabled: boolean;
19150
19361
  };
19151
19362
  };
@@ -20117,65 +20328,22 @@ export interface operations {
20117
20328
  /** @description New file contents (required on write). */
20118
20329
  content?: string;
20119
20330
  /** @description Blob SHA of the file being replaced/deleted. */
20120
- sha?: string;
20121
- };
20122
- };
20123
- };
20124
- responses: {
20125
- /** @description The GitHub mutation response. */
20126
- 200: {
20127
- headers: {
20128
- [name: string]: unknown;
20129
- };
20130
- content: {
20131
- "application/json": components["schemas"]["GithubFileMutationResponse"];
20132
- };
20133
- };
20134
- /** @description Missing required field: sha. */
20135
- 400: {
20136
- headers: {
20137
- [name: string]: unknown;
20138
- };
20139
- content: {
20140
- "application/json": components["schemas"]["ErrorResponse"];
20331
+ sha?: string;
20141
20332
  };
20142
20333
  };
20143
20334
  };
20144
- };
20145
- listKnowledgeFiles: {
20146
- parameters: {
20147
- query: {
20148
- /** @description Repository name. */
20149
- repo: string;
20150
- /** @description Branch or ref; defaults to the project branch. */
20151
- ref?: string;
20152
- };
20153
- header?: never;
20154
- path?: never;
20155
- cookie?: never;
20156
- };
20157
- requestBody?: never;
20158
20335
  responses: {
20159
- /** @description The knowledge files. */
20336
+ /** @description The GitHub mutation response. */
20160
20337
  200: {
20161
20338
  headers: {
20162
20339
  [name: string]: unknown;
20163
20340
  };
20164
20341
  content: {
20165
- "application/json": components["schemas"]["GithubKnowledgeFilesResponse"];
20166
- };
20167
- };
20168
- /** @description Caller cannot access the project. */
20169
- 403: {
20170
- headers: {
20171
- [name: string]: unknown;
20172
- };
20173
- content: {
20174
- "application/json": components["schemas"]["ErrorResponse"];
20342
+ "application/json": components["schemas"]["GithubFileMutationResponse"];
20175
20343
  };
20176
20344
  };
20177
- /** @description No project found for the repo. */
20178
- 404: {
20345
+ /** @description Missing required field: sha. */
20346
+ 400: {
20179
20347
  headers: {
20180
20348
  [name: string]: unknown;
20181
20349
  };
@@ -21140,6 +21308,39 @@ export interface operations {
21140
21308
  };
21141
21309
  };
21142
21310
  };
21311
+ handleSpotInterruption: {
21312
+ parameters: {
21313
+ query?: never;
21314
+ header?: never;
21315
+ path?: never;
21316
+ cookie?: never;
21317
+ };
21318
+ requestBody?: {
21319
+ content: {
21320
+ "application/json": components["schemas"]["SpotInterruptionRequest"];
21321
+ };
21322
+ };
21323
+ responses: {
21324
+ /** @description The event was handled. */
21325
+ 200: {
21326
+ headers: {
21327
+ [name: string]: unknown;
21328
+ };
21329
+ content: {
21330
+ "application/json": components["schemas"]["SpotInterruptionResponse"];
21331
+ };
21332
+ };
21333
+ /** @description Invalid request. */
21334
+ 400: {
21335
+ headers: {
21336
+ [name: string]: unknown;
21337
+ };
21338
+ content: {
21339
+ "application/json": components["schemas"]["ErrorResponse"];
21340
+ };
21341
+ };
21342
+ };
21343
+ };
21143
21344
  enqueueTestCasesSync: {
21144
21345
  parameters: {
21145
21346
  query?: never;
@@ -23794,6 +23995,157 @@ export interface operations {
23794
23995
  };
23795
23996
  };
23796
23997
  };
23998
+ listProjectAddons: {
23999
+ parameters: {
24000
+ query?: never;
24001
+ header?: never;
24002
+ path?: never;
24003
+ cookie?: never;
24004
+ };
24005
+ requestBody?: never;
24006
+ responses: {
24007
+ /** @description Add-on state and history. */
24008
+ 200: {
24009
+ headers: {
24010
+ [name: string]: unknown;
24011
+ };
24012
+ content: {
24013
+ "application/json": components["schemas"]["ListProjectAddonsResponse"];
24014
+ };
24015
+ };
24016
+ /** @description Missing or invalid project scope. */
24017
+ 400: {
24018
+ headers: {
24019
+ [name: string]: unknown;
24020
+ };
24021
+ content: {
24022
+ "application/json": components["schemas"]["ErrorResponse"];
24023
+ };
24024
+ };
24025
+ /** @description Project not found or not accessible. */
24026
+ 404: {
24027
+ headers: {
24028
+ [name: string]: unknown;
24029
+ };
24030
+ content: {
24031
+ "application/json": components["schemas"]["ErrorResponse"];
24032
+ };
24033
+ };
24034
+ };
24035
+ };
24036
+ disableProjectAddon: {
24037
+ parameters: {
24038
+ query?: never;
24039
+ header?: never;
24040
+ path: {
24041
+ /** @description Add-on identifier. One of: static_ip_proxy, repo_ownership. */
24042
+ addon: string;
24043
+ };
24044
+ cookie?: never;
24045
+ };
24046
+ requestBody?: never;
24047
+ responses: {
24048
+ /** @description The closed period. */
24049
+ 200: {
24050
+ headers: {
24051
+ [name: string]: unknown;
24052
+ };
24053
+ content: {
24054
+ "application/json": components["schemas"]["ProjectAddonResponse"];
24055
+ };
24056
+ };
24057
+ /** @description Missing or invalid project scope. */
24058
+ 400: {
24059
+ headers: {
24060
+ [name: string]: unknown;
24061
+ };
24062
+ content: {
24063
+ "application/json": components["schemas"]["ErrorResponse"];
24064
+ };
24065
+ };
24066
+ /** @description Project not found or not accessible. */
24067
+ 404: {
24068
+ headers: {
24069
+ [name: string]: unknown;
24070
+ };
24071
+ content: {
24072
+ "application/json": components["schemas"]["ErrorResponse"];
24073
+ };
24074
+ };
24075
+ /** @description Add-on is not enabled, or is still in use. */
24076
+ 409: {
24077
+ headers: {
24078
+ [name: string]: unknown;
24079
+ };
24080
+ content: {
24081
+ "application/json": components["schemas"]["ErrorResponse"];
24082
+ };
24083
+ };
24084
+ };
24085
+ };
24086
+ enableProjectAddon: {
24087
+ parameters: {
24088
+ query?: never;
24089
+ header?: never;
24090
+ path: {
24091
+ /** @description Add-on identifier. One of: static_ip_proxy, repo_ownership. */
24092
+ addon: string;
24093
+ };
24094
+ cookie?: never;
24095
+ };
24096
+ requestBody?: {
24097
+ content: {
24098
+ "application/json": components["schemas"]["EnableProjectAddonRequest"];
24099
+ };
24100
+ };
24101
+ responses: {
24102
+ /** @description The opened period. */
24103
+ 200: {
24104
+ headers: {
24105
+ [name: string]: unknown;
24106
+ };
24107
+ content: {
24108
+ "application/json": components["schemas"]["ProjectAddonResponse"];
24109
+ };
24110
+ };
24111
+ /** @description Missing or invalid project scope, or the add-on does not apply to this project. */
24112
+ 400: {
24113
+ headers: {
24114
+ [name: string]: unknown;
24115
+ };
24116
+ content: {
24117
+ "application/json": components["schemas"]["ErrorResponse"];
24118
+ };
24119
+ };
24120
+ /** @description effective_from / order_form_line_id require super admin. */
24121
+ 403: {
24122
+ headers: {
24123
+ [name: string]: unknown;
24124
+ };
24125
+ content: {
24126
+ "application/json": components["schemas"]["ErrorResponse"];
24127
+ };
24128
+ };
24129
+ /** @description Project not found or not accessible. */
24130
+ 404: {
24131
+ headers: {
24132
+ [name: string]: unknown;
24133
+ };
24134
+ content: {
24135
+ "application/json": components["schemas"]["ErrorResponse"];
24136
+ };
24137
+ };
24138
+ /** @description Add-on is already enabled. */
24139
+ 409: {
24140
+ headers: {
24141
+ [name: string]: unknown;
24142
+ };
24143
+ content: {
24144
+ "application/json": components["schemas"]["ErrorResponse"];
24145
+ };
24146
+ };
24147
+ };
24148
+ };
23797
24149
  listProjects: {
23798
24150
  parameters: {
23799
24151
  query?: {
@@ -24130,6 +24482,38 @@ export interface operations {
24130
24482
  };
24131
24483
  };
24132
24484
  };
24485
+ getOrCreateProjectManagerSession: {
24486
+ parameters: {
24487
+ query?: never;
24488
+ header?: never;
24489
+ path: {
24490
+ /** @description Project ID. */
24491
+ id: number;
24492
+ };
24493
+ cookie?: never;
24494
+ };
24495
+ requestBody?: never;
24496
+ responses: {
24497
+ /** @description The project's manager session. */
24498
+ 200: {
24499
+ headers: {
24500
+ [name: string]: unknown;
24501
+ };
24502
+ content: {
24503
+ "application/json": components["schemas"]["ProjectManagerSessionResponse"];
24504
+ };
24505
+ };
24506
+ /** @description Project not found or inaccessible. */
24507
+ 404: {
24508
+ headers: {
24509
+ [name: string]: unknown;
24510
+ };
24511
+ content: {
24512
+ "application/json": components["schemas"]["ErrorResponse"];
24513
+ };
24514
+ };
24515
+ };
24516
+ };
24133
24517
  listProjectMergeRequests: {
24134
24518
  parameters: {
24135
24519
  query?: {
@@ -24383,6 +24767,15 @@ export interface operations {
24383
24767
  "application/json": components["schemas"]["StartRepoTransferBadRequest"];
24384
24768
  };
24385
24769
  };
24770
+ /** @description The repo ownership add-on is not enabled for this project. */
24771
+ 403: {
24772
+ headers: {
24773
+ [name: string]: unknown;
24774
+ };
24775
+ content: {
24776
+ "application/json": components["schemas"]["RepoTransferCodedError"];
24777
+ };
24778
+ };
24386
24779
  /** @description Project not found. */
24387
24780
  404: {
24388
24781
  headers: {
@@ -24861,6 +25254,44 @@ export interface operations {
24861
25254
  };
24862
25255
  };
24863
25256
  };
25257
+ getProjectStaticIpProxyToken: {
25258
+ parameters: {
25259
+ query?: never;
25260
+ header?: never;
25261
+ path?: never;
25262
+ cookie?: never;
25263
+ };
25264
+ requestBody?: never;
25265
+ responses: {
25266
+ /** @description Static-IP proxy credentials. */
25267
+ 200: {
25268
+ headers: {
25269
+ [name: string]: unknown;
25270
+ };
25271
+ content: {
25272
+ "application/json": components["schemas"]["ProjectStaticIpProxyTokenResponse"];
25273
+ };
25274
+ };
25275
+ /** @description Project does not have the static IP proxy add-on. */
25276
+ 403: {
25277
+ headers: {
25278
+ [name: string]: unknown;
25279
+ };
25280
+ content: {
25281
+ "application/json": components["schemas"]["ErrorResponse"];
25282
+ };
25283
+ };
25284
+ /** @description Token minting is not configured on this environment. */
25285
+ 503: {
25286
+ headers: {
25287
+ [name: string]: unknown;
25288
+ };
25289
+ content: {
25290
+ "application/json": components["schemas"]["ErrorResponse"];
25291
+ };
25292
+ };
25293
+ };
25294
+ };
24864
25295
  razorpayPaymentsWebhook: {
24865
25296
  parameters: {
24866
25297
  query?: never;