current-cli 0.1.28__tar.gz → 0.1.30__tar.gz

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.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: current-cli
3
- Version: 0.1.28
3
+ Version: 0.1.30
4
4
  Summary: Command line interface for the Current API, generated from its OpenAPI schema at runtime
5
5
  Author-email: Orin <your-email@example.com>
6
6
  License-Expression: MIT
@@ -63,10 +63,170 @@ paths:
63
63
  schema:
64
64
  $ref: '#/components/schemas/Me'
65
65
  description: ''
66
+ /api/accounts/auth/mfa/admin-reset/:
67
+ post:
68
+ operationId: accounts_auth_mfa_admin_reset_create
69
+ description: |-
70
+ Superadmin-only: clear a user's TOTP enrollment so they can enroll a
71
+ new device, for when they've lost their authenticator app. There are no
72
+ recovery codes, so this is the only way back in for such a user.
73
+ tags:
74
+ - accounts
75
+ requestBody:
76
+ content:
77
+ application/json:
78
+ schema:
79
+ $ref: '#/components/schemas/MFAAdminResetRequestRequest'
80
+ application/x-www-form-urlencoded:
81
+ schema:
82
+ $ref: '#/components/schemas/MFAAdminResetRequestRequest'
83
+ multipart/form-data:
84
+ schema:
85
+ $ref: '#/components/schemas/MFAAdminResetRequestRequest'
86
+ required: true
87
+ security:
88
+ - MessagingJobTokenAuth: []
89
+ - tokenAuth: []
90
+ responses:
91
+ '200':
92
+ content:
93
+ application/json:
94
+ schema:
95
+ $ref: '#/components/schemas/DetailResponse'
96
+ description: ''
97
+ /api/accounts/auth/mfa/confirm/:
98
+ post:
99
+ operationId: accounts_auth_mfa_confirm_create
100
+ description: |-
101
+ Confirm enrollment with a code from the authenticator app. Mid-login,
102
+ this also finishes sign-in (a confirmed device is proof of the second
103
+ factor); from Account Settings, it just turns MFA on.
104
+ tags:
105
+ - accounts
106
+ requestBody:
107
+ content:
108
+ application/json:
109
+ schema:
110
+ $ref: '#/components/schemas/MFAConfirmRequestRequest'
111
+ application/x-www-form-urlencoded:
112
+ schema:
113
+ $ref: '#/components/schemas/MFAConfirmRequestRequest'
114
+ multipart/form-data:
115
+ schema:
116
+ $ref: '#/components/schemas/MFAConfirmRequestRequest'
117
+ required: true
118
+ security:
119
+ - MessagingJobTokenAuth: []
120
+ - tokenAuth: []
121
+ - {}
122
+ responses:
123
+ '200':
124
+ content:
125
+ application/json:
126
+ schema:
127
+ $ref: '#/components/schemas/VerifyMagicLinkResponse'
128
+ description: ''
129
+ /api/accounts/auth/mfa/disable/:
130
+ post:
131
+ operationId: accounts_auth_mfa_disable_create
132
+ description: |-
133
+ Turn off TOTP for the current user. Refused when MFA is still
134
+ required for this account (platform superadmin, a workspace admin
135
+ anywhere, or a workspace that requires it of members) — the setting
136
+ would just be silently re-enforced at the next sign-in otherwise.
137
+ tags:
138
+ - accounts
139
+ requestBody:
140
+ content:
141
+ application/json:
142
+ schema:
143
+ $ref: '#/components/schemas/MFADisableRequestRequest'
144
+ application/x-www-form-urlencoded:
145
+ schema:
146
+ $ref: '#/components/schemas/MFADisableRequestRequest'
147
+ multipart/form-data:
148
+ schema:
149
+ $ref: '#/components/schemas/MFADisableRequestRequest'
150
+ required: true
151
+ security:
152
+ - MessagingJobTokenAuth: []
153
+ - tokenAuth: []
154
+ responses:
155
+ '200':
156
+ content:
157
+ application/json:
158
+ schema:
159
+ $ref: '#/components/schemas/DetailResponse'
160
+ description: ''
161
+ /api/accounts/auth/mfa/setup/:
162
+ post:
163
+ operationId: accounts_auth_mfa_setup_create
164
+ description: |-
165
+ Start (or restart) TOTP enrollment: mints a new secret and returns
166
+ the otpauth:// URI for the authenticator app's QR scanner. Callable
167
+ mid-login (with the pending ticket) or from Account Settings (while
168
+ authenticated) — the secret isn't active until ``confirm`` succeeds.
169
+ tags:
170
+ - accounts
171
+ requestBody:
172
+ content:
173
+ application/json:
174
+ schema:
175
+ $ref: '#/components/schemas/MFATicketRequestRequest'
176
+ application/x-www-form-urlencoded:
177
+ schema:
178
+ $ref: '#/components/schemas/MFATicketRequestRequest'
179
+ multipart/form-data:
180
+ schema:
181
+ $ref: '#/components/schemas/MFATicketRequestRequest'
182
+ security:
183
+ - MessagingJobTokenAuth: []
184
+ - tokenAuth: []
185
+ - {}
186
+ responses:
187
+ '200':
188
+ content:
189
+ application/json:
190
+ schema:
191
+ $ref: '#/components/schemas/MFASetupResponse'
192
+ description: ''
193
+ /api/accounts/auth/mfa/verify/:
194
+ post:
195
+ operationId: accounts_auth_mfa_verify_create
196
+ description: |-
197
+ Complete sign-in with a code from an already-enrolled authenticator
198
+ app, exchanging the pending-login ticket for a real auth token.
199
+ tags:
200
+ - accounts
201
+ requestBody:
202
+ content:
203
+ application/json:
204
+ schema:
205
+ $ref: '#/components/schemas/MFAVerifyRequestRequest'
206
+ application/x-www-form-urlencoded:
207
+ schema:
208
+ $ref: '#/components/schemas/MFAVerifyRequestRequest'
209
+ multipart/form-data:
210
+ schema:
211
+ $ref: '#/components/schemas/MFAVerifyRequestRequest'
212
+ required: true
213
+ security:
214
+ - {}
215
+ responses:
216
+ '200':
217
+ content:
218
+ application/json:
219
+ schema:
220
+ $ref: '#/components/schemas/VerifyMagicLinkResponse'
221
+ description: ''
66
222
  /api/accounts/auth/verify/:
