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