current-cli 0.1.29__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
1
  Metadata-Version: 2.5
2
2
  Name: current-cli
3
- Version: 0.1.29
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
@@ -634,10 +634,10 @@ paths:
634
634
  schema:
635
635
  $ref: '#/components/schemas/FileUrlResponse'
636
636
  description: ''
637
- /api/inbox/inbox/:
637
+ /api/inboxes/inboxes/:
638
638
  get:
639
- operationId: inbox_retrieve
640
- 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.
641
641
  parameters:
642
642
  - in: query
643
643
  name: workspace
@@ -646,7 +646,7 @@ paths:
646
646
  description: Workspace UUID
647
647
  required: true
648
648
  tags:
649
- - inbox
649
+ - inboxes
650
650
  security:
651
651
  - MessagingJobTokenAuth: []
652
652
  - tokenAuth: []
@@ -655,8 +655,112 @@ paths:
655
655
  content:
656
656
  application/json:
657
657
  schema:
658
- $ref: '#/components/schemas/WorkspaceInbox'
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
679
+ security:
680
+ - MessagingJobTokenAuth: []
681
+ - tokenAuth: []
682
+ responses:
683
+ '200':
684
+ content:
685
+ application/json:
686
+ schema:
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'
659
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
660
764
  /api/integrations/connections/:
661
765
  get:
662
766
  operationId: integrations_connections_list
@@ -943,7 +1047,12 @@ paths:
943
1047
  /api/integrations/messaging/react/:
944
1048
  post:
945
1049
  operationId: integrations_messaging_react
946
- 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.
947
1056
  tags:
948
1057
  - integrations
949
1058
  requestBody:
@@ -978,7 +1087,8 @@ paths:
978
1087
  the upload's ``initial_comment``). Teams cannot: a bot there has to
979
1088
  offer each file through a FileConsentCard the recipient accepts, and
980
1089
  only in a 1:1 chat, so the text posts first and each file follows as
981
- 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.
982
1092
  tags:
983
1093
  - integrations
984
1094
  requestBody:
@@ -1053,6 +1163,10 @@ paths:
1053
1163
  ``append``/``stop`` replace the card in full, rebuilt from the chunks —
1054
1164
  the sandbox always sends its complete state, so the relay stays
1055
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.
1056
1170
  tags:
1057
1171
  - integrations
1058
1172
  requestBody:
@@ -3423,6 +3537,57 @@ components:
3423
3537
  type: string
3424
3538
  required:
3425
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
3426
3591
  EmojiEnum:
3427
3592
  enum:
3428
3593
  - eyes
@@ -3433,6 +3598,14 @@ components:
3433
3598
  * `eyes` - eyes
3434
3599
  * `heart` - heart
3435
3600
  * `thumbsup` - thumbsup
3601
+ EntryTypeEnum:
3602
+ enum:
3603
+ - email
3604
+ - domain
3605
+ type: string
3606
+ description: |-
3607
+ * `email` - email
3608
+ * `domain` - domain
3436
3609
  ErrorDetail:
3437
3610
  type: object
3438
3611
  properties:
@@ -3646,6 +3819,14 @@ components:
3646
3819
  required:
3647
3820
  - path
3648
3821
  - url
3822
+ InboxRoleEnum:
3823
+ enum:
3824
+ - interaction
3825
+ - ingest
3826
+ type: string
3827
+ description: |-
3828
+ * `interaction` - Interaction
3829
+ * `ingest` - Ingest
3649
3830
  IntegrationConnection:
3650
3831
  type: object
3651
3832
  description: |-
@@ -5538,6 +5719,11 @@ components:
5538
5719
  address:
5539
5720
  type: string
5540
5721
  readOnly: true
5722
+ role:
5723
+ allOf:
5724
+ - $ref: '#/components/schemas/InboxRoleEnum'
5725
+ readOnly: true
5726
+ default: interaction
5541
5727
  created_at:
5542
5728
  type: string
5543
5729
  format: date-time
@@ -5546,6 +5732,7 @@ components:
5546
5732
  - address
5547
5733
  - created_at
5548
5734
  - id
5735
+ - role
5549
5736
  - workspace
5550
5737
  WorkspaceInvite:
5551
5738
  type: object
@@ -241,11 +241,45 @@ POST /api/files/upload-url/
241
241
  Options:
242
242
  - `--data` (required) - Request body as JSON: inline, @file.json, or - for stdin.
243
243
 
244
- ### current inbox retrieve
244
+ ### current inboxes allow-lists create <inbox_id>
245
245
 
246
- Fetch (and lazily provision) the workspace's forwarding inbox.
246
+ Inbox-scoped AgentMail receive and send allow lists.
247
247
 
248
- GET /api/inbox/inbox/
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>
257
+
258
+ Inbox-scoped AgentMail receive and send allow lists.
259
+
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/
249
283
 
250
284
  Options:
251
285
  - `--workspace` - Workspace UUID
@@ -364,6 +398,10 @@ Options:
364
398
 
365
399
  Add an emoji reaction to the message a reply_ref points at.
366
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
+
367
405
  POST /api/integrations/messaging/react/
368
406
 
369
407
  Options:
@@ -378,7 +416,8 @@ Slack shares the files and the text as one message (the text becomes
378
416
  the upload's ``initial_comment``). Teams cannot: a bot there has to
379
417
  offer each file through a FileConsentCard the recipient accepts, and
380
418
  only in a 1:1 chat, so the text posts first and each file follows as
381
- 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.
382
421
 
383
422
  POST /api/integrations/messaging/respond/
384
423
 
@@ -416,6 +455,10 @@ toggleable activity section) and returns its activity id as ``ts``;
416
455
  the sandbox always sends its complete state, so the relay stays
417
456
  stateless.
418
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
+
419
462
  POST /api/integrations/messaging/stream/
420
463
 
421
464
  Options:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "current-cli"
3
- version = "0.1.29"
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