67
223
  post:
68
224
  operationId: accounts_auth_verify_create
69
- description: Exchange a magic-link token for an auth token.
225
+ description: |-
226
+ Exchange a magic-link token for an auth token — or, when the account
227
+ needs a second factor, a short-lived ticket for the MFA challenge/setup
228
+ step instead. A real auth token is never issued before that second
229
+ factor is satisfied.
70
230
  tags:
71
231
  - accounts
72
232
  requestBody:
@@ -305,11 +465,8 @@ paths:
305
465
  delete:
306
466
  operationId: contacts_contacts_addresses_destroy
307
467
  description: |-
308
- Remove an address. Editing a member contact is admin-only (same
309
- as ``add_address``); removing a *verified* address is admin-only
310
- regardless of contact, since verification is what makes an address
311
- approval-capable — a member must not be able to unilaterally strip
312
- that off their own directory entry.
468
+ Remove an address. Admin-only regardless of contact type or
469
+ verification state a member can neither see nor mutate addresses.
313
470
  parameters:
314
471
  - in: path
315
472
  name: address_id
@@ -477,10 +634,10 @@ paths:
477
634
  schema:
478
635
  $ref: '#/components/schemas/FileUrlResponse'
479
636
  description: ''
480
- /api/inbox/inbox/:
637
+ /api/inboxes/inboxes/:
481
638
  get:
482
- operationId: inbox_retrieve
483
- description: Fetch (and lazily provision) the workspace's forwarding inbox.
639
+ operationId: inbox_list
640
+ description: List (and lazily provision) the workspace's inboxes, one per role.
484
641
  parameters:
485
642
  - in: query
486
643
  name: workspace
@@ -489,7 +646,36 @@ paths:
489
646
  description: Workspace UUID
490
647
  required: true
491
648
  tags:
492
- - inbox
649
+ - inboxes
650
+ security:
651
+ - MessagingJobTokenAuth: []
652
+ - tokenAuth: []
653
+ responses:
654
+ '200':
655
+ content:
656
+ application/json:
657
+ schema:
658
+ type: array
659
+ items:
660
+ $ref: '#/components/schemas/WorkspaceInbox'
661
+ description: ''
662
+ /api/inboxes/inboxes/{inbox_id}/allow-lists/:
663
+ get:
664
+ operationId: inbox_allow_lists_retrieve
665
+ description: |-
666
+ Inbox-scoped AgentMail receive and send allow lists.
667
+
668
+ Every workspace member can inspect the effective entries. Only workspace
669
+ admins can add or remove entries, matching other integration settings.
670
+ parameters:
671
+ - in: path
672
+ name: inbox_id
673
+ schema:
674
+ type: string
675
+ format: uuid
676
+ required: true
677
+ tags:
678
+ - inboxes
493
679
  security:
494
680
  - MessagingJobTokenAuth: []
495
681
  - tokenAuth: []
@@ -498,8 +684,83 @@ paths:
498
684
  content:
499
685
  application/json:
500
686
  schema:
501
- $ref: '#/components/schemas/WorkspaceInbox'
687
+ $ref: '#/components/schemas/EmailAllowLists'
688
+ description: ''
689
+ post:
690
+ operationId: inbox_allow_lists_create
691
+ description: |-
692
+ Inbox-scoped AgentMail receive and send allow lists.
693
+
694
+ Every workspace member can inspect the effective entries. Only workspace
695
+ admins can add or remove entries, matching other integration settings.
696
+ parameters:
697
+ - in: path
698
+ name: inbox_id
699
+ schema:
700
+ type: string
701
+ format: uuid
702
+ required: true
703
+ tags:
704
+ - inboxes
705
+ requestBody:
706
+ content:
707
+ application/json:
708
+ schema:
709
+ $ref: '#/components/schemas/EmailAllowListMutationRequest'
710
+ application/x-www-form-urlencoded:
711
+ schema:
712
+ $ref: '#/components/schemas/EmailAllowListMutationRequest'
713
+ multipart/form-data:
714
+ schema:
715
+ $ref: '#/components/schemas/EmailAllowListMutationRequest'
716
+ required: true
717
+ security:
718
+ - MessagingJobTokenAuth: []
719
+ - tokenAuth: []
720
+ responses:
721
+ '201':
722
+ content:
723
+ application/json:
724
+ schema:
725
+ $ref: '#/components/schemas/EmailAllowListEntry'
502
726
  description: ''
