@xmtp/convos-cli 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agent/serve.d.ts +92 -1
- package/dist/commands/agent/serve.js +355 -7
- package/oclif.manifest.json +1052 -1042
- package/package.json +1 -1
- package/skills/convos-cli/SKILL.md +22 -5
package/oclif.manifest.json
CHANGED
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
"required": false
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
|
-
"description": "Run an agent server for a conversation.\n\nStarts a long-running process that combines message streaming,\njoin request processing, and stdin command handling into a single\nsession — ideal for AI agents and bots.\n\nIf no conversation ID is provided, creates a new conversation.\nDisplays the QR code invite on stderr so agents can share it.\n\nUses an ndjson (newline-delimited JSON) protocol:\n\nSTDIN commands (one JSON object per line):\n {\"type\":\"send\",\"text\":\"Hello\"} Send a text message\n {\"type\":\"send\",\"text\":\"Re\",\"replyTo\":\"<id>\"} Reply to a message\n {\"type\":\"react\",\"messageId\":\"<id>\",\"emoji\":\"👍\"} React to a message\n {\"type\":\"react\",\"messageId\":\"<id>\",\"emoji\":\"👍\",\"action\":\"remove\"}\n {\"type\":\"attach\",\"file\":\"./photo.jpg\"} Send a file attachment\n {\"type\":\"attach\",\"file\":\"./img.jpg\",\"replyTo\":\"<id>\"} Reply with attachment\n {\"type\":\"remote-attach\",\"url\":\"https://...\",\"contentDigest\":\"...\",\"secret\":\"...\",\"salt\":\"...\",\"nonce\":\"...\",\"contentLength\":123}\n {\"type\":\"stop\"} Graceful shutdown\n\nSTDOUT events (one JSON object per line):\n {\"event\":\"ready\",...} Session started, includes invite URL\n {\"event\":\"message\",...} New message received\n {\"event\":\"member_joined\",...} A member joined via invite\n {\"event\":\"sent\",...} Message sent confirmation\n {\"event\":\"error\",...} Error occurred\n\nSTDERR: QR code, diagnostic logs (does not interfere with protocol)",
|
|
227
|
+
"description": "Run an agent server for a conversation.\n\nStarts a long-running process that combines message streaming,\njoin request processing, and stdin command handling into a single\nsession — ideal for AI agents and bots.\n\nIf no conversation ID is provided, creates a new conversation.\nDisplays the QR code invite on stderr so agents can share it.\n\nUses an ndjson (newline-delimited JSON) protocol:\n\nSTDIN commands (one JSON object per line):\n {\"type\":\"send\",\"text\":\"Hello\"} Send a text message\n {\"type\":\"send\",\"text\":\"Re\",\"replyTo\":\"<id>\"} Reply to a message\n {\"type\":\"react\",\"messageId\":\"<id>\",\"emoji\":\"👍\"} React to a message\n {\"type\":\"react\",\"messageId\":\"<id>\",\"emoji\":\"👍\",\"action\":\"remove\"}\n {\"type\":\"attach\",\"file\":\"./photo.jpg\"} Send a file attachment\n {\"type\":\"attach\",\"file\":\"./img.jpg\",\"replyTo\":\"<id>\"} Reply with attachment\n {\"type\":\"remote-attach\",\"url\":\"https://...\",\"contentDigest\":\"...\",\"secret\":\"...\",\"salt\":\"...\",\"nonce\":\"...\",\"contentLength\":123}\n {\"type\":\"rename\",\"name\":\"New Name\"} Rename the conversation\n {\"type\":\"lock\"} Lock (prevent new joins)\n {\"type\":\"unlock\"} Unlock (allow new joins)\n {\"type\":\"explode\"} Explode immediately\n {\"type\":\"explode\",\"scheduled\":\"2025-03-01T00:00:00Z\"} Schedule explosion\n {\"type\":\"stop\"} Graceful shutdown\n\nSTDOUT events (one JSON object per line):\n {\"event\":\"ready\",...} Session started, includes invite URL\n {\"event\":\"message\",...} New message received\n {\"event\":\"member_joined\",...} A member joined via invite\n {\"event\":\"sent\",...} Message sent confirmation\n {\"event\":\"heartbeat\",...} Periodic health check\n {\"event\":\"error\",...} Error occurred\n\nSTDERR: QR code, diagnostic logs (does not interfere with protocol)",
|
|
228
228
|
"examples": [
|
|
229
229
|
{
|
|
230
230
|
"command": "<%= config.bin %> <%= command.id %> --name \"My Bot\"",
|
|
@@ -366,6 +366,15 @@
|
|
|
366
366
|
"name": "no-invite",
|
|
367
367
|
"allowNo": false,
|
|
368
368
|
"type": "boolean"
|
|
369
|
+
},
|
|
370
|
+
"heartbeat": {
|
|
371
|
+
"description": "Emit heartbeat events every N seconds (0 to disable)",
|
|
372
|
+
"name": "heartbeat",
|
|
373
|
+
"default": 0,
|
|
374
|
+
"hasDynamicHelp": false,
|
|
375
|
+
"helpValue": "<seconds>",
|
|
376
|
+
"multiple": false,
|
|
377
|
+
"type": "option"
|
|
369
378
|
}
|
|
370
379
|
},
|
|
371
380
|
"hasDynamicHelp": false,
|
|
@@ -414,6 +423,7 @@
|
|
|
414
423
|
"type": "boolean"
|
|
415
424
|
}
|
|
416
425
|
},
|
|
426
|
+
"MAX_RECENT_IDS": 1000,
|
|
417
427
|
"isESM": true,
|
|
418
428
|
"relativePath": [
|
|
419
429
|
"dist",
|
|
@@ -422,16 +432,28 @@
|
|
|
422
432
|
"serve.js"
|
|
423
433
|
]
|
|
424
434
|
},
|
|
425
|
-
"
|
|
435
|
+
"conversations:create": {
|
|
426
436
|
"aliases": [],
|
|
427
|
-
"args": {
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
"
|
|
437
|
+
"args": {},
|
|
438
|
+
"description": "Create a new Convos conversation.\n\nCreates a new conversation with a fresh per-conversation identity.\nEach conversation gets its own XMTP inbox for privacy isolation\n(per ADR 002).\n\nThis command:\n1. Creates a new identity (or uses an existing unlinked one)\n2. Initializes the XMTP client for that identity\n3. Creates a group conversation\n4. Links the identity to the conversation\n\nThe creator becomes super admin. Others join via invite links.",
|
|
439
|
+
"examples": [
|
|
440
|
+
{
|
|
441
|
+
"command": "<%= config.bin %> <%= command.id %> --name \"Project Team\"",
|
|
442
|
+
"description": "Create a named conversation"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"command": "<%= config.bin %> <%= command.id %> --name \"Team\" --description \"Team discussion\"",
|
|
446
|
+
"description": "Create with metadata"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"command": "<%= config.bin %> <%= command.id %> --identity <identity-id>",
|
|
450
|
+
"description": "Use a pre-created identity"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"command": "<%= config.bin %> <%= command.id %> --name \"Private\" --permissions admin-only --json",
|
|
454
|
+
"description": "Create admin-only group with JSON output"
|
|
432
455
|
}
|
|
433
|
-
|
|
434
|
-
"description": "Add members to a conversation by inbox ID.\n\nLow-level member addition. In Convos, members typically join via\ninvite links instead. Requires super admin permissions.",
|
|
456
|
+
],
|
|
435
457
|
"flags": {
|
|
436
458
|
"env-file": {
|
|
437
459
|
"description": "Path to .env file",
|
|
@@ -501,15 +523,75 @@
|
|
|
501
523
|
"helpValue": "<version>",
|
|
502
524
|
"multiple": false,
|
|
503
525
|
"type": "option"
|
|
526
|
+
},
|
|
527
|
+
"name": {
|
|
528
|
+
"description": "Conversation name",
|
|
529
|
+
"name": "name",
|
|
530
|
+
"hasDynamicHelp": false,
|
|
531
|
+
"helpValue": "<name>",
|
|
532
|
+
"multiple": false,
|
|
533
|
+
"type": "option"
|
|
534
|
+
},
|
|
535
|
+
"description": {
|
|
536
|
+
"description": "Conversation description",
|
|
537
|
+
"name": "description",
|
|
538
|
+
"hasDynamicHelp": false,
|
|
539
|
+
"helpValue": "<description>",
|
|
540
|
+
"multiple": false,
|
|
541
|
+
"type": "option"
|
|
542
|
+
},
|
|
543
|
+
"image-url": {
|
|
544
|
+
"description": "Conversation image URL",
|
|
545
|
+
"name": "image-url",
|
|
546
|
+
"hasDynamicHelp": false,
|
|
547
|
+
"helpValue": "<url>",
|
|
548
|
+
"multiple": false,
|
|
549
|
+
"type": "option"
|
|
550
|
+
},
|
|
551
|
+
"permissions": {
|
|
552
|
+
"description": "Permission preset",
|
|
553
|
+
"name": "permissions",
|
|
554
|
+
"default": "all-members",
|
|
555
|
+
"hasDynamicHelp": false,
|
|
556
|
+
"multiple": false,
|
|
557
|
+
"options": [
|
|
558
|
+
"all-members",
|
|
559
|
+
"admin-only"
|
|
560
|
+
],
|
|
561
|
+
"type": "option"
|
|
562
|
+
},
|
|
563
|
+
"identity": {
|
|
564
|
+
"description": "Use an existing unlinked identity ID",
|
|
565
|
+
"name": "identity",
|
|
566
|
+
"hasDynamicHelp": false,
|
|
567
|
+
"helpValue": "<id>",
|
|
568
|
+
"multiple": false,
|
|
569
|
+
"type": "option"
|
|
570
|
+
},
|
|
571
|
+
"label": {
|
|
572
|
+
"description": "Local label for the identity",
|
|
573
|
+
"name": "label",
|
|
574
|
+
"hasDynamicHelp": false,
|
|
575
|
+
"helpValue": "<label>",
|
|
576
|
+
"multiple": false,
|
|
577
|
+
"type": "option"
|
|
578
|
+
},
|
|
579
|
+
"profile-name": {
|
|
580
|
+
"description": "Profile display name for this conversation",
|
|
581
|
+
"name": "profile-name",
|
|
582
|
+
"hasDynamicHelp": false,
|
|
583
|
+
"helpValue": "<name>",
|
|
584
|
+
"multiple": false,
|
|
585
|
+
"type": "option"
|
|
504
586
|
}
|
|
505
587
|
},
|
|
506
588
|
"hasDynamicHelp": false,
|
|
507
589
|
"hiddenAliases": [],
|
|
508
|
-
"id": "
|
|
590
|
+
"id": "conversations:create",
|
|
509
591
|
"pluginAlias": "@xmtp/convos-cli",
|
|
510
592
|
"pluginName": "@xmtp/convos-cli",
|
|
511
593
|
"pluginType": "core",
|
|
512
|
-
"strict":
|
|
594
|
+
"strict": true,
|
|
513
595
|
"enableJsonFlag": false,
|
|
514
596
|
"commonFlags": {
|
|
515
597
|
"env-file": {
|
|
@@ -553,20 +635,38 @@
|
|
|
553
635
|
"relativePath": [
|
|
554
636
|
"dist",
|
|
555
637
|
"commands",
|
|
556
|
-
"
|
|
557
|
-
"
|
|
638
|
+
"conversations",
|
|
639
|
+
"create.js"
|
|
558
640
|
]
|
|
559
641
|
},
|
|
560
|
-
"
|
|
642
|
+
"conversations:join": {
|
|
561
643
|
"aliases": [],
|
|
562
644
|
"args": {
|
|
563
|
-
"
|
|
564
|
-
"description": "
|
|
565
|
-
"name": "
|
|
645
|
+
"invite": {
|
|
646
|
+
"description": "Invite slug or URL",
|
|
647
|
+
"name": "invite",
|
|
566
648
|
"required": true
|
|
567
649
|
}
|
|
568
650
|
},
|
|
569
|
-
"description": "
|
|
651
|
+
"description": "Join a conversation using an invite slug or URL.\n\nImplements the Convos join flow (per ADR 001):\n\n1. Parse and validate the invite (verify signature, check expiration)\n2. Create a new per-conversation identity for this conversation\n3. Send the invite slug as a DM to the creator's inbox\n4. Wait for the creator's client to process the join request and\n add this identity to the conversation\n5. Link the identity to the conversation once joined\n\nThe creator's client (iOS app or another CLI instance running\n'convos conversations process-join-requests') must be online to\nprocess the join request.\n\nAccepts either a raw invite slug or a full URL containing the\nslug as query parameter 'i'.",
|
|
652
|
+
"examples": [
|
|
653
|
+
{
|
|
654
|
+
"command": "<%= config.bin %> <%= command.id %> <invite-slug>",
|
|
655
|
+
"description": "Join using a raw invite slug"
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"command": "<%= config.bin %> <%= command.id %> \"https://popup.convos.org/v2?i=<slug>\"",
|
|
659
|
+
"description": "Join using a full invite URL"
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
"command": "<%= config.bin %> <%= command.id %> <slug> --no-wait",
|
|
663
|
+
"description": "Send join request without waiting for acceptance"
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"command": "<%= config.bin %> <%= command.id %> <slug> --timeout 120 --json",
|
|
667
|
+
"description": "Wait up to 2 minutes for acceptance"
|
|
668
|
+
}
|
|
669
|
+
],
|
|
570
670
|
"flags": {
|
|
571
671
|
"env-file": {
|
|
572
672
|
"description": "Path to .env file",
|
|
@@ -636,11 +736,50 @@
|
|
|
636
736
|
"helpValue": "<version>",
|
|
637
737
|
"multiple": false,
|
|
638
738
|
"type": "option"
|
|
739
|
+
},
|
|
740
|
+
"no-wait": {
|
|
741
|
+
"description": "Send the join request but don't wait for the creator to accept",
|
|
742
|
+
"name": "no-wait",
|
|
743
|
+
"allowNo": false,
|
|
744
|
+
"type": "boolean"
|
|
745
|
+
},
|
|
746
|
+
"timeout": {
|
|
747
|
+
"description": "Seconds to wait for acceptance (default: 60)",
|
|
748
|
+
"name": "timeout",
|
|
749
|
+
"default": 60,
|
|
750
|
+
"hasDynamicHelp": false,
|
|
751
|
+
"helpValue": "<seconds>",
|
|
752
|
+
"multiple": false,
|
|
753
|
+
"type": "option"
|
|
754
|
+
},
|
|
755
|
+
"label": {
|
|
756
|
+
"description": "Local label for the new identity",
|
|
757
|
+
"name": "label",
|
|
758
|
+
"hasDynamicHelp": false,
|
|
759
|
+
"helpValue": "<label>",
|
|
760
|
+
"multiple": false,
|
|
761
|
+
"type": "option"
|
|
762
|
+
},
|
|
763
|
+
"profile-name": {
|
|
764
|
+
"description": "Profile display name for this conversation",
|
|
765
|
+
"name": "profile-name",
|
|
766
|
+
"hasDynamicHelp": false,
|
|
767
|
+
"helpValue": "<name>",
|
|
768
|
+
"multiple": false,
|
|
769
|
+
"type": "option"
|
|
770
|
+
},
|
|
771
|
+
"identity": {
|
|
772
|
+
"description": "Use an existing unlinked identity instead of creating one",
|
|
773
|
+
"name": "identity",
|
|
774
|
+
"hasDynamicHelp": false,
|
|
775
|
+
"helpValue": "<id>",
|
|
776
|
+
"multiple": false,
|
|
777
|
+
"type": "option"
|
|
639
778
|
}
|
|
640
779
|
},
|
|
641
780
|
"hasDynamicHelp": false,
|
|
642
781
|
"hiddenAliases": [],
|
|
643
|
-
"id": "
|
|
782
|
+
"id": "conversations:join",
|
|
644
783
|
"pluginAlias": "@xmtp/convos-cli",
|
|
645
784
|
"pluginName": "@xmtp/convos-cli",
|
|
646
785
|
"pluginType": "core",
|
|
@@ -688,37 +827,26 @@
|
|
|
688
827
|
"relativePath": [
|
|
689
828
|
"dist",
|
|
690
829
|
"commands",
|
|
691
|
-
"
|
|
692
|
-
"
|
|
830
|
+
"conversations",
|
|
831
|
+
"join.js"
|
|
693
832
|
]
|
|
694
833
|
},
|
|
695
|
-
"
|
|
834
|
+
"conversations:list": {
|
|
696
835
|
"aliases": [],
|
|
697
|
-
"args": {
|
|
698
|
-
|
|
699
|
-
"description": "The conversation ID",
|
|
700
|
-
"name": "id",
|
|
701
|
-
"required": true
|
|
702
|
-
},
|
|
703
|
-
"message-id": {
|
|
704
|
-
"description": "The message ID of the attachment",
|
|
705
|
-
"name": "message-id",
|
|
706
|
-
"required": true
|
|
707
|
-
}
|
|
708
|
-
},
|
|
709
|
-
"description": "Download an attachment from a message.\n\nDownloads an attachment message and saves it to disk. Handles both\ninline attachments and remote (encrypted) attachments transparently.\n\nFor inline attachments, the content is written directly to disk.\n\nFor remote attachments, the encrypted payload is fetched from the URL\nembedded in the message, decrypted using the keys in the message, and\nthe decrypted content is saved to disk.\n\nThe output filename is determined by (in order of priority):\n1. The --output flag (explicit path)\n2. The filename from the message metadata\n3. Auto-generated from message ID + MIME type extension\n\nUse --raw to save the encrypted payload without decrypting (remote\nattachments only).",
|
|
836
|
+
"args": {},
|
|
837
|
+
"description": "List all Convos conversations.\n\nLists conversations across all per-conversation identities.\nEach conversation is associated with its own XMTP identity.\n\nUse --sync to fetch the latest state from the network.",
|
|
710
838
|
"examples": [
|
|
711
839
|
{
|
|
712
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
713
|
-
"description": "
|
|
840
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
841
|
+
"description": "List all conversations"
|
|
714
842
|
},
|
|
715
843
|
{
|
|
716
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
717
|
-
"description": "
|
|
844
|
+
"command": "<%= config.bin %> <%= command.id %> --sync",
|
|
845
|
+
"description": "Sync from network then list"
|
|
718
846
|
},
|
|
719
847
|
{
|
|
720
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
721
|
-
"description": "
|
|
848
|
+
"command": "<%= config.bin %> <%= command.id %> --json",
|
|
849
|
+
"description": "Output as JSON"
|
|
722
850
|
}
|
|
723
851
|
],
|
|
724
852
|
"flags": {
|
|
@@ -791,23 +919,8 @@
|
|
|
791
919
|
"multiple": false,
|
|
792
920
|
"type": "option"
|
|
793
921
|
},
|
|
794
|
-
"output": {
|
|
795
|
-
"char": "o",
|
|
796
|
-
"description": "Output file path (default: auto-generated from metadata)",
|
|
797
|
-
"name": "output",
|
|
798
|
-
"hasDynamicHelp": false,
|
|
799
|
-
"helpValue": "<path>",
|
|
800
|
-
"multiple": false,
|
|
801
|
-
"type": "option"
|
|
802
|
-
},
|
|
803
|
-
"raw": {
|
|
804
|
-
"description": "Save encrypted payload without decrypting (remote attachments only)",
|
|
805
|
-
"name": "raw",
|
|
806
|
-
"allowNo": false,
|
|
807
|
-
"type": "boolean"
|
|
808
|
-
},
|
|
809
922
|
"sync": {
|
|
810
|
-
"description": "Sync
|
|
923
|
+
"description": "Sync each identity from network before listing",
|
|
811
924
|
"name": "sync",
|
|
812
925
|
"allowNo": false,
|
|
813
926
|
"type": "boolean"
|
|
@@ -815,7 +928,7 @@
|
|
|
815
928
|
},
|
|
816
929
|
"hasDynamicHelp": false,
|
|
817
930
|
"hiddenAliases": [],
|
|
818
|
-
"id": "
|
|
931
|
+
"id": "conversations:list",
|
|
819
932
|
"pluginAlias": "@xmtp/convos-cli",
|
|
820
933
|
"pluginName": "@xmtp/convos-cli",
|
|
821
934
|
"pluginType": "core",
|
|
@@ -863,28 +976,26 @@
|
|
|
863
976
|
"relativePath": [
|
|
864
977
|
"dist",
|
|
865
978
|
"commands",
|
|
866
|
-
"
|
|
867
|
-
"
|
|
979
|
+
"conversations",
|
|
980
|
+
"list.js"
|
|
868
981
|
]
|
|
869
982
|
},
|
|
870
|
-
"
|
|
983
|
+
"conversations:process-join-requests": {
|
|
871
984
|
"aliases": [],
|
|
872
|
-
"args": {
|
|
873
|
-
|
|
874
|
-
"description": "The conversation ID",
|
|
875
|
-
"name": "id",
|
|
876
|
-
"required": true
|
|
877
|
-
}
|
|
878
|
-
},
|
|
879
|
-
"description": "Explode (permanently destroy) a conversation.\n\nSends an ExplodeSettings message to notify all members, updates the\ngroup metadata with the expiration timestamp, removes all members,\nthen deletes the local identity including wallet key, database\nencryption key, and XMTP database. This is irreversible.\n\nPer ADR 004: destroying the per-conversation identity destroys the\ncryptographic material needed to decrypt messages. Recovery is\nimpossible.\n\nSteps:\n1. Send ExplodeSettings message (notifies iOS/other clients)\n2. Update group metadata with expiresAtUnix\n3. Remove all other members from the XMTP group\n4. Delete the local identity (private keys + database)\n\nOnly the conversation creator (super admin) should explode.",
|
|
985
|
+
"args": {},
|
|
986
|
+
"description": "Process pending join requests for all conversations.\n\nScans DMs for each identity looking for join requests (text messages\ncontaining signed invite slugs). When a valid join request is found:\n\n1. Verify the invite signature\n2. Decrypt the conversation token to get the conversation ID\n3. Verify the creator inbox ID matches\n4. Add the requester to the conversation\n5. Block invalid/spam requests\n\nWithout --watch, processes all pending DMs and exits.\nWith --watch, streams DM messages in real-time and processes\njoin requests as they arrive (recommended for always-on usage).",
|
|
880
987
|
"examples": [
|
|
881
988
|
{
|
|
882
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
883
|
-
"description": "
|
|
989
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
990
|
+
"description": "Process all pending join requests"
|
|
884
991
|
},
|
|
885
992
|
{
|
|
886
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
887
|
-
"description": "
|
|
993
|
+
"command": "<%= config.bin %> <%= command.id %> --watch",
|
|
994
|
+
"description": "Continuously stream and process join requests in real-time"
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"command": "<%= config.bin %> <%= command.id %> --conversation <id>",
|
|
998
|
+
"description": "Process join requests for a specific conversation only"
|
|
888
999
|
}
|
|
889
1000
|
],
|
|
890
1001
|
"flags": {
|
|
@@ -957,25 +1068,24 @@
|
|
|
957
1068
|
"multiple": false,
|
|
958
1069
|
"type": "option"
|
|
959
1070
|
},
|
|
960
|
-
"
|
|
961
|
-
"
|
|
962
|
-
"
|
|
963
|
-
"
|
|
964
|
-
"
|
|
965
|
-
"type": "boolean"
|
|
1071
|
+
"watch": {
|
|
1072
|
+
"description": "Stream DM messages in real-time and process join requests as they arrive",
|
|
1073
|
+
"name": "watch",
|
|
1074
|
+
"allowNo": false,
|
|
1075
|
+
"type": "boolean"
|
|
966
1076
|
},
|
|
967
|
-
"
|
|
968
|
-
"description": "
|
|
969
|
-
"name": "
|
|
970
|
-
"required": false,
|
|
1077
|
+
"conversation": {
|
|
1078
|
+
"description": "Only process requests for this conversation ID",
|
|
1079
|
+
"name": "conversation",
|
|
971
1080
|
"hasDynamicHelp": false,
|
|
1081
|
+
"helpValue": "<id>",
|
|
972
1082
|
"multiple": false,
|
|
973
1083
|
"type": "option"
|
|
974
1084
|
}
|
|
975
1085
|
},
|
|
976
1086
|
"hasDynamicHelp": false,
|
|
977
1087
|
"hiddenAliases": [],
|
|
978
|
-
"id": "
|
|
1088
|
+
"id": "conversations:process-join-requests",
|
|
979
1089
|
"pluginAlias": "@xmtp/convos-cli",
|
|
980
1090
|
"pluginName": "@xmtp/convos-cli",
|
|
981
1091
|
"pluginType": "core",
|
|
@@ -1023,24 +1133,18 @@
|
|
|
1023
1133
|
"relativePath": [
|
|
1024
1134
|
"dist",
|
|
1025
1135
|
"commands",
|
|
1026
|
-
"
|
|
1027
|
-
"
|
|
1136
|
+
"conversations",
|
|
1137
|
+
"process-join-requests.js"
|
|
1028
1138
|
]
|
|
1029
1139
|
},
|
|
1030
|
-
"
|
|
1140
|
+
"conversations:sync": {
|
|
1031
1141
|
"aliases": [],
|
|
1032
|
-
"args": {
|
|
1033
|
-
|
|
1034
|
-
"description": "The conversation ID",
|
|
1035
|
-
"name": "id",
|
|
1036
|
-
"required": true
|
|
1037
|
-
}
|
|
1038
|
-
},
|
|
1039
|
-
"description": "Get detailed information about a conversation.\n\nResolves the per-conversation identity and shows full details\nincluding members, permissions, metadata, and identity info.",
|
|
1142
|
+
"args": {},
|
|
1143
|
+
"description": "Sync all conversations from the network.\n\nSynchronizes every linked identity with the XMTP network.\nFetches new messages and membership changes for all conversations.",
|
|
1040
1144
|
"examples": [
|
|
1041
1145
|
{
|
|
1042
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
1043
|
-
"description": "
|
|
1146
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1147
|
+
"description": "Sync all conversations"
|
|
1044
1148
|
}
|
|
1045
1149
|
],
|
|
1046
1150
|
"flags": {
|
|
@@ -1116,7 +1220,7 @@
|
|
|
1116
1220
|
},
|
|
1117
1221
|
"hasDynamicHelp": false,
|
|
1118
1222
|
"hiddenAliases": [],
|
|
1119
|
-
"id": "
|
|
1223
|
+
"id": "conversations:sync",
|
|
1120
1224
|
"pluginAlias": "@xmtp/convos-cli",
|
|
1121
1225
|
"pluginName": "@xmtp/convos-cli",
|
|
1122
1226
|
"pluginType": "core",
|
|
@@ -1164,36 +1268,26 @@
|
|
|
1164
1268
|
"relativePath": [
|
|
1165
1269
|
"dist",
|
|
1166
1270
|
"commands",
|
|
1167
|
-
"
|
|
1168
|
-
"
|
|
1271
|
+
"conversations",
|
|
1272
|
+
"sync.js"
|
|
1169
1273
|
]
|
|
1170
1274
|
},
|
|
1171
|
-
"
|
|
1275
|
+
"identity:create": {
|
|
1172
1276
|
"aliases": [],
|
|
1173
|
-
"args": {
|
|
1174
|
-
|
|
1175
|
-
"description": "The conversation ID",
|
|
1176
|
-
"name": "id",
|
|
1177
|
-
"required": true
|
|
1178
|
-
}
|
|
1179
|
-
},
|
|
1180
|
-
"description": "Generate an invite link for a conversation.\n\nCreates a cryptographic invite slug that others can use to request\nto join this conversation (per ADR 001).\n\nThe invite contains:\n- An encrypted conversation ID (only the creator can decrypt)\n- The creator's inbox ID (for routing the join request DM)\n- An invite tag (for verification and revocation)\n- Optional metadata (name, description)\n- A secp256k1 ECDSA signature\n\nDisplays a QR code in the terminal that can be scanned by the\nConvos app. The QR code encodes the full invite URL.\n\nInvite URLs use the format:\n- Dev: dev.convos.org/v2?i=<slug>\n- Production: popup.convos.org/v2?i=<slug>",
|
|
1277
|
+
"args": {},
|
|
1278
|
+
"description": "Create a new Convos identity.\n\nGenerates a new wallet key and database encryption key for use with\na single conversation. Each conversation gets its own identity for\nmaximum privacy (per ADR 002).\n\nYou can optionally set a label (local-only) and profile name (shared\nwith conversation members per ADR 005).",
|
|
1181
1279
|
"examples": [
|
|
1182
1280
|
{
|
|
1183
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
1184
|
-
"description": "
|
|
1185
|
-
},
|
|
1186
|
-
{
|
|
1187
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --no-qr",
|
|
1188
|
-
"description": "Generate an invite without QR code"
|
|
1281
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1282
|
+
"description": "Create a new identity"
|
|
1189
1283
|
},
|
|
1190
1284
|
{
|
|
1191
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
1192
|
-
"description": "
|
|
1285
|
+
"command": "<%= config.bin %> <%= command.id %> --label \"Work Chat\"",
|
|
1286
|
+
"description": "Create with a local label"
|
|
1193
1287
|
},
|
|
1194
1288
|
{
|
|
1195
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
1196
|
-
"description": "
|
|
1289
|
+
"command": "<%= config.bin %> <%= command.id %> --label \"Team\" --profile-name \"Alice\"",
|
|
1290
|
+
"description": "Create with label and profile name"
|
|
1197
1291
|
}
|
|
1198
1292
|
],
|
|
1199
1293
|
"flags": {
|
|
@@ -1266,36 +1360,26 @@
|
|
|
1266
1360
|
"multiple": false,
|
|
1267
1361
|
"type": "option"
|
|
1268
1362
|
},
|
|
1269
|
-
"
|
|
1270
|
-
"description": "
|
|
1271
|
-
"name": "
|
|
1272
|
-
"allowNo": true,
|
|
1273
|
-
"type": "boolean"
|
|
1274
|
-
},
|
|
1275
|
-
"expires-in": {
|
|
1276
|
-
"description": "Invite expires in N seconds from now",
|
|
1277
|
-
"name": "expires-in",
|
|
1363
|
+
"label": {
|
|
1364
|
+
"description": "Local label for this identity (not shared)",
|
|
1365
|
+
"name": "label",
|
|
1278
1366
|
"hasDynamicHelp": false,
|
|
1279
|
-
"helpValue": "<
|
|
1367
|
+
"helpValue": "<label>",
|
|
1280
1368
|
"multiple": false,
|
|
1281
1369
|
"type": "option"
|
|
1282
1370
|
},
|
|
1283
|
-
"
|
|
1284
|
-
"description": "
|
|
1285
|
-
"name": "
|
|
1286
|
-
"
|
|
1287
|
-
"
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
"description": "Include conversation name/description in invite",
|
|
1291
|
-
"name": "include-metadata",
|
|
1292
|
-
"allowNo": false,
|
|
1293
|
-
"type": "boolean"
|
|
1371
|
+
"profile-name": {
|
|
1372
|
+
"description": "Profile display name (shared with conversation members)",
|
|
1373
|
+
"name": "profile-name",
|
|
1374
|
+
"hasDynamicHelp": false,
|
|
1375
|
+
"helpValue": "<name>",
|
|
1376
|
+
"multiple": false,
|
|
1377
|
+
"type": "option"
|
|
1294
1378
|
}
|
|
1295
1379
|
},
|
|
1296
1380
|
"hasDynamicHelp": false,
|
|
1297
1381
|
"hiddenAliases": [],
|
|
1298
|
-
"id": "
|
|
1382
|
+
"id": "identity:create",
|
|
1299
1383
|
"pluginAlias": "@xmtp/convos-cli",
|
|
1300
1384
|
"pluginName": "@xmtp/convos-cli",
|
|
1301
1385
|
"pluginType": "core",
|
|
@@ -1343,28 +1427,24 @@
|
|
|
1343
1427
|
"relativePath": [
|
|
1344
1428
|
"dist",
|
|
1345
1429
|
"commands",
|
|
1346
|
-
"
|
|
1347
|
-
"
|
|
1430
|
+
"identity",
|
|
1431
|
+
"create.js"
|
|
1348
1432
|
]
|
|
1349
1433
|
},
|
|
1350
|
-
"
|
|
1434
|
+
"identity:info": {
|
|
1351
1435
|
"aliases": [],
|
|
1352
1436
|
"args": {
|
|
1353
1437
|
"id": {
|
|
1354
|
-
"description": "The
|
|
1438
|
+
"description": "The identity ID",
|
|
1355
1439
|
"name": "id",
|
|
1356
1440
|
"required": true
|
|
1357
1441
|
}
|
|
1358
1442
|
},
|
|
1359
|
-
"description": "
|
|
1443
|
+
"description": "Display detailed information about an identity.\n\nShows wallet address, XMTP inbox ID, linked conversation, profile\nsettings, and XMTP client details. Creates and registers the XMTP\nclient if not yet registered.",
|
|
1360
1444
|
"examples": [
|
|
1361
1445
|
{
|
|
1362
|
-
"command": "<%= config.bin %> <%= command.id %> <
|
|
1363
|
-
"description": "
|
|
1364
|
-
},
|
|
1365
|
-
{
|
|
1366
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --unlock",
|
|
1367
|
-
"description": "Unlock a conversation"
|
|
1446
|
+
"command": "<%= config.bin %> <%= command.id %> <identity-id>",
|
|
1447
|
+
"description": "Show identity details"
|
|
1368
1448
|
}
|
|
1369
1449
|
],
|
|
1370
1450
|
"flags": {
|
|
@@ -1436,24 +1516,11 @@
|
|
|
1436
1516
|
"helpValue": "<version>",
|
|
1437
1517
|
"multiple": false,
|
|
1438
1518
|
"type": "option"
|
|
1439
|
-
},
|
|
1440
|
-
"unlock": {
|
|
1441
|
-
"description": "Unlock instead of locking",
|
|
1442
|
-
"name": "unlock",
|
|
1443
|
-
"allowNo": false,
|
|
1444
|
-
"type": "boolean"
|
|
1445
|
-
},
|
|
1446
|
-
"force": {
|
|
1447
|
-
"char": "f",
|
|
1448
|
-
"description": "Skip confirmation prompt",
|
|
1449
|
-
"name": "force",
|
|
1450
|
-
"allowNo": false,
|
|
1451
|
-
"type": "boolean"
|
|
1452
1519
|
}
|
|
1453
1520
|
},
|
|
1454
1521
|
"hasDynamicHelp": false,
|
|
1455
1522
|
"hiddenAliases": [],
|
|
1456
|
-
"id": "
|
|
1523
|
+
"id": "identity:info",
|
|
1457
1524
|
"pluginAlias": "@xmtp/convos-cli",
|
|
1458
1525
|
"pluginName": "@xmtp/convos-cli",
|
|
1459
1526
|
"pluginType": "core",
|
|
@@ -1501,24 +1568,22 @@
|
|
|
1501
1568
|
"relativePath": [
|
|
1502
1569
|
"dist",
|
|
1503
1570
|
"commands",
|
|
1504
|
-
"
|
|
1505
|
-
"
|
|
1571
|
+
"identity",
|
|
1572
|
+
"info.js"
|
|
1506
1573
|
]
|
|
1507
1574
|
},
|
|
1508
|
-
"
|
|
1575
|
+
"identity:list": {
|
|
1509
1576
|
"aliases": [],
|
|
1510
|
-
"args": {
|
|
1511
|
-
|
|
1512
|
-
"description": "The conversation ID",
|
|
1513
|
-
"name": "id",
|
|
1514
|
-
"required": true
|
|
1515
|
-
}
|
|
1516
|
-
},
|
|
1517
|
-
"description": "List members of a conversation.\n\nShows all members with their inbox IDs, identifiers, and permission levels.",
|
|
1577
|
+
"args": {},
|
|
1578
|
+
"description": "List all Convos identities.\n\nEach Convos conversation uses its own XMTP identity (inbox) for privacy.\nThis command shows all identities, including which conversation each is\nlinked to.\n\nIdentities without a conversation ID are \"unlinked\" — available for\nuse with new conversations.",
|
|
1518
1579
|
"examples": [
|
|
1519
1580
|
{
|
|
1520
|
-
"command": "<%= config.bin %> <%= command.id %>
|
|
1521
|
-
"description": "List
|
|
1581
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1582
|
+
"description": "List all identities"
|
|
1583
|
+
},
|
|
1584
|
+
{
|
|
1585
|
+
"command": "<%= config.bin %> <%= command.id %> --json",
|
|
1586
|
+
"description": "Output as JSON"
|
|
1522
1587
|
}
|
|
1523
1588
|
],
|
|
1524
1589
|
"flags": {
|
|
@@ -1594,7 +1659,7 @@
|
|
|
1594
1659
|
},
|
|
1595
1660
|
"hasDynamicHelp": false,
|
|
1596
1661
|
"hiddenAliases": [],
|
|
1597
|
-
"id": "
|
|
1662
|
+
"id": "identity:list",
|
|
1598
1663
|
"pluginAlias": "@xmtp/convos-cli",
|
|
1599
1664
|
"pluginName": "@xmtp/convos-cli",
|
|
1600
1665
|
"pluginType": "core",
|
|
@@ -1642,28 +1707,24 @@
|
|
|
1642
1707
|
"relativePath": [
|
|
1643
1708
|
"dist",
|
|
1644
1709
|
"commands",
|
|
1645
|
-
"
|
|
1646
|
-
"
|
|
1710
|
+
"identity",
|
|
1711
|
+
"list.js"
|
|
1647
1712
|
]
|
|
1648
1713
|
},
|
|
1649
|
-
"
|
|
1714
|
+
"identity:remove": {
|
|
1650
1715
|
"aliases": [],
|
|
1651
1716
|
"args": {
|
|
1652
1717
|
"id": {
|
|
1653
|
-
"description": "The
|
|
1718
|
+
"description": "The identity ID to remove",
|
|
1654
1719
|
"name": "id",
|
|
1655
1720
|
"required": true
|
|
1656
1721
|
}
|
|
1657
1722
|
},
|
|
1658
|
-
"description": "
|
|
1723
|
+
"description": "Remove an identity and all associated data.\n\nPermanently deletes the identity's wallet key, database encryption key,\nXMTP database files, and all local data. This is irreversible.\n\nPer ADR 002 and ADR 004: destroying an identity destroys the\ncryptographic material needed to participate in its conversation.",
|
|
1659
1724
|
"examples": [
|
|
1660
1725
|
{
|
|
1661
|
-
"command": "<%= config.bin %> <%= command.id %> <
|
|
1662
|
-
"description": "
|
|
1663
|
-
},
|
|
1664
|
-
{
|
|
1665
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --sync --limit 10",
|
|
1666
|
-
"description": "Sync and show last 10 messages"
|
|
1726
|
+
"command": "<%= config.bin %> <%= command.id %> <identity-id> --force",
|
|
1727
|
+
"description": "Remove an identity"
|
|
1667
1728
|
}
|
|
1668
1729
|
],
|
|
1669
1730
|
"flags": {
|
|
@@ -1736,129 +1797,156 @@
|
|
|
1736
1797
|
"multiple": false,
|
|
1737
1798
|
"type": "option"
|
|
1738
1799
|
},
|
|
1739
|
-
"
|
|
1740
|
-
"
|
|
1741
|
-
"
|
|
1800
|
+
"force": {
|
|
1801
|
+
"char": "f",
|
|
1802
|
+
"description": "Skip confirmation prompt",
|
|
1803
|
+
"name": "force",
|
|
1742
1804
|
"allowNo": false,
|
|
1743
1805
|
"type": "boolean"
|
|
1744
|
-
}
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1806
|
+
}
|
|
1807
|
+
},
|
|
1808
|
+
"hasDynamicHelp": false,
|
|
1809
|
+
"hiddenAliases": [],
|
|
1810
|
+
"id": "identity:remove",
|
|
1811
|
+
"pluginAlias": "@xmtp/convos-cli",
|
|
1812
|
+
"pluginName": "@xmtp/convos-cli",
|
|
1813
|
+
"pluginType": "core",
|
|
1814
|
+
"strict": true,
|
|
1815
|
+
"enableJsonFlag": false,
|
|
1816
|
+
"commonFlags": {
|
|
1817
|
+
"env-file": {
|
|
1818
|
+
"description": "Path to .env file",
|
|
1819
|
+
"helpValue": "<path>",
|
|
1820
|
+
"input": [],
|
|
1750
1821
|
"multiple": false,
|
|
1751
1822
|
"type": "option"
|
|
1752
1823
|
},
|
|
1753
|
-
"
|
|
1754
|
-
"description": "Sort direction",
|
|
1755
|
-
"name": "direction",
|
|
1756
|
-
"default": "descending",
|
|
1757
|
-
"hasDynamicHelp": false,
|
|
1758
|
-
"multiple": false,
|
|
1824
|
+
"env": {
|
|
1759
1825
|
"options": [
|
|
1760
|
-
"
|
|
1761
|
-
"
|
|
1826
|
+
"local",
|
|
1827
|
+
"dev",
|
|
1828
|
+
"production"
|
|
1762
1829
|
],
|
|
1763
|
-
"
|
|
1764
|
-
|
|
1765
|
-
"sent-before": {
|
|
1766
|
-
"description": "Only messages sent before this timestamp (nanoseconds)",
|
|
1767
|
-
"name": "sent-before",
|
|
1768
|
-
"hasDynamicHelp": false,
|
|
1769
|
-
"helpValue": "<ns>",
|
|
1830
|
+
"description": "XMTP environment",
|
|
1831
|
+
"input": [],
|
|
1770
1832
|
"multiple": false,
|
|
1771
1833
|
"type": "option"
|
|
1772
1834
|
},
|
|
1773
|
-
"
|
|
1774
|
-
"description": "
|
|
1775
|
-
"
|
|
1776
|
-
"
|
|
1777
|
-
"helpValue": "<ns>",
|
|
1835
|
+
"gateway-host": {
|
|
1836
|
+
"description": "Custom gateway URL",
|
|
1837
|
+
"helpValue": "<url>",
|
|
1838
|
+
"input": [],
|
|
1778
1839
|
"multiple": false,
|
|
1779
1840
|
"type": "option"
|
|
1780
1841
|
},
|
|
1781
|
-
"
|
|
1782
|
-
"description": "
|
|
1783
|
-
"
|
|
1784
|
-
"
|
|
1785
|
-
"multiple": false,
|
|
1786
|
-
"options": [
|
|
1787
|
-
"unpublished",
|
|
1788
|
-
"published",
|
|
1789
|
-
"failed"
|
|
1790
|
-
],
|
|
1791
|
-
"type": "option"
|
|
1842
|
+
"json": {
|
|
1843
|
+
"description": "Format output as JSON",
|
|
1844
|
+
"allowNo": false,
|
|
1845
|
+
"type": "boolean"
|
|
1792
1846
|
},
|
|
1793
|
-
"
|
|
1794
|
-
"description": "
|
|
1795
|
-
"
|
|
1847
|
+
"verbose": {
|
|
1848
|
+
"description": "Show additional diagnostic information",
|
|
1849
|
+
"default": false,
|
|
1850
|
+
"allowNo": false,
|
|
1851
|
+
"type": "boolean"
|
|
1852
|
+
}
|
|
1853
|
+
},
|
|
1854
|
+
"isESM": true,
|
|
1855
|
+
"relativePath": [
|
|
1856
|
+
"dist",
|
|
1857
|
+
"commands",
|
|
1858
|
+
"identity",
|
|
1859
|
+
"remove.js"
|
|
1860
|
+
]
|
|
1861
|
+
},
|
|
1862
|
+
"conversation:add-members": {
|
|
1863
|
+
"aliases": [],
|
|
1864
|
+
"args": {
|
|
1865
|
+
"id": {
|
|
1866
|
+
"description": "The conversation ID",
|
|
1867
|
+
"name": "id",
|
|
1868
|
+
"required": true
|
|
1869
|
+
}
|
|
1870
|
+
},
|
|
1871
|
+
"description": "Add members to a conversation by inbox ID.\n\nLow-level member addition. In Convos, members typically join via\ninvite links instead. Requires super admin permissions.",
|
|
1872
|
+
"flags": {
|
|
1873
|
+
"env-file": {
|
|
1874
|
+
"description": "Path to .env file",
|
|
1875
|
+
"name": "env-file",
|
|
1796
1876
|
"hasDynamicHelp": false,
|
|
1877
|
+
"helpValue": "<path>",
|
|
1797
1878
|
"multiple": false,
|
|
1798
|
-
"options": [
|
|
1799
|
-
"application",
|
|
1800
|
-
"membership-change"
|
|
1801
|
-
],
|
|
1802
1879
|
"type": "option"
|
|
1803
1880
|
},
|
|
1804
|
-
"
|
|
1805
|
-
"description": "
|
|
1806
|
-
"name": "
|
|
1881
|
+
"env": {
|
|
1882
|
+
"description": "XMTP environment",
|
|
1883
|
+
"name": "env",
|
|
1807
1884
|
"hasDynamicHelp": false,
|
|
1808
|
-
"multiple":
|
|
1885
|
+
"multiple": false,
|
|
1809
1886
|
"options": [
|
|
1810
|
-
"
|
|
1811
|
-
"
|
|
1812
|
-
"
|
|
1813
|
-
"group-membership-change",
|
|
1814
|
-
"group-updated",
|
|
1815
|
-
"intent",
|
|
1816
|
-
"leave-request",
|
|
1817
|
-
"markdown",
|
|
1818
|
-
"multi-remote-attachment",
|
|
1819
|
-
"reaction",
|
|
1820
|
-
"read-receipt",
|
|
1821
|
-
"remote-attachment",
|
|
1822
|
-
"reply",
|
|
1823
|
-
"text",
|
|
1824
|
-
"transaction-reference",
|
|
1825
|
-
"wallet-send-calls"
|
|
1887
|
+
"local",
|
|
1888
|
+
"dev",
|
|
1889
|
+
"production"
|
|
1826
1890
|
],
|
|
1827
1891
|
"type": "option"
|
|
1828
1892
|
},
|
|
1829
|
-
"
|
|
1830
|
-
"description": "
|
|
1831
|
-
"name": "
|
|
1893
|
+
"gateway-host": {
|
|
1894
|
+
"description": "Custom gateway URL",
|
|
1895
|
+
"name": "gateway-host",
|
|
1832
1896
|
"hasDynamicHelp": false,
|
|
1833
|
-
"
|
|
1897
|
+
"helpValue": "<url>",
|
|
1898
|
+
"multiple": false,
|
|
1899
|
+
"type": "option"
|
|
1900
|
+
},
|
|
1901
|
+
"json": {
|
|
1902
|
+
"description": "Format output as JSON",
|
|
1903
|
+
"name": "json",
|
|
1904
|
+
"allowNo": false,
|
|
1905
|
+
"type": "boolean"
|
|
1906
|
+
},
|
|
1907
|
+
"verbose": {
|
|
1908
|
+
"description": "Show additional diagnostic information",
|
|
1909
|
+
"name": "verbose",
|
|
1910
|
+
"allowNo": false,
|
|
1911
|
+
"type": "boolean"
|
|
1912
|
+
},
|
|
1913
|
+
"log-level": {
|
|
1914
|
+
"description": "Logging level",
|
|
1915
|
+
"name": "log-level",
|
|
1916
|
+
"hasDynamicHelp": false,
|
|
1917
|
+
"multiple": false,
|
|
1834
1918
|
"options": [
|
|
1835
|
-
"
|
|
1836
|
-
"
|
|
1837
|
-
"
|
|
1838
|
-
"
|
|
1839
|
-
"
|
|
1840
|
-
"
|
|
1841
|
-
"leave-request",
|
|
1842
|
-
"markdown",
|
|
1843
|
-
"multi-remote-attachment",
|
|
1844
|
-
"reaction",
|
|
1845
|
-
"read-receipt",
|
|
1846
|
-
"remote-attachment",
|
|
1847
|
-
"reply",
|
|
1848
|
-
"text",
|
|
1849
|
-
"transaction-reference",
|
|
1850
|
-
"wallet-send-calls"
|
|
1919
|
+
"off",
|
|
1920
|
+
"error",
|
|
1921
|
+
"warn",
|
|
1922
|
+
"info",
|
|
1923
|
+
"debug",
|
|
1924
|
+
"trace"
|
|
1851
1925
|
],
|
|
1852
1926
|
"type": "option"
|
|
1927
|
+
},
|
|
1928
|
+
"structured-logging": {
|
|
1929
|
+
"description": "Enable structured JSON logging",
|
|
1930
|
+
"name": "structured-logging",
|
|
1931
|
+
"allowNo": false,
|
|
1932
|
+
"type": "boolean"
|
|
1933
|
+
},
|
|
1934
|
+
"app-version": {
|
|
1935
|
+
"description": "App version string",
|
|
1936
|
+
"name": "app-version",
|
|
1937
|
+
"hasDynamicHelp": false,
|
|
1938
|
+
"helpValue": "<version>",
|
|
1939
|
+
"multiple": false,
|
|
1940
|
+
"type": "option"
|
|
1853
1941
|
}
|
|
1854
1942
|
},
|
|
1855
1943
|
"hasDynamicHelp": false,
|
|
1856
1944
|
"hiddenAliases": [],
|
|
1857
|
-
"id": "conversation:
|
|
1945
|
+
"id": "conversation:add-members",
|
|
1858
1946
|
"pluginAlias": "@xmtp/convos-cli",
|
|
1859
1947
|
"pluginName": "@xmtp/convos-cli",
|
|
1860
1948
|
"pluginType": "core",
|
|
1861
|
-
"strict":
|
|
1949
|
+
"strict": false,
|
|
1862
1950
|
"enableJsonFlag": false,
|
|
1863
1951
|
"commonFlags": {
|
|
1864
1952
|
"env-file": {
|
|
@@ -1903,10 +1991,10 @@
|
|
|
1903
1991
|
"dist",
|
|
1904
1992
|
"commands",
|
|
1905
1993
|
"conversation",
|
|
1906
|
-
"
|
|
1994
|
+
"add-members.js"
|
|
1907
1995
|
]
|
|
1908
1996
|
},
|
|
1909
|
-
"conversation:
|
|
1997
|
+
"conversation:consent-state": {
|
|
1910
1998
|
"aliases": [],
|
|
1911
1999
|
"args": {
|
|
1912
2000
|
"id": {
|
|
@@ -1915,7 +2003,7 @@
|
|
|
1915
2003
|
"required": true
|
|
1916
2004
|
}
|
|
1917
2005
|
},
|
|
1918
|
-
"description": "
|
|
2006
|
+
"description": "Get the consent state of a conversation.",
|
|
1919
2007
|
"flags": {
|
|
1920
2008
|
"env-file": {
|
|
1921
2009
|
"description": "Path to .env file",
|
|
@@ -1989,7 +2077,7 @@
|
|
|
1989
2077
|
},
|
|
1990
2078
|
"hasDynamicHelp": false,
|
|
1991
2079
|
"hiddenAliases": [],
|
|
1992
|
-
"id": "conversation:
|
|
2080
|
+
"id": "conversation:consent-state",
|
|
1993
2081
|
"pluginAlias": "@xmtp/convos-cli",
|
|
1994
2082
|
"pluginName": "@xmtp/convos-cli",
|
|
1995
2083
|
"pluginType": "core",
|
|
@@ -2038,27 +2126,36 @@
|
|
|
2038
2126
|
"dist",
|
|
2039
2127
|
"commands",
|
|
2040
2128
|
"conversation",
|
|
2041
|
-
"
|
|
2129
|
+
"consent-state.js"
|
|
2042
2130
|
]
|
|
2043
2131
|
},
|
|
2044
|
-
"conversation:
|
|
2132
|
+
"conversation:download-attachment": {
|
|
2045
2133
|
"aliases": [],
|
|
2046
2134
|
"args": {
|
|
2047
2135
|
"id": {
|
|
2048
2136
|
"description": "The conversation ID",
|
|
2049
2137
|
"name": "id",
|
|
2050
2138
|
"required": true
|
|
2139
|
+
},
|
|
2140
|
+
"message-id": {
|
|
2141
|
+
"description": "The message ID of the attachment",
|
|
2142
|
+
"name": "message-id",
|
|
2143
|
+
"required": true
|
|
2051
2144
|
}
|
|
2052
2145
|
},
|
|
2053
|
-
"description": "
|
|
2146
|
+
"description": "Download an attachment from a message.\n\nDownloads an attachment message and saves it to disk. Handles both\ninline attachments and remote (encrypted) attachments transparently.\n\nFor inline attachments, the content is written directly to disk.\n\nFor remote attachments, the encrypted payload is fetched from the URL\nembedded in the message, decrypted using the keys in the message, and\nthe decrypted content is saved to disk.\n\nThe output filename is determined by (in order of priority):\n1. The --output flag (explicit path)\n2. The filename from the message metadata\n3. Auto-generated from message ID + MIME type extension\n\nUse --raw to save the encrypted payload without decrypting (remote\nattachments only).",
|
|
2054
2147
|
"examples": [
|
|
2055
2148
|
{
|
|
2056
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
2057
|
-
"description": "
|
|
2149
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> <message-id>",
|
|
2150
|
+
"description": "Download attachment (auto-names from message metadata)"
|
|
2058
2151
|
},
|
|
2059
2152
|
{
|
|
2060
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --
|
|
2061
|
-
"description": "
|
|
2153
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> <message-id> --output ./photo.jpg",
|
|
2154
|
+
"description": "Download to a specific path"
|
|
2155
|
+
},
|
|
2156
|
+
{
|
|
2157
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> <message-id> --raw",
|
|
2158
|
+
"description": "Save the encrypted payload without decrypting (remote only)"
|
|
2062
2159
|
}
|
|
2063
2160
|
],
|
|
2064
2161
|
"flags": {
|
|
@@ -2130,11 +2227,32 @@
|
|
|
2130
2227
|
"helpValue": "<version>",
|
|
2131
2228
|
"multiple": false,
|
|
2132
2229
|
"type": "option"
|
|
2230
|
+
},
|
|
2231
|
+
"output": {
|
|
2232
|
+
"char": "o",
|
|
2233
|
+
"description": "Output file path (default: auto-generated from metadata)",
|
|
2234
|
+
"name": "output",
|
|
2235
|
+
"hasDynamicHelp": false,
|
|
2236
|
+
"helpValue": "<path>",
|
|
2237
|
+
"multiple": false,
|
|
2238
|
+
"type": "option"
|
|
2239
|
+
},
|
|
2240
|
+
"raw": {
|
|
2241
|
+
"description": "Save encrypted payload without decrypting (remote attachments only)",
|
|
2242
|
+
"name": "raw",
|
|
2243
|
+
"allowNo": false,
|
|
2244
|
+
"type": "boolean"
|
|
2245
|
+
},
|
|
2246
|
+
"sync": {
|
|
2247
|
+
"description": "Sync conversation from network before downloading",
|
|
2248
|
+
"name": "sync",
|
|
2249
|
+
"allowNo": false,
|
|
2250
|
+
"type": "boolean"
|
|
2133
2251
|
}
|
|
2134
2252
|
},
|
|
2135
2253
|
"hasDynamicHelp": false,
|
|
2136
2254
|
"hiddenAliases": [],
|
|
2137
|
-
"id": "conversation:
|
|
2255
|
+
"id": "conversation:download-attachment",
|
|
2138
2256
|
"pluginAlias": "@xmtp/convos-cli",
|
|
2139
2257
|
"pluginName": "@xmtp/convos-cli",
|
|
2140
2258
|
"pluginType": "core",
|
|
@@ -2183,10 +2301,10 @@
|
|
|
2183
2301
|
"dist",
|
|
2184
2302
|
"commands",
|
|
2185
2303
|
"conversation",
|
|
2186
|
-
"
|
|
2304
|
+
"download-attachment.js"
|
|
2187
2305
|
]
|
|
2188
2306
|
},
|
|
2189
|
-
"conversation:
|
|
2307
|
+
"conversation:explode": {
|
|
2190
2308
|
"aliases": [],
|
|
2191
2309
|
"args": {
|
|
2192
2310
|
"id": {
|
|
@@ -2195,7 +2313,17 @@
|
|
|
2195
2313
|
"required": true
|
|
2196
2314
|
}
|
|
2197
2315
|
},
|
|
2198
|
-
"description": "Remove members from
|
|
2316
|
+
"description": "Explode (permanently destroy) a conversation.\n\nSends an ExplodeSettings message to notify all members, updates the\ngroup metadata with the expiration timestamp, removes all members,\nthen deletes the local identity including wallet key, database\nencryption key, and XMTP database. This is irreversible.\n\nPer ADR 004: destroying the per-conversation identity destroys the\ncryptographic material needed to decrypt messages. Recovery is\nimpossible.\n\nSteps:\n1. Send ExplodeSettings message (notifies iOS/other clients)\n2. Update group metadata with expiresAtUnix\n3. Remove all other members from the XMTP group\n4. Delete the local identity (private keys + database)\n\nOnly the conversation creator (super admin) should explode.",
|
|
2317
|
+
"examples": [
|
|
2318
|
+
{
|
|
2319
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --force",
|
|
2320
|
+
"description": "Explode a conversation immediately"
|
|
2321
|
+
},
|
|
2322
|
+
{
|
|
2323
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --scheduled \"2025-03-01T00:00:00Z\"",
|
|
2324
|
+
"description": "Schedule a conversation to explode at a specific time"
|
|
2325
|
+
}
|
|
2326
|
+
],
|
|
2199
2327
|
"flags": {
|
|
2200
2328
|
"env-file": {
|
|
2201
2329
|
"description": "Path to .env file",
|
|
@@ -2265,15 +2393,30 @@
|
|
|
2265
2393
|
"helpValue": "<version>",
|
|
2266
2394
|
"multiple": false,
|
|
2267
2395
|
"type": "option"
|
|
2396
|
+
},
|
|
2397
|
+
"force": {
|
|
2398
|
+
"char": "f",
|
|
2399
|
+
"description": "Skip confirmation prompt",
|
|
2400
|
+
"name": "force",
|
|
2401
|
+
"allowNo": false,
|
|
2402
|
+
"type": "boolean"
|
|
2403
|
+
},
|
|
2404
|
+
"scheduled": {
|
|
2405
|
+
"description": "Schedule explosion for a future date (ISO8601). If omitted, explodes immediately.",
|
|
2406
|
+
"name": "scheduled",
|
|
2407
|
+
"required": false,
|
|
2408
|
+
"hasDynamicHelp": false,
|
|
2409
|
+
"multiple": false,
|
|
2410
|
+
"type": "option"
|
|
2268
2411
|
}
|
|
2269
2412
|
},
|
|
2270
2413
|
"hasDynamicHelp": false,
|
|
2271
2414
|
"hiddenAliases": [],
|
|
2272
|
-
"id": "conversation:
|
|
2415
|
+
"id": "conversation:explode",
|
|
2273
2416
|
"pluginAlias": "@xmtp/convos-cli",
|
|
2274
2417
|
"pluginName": "@xmtp/convos-cli",
|
|
2275
2418
|
"pluginType": "core",
|
|
2276
|
-
"strict":
|
|
2419
|
+
"strict": true,
|
|
2277
2420
|
"enableJsonFlag": false,
|
|
2278
2421
|
"commonFlags": {
|
|
2279
2422
|
"env-file": {
|
|
@@ -2318,36 +2461,23 @@
|
|
|
2318
2461
|
"dist",
|
|
2319
2462
|
"commands",
|
|
2320
2463
|
"conversation",
|
|
2321
|
-
"
|
|
2464
|
+
"explode.js"
|
|
2322
2465
|
]
|
|
2323
2466
|
},
|
|
2324
|
-
"conversation:
|
|
2467
|
+
"conversation:info": {
|
|
2325
2468
|
"aliases": [],
|
|
2326
2469
|
"args": {
|
|
2327
2470
|
"id": {
|
|
2328
2471
|
"description": "The conversation ID",
|
|
2329
2472
|
"name": "id",
|
|
2330
2473
|
"required": true
|
|
2331
|
-
},
|
|
2332
|
-
"file": {
|
|
2333
|
-
"description": "Path to the file to send",
|
|
2334
|
-
"name": "file",
|
|
2335
|
-
"required": true
|
|
2336
2474
|
}
|
|
2337
2475
|
},
|
|
2338
|
-
"description": "
|
|
2476
|
+
"description": "Get detailed information about a conversation.\n\nResolves the per-conversation identity and shows full details\nincluding members, permissions, metadata, and identity info.",
|
|
2339
2477
|
"examples": [
|
|
2340
2478
|
{
|
|
2341
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>
|
|
2342
|
-
"description": "
|
|
2343
|
-
},
|
|
2344
|
-
{
|
|
2345
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> ./photo.jpg --remote",
|
|
2346
|
-
"description": "Force remote upload even for small files"
|
|
2347
|
-
},
|
|
2348
|
-
{
|
|
2349
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> ./photo.jpg --encrypt",
|
|
2350
|
-
"description": "Encrypt and output decryption keys (for manual upload)"
|
|
2479
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
2480
|
+
"description": "Get conversation details"
|
|
2351
2481
|
}
|
|
2352
2482
|
],
|
|
2353
2483
|
"flags": {
|
|
@@ -2419,66 +2549,11 @@
|
|
|
2419
2549
|
"helpValue": "<version>",
|
|
2420
2550
|
"multiple": false,
|
|
2421
2551
|
"type": "option"
|
|
2422
|
-
},
|
|
2423
|
-
"mime-type": {
|
|
2424
|
-
"description": "Override the auto-detected MIME type",
|
|
2425
|
-
"name": "mime-type",
|
|
2426
|
-
"hasDynamicHelp": false,
|
|
2427
|
-
"helpValue": "<type>",
|
|
2428
|
-
"multiple": false,
|
|
2429
|
-
"type": "option"
|
|
2430
|
-
},
|
|
2431
|
-
"encrypt": {
|
|
2432
|
-
"description": "Encrypt the attachment and output decryption keys instead of sending. Upload the payload yourself, then use 'send-remote-attachment' to send.",
|
|
2433
|
-
"name": "encrypt",
|
|
2434
|
-
"allowNo": false,
|
|
2435
|
-
"type": "boolean"
|
|
2436
|
-
},
|
|
2437
|
-
"encrypted-output": {
|
|
2438
|
-
"dependsOn": [
|
|
2439
|
-
"encrypt"
|
|
2440
|
-
],
|
|
2441
|
-
"description": "When using --encrypt, write encrypted payload to this path (default: <file>.encrypted)",
|
|
2442
|
-
"name": "encrypted-output",
|
|
2443
|
-
"hasDynamicHelp": false,
|
|
2444
|
-
"helpValue": "<path>",
|
|
2445
|
-
"multiple": false,
|
|
2446
|
-
"type": "option"
|
|
2447
|
-
},
|
|
2448
|
-
"upload-provider": {
|
|
2449
|
-
"description": "Upload provider for remote attachments",
|
|
2450
|
-
"name": "upload-provider",
|
|
2451
|
-
"hasDynamicHelp": false,
|
|
2452
|
-
"helpValue": "<provider>",
|
|
2453
|
-
"multiple": false,
|
|
2454
|
-
"type": "option"
|
|
2455
|
-
},
|
|
2456
|
-
"upload-provider-token": {
|
|
2457
|
-
"description": "Authentication token for the upload provider",
|
|
2458
|
-
"name": "upload-provider-token",
|
|
2459
|
-
"hasDynamicHelp": false,
|
|
2460
|
-
"helpValue": "<token>",
|
|
2461
|
-
"multiple": false,
|
|
2462
|
-
"type": "option"
|
|
2463
|
-
},
|
|
2464
|
-
"upload-provider-gateway": {
|
|
2465
|
-
"description": "Custom gateway URL for the upload provider",
|
|
2466
|
-
"name": "upload-provider-gateway",
|
|
2467
|
-
"hasDynamicHelp": false,
|
|
2468
|
-
"helpValue": "<url>",
|
|
2469
|
-
"multiple": false,
|
|
2470
|
-
"type": "option"
|
|
2471
|
-
},
|
|
2472
|
-
"remote": {
|
|
2473
|
-
"description": "Force sending as a remote attachment (encrypt + upload), even for small files",
|
|
2474
|
-
"name": "remote",
|
|
2475
|
-
"allowNo": false,
|
|
2476
|
-
"type": "boolean"
|
|
2477
2552
|
}
|
|
2478
2553
|
},
|
|
2479
2554
|
"hasDynamicHelp": false,
|
|
2480
2555
|
"hiddenAliases": [],
|
|
2481
|
-
"id": "conversation:
|
|
2556
|
+
"id": "conversation:info",
|
|
2482
2557
|
"pluginAlias": "@xmtp/convos-cli",
|
|
2483
2558
|
"pluginName": "@xmtp/convos-cli",
|
|
2484
2559
|
"pluginType": "core",
|
|
@@ -2527,186 +2602,35 @@
|
|
|
2527
2602
|
"dist",
|
|
2528
2603
|
"commands",
|
|
2529
2604
|
"conversation",
|
|
2530
|
-
"
|
|
2605
|
+
"info.js"
|
|
2531
2606
|
]
|
|
2532
2607
|
},
|
|
2533
|
-
"conversation:
|
|
2608
|
+
"conversation:invite": {
|
|
2534
2609
|
"aliases": [],
|
|
2535
2610
|
"args": {
|
|
2536
2611
|
"id": {
|
|
2537
2612
|
"description": "The conversation ID",
|
|
2538
2613
|
"name": "id",
|
|
2539
2614
|
"required": true
|
|
2540
|
-
},
|
|
2541
|
-
"message-id": {
|
|
2542
|
-
"description": "The message ID",
|
|
2543
|
-
"name": "message-id",
|
|
2544
|
-
"required": true
|
|
2545
|
-
},
|
|
2546
|
-
"action": {
|
|
2547
|
-
"description": "add or remove",
|
|
2548
|
-
"name": "action",
|
|
2549
|
-
"options": [
|
|
2550
|
-
"add",
|
|
2551
|
-
"remove"
|
|
2552
|
-
],
|
|
2553
|
-
"required": true
|
|
2554
|
-
},
|
|
2555
|
-
"emoji": {
|
|
2556
|
-
"description": "The reaction emoji",
|
|
2557
|
-
"name": "emoji",
|
|
2558
|
-
"required": true
|
|
2559
2615
|
}
|
|
2560
2616
|
},
|
|
2561
|
-
"description": "
|
|
2562
|
-
"
|
|
2563
|
-
|
|
2564
|
-
"
|
|
2565
|
-
"
|
|
2566
|
-
"hasDynamicHelp": false,
|
|
2567
|
-
"helpValue": "<path>",
|
|
2568
|
-
"multiple": false,
|
|
2569
|
-
"type": "option"
|
|
2570
|
-
},
|
|
2571
|
-
"env": {
|
|
2572
|
-
"description": "XMTP environment",
|
|
2573
|
-
"name": "env",
|
|
2574
|
-
"hasDynamicHelp": false,
|
|
2575
|
-
"multiple": false,
|
|
2576
|
-
"options": [
|
|
2577
|
-
"local",
|
|
2578
|
-
"dev",
|
|
2579
|
-
"production"
|
|
2580
|
-
],
|
|
2581
|
-
"type": "option"
|
|
2582
|
-
},
|
|
2583
|
-
"gateway-host": {
|
|
2584
|
-
"description": "Custom gateway URL",
|
|
2585
|
-
"name": "gateway-host",
|
|
2586
|
-
"hasDynamicHelp": false,
|
|
2587
|
-
"helpValue": "<url>",
|
|
2588
|
-
"multiple": false,
|
|
2589
|
-
"type": "option"
|
|
2590
|
-
},
|
|
2591
|
-
"json": {
|
|
2592
|
-
"description": "Format output as JSON",
|
|
2593
|
-
"name": "json",
|
|
2594
|
-
"allowNo": false,
|
|
2595
|
-
"type": "boolean"
|
|
2596
|
-
},
|
|
2597
|
-
"verbose": {
|
|
2598
|
-
"description": "Show additional diagnostic information",
|
|
2599
|
-
"name": "verbose",
|
|
2600
|
-
"allowNo": false,
|
|
2601
|
-
"type": "boolean"
|
|
2602
|
-
},
|
|
2603
|
-
"log-level": {
|
|
2604
|
-
"description": "Logging level",
|
|
2605
|
-
"name": "log-level",
|
|
2606
|
-
"hasDynamicHelp": false,
|
|
2607
|
-
"multiple": false,
|
|
2608
|
-
"options": [
|
|
2609
|
-
"off",
|
|
2610
|
-
"error",
|
|
2611
|
-
"warn",
|
|
2612
|
-
"info",
|
|
2613
|
-
"debug",
|
|
2614
|
-
"trace"
|
|
2615
|
-
],
|
|
2616
|
-
"type": "option"
|
|
2617
|
-
},
|
|
2618
|
-
"structured-logging": {
|
|
2619
|
-
"description": "Enable structured JSON logging",
|
|
2620
|
-
"name": "structured-logging",
|
|
2621
|
-
"allowNo": false,
|
|
2622
|
-
"type": "boolean"
|
|
2623
|
-
},
|
|
2624
|
-
"app-version": {
|
|
2625
|
-
"description": "App version string",
|
|
2626
|
-
"name": "app-version",
|
|
2627
|
-
"hasDynamicHelp": false,
|
|
2628
|
-
"helpValue": "<version>",
|
|
2629
|
-
"multiple": false,
|
|
2630
|
-
"type": "option"
|
|
2631
|
-
}
|
|
2632
|
-
},
|
|
2633
|
-
"hasDynamicHelp": false,
|
|
2634
|
-
"hiddenAliases": [],
|
|
2635
|
-
"id": "conversation:send-reaction",
|
|
2636
|
-
"pluginAlias": "@xmtp/convos-cli",
|
|
2637
|
-
"pluginName": "@xmtp/convos-cli",
|
|
2638
|
-
"pluginType": "core",
|
|
2639
|
-
"strict": true,
|
|
2640
|
-
"enableJsonFlag": false,
|
|
2641
|
-
"commonFlags": {
|
|
2642
|
-
"env-file": {
|
|
2643
|
-
"description": "Path to .env file",
|
|
2644
|
-
"helpValue": "<path>",
|
|
2645
|
-
"input": [],
|
|
2646
|
-
"multiple": false,
|
|
2647
|
-
"type": "option"
|
|
2648
|
-
},
|
|
2649
|
-
"env": {
|
|
2650
|
-
"options": [
|
|
2651
|
-
"local",
|
|
2652
|
-
"dev",
|
|
2653
|
-
"production"
|
|
2654
|
-
],
|
|
2655
|
-
"description": "XMTP environment",
|
|
2656
|
-
"input": [],
|
|
2657
|
-
"multiple": false,
|
|
2658
|
-
"type": "option"
|
|
2659
|
-
},
|
|
2660
|
-
"gateway-host": {
|
|
2661
|
-
"description": "Custom gateway URL",
|
|
2662
|
-
"helpValue": "<url>",
|
|
2663
|
-
"input": [],
|
|
2664
|
-
"multiple": false,
|
|
2665
|
-
"type": "option"
|
|
2666
|
-
},
|
|
2667
|
-
"json": {
|
|
2668
|
-
"description": "Format output as JSON",
|
|
2669
|
-
"allowNo": false,
|
|
2670
|
-
"type": "boolean"
|
|
2617
|
+
"description": "Generate an invite link for a conversation.\n\nCreates a cryptographic invite slug that others can use to request\nto join this conversation (per ADR 001).\n\nThe invite contains:\n- An encrypted conversation ID (only the creator can decrypt)\n- The creator's inbox ID (for routing the join request DM)\n- An invite tag (for verification and revocation)\n- Optional metadata (name, description)\n- A secp256k1 ECDSA signature\n\nDisplays a QR code in the terminal that can be scanned by the\nConvos app. The QR code encodes the full invite URL.\n\nInvite URLs use the format:\n- Dev: dev.convos.org/v2?i=<slug>\n- Production: popup.convos.org/v2?i=<slug>",
|
|
2618
|
+
"examples": [
|
|
2619
|
+
{
|
|
2620
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
2621
|
+
"description": "Generate an invite with QR code (default)"
|
|
2671
2622
|
},
|
|
2672
|
-
|
|
2673
|
-
"
|
|
2674
|
-
"
|
|
2675
|
-
"allowNo": false,
|
|
2676
|
-
"type": "boolean"
|
|
2677
|
-
}
|
|
2678
|
-
},
|
|
2679
|
-
"isESM": true,
|
|
2680
|
-
"relativePath": [
|
|
2681
|
-
"dist",
|
|
2682
|
-
"commands",
|
|
2683
|
-
"conversation",
|
|
2684
|
-
"send-reaction.js"
|
|
2685
|
-
]
|
|
2686
|
-
},
|
|
2687
|
-
"conversation:send-remote-attachment": {
|
|
2688
|
-
"aliases": [],
|
|
2689
|
-
"args": {
|
|
2690
|
-
"id": {
|
|
2691
|
-
"description": "The conversation ID",
|
|
2692
|
-
"name": "id",
|
|
2693
|
-
"required": true
|
|
2623
|
+
{
|
|
2624
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --no-qr",
|
|
2625
|
+
"description": "Generate an invite without QR code"
|
|
2694
2626
|
},
|
|
2695
|
-
"url": {
|
|
2696
|
-
"description": "URL where the encrypted file is hosted",
|
|
2697
|
-
"name": "url",
|
|
2698
|
-
"required": true
|
|
2699
|
-
}
|
|
2700
|
-
},
|
|
2701
|
-
"description": "Send a remote attachment message to a conversation.\n\nSends a reference to an encrypted file that has been uploaded to a URL.\nThe recipient downloads and decrypts the file using the provided keys.\n\nUse 'conversation send-attachment --encrypt' to encrypt a file and get\nthe required keys, then upload the encrypted payload and use this\ncommand to send the message.",
|
|
2702
|
-
"examples": [
|
|
2703
2627
|
{
|
|
2704
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>
|
|
2705
|
-
"description": "
|
|
2628
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --expires-in 3600",
|
|
2629
|
+
"description": "Generate an invite that expires in 1 hour"
|
|
2706
2630
|
},
|
|
2707
2631
|
{
|
|
2708
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>
|
|
2709
|
-
"description": "
|
|
2632
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --single-use --json",
|
|
2633
|
+
"description": "Generate a single-use invite with JSON output"
|
|
2710
2634
|
}
|
|
2711
2635
|
],
|
|
2712
2636
|
"flags": {
|
|
@@ -2779,65 +2703,36 @@
|
|
|
2779
2703
|
"multiple": false,
|
|
2780
2704
|
"type": "option"
|
|
2781
2705
|
},
|
|
2782
|
-
"
|
|
2783
|
-
"description": "
|
|
2784
|
-
"name": "
|
|
2785
|
-
"
|
|
2786
|
-
"
|
|
2787
|
-
"multiple": false,
|
|
2788
|
-
"type": "option"
|
|
2789
|
-
},
|
|
2790
|
-
"secret": {
|
|
2791
|
-
"description": "Decryption secret key (base64)",
|
|
2792
|
-
"name": "secret",
|
|
2793
|
-
"required": true,
|
|
2794
|
-
"hasDynamicHelp": false,
|
|
2795
|
-
"multiple": false,
|
|
2796
|
-
"type": "option"
|
|
2797
|
-
},
|
|
2798
|
-
"salt": {
|
|
2799
|
-
"description": "Encryption salt (base64)",
|
|
2800
|
-
"name": "salt",
|
|
2801
|
-
"required": true,
|
|
2802
|
-
"hasDynamicHelp": false,
|
|
2803
|
-
"multiple": false,
|
|
2804
|
-
"type": "option"
|
|
2805
|
-
},
|
|
2806
|
-
"nonce": {
|
|
2807
|
-
"description": "Encryption nonce (base64)",
|
|
2808
|
-
"name": "nonce",
|
|
2809
|
-
"required": true,
|
|
2810
|
-
"hasDynamicHelp": false,
|
|
2811
|
-
"multiple": false,
|
|
2812
|
-
"type": "option"
|
|
2706
|
+
"qr": {
|
|
2707
|
+
"description": "Display a QR code in the terminal",
|
|
2708
|
+
"name": "qr",
|
|
2709
|
+
"allowNo": true,
|
|
2710
|
+
"type": "boolean"
|
|
2813
2711
|
},
|
|
2814
|
-
"
|
|
2815
|
-
"description": "
|
|
2816
|
-
"name": "
|
|
2817
|
-
"default": "https",
|
|
2712
|
+
"expires-in": {
|
|
2713
|
+
"description": "Invite expires in N seconds from now",
|
|
2714
|
+
"name": "expires-in",
|
|
2818
2715
|
"hasDynamicHelp": false,
|
|
2716
|
+
"helpValue": "<seconds>",
|
|
2819
2717
|
"multiple": false,
|
|
2820
2718
|
"type": "option"
|
|
2821
2719
|
},
|
|
2822
|
-
"
|
|
2823
|
-
"description": "
|
|
2824
|
-
"name": "
|
|
2825
|
-
"
|
|
2826
|
-
"
|
|
2827
|
-
"multiple": false,
|
|
2828
|
-
"type": "option"
|
|
2720
|
+
"single-use": {
|
|
2721
|
+
"description": "Invite expires after first use",
|
|
2722
|
+
"name": "single-use",
|
|
2723
|
+
"allowNo": false,
|
|
2724
|
+
"type": "boolean"
|
|
2829
2725
|
},
|
|
2830
|
-
"
|
|
2831
|
-
"description": "
|
|
2832
|
-
"name": "
|
|
2833
|
-
"
|
|
2834
|
-
"
|
|
2835
|
-
"type": "option"
|
|
2726
|
+
"include-metadata": {
|
|
2727
|
+
"description": "Include conversation name/description in invite",
|
|
2728
|
+
"name": "include-metadata",
|
|
2729
|
+
"allowNo": false,
|
|
2730
|
+
"type": "boolean"
|
|
2836
2731
|
}
|
|
2837
2732
|
},
|
|
2838
2733
|
"hasDynamicHelp": false,
|
|
2839
2734
|
"hiddenAliases": [],
|
|
2840
|
-
"id": "conversation:
|
|
2735
|
+
"id": "conversation:invite",
|
|
2841
2736
|
"pluginAlias": "@xmtp/convos-cli",
|
|
2842
2737
|
"pluginName": "@xmtp/convos-cli",
|
|
2843
2738
|
"pluginType": "core",
|
|
@@ -2886,36 +2781,27 @@
|
|
|
2886
2781
|
"dist",
|
|
2887
2782
|
"commands",
|
|
2888
2783
|
"conversation",
|
|
2889
|
-
"
|
|
2784
|
+
"invite.js"
|
|
2890
2785
|
]
|
|
2891
2786
|
},
|
|
2892
|
-
"conversation:
|
|
2787
|
+
"conversation:lock": {
|
|
2893
2788
|
"aliases": [],
|
|
2894
2789
|
"args": {
|
|
2895
2790
|
"id": {
|
|
2896
2791
|
"description": "The conversation ID",
|
|
2897
2792
|
"name": "id",
|
|
2898
2793
|
"required": true
|
|
2899
|
-
},
|
|
2900
|
-
"message-id": {
|
|
2901
|
-
"description": "The message ID to reply to",
|
|
2902
|
-
"name": "message-id",
|
|
2903
|
-
"required": true
|
|
2904
|
-
},
|
|
2905
|
-
"text": {
|
|
2906
|
-
"description": "The reply text",
|
|
2907
|
-
"name": "text"
|
|
2908
2794
|
}
|
|
2909
2795
|
},
|
|
2910
|
-
"description": "
|
|
2796
|
+
"description": "Lock or unlock a conversation.\n\nLocking prevents new members from joining (per ADR 006) by:\n1. Rotating the invite tag (cryptographically invalidates all existing invites)\n2. Setting the XMTP addMember permission to 'deny'\n\nUnlocking restores the ability to add members. Previously shared\ninvites remain invalid — generate new ones after unlocking.\n\nOnly super admins can lock/unlock.",
|
|
2911
2797
|
"examples": [
|
|
2912
2798
|
{
|
|
2913
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>
|
|
2914
|
-
"description": "
|
|
2799
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
2800
|
+
"description": "Lock a conversation"
|
|
2915
2801
|
},
|
|
2916
2802
|
{
|
|
2917
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>
|
|
2918
|
-
"description": "
|
|
2803
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --unlock",
|
|
2804
|
+
"description": "Unlock a conversation"
|
|
2919
2805
|
}
|
|
2920
2806
|
],
|
|
2921
2807
|
"flags": {
|
|
@@ -2988,57 +2874,23 @@
|
|
|
2988
2874
|
"multiple": false,
|
|
2989
2875
|
"type": "option"
|
|
2990
2876
|
},
|
|
2991
|
-
"
|
|
2992
|
-
"
|
|
2993
|
-
"
|
|
2994
|
-
"name": "file",
|
|
2995
|
-
"hasDynamicHelp": false,
|
|
2996
|
-
"helpValue": "<path>",
|
|
2997
|
-
"multiple": false,
|
|
2998
|
-
"type": "option"
|
|
2999
|
-
},
|
|
3000
|
-
"mime-type": {
|
|
3001
|
-
"description": "Override the auto-detected MIME type (with --file)",
|
|
3002
|
-
"name": "mime-type",
|
|
3003
|
-
"hasDynamicHelp": false,
|
|
3004
|
-
"helpValue": "<type>",
|
|
3005
|
-
"multiple": false,
|
|
3006
|
-
"type": "option"
|
|
3007
|
-
},
|
|
3008
|
-
"remote": {
|
|
3009
|
-
"description": "Force sending file as a remote attachment, even for small files",
|
|
3010
|
-
"name": "remote",
|
|
2877
|
+
"unlock": {
|
|
2878
|
+
"description": "Unlock instead of locking",
|
|
2879
|
+
"name": "unlock",
|
|
3011
2880
|
"allowNo": false,
|
|
3012
2881
|
"type": "boolean"
|
|
3013
2882
|
},
|
|
3014
|
-
"
|
|
3015
|
-
"
|
|
3016
|
-
"
|
|
3017
|
-
"
|
|
3018
|
-
"
|
|
3019
|
-
"
|
|
3020
|
-
"type": "option"
|
|
3021
|
-
},
|
|
3022
|
-
"upload-provider-token": {
|
|
3023
|
-
"description": "Authentication token for the upload provider",
|
|
3024
|
-
"name": "upload-provider-token",
|
|
3025
|
-
"hasDynamicHelp": false,
|
|
3026
|
-
"helpValue": "<token>",
|
|
3027
|
-
"multiple": false,
|
|
3028
|
-
"type": "option"
|
|
3029
|
-
},
|
|
3030
|
-
"upload-provider-gateway": {
|
|
3031
|
-
"description": "Custom gateway URL for the upload provider",
|
|
3032
|
-
"name": "upload-provider-gateway",
|
|
3033
|
-
"hasDynamicHelp": false,
|
|
3034
|
-
"helpValue": "<url>",
|
|
3035
|
-
"multiple": false,
|
|
3036
|
-
"type": "option"
|
|
2883
|
+
"force": {
|
|
2884
|
+
"char": "f",
|
|
2885
|
+
"description": "Skip confirmation prompt",
|
|
2886
|
+
"name": "force",
|
|
2887
|
+
"allowNo": false,
|
|
2888
|
+
"type": "boolean"
|
|
3037
2889
|
}
|
|
3038
2890
|
},
|
|
3039
2891
|
"hasDynamicHelp": false,
|
|
3040
2892
|
"hiddenAliases": [],
|
|
3041
|
-
"id": "conversation:
|
|
2893
|
+
"id": "conversation:lock",
|
|
3042
2894
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3043
2895
|
"pluginName": "@xmtp/convos-cli",
|
|
3044
2896
|
"pluginType": "core",
|
|
@@ -3087,10 +2939,10 @@
|
|
|
3087
2939
|
"dist",
|
|
3088
2940
|
"commands",
|
|
3089
2941
|
"conversation",
|
|
3090
|
-
"
|
|
2942
|
+
"lock.js"
|
|
3091
2943
|
]
|
|
3092
2944
|
},
|
|
3093
|
-
"conversation:
|
|
2945
|
+
"conversation:members": {
|
|
3094
2946
|
"aliases": [],
|
|
3095
2947
|
"args": {
|
|
3096
2948
|
"id": {
|
|
@@ -3099,15 +2951,11 @@
|
|
|
3099
2951
|
"required": true
|
|
3100
2952
|
}
|
|
3101
2953
|
},
|
|
3102
|
-
"description": "
|
|
2954
|
+
"description": "List members of a conversation.\n\nShows all members with their inbox IDs, identifiers, and permission levels.",
|
|
3103
2955
|
"examples": [
|
|
3104
2956
|
{
|
|
3105
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id>
|
|
3106
|
-
"description": "
|
|
3107
|
-
},
|
|
3108
|
-
{
|
|
3109
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --text \"Hello!\"",
|
|
3110
|
-
"description": "Send using --text flag (avoids shell quoting issues)"
|
|
2957
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
2958
|
+
"description": "List members"
|
|
3111
2959
|
}
|
|
3112
2960
|
],
|
|
3113
2961
|
"flags": {
|
|
@@ -3179,24 +3027,15 @@
|
|
|
3179
3027
|
"helpValue": "<version>",
|
|
3180
3028
|
"multiple": false,
|
|
3181
3029
|
"type": "option"
|
|
3182
|
-
},
|
|
3183
|
-
"text": {
|
|
3184
|
-
"char": "t",
|
|
3185
|
-
"description": "The text message to send",
|
|
3186
|
-
"name": "text",
|
|
3187
|
-
"hasDynamicHelp": false,
|
|
3188
|
-
"helpValue": "<message>",
|
|
3189
|
-
"multiple": false,
|
|
3190
|
-
"type": "option"
|
|
3191
3030
|
}
|
|
3192
3031
|
},
|
|
3193
3032
|
"hasDynamicHelp": false,
|
|
3194
3033
|
"hiddenAliases": [],
|
|
3195
|
-
"id": "conversation:
|
|
3034
|
+
"id": "conversation:members",
|
|
3196
3035
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3197
3036
|
"pluginName": "@xmtp/convos-cli",
|
|
3198
3037
|
"pluginType": "core",
|
|
3199
|
-
"strict":
|
|
3038
|
+
"strict": true,
|
|
3200
3039
|
"enableJsonFlag": false,
|
|
3201
3040
|
"commonFlags": {
|
|
3202
3041
|
"env-file": {
|
|
@@ -3241,10 +3080,10 @@
|
|
|
3241
3080
|
"dist",
|
|
3242
3081
|
"commands",
|
|
3243
3082
|
"conversation",
|
|
3244
|
-
"
|
|
3083
|
+
"members.js"
|
|
3245
3084
|
]
|
|
3246
3085
|
},
|
|
3247
|
-
"conversation:
|
|
3086
|
+
"conversation:messages": {
|
|
3248
3087
|
"aliases": [],
|
|
3249
3088
|
"args": {
|
|
3250
3089
|
"id": {
|
|
@@ -3253,15 +3092,15 @@
|
|
|
3253
3092
|
"required": true
|
|
3254
3093
|
}
|
|
3255
3094
|
},
|
|
3256
|
-
"description": "
|
|
3095
|
+
"description": "List messages in a conversation.\n\nRetrieves messages using the per-conversation identity.\nSupports filtering, pagination, and sorting.",
|
|
3257
3096
|
"examples": [
|
|
3258
3097
|
{
|
|
3259
3098
|
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
3260
|
-
"description": "
|
|
3099
|
+
"description": "List messages"
|
|
3261
3100
|
},
|
|
3262
3101
|
{
|
|
3263
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --
|
|
3264
|
-
"description": "
|
|
3102
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --sync --limit 10",
|
|
3103
|
+
"description": "Sync and show last 10 messages"
|
|
3265
3104
|
}
|
|
3266
3105
|
],
|
|
3267
3106
|
"flags": {
|
|
@@ -3334,26 +3173,125 @@
|
|
|
3334
3173
|
"multiple": false,
|
|
3335
3174
|
"type": "option"
|
|
3336
3175
|
},
|
|
3337
|
-
"
|
|
3338
|
-
"description": "
|
|
3339
|
-
"name": "
|
|
3176
|
+
"sync": {
|
|
3177
|
+
"description": "Sync from network before listing",
|
|
3178
|
+
"name": "sync",
|
|
3179
|
+
"allowNo": false,
|
|
3180
|
+
"type": "boolean"
|
|
3181
|
+
},
|
|
3182
|
+
"limit": {
|
|
3183
|
+
"description": "Maximum number of messages",
|
|
3184
|
+
"name": "limit",
|
|
3340
3185
|
"hasDynamicHelp": false,
|
|
3341
|
-
"helpValue": "<
|
|
3186
|
+
"helpValue": "<number>",
|
|
3342
3187
|
"multiple": false,
|
|
3343
3188
|
"type": "option"
|
|
3344
3189
|
},
|
|
3345
|
-
"
|
|
3346
|
-
"description": "
|
|
3347
|
-
"name": "
|
|
3190
|
+
"direction": {
|
|
3191
|
+
"description": "Sort direction",
|
|
3192
|
+
"name": "direction",
|
|
3193
|
+
"default": "descending",
|
|
3194
|
+
"hasDynamicHelp": false,
|
|
3195
|
+
"multiple": false,
|
|
3196
|
+
"options": [
|
|
3197
|
+
"ascending",
|
|
3198
|
+
"descending"
|
|
3199
|
+
],
|
|
3200
|
+
"type": "option"
|
|
3201
|
+
},
|
|
3202
|
+
"sent-before": {
|
|
3203
|
+
"description": "Only messages sent before this timestamp (nanoseconds)",
|
|
3204
|
+
"name": "sent-before",
|
|
3205
|
+
"hasDynamicHelp": false,
|
|
3206
|
+
"helpValue": "<ns>",
|
|
3207
|
+
"multiple": false,
|
|
3208
|
+
"type": "option"
|
|
3209
|
+
},
|
|
3210
|
+
"sent-after": {
|
|
3211
|
+
"description": "Only messages sent after this timestamp (nanoseconds)",
|
|
3212
|
+
"name": "sent-after",
|
|
3213
|
+
"hasDynamicHelp": false,
|
|
3214
|
+
"helpValue": "<ns>",
|
|
3215
|
+
"multiple": false,
|
|
3216
|
+
"type": "option"
|
|
3217
|
+
},
|
|
3218
|
+
"delivery-status": {
|
|
3219
|
+
"description": "Filter by delivery status",
|
|
3220
|
+
"name": "delivery-status",
|
|
3221
|
+
"hasDynamicHelp": false,
|
|
3222
|
+
"multiple": false,
|
|
3223
|
+
"options": [
|
|
3224
|
+
"unpublished",
|
|
3225
|
+
"published",
|
|
3226
|
+
"failed"
|
|
3227
|
+
],
|
|
3228
|
+
"type": "option"
|
|
3229
|
+
},
|
|
3230
|
+
"kind": {
|
|
3231
|
+
"description": "Filter by message kind",
|
|
3232
|
+
"name": "kind",
|
|
3348
3233
|
"hasDynamicHelp": false,
|
|
3349
|
-
"helpValue": "<number>",
|
|
3350
3234
|
"multiple": false,
|
|
3235
|
+
"options": [
|
|
3236
|
+
"application",
|
|
3237
|
+
"membership-change"
|
|
3238
|
+
],
|
|
3239
|
+
"type": "option"
|
|
3240
|
+
},
|
|
3241
|
+
"content-type": {
|
|
3242
|
+
"description": "Filter by content type (repeatable)",
|
|
3243
|
+
"name": "content-type",
|
|
3244
|
+
"hasDynamicHelp": false,
|
|
3245
|
+
"multiple": true,
|
|
3246
|
+
"options": [
|
|
3247
|
+
"actions",
|
|
3248
|
+
"attachment",
|
|
3249
|
+
"custom",
|
|
3250
|
+
"group-membership-change",
|
|
3251
|
+
"group-updated",
|
|
3252
|
+
"intent",
|
|
3253
|
+
"leave-request",
|
|
3254
|
+
"markdown",
|
|
3255
|
+
"multi-remote-attachment",
|
|
3256
|
+
"reaction",
|
|
3257
|
+
"read-receipt",
|
|
3258
|
+
"remote-attachment",
|
|
3259
|
+
"reply",
|
|
3260
|
+
"text",
|
|
3261
|
+
"transaction-reference",
|
|
3262
|
+
"wallet-send-calls"
|
|
3263
|
+
],
|
|
3264
|
+
"type": "option"
|
|
3265
|
+
},
|
|
3266
|
+
"exclude-content-type": {
|
|
3267
|
+
"description": "Exclude content type (repeatable)",
|
|
3268
|
+
"name": "exclude-content-type",
|
|
3269
|
+
"hasDynamicHelp": false,
|
|
3270
|
+
"multiple": true,
|
|
3271
|
+
"options": [
|
|
3272
|
+
"actions",
|
|
3273
|
+
"attachment",
|
|
3274
|
+
"custom",
|
|
3275
|
+
"group-membership-change",
|
|
3276
|
+
"group-updated",
|
|
3277
|
+
"intent",
|
|
3278
|
+
"leave-request",
|
|
3279
|
+
"markdown",
|
|
3280
|
+
"multi-remote-attachment",
|
|
3281
|
+
"reaction",
|
|
3282
|
+
"read-receipt",
|
|
3283
|
+
"remote-attachment",
|
|
3284
|
+
"reply",
|
|
3285
|
+
"text",
|
|
3286
|
+
"transaction-reference",
|
|
3287
|
+
"wallet-send-calls"
|
|
3288
|
+
],
|
|
3351
3289
|
"type": "option"
|
|
3352
3290
|
}
|
|
3353
3291
|
},
|
|
3354
3292
|
"hasDynamicHelp": false,
|
|
3355
3293
|
"hiddenAliases": [],
|
|
3356
|
-
"id": "conversation:
|
|
3294
|
+
"id": "conversation:messages",
|
|
3357
3295
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3358
3296
|
"pluginName": "@xmtp/convos-cli",
|
|
3359
3297
|
"pluginType": "core",
|
|
@@ -3402,10 +3340,10 @@
|
|
|
3402
3340
|
"dist",
|
|
3403
3341
|
"commands",
|
|
3404
3342
|
"conversation",
|
|
3405
|
-
"
|
|
3343
|
+
"messages.js"
|
|
3406
3344
|
]
|
|
3407
3345
|
},
|
|
3408
|
-
"conversation:
|
|
3346
|
+
"conversation:permissions": {
|
|
3409
3347
|
"aliases": [],
|
|
3410
3348
|
"args": {
|
|
3411
3349
|
"id": {
|
|
@@ -3414,7 +3352,7 @@
|
|
|
3414
3352
|
"required": true
|
|
3415
3353
|
}
|
|
3416
3354
|
},
|
|
3417
|
-
"description": "
|
|
3355
|
+
"description": "View permissions for a conversation.",
|
|
3418
3356
|
"flags": {
|
|
3419
3357
|
"env-file": {
|
|
3420
3358
|
"description": "Path to .env file",
|
|
@@ -3488,7 +3426,7 @@
|
|
|
3488
3426
|
},
|
|
3489
3427
|
"hasDynamicHelp": false,
|
|
3490
3428
|
"hiddenAliases": [],
|
|
3491
|
-
"id": "conversation:
|
|
3429
|
+
"id": "conversation:permissions",
|
|
3492
3430
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3493
3431
|
"pluginName": "@xmtp/convos-cli",
|
|
3494
3432
|
"pluginType": "core",
|
|
@@ -3537,29 +3475,29 @@
|
|
|
3537
3475
|
"dist",
|
|
3538
3476
|
"commands",
|
|
3539
3477
|
"conversation",
|
|
3540
|
-
"
|
|
3478
|
+
"permissions.js"
|
|
3541
3479
|
]
|
|
3542
3480
|
},
|
|
3543
|
-
"conversation:
|
|
3544
|
-
"aliases": [],
|
|
3545
|
-
"args": {
|
|
3546
|
-
"id": {
|
|
3547
|
-
"description": "The conversation ID",
|
|
3548
|
-
"name": "id",
|
|
3549
|
-
"required": true
|
|
3550
|
-
},
|
|
3551
|
-
"state": {
|
|
3552
|
-
"description": "The new consent state",
|
|
3553
|
-
"name": "state",
|
|
3554
|
-
"options": [
|
|
3555
|
-
"allowed",
|
|
3556
|
-
"denied",
|
|
3557
|
-
"unknown"
|
|
3558
|
-
],
|
|
3481
|
+
"conversation:profiles": {
|
|
3482
|
+
"aliases": [],
|
|
3483
|
+
"args": {
|
|
3484
|
+
"id": {
|
|
3485
|
+
"description": "The conversation ID",
|
|
3486
|
+
"name": "id",
|
|
3559
3487
|
"required": true
|
|
3560
3488
|
}
|
|
3561
3489
|
},
|
|
3562
|
-
"description": "
|
|
3490
|
+
"description": "List member profiles in a conversation.\n\nShows display names and avatar URLs for all members who have set\na profile in this conversation. Profiles are stored in the group's\nmetadata and are visible to all members (ADR 005).\n\nMembers without a profile appear as anonymous with just their inbox ID.",
|
|
3491
|
+
"examples": [
|
|
3492
|
+
{
|
|
3493
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
3494
|
+
"description": "List all member profiles"
|
|
3495
|
+
},
|
|
3496
|
+
{
|
|
3497
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --json",
|
|
3498
|
+
"description": "List profiles as JSON"
|
|
3499
|
+
}
|
|
3500
|
+
],
|
|
3563
3501
|
"flags": {
|
|
3564
3502
|
"env-file": {
|
|
3565
3503
|
"description": "Path to .env file",
|
|
@@ -3633,7 +3571,7 @@
|
|
|
3633
3571
|
},
|
|
3634
3572
|
"hasDynamicHelp": false,
|
|
3635
3573
|
"hiddenAliases": [],
|
|
3636
|
-
"id": "conversation:
|
|
3574
|
+
"id": "conversation:profiles",
|
|
3637
3575
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3638
3576
|
"pluginName": "@xmtp/convos-cli",
|
|
3639
3577
|
"pluginType": "core",
|
|
@@ -3682,24 +3620,19 @@
|
|
|
3682
3620
|
"dist",
|
|
3683
3621
|
"commands",
|
|
3684
3622
|
"conversation",
|
|
3685
|
-
"
|
|
3623
|
+
"profiles.js"
|
|
3686
3624
|
]
|
|
3687
3625
|
},
|
|
3688
|
-
"conversation:
|
|
3626
|
+
"conversation:remove-members": {
|
|
3689
3627
|
"aliases": [],
|
|
3690
3628
|
"args": {
|
|
3691
3629
|
"id": {
|
|
3692
3630
|
"description": "The conversation ID",
|
|
3693
3631
|
"name": "id",
|
|
3694
3632
|
"required": true
|
|
3695
|
-
},
|
|
3696
|
-
"description": {
|
|
3697
|
-
"description": "The new description",
|
|
3698
|
-
"name": "description",
|
|
3699
|
-
"required": true
|
|
3700
3633
|
}
|
|
3701
3634
|
},
|
|
3702
|
-
"description": "
|
|
3635
|
+
"description": "Remove members from a conversation. Requires super admin permissions.",
|
|
3703
3636
|
"flags": {
|
|
3704
3637
|
"env-file": {
|
|
3705
3638
|
"description": "Path to .env file",
|
|
@@ -3773,11 +3706,11 @@
|
|
|
3773
3706
|
},
|
|
3774
3707
|
"hasDynamicHelp": false,
|
|
3775
3708
|
"hiddenAliases": [],
|
|
3776
|
-
"id": "conversation:
|
|
3709
|
+
"id": "conversation:remove-members",
|
|
3777
3710
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3778
3711
|
"pluginName": "@xmtp/convos-cli",
|
|
3779
3712
|
"pluginType": "core",
|
|
3780
|
-
"strict":
|
|
3713
|
+
"strict": false,
|
|
3781
3714
|
"enableJsonFlag": false,
|
|
3782
3715
|
"commonFlags": {
|
|
3783
3716
|
"env-file": {
|
|
@@ -3822,10 +3755,10 @@
|
|
|
3822
3755
|
"dist",
|
|
3823
3756
|
"commands",
|
|
3824
3757
|
"conversation",
|
|
3825
|
-
"
|
|
3758
|
+
"remove-members.js"
|
|
3826
3759
|
]
|
|
3827
3760
|
},
|
|
3828
|
-
"conversation:
|
|
3761
|
+
"conversation:send-attachment": {
|
|
3829
3762
|
"aliases": [],
|
|
3830
3763
|
"args": {
|
|
3831
3764
|
"id": {
|
|
@@ -3833,13 +3766,27 @@
|
|
|
3833
3766
|
"name": "id",
|
|
3834
3767
|
"required": true
|
|
3835
3768
|
},
|
|
3836
|
-
"
|
|
3837
|
-
"description": "
|
|
3838
|
-
"name": "
|
|
3769
|
+
"file": {
|
|
3770
|
+
"description": "Path to the file to send",
|
|
3771
|
+
"name": "file",
|
|
3839
3772
|
"required": true
|
|
3840
3773
|
}
|
|
3841
3774
|
},
|
|
3842
|
-
"description": "
|
|
3775
|
+
"description": "Send a file attachment to a conversation.\n\nReads a file from disk and sends it as an attachment message. Small\nfiles (≤1MB) are sent inline; large files are automatically encrypted\nand uploaded via the configured upload provider, then sent as a remote\nattachment.\n\nTo configure an upload provider for large files, add to your .env:\n\n CONVOS_UPLOAD_PROVIDER=pinata\n CONVOS_UPLOAD_PROVIDER_TOKEN=<your-pinata-jwt>\n CONVOS_UPLOAD_PROVIDER_GATEWAY=https://your-gateway.mypinata.cloud\n\nOr pass --upload-provider and --upload-provider-token flags.\n\nThe MIME type is auto-detected from the file extension, or can be\nspecified manually with --mime-type.\n\nUse --encrypt to only encrypt the file and output decryption keys\nwithout sending (for manual upload workflows).",
|
|
3776
|
+
"examples": [
|
|
3777
|
+
{
|
|
3778
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> ./photo.jpg",
|
|
3779
|
+
"description": "Send a photo (auto-detects inline vs remote)"
|
|
3780
|
+
},
|
|
3781
|
+
{
|
|
3782
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> ./photo.jpg --remote",
|
|
3783
|
+
"description": "Force remote upload even for small files"
|
|
3784
|
+
},
|
|
3785
|
+
{
|
|
3786
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> ./photo.jpg --encrypt",
|
|
3787
|
+
"description": "Encrypt and output decryption keys (for manual upload)"
|
|
3788
|
+
}
|
|
3789
|
+
],
|
|
3843
3790
|
"flags": {
|
|
3844
3791
|
"env-file": {
|
|
3845
3792
|
"description": "Path to .env file",
|
|
@@ -3909,11 +3856,66 @@
|
|
|
3909
3856
|
"helpValue": "<version>",
|
|
3910
3857
|
"multiple": false,
|
|
3911
3858
|
"type": "option"
|
|
3859
|
+
},
|
|
3860
|
+
"mime-type": {
|
|
3861
|
+
"description": "Override the auto-detected MIME type",
|
|
3862
|
+
"name": "mime-type",
|
|
3863
|
+
"hasDynamicHelp": false,
|
|
3864
|
+
"helpValue": "<type>",
|
|
3865
|
+
"multiple": false,
|
|
3866
|
+
"type": "option"
|
|
3867
|
+
},
|
|
3868
|
+
"encrypt": {
|
|
3869
|
+
"description": "Encrypt the attachment and output decryption keys instead of sending. Upload the payload yourself, then use 'send-remote-attachment' to send.",
|
|
3870
|
+
"name": "encrypt",
|
|
3871
|
+
"allowNo": false,
|
|
3872
|
+
"type": "boolean"
|
|
3873
|
+
},
|
|
3874
|
+
"encrypted-output": {
|
|
3875
|
+
"dependsOn": [
|
|
3876
|
+
"encrypt"
|
|
3877
|
+
],
|
|
3878
|
+
"description": "When using --encrypt, write encrypted payload to this path (default: <file>.encrypted)",
|
|
3879
|
+
"name": "encrypted-output",
|
|
3880
|
+
"hasDynamicHelp": false,
|
|
3881
|
+
"helpValue": "<path>",
|
|
3882
|
+
"multiple": false,
|
|
3883
|
+
"type": "option"
|
|
3884
|
+
},
|
|
3885
|
+
"upload-provider": {
|
|
3886
|
+
"description": "Upload provider for remote attachments",
|
|
3887
|
+
"name": "upload-provider",
|
|
3888
|
+
"hasDynamicHelp": false,
|
|
3889
|
+
"helpValue": "<provider>",
|
|
3890
|
+
"multiple": false,
|
|
3891
|
+
"type": "option"
|
|
3892
|
+
},
|
|
3893
|
+
"upload-provider-token": {
|
|
3894
|
+
"description": "Authentication token for the upload provider",
|
|
3895
|
+
"name": "upload-provider-token",
|
|
3896
|
+
"hasDynamicHelp": false,
|
|
3897
|
+
"helpValue": "<token>",
|
|
3898
|
+
"multiple": false,
|
|
3899
|
+
"type": "option"
|
|
3900
|
+
},
|
|
3901
|
+
"upload-provider-gateway": {
|
|
3902
|
+
"description": "Custom gateway URL for the upload provider",
|
|
3903
|
+
"name": "upload-provider-gateway",
|
|
3904
|
+
"hasDynamicHelp": false,
|
|
3905
|
+
"helpValue": "<url>",
|
|
3906
|
+
"multiple": false,
|
|
3907
|
+
"type": "option"
|
|
3908
|
+
},
|
|
3909
|
+
"remote": {
|
|
3910
|
+
"description": "Force sending as a remote attachment (encrypt + upload), even for small files",
|
|
3911
|
+
"name": "remote",
|
|
3912
|
+
"allowNo": false,
|
|
3913
|
+
"type": "boolean"
|
|
3912
3914
|
}
|
|
3913
3915
|
},
|
|
3914
3916
|
"hasDynamicHelp": false,
|
|
3915
3917
|
"hiddenAliases": [],
|
|
3916
|
-
"id": "conversation:
|
|
3918
|
+
"id": "conversation:send-attachment",
|
|
3917
3919
|
"pluginAlias": "@xmtp/convos-cli",
|
|
3918
3920
|
"pluginName": "@xmtp/convos-cli",
|
|
3919
3921
|
"pluginType": "core",
|
|
@@ -3962,33 +3964,38 @@
|
|
|
3962
3964
|
"dist",
|
|
3963
3965
|
"commands",
|
|
3964
3966
|
"conversation",
|
|
3965
|
-
"
|
|
3967
|
+
"send-attachment.js"
|
|
3966
3968
|
]
|
|
3967
3969
|
},
|
|
3968
|
-
"conversation:
|
|
3970
|
+
"conversation:send-reaction": {
|
|
3969
3971
|
"aliases": [],
|
|
3970
3972
|
"args": {
|
|
3971
3973
|
"id": {
|
|
3972
3974
|
"description": "The conversation ID",
|
|
3973
3975
|
"name": "id",
|
|
3974
3976
|
"required": true
|
|
3975
|
-
}
|
|
3976
|
-
},
|
|
3977
|
-
"description": "Set your display name and avatar in a conversation.\n\nProfiles are stored in the group's metadata (appData) and visible\nto all members. Each conversation has independent profiles — you\ncan be a different person in each conversation (ADR 005).\n\nUpdates are synced to all members via XMTP's group metadata.\nThe profile is stored as a compressed protobuf in the group's\nappData field (max 8KB shared across all profiles and metadata).",
|
|
3978
|
-
"examples": [
|
|
3979
|
-
{
|
|
3980
|
-
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --name \"Alice\"",
|
|
3981
|
-
"description": "Set your display name"
|
|
3982
3977
|
},
|
|
3983
|
-
{
|
|
3984
|
-
"
|
|
3985
|
-
"
|
|
3978
|
+
"message-id": {
|
|
3979
|
+
"description": "The message ID",
|
|
3980
|
+
"name": "message-id",
|
|
3981
|
+
"required": true
|
|
3986
3982
|
},
|
|
3987
|
-
{
|
|
3988
|
-
"
|
|
3989
|
-
"
|
|
3983
|
+
"action": {
|
|
3984
|
+
"description": "add or remove",
|
|
3985
|
+
"name": "action",
|
|
3986
|
+
"options": [
|
|
3987
|
+
"add",
|
|
3988
|
+
"remove"
|
|
3989
|
+
],
|
|
3990
|
+
"required": true
|
|
3991
|
+
},
|
|
3992
|
+
"emoji": {
|
|
3993
|
+
"description": "The reaction emoji",
|
|
3994
|
+
"name": "emoji",
|
|
3995
|
+
"required": true
|
|
3990
3996
|
}
|
|
3991
|
-
|
|
3997
|
+
},
|
|
3998
|
+
"description": "Send a reaction to a message.",
|
|
3992
3999
|
"flags": {
|
|
3993
4000
|
"env-file": {
|
|
3994
4001
|
"description": "Path to .env file",
|
|
@@ -4058,27 +4065,11 @@
|
|
|
4058
4065
|
"helpValue": "<version>",
|
|
4059
4066
|
"multiple": false,
|
|
4060
4067
|
"type": "option"
|
|
4061
|
-
},
|
|
4062
|
-
"name": {
|
|
4063
|
-
"description": "Display name (empty string to clear)",
|
|
4064
|
-
"name": "name",
|
|
4065
|
-
"hasDynamicHelp": false,
|
|
4066
|
-
"helpValue": "<name>",
|
|
4067
|
-
"multiple": false,
|
|
4068
|
-
"type": "option"
|
|
4069
|
-
},
|
|
4070
|
-
"image": {
|
|
4071
|
-
"description": "Avatar image URL (empty string to clear)",
|
|
4072
|
-
"name": "image",
|
|
4073
|
-
"hasDynamicHelp": false,
|
|
4074
|
-
"helpValue": "<url>",
|
|
4075
|
-
"multiple": false,
|
|
4076
|
-
"type": "option"
|
|
4077
4068
|
}
|
|
4078
4069
|
},
|
|
4079
4070
|
"hasDynamicHelp": false,
|
|
4080
4071
|
"hiddenAliases": [],
|
|
4081
|
-
"id": "conversation:
|
|
4072
|
+
"id": "conversation:send-reaction",
|
|
4082
4073
|
"pluginAlias": "@xmtp/convos-cli",
|
|
4083
4074
|
"pluginName": "@xmtp/convos-cli",
|
|
4084
4075
|
"pluginType": "core",
|
|
@@ -4127,25 +4118,32 @@
|
|
|
4127
4118
|
"dist",
|
|
4128
4119
|
"commands",
|
|
4129
4120
|
"conversation",
|
|
4130
|
-
"
|
|
4121
|
+
"send-reaction.js"
|
|
4131
4122
|
]
|
|
4132
4123
|
},
|
|
4133
|
-
"
|
|
4124
|
+
"conversation:send-remote-attachment": {
|
|
4134
4125
|
"aliases": [],
|
|
4135
|
-
"args": {
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
"
|
|
4140
|
-
"description": "Create a new identity"
|
|
4126
|
+
"args": {
|
|
4127
|
+
"id": {
|
|
4128
|
+
"description": "The conversation ID",
|
|
4129
|
+
"name": "id",
|
|
4130
|
+
"required": true
|
|
4141
4131
|
},
|
|
4132
|
+
"url": {
|
|
4133
|
+
"description": "URL where the encrypted file is hosted",
|
|
4134
|
+
"name": "url",
|
|
4135
|
+
"required": true
|
|
4136
|
+
}
|
|
4137
|
+
},
|
|
4138
|
+
"description": "Send a remote attachment message to a conversation.\n\nSends a reference to an encrypted file that has been uploaded to a URL.\nThe recipient downloads and decrypts the file using the provided keys.\n\nUse 'conversation send-attachment --encrypt' to encrypt a file and get\nthe required keys, then upload the encrypted payload and use this\ncommand to send the message.",
|
|
4139
|
+
"examples": [
|
|
4142
4140
|
{
|
|
4143
|
-
"command": "<%= config.bin %> <%= command.id %> --
|
|
4144
|
-
"description": "
|
|
4141
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> https://example.com/file.enc --content-digest abc123 --secret <base64> --salt <base64> --nonce <base64> --content-length 12345",
|
|
4142
|
+
"description": "Send a remote attachment"
|
|
4145
4143
|
},
|
|
4146
4144
|
{
|
|
4147
|
-
"command": "<%= config.bin %> <%= command.id %> --
|
|
4148
|
-
"description": "
|
|
4145
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> https://example.com/photo.enc --content-digest abc123 --secret <base64> --salt <base64> --nonce <base64> --content-length 12345 --filename photo.jpg",
|
|
4146
|
+
"description": "Send with original filename"
|
|
4149
4147
|
}
|
|
4150
4148
|
],
|
|
4151
4149
|
"flags": {
|
|
@@ -4218,26 +4216,65 @@
|
|
|
4218
4216
|
"multiple": false,
|
|
4219
4217
|
"type": "option"
|
|
4220
4218
|
},
|
|
4221
|
-
"
|
|
4222
|
-
"description": "
|
|
4223
|
-
"name": "
|
|
4219
|
+
"content-digest": {
|
|
4220
|
+
"description": "SHA-256 digest of the encrypted payload (hex)",
|
|
4221
|
+
"name": "content-digest",
|
|
4222
|
+
"required": true,
|
|
4224
4223
|
"hasDynamicHelp": false,
|
|
4225
|
-
"helpValue": "<label>",
|
|
4226
4224
|
"multiple": false,
|
|
4227
4225
|
"type": "option"
|
|
4228
4226
|
},
|
|
4229
|
-
"
|
|
4230
|
-
"description": "
|
|
4231
|
-
"name": "
|
|
4227
|
+
"secret": {
|
|
4228
|
+
"description": "Decryption secret key (base64)",
|
|
4229
|
+
"name": "secret",
|
|
4230
|
+
"required": true,
|
|
4231
|
+
"hasDynamicHelp": false,
|
|
4232
|
+
"multiple": false,
|
|
4233
|
+
"type": "option"
|
|
4234
|
+
},
|
|
4235
|
+
"salt": {
|
|
4236
|
+
"description": "Encryption salt (base64)",
|
|
4237
|
+
"name": "salt",
|
|
4238
|
+
"required": true,
|
|
4239
|
+
"hasDynamicHelp": false,
|
|
4240
|
+
"multiple": false,
|
|
4241
|
+
"type": "option"
|
|
4242
|
+
},
|
|
4243
|
+
"nonce": {
|
|
4244
|
+
"description": "Encryption nonce (base64)",
|
|
4245
|
+
"name": "nonce",
|
|
4246
|
+
"required": true,
|
|
4247
|
+
"hasDynamicHelp": false,
|
|
4248
|
+
"multiple": false,
|
|
4249
|
+
"type": "option"
|
|
4250
|
+
},
|
|
4251
|
+
"scheme": {
|
|
4252
|
+
"description": "URL scheme",
|
|
4253
|
+
"name": "scheme",
|
|
4254
|
+
"default": "https",
|
|
4255
|
+
"hasDynamicHelp": false,
|
|
4256
|
+
"multiple": false,
|
|
4257
|
+
"type": "option"
|
|
4258
|
+
},
|
|
4259
|
+
"content-length": {
|
|
4260
|
+
"description": "Size of the encrypted payload in bytes",
|
|
4261
|
+
"name": "content-length",
|
|
4262
|
+
"required": true,
|
|
4263
|
+
"hasDynamicHelp": false,
|
|
4264
|
+
"multiple": false,
|
|
4265
|
+
"type": "option"
|
|
4266
|
+
},
|
|
4267
|
+
"filename": {
|
|
4268
|
+
"description": "Original filename",
|
|
4269
|
+
"name": "filename",
|
|
4232
4270
|
"hasDynamicHelp": false,
|
|
4233
|
-
"helpValue": "<name>",
|
|
4234
4271
|
"multiple": false,
|
|
4235
4272
|
"type": "option"
|
|
4236
4273
|
}
|
|
4237
4274
|
},
|
|
4238
4275
|
"hasDynamicHelp": false,
|
|
4239
4276
|
"hiddenAliases": [],
|
|
4240
|
-
"id": "
|
|
4277
|
+
"id": "conversation:send-remote-attachment",
|
|
4241
4278
|
"pluginAlias": "@xmtp/convos-cli",
|
|
4242
4279
|
"pluginName": "@xmtp/convos-cli",
|
|
4243
4280
|
"pluginType": "core",
|
|
@@ -4285,24 +4322,37 @@
|
|
|
4285
4322
|
"relativePath": [
|
|
4286
4323
|
"dist",
|
|
4287
4324
|
"commands",
|
|
4288
|
-
"
|
|
4289
|
-
"
|
|
4325
|
+
"conversation",
|
|
4326
|
+
"send-remote-attachment.js"
|
|
4290
4327
|
]
|
|
4291
4328
|
},
|
|
4292
|
-
"
|
|
4329
|
+
"conversation:send-reply": {
|
|
4293
4330
|
"aliases": [],
|
|
4294
4331
|
"args": {
|
|
4295
4332
|
"id": {
|
|
4296
|
-
"description": "The
|
|
4333
|
+
"description": "The conversation ID",
|
|
4297
4334
|
"name": "id",
|
|
4298
4335
|
"required": true
|
|
4336
|
+
},
|
|
4337
|
+
"message-id": {
|
|
4338
|
+
"description": "The message ID to reply to",
|
|
4339
|
+
"name": "message-id",
|
|
4340
|
+
"required": true
|
|
4341
|
+
},
|
|
4342
|
+
"text": {
|
|
4343
|
+
"description": "The reply text",
|
|
4344
|
+
"name": "text"
|
|
4299
4345
|
}
|
|
4300
4346
|
},
|
|
4301
|
-
"description": "
|
|
4347
|
+
"description": "Send a reply to a message.\n\nBy default, sends a text reply. Use --file to reply with a file\nattachment instead. Small files (≤1MB) are sent inline; large files\nare automatically encrypted and uploaded via the configured upload\nprovider, then sent as a remote attachment.",
|
|
4302
4348
|
"examples": [
|
|
4303
4349
|
{
|
|
4304
|
-
"command": "<%= config.bin %> <%= command.id %> <
|
|
4305
|
-
"description": "
|
|
4350
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> <message-id> \"Reply text\"",
|
|
4351
|
+
"description": "Reply with text"
|
|
4352
|
+
},
|
|
4353
|
+
{
|
|
4354
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> <message-id> --file ./photo.jpg",
|
|
4355
|
+
"description": "Reply with a photo"
|
|
4306
4356
|
}
|
|
4307
4357
|
],
|
|
4308
4358
|
"flags": {
|
|
@@ -4374,11 +4424,58 @@
|
|
|
4374
4424
|
"helpValue": "<version>",
|
|
4375
4425
|
"multiple": false,
|
|
4376
4426
|
"type": "option"
|
|
4427
|
+
},
|
|
4428
|
+
"file": {
|
|
4429
|
+
"char": "f",
|
|
4430
|
+
"description": "Path to a file to send as the reply (instead of text)",
|
|
4431
|
+
"name": "file",
|
|
4432
|
+
"hasDynamicHelp": false,
|
|
4433
|
+
"helpValue": "<path>",
|
|
4434
|
+
"multiple": false,
|
|
4435
|
+
"type": "option"
|
|
4436
|
+
},
|
|
4437
|
+
"mime-type": {
|
|
4438
|
+
"description": "Override the auto-detected MIME type (with --file)",
|
|
4439
|
+
"name": "mime-type",
|
|
4440
|
+
"hasDynamicHelp": false,
|
|
4441
|
+
"helpValue": "<type>",
|
|
4442
|
+
"multiple": false,
|
|
4443
|
+
"type": "option"
|
|
4444
|
+
},
|
|
4445
|
+
"remote": {
|
|
4446
|
+
"description": "Force sending file as a remote attachment, even for small files",
|
|
4447
|
+
"name": "remote",
|
|
4448
|
+
"allowNo": false,
|
|
4449
|
+
"type": "boolean"
|
|
4450
|
+
},
|
|
4451
|
+
"upload-provider": {
|
|
4452
|
+
"description": "Upload provider for remote attachments",
|
|
4453
|
+
"name": "upload-provider",
|
|
4454
|
+
"hasDynamicHelp": false,
|
|
4455
|
+
"helpValue": "<provider>",
|
|
4456
|
+
"multiple": false,
|
|
4457
|
+
"type": "option"
|
|
4458
|
+
},
|
|
4459
|
+
"upload-provider-token": {
|
|
4460
|
+
"description": "Authentication token for the upload provider",
|
|
4461
|
+
"name": "upload-provider-token",
|
|
4462
|
+
"hasDynamicHelp": false,
|
|
4463
|
+
"helpValue": "<token>",
|
|
4464
|
+
"multiple": false,
|
|
4465
|
+
"type": "option"
|
|
4466
|
+
},
|
|
4467
|
+
"upload-provider-gateway": {
|
|
4468
|
+
"description": "Custom gateway URL for the upload provider",
|
|
4469
|
+
"name": "upload-provider-gateway",
|
|
4470
|
+
"hasDynamicHelp": false,
|
|
4471
|
+
"helpValue": "<url>",
|
|
4472
|
+
"multiple": false,
|
|
4473
|
+
"type": "option"
|
|
4377
4474
|
}
|
|
4378
4475
|
},
|
|
4379
4476
|
"hasDynamicHelp": false,
|
|
4380
4477
|
"hiddenAliases": [],
|
|
4381
|
-
"id": "
|
|
4478
|
+
"id": "conversation:send-reply",
|
|
4382
4479
|
"pluginAlias": "@xmtp/convos-cli",
|
|
4383
4480
|
"pluginName": "@xmtp/convos-cli",
|
|
4384
4481
|
"pluginType": "core",
|
|
@@ -4426,22 +4523,28 @@
|
|
|
4426
4523
|
"relativePath": [
|
|
4427
4524
|
"dist",
|
|
4428
4525
|
"commands",
|
|
4429
|
-
"
|
|
4430
|
-
"
|
|
4526
|
+
"conversation",
|
|
4527
|
+
"send-reply.js"
|
|
4431
4528
|
]
|
|
4432
4529
|
},
|
|
4433
|
-
"
|
|
4530
|
+
"conversation:send-text": {
|
|
4434
4531
|
"aliases": [],
|
|
4435
|
-
"args": {
|
|
4436
|
-
|
|
4532
|
+
"args": {
|
|
4533
|
+
"id": {
|
|
4534
|
+
"description": "The conversation ID",
|
|
4535
|
+
"name": "id",
|
|
4536
|
+
"required": true
|
|
4537
|
+
}
|
|
4538
|
+
},
|
|
4539
|
+
"description": "Send a text message to a conversation.\n\nAutomatically resolves the per-conversation identity and sends\nthe message using the correct XMTP client.\n\nThe text can be provided as a positional argument or via --text.\nUse --text to avoid shell quoting issues (e.g. smart quotes on macOS).",
|
|
4437
4540
|
"examples": [
|
|
4438
4541
|
{
|
|
4439
|
-
"command": "<%= config.bin %> <%= command.id %>",
|
|
4440
|
-
"description": "
|
|
4542
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> \"Hello!\"",
|
|
4543
|
+
"description": "Send a text message"
|
|
4441
4544
|
},
|
|
4442
4545
|
{
|
|
4443
|
-
"command": "<%= config.bin %> <%= command.id %> --
|
|
4444
|
-
"description": "
|
|
4546
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --text \"Hello!\"",
|
|
4547
|
+
"description": "Send using --text flag (avoids shell quoting issues)"
|
|
4445
4548
|
}
|
|
4446
4549
|
],
|
|
4447
4550
|
"flags": {
|
|
@@ -4513,15 +4616,24 @@
|
|
|
4513
4616
|
"helpValue": "<version>",
|
|
4514
4617
|
"multiple": false,
|
|
4515
4618
|
"type": "option"
|
|
4619
|
+
},
|
|
4620
|
+
"text": {
|
|
4621
|
+
"char": "t",
|
|
4622
|
+
"description": "The text message to send",
|
|
4623
|
+
"name": "text",
|
|
4624
|
+
"hasDynamicHelp": false,
|
|
4625
|
+
"helpValue": "<message>",
|
|
4626
|
+
"multiple": false,
|
|
4627
|
+
"type": "option"
|
|
4516
4628
|
}
|
|
4517
4629
|
},
|
|
4518
4630
|
"hasDynamicHelp": false,
|
|
4519
4631
|
"hiddenAliases": [],
|
|
4520
|
-
"id": "
|
|
4632
|
+
"id": "conversation:send-text",
|
|
4521
4633
|
"pluginAlias": "@xmtp/convos-cli",
|
|
4522
4634
|
"pluginName": "@xmtp/convos-cli",
|
|
4523
4635
|
"pluginType": "core",
|
|
4524
|
-
"strict":
|
|
4636
|
+
"strict": false,
|
|
4525
4637
|
"enableJsonFlag": false,
|
|
4526
4638
|
"commonFlags": {
|
|
4527
4639
|
"env-file": {
|
|
@@ -4565,24 +4677,28 @@
|
|
|
4565
4677
|
"relativePath": [
|
|
4566
4678
|
"dist",
|
|
4567
4679
|
"commands",
|
|
4568
|
-
"
|
|
4569
|
-
"
|
|
4680
|
+
"conversation",
|
|
4681
|
+
"send-text.js"
|
|
4570
4682
|
]
|
|
4571
4683
|
},
|
|
4572
|
-
"
|
|
4684
|
+
"conversation:stream": {
|
|
4573
4685
|
"aliases": [],
|
|
4574
4686
|
"args": {
|
|
4575
4687
|
"id": {
|
|
4576
|
-
"description": "The
|
|
4688
|
+
"description": "The conversation ID",
|
|
4577
4689
|
"name": "id",
|
|
4578
4690
|
"required": true
|
|
4579
4691
|
}
|
|
4580
4692
|
},
|
|
4581
|
-
"description": "
|
|
4693
|
+
"description": "Stream messages in a conversation.\n\nListens for new messages in real-time using the per-conversation identity.\n\nThe stream continues until timeout, count limit, or Ctrl+C.",
|
|
4582
4694
|
"examples": [
|
|
4583
4695
|
{
|
|
4584
|
-
"command": "<%= config.bin %> <%= command.id %> <
|
|
4585
|
-
"description": "
|
|
4696
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id>",
|
|
4697
|
+
"description": "Stream messages indefinitely"
|
|
4698
|
+
},
|
|
4699
|
+
{
|
|
4700
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --timeout 60",
|
|
4701
|
+
"description": "Stream for 60 seconds"
|
|
4586
4702
|
}
|
|
4587
4703
|
],
|
|
4588
4704
|
"flags": {
|
|
@@ -4655,17 +4771,26 @@
|
|
|
4655
4771
|
"multiple": false,
|
|
4656
4772
|
"type": "option"
|
|
4657
4773
|
},
|
|
4658
|
-
"
|
|
4659
|
-
"
|
|
4660
|
-
"
|
|
4661
|
-
"
|
|
4662
|
-
"
|
|
4663
|
-
"
|
|
4774
|
+
"timeout": {
|
|
4775
|
+
"description": "Stop streaming after N seconds",
|
|
4776
|
+
"name": "timeout",
|
|
4777
|
+
"hasDynamicHelp": false,
|
|
4778
|
+
"helpValue": "<seconds>",
|
|
4779
|
+
"multiple": false,
|
|
4780
|
+
"type": "option"
|
|
4781
|
+
},
|
|
4782
|
+
"count": {
|
|
4783
|
+
"description": "Stop after receiving N messages",
|
|
4784
|
+
"name": "count",
|
|
4785
|
+
"hasDynamicHelp": false,
|
|
4786
|
+
"helpValue": "<number>",
|
|
4787
|
+
"multiple": false,
|
|
4788
|
+
"type": "option"
|
|
4664
4789
|
}
|
|
4665
4790
|
},
|
|
4666
4791
|
"hasDynamicHelp": false,
|
|
4667
4792
|
"hiddenAliases": [],
|
|
4668
|
-
"id": "
|
|
4793
|
+
"id": "conversation:stream",
|
|
4669
4794
|
"pluginAlias": "@xmtp/convos-cli",
|
|
4670
4795
|
"pluginName": "@xmtp/convos-cli",
|
|
4671
4796
|
"pluginType": "core",
|
|
@@ -4713,32 +4838,20 @@
|
|
|
4713
4838
|
"relativePath": [
|
|
4714
4839
|
"dist",
|
|
4715
4840
|
"commands",
|
|
4716
|
-
"
|
|
4717
|
-
"
|
|
4841
|
+
"conversation",
|
|
4842
|
+
"stream.js"
|
|
4718
4843
|
]
|
|
4719
4844
|
},
|
|
4720
|
-
"
|
|
4845
|
+
"conversation:sync": {
|
|
4721
4846
|
"aliases": [],
|
|
4722
|
-
"args": {
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
"
|
|
4727
|
-
"description": "Create a named conversation"
|
|
4728
|
-
},
|
|
4729
|
-
{
|
|
4730
|
-
"command": "<%= config.bin %> <%= command.id %> --name \"Team\" --description \"Team discussion\"",
|
|
4731
|
-
"description": "Create with metadata"
|
|
4732
|
-
},
|
|
4733
|
-
{
|
|
4734
|
-
"command": "<%= config.bin %> <%= command.id %> --identity <identity-id>",
|
|
4735
|
-
"description": "Use a pre-created identity"
|
|
4736
|
-
},
|
|
4737
|
-
{
|
|
4738
|
-
"command": "<%= config.bin %> <%= command.id %> --name \"Private\" --permissions admin-only --json",
|
|
4739
|
-
"description": "Create admin-only group with JSON output"
|
|
4847
|
+
"args": {
|
|
4848
|
+
"id": {
|
|
4849
|
+
"description": "The conversation ID",
|
|
4850
|
+
"name": "id",
|
|
4851
|
+
"required": true
|
|
4740
4852
|
}
|
|
4741
|
-
|
|
4853
|
+
},
|
|
4854
|
+
"description": "Sync a specific conversation from the network.",
|
|
4742
4855
|
"flags": {
|
|
4743
4856
|
"env-file": {
|
|
4744
4857
|
"description": "Path to .env file",
|
|
@@ -4780,99 +4893,39 @@
|
|
|
4780
4893
|
"allowNo": false,
|
|
4781
4894
|
"type": "boolean"
|
|
4782
4895
|
},
|
|
4783
|
-
"log-level": {
|
|
4784
|
-
"description": "Logging level",
|
|
4785
|
-
"name": "log-level",
|
|
4786
|
-
"hasDynamicHelp": false,
|
|
4787
|
-
"multiple": false,
|
|
4788
|
-
"options": [
|
|
4789
|
-
"off",
|
|
4790
|
-
"error",
|
|
4791
|
-
"warn",
|
|
4792
|
-
"info",
|
|
4793
|
-
"debug",
|
|
4794
|
-
"trace"
|
|
4795
|
-
],
|
|
4796
|
-
"type": "option"
|
|
4797
|
-
},
|
|
4798
|
-
"structured-logging": {
|
|
4799
|
-
"description": "Enable structured JSON logging",
|
|
4800
|
-
"name": "structured-logging",
|
|
4801
|
-
"allowNo": false,
|
|
4802
|
-
"type": "boolean"
|
|
4803
|
-
},
|
|
4804
|
-
"app-version": {
|
|
4805
|
-
"description": "App version string",
|
|
4806
|
-
"name": "app-version",
|
|
4807
|
-
"hasDynamicHelp": false,
|
|
4808
|
-
"helpValue": "<version>",
|
|
4809
|
-
"multiple": false,
|
|
4810
|
-
"type": "option"
|
|
4811
|
-
},
|
|
4812
|
-
"name": {
|
|
4813
|
-
"description": "Conversation name",
|
|
4814
|
-
"name": "name",
|
|
4815
|
-
"hasDynamicHelp": false,
|
|
4816
|
-
"helpValue": "<name>",
|
|
4817
|
-
"multiple": false,
|
|
4818
|
-
"type": "option"
|
|
4819
|
-
},
|
|
4820
|
-
"description": {
|
|
4821
|
-
"description": "Conversation description",
|
|
4822
|
-
"name": "description",
|
|
4823
|
-
"hasDynamicHelp": false,
|
|
4824
|
-
"helpValue": "<description>",
|
|
4825
|
-
"multiple": false,
|
|
4826
|
-
"type": "option"
|
|
4827
|
-
},
|
|
4828
|
-
"image-url": {
|
|
4829
|
-
"description": "Conversation image URL",
|
|
4830
|
-
"name": "image-url",
|
|
4831
|
-
"hasDynamicHelp": false,
|
|
4832
|
-
"helpValue": "<url>",
|
|
4833
|
-
"multiple": false,
|
|
4834
|
-
"type": "option"
|
|
4835
|
-
},
|
|
4836
|
-
"permissions": {
|
|
4837
|
-
"description": "Permission preset",
|
|
4838
|
-
"name": "permissions",
|
|
4839
|
-
"default": "all-members",
|
|
4840
|
-
"hasDynamicHelp": false,
|
|
4841
|
-
"multiple": false,
|
|
4842
|
-
"options": [
|
|
4843
|
-
"all-members",
|
|
4844
|
-
"admin-only"
|
|
4845
|
-
],
|
|
4846
|
-
"type": "option"
|
|
4847
|
-
},
|
|
4848
|
-
"identity": {
|
|
4849
|
-
"description": "Use an existing unlinked identity ID",
|
|
4850
|
-
"name": "identity",
|
|
4896
|
+
"log-level": {
|
|
4897
|
+
"description": "Logging level",
|
|
4898
|
+
"name": "log-level",
|
|
4851
4899
|
"hasDynamicHelp": false,
|
|
4852
|
-
"helpValue": "<id>",
|
|
4853
4900
|
"multiple": false,
|
|
4901
|
+
"options": [
|
|
4902
|
+
"off",
|
|
4903
|
+
"error",
|
|
4904
|
+
"warn",
|
|
4905
|
+
"info",
|
|
4906
|
+
"debug",
|
|
4907
|
+
"trace"
|
|
4908
|
+
],
|
|
4854
4909
|
"type": "option"
|
|
4855
4910
|
},
|
|
4856
|
-
"
|
|
4857
|
-
"description": "
|
|
4858
|
-
"name": "
|
|
4859
|
-
"
|
|
4860
|
-
"
|
|
4861
|
-
"multiple": false,
|
|
4862
|
-
"type": "option"
|
|
4911
|
+
"structured-logging": {
|
|
4912
|
+
"description": "Enable structured JSON logging",
|
|
4913
|
+
"name": "structured-logging",
|
|
4914
|
+
"allowNo": false,
|
|
4915
|
+
"type": "boolean"
|
|
4863
4916
|
},
|
|
4864
|
-
"
|
|
4865
|
-
"description": "
|
|
4866
|
-
"name": "
|
|
4917
|
+
"app-version": {
|
|
4918
|
+
"description": "App version string",
|
|
4919
|
+
"name": "app-version",
|
|
4867
4920
|
"hasDynamicHelp": false,
|
|
4868
|
-
"helpValue": "<
|
|
4921
|
+
"helpValue": "<version>",
|
|
4869
4922
|
"multiple": false,
|
|
4870
4923
|
"type": "option"
|
|
4871
4924
|
}
|
|
4872
4925
|
},
|
|
4873
4926
|
"hasDynamicHelp": false,
|
|
4874
4927
|
"hiddenAliases": [],
|
|
4875
|
-
"id": "
|
|
4928
|
+
"id": "conversation:sync",
|
|
4876
4929
|
"pluginAlias": "@xmtp/convos-cli",
|
|
4877
4930
|
"pluginName": "@xmtp/convos-cli",
|
|
4878
4931
|
"pluginType": "core",
|
|
@@ -4920,38 +4973,30 @@
|
|
|
4920
4973
|
"relativePath": [
|
|
4921
4974
|
"dist",
|
|
4922
4975
|
"commands",
|
|
4923
|
-
"
|
|
4924
|
-
"
|
|
4976
|
+
"conversation",
|
|
4977
|
+
"sync.js"
|
|
4925
4978
|
]
|
|
4926
4979
|
},
|
|
4927
|
-
"
|
|
4980
|
+
"conversation:update-consent": {
|
|
4928
4981
|
"aliases": [],
|
|
4929
4982
|
"args": {
|
|
4930
|
-
"
|
|
4931
|
-
"description": "
|
|
4932
|
-
"name": "
|
|
4983
|
+
"id": {
|
|
4984
|
+
"description": "The conversation ID",
|
|
4985
|
+
"name": "id",
|
|
4933
4986
|
"required": true
|
|
4934
|
-
}
|
|
4935
|
-
},
|
|
4936
|
-
"description": "Join a conversation using an invite slug or URL.\n\nImplements the Convos join flow (per ADR 001):\n\n1. Parse and validate the invite (verify signature, check expiration)\n2. Create a new per-conversation identity for this conversation\n3. Send the invite slug as a DM to the creator's inbox\n4. Wait for the creator's client to process the join request and\n add this identity to the conversation\n5. Link the identity to the conversation once joined\n\nThe creator's client (iOS app or another CLI instance running\n'convos conversations process-join-requests') must be online to\nprocess the join request.\n\nAccepts either a raw invite slug or a full URL containing the\nslug as query parameter 'i'.",
|
|
4937
|
-
"examples": [
|
|
4938
|
-
{
|
|
4939
|
-
"command": "<%= config.bin %> <%= command.id %> <invite-slug>",
|
|
4940
|
-
"description": "Join using a raw invite slug"
|
|
4941
|
-
},
|
|
4942
|
-
{
|
|
4943
|
-
"command": "<%= config.bin %> <%= command.id %> \"https://popup.convos.org/v2?i=<slug>\"",
|
|
4944
|
-
"description": "Join using a full invite URL"
|
|
4945
|
-
},
|
|
4946
|
-
{
|
|
4947
|
-
"command": "<%= config.bin %> <%= command.id %> <slug> --no-wait",
|
|
4948
|
-
"description": "Send join request without waiting for acceptance"
|
|
4949
4987
|
},
|
|
4950
|
-
{
|
|
4951
|
-
"
|
|
4952
|
-
"
|
|
4988
|
+
"state": {
|
|
4989
|
+
"description": "The new consent state",
|
|
4990
|
+
"name": "state",
|
|
4991
|
+
"options": [
|
|
4992
|
+
"allowed",
|
|
4993
|
+
"denied",
|
|
4994
|
+
"unknown"
|
|
4995
|
+
],
|
|
4996
|
+
"required": true
|
|
4953
4997
|
}
|
|
4954
|
-
|
|
4998
|
+
},
|
|
4999
|
+
"description": "Update the consent state of a conversation.",
|
|
4955
5000
|
"flags": {
|
|
4956
5001
|
"env-file": {
|
|
4957
5002
|
"description": "Path to .env file",
|
|
@@ -5021,50 +5066,11 @@
|
|
|
5021
5066
|
"helpValue": "<version>",
|
|
5022
5067
|
"multiple": false,
|
|
5023
5068
|
"type": "option"
|
|
5024
|
-
},
|
|
5025
|
-
"no-wait": {
|
|
5026
|
-
"description": "Send the join request but don't wait for the creator to accept",
|
|
5027
|
-
"name": "no-wait",
|
|
5028
|
-
"allowNo": false,
|
|
5029
|
-
"type": "boolean"
|
|
5030
|
-
},
|
|
5031
|
-
"timeout": {
|
|
5032
|
-
"description": "Seconds to wait for acceptance (default: 60)",
|
|
5033
|
-
"name": "timeout",
|
|
5034
|
-
"default": 60,
|
|
5035
|
-
"hasDynamicHelp": false,
|
|
5036
|
-
"helpValue": "<seconds>",
|
|
5037
|
-
"multiple": false,
|
|
5038
|
-
"type": "option"
|
|
5039
|
-
},
|
|
5040
|
-
"label": {
|
|
5041
|
-
"description": "Local label for the new identity",
|
|
5042
|
-
"name": "label",
|
|
5043
|
-
"hasDynamicHelp": false,
|
|
5044
|
-
"helpValue": "<label>",
|
|
5045
|
-
"multiple": false,
|
|
5046
|
-
"type": "option"
|
|
5047
|
-
},
|
|
5048
|
-
"profile-name": {
|
|
5049
|
-
"description": "Profile display name for this conversation",
|
|
5050
|
-
"name": "profile-name",
|
|
5051
|
-
"hasDynamicHelp": false,
|
|
5052
|
-
"helpValue": "<name>",
|
|
5053
|
-
"multiple": false,
|
|
5054
|
-
"type": "option"
|
|
5055
|
-
},
|
|
5056
|
-
"identity": {
|
|
5057
|
-
"description": "Use an existing unlinked identity instead of creating one",
|
|
5058
|
-
"name": "identity",
|
|
5059
|
-
"hasDynamicHelp": false,
|
|
5060
|
-
"helpValue": "<id>",
|
|
5061
|
-
"multiple": false,
|
|
5062
|
-
"type": "option"
|
|
5063
5069
|
}
|
|
5064
5070
|
},
|
|
5065
5071
|
"hasDynamicHelp": false,
|
|
5066
5072
|
"hiddenAliases": [],
|
|
5067
|
-
"id": "
|
|
5073
|
+
"id": "conversation:update-consent",
|
|
5068
5074
|
"pluginAlias": "@xmtp/convos-cli",
|
|
5069
5075
|
"pluginName": "@xmtp/convos-cli",
|
|
5070
5076
|
"pluginType": "core",
|
|
@@ -5112,28 +5118,25 @@
|
|
|
5112
5118
|
"relativePath": [
|
|
5113
5119
|
"dist",
|
|
5114
5120
|
"commands",
|
|
5115
|
-
"
|
|
5116
|
-
"
|
|
5121
|
+
"conversation",
|
|
5122
|
+
"update-consent.js"
|
|
5117
5123
|
]
|
|
5118
5124
|
},
|
|
5119
|
-
"
|
|
5125
|
+
"conversation:update-description": {
|
|
5120
5126
|
"aliases": [],
|
|
5121
|
-
"args": {
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
"
|
|
5126
|
-
"description": "List all conversations"
|
|
5127
|
-
},
|
|
5128
|
-
{
|
|
5129
|
-
"command": "<%= config.bin %> <%= command.id %> --sync",
|
|
5130
|
-
"description": "Sync from network then list"
|
|
5127
|
+
"args": {
|
|
5128
|
+
"id": {
|
|
5129
|
+
"description": "The conversation ID",
|
|
5130
|
+
"name": "id",
|
|
5131
|
+
"required": true
|
|
5131
5132
|
},
|
|
5132
|
-
{
|
|
5133
|
-
"
|
|
5134
|
-
"
|
|
5133
|
+
"description": {
|
|
5134
|
+
"description": "The new description",
|
|
5135
|
+
"name": "description",
|
|
5136
|
+
"required": true
|
|
5135
5137
|
}
|
|
5136
|
-
|
|
5138
|
+
},
|
|
5139
|
+
"description": "Update the description of a conversation.",
|
|
5137
5140
|
"flags": {
|
|
5138
5141
|
"env-file": {
|
|
5139
5142
|
"description": "Path to .env file",
|
|
@@ -5203,17 +5206,11 @@
|
|
|
5203
5206
|
"helpValue": "<version>",
|
|
5204
5207
|
"multiple": false,
|
|
5205
5208
|
"type": "option"
|
|
5206
|
-
},
|
|
5207
|
-
"sync": {
|
|
5208
|
-
"description": "Sync each identity from network before listing",
|
|
5209
|
-
"name": "sync",
|
|
5210
|
-
"allowNo": false,
|
|
5211
|
-
"type": "boolean"
|
|
5212
5209
|
}
|
|
5213
5210
|
},
|
|
5214
5211
|
"hasDynamicHelp": false,
|
|
5215
5212
|
"hiddenAliases": [],
|
|
5216
|
-
"id": "
|
|
5213
|
+
"id": "conversation:update-description",
|
|
5217
5214
|
"pluginAlias": "@xmtp/convos-cli",
|
|
5218
5215
|
"pluginName": "@xmtp/convos-cli",
|
|
5219
5216
|
"pluginType": "core",
|
|
@@ -5261,28 +5258,25 @@
|
|
|
5261
5258
|
"relativePath": [
|
|
5262
5259
|
"dist",
|
|
5263
5260
|
"commands",
|
|
5264
|
-
"
|
|
5265
|
-
"
|
|
5261
|
+
"conversation",
|
|
5262
|
+
"update-description.js"
|
|
5266
5263
|
]
|
|
5267
5264
|
},
|
|
5268
|
-
"
|
|
5265
|
+
"conversation:update-name": {
|
|
5269
5266
|
"aliases": [],
|
|
5270
|
-
"args": {
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
"
|
|
5275
|
-
"description": "Process all pending join requests"
|
|
5276
|
-
},
|
|
5277
|
-
{
|
|
5278
|
-
"command": "<%= config.bin %> <%= command.id %> --watch",
|
|
5279
|
-
"description": "Continuously stream and process join requests in real-time"
|
|
5267
|
+
"args": {
|
|
5268
|
+
"id": {
|
|
5269
|
+
"description": "The conversation ID",
|
|
5270
|
+
"name": "id",
|
|
5271
|
+
"required": true
|
|
5280
5272
|
},
|
|
5281
|
-
{
|
|
5282
|
-
"
|
|
5283
|
-
"
|
|
5273
|
+
"name": {
|
|
5274
|
+
"description": "The new name",
|
|
5275
|
+
"name": "name",
|
|
5276
|
+
"required": true
|
|
5284
5277
|
}
|
|
5285
|
-
|
|
5278
|
+
},
|
|
5279
|
+
"description": "Update the name of a conversation. Visible to all members.",
|
|
5286
5280
|
"flags": {
|
|
5287
5281
|
"env-file": {
|
|
5288
5282
|
"description": "Path to .env file",
|
|
@@ -5352,25 +5346,11 @@
|
|
|
5352
5346
|
"helpValue": "<version>",
|
|
5353
5347
|
"multiple": false,
|
|
5354
5348
|
"type": "option"
|
|
5355
|
-
},
|
|
5356
|
-
"watch": {
|
|
5357
|
-
"description": "Stream DM messages in real-time and process join requests as they arrive",
|
|
5358
|
-
"name": "watch",
|
|
5359
|
-
"allowNo": false,
|
|
5360
|
-
"type": "boolean"
|
|
5361
|
-
},
|
|
5362
|
-
"conversation": {
|
|
5363
|
-
"description": "Only process requests for this conversation ID",
|
|
5364
|
-
"name": "conversation",
|
|
5365
|
-
"hasDynamicHelp": false,
|
|
5366
|
-
"helpValue": "<id>",
|
|
5367
|
-
"multiple": false,
|
|
5368
|
-
"type": "option"
|
|
5369
5349
|
}
|
|
5370
5350
|
},
|
|
5371
5351
|
"hasDynamicHelp": false,
|
|
5372
5352
|
"hiddenAliases": [],
|
|
5373
|
-
"id": "
|
|
5353
|
+
"id": "conversation:update-name",
|
|
5374
5354
|
"pluginAlias": "@xmtp/convos-cli",
|
|
5375
5355
|
"pluginName": "@xmtp/convos-cli",
|
|
5376
5356
|
"pluginType": "core",
|
|
@@ -5418,18 +5398,32 @@
|
|
|
5418
5398
|
"relativePath": [
|
|
5419
5399
|
"dist",
|
|
5420
5400
|
"commands",
|
|
5421
|
-
"
|
|
5422
|
-
"
|
|
5401
|
+
"conversation",
|
|
5402
|
+
"update-name.js"
|
|
5423
5403
|
]
|
|
5424
5404
|
},
|
|
5425
|
-
"
|
|
5405
|
+
"conversation:update-profile": {
|
|
5426
5406
|
"aliases": [],
|
|
5427
|
-
"args": {
|
|
5428
|
-
|
|
5407
|
+
"args": {
|
|
5408
|
+
"id": {
|
|
5409
|
+
"description": "The conversation ID",
|
|
5410
|
+
"name": "id",
|
|
5411
|
+
"required": true
|
|
5412
|
+
}
|
|
5413
|
+
},
|
|
5414
|
+
"description": "Set your display name and avatar in a conversation.\n\nProfiles are stored in the group's metadata (appData) and visible\nto all members. Each conversation has independent profiles — you\ncan be a different person in each conversation (ADR 005).\n\nUpdates are synced to all members via XMTP's group metadata.\nThe profile is stored as a compressed protobuf in the group's\nappData field (max 8KB shared across all profiles and metadata).",
|
|
5429
5415
|
"examples": [
|
|
5430
5416
|
{
|
|
5431
|
-
"command": "<%= config.bin %> <%= command.id %>",
|
|
5432
|
-
"description": "
|
|
5417
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --name \"Alice\"",
|
|
5418
|
+
"description": "Set your display name"
|
|
5419
|
+
},
|
|
5420
|
+
{
|
|
5421
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --name \"Alice\" --image \"https://example.com/avatar.jpg\"",
|
|
5422
|
+
"description": "Set display name and avatar"
|
|
5423
|
+
},
|
|
5424
|
+
{
|
|
5425
|
+
"command": "<%= config.bin %> <%= command.id %> <conversation-id> --name \"\" --image \"\"",
|
|
5426
|
+
"description": "Clear your profile (go anonymous)"
|
|
5433
5427
|
}
|
|
5434
5428
|
],
|
|
5435
5429
|
"flags": {
|
|
@@ -5501,11 +5495,27 @@
|
|
|
5501
5495
|
"helpValue": "<version>",
|
|
5502
5496
|
"multiple": false,
|
|
5503
5497
|
"type": "option"
|
|
5498
|
+
},
|
|
5499
|
+
"name": {
|
|
5500
|
+
"description": "Display name (empty string to clear)",
|
|
5501
|
+
"name": "name",
|
|
5502
|
+
"hasDynamicHelp": false,
|
|
5503
|
+
"helpValue": "<name>",
|
|
5504
|
+
"multiple": false,
|
|
5505
|
+
"type": "option"
|
|
5506
|
+
},
|
|
5507
|
+
"image": {
|
|
5508
|
+
"description": "Avatar image URL (empty string to clear)",
|
|
5509
|
+
"name": "image",
|
|
5510
|
+
"hasDynamicHelp": false,
|
|
5511
|
+
"helpValue": "<url>",
|
|
5512
|
+
"multiple": false,
|
|
5513
|
+
"type": "option"
|
|
5504
5514
|
}
|
|
5505
5515
|
},
|
|
5506
5516
|
"hasDynamicHelp": false,
|
|
5507
5517
|
"hiddenAliases": [],
|
|
5508
|
-
"id": "
|
|
5518
|
+
"id": "conversation:update-profile",
|
|
5509
5519
|
"pluginAlias": "@xmtp/convos-cli",
|
|
5510
5520
|
"pluginName": "@xmtp/convos-cli",
|
|
5511
5521
|
"pluginType": "core",
|
|
@@ -5553,10 +5563,10 @@
|
|
|
5553
5563
|
"relativePath": [
|
|
5554
5564
|
"dist",
|
|
5555
5565
|
"commands",
|
|
5556
|
-
"
|
|
5557
|
-
"
|
|
5566
|
+
"conversation",
|
|
5567
|
+
"update-profile.js"
|
|
5558
5568
|
]
|
|
5559
5569
|
}
|
|
5560
5570
|
},
|
|
5561
|
-
"version": "0.
|
|
5571
|
+
"version": "0.2.0"
|
|
5562
5572
|
}
|