@alook/daemon 0.1.48 → 0.1.49

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.
Files changed (3) hide show
  1. package/dist/cli/index.js +375 -277
  2. package/dist/index.js +375 -277
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -37577,30 +37577,288 @@ function writeStatusFile(path14, snapshot) {
37577
37577
  renameSync3(tmp, path14);
37578
37578
  } catch {}
37579
37579
  }
37580
- // ../shared/src/community-attention.ts
37580
+ // ../shared/src/community-contract.ts
37581
+ var COMMUNITY_RESOURCE_CONTRACT_VERSION = 3;
37582
+
37583
+ // ../shared/src/community-friend-approval.ts
37584
+ var profile = exports_external.strictObject({
37585
+ id: exports_external.string(),
37586
+ name: exports_external.string(),
37587
+ discriminator: exports_external.string(),
37588
+ image: exports_external.string().nullable(),
37589
+ avatarVersion: exports_external.number().int().nonnegative()
37590
+ });
37591
+ var FriendApprovalPayloadSchema = exports_external.strictObject({
37592
+ friendshipId: exports_external.string(),
37593
+ status: exports_external.enum(["pending", "approved", "denied", "superseded", "cancelled"]),
37594
+ waitingOn: exports_external.enum(["you", "other-owner", "addressee"]).nullable(),
37595
+ otherProfile: profile,
37596
+ botProfile: profile,
37597
+ waitingOnProfile: profile.nullable().optional()
37598
+ });
37599
+
37600
+ // ../shared/src/community-resources.ts
37581
37601
  var id = exports_external.string().min(1);