727
+ delete:
728
+ operationId: inbox_allow_lists_destroy
729
+ description: |-
730
+ Inbox-scoped AgentMail receive and send allow lists.
731
+
732
+ Every workspace member can inspect the effective entries. Only workspace
733
+ admins can add or remove entries, matching other integration settings.
734
+ parameters:
735
+ - in: query
736
+ name: direction
737
+ schema:
738
+ type: string
739
+ enum:
740
+ - receive
741
+ - send
742
+ description: AgentMail allow-list direction
743
+ required: true
744
+ - in: query
745
+ name: entry
746
+ schema:
747
+ type: string
748
+ description: Email address or domain to remove
749
+ required: true
750
+ - in: path
751
+ name: inbox_id
752
+ schema:
753
+ type: string
754
+ format: uuid
755
+ required: true
756
+ tags:
757
+ - inboxes
758
+ security:
759
+ - MessagingJobTokenAuth: []
760
+ - tokenAuth: []
761
+ responses:
762
+ '204':
763
+ description: No response body
503
764
  /api/integrations/connections/:
504
765
  get:
505
766
  operationId: integrations_connections_list
@@ -786,7 +1047,12 @@ paths:
786
1047
  /api/integrations/messaging/react/:
787
1048
  post:
788
1049
  operationId: integrations_messaging_react
789
- description: Add an emoji reaction to the message a reply_ref points at.
1050
+ description: |-
1051
+ Add an emoji reaction to the message a reply_ref points at.
1052
+
1053
+ Email has no reactions and is refused. An email job is not offered the
1054
+ ``react`` tool at all, so reaching here means a caller sent something it
1055
+ should not have.
790
1056
  tags:
791
1057
  - integrations
792
1058
  requestBody:
@@ -821,7 +1087,8 @@ paths:
821
1087
  the upload's ``initial_comment``). Teams cannot: a bot there has to
822
1088
  offer each file through a FileConsentCard the recipient accepts, and
823
1089
  only in a 1:1 chat, so the text posts first and each file follows as
824
- its own offer.
1090
+ its own offer. Email is the easy one — attachments are what it is for,
1091
+ and they ride along on the reply.
825
1092
  tags:
826
1093
  - integrations
827
1094
  requestBody:
@@ -896,6 +1163,10 @@ paths:
896
1163
  ``append``/``stop`` replace the card in full, rebuilt from the chunks —
897
1164
  the sandbox always sends its complete state, so the relay stays
898
1165
  stateless.
1166
+
1167
+ Email has no live message to evolve and is refused. An email job builds
1168
+ no reporter, so reaching here means a caller sent something it should
1169
+ not have.
899
1170
  tags:
900
1171
  - integrations
901
1172
  requestBody:
@@ -1263,8 +1534,10 @@ paths:
1263
1534
  /api/projects/projects/:
1264
1535
  get:
1265
1536
  operationId: projects_projects_list
1266
- description: Projects across the caller's workspaces. Any member can create
1267
- and edit.
1537
+ description: |-
1538
+ Projects across the caller's workspaces. Any member can create a
1539
+ project (including its initial field values); editing the fields of an
1540
+ existing project is admin-only.
1268
1541
  parameters:
1269
1542
  - in: query
1270
1543
  name: workspace
@@ -1287,8 +1560,10 @@ paths:
1287
1560
  description: ''
1288
1561
  post:
1289
1562
  operationId: projects_projects_create
1290
- description: Projects across the caller's workspaces. Any member can create
1291
- and edit.
1563
+ description: |-
1564
+ Projects across the caller's workspaces. Any member can create a
1565
+ project (including its initial field values); editing the fields of an
1566
+ existing project is admin-only.
1292
1567
  tags:
1293
1568
  - projects
1294
1569
  requestBody:
@@ -1316,8 +1591,10 @@ paths:
1316
1591
  /api/projects/projects/{id}/:
1317
1592
  get:
1318
1593
  operationId: projects_projects_retrieve
1319
- description: Projects across the caller's workspaces. Any member can create
1320
- and edit.
1594
+ description: |-
1595
+ Projects across the caller's workspaces. Any member can create a
1596
+ project (including its initial field values); editing the fields of an
1597
+ existing project is admin-only.
1321
1598
  parameters:
1322
1599
  - in: path
1323
1600
  name: id
@@ -1340,8 +1617,10 @@ paths:
1340
1617
  description: ''
1341
1618
  put:
1342
1619
  operationId: projects_projects_update
1343
- description: Projects across the caller's workspaces. Any member can create
1344
- and edit.
1620
+ description: |-
1621
+ Projects across the caller's workspaces. Any member can create a
1622
+ project (including its initial field values); editing the fields of an
1623
+ existing project is admin-only.
1345
1624
  parameters:
1346
1625
  - in: path
1347
1626
  name: id
@@ -1376,8 +1655,10 @@ paths:
1376
1655
  description: ''
1377
1656
  patch:
1378
1657
  operationId: projects_projects_partial_update
