@towns-labs/proto 7.1.0 → 7.2.0

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