37582
- var AttentionScopeSchema = exports_external.strictObject({
37583
- scopeId: id,
37602
+ var nullableId = id.nullable();
37603
+ var legacyArchivedSchema = exports_external.union([exports_external.boolean(), exports_external.literal(0), exports_external.literal(1)]).transform((value) => value === true || value === 1);
37604
+ var CommunityChannelResourceSchema = exports_external.strictObject({
37605
+ id,
37606
+ type: exports_external.enum(["text", "forum", "thread", "dm"]),
37607
+ serverId: nullableId,
37608
+ categoryId: nullableId,
37609
+ name: exports_external.string().nullable(),
37610
+ topic: exports_external.string(),
37611
+ parentChannelId: nullableId,
37612
+ parentMessageId: nullableId,
37613
+ creatorId: nullableId,
37614
+ position: exports_external.number(),
37615
+ archived: exports_external.boolean(),
37616
+ createdAt: exports_external.string(),
37617
+ lastMessageAt: exports_external.string().nullable(),
37618
+ messageCount: exports_external.number().int().nonnegative()
37619
+ });
37620
+ var CommunityChannelIdentitySchema = CommunityChannelResourceSchema.pick({
37621
+ id: true,
37622
+ type: true,
37623
+ serverId: true,
37624
+ name: true,
37625
+ parentChannelId: true,
37626
+ parentMessageId: true,
37627
+ creatorId: true,
37628
+ archived: true,
37629
+ lastMessageAt: true,
37630
+ createdAt: true
37631
+ }).partial({ createdAt: true }).strip();
37632
+ var legacyChannelIdentitySchema = CommunityChannelIdentitySchema.extend({
37633
+ archived: legacyArchivedSchema,
37634
+ parentChannelId: nullableId.default(null),
37635
+ parentMessageId: nullableId.default(null),
37636
+ creatorId: nullableId.default(null),
37637
+ lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null)
37638
+ });
37639
+ var CommunityAccessDecisionSchema = exports_external.strictObject({
37640
+ channelId: id,
37641
+ canRead: exports_external.boolean(),
37642
+ canSend: exports_external.boolean(),
37643
+ canCreateDiscussion: exports_external.boolean()
37644
+ });
37645
+ var CommunityLegacyMessageAttachmentSchema = exports_external.strictObject({
37646
+ kind: exports_external.enum(["image", "file"]),
37647
+ name: exports_external.string(),
37648
+ url: exports_external.string(),
37649
+ thumbnailUrl: exports_external.string().optional(),
37650
+ contentType: exports_external.string().optional(),
37651
+ size: exports_external.string().optional(),
37652
+ sizeBytes: exports_external.number().nonnegative().optional(),
37653
+ width: exports_external.number().nonnegative().optional(),
37654
+ height: exports_external.number().nonnegative().optional()
37655
+ });
37656
+ var CommunityMessageAttachmentSchema = exports_external.strictObject({
37657
+ id,
37658
+ name: exports_external.string(),
37659
+ url: exports_external.string(),
37660
+ thumbnailUrl: exports_external.string().nullable(),
37661
+ contentType: exports_external.string().nullable(),
37662
+ sizeBytes: exports_external.number().int().nonnegative().nullable(),
37663
+ width: exports_external.number().int().nonnegative().nullable(),
37664
+ height: exports_external.number().int().nonnegative().nullable()
37665
+ });
37666
+ var CommunityMessagePreviewAttachmentSchema = CommunityMessageAttachmentSchema.partial().required({ name: true, url: true });
37667
+ var CommunityResourceProfileSchema = exports_external.strictObject({
37668
+ id,
37669
+ name: exports_external.string(),
37670
+ discriminator: exports_external.string().min(1).nullable(),
37671
+ avatar: exports_external.string().nullable(),
37672
+ avatarVersion: exports_external.number().int().nonnegative(),
37673
+ aboutMe: exports_external.string().optional(),
37674
+ bannerColor: exports_external.string().nullable().optional(),
37675
+ kind: exports_external.enum(["human", "bot"]).optional(),
37676
+ ownerUserId: nullableId.optional(),
37677
+ ownerHandle: exports_external.string().nullable().optional(),
37678
+ mutualServers: exports_external.number().int().nonnegative().optional(),
37679
+ ownedByViewer: exports_external.boolean().optional(),
37680
+ statusEmoji: exports_external.string().nullable().optional(),
37681
+ statusText: exports_external.string().nullable().optional()
37682
+ });
37683
+ var CommunityMessageThreadParticipantSchema = CommunityResourceProfileSchema.pick({ id: true, name: true, avatar: true, avatarVersion: true });
37684
+ var messageThreadSchema = exports_external.strictObject({
37685
+ id,
37686
+ name: CommunityChannelResourceSchema.shape.name,
37687
+ messageCount: CommunityChannelResourceSchema.shape.messageCount,
37688
+ lastReplyAt: CommunityChannelResourceSchema.shape.lastMessageAt.optional(),
37689
+ tags: exports_external.array(exports_external.string()).optional(),
37690
+ preview: exports_external.string().optional(),
37691
+ participants: exports_external.array(CommunityMessageThreadParticipantSchema).optional(),
37692
+ participantCount: exports_external.number().int().nonnegative().optional()
37693
+ });
37694
+ var legacyMessageThreadSchema = messageThreadSchema.extend({
37695
+ name: exports_external.string(),
37696
+ lastReplyAt: exports_external.string().optional(),
37697
+ participants: exports_external.array(CommunityMessageThreadParticipantSchema.extend({ avatar: exports_external.string() })).optional()
37698
+ });
37699
+ var messageThreadPreviewSchema = messageThreadSchema.partial().required({ id: true }).extend({
37700
+ participants: exports_external.array(CommunityMessageThreadParticipantSchema.partial().required({ id: true })).optional()
37701
+ });
37702
+ var CommunityMessageResourceSchema = exports_external.strictObject({
37703
+ id,
37704
+ channelId: id,
37705
+ seq: exports_external.number().int().nonnegative(),
37706
+ authorId: id,
37707
+ createdAt: exports_external.string(),
37708
+ type: exports_external.enum(["chat", "system"]),
37709
+ content: exports_external.string(),
37710
+ replyToId: nullableId,
37711
+ clientNonce: exports_external.string().nullable(),
37712
+ attachments: exports_external.array(CommunityMessageAttachmentSchema),
37713
+ systemKind: exports_external.literal("thread").optional(),
37714
+ authorName: exports_external.string().optional(),
37715
+ authorAvatar: exports_external.string().nullable().optional(),
37716
+ authorAvatarVersion: exports_external.number().int().nonnegative().optional(),
37717
+ mentionType: exports_external.literal("everyone").nullable().optional(),
37718
+ replyTo: exports_external.strictObject({
37719
+ id,
37720
+ authorId: id.optional(),
37721
+ authorName: exports_external.string(),
37722
+ text: exports_external.string(),
37723
+ deleted: exports_external.boolean().optional()
37724
+ }).optional(),
37725
+ embeds: exports_external.array(exports_external.unknown()).optional(),
37726
+ reactions: exports_external.array(exports_external.strictObject({
37727
+ emoji: exports_external.string(),
37728
+ count: exports_external.number().int().nonnegative(),
37729
+ me: exports_external.boolean(),
37730
+ userIds: exports_external.array(id)
37731
+ })).optional(),
37732
+ thread: messageThreadSchema.optional(),
37733
+ approval: FriendApprovalPayloadSchema.optional()
37734
+ });
37735
+ var CommunityMessagePreviewSchema = CommunityMessageResourceSchema.partial().required({
37736
+ id: true,
37737
+ type: true
37738
+ }).extend({ attachments: exports_external.array(CommunityMessagePreviewAttachmentSchema).optional(), thread: messageThreadPreviewSchema.optional() });
37739
+ var CommunityReadStateResourceSchema = exports_external.strictObject({
37584
37740
  channelId: id,
37585
- serverId: id.nullable().optional(),
37586
- parentChannelId: id.nullable().optional(),
37741
+ lastReadMessageId: nullableId,
37742
+ lastReadAt: exports_external.string().nullable(),
37743
+ lastReadSeq: exports_external.number().int().nonnegative()
37744
+ });
37745
+ var CommunityMemberRelationSchema = exports_external.strictObject({
37746
+ channelId: id,
37747
+ userId: id,
37748
+ relation: exports_external.enum(["access", "notify"]),
37749
+ source: exports_external.string(),
37750
+ isCreator: exports_external.boolean(),
37751
+ role: exports_external.string().nullable(),
37752
+ memberId: nullableId
37753
+ });
37754
+ var CommunityPageSchema = exports_external.strictObject({
37755
+ olderCursor: exports_external.string().nullable(),
37756
+ newerCursor: exports_external.string().nullable(),
37757
+ hasMoreOlder: exports_external.boolean(),
37758
+ hasMoreNewer: exports_external.boolean(),
37759
+ latestSeq: exports_external.number().int().nonnegative()
37760
+ });
37761
+ var envelope = { contractVersion: exports_external.literal(COMMUNITY_RESOURCE_CONTRACT_VERSION), channelId: id };
37762
+ var CommunityChannelReadSchema = exports_external.strictObject({ ...envelope, channel: CommunityChannelResourceSchema, access: CommunityAccessDecisionSchema });
37763
+ var CommunityMessagesReadSchema = exports_external.strictObject({
37764
+ ...envelope,
37765
+ messages: exports_external.array(CommunityMessageResourceSchema),
37766
+ page: CommunityPageSchema,
37767
+ surfaceReceipt: exports_external.strictObject({ channelId: id, surfaceKind: exports_external.enum(["channel", "forum", "thread", "dm"]) })
37768
+ });
37769
+ var CommunityMessagePostedSchema = CommunityMessagesReadSchema.pick({ contractVersion: true, channelId: true }).extend({
37770
+ message: CommunityMessageResourceSchema,
37771
+ deduped: exports_external.boolean(),
37772
+ threadId: id.optional()
37773
+ });
37774
+ var CommunityMessageReadSchema = CommunityMessagePostedSchema.omit({ deduped: true, threadId: true });
37775
+ var CommunityReadStateReadSchema = exports_external.strictObject({ ...envelope, readState: CommunityReadStateResourceSchema });
37776
+ var CommunityMembersReadSchema = exports_external.strictObject({ ...envelope, relation: exports_external.enum(["access", "notify"]), members: exports_external.array(CommunityMemberRelationSchema), profiles: exports_external.array(CommunityResourceProfileSchema) });
37777
+ var CommunityThreadsReadSchema = exports_external.strictObject({
37778
+ ...envelope,
37779
+ channel: CommunityChannelResourceSchema,
37780
+ threads: exports_external.array(CommunityChannelResourceSchema),
37781
+ included: exports_external.strictObject({
37782
+ messages: exports_external.array(CommunityMessageResourceSchema),
37783
+ members: exports_external.array(CommunityMemberRelationSchema),
37784
+ profiles: exports_external.array(CommunityResourceProfileSchema),
37785
+ tags: exports_external.array(exports_external.strictObject({ messageId: id, tag: exports_external.string() })),
37786
+ participantCounts: exports_external.array(exports_external.strictObject({ channelId: id, count: exports_external.number().int().nonnegative() }))
37787
+ }),
37788
+ page: exports_external.strictObject({ nextCursor: exports_external.string().nullable(), hasMore: exports_external.boolean() })
37789
+ });
37790
+ var CommunityReadAdvanceSchema = exports_external.strictObject({ ...envelope, changed: exports_external.boolean(), targetSeq: exports_external.number().int().nonnegative(), revision: exports_external.number().int().nonnegative() });
37791
+ var CommunityReadErrorSchema = exports_external.strictObject({ contractVersion: exports_external.literal(COMMUNITY_RESOURCE_CONTRACT_VERSION), error: exports_external.strictObject({
37792
+ code: exports_external.enum(["invalid_input", "invalid_reply_target", "unauthenticated", "not_found", "not_allowed", "blocked", "idempotency_conflict", "rate_limited", "temporarily_unavailable"]),
37793
+ message: exports_external.string(),
37794
+ retryable: exports_external.boolean()
37795
+ }) });
37796
+ var legacyProfileSchema = CommunityResourceProfileSchema.pick({
37797
+ id: true,
37798
+ name: true,
37799
+ avatar: true,
37800
+ avatarVersion: true
37801
+ }).extend({ discriminator: exports_external.string().nullable(), statusEmoji: exports_external.string().nullable(), statusText: exports_external.string() });
37802
+ var CommunityLegacyMessageResourceSchema = CommunityMessageResourceSchema.extend({ authorAvatar: exports_external.string().optional(), attachments: exports_external.array(CommunityLegacyMessageAttachmentSchema), thread: legacyMessageThreadSchema.optional() });
37803
+ var legacyEnvelope = { contractVersion: exports_external.literal(2), channelId: id };
37804
+ var legacyReadSchemas = {
37805
+ channel: CommunityChannelReadSchema.extend(legacyEnvelope),
37806
+ messages: CommunityMessagesReadSchema.extend({ ...legacyEnvelope, messages: exports_external.array(CommunityLegacyMessageResourceSchema) }),
37807
+ readState: CommunityReadStateReadSchema.extend(legacyEnvelope),
37808
+ members: CommunityMembersReadSchema.extend({ ...legacyEnvelope, profiles: exports_external.array(legacyProfileSchema) }),
37809
+ threads: CommunityThreadsReadSchema.extend({ ...legacyEnvelope, included: CommunityThreadsReadSchema.shape.included.extend({
37810
+ messages: exports_external.array(CommunityLegacyMessageResourceSchema),
37811
+ profiles: exports_external.array(legacyProfileSchema)
37812
+ }) }),
37813
+ readAdvance: CommunityReadAdvanceSchema.extend(legacyEnvelope),
37814
+ error: CommunityReadErrorSchema.extend({ contractVersion: exports_external.literal(2) })
37815
+ };
37816
+ var legacyChannelResourcePreviewSchema = CommunityChannelResourceSchema.partial().strip().extend({
37817
+ archived: legacyArchivedSchema.optional()
37818
+ });
37819
+ var legacyChannelResourceSchema = CommunityChannelResourceSchema.strip().extend({
37820
+ topic: CommunityChannelResourceSchema.shape.topic.nullish().transform((value) => value ?? ""),
37821
+ position: CommunityChannelResourceSchema.shape.position.nullish().transform((value) => value ?? 0),
37822
+ messageCount: CommunityChannelResourceSchema.shape.messageCount.nullish().transform((value) => value ?? 0),
37823
+ categoryId: nullableId.default(null),
37824
+ parentChannelId: nullableId.default(null),
37825
+ parentMessageId: nullableId.default(null),
37826
+ creatorId: nullableId.default(null),
37827
+ lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null),
37828
+ archived: legacyArchivedSchema
37829
+ });
37830
+ var legacyMessageResourceSchema = CommunityLegacyMessageResourceSchema.strip().extend({
37831
+ channelId: id.optional(),
37832
+ replyToId: nullableId.optional(),
37833
+ clientNonce: CommunityMessageResourceSchema.shape.clientNonce.default(null),
37834
+ attachments: CommunityLegacyMessageResourceSchema.shape.attachments.default([]),
37835
+ embeds: CommunityMessageResourceSchema.shape.embeds.nullable().transform((value) => value ?? undefined)
37836
+ });
37837
+
37838
+ // ../shared/src/community-attention.ts
37839
+ var id2 = exports_external.string().min(1);
37840
+ var AttentionScopeSchema = exports_external.strictObject({
37841
+ scopeId: id2,
37842
+ channelId: id2,
37843
+ serverId: id2.nullable().optional(),
37844
+ parentChannelId: id2.nullable().optional(),
37587
37845
  ordinaryUnread: exports_external.boolean(),
37588
37846
  lastUnreadSeq: exports_external.number().int().nonnegative(),
37589
37847
  lastAttentionSeq: exports_external.number().int().nonnegative().nullable().optional(),
37590
37848
  attentionCount: exports_external.number().int().nonnegative()
37591
37849
  });