1379
- description: Projects across the caller's workspaces. Any member can create
1380
- and edit.
1658
+ description: |-
1659
+ Projects across the caller's workspaces. Any member can create a
1660
+ project (including its initial field values); editing the fields of an
1661
+ existing project is admin-only.
1381
1662
  parameters:
1382
1663
  - in: path
1383
1664
  name: id
@@ -1411,8 +1692,10 @@ paths:
1411
1692
  description: ''
1412
1693
  delete:
1413
1694
  operationId: projects_projects_destroy
1414
- description: Projects across the caller's workspaces. Any member can create
1415
- and edit.
1695
+ description: |-
1696
+ Projects across the caller's workspaces. Any member can create a
1697
+ project (including its initial field values); editing the fields of an
1698
+ existing project is admin-only.
1416
1699
  parameters:
1417
1700
  - in: path
1418
1701
  name: id
@@ -2311,8 +2594,10 @@ paths:
2311
2594
  /api/workflows/workflows/:
2312
2595
  get:
2313
2596
  operationId: workflows_workflows_list
2314
- description: Workflows across the caller's workspaces. Any member can create
2315
- and edit.
2597
+ description: |-
2598
+ Workflows (actions) across the caller's workspaces. Any member can
2599
+ read; only admins can create, edit (including enable/disable), or
2600
+ delete a binding.
2316
2601
  parameters:
2317
2602
  - in: query
2318
2603
  name: workspace
@@ -2335,8 +2620,10 @@ paths:
2335
2620
  description: ''
2336
2621
  post:
2337
2622
  operationId: workflows_workflows_create
2338
- description: Workflows across the caller's workspaces. Any member can create
2339
- and edit.
2623
+ description: |-
2624
+ Workflows (actions) across the caller's workspaces. Any member can
2625
+ read; only admins can create, edit (including enable/disable), or
2626
+ delete a binding.
2340
2627
  tags:
2341
2628
  - workflows
2342
2629
  requestBody:
@@ -2364,8 +2651,10 @@ paths:
2364
2651
  /api/workflows/workflows/{id}/:
2365
2652
  get:
2366
2653
  operationId: workflows_workflows_retrieve
2367
- description: Workflows across the caller's workspaces. Any member can create
2368
- and edit.
2654
+ description: |-
2655
+ Workflows (actions) across the caller's workspaces. Any member can
2656
+ read; only admins can create, edit (including enable/disable), or
2657
+ delete a binding.
2369
2658
  parameters:
2370
2659
  - in: path
2371
2660
  name: id
@@ -2388,8 +2677,10 @@ paths:
2388
2677
  description: ''
2389
2678
  put:
2390
2679
  operationId: workflows_workflows_update
2391
- description: Workflows across the caller's workspaces. Any member can create
2392
- and edit.
2680
+ description: |-
2681
+ Workflows (actions) across the caller's workspaces. Any member can
2682
+ read; only admins can create, edit (including enable/disable), or
2683
+ delete a binding.
2393
2684
  parameters:
2394
2685
  - in: path
2395
2686
  name: id
@@ -2424,8 +2715,10 @@ paths:
2424
2715
  description: ''
2425
2716
  patch:
2426
2717
  operationId: workflows_workflows_partial_update
2427
- description: Workflows across the caller's workspaces. Any member can create
2428
- and edit.
2718
+ description: |-
2719
+ Workflows (actions) across the caller's workspaces. Any member can
2720
+ read; only admins can create, edit (including enable/disable), or
2721
+ delete a binding.
2429
2722
  parameters:
2430
2723
  - in: path
2431
2724
  name: id
@@ -2459,8 +2752,10 @@ paths:
2459
2752
  description: ''
2460
2753
  delete:
2461
2754
  operationId: workflows_workflows_destroy
2462
- description: Workflows across the caller's workspaces. Any member can create
2463
- and edit.
2755
+ description: |-
2756
+ Workflows (actions) across the caller's workspaces. Any member can
2757
+ read; only admins can create, edit (including enable/disable), or
2758
+ delete a binding.
2464
2759
  parameters:
2465
2760
  - in: path
2466
2761
  name: id
@@ -3103,6 +3398,7 @@ components:
3103
3398
  type: array
3104
3399
  items:
3105
3400
  $ref: '#/components/schemas/ContactAddress'
3401
+ nullable: true
3106
3402
  readOnly: true
3107
3403
  created_at:
3108
3404
  type: string
@@ -3166,18 +3462,6 @@ components:
3166
3462
  required:
3167
3463
  - kind
3168
3464
  - value
3169
- ContactAddressRequest:
3170
- type: object
3171
- properties:
3172
- kind:
3173
- $ref: '#/components/schemas/KindEnum'
3174
- value:
3175
- type: string
3176
- minLength: 1
3177
- maxLength: 255
3178
- required:
3179
- - kind
3180
- - value
3181
3465
  ContactListResponse:
3182
3466
  type: object
3183
3467
  description: |-
@@ -3246,6 +3530,64 @@ components:
3246
3530
  format: uuid
3247
3531
  required:
3248
3532
  - workspace
