@ellipsis-dev/sdk 0.10.0 → 0.11.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.
@@ -1083,6 +1083,16 @@
1083
1083
  "file": {
1084
1084
  "title": "File",
1085
1085
  "type": "string"
1086
+ },
1087
+ "repository": {
1088
+ "anyOf": [
1089
+ {
1090
+ "$ref": "#/components/schemas/AgentConfigRepository"
1091
+ },
1092
+ {
1093
+ "type": "null"
1094
+ }
1095
+ ]
1086
1096
  }
1087
1097
  },
1088
1098
  "required": [
@@ -1974,6 +1984,10 @@
1974
1984
  "description": "The last commit the config was synced from.",
1975
1985
  "title": "Last Synced Commit Sha"
1976
1986
  },
1987
+ "managed_by": {
1988
+ "$ref": "#/components/schemas/ConfigManagedBy",
1989
+ "description": "Which writer owns this agent. \"github\" agents are defined by a file in a repository and are changed by editing that file; \"api\" agents have no file and are changed through this API."
1990
+ },
1977
1991
  "name": {
1978
1992
  "anyOf": [
1979
1993
  {
@@ -2015,11 +2029,21 @@
2015
2029
  "sha",
2016
2030
  "created_at",
2017
2031
  "updated_at",
2032
+ "managed_by",
2018
2033
  "agent_config"
2019
2034
  ],
2020
2035
  "title": "Config",
2021
2036
  "type": "object"
2022
2037
  },
2038
+ "ConfigManagedBy": {
2039
+ "description": "Which writer owns an agent: the repository file it is defined in, or\nthis API. Every agent has exactly one owner, fixed when it is created and\nchanged only by linking or unlinking it.",
2040
+ "enum": [
2041
+ "github",
2042
+ "api"
2043
+ ],
2044
+ "title": "ConfigManagedBy",
2045
+ "type": "string"
2046
+ },
2023
2047
  "ContributorUsage": {
2024
2048
  "description": "An author who merged a pull request in the window. The pull-request and\nline counts cover their merged pull requests; `reviews` counts reviews this\nperson also submitted.",
2025
2049
  "properties": {
@@ -2079,7 +2103,7 @@
2079
2103
  "type": "object"
2080
2104
  },
2081
2105
  "CreateAgentConfigRequest": {
2082
- "description": "Parameters for creating an agent config via a pull request. Exactly\none of config or template_id must be set.",
2106
+ "description": "Parameters for creating an agent config. Exactly one of config or\ntemplate_id must be set.",
2083
2107
  "properties": {
2084
2108
  "config": {
2085
2109
  "anyOf": [
@@ -2101,13 +2125,20 @@
2101
2125
  "type": "null"
2102
2126
  }
2103
2127
  ],
2104
- "description": "File path within the repo. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).",
2128
+ "description": "File path within the repo, when a repository is named. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).",
2105
2129
  "title": "Path"
2106
2130
  },
2107
2131
  "repository": {
2108
- "description": "Target repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. \"my-service\"), not \"owner/my-service\".",
2109
- "title": "Repository",
2110
- "type": "string"
2132
+ "anyOf": [
2133
+ {
2134
+ "type": "string"
2135
+ },
2136
+ {
2137
+ "type": "null"
2138
+ }
2139
+ ],
2140
+ "description": "Define the agent as a file in this repository: Ellipsis opens a pull request adding it, and the agent goes live when that merges. Repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. \"my-service\"), not \"owner/my-service\". Omit to create the agent through the API alone, with no file and live immediately.",
2141
+ "title": "Repository"
2111
2142
  },
2112
2143
  "template_id": {
2113
2144
  "anyOf": [
@@ -2122,34 +2153,43 @@
2122
2153
  "title": "Template Id"
2123
2154
  }
2124
2155
  },
2125
- "required": [
2126
- "repository"
2127
- ],
2128
2156
  "title": "CreateAgentConfigRequest",
2129
2157
  "type": "object"
2130
2158
  },
2131
2159
  "CreateAgentConfigResponse": {
2132
- "description": "The created agent config and the pull request that adds its file.",
2160
+ "description": "The created agent config, plus the pull request that adds its file when\none was opened.",
2133
2161
  "properties": {
2134
2162
  "config": {
2135
2163
  "$ref": "#/components/schemas/Config",
2136
2164
  "description": "The created agent config."
2137
2165
  },
2138
2166
  "path": {
2139
- "description": "The file path the config was written to.",
2140
- "title": "Path",
2141
- "type": "string"
2167
+ "anyOf": [
2168
+ {
2169
+ "type": "string"
2170
+ },
2171
+ {
2172
+ "type": "null"
2173
+ }
2174
+ ],
2175
+ "description": "The file path the config was written to, or null when the agent has no file.",
2176
+ "title": "Path"
2142
2177
  },
2143
2178
  "pull_request_url": {
2144
- "description": "The pull request that adds the config file. The agent becomes live once it merges and syncs.",
2145
- "title": "Pull Request Url",
2146
- "type": "string"
2179
+ "anyOf": [
2180
+ {
2181
+ "type": "string"
2182
+ },
2183
+ {
2184
+ "type": "null"
2185
+ }
2186
+ ],
2187
+ "description": "The pull request that adds the config file. The agent becomes live once it merges and syncs. Null when no repository was named: the agent is already live.",
2188
+ "title": "Pull Request Url"
2147
2189
  }
2148
2190
  },
2149
2191
  "required": [
2150
- "config",
2151
- "path",
2152
- "pull_request_url"
2192
+ "config"
2153
2193
  ],
2154
2194
  "title": "CreateAgentConfigResponse",
2155
2195
  "type": "object"
@@ -3846,6 +3886,59 @@
3846
3886
  "title": "LinearTeamsListResponse",
3847
3887
  "type": "object"
3848
3888
  },
3889
+ "LinkAgentConfigRequest": {
3890
+ "description": "Where to put the config file of an agent being moved into a repository.",
3891
+ "properties": {
3892
+ "path": {
3893
+ "anyOf": [
3894
+ {
3895
+ "type": "string"
3896
+ },
3897
+ {
3898
+ "type": "null"
3899
+ }
3900
+ ],
3901
+ "description": "File path within the repo. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).",
3902
+ "title": "Path"
3903
+ },
3904
+ "repository": {
3905
+ "description": "Repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. \"my-service\"), not \"owner/my-service\".",
3906
+ "title": "Repository",
3907
+ "type": "string"
3908
+ }
3909
+ },
3910
+ "required": [
3911
+ "repository"
3912
+ ],
3913
+ "title": "LinkAgentConfigRequest",
3914
+ "type": "object"
3915
+ },
3916
+ "LinkAgentConfigResponse": {
3917
+ "description": "The agent and the pull request that would put it in a repository.",
3918
+ "properties": {
3919
+ "config": {
3920
+ "$ref": "#/components/schemas/Config",
3921
+ "description": "The agent, still managed through the API until the pull request merges."
3922
+ },
3923
+ "path": {
3924
+ "description": "The file path the config will be written to.",
3925
+ "title": "Path",
3926
+ "type": "string"
3927
+ },
3928
+ "pull_request_url": {
3929
+ "description": "The pull request that adds the config file. The agent becomes managed by that file once it merges.",
3930
+ "title": "Pull Request Url",
3931
+ "type": "string"
3932
+ }
3933
+ },
3934
+ "required": [
3935
+ "config",
3936
+ "path",
3937
+ "pull_request_url"
3938
+ ],
3939
+ "title": "LinkAgentConfigResponse",
3940
+ "type": "object"
3941
+ },
3849
3942
  "LinkedGithubIdentity": {
3850
3943
  "description": "The GitHub identity linked to a Slack member.",
3851
3944
  "properties": {
@@ -8675,6 +8768,20 @@
8675
8768
  "title": "TranscriptIngestResult",
8676
8769
  "type": "object"
8677
8770
  },
8771
+ "UpdateAgentConfigRequest": {
8772
+ "description": "A replacement definition for an agent managed through the API.",
8773
+ "properties": {
8774
+ "config": {
8775
+ "$ref": "#/components/schemas/AgentConfig",
8776
+ "description": "The agent's new definition. Replaces the previous one wholesale \u2014 this is not a partial update."
8777
+ }
8778
+ },
8779
+ "required": [
8780
+ "config"
8781
+ ],
8782
+ "title": "UpdateAgentConfigRequest",
8783
+ "type": "object"
8784
+ },
8678
8785
  "UsageDailyPoint": {
8679
8786
  "description": "One day's usage: tokens split by type, and cost split into the four\nbilled categories. `tokens` is the sum of the four token types.",
8680
8787
  "properties": {
@@ -8996,7 +9103,7 @@
8996
9103
  "x-ellipsis-sdk-method": "agents.configs.list"
8997
9104
  },
8998
9105
  "post": {
8999
- "description": "Create an agent config via pull request.\n\nThe PR adds the config file to agents/ on the target\nrepository; the agent goes live when it merges.\n\nAccepts an inline config or a gallery template slug. 409 when\nanother live agent already holds the name.",
9106
+ "description": "Create an agent config.\n\nName a repository and Ellipsis opens a pull request adding the\nconfig file to agents/ there; the agent goes live when it\nmerges. Omit it and the agent is created here, with no file,\nlive immediately \u2014 and every file reference in it must name the\nrepository it lives in.\n\nAccepts an inline config or a gallery template slug. 409 when\nanother live agent already holds the name.",
9000
9107
  "operationId": "create_agent_config",
9001
9108
  "parameters": [
9002
9109
  {
@@ -9095,7 +9202,7 @@
9095
9202
  }
9096
9203
  }
9097
9204
  },
9098
- "description": "The agent's name contains no usable characters."
9205
+ "description": "The agent's name contains no usable characters, or a file reference names no repository."
9099
9206
  }
9100
9207
  },
9101
9208
  "security": [
@@ -9111,6 +9218,102 @@
9111
9218
  }
9112
9219
  },
9113
9220
  "/agents/configs/{config_id}": {
9221
+ "delete": {
9222
+ "description": "Delete an agent, by id or by the agent's name.\n\nThe agent stops running and its name is freed immediately; its\npast sessions remain readable. Only for agents managed through\nthis API \u2014 delete the file to remove one defined by a\nrepository.",
9223
+ "operationId": "delete_agent_config",
9224
+ "parameters": [
9225
+ {
9226
+ "in": "path",
9227
+ "name": "config_id",
9228
+ "required": true,
9229
+ "schema": {
9230
+ "title": "Config Id",
9231
+ "type": "string"
9232
+ }
9233
+ },
9234
+ {
9235
+ "in": "header",
9236
+ "name": "user-agent",
9237
+ "required": false,
9238
+ "schema": {
9239
+ "anyOf": [
9240
+ {
9241
+ "type": "string"
9242
+ },
9243
+ {
9244
+ "type": "null"
9245
+ }
9246
+ ],
9247
+ "title": "User-Agent"
9248
+ }
9249
+ }
9250
+ ],
9251
+ "responses": {
9252
+ "204": {
9253
+ "description": "Successful Response"
9254
+ },
9255
+ "401": {
9256
+ "content": {
9257
+ "application/json": {
9258
+ "schema": {
9259
+ "$ref": "#/components/schemas/ErrorResponse"
9260
+ }
9261
+ }
9262
+ },
9263
+ "description": "The bearer token is missing, invalid, or revoked."
9264
+ },
9265
+ "403": {
9266
+ "content": {
9267
+ "application/json": {
9268
+ "schema": {
9269
+ "$ref": "#/components/schemas/ErrorResponse"
9270
+ }
9271
+ }
9272
+ },
9273
+ "description": "The credential may not perform this action, or the account is blocked."
9274
+ },
9275
+ "404": {
9276
+ "content": {
9277
+ "application/json": {
9278
+ "schema": {
9279
+ "$ref": "#/components/schemas/ErrorResponse"
9280
+ }
9281
+ }
9282
+ },
9283
+ "description": "No such config in your account."
9284
+ },
9285
+ "409": {
9286
+ "content": {
9287
+ "application/json": {
9288
+ "schema": {
9289
+ "$ref": "#/components/schemas/ErrorResponse"
9290
+ }
9291
+ }
9292
+ },
9293
+ "description": "The agent is defined by a file in a repository; delete that file instead."
9294
+ },
9295
+ "422": {
9296
+ "content": {
9297
+ "application/json": {
9298
+ "schema": {
9299
+ "$ref": "#/components/schemas/HTTPValidationError"
9300
+ }
9301
+ }
9302
+ },
9303
+ "description": "Validation Error"
9304
+ }
9305
+ },
9306
+ "security": [
9307
+ {
9308
+ "HTTPBearer": []
9309
+ }
9310
+ ],
9311
+ "summary": "Delete Agent Config",
9312
+ "tags": [
9313
+ "v1"
9314
+ ],
9315
+ "x-ellipsis-sdk-method": "agents.configs.delete"
9316
+ },
9114
9317
  "get": {
9115
9318
  "description": "Return one saved agent config, by id or by the agent's name.",
9116
9319
  "operationId": "get_agent_config",
@@ -9203,6 +9406,359 @@
9203
9406
  "v1"
9204
9407
  ],
9205
9408
  "x-ellipsis-sdk-method": "agents.configs.get"
9409
+ },
9410
+ "put": {
9411
+ "description": "Replace an agent's definition, by id or by the agent's name.\n\nThe whole definition is replaced, and the change is live at\nonce. Only for agents managed through this API: one defined by a\nrepository file is a 409, since the next push to that file would\nrevert the change \u2014 unlink it first to take ownership.",
9412
+ "operationId": "update_agent_config",
9413
+ "parameters": [
9414
+ {
9415
+ "in": "path",
9416
+ "name": "config_id",
9417
+ "required": true,
9418
+ "schema": {
9419
+ "title": "Config Id",
9420
+ "type": "string"
9421
+ }
9422
+ },
9423
+ {
9424
+ "in": "header",
9425
+ "name": "user-agent",
9426
+ "required": false,
9427
+ "schema": {
9428
+ "anyOf": [
9429
+ {
9430
+ "type": "string"
9431
+ },
9432
+ {
9433
+ "type": "null"
9434
+ }
9435
+ ],
9436
+ "title": "User-Agent"
9437
+ }
9438
+ }
9439
+ ],
9440
+ "requestBody": {
9441
+ "content": {
9442
+ "application/json": {
9443
+ "schema": {
9444
+ "$ref": "#/components/schemas/UpdateAgentConfigRequest"
9445
+ }
9446
+ }
9447
+ },
9448
+ "required": true
9449
+ },
9450
+ "responses": {
9451
+ "200": {
9452
+ "content": {
9453
+ "application/json": {
9454
+ "schema": {
9455
+ "$ref": "#/components/schemas/AgentConfigResponse"
9456
+ }
9457
+ }
9458
+ },
9459
+ "description": "Successful Response"
9460
+ },
9461
+ "400": {
9462
+ "content": {
9463
+ "application/json": {
9464
+ "schema": {
9465
+ "$ref": "#/components/schemas/ErrorResponse"
9466
+ }
9467
+ }
9468
+ },
9469
+ "description": "The config is invalid (for example an unschedulable cron expression)."
9470
+ },
9471
+ "401": {
9472
+ "content": {
9473
+ "application/json": {
9474
+ "schema": {
9475
+ "$ref": "#/components/schemas/ErrorResponse"
9476
+ }
9477
+ }
9478
+ },
9479
+ "description": "The bearer token is missing, invalid, or revoked."
9480
+ },
9481
+ "403": {
9482
+ "content": {
9483
+ "application/json": {
9484
+ "schema": {
9485
+ "$ref": "#/components/schemas/ErrorResponse"
9486
+ }
9487
+ }
9488
+ },
9489
+ "description": "The credential may not perform this action, or the account is blocked."
9490
+ },
9491
+ "404": {
9492
+ "content": {
9493
+ "application/json": {
9494
+ "schema": {
9495
+ "$ref": "#/components/schemas/ErrorResponse"
9496
+ }
9497
+ }
9498
+ },
9499
+ "description": "No such config in your account."
9500
+ },
9501
+ "409": {
9502
+ "content": {
9503
+ "application/json": {
9504
+ "schema": {
9505
+ "$ref": "#/components/schemas/ErrorResponse"
9506
+ }
9507
+ }
9508
+ },
9509
+ "description": "The agent is defined by a file in a repository, or another live agent already holds the new name."
9510
+ },
9511
+ "422": {
9512
+ "content": {
9513
+ "application/json": {
9514
+ "schema": {
9515
+ "$ref": "#/components/schemas/ErrorResponse"
9516
+ }
9517
+ }
9518
+ },
9519
+ "description": "The agent's name is missing or malformed, or a file reference names no repository."
9520
+ }
9521
+ },
9522
+ "security": [
9523
+ {
9524
+ "HTTPBearer": []
9525
+ }
9526
+ ],
9527
+ "summary": "Update Agent Config",
9528
+ "tags": [
9529
+ "v1"
9530
+ ],
9531
+ "x-ellipsis-sdk-method": "agents.configs.update"
9532
+ }
9533
+ },
9534
+ "/agents/configs/{config_id}/link": {
9535
+ "post": {
9536
+ "description": "Move an agent into a repository, by id or by the agent's name.\n\nOpens a pull request adding the agent's config file. The agent\nkeeps running unchanged meanwhile; merging hands it over to the\nfile, after which the file is what changes it. Nothing happens\nif the pull request is never merged.",
9537
+ "operationId": "link_agent_config",
9538
+ "parameters": [
9539
+ {
9540
+ "in": "path",
9541
+ "name": "config_id",
9542
+ "required": true,
9543
+ "schema": {
9544
+ "title": "Config Id",
9545
+ "type": "string"
9546
+ }
9547
+ },
9548
+ {
9549
+ "in": "header",
9550
+ "name": "user-agent",
9551
+ "required": false,
9552
+ "schema": {
9553
+ "anyOf": [
9554
+ {
9555
+ "type": "string"
9556
+ },
9557
+ {
9558
+ "type": "null"
9559
+ }
9560
+ ],
9561
+ "title": "User-Agent"
9562
+ }
9563
+ }
9564
+ ],
9565
+ "requestBody": {
9566
+ "content": {
9567
+ "application/json": {
9568
+ "schema": {
9569
+ "$ref": "#/components/schemas/LinkAgentConfigRequest"
9570
+ }
9571
+ }
9572
+ },
9573
+ "required": true
9574
+ },
9575
+ "responses": {
9576
+ "200": {
9577
+ "content": {
9578
+ "application/json": {
9579
+ "schema": {
9580
+ "$ref": "#/components/schemas/LinkAgentConfigResponse"
9581
+ }
9582
+ }
9583
+ },
9584
+ "description": "Successful Response"
9585
+ },
9586
+ "400": {
9587
+ "content": {
9588
+ "application/json": {
9589
+ "schema": {
9590
+ "$ref": "#/components/schemas/ErrorResponse"
9591
+ }
9592
+ }
9593
+ },
9594
+ "description": "The path is not a synced config location, or the repository has no commits."
9595
+ },
9596
+ "401": {
9597
+ "content": {
9598
+ "application/json": {
9599
+ "schema": {
9600
+ "$ref": "#/components/schemas/ErrorResponse"
9601
+ }
9602
+ }
9603
+ },
9604
+ "description": "The bearer token is missing, invalid, or revoked."
9605
+ },
9606
+ "403": {
9607
+ "content": {
9608
+ "application/json": {
9609
+ "schema": {
9610
+ "$ref": "#/components/schemas/ErrorResponse"
9611
+ }
9612
+ }
9613
+ },
9614
+ "description": "The credential may not perform this action, or the account is blocked."
9615
+ },
9616
+ "404": {
9617
+ "content": {
9618
+ "application/json": {
9619
+ "schema": {
9620
+ "$ref": "#/components/schemas/ErrorResponse"
9621
+ }
9622
+ }
9623
+ },
9624
+ "description": "The config or repository was not found in your account."
9625
+ },
9626
+ "409": {
9627
+ "content": {
9628
+ "application/json": {
9629
+ "schema": {
9630
+ "$ref": "#/components/schemas/ErrorResponse"
9631
+ }
9632
+ }
9633
+ },
9634
+ "description": "The agent is already defined by a file, a link is already open for it, a file already exists at that path, or another agent syncs from it."
9635
+ },
9636
+ "422": {
9637
+ "content": {
9638
+ "application/json": {
9639
+ "schema": {
9640
+ "$ref": "#/components/schemas/ErrorResponse"
9641
+ }
9642
+ }
9643
+ },
9644
+ "description": "GitHub rejected the pull request."
9645
+ }
9646
+ },
9647
+ "security": [
9648
+ {
9649
+ "HTTPBearer": []
9650
+ }
9651
+ ],
9652
+ "summary": "Link Agent Config",
9653
+ "tags": [
9654
+ "v1"
9655
+ ],
9656
+ "x-ellipsis-sdk-method": "agents.configs.link"
9657
+ }
9658
+ },
9659
+ "/agents/configs/{config_id}/unlink": {
9660
+ "post": {
9661
+ "description": "Take over an agent from its file, by id or by the agent's name.\n\nThe file stops governing the agent immediately and further\nchanges go through this API. The file is left in place, inert \u2014\ndelete it whenever you like.",
9662
+ "operationId": "unlink_agent_config",
9663
+ "parameters": [
9664
+ {
9665
+ "in": "path",
9666
+ "name": "config_id",
9667
+ "required": true,
9668
+ "schema": {
9669
+ "title": "Config Id",
9670
+ "type": "string"
9671
+ }
9672
+ },
9673
+ {
9674
+ "in": "header",
9675
+ "name": "user-agent",
9676
+ "required": false,
9677
+ "schema": {
9678
+ "anyOf": [
9679
+ {
9680
+ "type": "string"
9681
+ },
9682
+ {
9683
+ "type": "null"
9684
+ }
9685
+ ],
9686
+ "title": "User-Agent"
9687
+ }
9688
+ }
9689
+ ],
9690
+ "responses": {
9691
+ "200": {
9692
+ "content": {
9693
+ "application/json": {
9694
+ "schema": {
9695
+ "$ref": "#/components/schemas/AgentConfigResponse"
9696
+ }
9697
+ }
9698
+ },
9699
+ "description": "Successful Response"
9700
+ },
9701
+ "401": {
9702
+ "content": {
9703
+ "application/json": {
9704
+ "schema": {
9705
+ "$ref": "#/components/schemas/ErrorResponse"
9706
+ }
9707
+ }
9708
+ },
9709
+ "description": "The bearer token is missing, invalid, or revoked."
9710
+ },
9711
+ "403": {
9712
+ "content": {
9713
+ "application/json": {
9714
+ "schema": {
9715
+ "$ref": "#/components/schemas/ErrorResponse"
9716
+ }
9717
+ }
9718
+ },
9719
+ "description": "The credential may not perform this action, or the account is blocked."
9720
+ },
9721
+ "404": {
9722
+ "content": {
9723
+ "application/json": {
9724
+ "schema": {
9725
+ "$ref": "#/components/schemas/ErrorResponse"
9726
+ }
9727
+ }
9728
+ },
9729
+ "description": "No such config in your account."
9730
+ },
9731
+ "409": {
9732
+ "content": {
9733
+ "application/json": {
9734
+ "schema": {
9735
+ "$ref": "#/components/schemas/ErrorResponse"
9736
+ }
9737
+ }
9738
+ },
9739
+ "description": "The agent is already managed through the API."
9740
+ },
9741
+ "422": {
9742
+ "content": {
9743
+ "application/json": {
9744
+ "schema": {
9745
+ "$ref": "#/components/schemas/ErrorResponse"
9746
+ }
9747
+ }
9748
+ },
9749
+ "description": "The config has a file reference that names no repository, so it cannot resolve without its source repository."
9750
+ }
9751
+ },
9752
+ "security": [
9753
+ {
9754
+ "HTTPBearer": []
9755
+ }
9756
+ ],
9757
+ "summary": "Unlink Agent Config",
9758
+ "tags": [
9759
+ "v1"
9760
+ ],
9761
+ "x-ellipsis-sdk-method": "agents.configs.unlink"
9206
9762
  }
9207
9763
  },
9208
9764
  "/agents/defaults": {