37592
37850
  var AttentionItemSchema = exports_external.strictObject({
37593
- id,
37851
+ id: id2,
37594
37852
  kind: exports_external.enum(["mention", "reply", "friend_request", "forum_post"]),
37595
- sourceId: id,
37596
- scopeId: id.nullable().optional(),
37597
- messageId: id.nullable().optional(),
37598
- actorUserId: id.nullable().optional(),
37853
+ sourceId: id2,
37854
+ scopeId: id2.nullable().optional(),
37855
+ messageId: id2.nullable().optional(),
37856
+ actorUserId: id2.nullable().optional(),
37599
37857
  createdAt: exports_external.string(),
37600
- childChannelId: id.optional(),
37858
+ childChannelId: id2.optional(),
37601
37859
  openerSeq: exports_external.number().int().nonnegative().optional(),
37602
37860
  readTarget: exports_external.strictObject({
37603
- channelId: id,
37861
+ channelId: id2,
37604
37862
  seq: exports_external.number().int().nonnegative()
37605
37863
  }).optional()
37606
37864
  }).superRefine((item, ctx) => {
@@ -37630,26 +37888,30 @@ var AttentionItemSchema = exports_external.strictObject({
37630
37888
  }
37631
37889
  });
37632
37890
  var AttentionIncludedServerSchema = exports_external.strictObject({
37633
- id,
37891
+ id: id2,
37634
37892
  name: exports_external.string(),
37635
37893
  discriminator: exports_external.string()
37636
37894
  });
37637
- var AttentionIncludedChannelSchema = exports_external.strictObject({
37638
- id,
37639
- serverId: id,
37640
- name: exports_external.string(),
37641
- type: exports_external.enum(["text", "forum", "thread"]),
37642
- parentChannelId: id.nullable(),
37643
- parentMessageId: id.nullable(),
37644
- creatorId: id.nullable(),
37645
- archived: exports_external.boolean(),
37646
- lastMessageAt: exports_external.string().nullable(),
37895
+ var AttentionIncludedChannelSchema = CommunityChannelResourceSchema.pick({
37896
+ id: true,
37897
+ serverId: true,
37898
+ name: true,
37899
+ type: true,
37900
+ parentChannelId: true,
37901
+ parentMessageId: true,
37902
+ creatorId: true,
37903
+ archived: true,
37904
+ lastMessageAt: true
37905
+ }).extend({
37906
+ serverId: CommunityChannelResourceSchema.shape.serverId.unwrap(),
37907
+ name: CommunityChannelResourceSchema.shape.name.unwrap(),
37908
+ type: CommunityChannelResourceSchema.shape.type.extract(["text", "forum", "thread"]),
37647
37909
  openerSeq: exports_external.number().int().nonnegative().optional(),
37648
37910
  openerUnread: exports_external.boolean().optional()
37649
37911
  });
37650
37912
  var AttentionIncludedDmSchema = exports_external.strictObject({
37651
- id,
37652
- userId: id,
37913
+ id: id2,
37914
+ userId: id2,
37653
37915
  name: exports_external.string(),
37654
37916
  discriminator: exports_external.string(),
37655
37917
  avatar: exports_external.string(),
@@ -37658,22 +37920,21 @@ var AttentionIncludedDmSchema = exports_external.strictObject({
37658
37920
  lastUnreadSeq: exports_external.number().int().nonnegative()
37659
37921
  });
37660
37922
  var AttentionIncludedProfileSchema = exports_external.strictObject({
37661
- userId: id,
37662
- name: exports_external.string(),
37923
+ userId: CommunityResourceProfileSchema.shape.id,
37924
+ ...CommunityResourceProfileSchema.pick({ name: true, discriminator: true, avatar: true, avatarVersion: true }).shape,
37663
37925
  discriminator: exports_external.string(),
37664
- avatar: exports_external.string(),
37665
- avatarVersion: exports_external.number().int().nonnegative()
37666
- });
37667
- var AttentionIncludedMessageSchema = exports_external.strictObject({
37668
- id,
37669
- channelId: id,
37670
- type: exports_external.enum(["chat", "system"]),
37671
- authorId: id.optional(),
37672
- authorName: exports_external.string().optional(),
37673
- seq: exports_external.number().int().nonnegative(),
37674
- createdAt: exports_external.string(),
37675
- content: exports_external.string()
37926
+ avatar: exports_external.string()
37676
37927
  });
37928
+ var AttentionIncludedMessageSchema = CommunityMessagePreviewSchema.pick({
37929
+ id: true,
37930
+ channelId: true,
37931
+ type: true,
37932
+ authorId: true,
37933
+ authorName: true,
37934
+ seq: true,
37935
+ createdAt: true,
37936
+ content: true
37937
+ }).required({ channelId: true, seq: true, createdAt: true, content: true });
37677
37938
  var AttentionIncludedSchema = exports_external.strictObject({
37678
37939
  servers: exports_external.array(AttentionIncludedServerSchema),
37679
37940
  channels: exports_external.array(AttentionIncludedChannelSchema),
@@ -37699,7 +37960,7 @@ var AccountAttentionSnapshotSchema = exports_external.strictObject({
37699
37960
  const serverById = new Map(snapshot.included.servers.map((server) => [server.id, server]));
37700
37961
  const channelById = new Map(snapshot.included.channels.map((channel2) => [channel2.id, channel2]));
37701
37962
  const dmById = new Map(snapshot.included.dms.map((dm) => [dm.id, dm]));
37702
- const profileById = new Map(snapshot.included.profiles.map((profile) => [profile.userId, profile]));
37963
+ const profileById = new Map(snapshot.included.profiles.map((profile2) => [profile2.userId, profile2]));
37703
37964
  const messageById = new Map(snapshot.included.messages.map((message2) => [message2.id, message2]));
37704
37965
  const rejectDuplicates = (values, kind) => {
37705
37966
  const seen = new Set;
@@ -37712,7 +37973,7 @@ var AccountAttentionSnapshotSchema = exports_external.strictObject({
37712
37973
  rejectDuplicates(snapshot.included.servers.map((server) => server.id), "server");
37713
37974
  rejectDuplicates(snapshot.included.channels.map((channel2) => channel2.id), "channel");
37714
37975
  rejectDuplicates(snapshot.included.dms.map((dm) => dm.id), "dm");
37715
- rejectDuplicates(snapshot.included.profiles.map((profile) => profile.userId), "profile");
37976
+ rejectDuplicates(snapshot.included.profiles.map((profile2) => profile2.userId), "profile");
37716
37977
  rejectDuplicates(snapshot.included.messages.map((message2) => message2.id), "message");
37717
37978
  for (const scope of snapshot.scopes) {
37718
37979
  if (scope.serverId) {
@@ -38523,15 +38784,15 @@ var CommunityMachineRuntimeListSchema = exports_external.array(CommunityMachineR
38523
38784
  var CommunityRunningAgentListSchema = exports_external.array(exports_external.string()).transform((list) => {
38524
38785
  const seen = new Set;
38525
38786
  const out = [];
38526
- for (const id2 of list) {
38527
- if (seen.has(id2))
38787
+ for (const id3 of list) {
38788
+ if (seen.has(id3))
38528
38789
  continue;
38529
- seen.add(id2);
38530
- out.push(id2);
38790
+ seen.add(id3);
38791
+ out.push(id3);
38531
38792
  }
38532
38793
  return out;
38533
38794
  });
38534
- var CommunityMachineSummarySchema = exports_external.object({
38795
+ var CommunityMachineSummarySchema = exports_external.strictObject({
38535
38796
  id: exports_external.string(),
38536
38797
  hostname: exports_external.string(),
38537
38798
  displayName: exports_external.string(),
@@ -38541,8 +38802,8 @@ var CommunityMachineSummarySchema = exports_external.object({
38541
38802
  daemonVersion: exports_external.string(),
38542
38803
  lastSeenAt: exports_external.string().nullable(),
38543
38804
  status: exports_external.enum(["online", "offline"]),
38544
- availableRuntimes: exports_external.array(CommunityMachineRuntimeSchema).default([]),
38545
- lastRuntimeError: exports_external.object({
38805
+ availableRuntimes: exports_external.array(CommunityMachineRuntimeSchema.strict()),
38806
+ lastRuntimeError: exports_external.strictObject({
38546
38807
  requested: exports_external.string(),
38547
38808
  available: exports_external.array(exports_external.string()),
38548
38809
  at: exports_external.string()
@@ -39482,203 +39743,6 @@ var AGENT_UNREAD_CHANNEL_CHUNK_SIZE = maxInParams(13);
39482
39743
 
39483
39744
  // ../shared/src/db/queries/community/mention.ts
39484
39745
  var MENTION_INSERT_MAX_ROWS = maxRowsPerInsert(5);
39485
- // ../shared/src/community-friend-approval.ts
39486
- var profile = exports_external.strictObject({
39487
- id: exports_external.string(),
39488
- name: exports_external.string(),
39489
- discriminator: exports_external.string(),
39490
- image: exports_external.string().nullable(),
39491
- avatarVersion: exports_external.number().int().nonnegative()
39492
- });
39493
- var FriendApprovalPayloadSchema = exports_external.strictObject({
39494
- friendshipId: exports_external.string(),
39495
- status: exports_external.enum(["pending", "approved", "denied", "superseded", "cancelled"]),
39496
- waitingOn: exports_external.enum(["you", "other-owner", "addressee"]).nullable(),
39497
- otherProfile: profile,
39498
- botProfile: profile,
39499
- waitingOnProfile: profile.nullable().optional()
39500
- });
39501
-
39502
- // ../shared/src/community-contract.ts
39503
- var COMMUNITY_CONTRACT_VERSION = 2;
39504
-
39505
- // ../shared/src/community-resources.ts
39506
- var id2 = exports_external.string().min(1);
39507
- var nullableId = id2.nullable();
39508
- var legacyArchivedSchema = exports_external.union([exports_external.boolean(), exports_external.literal(0), exports_external.literal(1)]).transform((value) => value === true || value === 1);
39509
- var CommunityChannelResourceSchema = exports_external.strictObject({
39510
- id: id2,
39511
- type: exports_external.enum(["text", "forum", "thread", "dm"]),
39512
- serverId: nullableId,
39513
- categoryId: nullableId,
39514
- name: exports_external.string().nullable(),
39515
- topic: exports_external.string(),
39516
- parentChannelId: nullableId,
39517
- parentMessageId: nullableId,
39518
- creatorId: nullableId,
39519
- position: exports_external.number(),
39520
- archived: exports_external.boolean(),
39521
- createdAt: exports_external.string(),
39522
- lastMessageAt: exports_external.string().nullable(),
39523
- messageCount: exports_external.number().int().nonnegative()
39524
- });
39525
- var CommunityChannelIdentitySchema = CommunityChannelResourceSchema.pick({
39526
- id: true,
39527
- type: true,
39528
- serverId: true,
39529
- name: true,
39530
- parentChannelId: true,
39531
- parentMessageId: true,
39532
- creatorId: true,
39533
- archived: true,
39534
- lastMessageAt: true,
39535
- createdAt: true
39536
- }).partial({ createdAt: true }).strip();
39537
- var legacyChannelIdentitySchema = CommunityChannelIdentitySchema.extend({
39538
- archived: legacyArchivedSchema,
39539
- parentChannelId: nullableId.default(null),
39540
- parentMessageId: nullableId.default(null),
39541
- creatorId: nullableId.default(null),
39542
- lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null)
39543
- });
39544
- var CommunityAccessDecisionSchema = exports_external.strictObject({
39545
- channelId: id2,
39546
- canRead: exports_external.boolean(),
39547
- canSend: exports_external.boolean(),
39548
- canCreateDiscussion: exports_external.boolean()
39549
- });
39550
- var CommunityMessageAttachmentSchema = exports_external.strictObject({
39551
- kind: exports_external.enum(["image", "file"]),
39552
- name: exports_external.string(),
39553
- url: exports_external.string(),
39554
- thumbnailUrl: exports_external.string().optional(),
39555
- contentType: exports_external.string().optional(),
39556
- size: exports_external.string().optional(),
39557
- sizeBytes: exports_external.number().nonnegative().optional(),
39558
- width: exports_external.number().nonnegative().optional(),
39559
- height: exports_external.number().nonnegative().optional()
39560
- });
39561
- var CommunityMessageResourceSchema = exports_external.strictObject({
39562
- id: id2,
39563
- channelId: id2,
39564
- seq: exports_external.number().int().nonnegative(),
39565
- authorId: id2,
39566
- createdAt: exports_external.string(),
39567
- type: exports_external.enum(["chat", "system"]),
39568
- content: exports_external.string(),
39569
- replyToId: nullableId,
39570
- clientNonce: exports_external.string().nullable(),
39571
- attachments: exports_external.array(CommunityMessageAttachmentSchema),
39572
- systemKind: exports_external.literal("thread").optional(),
39573
- authorName: exports_external.string().optional(),
39574
- authorAvatar: exports_external.string().optional(),
39575
- authorAvatarVersion: exports_external.number().int().nonnegative().optional(),
39576
- mentionType: exports_external.literal("everyone").nullable().optional(),
39577
- replyTo: exports_external.strictObject({
39578
- id: id2,
39579
- authorId: id2.optional(),
39580
- authorName: exports_external.string(),
39581
- text: exports_external.string(),
39582
- deleted: exports_external.boolean().optional()
39583
- }).optional(),
39584
- embeds: exports_external.array(exports_external.unknown()).optional(),
39585
- reactions: exports_external.array(exports_external.strictObject({
39586
- emoji: exports_external.string(),
39587
- count: exports_external.number().int().nonnegative(),
39588
- me: exports_external.boolean(),
39589
- userIds: exports_external.array(id2)
39590
- })).optional(),
39591
- thread: exports_external.strictObject({
39592
- id: id2,
39593
- name: exports_external.string(),
39594
- messageCount: exports_external.number().int().nonnegative(),
39595
- lastReplyAt: exports_external.string().optional(),
39596
- tags: exports_external.array(exports_external.string()).optional(),
39597
- preview: exports_external.string().optional(),
39598
- participants: exports_external.array(exports_external.strictObject({ id: id2, name: exports_external.string(), avatar: exports_external.string(), avatarVersion: exports_external.number().int().nonnegative() })).optional(),
39599
- participantCount: exports_external.number().int().nonnegative().optional()
39600
- }).optional(),
39601
- approval: FriendApprovalPayloadSchema.optional()
39602
- });
39603
- var CommunityReadStateResourceSchema = exports_external.strictObject({
39604
- channelId: id2,
39605
- lastReadMessageId: nullableId,
39606
- lastReadAt: exports_external.string().nullable(),
39607
- lastReadSeq: exports_external.number().int().nonnegative()
39608
- });
39609
- var CommunityMemberRelationSchema = exports_external.strictObject({
39610
- channelId: id2,
39611
- userId: id2,
39612
- relation: exports_external.enum(["access", "notify"]),
39613
- source: exports_external.string(),
39614
- isCreator: exports_external.boolean(),
39615
- role: exports_external.string().nullable(),
39616
- memberId: nullableId
39617
- });
39618
- var CommunityResourceProfileSchema = exports_external.strictObject({
39619
- id: id2,
39620
- name: exports_external.string(),
39621
- discriminator: exports_external.string().nullable(),
39622
- avatar: exports_external.string().nullable(),
39623
- avatarVersion: exports_external.number().int().nonnegative(),
39624
- statusEmoji: exports_external.string().nullable(),
39625
- statusText: exports_external.string()
39626
- });
39627
- var CommunityPageSchema = exports_external.strictObject({
39628
- olderCursor: exports_external.string().nullable(),
39629
- newerCursor: exports_external.string().nullable(),
39630
- hasMoreOlder: exports_external.boolean(),
39631
- hasMoreNewer: exports_external.boolean(),
39632
- latestSeq: exports_external.number().int().nonnegative()
39633
- });
39634
- var envelope = { contractVersion: exports_external.literal(COMMUNITY_CONTRACT_VERSION), channelId: id2 };
39635
- var CommunityChannelReadSchema = exports_external.strictObject({ ...envelope, channel: CommunityChannelResourceSchema, access: CommunityAccessDecisionSchema });
39636
- var CommunityMessagesReadSchema = exports_external.strictObject({
39637
- ...envelope,
39638
- messages: exports_external.array(CommunityMessageResourceSchema),
39639
- page: CommunityPageSchema,
39640
- surfaceReceipt: exports_external.strictObject({ channelId: id2, surfaceKind: exports_external.enum(["channel", "forum", "thread", "dm"]) })
39641
- });
39642
- var CommunityReadStateReadSchema = exports_external.strictObject({ ...envelope, readState: CommunityReadStateResourceSchema });
39643
- var CommunityMembersReadSchema = exports_external.strictObject({ ...envelope, relation: exports_external.enum(["access", "notify"]), members: exports_external.array(CommunityMemberRelationSchema), profiles: exports_external.array(CommunityResourceProfileSchema) });
39644
- var CommunityThreadsReadSchema = exports_external.strictObject({
39645
- ...envelope,
39646
- channel: CommunityChannelResourceSchema,
39647
- threads: exports_external.array(CommunityChannelResourceSchema),
39648
- included: exports_external.strictObject({
39649
- messages: exports_external.array(CommunityMessageResourceSchema),
39650
- members: exports_external.array(CommunityMemberRelationSchema),
39651
- profiles: exports_external.array(CommunityResourceProfileSchema),
39652
- tags: exports_external.array(exports_external.strictObject({ messageId: id2, tag: exports_external.string() })),
39653
- participantCounts: exports_external.array(exports_external.strictObject({ channelId: id2, count: exports_external.number().int().nonnegative() }))
39654
- }),
39655
- page: exports_external.strictObject({ nextCursor: exports_external.string().nullable(), hasMore: exports_external.boolean() })
39656
- });
39657
- var CommunityReadAdvanceSchema = exports_external.strictObject({ ...envelope, changed: exports_external.boolean(), targetSeq: exports_external.number().int().nonnegative(), revision: exports_external.number().int().nonnegative() });
39658
- var CommunityReadErrorSchema = exports_external.strictObject({ contractVersion: exports_external.literal(COMMUNITY_CONTRACT_VERSION), error: exports_external.strictObject({
39659
- code: exports_external.enum(["invalid_input", "invalid_reply_target", "unauthenticated", "not_found", "not_allowed", "blocked", "idempotency_conflict", "rate_limited", "temporarily_unavailable"]),
39660
- message: exports_external.string(),
39661
- retryable: exports_external.boolean()
39662
- }) });
39663
- var legacyChannelResourceSchema = CommunityChannelResourceSchema.strip().extend({
39664
- topic: CommunityChannelResourceSchema.shape.topic.nullish().transform((value) => value ?? ""),
39665
- position: CommunityChannelResourceSchema.shape.position.nullish().transform((value) => value ?? 0),
39666
- messageCount: CommunityChannelResourceSchema.shape.messageCount.nullish().transform((value) => value ?? 0),
39667
- categoryId: nullableId.default(null),
39668
- parentChannelId: nullableId.default(null),
39669
- parentMessageId: nullableId.default(null),
39670
- creatorId: nullableId.default(null),
39671
- lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null),
39672
- archived: legacyArchivedSchema
39673
- });
39674
- var legacyMessageResourceSchema = CommunityMessageResourceSchema.strip().extend({
39675
- channelId: id2.optional(),
39676
- replyToId: nullableId.optional(),
39677
- clientNonce: CommunityMessageResourceSchema.shape.clientNonce.default(null),
39678
- attachments: CommunityMessageResourceSchema.shape.attachments.default([]),
39679
- embeds: CommunityMessageResourceSchema.shape.embeds.nullable().transform((value) => value ?? undefined)
39680
- });
39681
-
39682
39746
  // ../shared/src/community-ws-events.ts
39683
39747
  var string4 = exports_external.string();
39684
39748
  var nullableString = string4.nullable();
@@ -39708,6 +39772,7 @@ var messageSchema = CommunityMessageResourceSchema.pick({
39708
39772
  seq: exports_external.number(),
39709
39773
  authorId: string4,
39710
39774
  authorName: string4,
39775
+ authorAvatar: string4.optional(),
39711
39776
  authorAvatarVersion: CommunityMessageResourceSchema.shape.authorAvatarVersion.unwrap(),
39712
39777
  replyToId: nullableString.optional(),
39713
39778
  replyTo: CommunityMessageResourceSchema.shape.replyTo.unwrap().extend({
@@ -39717,7 +39782,7 @@ var messageSchema = CommunityMessageResourceSchema.pick({
39717
39782
  attachments: exports_external.array(messageAttachmentSchema).optional(),
39718
39783
  clientNonce: string4.optional()
39719
39784
  });
39720
- var communityMessageCreateSchema = exports_external.strictObject({
39785
+ var CommunityLegacyMessageCreateSchema = exports_external.strictObject({
39721
39786
  type: exports_external.literal("community:message.create"),
39722
39787
  channelId: string4,
39723
39788
  serverId: string4.optional(),
@@ -40029,29 +40094,9 @@ var communityProfileUpdateSchema = exports_external.strictObject({
40029
40094
  kind: exports_external.enum(["human", "bot"]),
40030
40095
  ownerUserId: nullableString
40031
40096
  });
40032
- var machineRuntimeSchema = CommunityMachineRuntimeSchema.strict();
40033
- var CommunityMachineSummarySchema2 = exports_external.strictObject({
40034
- id: string4,
40035
- hostname: string4,
40036
- displayName: string4,
40037
- platform: string4,
40038
- arch: string4,
40039
- osRelease: string4,
40040
- daemonVersion: string4,
40041
- lastSeenAt: nullableString,
40042
- status: exports_external.enum(["online", "offline"]),
40043
- availableRuntimes: exports_external.array(machineRuntimeSchema),
40044
- lastRuntimeError: exports_external.strictObject({
40045
- requested: string4,
40046
- available: exports_external.array(string4),
40047
- at: string4
40048
- }).optional(),
40049
- createdAt: string4,
40050
- updatedAt: string4
40051
- });
40052
40097
  var communityMachineCreatedSchema = exports_external.strictObject({
40053
40098
  type: exports_external.literal("community:machine.created"),
40054
- machine: CommunityMachineSummarySchema2,
40099
+ machine: CommunityMachineSummarySchema,
40055
40100
  tokenId: string4
40056
40101
  });
40057
40102
  var communityMachineStatusSchema = exports_external.strictObject({
@@ -40062,7 +40107,7 @@ var communityMachineStatusSchema = exports_external.strictObject({
40062
40107
  });
40063
40108
  var communityMachineUpdatedSchema = exports_external.strictObject({
40064
40109
  type: exports_external.literal("community:machine.updated"),
40065
- machine: CommunityMachineSummarySchema2
40110
+ machine: CommunityMachineSummarySchema
40066
40111
  });
40067
40112
  var communityMachineRemovedSchema = exports_external.strictObject({
40068
40113
  type: exports_external.literal("community:machine.removed"),
@@ -40078,8 +40123,7 @@ var communityBotAuditEventSchema = exports_external.strictObject({
40078
40123
  launchId: nullableString.optional(),
40079
40124
  createdAt: string4
40080
40125
  }).refine((event) => Object.prototype.hasOwnProperty.call(event, "payload"));
40081
- var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("type", [
40082
- communityMessageCreateSchema,
40126
+ var commonCommunityEventSchemas = [
40083
40127
  communityMessageUpdatedSchema,
40084
40128
  communityMessageEditedSchema,
40085
40129
  communityReactionAddSchema,
@@ -40088,12 +40132,8 @@ var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("t
40088
40132
  communityPinRemoveSchema,
40089
40133
  communityTypingStartSchema,
40090
40134
  communityTypingStopSchema,
40091
- communityChildChannelCreateSchema,
40092
- communityChildChannelUpdateSchema,
40093
40135
  communityServerUpdateSchema,
40094
40136
  communityServerDeleteSchema,
40095
- communityChannelCreateSchema,
40096
- communityChannelUpdateSchema,
40097
40137
  communityChannelDeleteSchema,
40098
40138
  communityChannelReorderSchema,
40099
40139
  communityChannelMemberAddSchema,
@@ -40118,15 +40158,34 @@ var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("t
40118
40158
  communityInboxChangedSchema,
40119
40159
  communityPresenceUpdateSchema,
40120
40160
  communityStatusUpdateSchema,
40121
- communityIdentityUpdateSchema,
40122
- communityProfileUpdateSchema,
40123
40161
  communityMachineCreatedSchema,
40124
40162
  communityMachineStatusSchema,
40125
40163
  communityMachineUpdatedSchema,
40126
40164
  communityMachineRemovedSchema,
40127
40165
  communityBotAuditEventSchema
40166
+ ];
40167
+ var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("type", [
40168
+ ...commonCommunityEventSchemas,
40169
+ CommunityLegacyMessageCreateSchema,
40170
+ communityChildChannelCreateSchema,
40171
+ communityChannelCreateSchema,
40172
+ communityChildChannelUpdateSchema,
40173
+ communityChannelUpdateSchema,
40174
+ communityIdentityUpdateSchema,
40175
+ communityProfileUpdateSchema
40176
+ ]);
40177
+ var CommunityResourceWsEventDiscriminatedSchema = exports_external.discriminatedUnion("type", [
40178
+ ...commonCommunityEventSchemas,
40179
+ CommunityLegacyMessageCreateSchema.extend({ message: CommunityMessageResourceSchema.required({ authorName: true, authorAvatarVersion: true }) }).refine((event) => event.message.channelId === event.channelId),
40180
+ communityChildChannelCreateSchema.extend({ channel: CommunityChannelResourceSchema.extend({ type: exports_external.literal("thread") }) }).refine((event) => event.channel.parentChannelId === event.parentChannelId && (event.parentMessageId === undefined || event.parentMessageId === event.channel.parentMessageId)),
40181
+ communityChannelCreateSchema.extend({ channel: CommunityChannelResourceSchema.extend({ type: channelTypeSchema }) }).refine((event) => event.channel.serverId === event.serverId),
40182
+ communityChildChannelUpdateSchema.extend({ changes: CommunityChannelResourceSchema.pick({ name: true, archived: true, lastMessageAt: true, messageCount: true }).partial().extend({ tags: exports_external.array(string4).nullable().optional() }) }),
40183
+ communityChannelUpdateSchema.extend({ changes: CommunityChannelResourceSchema.pick({ name: true, topic: true, categoryId: true, type: true }).partial().extend({ type: channelTypeSchema.optional() }) }),
40184
+ communityIdentityUpdateSchema.extend({ avatar: CommunityResourceProfileSchema.shape.avatar, avatarVersion: CommunityResourceProfileSchema.shape.avatarVersion.refine((version3) => version3 > 0) }),
40185
+ CommunityResourceProfileSchema.pick({ name: true, discriminator: true, aboutMe: true, bannerColor: true, kind: true, ownerUserId: true }).required().extend({ type: exports_external.literal("community:profile.update"), userId: string4 })
40128
40186
  ]);
40129
40187
  var CommunityWsEventSchema = CommunityWsEventDiscriminatedSchema.transform((event) => event);
40188
+ var CommunityResourceWsEventSchema = CommunityResourceWsEventDiscriminatedSchema.transform((event) => event);
40130
40189
  var WS_EVENTS = {
40131
40190
  MESSAGE_CREATE: "community:message.create",
40132
40191
  MESSAGE_UPDATED: "community:message.updated",
@@ -40210,6 +40269,7 @@ var memberAddedSchema = exports_external.strictObject({
40210
40269
  channelId: exports_external.string().min(1)
40211
40270
  });
40212
40271
  var batchShape = exports_external.strictObject({
40272
+ communityContract: exports_external.literal(3).optional(),
40213
40273
  messageId: exports_external.string().min(1),
40214
40274
  messageEvent: exports_external.unknown(),
40215
40275
  contentUserIds: targetList,
@@ -40326,8 +40386,46 @@ var communityFunnelAnalyticsEvent = sqliteTable("community_funnel_analytics_even
40326
40386
  index("idx_community_funnel_analytics_owner_claimed_created").on(t.ownerUserId, t.claimedAt, t.createdAt)
40327
40387
  ]);
40328
40388
 
40389
+ // ../shared/src/db/product-analytics-schema.ts
40390
+ var exports_product_analytics_schema = {};
40391
+ __export(exports_product_analytics_schema, {
40392
+ productAnalyticsEvent: () => productAnalyticsEvent,
40393
+ PRODUCT_ANALYTICS_EVENTS: () => PRODUCT_ANALYTICS_EVENTS
40394
+ });
40395
+ var PRODUCT_ANALYTICS_EVENTS = [
40396
+ "landing_cta_clicked",
40397
+ "login_page_view",
40398
+ "sign_up",
40399
+ "sign_in_success",
40400
+ "sign_in_failed",
40401
+ "onboarding_enter_clicked",
40402
+ "onboarding_first_message",
40403
+ "invitation_link_visit"
40404
+ ];
40405
+ var productAnalyticsEvent = sqliteTable("product_analytics_event", {
40406
+ id: text2("id").primaryKey(),
40407
+ eventName: text2("event_name").notNull().$type(),
40408
+ actorUserId: text2("actor_user_id").references(() => user.id, { onDelete: "cascade" }),
40409
+ serverId: text2("server_id").references(() => communityServer.id, { onDelete: "cascade" }),
40410
+ sourceId: text2("source_id"),
40411
+ dedupeKey: text2("dedupe_key").notNull(),
40412
+ clientId: text2("client_id").notNull(),
40413
+ sessionId: text2("session_id").notNull(),
40414
+ method: text2("method"),
40415
+ accountKind: text2("account_kind").$type(),
40416
+ ctaName: text2("cta_name"),
40417
+ failureStage: text2("failure_stage").$type(),
40418
+ createdAt: text2("created_at").notNull(),
40419
+ deliveryStatus: text2("delivery_status").notNull().default("pending").$type(),
40420
+ deliveryReason: text2("delivery_reason"),
40421
+ attemptedAt: text2("attempted_at")
40422
+ }, (t) => [
40423
+ uniqueIndex("uq_product_analytics_dedupe").on(t.dedupeKey),
40424
+ index("idx_product_analytics_actor_server_event").on(t.actorUserId, t.serverId, t.eventName)
40425
+ ]);
40426
+
40329
40427
  // ../shared/src/db/index.ts
40330
- var allSchema = { ...exports_schema, ...exports_community_schema, ...exports_community_machine_schema, ...exports_product_plan_schema, ...exports_billing_schema, ...exports_community_funnel_analytics_schema };
40428
+ var allSchema = { ...exports_schema, ...exports_community_schema, ...exports_community_machine_schema, ...exports_product_plan_schema, ...exports_billing_schema, ...exports_community_funnel_analytics_schema, ...exports_product_analytics_schema };
40331
40429
  // ../shared/src/community-server-rail.ts
40332
40430
  var MAX_SERVER_RAIL_COMMANDS = 3;
40333
40431
  var idSchema = exports_external.string().trim().min(1);