3533
+ DetailResponse:
3534
+ type: object
3535
+ properties:
3536
+ detail:
3537
+ type: string
3538
+ required:
3539
+ - detail
3540
+ DirectionEnum:
3541
+ enum:
3542
+ - receive
3543
+ - send
3544
+ type: string
3545
+ description: |-
3546
+ * `receive` - receive
3547
+ * `send` - send
3548
+ EmailAllowListEntry:
3549
+ type: object
3550
+ properties:
3551
+ entry:
3552
+ type: string
3553
+ entry_type:
3554
+ $ref: '#/components/schemas/EntryTypeEnum'
3555
+ read_only:
3556
+ type: boolean
3557
+ default: false
3558
+ created_at:
3559
+ type: string
3560
+ format: date-time
3561
+ required:
3562
+ - created_at
3563
+ - entry
3564
+ - entry_type
3565
+ EmailAllowListMutationRequest:
3566
+ type: object
3567
+ properties:
3568
+ direction:
3569
+ $ref: '#/components/schemas/DirectionEnum'
3570
+ entry:
3571
+ type: string
3572
+ minLength: 1
3573
+ maxLength: 254
3574
+ required:
3575
+ - direction
3576
+ - entry
3577
+ EmailAllowLists:
3578
+ type: object
3579
+ properties:
3580
+ receive:
3581
+ type: array
3582
+ items:
3583
+ $ref: '#/components/schemas/EmailAllowListEntry'
3584
+ send:
3585
+ type: array
3586
+ items:
3587
+ $ref: '#/components/schemas/EmailAllowListEntry'
3588
+ required:
3589
+ - receive
3590
+ - send
3249
3591
  EmojiEnum:
3250
3592
  enum:
3251
3593
  - eyes
@@ -3256,6 +3598,14 @@ components:
3256
3598
  * `eyes` - eyes
3257
3599
  * `heart` - heart
3258
3600
  * `thumbsup` - thumbsup
3601
+ EntryTypeEnum:
3602
+ enum:
3603
+ - email
3604
+ - domain
3605
+ type: string
3606
+ description: |-
3607
+ * `email` - email
3608
+ * `domain` - domain
3259
3609
  ErrorDetail:
3260
3610
  type: object
3261
3611
  properties:
@@ -3469,6 +3819,14 @@ components:
3469
3819
  required:
3470
3820
  - path
3471
3821
  - url
3822
+ InboxRoleEnum:
3823
+ enum:
3824
+ - interaction
3825
+ - ingest
3826
+ type: string
3827
+ description: |-
3828
+ * `interaction` - Interaction
3829
+ * `ingest` - Ingest
3472
3830
  IntegrationConnection:
3473
3831
  type: object
3474
3832
  description: |-
@@ -3588,6 +3946,67 @@ components:
3588
3946
  type: string
3589
3947
  required:
3590
3948
  - detail
3949
+ MFAAdminResetRequestRequest:
3950
+ type: object
3951
+ properties:
3952
+ email:
3953
+ type: string
3954
+ format: email
3955
+ minLength: 1
3956
+ required:
3957
+ - email
3958
+ MFAConfirmRequestRequest:
3959
+ type: object
3960
+ properties:
3961
+ ticket:
3962
+ type: string
3963
+ code:
3964
+ type: string
3965
+ minLength: 1
3966
+ maxLength: 8
3967
+ required:
3968
+ - code
3969
+ MFADisableRequestRequest:
3970
+ type: object
3971
+ properties:
3972
+ code:
3973
+ type: string
3974
+ minLength: 1
3975
+ maxLength: 8
3976
+ required:
3977
+ - code
3978
+ MFASetupResponse:
3979
+ type: object
3980
+ properties:
3981
+ secret:
3982
+ type: string
3983
+ otpauth_url:
3984
+ type: string
3985
+ required:
3986
+ - otpauth_url
3987
+ - secret
3988
+ MFATicketRequestRequest:
3989
+ type: object
3990
+ description: |-
3991
+ A setup/confirm call during login carries the pending ticket instead
3992
+ of an auth token, since issuing a real token before the second factor is
3993
+ verified would defeat the point.
3994
+ properties:
3995
+ ticket:
3996
+ type: string
3997
+ MFAVerifyRequestRequest:
3998
+ type: object
3999
+ properties:
4000
+ ticket:
4001
+ type: string
4002
+ minLength: 1
4003
+ code:
4004
+ type: string
4005
+ minLength: 1
4006
+ maxLength: 8
4007
+ required:
4008
+ - code
4009
+ - ticket
3591
4010
  ManifestEntry:
3592
4011
  type: object
3593
4012
  properties:
@@ -3635,6 +4054,12 @@ components:
3635
4054
  is_superadmin:
3636
4055
  type: boolean
3637
4056
  readOnly: true
4057
+ mfa_enabled:
4058
+ type: boolean
4059
+ readOnly: true
4060
+ mfa_required:
4061
+ type: boolean
4062
+ readOnly: true
3638
4063
  required:
3639
4064
  - email
3640
4065
  - first_name
@@ -3642,6 +4067,8 @@ components:
3642
4067
  - is_superadmin
3643
4068
  - last_name
3644
4069
  - memberships
4070
+ - mfa_enabled
4071
+ - mfa_required
3645
4072
  MeMembership:
3646
4073
  type: object
3647
4074
  description: Inline workspace + role for the /auth/me/ payload.
@@ -4053,6 +4480,8 @@ components:
4053
4480
  type: string
