@towns-labs/proto 7.1.0 → 7.3.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.
@@ -360,1435 +360,1595 @@ export type GetSessionResponse = Message<"river.GetSessionResponse"> & {
360
360
  */
361
361
  export declare const GetSessionResponseSchema: GenMessage<GetSessionResponse>;
362
362
  /**
363
- * As a performance optimization, we may wish to bundle together many key solicitation requests
364
- * and channel messages for the bot to respond to in a single webhook call. Thus, an isolated
365
- * group of channel messages and encryption keys, or a request for a key solicitation, is
366
- * represented here. For webhook calls regarding channel content, the payload may contain one or
367
- * more of these events.
363
+ * Position represents a single position held by a user.
368
364
  *
369
- * @generated from message river.EventPayload
365
+ * @generated from message river.Position
370
366
  */
371
- export type EventPayload = Message<"river.EventPayload"> & {
367
+ export type Position = Message<"river.Position"> & {
372
368
  /**
373
- * @generated from oneof river.EventPayload.payload
369
+ * Human-readable label (e.g., "ETH-PERP Long", "Will BTC hit $100k?")
370
+ *
371
+ * @generated from field: string label = 1;
374
372
  */
375
- payload: {
376
- /**
377
- * @generated from field: river.EventPayload.Messages messages = 1;
378
- */
379
- value: EventPayload_Messages;
380
- case: "messages";
381
- } | {
382
- /**
383
- * @generated from field: river.EventPayload.SolicitKeys solicitation = 2;
384
- */
385
- value: EventPayload_SolicitKeys;
386
- case: "solicitation";
387
- } | {
388
- case: undefined;
389
- value?: undefined;
390
- };
373
+ label: string;
374
+ /**
375
+ * Optional description (e.g., "10x leverage", "Yes @ $0.85")
376
+ *
377
+ * @generated from field: optional string description = 2;
378
+ */
379
+ description?: string;
380
+ /**
381
+ * Asset/token identifier (e.g., "ETH", "BTC", token ID)
382
+ *
383
+ * @generated from field: string symbol = 3;
384
+ */
385
+ symbol: string;
386
+ /**
387
+ * Position type for categorization
388
+ *
389
+ * @generated from field: river.PositionType type = 4;
390
+ */
391
+ type: PositionType;
392
+ /**
393
+ * Position value in USD (string for precision)
394
+ *
395
+ * @generated from field: string balance_usd = 5;
396
+ */
397
+ balanceUsd: string;
398
+ /**
399
+ * Unrealized PnL in USD (string for precision)
400
+ *
401
+ * @generated from field: string pnl_usd = 6;
402
+ */
403
+ pnlUsd: string;
404
+ /**
405
+ * Optional: Chain ID where the position exists (e.g., 42161 for Arbitrum, 137 for Polygon)
406
+ *
407
+ * @generated from field: optional uint64 chain_id = 7;
408
+ */
409
+ chainId?: bigint;
410
+ /**
411
+ * Optional: Native token balance on the chain (e.g., ETH, MATIC)
412
+ *
413
+ * @generated from field: optional string native_balance = 8;
414
+ */
415
+ nativeBalance?: string;
391
416
  };
392
417
  /**
393
- * Describes the message river.EventPayload.
394
- * Use `create(EventPayloadSchema)` to create a new message.
418
+ * Describes the message river.Position.
419
+ * Use `create(PositionSchema)` to create a new message.
395
420
  */
396
- export declare const EventPayloadSchema: GenMessage<EventPayload>;
421
+ export declare const PositionSchema: GenMessage<Position>;
397
422
  /**
398
- * A Messages payload represents a group of user messages in a channel that qualifies for the app
399
- * to be notified. The included set of group encryption sessions in this message should have
400
- * all the needed ciphertexts to decrypt the set of messages sent in the same payload.
423
+ * PositionsRequest is sent by the app registry to a bot to fetch user positions.
401
424
  *
402
- * @generated from message river.EventPayload.Messages
425
+ * @generated from message river.PositionsRequest
403
426
  */
404
- export type EventPayload_Messages = Message<"river.EventPayload.Messages"> & {
405
- /**
406
- * @generated from field: bytes stream_id = 1;
407
- */
408
- streamId: Uint8Array;
409
- /**
410
- * @generated from field: repeated river.Envelope messages = 2;
411
- */
412
- messages: Envelope[];
427
+ export type PositionsRequest = Message<"river.PositionsRequest"> & {
413
428
  /**
414
- * @generated from field: repeated river.Envelope group_encryption_sessions_messages = 3;
429
+ * User requesting positions (20-byte Ethereum address)
430
+ *
431
+ * @generated from field: bytes user_id = 1;
415
432
  */
416
- groupEncryptionSessionsMessages: Envelope[];
433
+ userId: Uint8Array;
417
434
  };
418
435
  /**
419
- * Describes the message river.EventPayload.Messages.
420
- * Use `create(EventPayload_MessagesSchema)` to create a new message.
436
+ * Describes the message river.PositionsRequest.
437
+ * Use `create(PositionsRequestSchema)` to create a new message.
421
438
  */
422
- export declare const EventPayload_MessagesSchema: GenMessage<EventPayload_Messages>;
439
+ export declare const PositionsRequestSchema: GenMessage<PositionsRequest>;
423
440
  /**
424
- * A SolicitKeys request is sent when one or more messages in the same channel cannot be forwarded
425
- * to the app because the app does not have keys available to decrypt it in it's user inbox stream.
426
- * In this case, the app must be prompted to send a message to the stream to solicit the missing
427
- * session keys so that all queued messages can be forwarded.
441
+ * PositionsResponse is returned by a bot containing the user's positions.
428
442
  *
429
- * @generated from message river.EventPayload.SolicitKeys
443
+ * @generated from message river.PositionsResponse
430
444
  */
431
- export type EventPayload_SolicitKeys = Message<"river.EventPayload.SolicitKeys"> & {
445
+ export type PositionsResponse = Message<"river.PositionsResponse"> & {
432
446
  /**
433
- * @generated from field: bytes stream_id = 1;
447
+ * Whether the bot supports positions
448
+ *
449
+ * @generated from field: bool supported = 1;
434
450
  */
435
- streamId: Uint8Array;
451
+ supported: boolean;
436
452
  /**
437
- * @generated from field: repeated string session_ids = 2;
453
+ * Error message if positions couldn't be fetched
454
+ *
455
+ * @generated from field: optional string error = 2;
438
456
  */
439
- sessionIds: string[];
457
+ error?: string;
458
+ /**
459
+ * Individual positions
460
+ *
461
+ * @generated from field: repeated river.Position positions = 3;
462
+ */
463
+ positions: Position[];
464
+ /**
465
+ * Timestamp when data was fetched (Unix milliseconds)
466
+ *
467
+ * @generated from field: int64 timestamp = 4;
468
+ */
469
+ timestamp: bigint;
440
470
  };
441
471
  /**
442
- * Describes the message river.EventPayload.SolicitKeys.
443
- * Use `create(EventPayload_SolicitKeysSchema)` to create a new message.
472
+ * Describes the message river.PositionsResponse.
473
+ * Use `create(PositionsResponseSchema)` to create a new message.
444
474
  */
445
- export declare const EventPayload_SolicitKeysSchema: GenMessage<EventPayload_SolicitKeys>;
475
+ export declare const PositionsResponseSchema: GenMessage<PositionsResponse>;
446
476
  /**
447
- * @generated from message river.EventsPayload
477
+ * SlashCommand represents a command that the bot supports.
478
+ *
479
+ * @generated from message river.SlashCommand
448
480
  */
449
- export type EventsPayload = Message<"river.EventsPayload"> & {
481
+ export type SlashCommand = Message<"river.SlashCommand"> & {
450
482
  /**
451
- * @generated from field: repeated river.EventPayload events = 1;
483
+ * name is the command name (e.g., "help", "search").
484
+ * Must be 1-32 characters, contain only letters, numbers, and underscores,
485
+ * and start with a letter.
486
+ *
487
+ * @generated from field: string name = 1;
452
488
  */
453
- events: EventPayload[];
489
+ name: string;
490
+ /**
491
+ * description is a short description of what the command does.
492
+ * Must be 1-256 characters.
493
+ *
494
+ * @generated from field: string description = 2;
495
+ */
496
+ description: string;
454
497
  };
455
498
  /**
456
- * Describes the message river.EventsPayload.
457
- * Use `create(EventsPayloadSchema)` to create a new message.
499
+ * Describes the message river.SlashCommand.
500
+ * Use `create(SlashCommandSchema)` to create a new message.
458
501
  */
459
- export declare const EventsPayloadSchema: GenMessage<EventsPayload>;
502
+ export declare const SlashCommandSchema: GenMessage<SlashCommand>;
460
503
  /**
461
- * @generated from message river.AppServiceRequest
504
+ * CapabilityExample provides an example invocation for a capability.
505
+ *
506
+ * @generated from message river.CapabilityExample
462
507
  */
463
- export type AppServiceRequest = Message<"river.AppServiceRequest"> & {
508
+ export type CapabilityExample = Message<"river.CapabilityExample"> & {
464
509
  /**
465
- * @generated from oneof river.AppServiceRequest.payload
510
+ * user_query is a natural language query that would trigger this capability.
511
+ *
512
+ * @generated from field: string user_query = 1;
466
513
  */
467
- payload: {
468
- /**
469
- * @generated from field: google.protobuf.Empty initialize = 101;
470
- */
471
- value: Empty;
472
- case: "initialize";
473
- } | {
474
- /**
475
- * @generated from field: google.protobuf.Empty status = 102;
476
- */
477
- value: Empty;
478
- case: "status";
479
- } | {
480
- /**
481
- * @generated from field: river.EventsPayload events = 103;
482
- */
483
- value: EventsPayload;
484
- case: "events";
485
- } | {
486
- /**
487
- * @generated from field: river.PositionsRequest positions = 104;
488
- */
489
- value: PositionsRequest;
490
- case: "positions";
491
- } | {
492
- /**
493
- * @generated from field: river.AppServiceRequest.ProposalsRequest proposals = 105;
494
- */
495
- value: AppServiceRequest_ProposalsRequest;
496
- case: "proposals";
497
- } | {
498
- /**
499
- * @generated from field: river.AppServiceRequest.ConciergeRequest concierge_request = 106;
500
- */
501
- value: AppServiceRequest_ConciergeRequest;
502
- case: "conciergeRequest";
503
- } | {
504
- case: undefined;
505
- value?: undefined;
506
- };
514
+ userQuery: string;
515
+ /**
516
+ * parameters is a JSON-encoded example parameter object.
517
+ *
518
+ * @generated from field: string parameters = 2;
519
+ */
520
+ parameters: string;
507
521
  };
508
522
  /**
509
- * Describes the message river.AppServiceRequest.
510
- * Use `create(AppServiceRequestSchema)` to create a new message.
523
+ * Describes the message river.CapabilityExample.
524
+ * Use `create(CapabilityExampleSchema)` to create a new message.
511
525
  */
512
- export declare const AppServiceRequestSchema: GenMessage<AppServiceRequest>;
526
+ export declare const CapabilityExampleSchema: GenMessage<CapabilityExample>;
513
527
  /**
514
- * @generated from message river.AppServiceRequest.ProposalsRequest
528
+ * Capability describes an action a specialist agent can perform.
529
+ *
530
+ * @generated from message river.Capability
515
531
  */
516
- export type AppServiceRequest_ProposalsRequest = Message<"river.AppServiceRequest.ProposalsRequest"> & {
532
+ export type Capability = Message<"river.Capability"> & {
517
533
  /**
518
- * Seed ID being populated by this specialist request.
534
+ * name is a unique identifier for this capability (e.g. "open_position").
519
535
  *
520
- * @generated from field: string conversation_seed_id = 1;
536
+ * @generated from field: string name = 1;
521
537
  */
522
- conversationSeedId: string;
538
+ name: string;
523
539
  /**
524
- * Original user query for specialist context.
540
+ * description explains what this capability does.
525
541
  *
526
- * @generated from field: string user_query = 2;
542
+ * @generated from field: string description = 2;
527
543
  */
528
- userQuery: string;
544
+ description: string;
529
545
  /**
530
- * Optional normalized context (e.g., thread summary or conversation context).
546
+ * input_schema is a JSON schema for the capability input.
531
547
  *
532
- * @generated from field: optional string context = 3;
548
+ * @generated from field: string input_schema = 3;
533
549
  */
534
- context?: string;
550
+ inputSchema: string;
535
551
  /**
536
- * Invocations for this bot.
552
+ * examples help route natural language intents to this capability.
537
553
  *
538
- * @generated from field: repeated river.SpecialistCapabilityInvocation invocations = 4;
554
+ * @generated from field: repeated river.CapabilityExample examples = 4;
539
555
  */
540
- invocations: SpecialistCapabilityInvocation[];
556
+ examples: CapabilityExample[];
557
+ };
558
+ /**
559
+ * Describes the message river.Capability.
560
+ * Use `create(CapabilitySchema)` to create a new message.
561
+ */
562
+ export declare const CapabilitySchema: GenMessage<Capability>;
563
+ /**
564
+ * CapabilityManifest is the full capability advertisement for a specialist agent.
565
+ *
566
+ * @generated from message river.CapabilityManifest
567
+ */
568
+ export type CapabilityManifest = Message<"river.CapabilityManifest"> & {
541
569
  /**
542
- * Optional timeout budget for fan-out.
570
+ * agent_id is the specialist app_id (20 bytes).
543
571
  *
544
- * @generated from field: optional int32 timeout_ms = 5;
572
+ * @generated from field: bytes agent_id = 1;
545
573
  */
546
- timeoutMs?: number;
574
+ agentId: Uint8Array;
547
575
  /**
548
- * IANA timezone of the user, e.g. "America/New_York".
576
+ * agent_name is a human-readable specialist name.
549
577
  *
550
- * @generated from field: optional string user_timezone = 6;
578
+ * @generated from field: string agent_name = 2;
551
579
  */
552
- userTimezone?: string;
580
+ agentName: string;
553
581
  /**
554
- * Optional metadata forwarded from concierge to specialist handlers.
582
+ * agent_description is a human-readable specialist description.
555
583
  *
556
- * @generated from field: map<string, string> metadata = 7;
584
+ * @generated from field: string agent_description = 3;
557
585
  */
558
- metadata: {
559
- [key: string]: string;
560
- };
586
+ agentDescription: string;
587
+ /**
588
+ * capabilities declared by this specialist.
589
+ *
590
+ * @generated from field: repeated river.Capability capabilities = 4;
591
+ */
592
+ capabilities: Capability[];
593
+ /**
594
+ * version is used for cache invalidation.
595
+ *
596
+ * @generated from field: string version = 5;
597
+ */
598
+ version: string;
561
599
  };
562
600
  /**
563
- * Describes the message river.AppServiceRequest.ProposalsRequest.
564
- * Use `create(AppServiceRequest_ProposalsRequestSchema)` to create a new message.
601
+ * Describes the message river.CapabilityManifest.
602
+ * Use `create(CapabilityManifestSchema)` to create a new message.
565
603
  */
566
- export declare const AppServiceRequest_ProposalsRequestSchema: GenMessage<AppServiceRequest_ProposalsRequest>;
604
+ export declare const CapabilityManifestSchema: GenMessage<CapabilityManifest>;
567
605
  /**
568
- * @generated from message river.AppServiceRequest.ConciergeRequest
606
+ * @generated from message river.AppMetadata
569
607
  */
570
- export type AppServiceRequest_ConciergeRequest = Message<"river.AppServiceRequest.ConciergeRequest"> & {
608
+ export type AppMetadata = Message<"river.AppMetadata"> & {
571
609
  /**
572
- * Seed ID created by QueryConcierge and used for polling/fan-out.
610
+ * username is the identifier used to mention the bot (e.g., "@mybot").
611
+ * Must be unique across all bots.
573
612
  *
574
- * @generated from field: string conversation_seed_id = 1;
613
+ * @generated from field: string username = 1;
575
614
  */
576
- conversationSeedId: string;
615
+ username: string;
577
616
  /**
578
- * Original user query (or query derived from full twitter thread context).
579
- *
580
- * @generated from field: string user_query = 2;
617
+ * @generated from field: string description = 2;
581
618
  */
582
- userQuery: string;
619
+ description: string;
583
620
  /**
584
- * Optional normalized context (e.g., thread summary or conversation history).
585
- *
586
- * @generated from field: optional string context = 3;
621
+ * @generated from field: string image_url = 3;
587
622
  */
588
- context?: string;
623
+ imageUrl: string;
589
624
  /**
590
- * Optional external reference (e.g., tweet ID).
625
+ * @generated from field: optional string external_url = 4;
626
+ */
627
+ externalUrl?: string;
628
+ /**
629
+ * slash_commands is a list of commands the bot supports.
630
+ * Maximum of 25 commands per bot.
591
631
  *
592
- * @generated from field: optional string external_ref = 4;
632
+ * @generated from field: repeated river.SlashCommand slash_commands = 6;
593
633
  */
594
- externalRef?: string;
634
+ slashCommands: SlashCommand[];
595
635
  /**
596
- * Timeout from the conversation seed.
636
+ * display_name is the friendly name shown in chat conversations (e.g., "My Helpful Bot").
637
+ * Must be non-empty.
597
638
  *
598
- * @generated from field: optional int64 proposal_timeout_ms = 5;
639
+ * @generated from field: string display_name = 7;
599
640
  */
600
- proposalTimeoutMs?: bigint;
641
+ displayName: string;
601
642
  /**
602
- * Timeout from the conversation seed.
643
+ * motto is a short tagline or slogan for the bot.
603
644
  *
604
- * @generated from field: optional int64 concierge_timeout_ms = 6;
645
+ * @generated from field: string motto = 8;
605
646
  */
606
- conciergeTimeoutMs?: bigint;
647
+ motto: string;
607
648
  /**
608
- * IANA timezone of the user, e.g. "America/New_York".
649
+ * capabilities is a list of specialist capabilities supported by the app.
609
650
  *
610
- * @generated from field: optional string user_timezone = 7;
651
+ * @generated from field: repeated river.Capability capabilities = 9;
611
652
  */
612
- userTimezone?: string;
653
+ capabilities: Capability[];
654
+ };
655
+ /**
656
+ * Describes the message river.AppMetadata.
657
+ * Use `create(AppMetadataSchema)` to create a new message.
658
+ */
659
+ export declare const AppMetadataSchema: GenMessage<AppMetadata>;
660
+ /**
661
+ * AppMetadataUpdate represents a partial update to app metadata
662
+ *
663
+ * @generated from message river.AppMetadataUpdate
664
+ */
665
+ export type AppMetadataUpdate = Message<"river.AppMetadataUpdate"> & {
613
666
  /**
614
- * Optional user ID (Ethereum address) of the user making the query.
667
+ * All fields are optional for partial updates
615
668
  *
616
- * @generated from field: optional bytes user_id = 8;
669
+ * @generated from field: optional string username = 1;
670
+ */
671
+ username?: string;
672
+ /**
673
+ * @generated from field: optional string description = 2;
674
+ */
675
+ description?: string;
676
+ /**
677
+ * @generated from field: optional string image_url = 3;
678
+ */
679
+ imageUrl?: string;
680
+ /**
681
+ * @generated from field: optional string external_url = 4;
682
+ */
683
+ externalUrl?: string;
684
+ /**
685
+ * @generated from field: repeated river.SlashCommand slash_commands = 6;
686
+ */
687
+ slashCommands: SlashCommand[];
688
+ /**
689
+ * @generated from field: optional string display_name = 7;
690
+ */
691
+ displayName?: string;
692
+ /**
693
+ * @generated from field: optional string motto = 8;
694
+ */
695
+ motto?: string;
696
+ /**
697
+ * @generated from field: repeated river.Capability capabilities = 9;
698
+ */
699
+ capabilities: Capability[];
700
+ };
701
+ /**
702
+ * Describes the message river.AppMetadataUpdate.
703
+ * Use `create(AppMetadataUpdateSchema)` to create a new message.
704
+ */
705
+ export declare const AppMetadataUpdateSchema: GenMessage<AppMetadataUpdate>;
706
+ /**
707
+ * Update app metadata
708
+ *
709
+ * @generated from message river.UpdateAppMetadataRequest
710
+ */
711
+ export type UpdateAppMetadataRequest = Message<"river.UpdateAppMetadataRequest"> & {
712
+ /**
713
+ * @generated from field: bytes app_id = 1;
714
+ */
715
+ appId: Uint8Array;
716
+ /**
717
+ * @generated from field: river.AppMetadataUpdate metadata = 2;
718
+ */
719
+ metadata?: AppMetadataUpdate;
720
+ /**
721
+ * @generated from field: repeated string update_mask = 3;
722
+ */
723
+ updateMask: string[];
724
+ };
725
+ /**
726
+ * Describes the message river.UpdateAppMetadataRequest.
727
+ * Use `create(UpdateAppMetadataRequestSchema)` to create a new message.
728
+ */
729
+ export declare const UpdateAppMetadataRequestSchema: GenMessage<UpdateAppMetadataRequest>;
730
+ /**
731
+ * @generated from message river.UpdateAppMetadataResponse
732
+ */
733
+ export type UpdateAppMetadataResponse = Message<"river.UpdateAppMetadataResponse"> & {};
734
+ /**
735
+ * Describes the message river.UpdateAppMetadataResponse.
736
+ * Use `create(UpdateAppMetadataResponseSchema)` to create a new message.
737
+ */
738
+ export declare const UpdateAppMetadataResponseSchema: GenMessage<UpdateAppMetadataResponse>;
739
+ /**
740
+ * Get app metadata
741
+ *
742
+ * @generated from message river.GetAppMetadataRequest
743
+ */
744
+ export type GetAppMetadataRequest = Message<"river.GetAppMetadataRequest"> & {
745
+ /**
746
+ * @generated from field: bytes app_id = 1;
617
747
  */
618
- userId?: Uint8Array;
748
+ appId: Uint8Array;
619
749
  };
620
750
  /**
621
- * Describes the message river.AppServiceRequest.ConciergeRequest.
622
- * Use `create(AppServiceRequest_ConciergeRequestSchema)` to create a new message.
751
+ * Describes the message river.GetAppMetadataRequest.
752
+ * Use `create(GetAppMetadataRequestSchema)` to create a new message.
623
753
  */
624
- export declare const AppServiceRequest_ConciergeRequestSchema: GenMessage<AppServiceRequest_ConciergeRequest>;
754
+ export declare const GetAppMetadataRequestSchema: GenMessage<GetAppMetadataRequest>;
625
755
  /**
626
- * @generated from message river.AppServiceResponse
756
+ * @generated from message river.GetAppMetadataResponse
627
757
  */
628
- export type AppServiceResponse = Message<"river.AppServiceResponse"> & {
758
+ export type GetAppMetadataResponse = Message<"river.GetAppMetadataResponse"> & {
629
759
  /**
630
- * @generated from oneof river.AppServiceResponse.payload
760
+ * @generated from field: river.AppMetadata metadata = 1;
631
761
  */
632
- payload: {
633
- /**
634
- * @generated from field: river.AppServiceResponse.InitializeResponse initialize = 101;
635
- */
636
- value: AppServiceResponse_InitializeResponse;
637
- case: "initialize";
638
- } | {
639
- /**
640
- * @generated from field: river.AppServiceResponse.StatusResponse status = 102;
641
- */
642
- value: AppServiceResponse_StatusResponse;
643
- case: "status";
644
- } | {
645
- /**
646
- * @generated from field: river.PositionsResponse positions = 103;
647
- */
648
- value: PositionsResponse;
649
- case: "positions";
650
- } | {
651
- /**
652
- * @generated from field: river.AppServiceResponse.ProposalsResponse proposals = 104;
653
- */
654
- value: AppServiceResponse_ProposalsResponse;
655
- case: "proposals";
656
- } | {
657
- /**
658
- * @generated from field: river.AppServiceResponse.ConciergeResponse concierge_response = 105;
659
- */
660
- value: AppServiceResponse_ConciergeResponse;
661
- case: "conciergeResponse";
662
- } | {
663
- case: undefined;
664
- value?: undefined;
665
- };
762
+ metadata?: AppMetadata;
666
763
  };
667
764
  /**
668
- * Describes the message river.AppServiceResponse.
669
- * Use `create(AppServiceResponseSchema)` to create a new message.
765
+ * Describes the message river.GetAppMetadataResponse.
766
+ * Use `create(GetAppMetadataResponseSchema)` to create a new message.
670
767
  */
671
- export declare const AppServiceResponseSchema: GenMessage<AppServiceResponse>;
768
+ export declare const GetAppMetadataResponseSchema: GenMessage<GetAppMetadataResponse>;
672
769
  /**
673
- * @generated from message river.AppServiceResponse.InitializeResponse
770
+ * Validate bot username
771
+ *
772
+ * @generated from message river.ValidateBotNameRequest
674
773
  */
675
- export type AppServiceResponse_InitializeResponse = Message<"river.AppServiceResponse.InitializeResponse"> & {
774
+ export type ValidateBotNameRequest = Message<"river.ValidateBotNameRequest"> & {
676
775
  /**
677
- * @generated from field: river.UserMetadataPayload.EncryptionDevice encryption_device = 1;
776
+ * @generated from field: string username = 1;
678
777
  */
679
- encryptionDevice?: UserMetadataPayload_EncryptionDevice;
778
+ username: string;
680
779
  };
681
780
  /**
682
- * Describes the message river.AppServiceResponse.InitializeResponse.
683
- * Use `create(AppServiceResponse_InitializeResponseSchema)` to create a new message.
781
+ * Describes the message river.ValidateBotNameRequest.
782
+ * Use `create(ValidateBotNameRequestSchema)` to create a new message.
684
783
  */
685
- export declare const AppServiceResponse_InitializeResponseSchema: GenMessage<AppServiceResponse_InitializeResponse>;
784
+ export declare const ValidateBotNameRequestSchema: GenMessage<ValidateBotNameRequest>;
686
785
  /**
687
- * @generated from message river.AppServiceResponse.StatusResponse
786
+ * @generated from message river.ValidateBotNameResponse
688
787
  */
689
- export type AppServiceResponse_StatusResponse = Message<"river.AppServiceResponse.StatusResponse"> & {
690
- /**
691
- * Version established by the app registry that the bot framework supports.
692
- * It indicates protocol compatibility.
693
- *
694
- * @generated from field: int32 framework_version = 1;
695
- */
696
- frameworkVersion: number;
697
- /**
698
- * @generated from field: string device_key = 2;
699
- */
700
- deviceKey: string;
788
+ export type ValidateBotNameResponse = Message<"river.ValidateBotNameResponse"> & {
701
789
  /**
702
- * @generated from field: string fallback_key = 3;
790
+ * @generated from field: bool is_available = 1;
703
791
  */
704
- fallbackKey: string;
792
+ isAvailable: boolean;
705
793
  /**
706
- * Optional metadata used to identify the client SDK version.
707
- * Example: "javascript:@towns-labs/app-framework:0.0.1"
708
- *
709
- * @generated from field: optional string client_version = 4;
794
+ * @generated from field: string error_message = 2;
710
795
  */
711
- clientVersion?: string;
796
+ errorMessage: string;
712
797
  };
713
798
  /**
714
- * Describes the message river.AppServiceResponse.StatusResponse.
715
- * Use `create(AppServiceResponse_StatusResponseSchema)` to create a new message.
799
+ * Describes the message river.ValidateBotNameResponse.
800
+ * Use `create(ValidateBotNameResponseSchema)` to create a new message.
716
801
  */
717
- export declare const AppServiceResponse_StatusResponseSchema: GenMessage<AppServiceResponse_StatusResponse>;
802
+ export declare const ValidateBotNameResponseSchema: GenMessage<ValidateBotNameResponse>;
718
803
  /**
719
- * @generated from message river.AppServiceResponse.ProposalsResponse
804
+ * Set app active status
805
+ *
806
+ * @generated from message river.SetAppActiveStatusRequest
720
807
  */
721
- export type AppServiceResponse_ProposalsResponse = Message<"river.AppServiceResponse.ProposalsResponse"> & {
808
+ export type SetAppActiveStatusRequest = Message<"river.SetAppActiveStatusRequest"> & {
722
809
  /**
723
- * Webhook delivery accepted; processing continues asynchronously.
724
- *
725
- * @generated from field: bool accepted = 1;
810
+ * @generated from field: bytes app_id = 1;
726
811
  */
727
- accepted: boolean;
812
+ appId: Uint8Array;
813
+ /**
814
+ * @generated from field: bool active = 2;
815
+ */
816
+ active: boolean;
728
817
  };
729
818
  /**
730
- * Describes the message river.AppServiceResponse.ProposalsResponse.
731
- * Use `create(AppServiceResponse_ProposalsResponseSchema)` to create a new message.
819
+ * Describes the message river.SetAppActiveStatusRequest.
820
+ * Use `create(SetAppActiveStatusRequestSchema)` to create a new message.
732
821
  */
733
- export declare const AppServiceResponse_ProposalsResponseSchema: GenMessage<AppServiceResponse_ProposalsResponse>;
822
+ export declare const SetAppActiveStatusRequestSchema: GenMessage<SetAppActiveStatusRequest>;
734
823
  /**
735
- * @generated from message river.AppServiceResponse.ConciergeResponse
824
+ * @generated from message river.SetAppActiveStatusResponse
736
825
  */
737
- export type AppServiceResponse_ConciergeResponse = Message<"river.AppServiceResponse.ConciergeResponse"> & {
738
- /**
739
- * Webhook delivery accepted; processing continues asynchronously.
740
- *
741
- * @generated from field: bool accepted = 1;
742
- */
743
- accepted: boolean;
744
- };
826
+ export type SetAppActiveStatusResponse = Message<"river.SetAppActiveStatusResponse"> & {};
745
827
  /**
746
- * Describes the message river.AppServiceResponse.ConciergeResponse.
747
- * Use `create(AppServiceResponse_ConciergeResponseSchema)` to create a new message.
828
+ * Describes the message river.SetAppActiveStatusResponse.
829
+ * Use `create(SetAppActiveStatusResponseSchema)` to create a new message.
748
830
  */
749
- export declare const AppServiceResponse_ConciergeResponseSchema: GenMessage<AppServiceResponse_ConciergeResponse>;
831
+ export declare const SetAppActiveStatusResponseSchema: GenMessage<SetAppActiveStatusResponse>;
750
832
  /**
751
- * Position represents a single position held by a user.
833
+ * SetAppPromotedStatusRequest sets the promoted status of an app.
752
834
  *
753
- * @generated from message river.Position
835
+ * @generated from message river.SetAppPromotedStatusRequest
754
836
  */
755
- export type Position = Message<"river.Position"> & {
756
- /**
757
- * Human-readable label (e.g., "ETH-PERP Long", "Will BTC hit $100k?")
758
- *
759
- * @generated from field: string label = 1;
760
- */
761
- label: string;
762
- /**
763
- * Optional description (e.g., "10x leverage", "Yes @ $0.85")
764
- *
765
- * @generated from field: optional string description = 2;
766
- */
767
- description?: string;
837
+ export type SetAppPromotedStatusRequest = Message<"river.SetAppPromotedStatusRequest"> & {
768
838
  /**
769
- * Asset/token identifier (e.g., "ETH", "BTC", token ID)
839
+ * app_id is the address of the app (20 bytes)
770
840
  *
771
- * @generated from field: string symbol = 3;
841
+ * @generated from field: bytes app_id = 1;
772
842
  */
773
- symbol: string;
843
+ appId: Uint8Array;
774
844
  /**
775
- * Position type for categorization
845
+ * promoted indicates whether the app should be discoverable in the catalog
776
846
  *
777
- * @generated from field: river.PositionType type = 4;
847
+ * @generated from field: bool promoted = 2;
778
848
  */
779
- type: PositionType;
849
+ promoted: boolean;
850
+ };
851
+ /**
852
+ * Describes the message river.SetAppPromotedStatusRequest.
853
+ * Use `create(SetAppPromotedStatusRequestSchema)` to create a new message.
854
+ */
855
+ export declare const SetAppPromotedStatusRequestSchema: GenMessage<SetAppPromotedStatusRequest>;
856
+ /**
857
+ * @generated from message river.SetAppPromotedStatusResponse
858
+ */
859
+ export type SetAppPromotedStatusResponse = Message<"river.SetAppPromotedStatusResponse"> & {};
860
+ /**
861
+ * Describes the message river.SetAppPromotedStatusResponse.
862
+ * Use `create(SetAppPromotedStatusResponseSchema)` to create a new message.
863
+ */
864
+ export declare const SetAppPromotedStatusResponseSchema: GenMessage<SetAppPromotedStatusResponse>;
865
+ /**
866
+ * SetAppVerifiedStatusRequest sets the verified status of an app.
867
+ *
868
+ * @generated from message river.SetAppVerifiedStatusRequest
869
+ */
870
+ export type SetAppVerifiedStatusRequest = Message<"river.SetAppVerifiedStatusRequest"> & {
780
871
  /**
781
- * Position value in USD (string for precision)
872
+ * app_id is the address of the app (20 bytes)
782
873
  *
783
- * @generated from field: string balance_usd = 5;
874
+ * @generated from field: bytes app_id = 1;
784
875
  */
785
- balanceUsd: string;
876
+ appId: Uint8Array;
786
877
  /**
787
- * Unrealized PnL in USD (string for precision)
878
+ * verified indicates whether the app has been reviewed and approved by admins
788
879
  *
789
- * @generated from field: string pnl_usd = 6;
880
+ * @generated from field: bool verified = 2;
790
881
  */
791
- pnlUsd: string;
882
+ verified: boolean;
883
+ };
884
+ /**
885
+ * Describes the message river.SetAppVerifiedStatusRequest.
886
+ * Use `create(SetAppVerifiedStatusRequestSchema)` to create a new message.
887
+ */
888
+ export declare const SetAppVerifiedStatusRequestSchema: GenMessage<SetAppVerifiedStatusRequest>;
889
+ /**
890
+ * @generated from message river.SetAppVerifiedStatusResponse
891
+ */
892
+ export type SetAppVerifiedStatusResponse = Message<"river.SetAppVerifiedStatusResponse"> & {};
893
+ /**
894
+ * Describes the message river.SetAppVerifiedStatusResponse.
895
+ * Use `create(SetAppVerifiedStatusResponseSchema)` to create a new message.
896
+ */
897
+ export declare const SetAppVerifiedStatusResponseSchema: GenMessage<SetAppVerifiedStatusResponse>;
898
+ /**
899
+ * SetUserName allows users to set or update their username and display name.
900
+ *
901
+ * @generated from message river.SetUserNameRequest
902
+ */
903
+ export type SetUserNameRequest = Message<"river.SetUserNameRequest"> & {
792
904
  /**
793
- * Optional: Chain ID where the position exists (e.g., 42161 for Arbitrum, 137 for Polygon)
905
+ * username is the new username to set for the authenticated user.
794
906
  *
795
- * @generated from field: optional uint64 chain_id = 7;
907
+ * @generated from field: string username = 1;
796
908
  */
797
- chainId?: bigint;
909
+ username: string;
798
910
  /**
799
- * Optional: Native token balance on the chain (e.g., ETH, MATIC)
911
+ * display_name is the friendly name shown in chat.
800
912
  *
801
- * @generated from field: optional string native_balance = 8;
913
+ * @generated from field: string display_name = 2;
802
914
  */
803
- nativeBalance?: string;
915
+ displayName: string;
804
916
  };
805
917
  /**
806
- * Describes the message river.Position.
807
- * Use `create(PositionSchema)` to create a new message.
918
+ * Describes the message river.SetUserNameRequest.
919
+ * Use `create(SetUserNameRequestSchema)` to create a new message.
808
920
  */
809
- export declare const PositionSchema: GenMessage<Position>;
921
+ export declare const SetUserNameRequestSchema: GenMessage<SetUserNameRequest>;
810
922
  /**
811
- * PositionsRequest is sent by the app registry to a bot to fetch user positions.
923
+ * @generated from message river.SetUserNameResponse
924
+ */
925
+ export type SetUserNameResponse = Message<"river.SetUserNameResponse"> & {};
926
+ /**
927
+ * Describes the message river.SetUserNameResponse.
928
+ * Use `create(SetUserNameResponseSchema)` to create a new message.
929
+ */
930
+ export declare const SetUserNameResponseSchema: GenMessage<SetUserNameResponse>;
931
+ /**
932
+ * GetEntityName request - retrieves username for a single entity.
812
933
  *
813
- * @generated from message river.PositionsRequest
934
+ * @generated from message river.GetEntityNameRequest
814
935
  */
815
- export type PositionsRequest = Message<"river.PositionsRequest"> & {
936
+ export type GetEntityNameRequest = Message<"river.GetEntityNameRequest"> & {
816
937
  /**
817
- * User requesting positions (20-byte Ethereum address)
938
+ * entity_id is the address of the user or app to look up
818
939
  *
819
- * @generated from field: bytes user_id = 1;
940
+ * @generated from field: bytes entity_id = 1;
820
941
  */
821
- userId: Uint8Array;
942
+ entityId: Uint8Array;
822
943
  };
823
944
  /**
824
- * Describes the message river.PositionsRequest.
825
- * Use `create(PositionsRequestSchema)` to create a new message.
945
+ * Describes the message river.GetEntityNameRequest.
946
+ * Use `create(GetEntityNameRequestSchema)` to create a new message.
826
947
  */
827
- export declare const PositionsRequestSchema: GenMessage<PositionsRequest>;
948
+ export declare const GetEntityNameRequestSchema: GenMessage<GetEntityNameRequest>;
828
949
  /**
829
- * PositionsResponse is returned by a bot containing the user's positions.
830
- *
831
- * @generated from message river.PositionsResponse
950
+ * @generated from message river.GetEntityNameResponse
832
951
  */
833
- export type PositionsResponse = Message<"river.PositionsResponse"> & {
834
- /**
835
- * Whether the bot supports positions
836
- *
837
- * @generated from field: bool supported = 1;
838
- */
839
- supported: boolean;
952
+ export type GetEntityNameResponse = Message<"river.GetEntityNameResponse"> & {
840
953
  /**
841
- * Error message if positions couldn't be fetched
954
+ * username is the entity's chosen username
842
955
  *
843
- * @generated from field: optional string error = 2;
956
+ * @generated from field: string username = 1;
844
957
  */
845
- error?: string;
958
+ username: string;
846
959
  /**
847
- * Individual positions
960
+ * display_name is the entity's friendly display name
848
961
  *
849
- * @generated from field: repeated river.Position positions = 3;
962
+ * @generated from field: string display_name = 2;
850
963
  */
851
- positions: Position[];
964
+ displayName: string;
852
965
  /**
853
- * Timestamp when data was fetched (Unix milliseconds)
966
+ * entity_type indicates whether this is a user (0) or app (1)
854
967
  *
855
- * @generated from field: int64 timestamp = 4;
968
+ * @generated from field: int32 entity_type = 3;
856
969
  */
857
- timestamp: bigint;
970
+ entityType: number;
858
971
  };
859
972
  /**
860
- * Describes the message river.PositionsResponse.
861
- * Use `create(PositionsResponseSchema)` to create a new message.
973
+ * Describes the message river.GetEntityNameResponse.
974
+ * Use `create(GetEntityNameResponseSchema)` to create a new message.
862
975
  */
863
- export declare const PositionsResponseSchema: GenMessage<PositionsResponse>;
976
+ export declare const GetEntityNameResponseSchema: GenMessage<GetEntityNameResponse>;
864
977
  /**
865
- * SlashCommand represents a command that the bot supports.
978
+ * GetBatchEntityNames request - retrieves usernames for multiple entities.
866
979
  *
867
- * @generated from message river.SlashCommand
980
+ * @generated from message river.GetBatchEntityNamesRequest
868
981
  */
869
- export type SlashCommand = Message<"river.SlashCommand"> & {
870
- /**
871
- * name is the command name (e.g., "help", "search").
872
- * Must be 1-32 characters, contain only letters, numbers, and underscores,
873
- * and start with a letter.
874
- *
875
- * @generated from field: string name = 1;
876
- */
877
- name: string;
982
+ export type GetBatchEntityNamesRequest = Message<"river.GetBatchEntityNamesRequest"> & {
878
983
  /**
879
- * description is a short description of what the command does.
880
- * Must be 1-256 characters.
984
+ * entity_ids is the list of addresses to look up
881
985
  *
882
- * @generated from field: string description = 2;
986
+ * @generated from field: repeated bytes entity_ids = 1;
883
987
  */
884
- description: string;
988
+ entityIds: Uint8Array[];
885
989
  };
886
990
  /**
887
- * Describes the message river.SlashCommand.
888
- * Use `create(SlashCommandSchema)` to create a new message.
991
+ * Describes the message river.GetBatchEntityNamesRequest.
992
+ * Use `create(GetBatchEntityNamesRequestSchema)` to create a new message.
889
993
  */
890
- export declare const SlashCommandSchema: GenMessage<SlashCommand>;
994
+ export declare const GetBatchEntityNamesRequestSchema: GenMessage<GetBatchEntityNamesRequest>;
891
995
  /**
892
- * CapabilityExample provides an example invocation for a capability.
996
+ * EntityNameInfo contains the name information for a single entity.
893
997
  *
894
- * @generated from message river.CapabilityExample
998
+ * @generated from message river.EntityNameInfo
895
999
  */
896
- export type CapabilityExample = Message<"river.CapabilityExample"> & {
897
- /**
898
- * user_query is a natural language query that would trigger this capability.
899
- *
900
- * @generated from field: string user_query = 1;
901
- */
902
- userQuery: string;
1000
+ export type EntityNameInfo = Message<"river.EntityNameInfo"> & {
903
1001
  /**
904
- * parameters is a JSON-encoded example parameter object.
1002
+ * entity_id is the address of the entity
905
1003
  *
906
- * @generated from field: string parameters = 2;
1004
+ * @generated from field: bytes entity_id = 1;
907
1005
  */
908
- parameters: string;
909
- };
910
- /**
911
- * Describes the message river.CapabilityExample.
912
- * Use `create(CapabilityExampleSchema)` to create a new message.
913
- */
914
- export declare const CapabilityExampleSchema: GenMessage<CapabilityExample>;
915
- /**
916
- * Capability describes an action a specialist agent can perform.
917
- *
918
- * @generated from message river.Capability
919
- */
920
- export type Capability = Message<"river.Capability"> & {
1006
+ entityId: Uint8Array;
921
1007
  /**
922
- * name is a unique identifier for this capability (e.g. "open_position").
1008
+ * username is the entity's chosen username
923
1009
  *
924
- * @generated from field: string name = 1;
1010
+ * @generated from field: string username = 2;
925
1011
  */
926
- name: string;
1012
+ username: string;
927
1013
  /**
928
- * description explains what this capability does.
1014
+ * display_name is the entity's friendly display name
929
1015
  *
930
- * @generated from field: string description = 2;
1016
+ * @generated from field: string display_name = 3;
931
1017
  */
932
- description: string;
1018
+ displayName: string;
933
1019
  /**
934
- * input_schema is a JSON schema for the capability input.
1020
+ * entity_type indicates whether this is a user (0) or app (1)
935
1021
  *
936
- * @generated from field: string input_schema = 3;
1022
+ * @generated from field: int32 entity_type = 4;
937
1023
  */
938
- inputSchema: string;
1024
+ entityType: number;
1025
+ };
1026
+ /**
1027
+ * Describes the message river.EntityNameInfo.
1028
+ * Use `create(EntityNameInfoSchema)` to create a new message.
1029
+ */
1030
+ export declare const EntityNameInfoSchema: GenMessage<EntityNameInfo>;
1031
+ /**
1032
+ * @generated from message river.GetBatchEntityNamesResponse
1033
+ */
1034
+ export type GetBatchEntityNamesResponse = Message<"river.GetBatchEntityNamesResponse"> & {
939
1035
  /**
940
- * examples help route natural language intents to this capability.
1036
+ * entities contains the name info for each found entity.
1037
+ * Entities that have not set usernames will not be included.
941
1038
  *
942
- * @generated from field: repeated river.CapabilityExample examples = 4;
1039
+ * @generated from field: repeated river.EntityNameInfo entities = 1;
943
1040
  */
944
- examples: CapabilityExample[];
1041
+ entities: EntityNameInfo[];
945
1042
  };
946
1043
  /**
947
- * Describes the message river.Capability.
948
- * Use `create(CapabilitySchema)` to create a new message.
1044
+ * Describes the message river.GetBatchEntityNamesResponse.
1045
+ * Use `create(GetBatchEntityNamesResponseSchema)` to create a new message.
949
1046
  */
950
- export declare const CapabilitySchema: GenMessage<Capability>;
1047
+ export declare const GetBatchEntityNamesResponseSchema: GenMessage<GetBatchEntityNamesResponse>;
951
1048
  /**
952
- * CapabilityManifest is the full capability advertisement for a specialist agent.
1049
+ * SearchEntityNames request - searches entities by username or display name.
953
1050
  *
954
- * @generated from message river.CapabilityManifest
1051
+ * @generated from message river.SearchEntityNamesRequest
955
1052
  */
956
- export type CapabilityManifest = Message<"river.CapabilityManifest"> & {
1053
+ export type SearchEntityNamesRequest = Message<"river.SearchEntityNamesRequest"> & {
957
1054
  /**
958
- * agent_id is the specialist app_id (20 bytes).
1055
+ * search_query is the text to search for in usernames and display names.
1056
+ * Must be at least 3 characters long.
959
1057
  *
960
- * @generated from field: bytes agent_id = 1;
1058
+ * @generated from field: string search_query = 1;
961
1059
  */
962
- agentId: Uint8Array;
1060
+ searchQuery: string;
963
1061
  /**
964
- * agent_name is a human-readable specialist name.
1062
+ * limit is the maximum number of results to return (default 10, max 20).
965
1063
  *
966
- * @generated from field: string agent_name = 2;
1064
+ * @generated from field: int32 limit = 2;
967
1065
  */
968
- agentName: string;
1066
+ limit: number;
969
1067
  /**
970
- * agent_description is a human-readable specialist description.
1068
+ * entity_type optionally filters by entity type (0=user, 1=app).
1069
+ * If not set, all entity types are returned.
971
1070
  *
972
- * @generated from field: string agent_description = 3;
1071
+ * @generated from field: optional int32 entity_type = 3;
973
1072
  */
974
- agentDescription: string;
1073
+ entityType?: number;
975
1074
  /**
976
- * capabilities declared by this specialist.
1075
+ * offset is the number of results to skip for pagination (default 0).
977
1076
  *
978
- * @generated from field: repeated river.Capability capabilities = 4;
1077
+ * @generated from field: int32 offset = 4;
979
1078
  */
980
- capabilities: Capability[];
1079
+ offset: number;
1080
+ };
1081
+ /**
1082
+ * Describes the message river.SearchEntityNamesRequest.
1083
+ * Use `create(SearchEntityNamesRequestSchema)` to create a new message.
1084
+ */
1085
+ export declare const SearchEntityNamesRequestSchema: GenMessage<SearchEntityNamesRequest>;
1086
+ /**
1087
+ * @generated from message river.SearchEntityNamesResponse
1088
+ */
1089
+ export type SearchEntityNamesResponse = Message<"river.SearchEntityNamesResponse"> & {
981
1090
  /**
982
- * version is used for cache invalidation.
1091
+ * entities contains the matching entity name records.
983
1092
  *
984
- * @generated from field: string version = 5;
1093
+ * @generated from field: repeated river.EntityNameInfo entities = 1;
985
1094
  */
986
- version: string;
1095
+ entities: EntityNameInfo[];
987
1096
  };
988
1097
  /**
989
- * Describes the message river.CapabilityManifest.
990
- * Use `create(CapabilityManifestSchema)` to create a new message.
1098
+ * Describes the message river.SearchEntityNamesResponse.
1099
+ * Use `create(SearchEntityNamesResponseSchema)` to create a new message.
991
1100
  */
992
- export declare const CapabilityManifestSchema: GenMessage<CapabilityManifest>;
1101
+ export declare const SearchEntityNamesResponseSchema: GenMessage<SearchEntityNamesResponse>;
993
1102
  /**
994
- * @generated from message river.AppMetadata
1103
+ * InviteEncryptionSession contains a single group session key that can be imported
1104
+ * by the invitee before joining a stream.
1105
+ *
1106
+ * @generated from message river.InviteEncryptionSession
995
1107
  */
996
- export type AppMetadata = Message<"river.AppMetadata"> & {
1108
+ export type InviteEncryptionSession = Message<"river.InviteEncryptionSession"> & {
997
1109
  /**
998
- * username is the identifier used to mention the bot (e.g., "@mybot").
999
- * Must be unique across all bots.
1110
+ * session_id is the group session identifier.
1000
1111
  *
1001
- * @generated from field: string username = 1;
1002
- */
1003
- username: string;
1004
- /**
1005
- * @generated from field: string description = 2;
1006
- */
1007
- description: string;
1008
- /**
1009
- * @generated from field: string image_url = 3;
1010
- */
1011
- imageUrl: string;
1012
- /**
1013
- * @generated from field: optional string external_url = 4;
1112
+ * @generated from field: string session_id = 1;
1014
1113
  */
1015
- externalUrl?: string;
1114
+ sessionId: string;
1016
1115
  /**
1017
- * slash_commands is a list of commands the bot supports.
1018
- * Maximum of 25 commands per bot.
1116
+ * session_key is the exported session key material.
1019
1117
  *
1020
- * @generated from field: repeated river.SlashCommand slash_commands = 6;
1118
+ * @generated from field: string session_key = 2;
1021
1119
  */
1022
- slashCommands: SlashCommand[];
1120
+ sessionKey: string;
1121
+ };
1122
+ /**
1123
+ * Describes the message river.InviteEncryptionSession.
1124
+ * Use `create(InviteEncryptionSessionSchema)` to create a new message.
1125
+ */
1126
+ export declare const InviteEncryptionSessionSchema: GenMessage<InviteEncryptionSession>;
1127
+ /**
1128
+ * InviteEncryptionData contains key material shared via invite links so an invitee
1129
+ * can decrypt prior GDM history immediately after joining.
1130
+ *
1131
+ * @generated from message river.InviteEncryptionData
1132
+ */
1133
+ export type InviteEncryptionData = Message<"river.InviteEncryptionData"> & {
1023
1134
  /**
1024
- * display_name is the friendly name shown in chat conversations (e.g., "My Helpful Bot").
1025
- * Must be non-empty.
1135
+ * stream_id is the 32-byte stream ID these keys belong to.
1026
1136
  *
1027
- * @generated from field: string display_name = 7;
1137
+ * @generated from field: bytes stream_id = 1;
1028
1138
  */
1029
- displayName: string;
1139
+ streamId: Uint8Array;
1030
1140
  /**
1031
- * motto is a short tagline or slogan for the bot.
1141
+ * algorithm is the group encryption algorithm identifier.
1032
1142
  *
1033
- * @generated from field: string motto = 8;
1143
+ * @generated from field: string algorithm = 2;
1034
1144
  */
1035
- motto: string;
1145
+ algorithm: string;
1036
1146
  /**
1037
- * capabilities is a list of specialist capabilities supported by the app.
1147
+ * sessions is the list of group session keys to import.
1038
1148
  *
1039
- * @generated from field: repeated river.Capability capabilities = 9;
1149
+ * @generated from field: repeated river.InviteEncryptionSession sessions = 3;
1040
1150
  */
1041
- capabilities: Capability[];
1151
+ sessions: InviteEncryptionSession[];
1042
1152
  };
1043
1153
  /**
1044
- * Describes the message river.AppMetadata.
1045
- * Use `create(AppMetadataSchema)` to create a new message.
1154
+ * Describes the message river.InviteEncryptionData.
1155
+ * Use `create(InviteEncryptionDataSchema)` to create a new message.
1046
1156
  */
1047
- export declare const AppMetadataSchema: GenMessage<AppMetadata>;
1157
+ export declare const InviteEncryptionDataSchema: GenMessage<InviteEncryptionData>;
1048
1158
  /**
1049
- * AppMetadataUpdate represents a partial update to app metadata
1159
+ * CreateInviteLink - creates a new invite link for a stream
1050
1160
  *
1051
- * @generated from message river.AppMetadataUpdate
1161
+ * @generated from message river.CreateInviteLinkRequest
1052
1162
  */
1053
- export type AppMetadataUpdate = Message<"river.AppMetadataUpdate"> & {
1163
+ export type CreateInviteLinkRequest = Message<"river.CreateInviteLinkRequest"> & {
1054
1164
  /**
1055
- * All fields are optional for partial updates
1165
+ * stream_id is the 32-byte stream ID
1056
1166
  *
1057
- * @generated from field: optional string username = 1;
1058
- */
1059
- username?: string;
1060
- /**
1061
- * @generated from field: optional string description = 2;
1062
- */
1063
- description?: string;
1064
- /**
1065
- * @generated from field: optional string image_url = 3;
1167
+ * @generated from field: bytes stream_id = 1;
1066
1168
  */
1067
- imageUrl?: string;
1169
+ streamId: Uint8Array;
1068
1170
  /**
1069
- * @generated from field: optional string external_url = 4;
1171
+ * invite_encryption_data contains group session keys that the invitee must
1172
+ * import before joining.
1173
+ *
1174
+ * @generated from field: river.InviteEncryptionData invite_encryption_data = 2;
1070
1175
  */
1071
- externalUrl?: string;
1176
+ inviteEncryptionData?: InviteEncryptionData;
1072
1177
  /**
1073
- * @generated from field: repeated river.SlashCommand slash_commands = 6;
1178
+ * channel_properties contains the GDM channel properties (name, topic, image)
1179
+ * so the invitee can display them before joining.
1180
+ *
1181
+ * @generated from field: optional river.ChannelProperties channel_properties = 3;
1074
1182
  */
1075
- slashCommands: SlashCommand[];
1183
+ channelProperties?: ChannelProperties;
1184
+ };
1185
+ /**
1186
+ * Describes the message river.CreateInviteLinkRequest.
1187
+ * Use `create(CreateInviteLinkRequestSchema)` to create a new message.
1188
+ */
1189
+ export declare const CreateInviteLinkRequestSchema: GenMessage<CreateInviteLinkRequest>;
1190
+ /**
1191
+ * @generated from message river.CreateInviteLinkResponse
1192
+ */
1193
+ export type CreateInviteLinkResponse = Message<"river.CreateInviteLinkResponse"> & {
1076
1194
  /**
1077
- * @generated from field: optional string display_name = 7;
1195
+ * invite_code is the 16-character base64url-safe invite code
1196
+ *
1197
+ * @generated from field: string invite_code = 1;
1078
1198
  */
1079
- displayName?: string;
1199
+ inviteCode: string;
1200
+ };
1201
+ /**
1202
+ * Describes the message river.CreateInviteLinkResponse.
1203
+ * Use `create(CreateInviteLinkResponseSchema)` to create a new message.
1204
+ */
1205
+ export declare const CreateInviteLinkResponseSchema: GenMessage<CreateInviteLinkResponse>;
1206
+ /**
1207
+ * RevokeInviteLink - invalidates the current invite link
1208
+ *
1209
+ * @generated from message river.RevokeInviteLinkRequest
1210
+ */
1211
+ export type RevokeInviteLinkRequest = Message<"river.RevokeInviteLinkRequest"> & {
1080
1212
  /**
1081
- * @generated from field: optional string motto = 8;
1213
+ * stream_id is the 32-byte stream ID
1214
+ *
1215
+ * @generated from field: bytes stream_id = 1;
1082
1216
  */
1083
- motto?: string;
1217
+ streamId: Uint8Array;
1218
+ };
1219
+ /**
1220
+ * Describes the message river.RevokeInviteLinkRequest.
1221
+ * Use `create(RevokeInviteLinkRequestSchema)` to create a new message.
1222
+ */
1223
+ export declare const RevokeInviteLinkRequestSchema: GenMessage<RevokeInviteLinkRequest>;
1224
+ /**
1225
+ * @generated from message river.RevokeInviteLinkResponse
1226
+ */
1227
+ export type RevokeInviteLinkResponse = Message<"river.RevokeInviteLinkResponse"> & {};
1228
+ /**
1229
+ * Describes the message river.RevokeInviteLinkResponse.
1230
+ * Use `create(RevokeInviteLinkResponseSchema)` to create a new message.
1231
+ */
1232
+ export declare const RevokeInviteLinkResponseSchema: GenMessage<RevokeInviteLinkResponse>;
1233
+ /**
1234
+ * RedeemInviteLink - validates invite code and returns signed payload.
1235
+ * The stream ID is determined by the invite code lookup.
1236
+ *
1237
+ * @generated from message river.RedeemInviteLinkRequest
1238
+ */
1239
+ export type RedeemInviteLinkRequest = Message<"river.RedeemInviteLinkRequest"> & {
1084
1240
  /**
1085
- * @generated from field: repeated river.Capability capabilities = 9;
1241
+ * invite_code is the 16-character invite code to redeem
1242
+ *
1243
+ * @generated from field: string invite_code = 1;
1086
1244
  */
1087
- capabilities: Capability[];
1245
+ inviteCode: string;
1088
1246
  };
1089
1247
  /**
1090
- * Describes the message river.AppMetadataUpdate.
1091
- * Use `create(AppMetadataUpdateSchema)` to create a new message.
1248
+ * Describes the message river.RedeemInviteLinkRequest.
1249
+ * Use `create(RedeemInviteLinkRequestSchema)` to create a new message.
1092
1250
  */
1093
- export declare const AppMetadataUpdateSchema: GenMessage<AppMetadataUpdate>;
1251
+ export declare const RedeemInviteLinkRequestSchema: GenMessage<RedeemInviteLinkRequest>;
1094
1252
  /**
1095
- * Update app metadata
1096
- *
1097
- * @generated from message river.UpdateAppMetadataRequest
1253
+ * @generated from message river.RedeemInviteLinkResponse
1098
1254
  */
1099
- export type UpdateAppMetadataRequest = Message<"river.UpdateAppMetadataRequest"> & {
1255
+ export type RedeemInviteLinkResponse = Message<"river.RedeemInviteLinkResponse"> & {
1100
1256
  /**
1101
- * @generated from field: bytes app_id = 1;
1257
+ * signed_payload contains the signed invitation that can be used to join the stream
1258
+ *
1259
+ * @generated from field: river.InviteSignedPayload signed_payload = 1;
1102
1260
  */
1103
- appId: Uint8Array;
1261
+ signedPayload?: InviteSignedPayload;
1104
1262
  /**
1105
- * @generated from field: river.AppMetadataUpdate metadata = 2;
1263
+ * invite_encryption_data contains group session keys to import before join.
1264
+ *
1265
+ * @generated from field: river.InviteEncryptionData invite_encryption_data = 2;
1106
1266
  */
1107
- metadata?: AppMetadataUpdate;
1267
+ inviteEncryptionData?: InviteEncryptionData;
1108
1268
  /**
1109
- * @generated from field: repeated string update_mask = 3;
1269
+ * channel_properties contains the GDM channel properties from the invite creator.
1270
+ *
1271
+ * @generated from field: optional river.ChannelProperties channel_properties = 3;
1110
1272
  */
1111
- updateMask: string[];
1273
+ channelProperties?: ChannelProperties;
1112
1274
  };
1113
1275
  /**
1114
- * Describes the message river.UpdateAppMetadataRequest.
1115
- * Use `create(UpdateAppMetadataRequestSchema)` to create a new message.
1116
- */
1117
- export declare const UpdateAppMetadataRequestSchema: GenMessage<UpdateAppMetadataRequest>;
1118
- /**
1119
- * @generated from message river.UpdateAppMetadataResponse
1120
- */
1121
- export type UpdateAppMetadataResponse = Message<"river.UpdateAppMetadataResponse"> & {};
1122
- /**
1123
- * Describes the message river.UpdateAppMetadataResponse.
1124
- * Use `create(UpdateAppMetadataResponseSchema)` to create a new message.
1276
+ * Describes the message river.RedeemInviteLinkResponse.
1277
+ * Use `create(RedeemInviteLinkResponseSchema)` to create a new message.
1125
1278
  */
1126
- export declare const UpdateAppMetadataResponseSchema: GenMessage<UpdateAppMetadataResponse>;
1279
+ export declare const RedeemInviteLinkResponseSchema: GenMessage<RedeemInviteLinkResponse>;
1127
1280
  /**
1128
- * Get app metadata
1281
+ * GetInviteLink - retrieves the current active invite link
1129
1282
  *
1130
- * @generated from message river.GetAppMetadataRequest
1283
+ * @generated from message river.GetInviteLinkRequest
1131
1284
  */
1132
- export type GetAppMetadataRequest = Message<"river.GetAppMetadataRequest"> & {
1285
+ export type GetInviteLinkRequest = Message<"river.GetInviteLinkRequest"> & {
1133
1286
  /**
1134
- * @generated from field: bytes app_id = 1;
1287
+ * stream_id is the 32-byte stream ID
1288
+ *
1289
+ * @generated from field: bytes stream_id = 1;
1135
1290
  */
1136
- appId: Uint8Array;
1291
+ streamId: Uint8Array;
1137
1292
  };
1138
1293
  /**
1139
- * Describes the message river.GetAppMetadataRequest.
1140
- * Use `create(GetAppMetadataRequestSchema)` to create a new message.
1294
+ * Describes the message river.GetInviteLinkRequest.
1295
+ * Use `create(GetInviteLinkRequestSchema)` to create a new message.
1141
1296
  */
1142
- export declare const GetAppMetadataRequestSchema: GenMessage<GetAppMetadataRequest>;
1297
+ export declare const GetInviteLinkRequestSchema: GenMessage<GetInviteLinkRequest>;
1143
1298
  /**
1144
- * @generated from message river.GetAppMetadataResponse
1299
+ * @generated from message river.GetInviteLinkResponse
1145
1300
  */
1146
- export type GetAppMetadataResponse = Message<"river.GetAppMetadataResponse"> & {
1301
+ export type GetInviteLinkResponse = Message<"river.GetInviteLinkResponse"> & {
1147
1302
  /**
1148
- * @generated from field: river.AppMetadata metadata = 1;
1303
+ * invite_code is the current active invite code, if any
1304
+ *
1305
+ * @generated from field: optional string invite_code = 1;
1149
1306
  */
1150
- metadata?: AppMetadata;
1307
+ inviteCode?: string;
1308
+ /**
1309
+ * created_at_epoch_ms is when the invite was created
1310
+ *
1311
+ * @generated from field: optional int64 created_at_epoch_ms = 2;
1312
+ */
1313
+ createdAtEpochMs?: bigint;
1151
1314
  };
1152
1315
  /**
1153
- * Describes the message river.GetAppMetadataResponse.
1154
- * Use `create(GetAppMetadataResponseSchema)` to create a new message.
1316
+ * Describes the message river.GetInviteLinkResponse.
1317
+ * Use `create(GetInviteLinkResponseSchema)` to create a new message.
1155
1318
  */
1156
- export declare const GetAppMetadataResponseSchema: GenMessage<GetAppMetadataResponse>;
1319
+ export declare const GetInviteLinkResponseSchema: GenMessage<GetInviteLinkResponse>;
1157
1320
  /**
1158
- * Validate bot username
1321
+ * AppInstallStats contains installation statistics for an app.
1159
1322
  *
1160
- * @generated from message river.ValidateBotNameRequest
1323
+ * @generated from message river.AppInstallStats
1161
1324
  */
1162
- export type ValidateBotNameRequest = Message<"river.ValidateBotNameRequest"> & {
1325
+ export type AppInstallStats = Message<"river.AppInstallStats"> & {
1163
1326
  /**
1164
- * @generated from field: string username = 1;
1327
+ * app_id is the address of the app (20 bytes)
1328
+ *
1329
+ * @generated from field: bytes app_id = 1;
1165
1330
  */
1166
- username: string;
1331
+ appId: Uint8Array;
1332
+ /**
1333
+ * install_count is the number of active DM/GDM installations
1334
+ *
1335
+ * @generated from field: int32 install_count = 2;
1336
+ */
1337
+ installCount: number;
1167
1338
  };
1168
1339
  /**
1169
- * Describes the message river.ValidateBotNameRequest.
1170
- * Use `create(ValidateBotNameRequestSchema)` to create a new message.
1340
+ * Describes the message river.AppInstallStats.
1341
+ * Use `create(AppInstallStatsSchema)` to create a new message.
1171
1342
  */
1172
- export declare const ValidateBotNameRequestSchema: GenMessage<ValidateBotNameRequest>;
1343
+ export declare const AppInstallStatsSchema: GenMessage<AppInstallStats>;
1173
1344
  /**
1174
- * @generated from message river.ValidateBotNameResponse
1345
+ * AppReview represents a single review for an app.
1346
+ *
1347
+ * @generated from message river.AppReview
1175
1348
  */
1176
- export type ValidateBotNameResponse = Message<"river.ValidateBotNameResponse"> & {
1349
+ export type AppReview = Message<"river.AppReview"> & {
1350
+ /**
1351
+ * id is the unique review identifier (UUID string)
1352
+ *
1353
+ * @generated from field: string id = 1;
1354
+ */
1355
+ id: string;
1356
+ /**
1357
+ * app_id is the address of the app being reviewed (20 bytes)
1358
+ *
1359
+ * @generated from field: bytes app_id = 2;
1360
+ */
1361
+ appId: Uint8Array;
1362
+ /**
1363
+ * reviewer_address is the wallet address of the reviewer (20 bytes)
1364
+ *
1365
+ * @generated from field: bytes reviewer_address = 3;
1366
+ */
1367
+ reviewerAddress: Uint8Array;
1368
+ /**
1369
+ * rating is the review rating (1-5)
1370
+ *
1371
+ * @generated from field: int32 rating = 4;
1372
+ */
1373
+ rating: number;
1374
+ /**
1375
+ * comment is the optional review text
1376
+ *
1377
+ * @generated from field: string comment = 5;
1378
+ */
1379
+ comment: string;
1177
1380
  /**
1178
- * @generated from field: bool is_available = 1;
1381
+ * created_at_ms is the creation timestamp in milliseconds since epoch
1382
+ *
1383
+ * @generated from field: int64 created_at_ms = 6;
1179
1384
  */
1180
- isAvailable: boolean;
1385
+ createdAtMs: bigint;
1181
1386
  /**
1182
- * @generated from field: string error_message = 2;
1387
+ * is_revoked indicates if the review has been revoked
1388
+ *
1389
+ * @generated from field: bool is_revoked = 7;
1183
1390
  */
1184
- errorMessage: string;
1391
+ isRevoked: boolean;
1185
1392
  };
1186
1393
  /**
1187
- * Describes the message river.ValidateBotNameResponse.
1188
- * Use `create(ValidateBotNameResponseSchema)` to create a new message.
1394
+ * Describes the message river.AppReview.
1395
+ * Use `create(AppReviewSchema)` to create a new message.
1189
1396
  */
1190
- export declare const ValidateBotNameResponseSchema: GenMessage<ValidateBotNameResponse>;
1397
+ export declare const AppReviewSchema: GenMessage<AppReview>;
1191
1398
  /**
1192
- * Set app active status
1399
+ * AppReviewSummary contains aggregated review statistics for an app.
1193
1400
  *
1194
- * @generated from message river.SetAppActiveStatusRequest
1401
+ * @generated from message river.AppReviewSummary
1195
1402
  */
1196
- export type SetAppActiveStatusRequest = Message<"river.SetAppActiveStatusRequest"> & {
1403
+ export type AppReviewSummary = Message<"river.AppReviewSummary"> & {
1197
1404
  /**
1405
+ * app_id is the address of the app (20 bytes)
1406
+ *
1198
1407
  * @generated from field: bytes app_id = 1;
1199
1408
  */
1200
1409
  appId: Uint8Array;
1201
1410
  /**
1202
- * @generated from field: bool active = 2;
1411
+ * total_reviews is the total number of reviews (including revoked)
1412
+ *
1413
+ * @generated from field: int32 total_reviews = 2;
1203
1414
  */
1204
- active: boolean;
1205
- };
1206
- /**
1207
- * Describes the message river.SetAppActiveStatusRequest.
1208
- * Use `create(SetAppActiveStatusRequestSchema)` to create a new message.
1209
- */
1210
- export declare const SetAppActiveStatusRequestSchema: GenMessage<SetAppActiveStatusRequest>;
1211
- /**
1212
- * @generated from message river.SetAppActiveStatusResponse
1213
- */
1214
- export type SetAppActiveStatusResponse = Message<"river.SetAppActiveStatusResponse"> & {};
1215
- /**
1216
- * Describes the message river.SetAppActiveStatusResponse.
1217
- * Use `create(SetAppActiveStatusResponseSchema)` to create a new message.
1218
- */
1219
- export declare const SetAppActiveStatusResponseSchema: GenMessage<SetAppActiveStatusResponse>;
1220
- /**
1221
- * SetAppPromotedStatusRequest sets the promoted status of an app.
1222
- *
1223
- * @generated from message river.SetAppPromotedStatusRequest
1224
- */
1225
- export type SetAppPromotedStatusRequest = Message<"river.SetAppPromotedStatusRequest"> & {
1415
+ totalReviews: number;
1226
1416
  /**
1227
- * app_id is the address of the app (20 bytes)
1417
+ * active_reviews is the number of non-revoked reviews
1228
1418
  *
1229
- * @generated from field: bytes app_id = 1;
1419
+ * @generated from field: int32 active_reviews = 3;
1230
1420
  */
1231
- appId: Uint8Array;
1421
+ activeReviews: number;
1232
1422
  /**
1233
- * promoted indicates whether the app should be discoverable in the catalog
1423
+ * average_rating is the average rating from active reviews
1234
1424
  *
1235
- * @generated from field: bool promoted = 2;
1425
+ * @generated from field: float average_rating = 4;
1236
1426
  */
1237
- promoted: boolean;
1427
+ averageRating: number;
1238
1428
  };
1239
1429
  /**
1240
- * Describes the message river.SetAppPromotedStatusRequest.
1241
- * Use `create(SetAppPromotedStatusRequestSchema)` to create a new message.
1242
- */
1243
- export declare const SetAppPromotedStatusRequestSchema: GenMessage<SetAppPromotedStatusRequest>;
1244
- /**
1245
- * @generated from message river.SetAppPromotedStatusResponse
1246
- */
1247
- export type SetAppPromotedStatusResponse = Message<"river.SetAppPromotedStatusResponse"> & {};
1248
- /**
1249
- * Describes the message river.SetAppPromotedStatusResponse.
1250
- * Use `create(SetAppPromotedStatusResponseSchema)` to create a new message.
1430
+ * Describes the message river.AppReviewSummary.
1431
+ * Use `create(AppReviewSummarySchema)` to create a new message.
1251
1432
  */
1252
- export declare const SetAppPromotedStatusResponseSchema: GenMessage<SetAppPromotedStatusResponse>;
1433
+ export declare const AppReviewSummarySchema: GenMessage<AppReviewSummary>;
1253
1434
  /**
1254
- * SetAppVerifiedStatusRequest sets the verified status of an app.
1435
+ * AppInfoFull contains complete app information for discovery.
1255
1436
  *
1256
- * @generated from message river.SetAppVerifiedStatusRequest
1437
+ * @generated from message river.AppInfoFull
1257
1438
  */
1258
- export type SetAppVerifiedStatusRequest = Message<"river.SetAppVerifiedStatusRequest"> & {
1439
+ export type AppInfoFull = Message<"river.AppInfoFull"> & {
1259
1440
  /**
1260
- * app_id is the address of the app (20 bytes)
1441
+ * app_id is the address of the app (20 bytes, primary identifier)
1261
1442
  *
1262
1443
  * @generated from field: bytes app_id = 1;
1263
1444
  */
1264
1445
  appId: Uint8Array;
1265
1446
  /**
1266
- * verified indicates whether the app has been reviewed and approved by admins
1447
+ * owner is the owner address (20 bytes)
1267
1448
  *
1268
- * @generated from field: bool verified = 2;
1449
+ * @generated from field: bytes owner = 2;
1269
1450
  */
1270
- verified: boolean;
1271
- };
1272
- /**
1273
- * Describes the message river.SetAppVerifiedStatusRequest.
1274
- * Use `create(SetAppVerifiedStatusRequestSchema)` to create a new message.
1275
- */
1276
- export declare const SetAppVerifiedStatusRequestSchema: GenMessage<SetAppVerifiedStatusRequest>;
1277
- /**
1278
- * @generated from message river.SetAppVerifiedStatusResponse
1279
- */
1280
- export type SetAppVerifiedStatusResponse = Message<"river.SetAppVerifiedStatusResponse"> & {};
1281
- /**
1282
- * Describes the message river.SetAppVerifiedStatusResponse.
1283
- * Use `create(SetAppVerifiedStatusResponseSchema)` to create a new message.
1284
- */
1285
- export declare const SetAppVerifiedStatusResponseSchema: GenMessage<SetAppVerifiedStatusResponse>;
1286
- /**
1287
- * SetUserName allows users to set or update their username and display name.
1288
- *
1289
- * @generated from message river.SetUserNameRequest
1290
- */
1291
- export type SetUserNameRequest = Message<"river.SetUserNameRequest"> & {
1451
+ owner: Uint8Array;
1292
1452
  /**
1293
- * username is the new username to set for the authenticated user.
1453
+ * metadata contains the app's profile data
1294
1454
  *
1295
- * @generated from field: string username = 1;
1455
+ * @generated from field: river.AppMetadata metadata = 3;
1296
1456
  */
1297
- username: string;
1457
+ metadata?: AppMetadata;
1298
1458
  /**
1299
- * display_name is the friendly name shown in chat.
1459
+ * install_stats contains installation statistics
1300
1460
  *
1301
- * @generated from field: string display_name = 2;
1461
+ * @generated from field: river.AppInstallStats install_stats = 4;
1302
1462
  */
1303
- displayName: string;
1463
+ installStats?: AppInstallStats;
1464
+ /**
1465
+ * review_summary contains aggregated review data
1466
+ *
1467
+ * @generated from field: river.AppReviewSummary review_summary = 5;
1468
+ */
1469
+ reviewSummary?: AppReviewSummary;
1470
+ /**
1471
+ * is_active indicates whether the app is currently active (published)
1472
+ *
1473
+ * @generated from field: bool is_active = 6;
1474
+ */
1475
+ isActive: boolean;
1476
+ /**
1477
+ * is_promoted indicates whether the app is discoverable in the catalog
1478
+ *
1479
+ * @generated from field: bool is_promoted = 7;
1480
+ */
1481
+ isPromoted: boolean;
1482
+ /**
1483
+ * is_verified indicates whether the app has been reviewed and approved by admins
1484
+ *
1485
+ * @generated from field: bool is_verified = 8;
1486
+ */
1487
+ isVerified: boolean;
1488
+ /**
1489
+ * supported_apis lists the optional APIs this app has declared support for
1490
+ *
1491
+ * @generated from field: repeated river.SupportedApi supported_apis = 9;
1492
+ */
1493
+ supportedApis: SupportedApi[];
1304
1494
  };
1305
1495
  /**
1306
- * Describes the message river.SetUserNameRequest.
1307
- * Use `create(SetUserNameRequestSchema)` to create a new message.
1308
- */
1309
- export declare const SetUserNameRequestSchema: GenMessage<SetUserNameRequest>;
1310
- /**
1311
- * @generated from message river.SetUserNameResponse
1312
- */
1313
- export type SetUserNameResponse = Message<"river.SetUserNameResponse"> & {};
1314
- /**
1315
- * Describes the message river.SetUserNameResponse.
1316
- * Use `create(SetUserNameResponseSchema)` to create a new message.
1496
+ * Describes the message river.AppInfoFull.
1497
+ * Use `create(AppInfoFullSchema)` to create a new message.
1317
1498
  */
1318
- export declare const SetUserNameResponseSchema: GenMessage<SetUserNameResponse>;
1499
+ export declare const AppInfoFullSchema: GenMessage<AppInfoFull>;
1319
1500
  /**
1320
- * GetEntityName request - retrieves username for a single entity.
1501
+ * ListRegisteredAppsRequest retrieves registered apps with optional filters.
1321
1502
  *
1322
- * @generated from message river.GetEntityNameRequest
1503
+ * @generated from message river.ListRegisteredAppsRequest
1323
1504
  */
1324
- export type GetEntityNameRequest = Message<"river.GetEntityNameRequest"> & {
1505
+ export type ListRegisteredAppsRequest = Message<"river.ListRegisteredAppsRequest"> & {
1325
1506
  /**
1326
- * entity_id is the address of the user or app to look up
1507
+ * limit is the maximum number of apps to return
1327
1508
  *
1328
- * @generated from field: bytes entity_id = 1;
1509
+ * @generated from field: int32 limit = 1;
1329
1510
  */
1330
- entityId: Uint8Array;
1511
+ limit: number;
1512
+ /**
1513
+ * offset is the number of apps to skip for pagination
1514
+ *
1515
+ * @generated from field: int32 offset = 2;
1516
+ */
1517
+ offset: number;
1518
+ /**
1519
+ * active_only filters to only return active (published) apps
1520
+ *
1521
+ * @generated from field: bool active_only = 3;
1522
+ */
1523
+ activeOnly: boolean;
1524
+ /**
1525
+ * owner_address filters by owner - for "my apps" view (20 bytes)
1526
+ *
1527
+ * @generated from field: optional bytes owner_address = 4;
1528
+ */
1529
+ ownerAddress?: Uint8Array;
1530
+ /**
1531
+ * stream_id filters by stream - for apps in a DM/GDM (32 bytes)
1532
+ *
1533
+ * @generated from field: optional bytes stream_id = 5;
1534
+ */
1535
+ streamId?: Uint8Array;
1536
+ /**
1537
+ * promoted_only filters to only return promoted (discoverable) apps
1538
+ *
1539
+ * @generated from field: bool promoted_only = 6;
1540
+ */
1541
+ promotedOnly: boolean;
1542
+ /**
1543
+ * search_query searches apps by display_name and description (case-insensitive)
1544
+ *
1545
+ * @generated from field: optional string search_query = 7;
1546
+ */
1547
+ searchQuery?: string;
1331
1548
  };
1332
1549
  /**
1333
- * Describes the message river.GetEntityNameRequest.
1334
- * Use `create(GetEntityNameRequestSchema)` to create a new message.
1550
+ * Describes the message river.ListRegisteredAppsRequest.
1551
+ * Use `create(ListRegisteredAppsRequestSchema)` to create a new message.
1335
1552
  */
1336
- export declare const GetEntityNameRequestSchema: GenMessage<GetEntityNameRequest>;
1553
+ export declare const ListRegisteredAppsRequestSchema: GenMessage<ListRegisteredAppsRequest>;
1337
1554
  /**
1338
- * @generated from message river.GetEntityNameResponse
1555
+ * @generated from message river.ListRegisteredAppsResponse
1339
1556
  */
1340
- export type GetEntityNameResponse = Message<"river.GetEntityNameResponse"> & {
1557
+ export type ListRegisteredAppsResponse = Message<"river.ListRegisteredAppsResponse"> & {
1341
1558
  /**
1342
- * username is the entity's chosen username
1559
+ * apps is the list of matching apps
1343
1560
  *
1344
- * @generated from field: string username = 1;
1561
+ * @generated from field: repeated river.AppInfoFull apps = 1;
1345
1562
  */
1346
- username: string;
1563
+ apps: AppInfoFull[];
1347
1564
  /**
1348
- * display_name is the entity's friendly display name
1565
+ * total_count is the total number of matching apps (for pagination)
1349
1566
  *
1350
- * @generated from field: string display_name = 2;
1567
+ * @generated from field: int32 total_count = 2;
1351
1568
  */
1352
- displayName: string;
1569
+ totalCount: number;
1570
+ };
1571
+ /**
1572
+ * Describes the message river.ListRegisteredAppsResponse.
1573
+ * Use `create(ListRegisteredAppsResponseSchema)` to create a new message.
1574
+ */
1575
+ export declare const ListRegisteredAppsResponseSchema: GenMessage<ListRegisteredAppsResponse>;
1576
+ /**
1577
+ * GetBulkAppDataRequest retrieves full app data for multiple apps.
1578
+ *
1579
+ * @generated from message river.GetBulkAppDataRequest
1580
+ */
1581
+ export type GetBulkAppDataRequest = Message<"river.GetBulkAppDataRequest"> & {
1353
1582
  /**
1354
- * entity_type indicates whether this is a user (0) or app (1)
1583
+ * app_ids is the list of app addresses to look up (each 20 bytes)
1355
1584
  *
1356
- * @generated from field: int32 entity_type = 3;
1585
+ * @generated from field: repeated bytes app_ids = 1;
1357
1586
  */
1358
- entityType: number;
1587
+ appIds: Uint8Array[];
1359
1588
  };
1360
1589
  /**
1361
- * Describes the message river.GetEntityNameResponse.
1362
- * Use `create(GetEntityNameResponseSchema)` to create a new message.
1590
+ * Describes the message river.GetBulkAppDataRequest.
1591
+ * Use `create(GetBulkAppDataRequestSchema)` to create a new message.
1363
1592
  */
1364
- export declare const GetEntityNameResponseSchema: GenMessage<GetEntityNameResponse>;
1593
+ export declare const GetBulkAppDataRequestSchema: GenMessage<GetBulkAppDataRequest>;
1365
1594
  /**
1366
- * GetBatchEntityNames request - retrieves usernames for multiple entities.
1367
- *
1368
- * @generated from message river.GetBatchEntityNamesRequest
1595
+ * @generated from message river.GetBulkAppDataResponse
1369
1596
  */
1370
- export type GetBatchEntityNamesRequest = Message<"river.GetBatchEntityNamesRequest"> & {
1597
+ export type GetBulkAppDataResponse = Message<"river.GetBulkAppDataResponse"> & {
1371
1598
  /**
1372
- * entity_ids is the list of addresses to look up
1599
+ * apps is the list of app data for found apps
1373
1600
  *
1374
- * @generated from field: repeated bytes entity_ids = 1;
1601
+ * @generated from field: repeated river.AppInfoFull apps = 1;
1375
1602
  */
1376
- entityIds: Uint8Array[];
1603
+ apps: AppInfoFull[];
1377
1604
  };
1378
1605
  /**
1379
- * Describes the message river.GetBatchEntityNamesRequest.
1380
- * Use `create(GetBatchEntityNamesRequestSchema)` to create a new message.
1606
+ * Describes the message river.GetBulkAppDataResponse.
1607
+ * Use `create(GetBulkAppDataResponseSchema)` to create a new message.
1381
1608
  */
1382
- export declare const GetBatchEntityNamesRequestSchema: GenMessage<GetBatchEntityNamesRequest>;
1609
+ export declare const GetBulkAppDataResponseSchema: GenMessage<GetBulkAppDataResponse>;
1383
1610
  /**
1384
- * EntityNameInfo contains the name information for a single entity.
1611
+ * GetAppInstallStatsRequest retrieves installation stats for a single app.
1385
1612
  *
1386
- * @generated from message river.EntityNameInfo
1613
+ * @generated from message river.GetAppInstallStatsRequest
1387
1614
  */
1388
- export type EntityNameInfo = Message<"river.EntityNameInfo"> & {
1389
- /**
1390
- * entity_id is the address of the entity
1391
- *
1392
- * @generated from field: bytes entity_id = 1;
1393
- */
1394
- entityId: Uint8Array;
1395
- /**
1396
- * username is the entity's chosen username
1397
- *
1398
- * @generated from field: string username = 2;
1399
- */
1400
- username: string;
1401
- /**
1402
- * display_name is the entity's friendly display name
1403
- *
1404
- * @generated from field: string display_name = 3;
1405
- */
1406
- displayName: string;
1615
+ export type GetAppInstallStatsRequest = Message<"river.GetAppInstallStatsRequest"> & {
1407
1616
  /**
1408
- * entity_type indicates whether this is a user (0) or app (1)
1617
+ * app_id is the address of the app (20 bytes)
1409
1618
  *
1410
- * @generated from field: int32 entity_type = 4;
1619
+ * @generated from field: bytes app_id = 1;
1411
1620
  */
1412
- entityType: number;
1621
+ appId: Uint8Array;
1413
1622
  };
1414
1623
  /**
1415
- * Describes the message river.EntityNameInfo.
1416
- * Use `create(EntityNameInfoSchema)` to create a new message.
1624
+ * Describes the message river.GetAppInstallStatsRequest.
1625
+ * Use `create(GetAppInstallStatsRequestSchema)` to create a new message.
1417
1626
  */
1418
- export declare const EntityNameInfoSchema: GenMessage<EntityNameInfo>;
1627
+ export declare const GetAppInstallStatsRequestSchema: GenMessage<GetAppInstallStatsRequest>;
1419
1628
  /**
1420
- * @generated from message river.GetBatchEntityNamesResponse
1629
+ * @generated from message river.GetAppInstallStatsResponse
1421
1630
  */
1422
- export type GetBatchEntityNamesResponse = Message<"river.GetBatchEntityNamesResponse"> & {
1631
+ export type GetAppInstallStatsResponse = Message<"river.GetAppInstallStatsResponse"> & {
1423
1632
  /**
1424
- * entities contains the name info for each found entity.
1425
- * Entities that have not set usernames will not be included.
1633
+ * stats contains the installation statistics
1426
1634
  *
1427
- * @generated from field: repeated river.EntityNameInfo entities = 1;
1635
+ * @generated from field: river.AppInstallStats stats = 1;
1428
1636
  */
1429
- entities: EntityNameInfo[];
1637
+ stats?: AppInstallStats;
1430
1638
  };
1431
1639
  /**
1432
- * Describes the message river.GetBatchEntityNamesResponse.
1433
- * Use `create(GetBatchEntityNamesResponseSchema)` to create a new message.
1640
+ * Describes the message river.GetAppInstallStatsResponse.
1641
+ * Use `create(GetAppInstallStatsResponseSchema)` to create a new message.
1434
1642
  */
1435
- export declare const GetBatchEntityNamesResponseSchema: GenMessage<GetBatchEntityNamesResponse>;
1643
+ export declare const GetAppInstallStatsResponseSchema: GenMessage<GetAppInstallStatsResponse>;
1436
1644
  /**
1437
- * SearchEntityNames request - searches entities by username or display name.
1645
+ * GetBulkAppInstallStatsRequest retrieves installation stats for multiple apps.
1438
1646
  *
1439
- * @generated from message river.SearchEntityNamesRequest
1647
+ * @generated from message river.GetBulkAppInstallStatsRequest
1440
1648
  */
1441
- export type SearchEntityNamesRequest = Message<"river.SearchEntityNamesRequest"> & {
1442
- /**
1443
- * search_query is the text to search for in usernames and display names.
1444
- * Must be at least 3 characters long.
1445
- *
1446
- * @generated from field: string search_query = 1;
1447
- */
1448
- searchQuery: string;
1449
- /**
1450
- * limit is the maximum number of results to return (default 10, max 20).
1451
- *
1452
- * @generated from field: int32 limit = 2;
1453
- */
1454
- limit: number;
1455
- /**
1456
- * entity_type optionally filters by entity type (0=user, 1=app).
1457
- * If not set, all entity types are returned.
1458
- *
1459
- * @generated from field: optional int32 entity_type = 3;
1460
- */
1461
- entityType?: number;
1649
+ export type GetBulkAppInstallStatsRequest = Message<"river.GetBulkAppInstallStatsRequest"> & {
1462
1650
  /**
1463
- * offset is the number of results to skip for pagination (default 0).
1651
+ * app_ids is the list of app addresses to look up (each 20 bytes)
1464
1652
  *
1465
- * @generated from field: int32 offset = 4;
1653
+ * @generated from field: repeated bytes app_ids = 1;
1466
1654
  */
1467
- offset: number;
1655
+ appIds: Uint8Array[];
1468
1656
  };
1469
1657
  /**
1470
- * Describes the message river.SearchEntityNamesRequest.
1471
- * Use `create(SearchEntityNamesRequestSchema)` to create a new message.
1658
+ * Describes the message river.GetBulkAppInstallStatsRequest.
1659
+ * Use `create(GetBulkAppInstallStatsRequestSchema)` to create a new message.
1472
1660
  */
1473
- export declare const SearchEntityNamesRequestSchema: GenMessage<SearchEntityNamesRequest>;
1661
+ export declare const GetBulkAppInstallStatsRequestSchema: GenMessage<GetBulkAppInstallStatsRequest>;
1474
1662
  /**
1475
- * @generated from message river.SearchEntityNamesResponse
1663
+ * @generated from message river.GetBulkAppInstallStatsResponse
1476
1664
  */
1477
- export type SearchEntityNamesResponse = Message<"river.SearchEntityNamesResponse"> & {
1665
+ export type GetBulkAppInstallStatsResponse = Message<"river.GetBulkAppInstallStatsResponse"> & {
1478
1666
  /**
1479
- * entities contains the matching entity name records.
1667
+ * stats is a map of app_id (hex string) to installation stats
1480
1668
  *
1481
- * @generated from field: repeated river.EntityNameInfo entities = 1;
1669
+ * @generated from field: repeated river.AppInstallStats stats = 1;
1482
1670
  */
1483
- entities: EntityNameInfo[];
1671
+ stats: AppInstallStats[];
1484
1672
  };
1485
1673
  /**
1486
- * Describes the message river.SearchEntityNamesResponse.
1487
- * Use `create(SearchEntityNamesResponseSchema)` to create a new message.
1674
+ * Describes the message river.GetBulkAppInstallStatsResponse.
1675
+ * Use `create(GetBulkAppInstallStatsResponseSchema)` to create a new message.
1488
1676
  */
1489
- export declare const SearchEntityNamesResponseSchema: GenMessage<SearchEntityNamesResponse>;
1677
+ export declare const GetBulkAppInstallStatsResponseSchema: GenMessage<GetBulkAppInstallStatsResponse>;
1490
1678
  /**
1491
- * InviteEncryptionSession contains a single group session key that can be imported
1492
- * by the invitee before joining a stream.
1679
+ * SubmitAppReviewRequest creates or updates a review.
1493
1680
  *
1494
- * @generated from message river.InviteEncryptionSession
1681
+ * @generated from message river.SubmitAppReviewRequest
1495
1682
  */
1496
- export type InviteEncryptionSession = Message<"river.InviteEncryptionSession"> & {
1683
+ export type SubmitAppReviewRequest = Message<"river.SubmitAppReviewRequest"> & {
1497
1684
  /**
1498
- * session_id is the group session identifier.
1685
+ * app_id is the address of the app to review (20 bytes)
1499
1686
  *
1500
- * @generated from field: string session_id = 1;
1687
+ * @generated from field: bytes app_id = 1;
1501
1688
  */
1502
- sessionId: string;
1689
+ appId: Uint8Array;
1503
1690
  /**
1504
- * session_key is the exported session key material.
1691
+ * rating is the review rating (1-5)
1505
1692
  *
1506
- * @generated from field: string session_key = 2;
1693
+ * @generated from field: int32 rating = 2;
1507
1694
  */
1508
- sessionKey: string;
1695
+ rating: number;
1696
+ /**
1697
+ * comment is the optional review text
1698
+ *
1699
+ * @generated from field: string comment = 3;
1700
+ */
1701
+ comment: string;
1509
1702
  };
1510
1703
  /**
1511
- * Describes the message river.InviteEncryptionSession.
1512
- * Use `create(InviteEncryptionSessionSchema)` to create a new message.
1704
+ * Describes the message river.SubmitAppReviewRequest.
1705
+ * Use `create(SubmitAppReviewRequestSchema)` to create a new message.
1513
1706
  */
1514
- export declare const InviteEncryptionSessionSchema: GenMessage<InviteEncryptionSession>;
1707
+ export declare const SubmitAppReviewRequestSchema: GenMessage<SubmitAppReviewRequest>;
1515
1708
  /**
1516
- * InviteEncryptionData contains key material shared via invite links so an invitee
1517
- * can decrypt prior GDM history immediately after joining.
1518
- *
1519
- * @generated from message river.InviteEncryptionData
1709
+ * @generated from message river.SubmitAppReviewResponse
1520
1710
  */
1521
- export type InviteEncryptionData = Message<"river.InviteEncryptionData"> & {
1522
- /**
1523
- * stream_id is the 32-byte stream ID these keys belong to.
1524
- *
1525
- * @generated from field: bytes stream_id = 1;
1526
- */
1527
- streamId: Uint8Array;
1528
- /**
1529
- * algorithm is the group encryption algorithm identifier.
1530
- *
1531
- * @generated from field: string algorithm = 2;
1532
- */
1533
- algorithm: string;
1711
+ export type SubmitAppReviewResponse = Message<"river.SubmitAppReviewResponse"> & {
1534
1712
  /**
1535
- * sessions is the list of group session keys to import.
1713
+ * review_id is the unique identifier of the created/updated review
1536
1714
  *
1537
- * @generated from field: repeated river.InviteEncryptionSession sessions = 3;
1715
+ * @generated from field: string review_id = 1;
1538
1716
  */
1539
- sessions: InviteEncryptionSession[];
1717
+ reviewId: string;
1540
1718
  };
1541
1719
  /**
1542
- * Describes the message river.InviteEncryptionData.
1543
- * Use `create(InviteEncryptionDataSchema)` to create a new message.
1720
+ * Describes the message river.SubmitAppReviewResponse.
1721
+ * Use `create(SubmitAppReviewResponseSchema)` to create a new message.
1544
1722
  */
1545
- export declare const InviteEncryptionDataSchema: GenMessage<InviteEncryptionData>;
1723
+ export declare const SubmitAppReviewResponseSchema: GenMessage<SubmitAppReviewResponse>;
1546
1724
  /**
1547
- * CreateInviteLink - creates a new invite link for a stream
1725
+ * GetAppReviewsRequest retrieves paginated reviews for an app.
1548
1726
  *
1549
- * @generated from message river.CreateInviteLinkRequest
1727
+ * @generated from message river.GetAppReviewsRequest
1550
1728
  */
1551
- export type CreateInviteLinkRequest = Message<"river.CreateInviteLinkRequest"> & {
1729
+ export type GetAppReviewsRequest = Message<"river.GetAppReviewsRequest"> & {
1552
1730
  /**
1553
- * stream_id is the 32-byte stream ID
1731
+ * app_id is the address of the app (20 bytes)
1554
1732
  *
1555
- * @generated from field: bytes stream_id = 1;
1733
+ * @generated from field: bytes app_id = 1;
1556
1734
  */
1557
- streamId: Uint8Array;
1735
+ appId: Uint8Array;
1558
1736
  /**
1559
- * invite_encryption_data contains group session keys that the invitee must
1560
- * import before joining.
1737
+ * limit is the maximum number of reviews to return
1561
1738
  *
1562
- * @generated from field: river.InviteEncryptionData invite_encryption_data = 2;
1739
+ * @generated from field: int32 limit = 2;
1563
1740
  */
1564
- inviteEncryptionData?: InviteEncryptionData;
1741
+ limit: number;
1565
1742
  /**
1566
- * channel_properties contains the GDM channel properties (name, topic, image)
1567
- * so the invitee can display them before joining.
1743
+ * offset is the number of reviews to skip for pagination
1568
1744
  *
1569
- * @generated from field: optional river.ChannelProperties channel_properties = 3;
1745
+ * @generated from field: int32 offset = 3;
1570
1746
  */
1571
- channelProperties?: ChannelProperties;
1747
+ offset: number;
1572
1748
  };
1573
1749
  /**
1574
- * Describes the message river.CreateInviteLinkRequest.
1575
- * Use `create(CreateInviteLinkRequestSchema)` to create a new message.
1750
+ * Describes the message river.GetAppReviewsRequest.
1751
+ * Use `create(GetAppReviewsRequestSchema)` to create a new message.
1576
1752
  */
1577
- export declare const CreateInviteLinkRequestSchema: GenMessage<CreateInviteLinkRequest>;
1753
+ export declare const GetAppReviewsRequestSchema: GenMessage<GetAppReviewsRequest>;
1578
1754
  /**
1579
- * @generated from message river.CreateInviteLinkResponse
1755
+ * @generated from message river.GetAppReviewsResponse
1580
1756
  */
1581
- export type CreateInviteLinkResponse = Message<"river.CreateInviteLinkResponse"> & {
1757
+ export type GetAppReviewsResponse = Message<"river.GetAppReviewsResponse"> & {
1582
1758
  /**
1583
- * invite_code is the 16-character base64url-safe invite code
1759
+ * reviews is the list of reviews
1584
1760
  *
1585
- * @generated from field: string invite_code = 1;
1761
+ * @generated from field: repeated river.AppReview reviews = 1;
1586
1762
  */
1587
- inviteCode: string;
1763
+ reviews: AppReview[];
1764
+ /**
1765
+ * total_count is the total number of reviews (for pagination)
1766
+ *
1767
+ * @generated from field: int32 total_count = 2;
1768
+ */
1769
+ totalCount: number;
1588
1770
  };
1589
1771
  /**
1590
- * Describes the message river.CreateInviteLinkResponse.
1591
- * Use `create(CreateInviteLinkResponseSchema)` to create a new message.
1772
+ * Describes the message river.GetAppReviewsResponse.
1773
+ * Use `create(GetAppReviewsResponseSchema)` to create a new message.
1592
1774
  */
1593
- export declare const CreateInviteLinkResponseSchema: GenMessage<CreateInviteLinkResponse>;
1775
+ export declare const GetAppReviewsResponseSchema: GenMessage<GetAppReviewsResponse>;
1594
1776
  /**
1595
- * RevokeInviteLink - invalidates the current invite link
1777
+ * RevokeAppReviewRequest revokes the caller's review for an app.
1596
1778
  *
1597
- * @generated from message river.RevokeInviteLinkRequest
1779
+ * @generated from message river.RevokeAppReviewRequest
1598
1780
  */
1599
- export type RevokeInviteLinkRequest = Message<"river.RevokeInviteLinkRequest"> & {
1781
+ export type RevokeAppReviewRequest = Message<"river.RevokeAppReviewRequest"> & {
1600
1782
  /**
1601
- * stream_id is the 32-byte stream ID
1783
+ * app_id is the address of the app (20 bytes)
1602
1784
  *
1603
- * @generated from field: bytes stream_id = 1;
1785
+ * @generated from field: bytes app_id = 1;
1604
1786
  */
1605
- streamId: Uint8Array;
1787
+ appId: Uint8Array;
1606
1788
  };
1607
1789
  /**
1608
- * Describes the message river.RevokeInviteLinkRequest.
1609
- * Use `create(RevokeInviteLinkRequestSchema)` to create a new message.
1790
+ * Describes the message river.RevokeAppReviewRequest.
1791
+ * Use `create(RevokeAppReviewRequestSchema)` to create a new message.
1610
1792
  */
1611
- export declare const RevokeInviteLinkRequestSchema: GenMessage<RevokeInviteLinkRequest>;
1793
+ export declare const RevokeAppReviewRequestSchema: GenMessage<RevokeAppReviewRequest>;
1612
1794
  /**
1613
- * @generated from message river.RevokeInviteLinkResponse
1795
+ * @generated from message river.RevokeAppReviewResponse
1614
1796
  */
1615
- export type RevokeInviteLinkResponse = Message<"river.RevokeInviteLinkResponse"> & {};
1797
+ export type RevokeAppReviewResponse = Message<"river.RevokeAppReviewResponse"> & {};
1616
1798
  /**
1617
- * Describes the message river.RevokeInviteLinkResponse.
1618
- * Use `create(RevokeInviteLinkResponseSchema)` to create a new message.
1799
+ * Describes the message river.RevokeAppReviewResponse.
1800
+ * Use `create(RevokeAppReviewResponseSchema)` to create a new message.
1619
1801
  */
1620
- export declare const RevokeInviteLinkResponseSchema: GenMessage<RevokeInviteLinkResponse>;
1802
+ export declare const RevokeAppReviewResponseSchema: GenMessage<RevokeAppReviewResponse>;
1621
1803
  /**
1622
- * RedeemInviteLink - validates invite code and returns signed payload.
1623
- * The stream ID is determined by the invite code lookup.
1804
+ * GetAppReviewSummaryRequest retrieves review summary for a single app.
1624
1805
  *
1625
- * @generated from message river.RedeemInviteLinkRequest
1806
+ * @generated from message river.GetAppReviewSummaryRequest
1626
1807
  */
1627
- export type RedeemInviteLinkRequest = Message<"river.RedeemInviteLinkRequest"> & {
1808
+ export type GetAppReviewSummaryRequest = Message<"river.GetAppReviewSummaryRequest"> & {
1628
1809
  /**
1629
- * invite_code is the 16-character invite code to redeem
1810
+ * app_id is the address of the app (20 bytes)
1630
1811
  *
1631
- * @generated from field: string invite_code = 1;
1812
+ * @generated from field: bytes app_id = 1;
1632
1813
  */
1633
- inviteCode: string;
1814
+ appId: Uint8Array;
1634
1815
  };
1635
1816
  /**
1636
- * Describes the message river.RedeemInviteLinkRequest.
1637
- * Use `create(RedeemInviteLinkRequestSchema)` to create a new message.
1817
+ * Describes the message river.GetAppReviewSummaryRequest.
1818
+ * Use `create(GetAppReviewSummaryRequestSchema)` to create a new message.
1638
1819
  */
1639
- export declare const RedeemInviteLinkRequestSchema: GenMessage<RedeemInviteLinkRequest>;
1820
+ export declare const GetAppReviewSummaryRequestSchema: GenMessage<GetAppReviewSummaryRequest>;
1640
1821
  /**
1641
- * @generated from message river.RedeemInviteLinkResponse
1822
+ * @generated from message river.GetAppReviewSummaryResponse
1642
1823
  */
1643
- export type RedeemInviteLinkResponse = Message<"river.RedeemInviteLinkResponse"> & {
1644
- /**
1645
- * signed_payload contains the signed invitation that can be used to join the stream
1646
- *
1647
- * @generated from field: river.InviteSignedPayload signed_payload = 1;
1648
- */
1649
- signedPayload?: InviteSignedPayload;
1650
- /**
1651
- * invite_encryption_data contains group session keys to import before join.
1652
- *
1653
- * @generated from field: river.InviteEncryptionData invite_encryption_data = 2;
1654
- */
1655
- inviteEncryptionData?: InviteEncryptionData;
1824
+ export type GetAppReviewSummaryResponse = Message<"river.GetAppReviewSummaryResponse"> & {
1656
1825
  /**
1657
- * channel_properties contains the GDM channel properties from the invite creator.
1826
+ * summary contains the aggregated review statistics
1658
1827
  *
1659
- * @generated from field: optional river.ChannelProperties channel_properties = 3;
1828
+ * @generated from field: river.AppReviewSummary summary = 1;
1660
1829
  */
1661
- channelProperties?: ChannelProperties;
1830
+ summary?: AppReviewSummary;
1662
1831
  };
1663
1832
  /**
1664
- * Describes the message river.RedeemInviteLinkResponse.
1665
- * Use `create(RedeemInviteLinkResponseSchema)` to create a new message.
1833
+ * Describes the message river.GetAppReviewSummaryResponse.
1834
+ * Use `create(GetAppReviewSummaryResponseSchema)` to create a new message.
1666
1835
  */
1667
- export declare const RedeemInviteLinkResponseSchema: GenMessage<RedeemInviteLinkResponse>;
1836
+ export declare const GetAppReviewSummaryResponseSchema: GenMessage<GetAppReviewSummaryResponse>;
1668
1837
  /**
1669
- * GetInviteLink - retrieves the current active invite link
1838
+ * GetBulkAppReviewSummariesRequest retrieves review summaries for multiple apps.
1670
1839
  *
1671
- * @generated from message river.GetInviteLinkRequest
1840
+ * @generated from message river.GetBulkAppReviewSummariesRequest
1672
1841
  */
1673
- export type GetInviteLinkRequest = Message<"river.GetInviteLinkRequest"> & {
1842
+ export type GetBulkAppReviewSummariesRequest = Message<"river.GetBulkAppReviewSummariesRequest"> & {
1674
1843
  /**
1675
- * stream_id is the 32-byte stream ID
1844
+ * app_ids is the list of app addresses to look up (each 20 bytes)
1676
1845
  *
1677
- * @generated from field: bytes stream_id = 1;
1846
+ * @generated from field: repeated bytes app_ids = 1;
1678
1847
  */
1679
- streamId: Uint8Array;
1848
+ appIds: Uint8Array[];
1680
1849
  };
1681
1850
  /**
1682
- * Describes the message river.GetInviteLinkRequest.
1683
- * Use `create(GetInviteLinkRequestSchema)` to create a new message.
1851
+ * Describes the message river.GetBulkAppReviewSummariesRequest.
1852
+ * Use `create(GetBulkAppReviewSummariesRequestSchema)` to create a new message.
1684
1853
  */
1685
- export declare const GetInviteLinkRequestSchema: GenMessage<GetInviteLinkRequest>;
1854
+ export declare const GetBulkAppReviewSummariesRequestSchema: GenMessage<GetBulkAppReviewSummariesRequest>;
1686
1855
  /**
1687
- * @generated from message river.GetInviteLinkResponse
1856
+ * @generated from message river.GetBulkAppReviewSummariesResponse
1688
1857
  */
1689
- export type GetInviteLinkResponse = Message<"river.GetInviteLinkResponse"> & {
1690
- /**
1691
- * invite_code is the current active invite code, if any
1692
- *
1693
- * @generated from field: optional string invite_code = 1;
1694
- */
1695
- inviteCode?: string;
1858
+ export type GetBulkAppReviewSummariesResponse = Message<"river.GetBulkAppReviewSummariesResponse"> & {
1696
1859
  /**
1697
- * created_at_epoch_ms is when the invite was created
1860
+ * summaries is the list of review summaries for found apps
1698
1861
  *
1699
- * @generated from field: optional int64 created_at_epoch_ms = 2;
1862
+ * @generated from field: repeated river.AppReviewSummary summaries = 1;
1700
1863
  */
1701
- createdAtEpochMs?: bigint;
1864
+ summaries: AppReviewSummary[];
1702
1865
  };
1703
1866
  /**
1704
- * Describes the message river.GetInviteLinkResponse.
1705
- * Use `create(GetInviteLinkResponseSchema)` to create a new message.
1867
+ * Describes the message river.GetBulkAppReviewSummariesResponse.
1868
+ * Use `create(GetBulkAppReviewSummariesResponseSchema)` to create a new message.
1706
1869
  */
1707
- export declare const GetInviteLinkResponseSchema: GenMessage<GetInviteLinkResponse>;
1870
+ export declare const GetBulkAppReviewSummariesResponseSchema: GenMessage<GetBulkAppReviewSummariesResponse>;
1708
1871
  /**
1709
- * AppInstallStats contains installation statistics for an app.
1872
+ * GetAppPositionsRequest retrieves positions for the authenticated user from a single app.
1710
1873
  *
1711
- * @generated from message river.AppInstallStats
1874
+ * @generated from message river.GetAppPositionsRequest
1712
1875
  */
1713
- export type AppInstallStats = Message<"river.AppInstallStats"> & {
1876
+ export type GetAppPositionsRequest = Message<"river.GetAppPositionsRequest"> & {
1714
1877
  /**
1715
1878
  * app_id is the address of the app (20 bytes)
1716
1879
  *
1717
1880
  * @generated from field: bytes app_id = 1;
1718
1881
  */
1719
1882
  appId: Uint8Array;
1720
- /**
1721
- * install_count is the number of active DM/GDM installations
1722
- *
1723
- * @generated from field: int32 install_count = 2;
1724
- */
1725
- installCount: number;
1726
1883
  };
1727
1884
  /**
1728
- * Describes the message river.AppInstallStats.
1729
- * Use `create(AppInstallStatsSchema)` to create a new message.
1885
+ * Describes the message river.GetAppPositionsRequest.
1886
+ * Use `create(GetAppPositionsRequestSchema)` to create a new message.
1730
1887
  */
1731
- export declare const AppInstallStatsSchema: GenMessage<AppInstallStats>;
1888
+ export declare const GetAppPositionsRequestSchema: GenMessage<GetAppPositionsRequest>;
1732
1889
  /**
1733
- * AppReview represents a single review for an app.
1734
- *
1735
- * @generated from message river.AppReview
1890
+ * @generated from message river.GetAppPositionsResponse
1736
1891
  */
1737
- export type AppReview = Message<"river.AppReview"> & {
1738
- /**
1739
- * id is the unique review identifier (UUID string)
1740
- *
1741
- * @generated from field: string id = 1;
1742
- */
1743
- id: string;
1892
+ export type GetAppPositionsResponse = Message<"river.GetAppPositionsResponse"> & {
1744
1893
  /**
1745
- * app_id is the address of the app being reviewed (20 bytes)
1894
+ * app_id is the address of the app (20 bytes)
1746
1895
  *
1747
- * @generated from field: bytes app_id = 2;
1896
+ * @generated from field: bytes app_id = 1;
1748
1897
  */
1749
1898
  appId: Uint8Array;
1750
1899
  /**
1751
- * reviewer_address is the wallet address of the reviewer (20 bytes)
1752
- *
1753
- * @generated from field: bytes reviewer_address = 3;
1754
- */
1755
- reviewerAddress: Uint8Array;
1756
- /**
1757
- * rating is the review rating (1-5)
1758
- *
1759
- * @generated from field: int32 rating = 4;
1760
- */
1761
- rating: number;
1762
- /**
1763
- * comment is the optional review text
1900
+ * positions contains the position data from the bot
1764
1901
  *
1765
- * @generated from field: string comment = 5;
1902
+ * @generated from field: river.PositionsResponse positions = 2;
1766
1903
  */
1767
- comment: string;
1904
+ positions?: PositionsResponse;
1905
+ };
1906
+ /**
1907
+ * Describes the message river.GetAppPositionsResponse.
1908
+ * Use `create(GetAppPositionsResponseSchema)` to create a new message.
1909
+ */
1910
+ export declare const GetAppPositionsResponseSchema: GenMessage<GetAppPositionsResponse>;
1911
+ /**
1912
+ * GetBatchAppPositionsRequest retrieves positions from multiple apps.
1913
+ *
1914
+ * @generated from message river.GetBatchAppPositionsRequest
1915
+ */
1916
+ export type GetBatchAppPositionsRequest = Message<"river.GetBatchAppPositionsRequest"> & {
1768
1917
  /**
1769
- * created_at_ms is the creation timestamp in milliseconds since epoch
1918
+ * app_ids is the list of app addresses to query (each 20 bytes)
1919
+ * Maximum 10 apps per request (enforced server-side)
1770
1920
  *
1771
- * @generated from field: int64 created_at_ms = 6;
1921
+ * @generated from field: repeated bytes app_ids = 1;
1772
1922
  */
1773
- createdAtMs: bigint;
1923
+ appIds: Uint8Array[];
1924
+ };
1925
+ /**
1926
+ * Describes the message river.GetBatchAppPositionsRequest.
1927
+ * Use `create(GetBatchAppPositionsRequestSchema)` to create a new message.
1928
+ */
1929
+ export declare const GetBatchAppPositionsRequestSchema: GenMessage<GetBatchAppPositionsRequest>;
1930
+ /**
1931
+ * @generated from message river.GetBatchAppPositionsResponse
1932
+ */
1933
+ export type GetBatchAppPositionsResponse = Message<"river.GetBatchAppPositionsResponse"> & {
1774
1934
  /**
1775
- * is_revoked indicates if the review has been revoked
1935
+ * entries contains position data for each requested app
1776
1936
  *
1777
- * @generated from field: bool is_revoked = 7;
1937
+ * @generated from field: repeated river.AppPositionsEntry entries = 1;
1778
1938
  */
1779
- isRevoked: boolean;
1939
+ entries: AppPositionsEntry[];
1780
1940
  };
1781
1941
  /**
1782
- * Describes the message river.AppReview.
1783
- * Use `create(AppReviewSchema)` to create a new message.
1942
+ * Describes the message river.GetBatchAppPositionsResponse.
1943
+ * Use `create(GetBatchAppPositionsResponseSchema)` to create a new message.
1784
1944
  */
1785
- export declare const AppReviewSchema: GenMessage<AppReview>;
1945
+ export declare const GetBatchAppPositionsResponseSchema: GenMessage<GetBatchAppPositionsResponse>;
1786
1946
  /**
1787
- * AppReviewSummary contains aggregated review statistics for an app.
1947
+ * AppPositionsEntry contains position data for a single app in a batch response.
1788
1948
  *
1789
- * @generated from message river.AppReviewSummary
1949
+ * @generated from message river.AppPositionsEntry
1790
1950
  */
1791
- export type AppReviewSummary = Message<"river.AppReviewSummary"> & {
1951
+ export type AppPositionsEntry = Message<"river.AppPositionsEntry"> & {
1792
1952
  /**
1793
1953
  * app_id is the address of the app (20 bytes)
1794
1954
  *
@@ -1796,918 +1956,972 @@ export type AppReviewSummary = Message<"river.AppReviewSummary"> & {
1796
1956
  */
1797
1957
  appId: Uint8Array;
1798
1958
  /**
1799
- * total_reviews is the total number of reviews (including revoked)
1959
+ * positions contains the position data from the bot
1800
1960
  *
1801
- * @generated from field: int32 total_reviews = 2;
1961
+ * @generated from field: river.PositionsResponse positions = 2;
1802
1962
  */
1803
- totalReviews: number;
1963
+ positions?: PositionsResponse;
1804
1964
  /**
1805
- * active_reviews is the number of non-revoked reviews
1965
+ * error contains an error message if this specific app failed
1806
1966
  *
1807
- * @generated from field: int32 active_reviews = 3;
1967
+ * @generated from field: optional string error = 3;
1808
1968
  */
1809
- activeReviews: number;
1969
+ error?: string;
1970
+ };
1971
+ /**
1972
+ * Describes the message river.AppPositionsEntry.
1973
+ * Use `create(AppPositionsEntrySchema)` to create a new message.
1974
+ */
1975
+ export declare const AppPositionsEntrySchema: GenMessage<AppPositionsEntry>;
1976
+ /**
1977
+ * GetBatchAppPnlRequest retrieves PNL data from multiple apps for multiple users.
1978
+ *
1979
+ * @generated from message river.GetBatchAppPnlRequest
1980
+ */
1981
+ export type GetBatchAppPnlRequest = Message<"river.GetBatchAppPnlRequest"> & {
1810
1982
  /**
1811
- * average_rating is the average rating from active reviews
1983
+ * app_ids is the list of app addresses to query (each 20 bytes).
1984
+ * If empty, all active apps supporting the PNL API are queried.
1985
+ * Maximum 10 apps per request (enforced server-side).
1812
1986
  *
1813
- * @generated from field: float average_rating = 4;
1987
+ * @generated from field: repeated bytes app_ids = 1;
1814
1988
  */
1815
- averageRating: number;
1989
+ appIds: Uint8Array[];
1990
+ /**
1991
+ * user_ids is the list of user addresses to query (each 20 bytes)
1992
+ * Maximum 100 users per request (enforced server-side)
1993
+ *
1994
+ * @generated from field: repeated bytes user_ids = 2;
1995
+ */
1996
+ userIds: Uint8Array[];
1816
1997
  };
1817
1998
  /**
1818
- * Describes the message river.AppReviewSummary.
1819
- * Use `create(AppReviewSummarySchema)` to create a new message.
1999
+ * Describes the message river.GetBatchAppPnlRequest.
2000
+ * Use `create(GetBatchAppPnlRequestSchema)` to create a new message.
1820
2001
  */
1821
- export declare const AppReviewSummarySchema: GenMessage<AppReviewSummary>;
2002
+ export declare const GetBatchAppPnlRequestSchema: GenMessage<GetBatchAppPnlRequest>;
1822
2003
  /**
1823
- * AppInfoFull contains complete app information for discovery.
1824
- *
1825
- * @generated from message river.AppInfoFull
2004
+ * @generated from message river.GetBatchAppPnlResponse
1826
2005
  */
1827
- export type AppInfoFull = Message<"river.AppInfoFull"> & {
2006
+ export type GetBatchAppPnlResponse = Message<"river.GetBatchAppPnlResponse"> & {
1828
2007
  /**
1829
- * app_id is the address of the app (20 bytes, primary identifier)
2008
+ * users contains aggregated PNL data for each requested user
1830
2009
  *
1831
- * @generated from field: bytes app_id = 1;
2010
+ * @generated from field: repeated river.UserAggregatedPnl users = 1;
1832
2011
  */
1833
- appId: Uint8Array;
2012
+ users: UserAggregatedPnl[];
2013
+ };
2014
+ /**
2015
+ * Describes the message river.GetBatchAppPnlResponse.
2016
+ * Use `create(GetBatchAppPnlResponseSchema)` to create a new message.
2017
+ */
2018
+ export declare const GetBatchAppPnlResponseSchema: GenMessage<GetBatchAppPnlResponse>;
2019
+ /**
2020
+ * UserAggregatedPnl contains aggregated PNL totals for a single user across all queried apps.
2021
+ *
2022
+ * @generated from message river.UserAggregatedPnl
2023
+ */
2024
+ export type UserAggregatedPnl = Message<"river.UserAggregatedPnl"> & {
1834
2025
  /**
1835
- * owner is the owner address (20 bytes)
2026
+ * user_id is the address of the user (20 bytes)
1836
2027
  *
1837
- * @generated from field: bytes owner = 2;
2028
+ * @generated from field: bytes user_id = 1;
1838
2029
  */
1839
- owner: Uint8Array;
2030
+ userId: Uint8Array;
1840
2031
  /**
1841
- * metadata contains the app's profile data
2032
+ * total_realized_pnl is the sum of realized PNL across all apps (string for precision)
1842
2033
  *
1843
- * @generated from field: river.AppMetadata metadata = 3;
2034
+ * @generated from field: string total_realized_pnl = 2;
1844
2035
  */
1845
- metadata?: AppMetadata;
2036
+ totalRealizedPnl: string;
1846
2037
  /**
1847
- * install_stats contains installation statistics
2038
+ * total_unrealized_pnl is the sum of unrealized PNL across all apps (string for precision)
1848
2039
  *
1849
- * @generated from field: river.AppInstallStats install_stats = 4;
2040
+ * @generated from field: string total_unrealized_pnl = 3;
1850
2041
  */
1851
- installStats?: AppInstallStats;
2042
+ totalUnrealizedPnl: string;
1852
2043
  /**
1853
- * review_summary contains aggregated review data
2044
+ * total_pnl is the sum of total PNL across all apps (string for precision)
1854
2045
  *
1855
- * @generated from field: river.AppReviewSummary review_summary = 5;
2046
+ * @generated from field: string total_pnl = 4;
1856
2047
  */
1857
- reviewSummary?: AppReviewSummary;
2048
+ totalPnl: string;
1858
2049
  /**
1859
- * is_active indicates whether the app is currently active (published)
2050
+ * total_account_value is the sum of account values across all apps (string for precision)
1860
2051
  *
1861
- * @generated from field: bool is_active = 6;
2052
+ * @generated from field: string total_account_value = 5;
1862
2053
  */
1863
- isActive: boolean;
2054
+ totalAccountValue: string;
1864
2055
  /**
1865
- * is_promoted indicates whether the app is discoverable in the catalog
2056
+ * total_volume is the sum of volume across all apps (string for precision)
1866
2057
  *
1867
- * @generated from field: bool is_promoted = 7;
2058
+ * @generated from field: string total_volume = 6;
1868
2059
  */
1869
- isPromoted: boolean;
2060
+ totalVolume: string;
1870
2061
  /**
1871
- * is_verified indicates whether the app has been reviewed and approved by admins
2062
+ * app_entries contains per-app PNL breakdowns
1872
2063
  *
1873
- * @generated from field: bool is_verified = 8;
2064
+ * @generated from field: repeated river.AppPnlEntry app_entries = 7;
1874
2065
  */
1875
- isVerified: boolean;
2066
+ appEntries: AppPnlEntry[];
1876
2067
  };
1877
2068
  /**
1878
- * Describes the message river.AppInfoFull.
1879
- * Use `create(AppInfoFullSchema)` to create a new message.
2069
+ * Describes the message river.UserAggregatedPnl.
2070
+ * Use `create(UserAggregatedPnlSchema)` to create a new message.
1880
2071
  */
1881
- export declare const AppInfoFullSchema: GenMessage<AppInfoFull>;
2072
+ export declare const UserAggregatedPnlSchema: GenMessage<UserAggregatedPnl>;
1882
2073
  /**
1883
- * ListRegisteredAppsRequest retrieves registered apps with optional filters.
2074
+ * AppPnlEntry contains PNL data for a single user from a single app.
1884
2075
  *
1885
- * @generated from message river.ListRegisteredAppsRequest
2076
+ * @generated from message river.AppPnlEntry
1886
2077
  */
1887
- export type ListRegisteredAppsRequest = Message<"river.ListRegisteredAppsRequest"> & {
1888
- /**
1889
- * limit is the maximum number of apps to return
1890
- *
1891
- * @generated from field: int32 limit = 1;
1892
- */
1893
- limit: number;
2078
+ export type AppPnlEntry = Message<"river.AppPnlEntry"> & {
1894
2079
  /**
1895
- * offset is the number of apps to skip for pagination
2080
+ * app_id is the address of the app (20 bytes)
1896
2081
  *
1897
- * @generated from field: int32 offset = 2;
2082
+ * @generated from field: bytes app_id = 1;
1898
2083
  */
1899
- offset: number;
2084
+ appId: Uint8Array;
1900
2085
  /**
1901
- * active_only filters to only return active (published) apps
2086
+ * wallet_address is the wallet address used on this app (hex string)
1902
2087
  *
1903
- * @generated from field: bool active_only = 3;
2088
+ * @generated from field: string wallet_address = 2;
1904
2089
  */
1905
- activeOnly: boolean;
2090
+ walletAddress: string;
1906
2091
  /**
1907
- * owner_address filters by owner - for "my apps" view (20 bytes)
2092
+ * realized_pnl from this app (string for precision)
1908
2093
  *
1909
- * @generated from field: optional bytes owner_address = 4;
2094
+ * @generated from field: string realized_pnl = 3;
1910
2095
  */
1911
- ownerAddress?: Uint8Array;
2096
+ realizedPnl: string;
1912
2097
  /**
1913
- * stream_id filters by stream - for apps in a DM/GDM (32 bytes)
2098
+ * unrealized_pnl from this app (string for precision)
1914
2099
  *
1915
- * @generated from field: optional bytes stream_id = 5;
2100
+ * @generated from field: string unrealized_pnl = 4;
1916
2101
  */
1917
- streamId?: Uint8Array;
2102
+ unrealizedPnl: string;
1918
2103
  /**
1919
- * promoted_only filters to only return promoted (discoverable) apps
2104
+ * total_pnl from this app (string for precision)
1920
2105
  *
1921
- * @generated from field: bool promoted_only = 6;
2106
+ * @generated from field: string total_pnl = 5;
1922
2107
  */
1923
- promotedOnly: boolean;
2108
+ totalPnl: string;
1924
2109
  /**
1925
- * search_query searches apps by display_name and description (case-insensitive)
2110
+ * account_value on this app (string for precision)
1926
2111
  *
1927
- * @generated from field: optional string search_query = 7;
2112
+ * @generated from field: string account_value = 6;
1928
2113
  */
1929
- searchQuery?: string;
1930
- };
1931
- /**
1932
- * Describes the message river.ListRegisteredAppsRequest.
1933
- * Use `create(ListRegisteredAppsRequestSchema)` to create a new message.
1934
- */
1935
- export declare const ListRegisteredAppsRequestSchema: GenMessage<ListRegisteredAppsRequest>;
1936
- /**
1937
- * @generated from message river.ListRegisteredAppsResponse
1938
- */
1939
- export type ListRegisteredAppsResponse = Message<"river.ListRegisteredAppsResponse"> & {
2114
+ accountValue: string;
1940
2115
  /**
1941
- * apps is the list of matching apps
2116
+ * volume on this app (string for precision)
1942
2117
  *
1943
- * @generated from field: repeated river.AppInfoFull apps = 1;
2118
+ * @generated from field: string volume = 7;
1944
2119
  */
1945
- apps: AppInfoFull[];
2120
+ volume: string;
1946
2121
  /**
1947
- * total_count is the total number of matching apps (for pagination)
2122
+ * error contains an error message if this specific app failed for this user
1948
2123
  *
1949
- * @generated from field: int32 total_count = 2;
2124
+ * @generated from field: optional string error = 8;
1950
2125
  */
1951
- totalCount: number;
2126
+ error?: string;
1952
2127
  };
1953
2128
  /**
1954
- * Describes the message river.ListRegisteredAppsResponse.
1955
- * Use `create(ListRegisteredAppsResponseSchema)` to create a new message.
2129
+ * Describes the message river.AppPnlEntry.
2130
+ * Use `create(AppPnlEntrySchema)` to create a new message.
1956
2131
  */
1957
- export declare const ListRegisteredAppsResponseSchema: GenMessage<ListRegisteredAppsResponse>;
2132
+ export declare const AppPnlEntrySchema: GenMessage<AppPnlEntry>;
1958
2133
  /**
1959
- * GetBulkAppDataRequest retrieves full app data for multiple apps.
2134
+ * GetBulkAgentCapabilitiesRequest fetches capability manifests for specialist agents.
1960
2135
  *
1961
- * @generated from message river.GetBulkAppDataRequest
2136
+ * @generated from message river.GetBulkAgentCapabilitiesRequest
1962
2137
  */
1963
- export type GetBulkAppDataRequest = Message<"river.GetBulkAppDataRequest"> & {
2138
+ export type GetBulkAgentCapabilitiesRequest = Message<"river.GetBulkAgentCapabilitiesRequest"> & {
1964
2139
  /**
1965
- * app_ids is the list of app addresses to look up (each 20 bytes)
2140
+ * agent_ids is the list of specialist app addresses (each 20 bytes)
1966
2141
  *
1967
- * @generated from field: repeated bytes app_ids = 1;
2142
+ * @generated from field: repeated bytes agent_ids = 1;
1968
2143
  */
1969
- appIds: Uint8Array[];
2144
+ agentIds: Uint8Array[];
1970
2145
  };
1971
2146
  /**
1972
- * Describes the message river.GetBulkAppDataRequest.
1973
- * Use `create(GetBulkAppDataRequestSchema)` to create a new message.
2147
+ * Describes the message river.GetBulkAgentCapabilitiesRequest.
2148
+ * Use `create(GetBulkAgentCapabilitiesRequestSchema)` to create a new message.
1974
2149
  */
1975
- export declare const GetBulkAppDataRequestSchema: GenMessage<GetBulkAppDataRequest>;
2150
+ export declare const GetBulkAgentCapabilitiesRequestSchema: GenMessage<GetBulkAgentCapabilitiesRequest>;
1976
2151
  /**
1977
- * @generated from message river.GetBulkAppDataResponse
2152
+ * @generated from message river.GetBulkAgentCapabilitiesResponse
1978
2153
  */
1979
- export type GetBulkAppDataResponse = Message<"river.GetBulkAppDataResponse"> & {
2154
+ export type GetBulkAgentCapabilitiesResponse = Message<"river.GetBulkAgentCapabilitiesResponse"> & {
1980
2155
  /**
1981
- * apps is the list of app data for found apps
2156
+ * manifests contains capability manifests for agents that have capabilities
1982
2157
  *
1983
- * @generated from field: repeated river.AppInfoFull apps = 1;
2158
+ * @generated from field: repeated river.CapabilityManifest manifests = 1;
1984
2159
  */
1985
- apps: AppInfoFull[];
2160
+ manifests: CapabilityManifest[];
1986
2161
  };
1987
2162
  /**
1988
- * Describes the message river.GetBulkAppDataResponse.
1989
- * Use `create(GetBulkAppDataResponseSchema)` to create a new message.
2163
+ * Describes the message river.GetBulkAgentCapabilitiesResponse.
2164
+ * Use `create(GetBulkAgentCapabilitiesResponseSchema)` to create a new message.
1990
2165
  */
1991
- export declare const GetBulkAppDataResponseSchema: GenMessage<GetBulkAppDataResponse>;
2166
+ export declare const GetBulkAgentCapabilitiesResponseSchema: GenMessage<GetBulkAgentCapabilitiesResponse>;
1992
2167
  /**
1993
- * GetAppInstallStatsRequest retrieves installation stats for a single app.
2168
+ * GetBulkAgentProposalsRequest fans out proposal requests to specialist agents asynchronously.
1994
2169
  *
1995
- * @generated from message river.GetAppInstallStatsRequest
2170
+ * @generated from message river.GetBulkAgentProposalsRequest
1996
2171
  */
1997
- export type GetAppInstallStatsRequest = Message<"river.GetAppInstallStatsRequest"> & {
2172
+ export type GetBulkAgentProposalsRequest = Message<"river.GetBulkAgentProposalsRequest"> & {
1998
2173
  /**
1999
- * app_id is the address of the app (20 bytes)
2174
+ * conversation_seed_id is the seed being populated by this async fan-out
2000
2175
  *
2001
- * @generated from field: bytes app_id = 1;
2176
+ * @generated from field: string conversation_seed_id = 1;
2002
2177
  */
2003
- appId: Uint8Array;
2004
- };
2005
- /**
2006
- * Describes the message river.GetAppInstallStatsRequest.
2007
- * Use `create(GetAppInstallStatsRequestSchema)` to create a new message.
2008
- */
2009
- export declare const GetAppInstallStatsRequestSchema: GenMessage<GetAppInstallStatsRequest>;
2010
- /**
2011
- * @generated from message river.GetAppInstallStatsResponse
2012
- */
2013
- export type GetAppInstallStatsResponse = Message<"river.GetAppInstallStatsResponse"> & {
2178
+ conversationSeedId: string;
2014
2179
  /**
2015
- * stats contains the installation statistics
2180
+ * requests contains the capability invocations to fan out
2181
+ * (each invocation includes agent_id, name, and parameters)
2016
2182
  *
2017
- * @generated from field: river.AppInstallStats stats = 1;
2183
+ * @generated from field: repeated river.SpecialistCapabilityInvocation requests = 2;
2018
2184
  */
2019
- stats?: AppInstallStats;
2020
- };
2021
- /**
2022
- * Describes the message river.GetAppInstallStatsResponse.
2023
- * Use `create(GetAppInstallStatsResponseSchema)` to create a new message.
2024
- */
2025
- export declare const GetAppInstallStatsResponseSchema: GenMessage<GetAppInstallStatsResponse>;
2026
- /**
2027
- * GetBulkAppInstallStatsRequest retrieves installation stats for multiple apps.
2028
- *
2029
- * @generated from message river.GetBulkAppInstallStatsRequest
2030
- */
2031
- export type GetBulkAppInstallStatsRequest = Message<"river.GetBulkAppInstallStatsRequest"> & {
2185
+ requests: SpecialistCapabilityInvocation[];
2032
2186
  /**
2033
- * app_ids is the list of app addresses to look up (each 20 bytes)
2187
+ * timeout_ms is optional per-agent timeout budget in milliseconds
2034
2188
  *
2035
- * @generated from field: repeated bytes app_ids = 1;
2189
+ * @generated from field: optional int32 timeout_ms = 3;
2036
2190
  */
2037
- appIds: Uint8Array[];
2191
+ timeoutMs?: number;
2192
+ /**
2193
+ * IANA timezone of the user, e.g. "America/New_York", if not supplied, the timezone from the conversation seed will be used.
2194
+ *
2195
+ * @generated from field: optional string user_timezone = 4;
2196
+ */
2197
+ userTimezone?: string;
2198
+ /**
2199
+ * Optional metadata forwarded to specialist webhook requests.
2200
+ *
2201
+ * @generated from field: map<string, string> metadata = 5;
2202
+ */
2203
+ metadata: {
2204
+ [key: string]: string;
2205
+ };
2038
2206
  };
2039
2207
  /**
2040
- * Describes the message river.GetBulkAppInstallStatsRequest.
2041
- * Use `create(GetBulkAppInstallStatsRequestSchema)` to create a new message.
2208
+ * Describes the message river.GetBulkAgentProposalsRequest.
2209
+ * Use `create(GetBulkAgentProposalsRequestSchema)` to create a new message.
2042
2210
  */
2043
- export declare const GetBulkAppInstallStatsRequestSchema: GenMessage<GetBulkAppInstallStatsRequest>;
2211
+ export declare const GetBulkAgentProposalsRequestSchema: GenMessage<GetBulkAgentProposalsRequest>;
2044
2212
  /**
2045
- * @generated from message river.GetBulkAppInstallStatsResponse
2213
+ * @generated from message river.GetBulkAgentProposalsResponse
2046
2214
  */
2047
- export type GetBulkAppInstallStatsResponse = Message<"river.GetBulkAppInstallStatsResponse"> & {
2215
+ export type GetBulkAgentProposalsResponse = Message<"river.GetBulkAgentProposalsResponse"> & {
2048
2216
  /**
2049
- * stats is a map of app_id (hex string) to installation stats
2217
+ * Request accepted; proposal aggregation continues asynchronously.
2050
2218
  *
2051
- * @generated from field: repeated river.AppInstallStats stats = 1;
2219
+ * @generated from field: bool accepted = 1;
2052
2220
  */
2053
- stats: AppInstallStats[];
2221
+ accepted: boolean;
2054
2222
  };
2055
2223
  /**
2056
- * Describes the message river.GetBulkAppInstallStatsResponse.
2057
- * Use `create(GetBulkAppInstallStatsResponseSchema)` to create a new message.
2224
+ * Describes the message river.GetBulkAgentProposalsResponse.
2225
+ * Use `create(GetBulkAgentProposalsResponseSchema)` to create a new message.
2058
2226
  */
2059
- export declare const GetBulkAppInstallStatsResponseSchema: GenMessage<GetBulkAppInstallStatsResponse>;
2227
+ export declare const GetBulkAgentProposalsResponseSchema: GenMessage<GetBulkAgentProposalsResponse>;
2060
2228
  /**
2061
- * SubmitAppReviewRequest creates or updates a review.
2229
+ * QueryConciergeRequest submits a natural language query to the Concierge agent.
2062
2230
  *
2063
- * @generated from message river.SubmitAppReviewRequest
2231
+ * @generated from message river.QueryConciergeRequest
2064
2232
  */
2065
- export type SubmitAppReviewRequest = Message<"river.SubmitAppReviewRequest"> & {
2233
+ export type QueryConciergeRequest = Message<"river.QueryConciergeRequest"> & {
2066
2234
  /**
2067
- * app_id is the address of the app to review (20 bytes)
2235
+ * User's natural language query
2068
2236
  *
2069
- * @generated from field: bytes app_id = 1;
2237
+ * @generated from field: string query = 1;
2070
2238
  */
2071
- appId: Uint8Array;
2239
+ query: string;
2072
2240
  /**
2073
- * rating is the review rating (1-5)
2241
+ * Origin: "web", "twitter"
2074
2242
  *
2075
- * @generated from field: int32 rating = 2;
2243
+ * @generated from field: optional string source = 2;
2076
2244
  */
2077
- rating: number;
2245
+ source?: string;
2078
2246
  /**
2079
- * comment is the optional review text
2247
+ * e.g. Twitter tweet ID for thread hydration
2080
2248
  *
2081
- * @generated from field: string comment = 3;
2249
+ * @generated from field: optional string external_ref = 3;
2082
2250
  */
2083
- comment: string;
2251
+ externalRef?: string;
2252
+ /**
2253
+ * IANA timezone of the user, e.g. "America/New_York"
2254
+ *
2255
+ * @generated from field: optional string user_timezone = 4;
2256
+ */
2257
+ userTimezone?: string;
2084
2258
  };
2085
2259
  /**
2086
- * Describes the message river.SubmitAppReviewRequest.
2087
- * Use `create(SubmitAppReviewRequestSchema)` to create a new message.
2260
+ * Describes the message river.QueryConciergeRequest.
2261
+ * Use `create(QueryConciergeRequestSchema)` to create a new message.
2088
2262
  */
2089
- export declare const SubmitAppReviewRequestSchema: GenMessage<SubmitAppReviewRequest>;
2263
+ export declare const QueryConciergeRequestSchema: GenMessage<QueryConciergeRequest>;
2090
2264
  /**
2091
- * @generated from message river.SubmitAppReviewResponse
2265
+ * @generated from message river.QueryConciergeResponse
2092
2266
  */
2093
- export type SubmitAppReviewResponse = Message<"river.SubmitAppReviewResponse"> & {
2267
+ export type QueryConciergeResponse = Message<"river.QueryConciergeResponse"> & {
2094
2268
  /**
2095
- * review_id is the unique identifier of the created/updated review
2269
+ * Newly created conversation seed ID to poll.
2096
2270
  *
2097
- * @generated from field: string review_id = 1;
2271
+ * @generated from field: string conversation_seed_id = 1;
2098
2272
  */
2099
- reviewId: string;
2273
+ conversationSeedId: string;
2274
+ };
2275
+ /**
2276
+ * Describes the message river.QueryConciergeResponse.
2277
+ * Use `create(QueryConciergeResponseSchema)` to create a new message.
2278
+ */
2279
+ export declare const QueryConciergeResponseSchema: GenMessage<QueryConciergeResponse>;
2280
+ /**
2281
+ * GetConversationSeedRequest retrieves a stored ConversationSeed by ID.
2282
+ *
2283
+ * @generated from message river.GetConversationSeedRequest
2284
+ */
2285
+ export type GetConversationSeedRequest = Message<"river.GetConversationSeedRequest"> & {
2286
+ /**
2287
+ * The conversation seed ID (from the URL path).
2288
+ *
2289
+ * @generated from field: string seed_id = 1;
2290
+ */
2291
+ seedId: string;
2100
2292
  };
2101
2293
  /**
2102
- * Describes the message river.SubmitAppReviewResponse.
2103
- * Use `create(SubmitAppReviewResponseSchema)` to create a new message.
2294
+ * Describes the message river.GetConversationSeedRequest.
2295
+ * Use `create(GetConversationSeedRequestSchema)` to create a new message.
2104
2296
  */
2105
- export declare const SubmitAppReviewResponseSchema: GenMessage<SubmitAppReviewResponse>;
2297
+ export declare const GetConversationSeedRequestSchema: GenMessage<GetConversationSeedRequest>;
2106
2298
  /**
2107
- * GetAppReviewsRequest retrieves paginated reviews for an app.
2108
- *
2109
- * @generated from message river.GetAppReviewsRequest
2299
+ * @generated from message river.GetConversationSeedResponse
2110
2300
  */
2111
- export type GetAppReviewsRequest = Message<"river.GetAppReviewsRequest"> & {
2301
+ export type GetConversationSeedResponse = Message<"river.GetConversationSeedResponse"> & {
2112
2302
  /**
2113
- * app_id is the address of the app (20 bytes)
2303
+ * The conversation seed.
2114
2304
  *
2115
- * @generated from field: bytes app_id = 1;
2305
+ * @generated from field: river.ConversationSeed seed = 1;
2116
2306
  */
2117
- appId: Uint8Array;
2307
+ seed?: ConversationSeed;
2118
2308
  /**
2119
- * limit is the maximum number of reviews to return
2309
+ * Computed user-facing readiness from seed content/timestamps.
2120
2310
  *
2121
- * @generated from field: int32 limit = 2;
2311
+ * @generated from field: river.ConversationSeedStatus status = 2;
2122
2312
  */
2123
- limit: number;
2313
+ status: ConversationSeedStatus;
2124
2314
  /**
2125
- * offset is the number of reviews to skip for pagination
2315
+ * Computed specialist fan-out status from proposals_by_agent outcomes.
2126
2316
  *
2127
- * @generated from field: int32 offset = 3;
2317
+ * @generated from field: river.ProposalStatus proposal_status = 3;
2128
2318
  */
2129
- offset: number;
2319
+ proposalStatus: ProposalStatus;
2130
2320
  };
2131
2321
  /**
2132
- * Describes the message river.GetAppReviewsRequest.
2133
- * Use `create(GetAppReviewsRequestSchema)` to create a new message.
2322
+ * Describes the message river.GetConversationSeedResponse.
2323
+ * Use `create(GetConversationSeedResponseSchema)` to create a new message.
2134
2324
  */
2135
- export declare const GetAppReviewsRequestSchema: GenMessage<GetAppReviewsRequest>;
2325
+ export declare const GetConversationSeedResponseSchema: GenMessage<GetConversationSeedResponse>;
2136
2326
  /**
2137
- * @generated from message river.GetAppReviewsResponse
2327
+ * SubmitAgentProposalsRequest is sent by a specialist agent to deliver proposal results.
2328
+ *
2329
+ * @generated from message river.SubmitAgentProposalsRequest
2138
2330
  */
2139
- export type GetAppReviewsResponse = Message<"river.GetAppReviewsResponse"> & {
2331
+ export type SubmitAgentProposalsRequest = Message<"river.SubmitAgentProposalsRequest"> & {
2140
2332
  /**
2141
- * reviews is the list of reviews
2333
+ * The conversation seed ID these proposals belong to.
2142
2334
  *
2143
- * @generated from field: repeated river.AppReview reviews = 1;
2335
+ * @generated from field: string conversation_seed_id = 1;
2144
2336
  */
2145
- reviews: AppReview[];
2337
+ conversationSeedId: string;
2146
2338
  /**
2147
- * total_count is the total number of reviews (for pagination)
2339
+ * Proposals generated by this agent.
2148
2340
  *
2149
- * @generated from field: int32 total_count = 2;
2341
+ * @generated from field: repeated river.Proposal proposals = 2;
2150
2342
  */
2151
- totalCount: number;
2152
- };
2153
- /**
2154
- * Describes the message river.GetAppReviewsResponse.
2155
- * Use `create(GetAppReviewsResponseSchema)` to create a new message.
2156
- */
2157
- export declare const GetAppReviewsResponseSchema: GenMessage<GetAppReviewsResponse>;
2158
- /**
2159
- * RevokeAppReviewRequest revokes the caller's review for an app.
2160
- *
2161
- * @generated from message river.RevokeAppReviewRequest
2162
- */
2163
- export type RevokeAppReviewRequest = Message<"river.RevokeAppReviewRequest"> & {
2343
+ proposals: Proposal[];
2164
2344
  /**
2165
- * app_id is the address of the app (20 bytes)
2345
+ * Errors encountered during proposal generation.
2166
2346
  *
2167
- * @generated from field: bytes app_id = 1;
2347
+ * @generated from field: repeated river.AgentProposalError errors = 3;
2168
2348
  */
2169
- appId: Uint8Array;
2349
+ errors: AgentProposalError[];
2170
2350
  };
2171
2351
  /**
2172
- * Describes the message river.RevokeAppReviewRequest.
2173
- * Use `create(RevokeAppReviewRequestSchema)` to create a new message.
2352
+ * Describes the message river.SubmitAgentProposalsRequest.
2353
+ * Use `create(SubmitAgentProposalsRequestSchema)` to create a new message.
2174
2354
  */
2175
- export declare const RevokeAppReviewRequestSchema: GenMessage<RevokeAppReviewRequest>;
2355
+ export declare const SubmitAgentProposalsRequestSchema: GenMessage<SubmitAgentProposalsRequest>;
2176
2356
  /**
2177
- * @generated from message river.RevokeAppReviewResponse
2357
+ * @generated from message river.SubmitAgentProposalsResponse
2178
2358
  */
2179
- export type RevokeAppReviewResponse = Message<"river.RevokeAppReviewResponse"> & {};
2359
+ export type SubmitAgentProposalsResponse = Message<"river.SubmitAgentProposalsResponse"> & {};
2180
2360
  /**
2181
- * Describes the message river.RevokeAppReviewResponse.
2182
- * Use `create(RevokeAppReviewResponseSchema)` to create a new message.
2361
+ * Describes the message river.SubmitAgentProposalsResponse.
2362
+ * Use `create(SubmitAgentProposalsResponseSchema)` to create a new message.
2183
2363
  */
2184
- export declare const RevokeAppReviewResponseSchema: GenMessage<RevokeAppReviewResponse>;
2364
+ export declare const SubmitAgentProposalsResponseSchema: GenMessage<SubmitAgentProposalsResponse>;
2185
2365
  /**
2186
- * GetAppReviewSummaryRequest retrieves review summary for a single app.
2366
+ * FinishConversationSeedRequest is sent by the concierge agent to finalize a seed
2367
+ * with its output (response text, selected proposals, clarifying questions).
2187
2368
  *
2188
- * @generated from message river.GetAppReviewSummaryRequest
2369
+ * @generated from message river.FinishConversationSeedRequest
2189
2370
  */
2190
- export type GetAppReviewSummaryRequest = Message<"river.GetAppReviewSummaryRequest"> & {
2371
+ export type FinishConversationSeedRequest = Message<"river.FinishConversationSeedRequest"> & {
2191
2372
  /**
2192
- * app_id is the address of the app (20 bytes)
2373
+ * The conversation seed ID to finalize.
2193
2374
  *
2194
- * @generated from field: bytes app_id = 1;
2375
+ * @generated from field: string conversation_seed_id = 1;
2195
2376
  */
2196
- appId: Uint8Array;
2197
- };
2198
- /**
2199
- * Describes the message river.GetAppReviewSummaryRequest.
2200
- * Use `create(GetAppReviewSummaryRequestSchema)` to create a new message.
2201
- */
2202
- export declare const GetAppReviewSummaryRequestSchema: GenMessage<GetAppReviewSummaryRequest>;
2203
- /**
2204
- * @generated from message river.GetAppReviewSummaryResponse
2205
- */
2206
- export type GetAppReviewSummaryResponse = Message<"river.GetAppReviewSummaryResponse"> & {
2377
+ conversationSeedId: string;
2207
2378
  /**
2208
- * summary contains the aggregated review statistics
2379
+ * Concierge-formatted response text shown to user.
2209
2380
  *
2210
- * @generated from field: river.AppReviewSummary summary = 1;
2381
+ * @generated from field: string response_text = 2;
2211
2382
  */
2212
- summary?: AppReviewSummary;
2213
- };
2214
- /**
2215
- * Describes the message river.GetAppReviewSummaryResponse.
2216
- * Use `create(GetAppReviewSummaryResponseSchema)` to create a new message.
2217
- */
2218
- export declare const GetAppReviewSummaryResponseSchema: GenMessage<GetAppReviewSummaryResponse>;
2219
- /**
2220
- * GetBulkAppReviewSummariesRequest retrieves review summaries for multiple apps.
2221
- *
2222
- * @generated from message river.GetBulkAppReviewSummariesRequest
2223
- */
2224
- export type GetBulkAppReviewSummariesRequest = Message<"river.GetBulkAppReviewSummariesRequest"> & {
2383
+ responseText: string;
2225
2384
  /**
2226
- * app_ids is the list of app addresses to look up (each 20 bytes)
2385
+ * Proposal IDs selected by concierge for presentation.
2227
2386
  *
2228
- * @generated from field: repeated bytes app_ids = 1;
2387
+ * @generated from field: repeated string selected_proposal_ids = 3;
2229
2388
  */
2230
- appIds: Uint8Array[];
2231
- };
2232
- /**
2233
- * Describes the message river.GetBulkAppReviewSummariesRequest.
2234
- * Use `create(GetBulkAppReviewSummariesRequestSchema)` to create a new message.
2235
- */
2236
- export declare const GetBulkAppReviewSummariesRequestSchema: GenMessage<GetBulkAppReviewSummariesRequest>;
2237
- /**
2238
- * @generated from message river.GetBulkAppReviewSummariesResponse
2239
- */
2240
- export type GetBulkAppReviewSummariesResponse = Message<"river.GetBulkAppReviewSummariesResponse"> & {
2389
+ selectedProposalIds: string[];
2241
2390
  /**
2242
- * summaries is the list of review summaries for found apps
2391
+ * Optional clarifying questions for the user.
2243
2392
  *
2244
- * @generated from field: repeated river.AppReviewSummary summaries = 1;
2393
+ * @generated from field: repeated string clarifying_questions = 4;
2245
2394
  */
2246
- summaries: AppReviewSummary[];
2395
+ clarifyingQuestions: string[];
2396
+ /**
2397
+ * Status of the concierge finalization. Defaults to SUCCESS (0) for backward compatibility.
2398
+ *
2399
+ * @generated from field: river.ConciergeFinishStatus status = 5;
2400
+ */
2401
+ status: ConciergeFinishStatus;
2247
2402
  };
2248
2403
  /**
2249
- * Describes the message river.GetBulkAppReviewSummariesResponse.
2250
- * Use `create(GetBulkAppReviewSummariesResponseSchema)` to create a new message.
2404
+ * Describes the message river.FinishConversationSeedRequest.
2405
+ * Use `create(FinishConversationSeedRequestSchema)` to create a new message.
2251
2406
  */
2252
- export declare const GetBulkAppReviewSummariesResponseSchema: GenMessage<GetBulkAppReviewSummariesResponse>;
2407
+ export declare const FinishConversationSeedRequestSchema: GenMessage<FinishConversationSeedRequest>;
2253
2408
  /**
2254
- * GetAppPositionsRequest retrieves positions for the authenticated user from a single app.
2255
- *
2256
- * @generated from message river.GetAppPositionsRequest
2409
+ * @generated from message river.FinishConversationSeedResponse
2257
2410
  */
2258
- export type GetAppPositionsRequest = Message<"river.GetAppPositionsRequest"> & {
2411
+ export type FinishConversationSeedResponse = Message<"river.FinishConversationSeedResponse"> & {
2259
2412
  /**
2260
- * app_id is the address of the app (20 bytes)
2261
- *
2262
- * @generated from field: bytes app_id = 1;
2413
+ * @generated from field: river.ConversationSeed seed = 1;
2263
2414
  */
2264
- appId: Uint8Array;
2415
+ seed?: ConversationSeed;
2265
2416
  };
2266
2417
  /**
2267
- * Describes the message river.GetAppPositionsRequest.
2268
- * Use `create(GetAppPositionsRequestSchema)` to create a new message.
2418
+ * Describes the message river.FinishConversationSeedResponse.
2419
+ * Use `create(FinishConversationSeedResponseSchema)` to create a new message.
2269
2420
  */
2270
- export declare const GetAppPositionsRequestSchema: GenMessage<GetAppPositionsRequest>;
2421
+ export declare const FinishConversationSeedResponseSchema: GenMessage<FinishConversationSeedResponse>;
2271
2422
  /**
2272
- * @generated from message river.GetAppPositionsResponse
2423
+ * GetEntitlementsRequest retrieves the caller's entitlements for a specific app.
2424
+ *
2425
+ * @generated from message river.GetEntitlementsRequest
2273
2426
  */
2274
- export type GetAppPositionsResponse = Message<"river.GetAppPositionsResponse"> & {
2427
+ export type GetEntitlementsRequest = Message<"river.GetEntitlementsRequest"> & {
2275
2428
  /**
2276
2429
  * app_id is the address of the app (20 bytes)
2277
2430
  *
2278
2431
  * @generated from field: bytes app_id = 1;
2279
2432
  */
2280
2433
  appId: Uint8Array;
2281
- /**
2282
- * positions contains the position data from the bot
2283
- *
2284
- * @generated from field: river.PositionsResponse positions = 2;
2285
- */
2286
- positions?: PositionsResponse;
2287
2434
  };
2288
2435
  /**
2289
- * Describes the message river.GetAppPositionsResponse.
2290
- * Use `create(GetAppPositionsResponseSchema)` to create a new message.
2436
+ * Describes the message river.GetEntitlementsRequest.
2437
+ * Use `create(GetEntitlementsRequestSchema)` to create a new message.
2291
2438
  */
2292
- export declare const GetAppPositionsResponseSchema: GenMessage<GetAppPositionsResponse>;
2439
+ export declare const GetEntitlementsRequestSchema: GenMessage<GetEntitlementsRequest>;
2293
2440
  /**
2294
- * GetBatchAppPositionsRequest retrieves positions from multiple apps.
2295
- *
2296
- * @generated from message river.GetBatchAppPositionsRequest
2441
+ * @generated from message river.GetEntitlementsResponse
2297
2442
  */
2298
- export type GetBatchAppPositionsRequest = Message<"river.GetBatchAppPositionsRequest"> & {
2443
+ export type GetEntitlementsResponse = Message<"river.GetEntitlementsResponse"> & {
2299
2444
  /**
2300
- * app_ids is the list of app addresses to query (each 20 bytes)
2301
- * Maximum 10 apps per request (enforced server-side)
2445
+ * can_set_promoted indicates whether the caller can change the app's promoted status
2302
2446
  *
2303
- * @generated from field: repeated bytes app_ids = 1;
2447
+ * @generated from field: bool can_set_promoted = 1;
2304
2448
  */
2305
- appIds: Uint8Array[];
2306
- };
2307
- /**
2308
- * Describes the message river.GetBatchAppPositionsRequest.
2309
- * Use `create(GetBatchAppPositionsRequestSchema)` to create a new message.
2310
- */
2311
- export declare const GetBatchAppPositionsRequestSchema: GenMessage<GetBatchAppPositionsRequest>;
2312
- /**
2313
- * @generated from message river.GetBatchAppPositionsResponse
2314
- */
2315
- export type GetBatchAppPositionsResponse = Message<"river.GetBatchAppPositionsResponse"> & {
2449
+ canSetPromoted: boolean;
2316
2450
  /**
2317
- * entries contains position data for each requested app
2451
+ * can_set_verified indicates whether the caller can change the app's verified status
2318
2452
  *
2319
- * @generated from field: repeated river.AppPositionsEntry entries = 1;
2453
+ * @generated from field: bool can_set_verified = 2;
2320
2454
  */
2321
- entries: AppPositionsEntry[];
2322
- };
2323
- /**
2324
- * Describes the message river.GetBatchAppPositionsResponse.
2325
- * Use `create(GetBatchAppPositionsResponseSchema)` to create a new message.
2326
- */
2327
- export declare const GetBatchAppPositionsResponseSchema: GenMessage<GetBatchAppPositionsResponse>;
2328
- /**
2329
- * AppPositionsEntry contains position data for a single app in a batch response.
2330
- *
2331
- * @generated from message river.AppPositionsEntry
2332
- */
2333
- export type AppPositionsEntry = Message<"river.AppPositionsEntry"> & {
2455
+ canSetVerified: boolean;
2334
2456
  /**
2335
- * app_id is the address of the app (20 bytes)
2457
+ * can_set_active indicates whether the caller can change the app's active status
2336
2458
  *
2337
- * @generated from field: bytes app_id = 1;
2459
+ * @generated from field: bool can_set_active = 3;
2338
2460
  */
2339
- appId: Uint8Array;
2461
+ canSetActive: boolean;
2340
2462
  /**
2341
- * positions contains the position data from the bot
2463
+ * can_update_metadata indicates whether the caller can update the app's metadata
2342
2464
  *
2343
- * @generated from field: river.PositionsResponse positions = 2;
2465
+ * @generated from field: bool can_update_metadata = 4;
2344
2466
  */
2345
- positions?: PositionsResponse;
2467
+ canUpdateMetadata: boolean;
2346
2468
  /**
2347
- * error contains an error message if this specific app failed
2469
+ * is_owner indicates whether the caller is the app's owner
2348
2470
  *
2349
- * @generated from field: optional string error = 3;
2471
+ * @generated from field: bool is_owner = 5;
2350
2472
  */
2351
- error?: string;
2352
- };
2353
- /**
2354
- * Describes the message river.AppPositionsEntry.
2355
- * Use `create(AppPositionsEntrySchema)` to create a new message.
2356
- */
2357
- export declare const AppPositionsEntrySchema: GenMessage<AppPositionsEntry>;
2358
- /**
2359
- * GetBulkAgentCapabilitiesRequest fetches capability manifests for specialist agents.
2360
- *
2361
- * @generated from message river.GetBulkAgentCapabilitiesRequest
2362
- */
2363
- export type GetBulkAgentCapabilitiesRequest = Message<"river.GetBulkAgentCapabilitiesRequest"> & {
2473
+ isOwner: boolean;
2364
2474
  /**
2365
- * agent_ids is the list of specialist app addresses (each 20 bytes)
2475
+ * is_admin indicates whether the caller is a platform admin
2366
2476
  *
2367
- * @generated from field: repeated bytes agent_ids = 1;
2477
+ * @generated from field: bool is_admin = 6;
2368
2478
  */
2369
- agentIds: Uint8Array[];
2479
+ isAdmin: boolean;
2370
2480
  };
2371
2481
  /**
2372
- * Describes the message river.GetBulkAgentCapabilitiesRequest.
2373
- * Use `create(GetBulkAgentCapabilitiesRequestSchema)` to create a new message.
2482
+ * Describes the message river.GetEntitlementsResponse.
2483
+ * Use `create(GetEntitlementsResponseSchema)` to create a new message.
2374
2484
  */
2375
- export declare const GetBulkAgentCapabilitiesRequestSchema: GenMessage<GetBulkAgentCapabilitiesRequest>;
2485
+ export declare const GetEntitlementsResponseSchema: GenMessage<GetEntitlementsResponse>;
2376
2486
  /**
2377
- * @generated from message river.GetBulkAgentCapabilitiesResponse
2487
+ * ConversationContext carries normalized conversation metadata for GDM webhook deliveries.
2488
+ * It is optional and currently only populated for GDM streams.
2489
+ *
2490
+ * @generated from message river.ConversationContext
2378
2491
  */
2379
- export type GetBulkAgentCapabilitiesResponse = Message<"river.GetBulkAgentCapabilitiesResponse"> & {
2492
+ export type ConversationContext = Message<"river.ConversationContext"> & {
2380
2493
  /**
2381
- * manifests contains capability manifests for agents that have capabilities
2494
+ * participants are all current joined members of the GDM stream.
2382
2495
  *
2383
- * @generated from field: repeated river.CapabilityManifest manifests = 1;
2496
+ * @generated from field: repeated river.ConversationContext.Participant participants = 1;
2384
2497
  */
2385
- manifests: CapabilityManifest[];
2498
+ participants: ConversationContext_Participant[];
2386
2499
  };
2387
2500
  /**
2388
- * Describes the message river.GetBulkAgentCapabilitiesResponse.
2389
- * Use `create(GetBulkAgentCapabilitiesResponseSchema)` to create a new message.
2501
+ * Describes the message river.ConversationContext.
2502
+ * Use `create(ConversationContextSchema)` to create a new message.
2390
2503
  */
2391
- export declare const GetBulkAgentCapabilitiesResponseSchema: GenMessage<GetBulkAgentCapabilitiesResponse>;
2504
+ export declare const ConversationContextSchema: GenMessage<ConversationContext>;
2392
2505
  /**
2393
- * GetBulkAgentProposalsRequest fans out proposal requests to specialist agents asynchronously.
2394
- *
2395
- * @generated from message river.GetBulkAgentProposalsRequest
2506
+ * @generated from message river.ConversationContext.Participant
2396
2507
  */
2397
- export type GetBulkAgentProposalsRequest = Message<"river.GetBulkAgentProposalsRequest"> & {
2398
- /**
2399
- * conversation_seed_id is the seed being populated by this async fan-out
2400
- *
2401
- * @generated from field: string conversation_seed_id = 1;
2402
- */
2403
- conversationSeedId: string;
2404
- /**
2405
- * requests contains the capability invocations to fan out
2406
- * (each invocation includes agent_id, name, and parameters)
2407
- *
2408
- * @generated from field: repeated river.SpecialistCapabilityInvocation requests = 2;
2409
- */
2410
- requests: SpecialistCapabilityInvocation[];
2508
+ export type ConversationContext_Participant = Message<"river.ConversationContext.Participant"> & {
2411
2509
  /**
2412
- * timeout_ms is optional per-agent timeout budget in milliseconds
2510
+ * address is the 20-byte participant address.
2413
2511
  *
2414
- * @generated from field: optional int32 timeout_ms = 3;
2512
+ * @generated from field: bytes address = 1;
2415
2513
  */
2416
- timeoutMs?: number;
2514
+ address: Uint8Array;
2417
2515
  /**
2418
- * IANA timezone of the user, e.g. "America/New_York", if not supplied, the timezone from the conversation seed will be used.
2516
+ * name is the participant username, if configured.
2419
2517
  *
2420
- * @generated from field: optional string user_timezone = 4;
2518
+ * @generated from field: string name = 2;
2421
2519
  */
2422
- userTimezone?: string;
2520
+ name: string;
2423
2521
  /**
2424
- * Optional metadata forwarded to specialist webhook requests.
2522
+ * display_name is the participant display name, if configured.
2425
2523
  *
2426
- * @generated from field: map<string, string> metadata = 5;
2524
+ * @generated from field: string display_name = 3;
2427
2525
  */
2428
- metadata: {
2429
- [key: string]: string;
2430
- };
2526
+ displayName: string;
2431
2527
  };
2432
2528
  /**
2433
- * Describes the message river.GetBulkAgentProposalsRequest.
2434
- * Use `create(GetBulkAgentProposalsRequestSchema)` to create a new message.
2529
+ * Describes the message river.ConversationContext.Participant.
2530
+ * Use `create(ConversationContext_ParticipantSchema)` to create a new message.
2435
2531
  */
2436
- export declare const GetBulkAgentProposalsRequestSchema: GenMessage<GetBulkAgentProposalsRequest>;
2532
+ export declare const ConversationContext_ParticipantSchema: GenMessage<ConversationContext_Participant>;
2437
2533
  /**
2438
- * @generated from message river.GetBulkAgentProposalsResponse
2534
+ * As a performance optimization, we may wish to bundle together many key solicitation requests
2535
+ * and channel messages for the bot to respond to in a single webhook call. Thus, an isolated
2536
+ * group of channel messages and encryption keys, or a request for a key solicitation, is
2537
+ * represented here. For webhook calls regarding channel content, the payload may contain one or
2538
+ * more of these events.
2539
+ *
2540
+ * @generated from message river.EventPayload
2439
2541
  */
2440
- export type GetBulkAgentProposalsResponse = Message<"river.GetBulkAgentProposalsResponse"> & {
2542
+ export type EventPayload = Message<"river.EventPayload"> & {
2441
2543
  /**
2442
- * Request accepted; proposal aggregation continues asynchronously.
2443
- *
2444
- * @generated from field: bool accepted = 1;
2544
+ * @generated from oneof river.EventPayload.payload
2445
2545
  */
2446
- accepted: boolean;
2546
+ payload: {
2547
+ /**
2548
+ * @generated from field: river.EventPayload.Messages messages = 1;
2549
+ */
2550
+ value: EventPayload_Messages;
2551
+ case: "messages";
2552
+ } | {
2553
+ /**
2554
+ * @generated from field: river.EventPayload.SolicitKeys solicitation = 2;
2555
+ */
2556
+ value: EventPayload_SolicitKeys;
2557
+ case: "solicitation";
2558
+ } | {
2559
+ case: undefined;
2560
+ value?: undefined;
2561
+ };
2447
2562
  };
2448
2563
  /**
2449
- * Describes the message river.GetBulkAgentProposalsResponse.
2450
- * Use `create(GetBulkAgentProposalsResponseSchema)` to create a new message.
2564
+ * Describes the message river.EventPayload.
2565
+ * Use `create(EventPayloadSchema)` to create a new message.
2451
2566
  */
2452
- export declare const GetBulkAgentProposalsResponseSchema: GenMessage<GetBulkAgentProposalsResponse>;
2567
+ export declare const EventPayloadSchema: GenMessage<EventPayload>;
2453
2568
  /**
2454
- * QueryConciergeRequest submits a natural language query to the Concierge agent.
2569
+ * A Messages payload represents a group of user messages in a channel that qualifies for the app
2570
+ * to be notified. The included set of group encryption sessions in this message should have
2571
+ * all the needed ciphertexts to decrypt the set of messages sent in the same payload.
2455
2572
  *
2456
- * @generated from message river.QueryConciergeRequest
2573
+ * @generated from message river.EventPayload.Messages
2457
2574
  */
2458
- export type QueryConciergeRequest = Message<"river.QueryConciergeRequest"> & {
2575
+ export type EventPayload_Messages = Message<"river.EventPayload.Messages"> & {
2459
2576
  /**
2460
- * User's natural language query
2461
- *
2462
- * @generated from field: string query = 1;
2577
+ * @generated from field: bytes stream_id = 1;
2463
2578
  */
2464
- query: string;
2579
+ streamId: Uint8Array;
2465
2580
  /**
2466
- * Origin: "web", "twitter"
2467
- *
2468
- * @generated from field: optional string source = 2;
2581
+ * @generated from field: repeated river.Envelope messages = 2;
2469
2582
  */
2470
- source?: string;
2583
+ messages: Envelope[];
2471
2584
  /**
2472
- * e.g. Twitter tweet ID for thread hydration
2473
- *
2474
- * @generated from field: optional string external_ref = 3;
2585
+ * @generated from field: repeated river.Envelope group_encryption_sessions_messages = 3;
2475
2586
  */
2476
- externalRef?: string;
2587
+ groupEncryptionSessionsMessages: Envelope[];
2477
2588
  /**
2478
- * IANA timezone of the user, e.g. "America/New_York"
2479
- *
2480
- * @generated from field: optional string user_timezone = 4;
2589
+ * @generated from field: river.ConversationContext conversation_context = 4;
2481
2590
  */
2482
- userTimezone?: string;
2591
+ conversationContext?: ConversationContext;
2483
2592
  };
2484
2593
  /**
2485
- * Describes the message river.QueryConciergeRequest.
2486
- * Use `create(QueryConciergeRequestSchema)` to create a new message.
2594
+ * Describes the message river.EventPayload.Messages.
2595
+ * Use `create(EventPayload_MessagesSchema)` to create a new message.
2487
2596
  */
2488
- export declare const QueryConciergeRequestSchema: GenMessage<QueryConciergeRequest>;
2597
+ export declare const EventPayload_MessagesSchema: GenMessage<EventPayload_Messages>;
2489
2598
  /**
2490
- * @generated from message river.QueryConciergeResponse
2599
+ * A SolicitKeys request is sent when one or more messages in the same channel cannot be forwarded
2600
+ * to the app because the app does not have keys available to decrypt it in it's user inbox stream.
2601
+ * In this case, the app must be prompted to send a message to the stream to solicit the missing
2602
+ * session keys so that all queued messages can be forwarded.
2603
+ *
2604
+ * @generated from message river.EventPayload.SolicitKeys
2491
2605
  */
2492
- export type QueryConciergeResponse = Message<"river.QueryConciergeResponse"> & {
2606
+ export type EventPayload_SolicitKeys = Message<"river.EventPayload.SolicitKeys"> & {
2493
2607
  /**
2494
- * Newly created conversation seed ID to poll.
2495
- *
2496
- * @generated from field: string conversation_seed_id = 1;
2608
+ * @generated from field: bytes stream_id = 1;
2497
2609
  */
2498
- conversationSeedId: string;
2610
+ streamId: Uint8Array;
2611
+ /**
2612
+ * @generated from field: repeated string session_ids = 2;
2613
+ */
2614
+ sessionIds: string[];
2499
2615
  };
2500
2616
  /**
2501
- * Describes the message river.QueryConciergeResponse.
2502
- * Use `create(QueryConciergeResponseSchema)` to create a new message.
2617
+ * Describes the message river.EventPayload.SolicitKeys.
2618
+ * Use `create(EventPayload_SolicitKeysSchema)` to create a new message.
2503
2619
  */
2504
- export declare const QueryConciergeResponseSchema: GenMessage<QueryConciergeResponse>;
2620
+ export declare const EventPayload_SolicitKeysSchema: GenMessage<EventPayload_SolicitKeys>;
2505
2621
  /**
2506
- * GetConversationSeedRequest retrieves a stored ConversationSeed by ID.
2507
- *
2508
- * @generated from message river.GetConversationSeedRequest
2622
+ * @generated from message river.EventsPayload
2509
2623
  */
2510
- export type GetConversationSeedRequest = Message<"river.GetConversationSeedRequest"> & {
2624
+ export type EventsPayload = Message<"river.EventsPayload"> & {
2511
2625
  /**
2512
- * The conversation seed ID (from the URL path).
2513
- *
2514
- * @generated from field: string seed_id = 1;
2626
+ * @generated from field: repeated river.EventPayload events = 1;
2515
2627
  */
2516
- seedId: string;
2628
+ events: EventPayload[];
2517
2629
  };
2518
2630
  /**
2519
- * Describes the message river.GetConversationSeedRequest.
2520
- * Use `create(GetConversationSeedRequestSchema)` to create a new message.
2631
+ * Describes the message river.EventsPayload.
2632
+ * Use `create(EventsPayloadSchema)` to create a new message.
2521
2633
  */
2522
- export declare const GetConversationSeedRequestSchema: GenMessage<GetConversationSeedRequest>;
2634
+ export declare const EventsPayloadSchema: GenMessage<EventsPayload>;
2523
2635
  /**
2524
- * @generated from message river.GetConversationSeedResponse
2636
+ * @generated from message river.AppServiceRequest
2525
2637
  */
2526
- export type GetConversationSeedResponse = Message<"river.GetConversationSeedResponse"> & {
2638
+ export type AppServiceRequest = Message<"river.AppServiceRequest"> & {
2639
+ /**
2640
+ * @generated from oneof river.AppServiceRequest.payload
2641
+ */
2642
+ payload: {
2643
+ /**
2644
+ * @generated from field: google.protobuf.Empty initialize = 101;
2645
+ */
2646
+ value: Empty;
2647
+ case: "initialize";
2648
+ } | {
2649
+ /**
2650
+ * @generated from field: google.protobuf.Empty status = 102;
2651
+ */
2652
+ value: Empty;
2653
+ case: "status";
2654
+ } | {
2655
+ /**
2656
+ * @generated from field: river.EventsPayload events = 103;
2657
+ */
2658
+ value: EventsPayload;
2659
+ case: "events";
2660
+ } | {
2661
+ /**
2662
+ * @generated from field: river.PositionsRequest positions = 104;
2663
+ */
2664
+ value: PositionsRequest;
2665
+ case: "positions";
2666
+ } | {
2667
+ /**
2668
+ * @generated from field: river.AppServiceRequest.ProposalsRequest proposals = 105;
2669
+ */
2670
+ value: AppServiceRequest_ProposalsRequest;
2671
+ case: "proposals";
2672
+ } | {
2673
+ /**
2674
+ * @generated from field: river.AppServiceRequest.ConciergeRequest concierge_request = 106;
2675
+ */
2676
+ value: AppServiceRequest_ConciergeRequest;
2677
+ case: "conciergeRequest";
2678
+ } | {
2679
+ case: undefined;
2680
+ value?: undefined;
2681
+ };
2682
+ };
2683
+ /**
2684
+ * Describes the message river.AppServiceRequest.
2685
+ * Use `create(AppServiceRequestSchema)` to create a new message.
2686
+ */
2687
+ export declare const AppServiceRequestSchema: GenMessage<AppServiceRequest>;
2688
+ /**
2689
+ * @generated from message river.AppServiceRequest.ProposalsRequest
2690
+ */
2691
+ export type AppServiceRequest_ProposalsRequest = Message<"river.AppServiceRequest.ProposalsRequest"> & {
2692
+ /**
2693
+ * Seed ID being populated by this specialist request.
2694
+ *
2695
+ * @generated from field: string conversation_seed_id = 1;
2696
+ */
2697
+ conversationSeedId: string;
2698
+ /**
2699
+ * Original user query for specialist context.
2700
+ *
2701
+ * @generated from field: string user_query = 2;
2702
+ */
2703
+ userQuery: string;
2704
+ /**
2705
+ * Optional normalized context (e.g., thread summary or conversation context).
2706
+ *
2707
+ * @generated from field: optional string context = 3;
2708
+ */
2709
+ context?: string;
2527
2710
  /**
2528
- * The conversation seed.
2711
+ * Invocations for this bot.
2529
2712
  *
2530
- * @generated from field: river.ConversationSeed seed = 1;
2713
+ * @generated from field: repeated river.SpecialistCapabilityInvocation invocations = 4;
2531
2714
  */
2532
- seed?: ConversationSeed;
2715
+ invocations: SpecialistCapabilityInvocation[];
2533
2716
  /**
2534
- * Computed user-facing readiness from seed content/timestamps.
2717
+ * Optional timeout budget for fan-out.
2535
2718
  *
2536
- * @generated from field: river.ConversationSeedStatus status = 2;
2719
+ * @generated from field: optional int32 timeout_ms = 5;
2537
2720
  */
2538
- status: ConversationSeedStatus;
2721
+ timeoutMs?: number;
2539
2722
  /**
2540
- * Computed specialist fan-out status from proposals_by_agent outcomes.
2723
+ * IANA timezone of the user, e.g. "America/New_York".
2541
2724
  *
2542
- * @generated from field: river.ProposalStatus proposal_status = 3;
2725
+ * @generated from field: optional string user_timezone = 6;
2543
2726
  */
2544
- proposalStatus: ProposalStatus;
2727
+ userTimezone?: string;
2728
+ /**
2729
+ * Optional metadata forwarded from concierge to specialist handlers.
2730
+ *
2731
+ * @generated from field: map<string, string> metadata = 7;
2732
+ */
2733
+ metadata: {
2734
+ [key: string]: string;
2735
+ };
2545
2736
  };
2546
2737
  /**
2547
- * Describes the message river.GetConversationSeedResponse.
2548
- * Use `create(GetConversationSeedResponseSchema)` to create a new message.
2738
+ * Describes the message river.AppServiceRequest.ProposalsRequest.
2739
+ * Use `create(AppServiceRequest_ProposalsRequestSchema)` to create a new message.
2549
2740
  */
2550
- export declare const GetConversationSeedResponseSchema: GenMessage<GetConversationSeedResponse>;
2741
+ export declare const AppServiceRequest_ProposalsRequestSchema: GenMessage<AppServiceRequest_ProposalsRequest>;
2551
2742
  /**
2552
- * SubmitAgentProposalsRequest is sent by a specialist agent to deliver proposal results.
2553
- *
2554
- * @generated from message river.SubmitAgentProposalsRequest
2743
+ * @generated from message river.AppServiceRequest.ConciergeRequest
2555
2744
  */
2556
- export type SubmitAgentProposalsRequest = Message<"river.SubmitAgentProposalsRequest"> & {
2745
+ export type AppServiceRequest_ConciergeRequest = Message<"river.AppServiceRequest.ConciergeRequest"> & {
2557
2746
  /**
2558
- * The conversation seed ID these proposals belong to.
2747
+ * Seed ID created by QueryConcierge and used for polling/fan-out.
2559
2748
  *
2560
2749
  * @generated from field: string conversation_seed_id = 1;
2561
2750
  */
2562
2751
  conversationSeedId: string;
2563
2752
  /**
2564
- * Proposals generated by this agent.
2753
+ * Original user query (or query derived from full twitter thread context).
2565
2754
  *
2566
- * @generated from field: repeated river.Proposal proposals = 2;
2755
+ * @generated from field: string user_query = 2;
2567
2756
  */
2568
- proposals: Proposal[];
2757
+ userQuery: string;
2569
2758
  /**
2570
- * Errors encountered during proposal generation.
2759
+ * Optional normalized context (e.g., thread summary or conversation history).
2571
2760
  *
2572
- * @generated from field: repeated river.AgentProposalError errors = 3;
2761
+ * @generated from field: optional string context = 3;
2573
2762
  */
2574
- errors: AgentProposalError[];
2575
- };
2576
- /**
2577
- * Describes the message river.SubmitAgentProposalsRequest.
2578
- * Use `create(SubmitAgentProposalsRequestSchema)` to create a new message.
2579
- */
2580
- export declare const SubmitAgentProposalsRequestSchema: GenMessage<SubmitAgentProposalsRequest>;
2581
- /**
2582
- * @generated from message river.SubmitAgentProposalsResponse
2583
- */
2584
- export type SubmitAgentProposalsResponse = Message<"river.SubmitAgentProposalsResponse"> & {};
2585
- /**
2586
- * Describes the message river.SubmitAgentProposalsResponse.
2587
- * Use `create(SubmitAgentProposalsResponseSchema)` to create a new message.
2588
- */
2589
- export declare const SubmitAgentProposalsResponseSchema: GenMessage<SubmitAgentProposalsResponse>;
2590
- /**
2591
- * FinishConversationSeedRequest is sent by the concierge agent to finalize a seed
2592
- * with its output (response text, selected proposals, clarifying questions).
2593
- *
2594
- * @generated from message river.FinishConversationSeedRequest
2595
- */
2596
- export type FinishConversationSeedRequest = Message<"river.FinishConversationSeedRequest"> & {
2763
+ context?: string;
2597
2764
  /**
2598
- * The conversation seed ID to finalize.
2765
+ * Optional external reference (e.g., tweet ID).
2599
2766
  *
2600
- * @generated from field: string conversation_seed_id = 1;
2767
+ * @generated from field: optional string external_ref = 4;
2601
2768
  */
2602
- conversationSeedId: string;
2769
+ externalRef?: string;
2603
2770
  /**
2604
- * Concierge-formatted response text shown to user.
2771
+ * Timeout from the conversation seed.
2605
2772
  *
2606
- * @generated from field: string response_text = 2;
2773
+ * @generated from field: optional int64 proposal_timeout_ms = 5;
2607
2774
  */
2608
- responseText: string;
2775
+ proposalTimeoutMs?: bigint;
2609
2776
  /**
2610
- * Proposal IDs selected by concierge for presentation.
2777
+ * Timeout from the conversation seed.
2611
2778
  *
2612
- * @generated from field: repeated string selected_proposal_ids = 3;
2779
+ * @generated from field: optional int64 concierge_timeout_ms = 6;
2613
2780
  */
2614
- selectedProposalIds: string[];
2781
+ conciergeTimeoutMs?: bigint;
2615
2782
  /**
2616
- * Optional clarifying questions for the user.
2783
+ * IANA timezone of the user, e.g. "America/New_York".
2617
2784
  *
2618
- * @generated from field: repeated string clarifying_questions = 4;
2785
+ * @generated from field: optional string user_timezone = 7;
2619
2786
  */
2620
- clarifyingQuestions: string[];
2787
+ userTimezone?: string;
2621
2788
  /**
2622
- * Status of the concierge finalization. Defaults to SUCCESS (0) for backward compatibility.
2789
+ * Optional user ID (Ethereum address) of the user making the query.
2623
2790
  *
2624
- * @generated from field: river.ConciergeFinishStatus status = 5;
2791
+ * @generated from field: optional bytes user_id = 8;
2625
2792
  */
2626
- status: ConciergeFinishStatus;
2793
+ userId?: Uint8Array;
2627
2794
  };
2628
2795
  /**
2629
- * Describes the message river.FinishConversationSeedRequest.
2630
- * Use `create(FinishConversationSeedRequestSchema)` to create a new message.
2796
+ * Describes the message river.AppServiceRequest.ConciergeRequest.
2797
+ * Use `create(AppServiceRequest_ConciergeRequestSchema)` to create a new message.
2631
2798
  */
2632
- export declare const FinishConversationSeedRequestSchema: GenMessage<FinishConversationSeedRequest>;
2799
+ export declare const AppServiceRequest_ConciergeRequestSchema: GenMessage<AppServiceRequest_ConciergeRequest>;
2633
2800
  /**
2634
- * @generated from message river.FinishConversationSeedResponse
2801
+ * @generated from message river.AppServiceResponse
2635
2802
  */
2636
- export type FinishConversationSeedResponse = Message<"river.FinishConversationSeedResponse"> & {
2803
+ export type AppServiceResponse = Message<"river.AppServiceResponse"> & {
2637
2804
  /**
2638
- * @generated from field: river.ConversationSeed seed = 1;
2805
+ * @generated from oneof river.AppServiceResponse.payload
2639
2806
  */
2640
- seed?: ConversationSeed;
2807
+ payload: {
2808
+ /**
2809
+ * @generated from field: river.AppServiceResponse.InitializeResponse initialize = 101;
2810
+ */
2811
+ value: AppServiceResponse_InitializeResponse;
2812
+ case: "initialize";
2813
+ } | {
2814
+ /**
2815
+ * @generated from field: river.AppServiceResponse.StatusResponse status = 102;
2816
+ */
2817
+ value: AppServiceResponse_StatusResponse;
2818
+ case: "status";
2819
+ } | {
2820
+ /**
2821
+ * @generated from field: river.PositionsResponse positions = 103;
2822
+ */
2823
+ value: PositionsResponse;
2824
+ case: "positions";
2825
+ } | {
2826
+ /**
2827
+ * @generated from field: river.AppServiceResponse.ProposalsResponse proposals = 104;
2828
+ */
2829
+ value: AppServiceResponse_ProposalsResponse;
2830
+ case: "proposals";
2831
+ } | {
2832
+ /**
2833
+ * @generated from field: river.AppServiceResponse.ConciergeResponse concierge_response = 105;
2834
+ */
2835
+ value: AppServiceResponse_ConciergeResponse;
2836
+ case: "conciergeResponse";
2837
+ } | {
2838
+ case: undefined;
2839
+ value?: undefined;
2840
+ };
2641
2841
  };
2642
2842
  /**
2643
- * Describes the message river.FinishConversationSeedResponse.
2644
- * Use `create(FinishConversationSeedResponseSchema)` to create a new message.
2843
+ * Describes the message river.AppServiceResponse.
2844
+ * Use `create(AppServiceResponseSchema)` to create a new message.
2645
2845
  */
2646
- export declare const FinishConversationSeedResponseSchema: GenMessage<FinishConversationSeedResponse>;
2846
+ export declare const AppServiceResponseSchema: GenMessage<AppServiceResponse>;
2647
2847
  /**
2648
- * GetEntitlementsRequest retrieves the caller's entitlements for a specific app.
2649
- *
2650
- * @generated from message river.GetEntitlementsRequest
2848
+ * @generated from message river.AppServiceResponse.InitializeResponse
2651
2849
  */
2652
- export type GetEntitlementsRequest = Message<"river.GetEntitlementsRequest"> & {
2850
+ export type AppServiceResponse_InitializeResponse = Message<"river.AppServiceResponse.InitializeResponse"> & {
2653
2851
  /**
2654
- * app_id is the address of the app (20 bytes)
2655
- *
2656
- * @generated from field: bytes app_id = 1;
2852
+ * @generated from field: river.UserMetadataPayload.EncryptionDevice encryption_device = 1;
2657
2853
  */
2658
- appId: Uint8Array;
2854
+ encryptionDevice?: UserMetadataPayload_EncryptionDevice;
2659
2855
  };
2660
2856
  /**
2661
- * Describes the message river.GetEntitlementsRequest.
2662
- * Use `create(GetEntitlementsRequestSchema)` to create a new message.
2857
+ * Describes the message river.AppServiceResponse.InitializeResponse.
2858
+ * Use `create(AppServiceResponse_InitializeResponseSchema)` to create a new message.
2663
2859
  */
2664
- export declare const GetEntitlementsRequestSchema: GenMessage<GetEntitlementsRequest>;
2860
+ export declare const AppServiceResponse_InitializeResponseSchema: GenMessage<AppServiceResponse_InitializeResponse>;
2665
2861
  /**
2666
- * @generated from message river.GetEntitlementsResponse
2862
+ * @generated from message river.AppServiceResponse.StatusResponse
2667
2863
  */
2668
- export type GetEntitlementsResponse = Message<"river.GetEntitlementsResponse"> & {
2864
+ export type AppServiceResponse_StatusResponse = Message<"river.AppServiceResponse.StatusResponse"> & {
2669
2865
  /**
2670
- * can_set_promoted indicates whether the caller can change the app's promoted status
2866
+ * Version established by the app registry that the bot framework supports.
2867
+ * It indicates protocol compatibility.
2671
2868
  *
2672
- * @generated from field: bool can_set_promoted = 1;
2869
+ * @generated from field: int32 framework_version = 1;
2673
2870
  */
2674
- canSetPromoted: boolean;
2871
+ frameworkVersion: number;
2675
2872
  /**
2676
- * can_set_verified indicates whether the caller can change the app's verified status
2677
- *
2678
- * @generated from field: bool can_set_verified = 2;
2873
+ * @generated from field: string device_key = 2;
2679
2874
  */
2680
- canSetVerified: boolean;
2875
+ deviceKey: string;
2681
2876
  /**
2682
- * can_set_active indicates whether the caller can change the app's active status
2683
- *
2684
- * @generated from field: bool can_set_active = 3;
2877
+ * @generated from field: string fallback_key = 3;
2685
2878
  */
2686
- canSetActive: boolean;
2879
+ fallbackKey: string;
2687
2880
  /**
2688
- * can_update_metadata indicates whether the caller can update the app's metadata
2881
+ * Optional metadata used to identify the client SDK version.
2882
+ * Example: "javascript:@towns-labs/app-framework:0.0.1"
2689
2883
  *
2690
- * @generated from field: bool can_update_metadata = 4;
2884
+ * @generated from field: optional string client_version = 4;
2691
2885
  */
2692
- canUpdateMetadata: boolean;
2886
+ clientVersion?: string;
2887
+ };
2888
+ /**
2889
+ * Describes the message river.AppServiceResponse.StatusResponse.
2890
+ * Use `create(AppServiceResponse_StatusResponseSchema)` to create a new message.
2891
+ */
2892
+ export declare const AppServiceResponse_StatusResponseSchema: GenMessage<AppServiceResponse_StatusResponse>;
2893
+ /**
2894
+ * @generated from message river.AppServiceResponse.ProposalsResponse
2895
+ */
2896
+ export type AppServiceResponse_ProposalsResponse = Message<"river.AppServiceResponse.ProposalsResponse"> & {
2693
2897
  /**
2694
- * is_owner indicates whether the caller is the app's owner
2898
+ * Webhook delivery accepted; processing continues asynchronously.
2695
2899
  *
2696
- * @generated from field: bool is_owner = 5;
2900
+ * @generated from field: bool accepted = 1;
2697
2901
  */
2698
- isOwner: boolean;
2902
+ accepted: boolean;
2903
+ };
2904
+ /**
2905
+ * Describes the message river.AppServiceResponse.ProposalsResponse.
2906
+ * Use `create(AppServiceResponse_ProposalsResponseSchema)` to create a new message.
2907
+ */
2908
+ export declare const AppServiceResponse_ProposalsResponseSchema: GenMessage<AppServiceResponse_ProposalsResponse>;
2909
+ /**
2910
+ * @generated from message river.AppServiceResponse.ConciergeResponse
2911
+ */
2912
+ export type AppServiceResponse_ConciergeResponse = Message<"river.AppServiceResponse.ConciergeResponse"> & {
2699
2913
  /**
2700
- * is_admin indicates whether the caller is a platform admin
2914
+ * Webhook delivery accepted; processing continues asynchronously.
2701
2915
  *
2702
- * @generated from field: bool is_admin = 6;
2916
+ * @generated from field: bool accepted = 1;
2703
2917
  */
2704
- isAdmin: boolean;
2918
+ accepted: boolean;
2705
2919
  };
2706
2920
  /**
2707
- * Describes the message river.GetEntitlementsResponse.
2708
- * Use `create(GetEntitlementsResponseSchema)` to create a new message.
2921
+ * Describes the message river.AppServiceResponse.ConciergeResponse.
2922
+ * Use `create(AppServiceResponse_ConciergeResponseSchema)` to create a new message.
2709
2923
  */
2710
- export declare const GetEntitlementsResponseSchema: GenMessage<GetEntitlementsResponse>;
2924
+ export declare const AppServiceResponse_ConciergeResponseSchema: GenMessage<AppServiceResponse_ConciergeResponse>;
2711
2925
  /**
2712
2926
  * ForwardSettingValue is an app-specific setting applied to all space channels the app is a member
2713
2927
  * of. It specifies which messages the app registry service will consider relevant for forwarding to
@@ -2763,7 +2977,13 @@ export declare enum SupportedApi {
2763
2977
  *
2764
2978
  * @generated from enum value: SUPPORTED_API_POSITIONS = 1;
2765
2979
  */
2766
- POSITIONS = 1
2980
+ POSITIONS = 1,
2981
+ /**
2982
+ * App supports the PNL API (returns PnlResponse via POST /api/user-pnl).
2983
+ *
2984
+ * @generated from enum value: SUPPORTED_API_PNL = 2;
2985
+ */
2986
+ PNL = 2
2767
2987
  }
2768
2988
  /**
2769
2989
  * Describes the enum river.SupportedApi.
@@ -2829,7 +3049,7 @@ export declare const ConciergeFinishStatusSchema: GenEnum<ConciergeFinishStatus>
2829
3049
  * GetStatus, GetAppMetadata, ValidateBotName, GetEntityName, GetBatchEntityNames,
2830
3050
  * ListRegisteredApps, GetBulkAppData, GetAppInstallStats, GetBulkAppInstallStats,
2831
3051
  * GetAppReviews, GetAppReviewSummary, GetBulkAppReviewSummaries,
2832
- * GetBulkAgentCapabilities, QueryConcierge, GetConversationSeed.
3052
+ * GetBulkAgentCapabilities, QueryConcierge, GetConversationSeed, GetBatchAppPnl.
2833
3053
  *
2834
3054
  * @generated from service river.AppRegistryService
2835
3055
  */
@@ -3199,6 +3419,18 @@ export declare const AppRegistryService: GenService<{
3199
3419
  input: typeof GetBatchAppPositionsRequestSchema;
3200
3420
  output: typeof GetBatchAppPositionsResponseSchema;
3201
3421
  };
3422
+ /**
3423
+ * GetBatchAppPnl retrieves PNL data for multiple users from multiple apps.
3424
+ * Apps that don't support PNL will return error entries.
3425
+ * This endpoint does not require authentication.
3426
+ *
3427
+ * @generated from rpc river.AppRegistryService.GetBatchAppPnl
3428
+ */
3429
+ getBatchAppPnl: {
3430
+ methodKind: "unary";
3431
+ input: typeof GetBatchAppPnlRequestSchema;
3432
+ output: typeof GetBatchAppPnlResponseSchema;
3433
+ };
3202
3434
  /**
3203
3435
  * GetBulkAgentCapabilities returns capability manifests for the given specialist agents.
3204
3436
  * This endpoint does not require authentication.