4054
4481
  minLength: 1
4055
4482
  maxLength: 64
4483
+ require_mfa_for_members:
4484
+ type: boolean
4056
4485
  Project:
4057
4486
  type: object
4058
4487
  properties:
@@ -4894,14 +5323,25 @@ components:
4894
5323
  - token
4895
5324
  VerifyMagicLinkResponse:
4896
5325
  type: object
5326
+ description: |-
5327
+ Either a completed sign-in (``token`` + ``user``) or an MFA challenge
5328
+ (``mfa_required`` true, with a ``ticket`` to carry into the next call).
4897
5329
  properties:
5330
+ mfa_required:
5331
+ type: boolean
5332
+ mfa_enrolled:
5333
+ type: boolean
5334
+ ticket:
5335
+ type: string
4898
5336
  token:
4899
5337
  type: string
5338
+ nullable: true
4900
5339
  user:
4901
- $ref: '#/components/schemas/User'
5340
+ allOf:
5341
+ - $ref: '#/components/schemas/User'
5342
+ nullable: true
4902
5343
  required:
4903
- - token
4904
- - user
5344
+ - mfa_required
4905
5345
  Workflow:
4906
5346
  type: object
4907
5347
  properties:
@@ -5259,6 +5699,8 @@ components:
5259
5699
  timezone:
5260
5700
  type: string
5261
5701
  maxLength: 64
5702
+ require_mfa_for_members:
5703
+ type: boolean
5262
5704
  required:
5263
5705
  - created_at
5264
5706
  - id
@@ -5277,6 +5719,11 @@ components:
5277
5719
  address:
5278
5720
  type: string
5279
5721
  readOnly: true
5722
+ role:
5723
+ allOf:
5724
+ - $ref: '#/components/schemas/InboxRoleEnum'
5725
+ readOnly: true
5726
+ default: interaction
5280
5727
  created_at:
5281
5728
  type: string
5282
5729
  format: date-time
@@ -5285,6 +5732,7 @@ components:
5285
5732
  - address
5286
5733
  - created_at
5287
5734
  - id
5735
+ - role
5288
5736
  - workspace
5289
5737
  WorkspaceInvite:
5290
5738
  type: object
@@ -5388,6 +5836,8 @@ components:
5388
5836
  type: string
5389
5837
  minLength: 1
5390
5838
  maxLength: 64
5839
+ require_mfa_for_members:
5840
+ type: boolean
5391
5841
  required:
5392
5842
  - name
5393
5843
  securitySchemes:
@@ -52,9 +52,68 @@ Current user with workspace memberships.
52
52
 
53
53
  GET /api/accounts/auth/me/
54
54
 
55
+ ### current accounts auth mfa admin-reset create
56
+
57
+ Superadmin-only: clear a user's TOTP enrollment so they can enroll a
58
+ new device, for when they've lost their authenticator app. There are no
59
+ recovery codes, so this is the only way back in for such a user.
60
+
61
+ POST /api/accounts/auth/mfa/admin-reset/
62
+
63
+ Options:
64
+ - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
65
+
66
+ ### current accounts auth mfa confirm create
67
+
68
+ Confirm enrollment with a code from the authenticator app. Mid-login,
69
+ this also finishes sign-in (a confirmed device is proof of the second
70
+ factor); from Account Settings, it just turns MFA on.
71
+
72
+ POST /api/accounts/auth/mfa/confirm/
73
+
74
+ Options:
75
+ - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
76
+
77
+ ### current accounts auth mfa disable create
78
+
79
+ Turn off TOTP for the current user. Refused when MFA is still
80
+ required for this account (platform superadmin, a workspace admin
81
+ anywhere, or a workspace that requires it of members) — the setting
82
+ would just be silently re-enforced at the next sign-in otherwise.
83
+
84
+ POST /api/accounts/auth/mfa/disable/
85
+
86
+ Options:
87
+ - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
88
+
89
+ ### current accounts auth mfa setup create
90
+
91
+ Start (or restart) TOTP enrollment: mints a new secret and returns
92
+ the otpauth:// URI for the authenticator app's QR scanner. Callable
93
+ mid-login (with the pending ticket) or from Account Settings (while
94
+ authenticated) — the secret isn't active until ``confirm`` succeeds.
95
+
96
+ POST /api/accounts/auth/mfa/setup/
97
+
98
+ Options:
99
+ - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
100
+
101
+ ### current accounts auth mfa verify create
102
+
103
+ Complete sign-in with a code from an already-enrolled authenticator
104
+ app, exchanging the pending-login ticket for a real auth token.
105
+
106
+ POST /api/accounts/auth/mfa/verify/
107
+
108
+ Options:
109
+ - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
110
+
55
111
  ### current accounts auth verify create
56
112
 
57
- Exchange a magic-link token for an auth token.
113
+ Exchange a magic-link token for an auth token — or, when the account
114
+ needs a second factor, a short-lived ticket for the MFA challenge/setup
115
+ step instead. A real auth token is never issued before that second
116
+ factor is satisfied.
58
117
 
59
118
  POST /api/accounts/auth/verify/
60
119
 
@@ -86,11 +145,8 @@ Options:
86
145
 
87
146
  ### current contacts addresses destroy <id> <address_id>
88
147
 
89
- Remove an address. Editing a member contact is admin-only (same
90
- as ``add_address``); removing a *verified* address is admin-only
91
- regardless of contact, since verification is what makes an address
92
- approval-capable — a member must not be able to unilaterally strip
93
- that off their own directory entry.
148
+ Remove an address. Admin-only regardless of contact type or
149
+ verification state a member can neither see nor mutate addresses.
94
150
 
95
151
  DELETE /api/contacts/contacts/{id}/addresses/{address_id}/
96
152
 
@@ -185,11 +241,45 @@ POST /api/files/upload-url/
185
241
  Options:
186
242
  - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
187
243
 
188
- ### current inbox retrieve
244
+ ### current inboxes allow-lists create <inbox_id>
245
+
246
+ Inbox-scoped AgentMail receive and send allow lists.
247
+
248
+ Every workspace member can inspect the effective entries. Only workspace
249
+ admins can add or remove entries, matching other integration settings.
250
+
251
+ POST /api/inboxes/inboxes/{inbox_id}/allow-lists/
252
+
253
+ Options:
254
+ - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
255
+
256
+ ### current inboxes allow-lists destroy <inbox_id>
189
257
 
190
- Fetch (and lazily provision) the workspace's forwarding inbox.
258
+ Inbox-scoped AgentMail receive and send allow lists.
191
259
 
192
- GET /api/inbox/inbox/
260
+ Every workspace member can inspect the effective entries. Only workspace
261
+ admins can add or remove entries, matching other integration settings.
262
+
263
+ DELETE /api/inboxes/inboxes/{inbox_id}/allow-lists/
264
+
265
+ Options:
266
+ - `--direction` - AgentMail allow-list direction
267
+ - `--entry` - Email address or domain to remove
268
+
269
+ ### current inboxes allow-lists retrieve <inbox_id>
270
+
271
+ Inbox-scoped AgentMail receive and send allow lists.
272
+
273
+ Every workspace member can inspect the effective entries. Only workspace
274
+ admins can add or remove entries, matching other integration settings.
275
+
276
+ GET /api/inboxes/inboxes/{inbox_id}/allow-lists/
277
+
278
+ ### current inboxes list
279
+
280
+ List (and lazily provision) the workspace's inboxes, one per role.
281
+
282
+ GET /api/inboxes/inboxes/
193
283
 
194
284
  Options:
195
285
  - `--workspace` - Workspace UUID
@@ -308,6 +398,10 @@ Options:
308
398
 
309
399
  Add an emoji reaction to the message a reply_ref points at.
310
400
 
401
+ Email has no reactions and is refused. An email job is not offered the
402
+ ``react`` tool at all, so reaching here means a caller sent something it
403
+ should not have.
404
+
311
405
  POST /api/integrations/messaging/react/
312
406
 
313
407
  Options:
@@ -322,7 +416,8 @@ Slack shares the files and the text as one message (the text becomes
322
416
  the upload's ``initial_comment``). Teams cannot: a bot there has to
323
417
  offer each file through a FileConsentCard the recipient accepts, and
324
418
  only in a 1:1 chat, so the text posts first and each file follows as
325
- its own offer.
419
+ its own offer. Email is the easy one — attachments are what it is for,
420
+ and they ride along on the reply.
326
421
 
327
422
  POST /api/integrations/messaging/respond/
328
423
 
@@ -360,6 +455,10 @@ toggleable activity section) and returns its activity id as ``ts``;
360
455
  the sandbox always sends its complete state, so the relay stays
361
456
  stateless.
362
457
 
458
+ Email has no live message to evolve and is refused. An email job builds
459
+ no reporter, so reaching here means a caller sent something it should
460
+ not have.
461
+
363
462
  POST /api/integrations/messaging/stream/
364
463
 
365
464
  Options:
@@ -427,7 +526,9 @@ GET /api/observations/observations/{id}/
427
526
 
428
527
  ### current projects create
429
528
 
430
- Projects across the caller's workspaces. Any member can create and edit.
529
+ Projects across the caller's workspaces. Any member can create a
530
+ project (including its initial field values); editing the fields of an
531
+ existing project is admin-only.
431
532
 
432
533
  POST /api/projects/projects/
433
534
 
@@ -436,7 +537,9 @@ Options:
436
537
 
437
538
  ### current projects destroy <id>
438
539
 
439
- Projects across the caller's workspaces. Any member can create and edit.
540
+ Projects across the caller's workspaces. Any member can create a
541
+ project (including its initial field values); editing the fields of an
542
+ existing project is admin-only.
440
543
 
441
544
  DELETE /api/projects/projects/{id}/
442
545
 
@@ -506,7 +609,9 @@ Options:
506
609
 
507
610
  ### current projects list
508
611
 
509
- Projects across the caller's workspaces. Any member can create and edit.
612
+ Projects across the caller's workspaces. Any member can create a
613
+ project (including its initial field values); editing the fields of an
614
+ existing project is admin-only.
510
615
 
511
616
  GET /api/projects/projects/
512
617
 
@@ -515,7 +620,9 @@ Options:
515
620
 
516
621
  ### current projects partial-update <id>
517
622
 
518
- Projects across the caller's workspaces. Any member can create and edit.
623
+ Projects across the caller's workspaces. Any member can create a
624
+ project (including its initial field values); editing the fields of an
625
+ existing project is admin-only.
519
626
 
520
627
  PATCH /api/projects/projects/{id}/
521
628
 
@@ -524,7 +631,9 @@ Options:
524
631
 
525
632
  ### current projects retrieve <id>
526
633
 
527
- Projects across the caller's workspaces. Any member can create and edit.
634
+ Projects across the caller's workspaces. Any member can create a
635
+ project (including its initial field values); editing the fields of an
636
+ existing project is admin-only.
528
637
 
529
638
  GET /api/projects/projects/{id}/
530
639
 
@@ -554,7 +663,9 @@ Options:
554
663
 
555
664
  ### current projects update <id>
556
665
 
557
- Projects across the caller's workspaces. Any member can create and edit.
666
+ Projects across the caller's workspaces. Any member can create a
667
+ project (including its initial field values); editing the fields of an
668
+ existing project is admin-only.
558
669
 
559
670
  PUT /api/projects/projects/{id}/
560
671
 
@@ -661,7 +772,9 @@ Show the current user and workspace memberships.
661
772
 
662
773
  ### current workflows create
663
774
 
664
- Workflows across the caller's workspaces. Any member can create and edit.
775
+ Workflows (actions) across the caller's workspaces. Any member can
776
+ read; only admins can create, edit (including enable/disable), or
777
+ delete a binding.
665
778
 
666
779
  POST /api/workflows/workflows/
667
780
 
@@ -702,13 +815,17 @@ GET /api/workflows/definitions/{id}/
702
815
 
703
816
  ### current workflows destroy <id>
704
817
 
705
- Workflows across the caller's workspaces. Any member can create and edit.
818
+ Workflows (actions) across the caller's workspaces. Any member can
819
+ read; only admins can create, edit (including enable/disable), or
820
+ delete a binding.
706
821
 
707
822
  DELETE /api/workflows/workflows/{id}/
708
823
 
709
824
  ### current workflows list
710
825
 
711
- Workflows across the caller's workspaces. Any member can create and edit.
826
+ Workflows (actions) across the caller's workspaces. Any member can
827
+ read; only admins can create, edit (including enable/disable), or
828
+ delete a binding.
712
829
 
713
830
  GET /api/workflows/workflows/
714
831
 
@@ -717,7 +834,9 @@ Options:
717
834
 
718
835
  ### current workflows partial-update <id>
719
836
 
720
- Workflows across the caller's workspaces. Any member can create and edit.
837
+ Workflows (actions) across the caller's workspaces. Any member can
838
+ read; only admins can create, edit (including enable/disable), or
839
+ delete a binding.
721
840
 
722
841
  PATCH /api/workflows/workflows/{id}/
723
842
 
@@ -726,7 +845,9 @@ Options:
726
845
 
727
846
  ### current workflows retrieve <id>
728
847
 
729
- Workflows across the caller's workspaces. Any member can create and edit.
848
+ Workflows (actions) across the caller's workspaces. Any member can
849
+ read; only admins can create, edit (including enable/disable), or
850
+ delete a binding.
730
851
 
731
852
  GET /api/workflows/workflows/{id}/
732
853
 
@@ -827,7 +948,9 @@ POST /api/workflows/runs/{id}/unarchive/
827
948
 
828
949
  ### current workflows update <id>
829
950
 
830
- Workflows across the caller's workspaces. Any member can create and edit.
951
+ Workflows (actions) across the caller's workspaces. Any member can
952
+ read; only admins can create, edit (including enable/disable), or
953
+ delete a binding.
831
954
 
832
955
  PUT /api/workflows/workflows/{id}/
833
956
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "current-cli"
3
- version = "0.1.28"
3
+ version = "0.1.30"
4
4
  description = "Command line interface for the Current API, generated from its OpenAPI schema at runtime"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -45,7 +45,7 @@ def test_expected_command_paths(cli):
45
45
  ["workspaces", "members", "list"],
46
46
  ["workspaces", "invites", "accept", "create"],
47
47
  ["integrations", "connections", "channels", "list"],
48
- ["inbox", "retrieve"],
48
+ ["inboxes", "list"],
49
49
  ]:
50
50
  _resolve(cli, parts)
51
51
 
@@ -64,7 +64,7 @@ def test_default_workspace_fallback(cli, runner, transport_factory):
64
64
  config.set_value("default_workspace", "default-ws")
65
65
  transport = transport_factory(ok({}))
66
66
 
67
- result = runner.invoke(cli, ["inbox", "retrieve"])
67
+ result = runner.invoke(cli, ["inboxes", "list"])
68
68
 
69
69
  assert result.exit_code == 0, result.output
70
70
  assert transport.requests[0].url.params["workspace"] == "default-ws"
@@ -73,7 +73,7 @@ def test_default_workspace_fallback(cli, runner, transport_factory):
73
73
  def test_required_workspace_missing_fails(cli, runner, transport_factory):
74
74
  transport = transport_factory(ok({}))
75
75
 
76
- result = runner.invoke(cli, ["inbox", "retrieve"])
76
+ result = runner.invoke(cli, ["inboxes", "list"])
77
77
 
78
78
  assert result.exit_code != 0
79
79
  assert "--workspace" in result.output
File without changes
File without changes