@ttt-productions/ttt-core 0.78.26 → 0.79.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.
Files changed (148) hide show
  1. package/dist/capabilities/capability-registry.d.ts +2 -2
  2. package/dist/capabilities/capability-registry.d.ts.map +1 -1
  3. package/dist/capabilities/capability-registry.js +5 -5
  4. package/dist/capabilities/capability-registry.js.map +1 -1
  5. package/dist/capabilities/messaging-surfaces.d.ts.map +1 -1
  6. package/dist/capabilities/messaging-surfaces.js +7 -3
  7. package/dist/capabilities/messaging-surfaces.js.map +1 -1
  8. package/dist/constants/app-mode.d.ts +9 -0
  9. package/dist/constants/app-mode.d.ts.map +1 -1
  10. package/dist/constants/app-mode.js +17 -0
  11. package/dist/constants/app-mode.js.map +1 -1
  12. package/dist/constants/business-content.d.ts +0 -2
  13. package/dist/constants/business-content.d.ts.map +1 -1
  14. package/dist/constants/business-content.js +0 -2
  15. package/dist/constants/business-content.js.map +1 -1
  16. package/dist/constants/conversation-files.d.ts +7 -0
  17. package/dist/constants/conversation-files.d.ts.map +1 -0
  18. package/dist/constants/conversation-files.js +14 -0
  19. package/dist/constants/conversation-files.js.map +1 -0
  20. package/dist/constants/index.d.ts +1 -0
  21. package/dist/constants/index.d.ts.map +1 -1
  22. package/dist/constants/index.js +1 -0
  23. package/dist/constants/index.js.map +1 -1
  24. package/dist/doc-schemas/chat-sync.d.ts +0 -4
  25. package/dist/doc-schemas/chat-sync.d.ts.map +1 -1
  26. package/dist/doc-schemas/chat-sync.js +2 -9
  27. package/dist/doc-schemas/chat-sync.js.map +1 -1
  28. package/dist/doc-schemas/commissions.d.ts +2 -2
  29. package/dist/doc-schemas/media-activation-jobs.d.ts +3 -8
  30. package/dist/doc-schemas/media-activation-jobs.d.ts.map +1 -1
  31. package/dist/doc-schemas/media-assets.d.ts +22 -34
  32. package/dist/doc-schemas/media-assets.d.ts.map +1 -1
  33. package/dist/doc-schemas/media-assets.js +24 -21
  34. package/dist/doc-schemas/media-assets.js.map +1 -1
  35. package/dist/doc-schemas/messaging.d.ts +41 -19
  36. package/dist/doc-schemas/messaging.d.ts.map +1 -1
  37. package/dist/doc-schemas/messaging.js +64 -4
  38. package/dist/doc-schemas/messaging.js.map +1 -1
  39. package/dist/doc-schemas/moderation.d.ts +1 -1
  40. package/dist/doc-schemas/ncii/allegations.d.ts +21 -9
  41. package/dist/doc-schemas/ncii/allegations.d.ts.map +1 -1
  42. package/dist/doc-schemas/ncii/cases.d.ts +10 -4
  43. package/dist/doc-schemas/ncii/cases.d.ts.map +1 -1
  44. package/dist/doc-schemas/ncii/holds.d.ts +10 -4
  45. package/dist/doc-schemas/ncii/holds.d.ts.map +1 -1
  46. package/dist/doc-schemas/ncii/removal.d.ts +13 -7
  47. package/dist/doc-schemas/ncii/removal.d.ts.map +1 -1
  48. package/dist/doc-schemas/ncii/requests.d.ts +11 -5
  49. package/dist/doc-schemas/ncii/requests.d.ts.map +1 -1
  50. package/dist/doc-schemas/registry.d.ts +148 -119
  51. package/dist/doc-schemas/registry.d.ts.map +1 -1
  52. package/dist/doc-schemas/registry.js +5 -1
  53. package/dist/doc-schemas/registry.js.map +1 -1
  54. package/dist/doc-schemas/safety/case.d.ts +10 -4
  55. package/dist/doc-schemas/safety/case.d.ts.map +1 -1
  56. package/dist/doc-schemas/safety/case.js +4 -3
  57. package/dist/doc-schemas/safety/case.js.map +1 -1
  58. package/dist/doc-schemas/safety/evidence.d.ts +2 -3
  59. package/dist/doc-schemas/safety/evidence.d.ts.map +1 -1
  60. package/dist/doc-schemas/safety/foundation.d.ts +15 -8
  61. package/dist/doc-schemas/safety/foundation.d.ts.map +1 -1
  62. package/dist/doc-schemas/safety/foundation.js +32 -6
  63. package/dist/doc-schemas/safety/foundation.js.map +1 -1
  64. package/dist/doc-schemas/safety/holds.d.ts +1 -1
  65. package/dist/doc-schemas/safety/report.d.ts +25 -10
  66. package/dist/doc-schemas/safety/report.d.ts.map +1 -1
  67. package/dist/doc-schemas/safety/report.js +2 -1
  68. package/dist/doc-schemas/safety/report.js.map +1 -1
  69. package/dist/ids/chat-ids.d.ts +1 -2
  70. package/dist/ids/chat-ids.d.ts.map +1 -1
  71. package/dist/ids/chat-ids.js +1 -4
  72. package/dist/ids/chat-ids.js.map +1 -1
  73. package/dist/media/conversation-file-ref.d.ts +13 -0
  74. package/dist/media/conversation-file-ref.d.ts.map +1 -0
  75. package/dist/media/conversation-file-ref.js +37 -0
  76. package/dist/media/conversation-file-ref.js.map +1 -0
  77. package/dist/media/domain-events-admin.d.ts +1 -1
  78. package/dist/media/domain-events-social.d.ts +0 -7
  79. package/dist/media/domain-events-social.d.ts.map +1 -1
  80. package/dist/media/domain-events-social.js +2 -13
  81. package/dist/media/domain-events-social.js.map +1 -1
  82. package/dist/media/domain-events.d.ts +1 -7
  83. package/dist/media/domain-events.d.ts.map +1 -1
  84. package/dist/media/domain-events.js +1 -2
  85. package/dist/media/domain-events.js.map +1 -1
  86. package/dist/media/edge-serving-contract.d.ts +6 -11
  87. package/dist/media/edge-serving-contract.d.ts.map +1 -1
  88. package/dist/media/edge-serving-contract.js.map +1 -1
  89. package/dist/media/file-origin.d.ts +1 -1
  90. package/dist/media/file-origin.d.ts.map +1 -1
  91. package/dist/media/file-origin.js +6 -1
  92. package/dist/media/file-origin.js.map +1 -1
  93. package/dist/media/index.d.ts +1 -0
  94. package/dist/media/index.d.ts.map +1 -1
  95. package/dist/media/index.js +1 -0
  96. package/dist/media/index.js.map +1 -1
  97. package/dist/media/pending-media.d.ts +25 -79
  98. package/dist/media/pending-media.d.ts.map +1 -1
  99. package/dist/media/photodna-coverage.js +1 -1
  100. package/dist/media/photodna-coverage.js.map +1 -1
  101. package/dist/media/start-upload.d.ts +1 -1
  102. package/dist/media/target-info.d.ts +6 -26
  103. package/dist/media/target-info.d.ts.map +1 -1
  104. package/dist/media/target-info.js +9 -35
  105. package/dist/media/target-info.js.map +1 -1
  106. package/dist/media/ttt-media-specs.d.ts.map +1 -1
  107. package/dist/media/ttt-media-specs.js +8 -5
  108. package/dist/media/ttt-media-specs.js.map +1 -1
  109. package/dist/media/upload-tray-display.js +1 -1
  110. package/dist/media/upload-tray-display.js.map +1 -1
  111. package/dist/paths/collection-refs.d.ts +2 -0
  112. package/dist/paths/collection-refs.d.ts.map +1 -1
  113. package/dist/paths/collection-refs.js +4 -0
  114. package/dist/paths/collection-refs.js.map +1 -1
  115. package/dist/paths/collections.d.ts +1 -0
  116. package/dist/paths/collections.d.ts.map +1 -1
  117. package/dist/paths/collections.js +7 -0
  118. package/dist/paths/collections.js.map +1 -1
  119. package/dist/paths/path-builders.d.ts +2 -0
  120. package/dist/paths/path-builders.d.ts.map +1 -1
  121. package/dist/paths/path-builders.js +5 -0
  122. package/dist/paths/path-builders.js.map +1 -1
  123. package/dist/report/report-config-values.d.ts +3 -1
  124. package/dist/report/report-config-values.d.ts.map +1 -1
  125. package/dist/report/report-config-values.js +5 -1
  126. package/dist/report/report-config-values.js.map +1 -1
  127. package/dist/safety/ncii-intake-derivations.d.ts.map +1 -1
  128. package/dist/safety/ncii-intake-derivations.js +17 -5
  129. package/dist/safety/ncii-intake-derivations.js.map +1 -1
  130. package/dist/schemas/admin.d.ts +3 -0
  131. package/dist/schemas/admin.d.ts.map +1 -1
  132. package/dist/schemas/admin.js +5 -0
  133. package/dist/schemas/admin.js.map +1 -1
  134. package/dist/schemas/chat.js +3 -3
  135. package/dist/schemas/chat.js.map +1 -1
  136. package/dist/schemas/commissions.d.ts +1 -1
  137. package/dist/schemas/media.d.ts +0 -4
  138. package/dist/schemas/media.d.ts.map +1 -1
  139. package/dist/schemas/media.js +5 -10
  140. package/dist/schemas/media.js.map +1 -1
  141. package/dist/schemas/ncii.d.ts +3 -0
  142. package/dist/schemas/ncii.d.ts.map +1 -1
  143. package/dist/schemas/notification.d.ts +1 -0
  144. package/dist/schemas/notification.d.ts.map +1 -1
  145. package/dist/types/audit.d.ts +1 -1
  146. package/dist/types/audit.d.ts.map +1 -1
  147. package/dist/types/audit.js.map +1 -1
  148. package/package.json +2 -2
@@ -1,4 +1,37 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * `{conversationParent}/conversationFiles/{conversationFileId}` — the conversation's
4
+ * lightweight ownership/list projection, analogous to `WorkFileSchema`.
5
+ *
6
+ * DELIBERATELY ABSENT (owned elsewhere, never duplicated here):
7
+ * - no `status` / `ready` / `publicationState` / processing progress — `pendingMedia`
8
+ * and `mediaAssets` own the lifecycle; the mere EXISTENCE of this doc means the
9
+ * asset is published;
10
+ * - no Firebase / R2 / gateway / signed / download URL — display URLs are built at
11
+ * render time through the protected media gateway;
12
+ * - no Firebase staging `storagePath`;
13
+ * - no username / display name / avatar / Work name snapshot (ARCH-103) — resolve
14
+ * `uploadedByUid` at render time.
15
+ *
16
+ * `conversationFileId` is deterministic: it IS the `pendingMediaId`. The publication
17
+ * adapter creates this doc with `transaction.create` (never `set`), so an id
18
+ * collision cannot overwrite and double-count an existing file.
19
+ */
20
+ export declare const ConversationFileSchema: z.ZodObject<{
21
+ conversationFileId: z.ZodString;
22
+ mediaAssetId: z.ZodString;
23
+ name: z.ZodString;
24
+ mediaKind: z.ZodEnum<{
25
+ video: "video";
26
+ image: "image";
27
+ audio: "audio";
28
+ }>;
29
+ contentType: z.ZodString;
30
+ sizeBytes: z.ZodNumber;
31
+ uploadedByUid: z.ZodString;
32
+ createdAt: z.ZodNumber;
33
+ }, z.core.$strip>;
34
+ export type ConversationFile = z.infer<typeof ConversationFileSchema>;
2
35
  export declare const GuildChatChannelSchema: z.ZodObject<{
3
36
  guildChatChannelId: z.ZodString;
4
37
  workProjectId: z.ZodString;
@@ -17,6 +50,10 @@ export declare const GuildChatChannelSchema: z.ZodObject<{
17
50
  }, z.core.$strip>;
18
51
  export type GuildChatChannel = z.infer<typeof GuildChatChannelSchema>;
19
52
  export declare const GuildInviteConversationSchema: z.ZodObject<{
53
+ conversationFileCount: z.ZodOptional<z.ZodNumber>;
54
+ conversationFileBytesUsed: z.ZodOptional<z.ZodNumber>;
55
+ conversationFileUploadCount: z.ZodOptional<z.ZodNumber>;
56
+ conversationFileBytesReserved: z.ZodOptional<z.ZodNumber>;
20
57
  guildInviteId: z.ZodString;
21
58
  workProjectId: z.ZodString;
22
59
  relatedUserIds: z.ZodArray<z.ZodString>;
@@ -95,6 +132,10 @@ export declare const AdminDispatchPartyKindSchema: z.ZodEnum<{
95
132
  }>;
96
133
  export type AdminDispatchPartyKind = z.infer<typeof AdminDispatchPartyKindSchema>;
97
134
  export declare const AdminDispatchSchema: z.ZodObject<{
135
+ conversationFileCount: z.ZodOptional<z.ZodNumber>;
136
+ conversationFileBytesUsed: z.ZodOptional<z.ZodNumber>;
137
+ conversationFileUploadCount: z.ZodOptional<z.ZodNumber>;
138
+ conversationFileBytesReserved: z.ZodOptional<z.ZodNumber>;
98
139
  adminDispatchId: z.ZodString;
99
140
  partyKind: z.ZodOptional<z.ZodEnum<{
100
141
  workProject: "workProject";
@@ -141,25 +182,6 @@ export declare const ChatMessageV1Schema: z.ZodObject<{
141
182
  threadId: z.ZodOptional<z.ZodString>;
142
183
  type: z.ZodOptional<z.ZodString>;
143
184
  guildInviteId: z.ZodOptional<z.ZodString>;
144
- attachment: z.ZodOptional<z.ZodObject<{
145
- id: z.ZodString;
146
- name: z.ZodString;
147
- type: z.ZodEnum<{
148
- image: "image";
149
- video: "video";
150
- audio: "audio";
151
- text: "text";
152
- }>;
153
- size: z.ZodNumber;
154
- mediaAssetId: z.ZodOptional<z.ZodString>;
155
- storagePath: z.ZodString;
156
- status: z.ZodOptional<z.ZodEnum<{
157
- pending: "pending";
158
- ready: "ready";
159
- failed: "failed";
160
- }>>;
161
- failureReason: z.ZodOptional<z.ZodString>;
162
- }, z.core.$strict>>;
163
185
  replyTo: z.ZodOptional<z.ZodObject<{
164
186
  messageId: z.ZodString;
165
187
  senderId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/messaging.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAwBjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAQtE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAMpF,eAAO,MAAM,6BAA6B;;;;;;;;;;2BASxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,4BAA4B;;;EAAkC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAShE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB9B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/messaging.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAWjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAwBjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAQtE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAMpF,eAAO,MAAM,6BAA6B;;;;;;;;;;2BASxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,4BAA4B;;;EAAkC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAWhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAoB9B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -3,10 +3,61 @@
3
3
  // live in @ttt-productions/chat-core (ChatMessageV1); ttt-core owns the thread docs.
4
4
  // Types inferred via z.infer.
5
5
  import { z } from 'zod';
6
- import { ReplyToSchema, ChatAttachmentSchema } from '@ttt-productions/chat-schemas';
6
+ import { ReplyToSchema } from '@ttt-productions/chat-schemas';
7
7
  import { InviteSourceSchema } from '../schemas/work-project-management.js';
8
8
  import { guildInviteConversationStatusSchema } from '../schemas/atoms.js';
9
+ import { ContentMediaKindSchema } from './media-assets.js';
9
10
  const userRefSchema = z.object({ uid: z.string() });
11
+ // ===========================================================================
12
+ // CONVERSATION FILES — the flat, Firestore-owned file list on a conversation.
13
+ // Replaces inline chat attachments: a file is associated WITH a conversation but
14
+ // never embedded in, sequenced with, or mutated through a chat message.
15
+ // See ttt-prod docs/design/upload-and-media-pipeline.md.
16
+ // ===========================================================================
17
+ /** Backend-owned Conversation Files counters carried by EVERY conversation parent
18
+ * (guildInviteConversations/{id} and pendingAdminDispatches/{id}). All four are
19
+ * optional — an absent field reads as 0, so no pre-existing conversation needs a
20
+ * backfill. Clients can never write them (rules + callable-only writes). */
21
+ const conversationFileCounterFields = {
22
+ /** Published ACTIVE files in this conversation. */
23
+ conversationFileCount: z.number().optional(),
24
+ /** Published STORED-OUTPUT bytes in this conversation. */
25
+ conversationFileBytesUsed: z.number().optional(),
26
+ /** Active quota RESERVATIONS (uploads in flight). */
27
+ conversationFileUploadCount: z.number().optional(),
28
+ /** Bytes reserved by active uploads. */
29
+ conversationFileBytesReserved: z.number().optional(),
30
+ };
31
+ /**
32
+ * `{conversationParent}/conversationFiles/{conversationFileId}` — the conversation's
33
+ * lightweight ownership/list projection, analogous to `WorkFileSchema`.
34
+ *
35
+ * DELIBERATELY ABSENT (owned elsewhere, never duplicated here):
36
+ * - no `status` / `ready` / `publicationState` / processing progress — `pendingMedia`
37
+ * and `mediaAssets` own the lifecycle; the mere EXISTENCE of this doc means the
38
+ * asset is published;
39
+ * - no Firebase / R2 / gateway / signed / download URL — display URLs are built at
40
+ * render time through the protected media gateway;
41
+ * - no Firebase staging `storagePath`;
42
+ * - no username / display name / avatar / Work name snapshot (ARCH-103) — resolve
43
+ * `uploadedByUid` at render time.
44
+ *
45
+ * `conversationFileId` is deterministic: it IS the `pendingMediaId`. The publication
46
+ * adapter creates this doc with `transaction.create` (never `set`), so an id
47
+ * collision cannot overwrite and double-count an existing file.
48
+ */
49
+ export const ConversationFileSchema = z.object({
50
+ conversationFileId: z.string(),
51
+ mediaAssetId: z.string(),
52
+ name: z.string(),
53
+ // The canonical stored content media kind — never a re-declared union (ARCH-102).
54
+ mediaKind: ContentMediaKindSchema,
55
+ contentType: z.string(),
56
+ /** Sum of the PUBLISHED variant bytes (stored output, not raw upload bytes). */
57
+ sizeBytes: z.number(),
58
+ uploadedByUid: z.string(),
59
+ createdAt: z.number(),
60
+ });
10
61
  export const GuildChatChannelSchema = z.object({
11
62
  guildChatChannelId: z.string(),
12
63
  workProjectId: z.string(),
@@ -68,6 +119,11 @@ export const GuildInviteConversationSchema = z.object({
68
119
  recipientConfirmed: z.boolean(),
69
120
  lastMessage: z.string().optional(),
70
121
  lastMessageAt: z.string().optional(),
122
+ // Conversation Files quota counters for THIS invite conversation (per-conversation
123
+ // caps: MAX_CONVERSATION_FILES / MAX_CONVERSATION_FILE_STORAGE_BYTES). Reserved at
124
+ // startUpload, transferred to used at publication, released on every terminal path,
125
+ // decremented on delete. Backend-only-writable; absent ⇒ 0.
126
+ ...conversationFileCounterFields,
71
127
  });
72
128
  // Typed context ref carried by a dispatch thread born from a review send-back, a
73
129
  // moderation placeholder, or a published change request — lets the admin queue card
@@ -106,14 +162,19 @@ export const AdminDispatchSchema = z.object({
106
162
  readByAdmin: z.boolean(),
107
163
  readByUser: z.boolean(),
108
164
  closedBy: z.string().optional(),
165
+ // Conversation Files quota counters for THIS admin-support thread — same
166
+ // per-conversation caps and same backend-only ownership as the invite conversation.
167
+ ...conversationFileCounterFields,
109
168
  });
110
169
  // Per-message body for admin-support `conversationMessages` — the ONE chat surface still
111
170
  // transported through Firestore (guild channel + invite messages are realtime-only, served
112
171
  // by the chat Worker Durable Object). Written by runSendGuildChatMessage (senderId/text/
113
- // createdAt + optional replyTo/attachment); the admin-dispatch INITIAL message
172
+ // createdAt + optional replyTo); the admin-dispatch INITIAL message
114
173
  // (runStartAdminSupportThread) additionally stores `messageId`. This is the STORED shape — a relaxed
115
174
  // @ttt-productions/chat-core ChatMessageV1: `messageId` is the doc id (only sometimes persisted) and
116
- // `threadId` is not stored. Reuses the chat-schemas Zod shapes for attachment + replyTo.
175
+ // `threadId` is not stored. Reuses the chat-schemas ReplyTo Zod shape.
176
+ // A chat message carries NO file reference — files live in the conversation's
177
+ // `conversationFiles` subcollection (ConversationFileSchema above).
117
178
  export const ChatMessageV1Schema = z.object({
118
179
  senderId: z.string(),
119
180
  text: z.string(),
@@ -126,7 +187,6 @@ export const ChatMessageV1Schema = z.object({
126
187
  // subcollection. Optional so the same body schema still fits the guildChat /
127
188
  // admin-dispatch messages that don't carry it.
128
189
  guildInviteId: z.string().optional(),
129
- attachment: ChatAttachmentSchema.optional(),
130
190
  replyTo: ReplyToSchema.optional(),
131
191
  isSystemMessage: z.boolean().optional(),
132
192
  meta: z.record(z.string(), z.unknown()).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/doc-schemas/messaging.ts"],"names":[],"mappings":"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","sourcesContent":["// Messaging parent-thread Firestore document SCHEMAS — guildChatChannels, the\n// guildInviteConversations shell, and pendingAdminDispatches. Per-message body shapes\n// live in @ttt-productions/chat-core (ChatMessageV1); ttt-core owns the thread docs.\n// Types inferred via z.infer.\n\nimport { z } from 'zod';\nimport { ReplyToSchema, ChatAttachmentSchema } from '@ttt-productions/chat-schemas';\nimport { InviteSourceSchema } from '../schemas/work-project-management.js';\nimport { guildInviteConversationStatusSchema } from '../schemas/atoms.js';\n\nconst userRefSchema = z.object({ uid: z.string() });\n\nexport const GuildChatChannelSchema = z.object({\n guildChatChannelId: z.string(),\n workProjectId: z.string(),\n channelName: z.string(),\n description: z.string().optional(),\n requiredGuildStandings: z.array(z.string()),\n allowedUserIds: z.array(z.string()),\n createdAt: z.number(),\n // NOTE: createdBy here is a flat uid string (unlike the `{ uid }` object form on\n // most other docs). Preserved as-is; flagged in the schema-registry recon.\n createdBy: z.string(),\n lastMessageAt: z.string().optional(),\n lastMessage: z.string().optional(),\n messageCount: z.number(),\n isArchived: z.boolean(),\n // Delete/tombstone marker (ttt-prod docs/design/chat-realtime-system.md \"Channel lifecycle semantics\").\n // Independent of `isArchived`: archive = visible-under-a-toggle, delete = gone from every user's\n // UI with grants revoked and sends rejected DO-side; storage is RETAINED (never a physical purge).\n // Optional, absent ⇒ false, so existing/seeded channels need no backfill. Backend-only-writable.\n isDeleted: z.boolean().optional(),\n // Monotonic config version for the chat-realtime sync layer (Contract B). Bumped by\n // each channel create / edit / archive / delete in the authoritative txn; the\n // `config` chatSyncEvents + channel-scoped fanout key on it. Absent ⇒ 0.\n configVersion: z.number().optional(),\n});\nexport type GuildChatChannel = z.infer<typeof GuildChatChannelSchema>;\n\n// The guildInviteConversations/{guildInviteId} doc as actually written by inviteUserToGuild\n// (and mutated by the accept/decline/finalize/cancel callables). This is the single source of\n// truth — the former duplicate `GuildInviteSchema` in ./work-project.ts was a stale, narrower\n// shape that the callable bypassed with an `as unknown as` cast. The inviter is `createdBy`\n// (== `sender`); there is no separate `workSteward`/`workProjectTitle` field (the title lives in\n// `workProject.workingTitle`).\nexport const GuildInviteConversationSchema = z.object({\n guildInviteId: z.string(),\n workProjectId: z.string(),\n relatedUserIds: z.array(z.string()),\n // Title/description are NOT snapshotted (Display Identity Invariant — resolve at render\n // from publicWorkProjects by id). `type` (Tales/Tunes/Television) is an immutable\n // classification, not display text, and IS consumed by an invites-list type filter\n // (guild-invites-section.tsx), so it stays. Triggers read only `workProjectId`.\n workProject: z.object({\n workProjectId: z.string(),\n type: z.string(),\n }),\n createdBy: userRefSchema,\n sender: userRefSchema,\n recipient: userRefSchema,\n stakeSharesOffered: z.number(),\n source: InviteSourceSchema,\n // State machine: pending → accepted (transient, trigger-consumed) → finalized (terminal\n // success), or pending → declined / cancelled (terminal failure). No 'error' state is ever\n // written (dead state removed 2026-07-03). See ttt-prod\n // docs/design/work-guild-membership-and-stake.md for the invite lifecycle.\n status: guildInviteConversationStatusSchema,\n createdAt: z.number(),\n updatedAt: z.number(),\n lastUpdatedAt: z.number(),\n finalizedAt: z.number().optional(),\n senderConfirmed: z.boolean(),\n recipientConfirmed: z.boolean(),\n lastMessage: z.string().optional(),\n lastMessageAt: z.string().optional(),\n});\nexport type GuildInviteConversation = z.infer<typeof GuildInviteConversationSchema>;\n\n// Typed context ref carried by a dispatch thread born from a review send-back, a\n// moderation placeholder, or a published change request — lets the admin queue card\n// say what the thread is about without parsing the subject line. Extensible union;\n// server-validated against the thread's party (never trusted raw from the client).\nexport const AdminDispatchContextRefSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('thresholdItem'), thresholdItemId: z.string() }),\n z.object({\n kind: z.literal('hallContent'),\n hallItemId: z.string(),\n // null ⇒ the hall parent DETAIL; set ⇒ a chapter/track/episode sub-item.\n subItemId: z.string().nullable(),\n }),\n z.object({ kind: z.literal('hallContentChangeRequest'), changeRequestId: z.string() }),\n]);\nexport type AdminDispatchContextRef = z.infer<typeof AdminDispatchContextRefSchema>;\n\nexport const AdminDispatchPartyKindSchema = z.enum(['user', 'workProject']);\nexport type AdminDispatchPartyKind = z.infer<typeof AdminDispatchPartyKindSchema>;\n\nexport const AdminDispatchSchema = z.object({\n adminDispatchId: z.string(),\n // Party-generic dispatch: the platform corresponds with a PARTY — a user or a\n // workProject. Absent ⇒ 'user' (every pre-generalization thread). For 'user'\n // threads `userId` is the thread owner (the sole member-side authority). For\n // 'workProject' threads `workProjectId` is set, read/reply authority is ACTIVE\n // GUILDMATE standing evaluated server-side (never a stored member list), and\n // `userId` holds the INITIATING member's uid for attribution only — it is never\n // a work-thread authority.\n partyKind: AdminDispatchPartyKindSchema.optional(),\n workProjectId: z.string().optional(),\n contextRef: AdminDispatchContextRefSchema.optional(),\n userId: z.string(),\n initiatorUserId: z.string(),\n initiatedBy: z.enum(['user', 'admin']),\n subject: z.string(),\n status: z.enum(['open', 'user_reply', 'admin_reply', 'closed_resolved', 'closed_unresolved']),\n createdAt: z.number(),\n lastUpdatedAt: z.number(),\n readByAdmin: z.boolean(),\n readByUser: z.boolean(),\n closedBy: z.string().optional(),\n});\nexport type AdminDispatch = z.infer<typeof AdminDispatchSchema>;\n\n// Per-message body for admin-support `conversationMessages` — the ONE chat surface still\n// transported through Firestore (guild channel + invite messages are realtime-only, served\n// by the chat Worker Durable Object). Written by runSendGuildChatMessage (senderId/text/\n// createdAt + optional replyTo/attachment); the admin-dispatch INITIAL message\n// (runStartAdminSupportThread) additionally stores `messageId`. This is the STORED shape — a relaxed\n// @ttt-productions/chat-core ChatMessageV1: `messageId` is the doc id (only sometimes persisted) and\n// `threadId` is not stored. Reuses the chat-schemas Zod shapes for attachment + replyTo.\nexport const ChatMessageV1Schema = z.object({\n senderId: z.string(),\n text: z.string(),\n createdAt: z.number(),\n messageId: z.string().optional(),\n threadId: z.string().optional(),\n type: z.string().optional(),\n // Rides on the realtime invite-thread envelope (chat Worker invite Durable Object);\n // guild-invite messages are realtime-only — there is no Firestore inviteMessages\n // subcollection. Optional so the same body schema still fits the guildChat /\n // admin-dispatch messages that don't carry it.\n guildInviteId: z.string().optional(),\n attachment: ChatAttachmentSchema.optional(),\n replyTo: ReplyToSchema.optional(),\n isSystemMessage: z.boolean().optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n // Moderation tombstone flag — the single-doc `hidden` flip written by the admin\n // moderateReportedContent pipeline (the admin-work-message itemType). Backend-only\n // writable (conversationMessages is callable-only in rules); absent ⇒ visible.\n // Thread views render a hidden message as a moderation tombstone.\n hidden: z.boolean().optional(),\n});\nexport type ChatMessageV1Doc = z.infer<typeof ChatMessageV1Schema>;\n"]}
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/doc-schemas/messaging.ts"],"names":[],"mappings":"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","sourcesContent":["// Messaging parent-thread Firestore document SCHEMAS — guildChatChannels, the\n// guildInviteConversations shell, and pendingAdminDispatches. Per-message body shapes\n// live in @ttt-productions/chat-core (ChatMessageV1); ttt-core owns the thread docs.\n// Types inferred via z.infer.\n\nimport { z } from 'zod';\nimport { ReplyToSchema } from '@ttt-productions/chat-schemas';\nimport { InviteSourceSchema } from '../schemas/work-project-management.js';\nimport { guildInviteConversationStatusSchema } from '../schemas/atoms.js';\nimport { ContentMediaKindSchema } from './media-assets.js';\n\nconst userRefSchema = z.object({ uid: z.string() });\n\n// ===========================================================================\n// CONVERSATION FILES — the flat, Firestore-owned file list on a conversation.\n// Replaces inline chat attachments: a file is associated WITH a conversation but\n// never embedded in, sequenced with, or mutated through a chat message.\n// See ttt-prod docs/design/upload-and-media-pipeline.md.\n// ===========================================================================\n\n/** Backend-owned Conversation Files counters carried by EVERY conversation parent\n * (guildInviteConversations/{id} and pendingAdminDispatches/{id}). All four are\n * optional — an absent field reads as 0, so no pre-existing conversation needs a\n * backfill. Clients can never write them (rules + callable-only writes). */\nconst conversationFileCounterFields = {\n /** Published ACTIVE files in this conversation. */\n conversationFileCount: z.number().optional(),\n /** Published STORED-OUTPUT bytes in this conversation. */\n conversationFileBytesUsed: z.number().optional(),\n /** Active quota RESERVATIONS (uploads in flight). */\n conversationFileUploadCount: z.number().optional(),\n /** Bytes reserved by active uploads. */\n conversationFileBytesReserved: z.number().optional(),\n} as const;\n\n/**\n * `{conversationParent}/conversationFiles/{conversationFileId}` — the conversation's\n * lightweight ownership/list projection, analogous to `WorkFileSchema`.\n *\n * DELIBERATELY ABSENT (owned elsewhere, never duplicated here):\n * - no `status` / `ready` / `publicationState` / processing progress — `pendingMedia`\n * and `mediaAssets` own the lifecycle; the mere EXISTENCE of this doc means the\n * asset is published;\n * - no Firebase / R2 / gateway / signed / download URL — display URLs are built at\n * render time through the protected media gateway;\n * - no Firebase staging `storagePath`;\n * - no username / display name / avatar / Work name snapshot (ARCH-103) — resolve\n * `uploadedByUid` at render time.\n *\n * `conversationFileId` is deterministic: it IS the `pendingMediaId`. The publication\n * adapter creates this doc with `transaction.create` (never `set`), so an id\n * collision cannot overwrite and double-count an existing file.\n */\nexport const ConversationFileSchema = z.object({\n conversationFileId: z.string(),\n mediaAssetId: z.string(),\n name: z.string(),\n // The canonical stored content media kind — never a re-declared union (ARCH-102).\n mediaKind: ContentMediaKindSchema,\n contentType: z.string(),\n /** Sum of the PUBLISHED variant bytes (stored output, not raw upload bytes). */\n sizeBytes: z.number(),\n uploadedByUid: z.string(),\n createdAt: z.number(),\n});\nexport type ConversationFile = z.infer<typeof ConversationFileSchema>;\n\nexport const GuildChatChannelSchema = z.object({\n guildChatChannelId: z.string(),\n workProjectId: z.string(),\n channelName: z.string(),\n description: z.string().optional(),\n requiredGuildStandings: z.array(z.string()),\n allowedUserIds: z.array(z.string()),\n createdAt: z.number(),\n // NOTE: createdBy here is a flat uid string (unlike the `{ uid }` object form on\n // most other docs). Preserved as-is; flagged in the schema-registry recon.\n createdBy: z.string(),\n lastMessageAt: z.string().optional(),\n lastMessage: z.string().optional(),\n messageCount: z.number(),\n isArchived: z.boolean(),\n // Delete/tombstone marker (ttt-prod docs/design/chat-realtime-system.md \"Channel lifecycle semantics\").\n // Independent of `isArchived`: archive = visible-under-a-toggle, delete = gone from every user's\n // UI with grants revoked and sends rejected DO-side; storage is RETAINED (never a physical purge).\n // Optional, absent ⇒ false, so existing/seeded channels need no backfill. Backend-only-writable.\n isDeleted: z.boolean().optional(),\n // Monotonic config version for the chat-realtime sync layer (Contract B). Bumped by\n // each channel create / edit / archive / delete in the authoritative txn; the\n // `config` chatSyncEvents + channel-scoped fanout key on it. Absent ⇒ 0.\n configVersion: z.number().optional(),\n});\nexport type GuildChatChannel = z.infer<typeof GuildChatChannelSchema>;\n\n// The guildInviteConversations/{guildInviteId} doc as actually written by inviteUserToGuild\n// (and mutated by the accept/decline/finalize/cancel callables). This is the single source of\n// truth — the former duplicate `GuildInviteSchema` in ./work-project.ts was a stale, narrower\n// shape that the callable bypassed with an `as unknown as` cast. The inviter is `createdBy`\n// (== `sender`); there is no separate `workSteward`/`workProjectTitle` field (the title lives in\n// `workProject.workingTitle`).\nexport const GuildInviteConversationSchema = z.object({\n guildInviteId: z.string(),\n workProjectId: z.string(),\n relatedUserIds: z.array(z.string()),\n // Title/description are NOT snapshotted (Display Identity Invariant — resolve at render\n // from publicWorkProjects by id). `type` (Tales/Tunes/Television) is an immutable\n // classification, not display text, and IS consumed by an invites-list type filter\n // (guild-invites-section.tsx), so it stays. Triggers read only `workProjectId`.\n workProject: z.object({\n workProjectId: z.string(),\n type: z.string(),\n }),\n createdBy: userRefSchema,\n sender: userRefSchema,\n recipient: userRefSchema,\n stakeSharesOffered: z.number(),\n source: InviteSourceSchema,\n // State machine: pending → accepted (transient, trigger-consumed) → finalized (terminal\n // success), or pending → declined / cancelled (terminal failure). No 'error' state is ever\n // written (dead state removed 2026-07-03). See ttt-prod\n // docs/design/work-guild-membership-and-stake.md for the invite lifecycle.\n status: guildInviteConversationStatusSchema,\n createdAt: z.number(),\n updatedAt: z.number(),\n lastUpdatedAt: z.number(),\n finalizedAt: z.number().optional(),\n senderConfirmed: z.boolean(),\n recipientConfirmed: z.boolean(),\n lastMessage: z.string().optional(),\n lastMessageAt: z.string().optional(),\n // Conversation Files quota counters for THIS invite conversation (per-conversation\n // caps: MAX_CONVERSATION_FILES / MAX_CONVERSATION_FILE_STORAGE_BYTES). Reserved at\n // startUpload, transferred to used at publication, released on every terminal path,\n // decremented on delete. Backend-only-writable; absent ⇒ 0.\n ...conversationFileCounterFields,\n});\nexport type GuildInviteConversation = z.infer<typeof GuildInviteConversationSchema>;\n\n// Typed context ref carried by a dispatch thread born from a review send-back, a\n// moderation placeholder, or a published change request — lets the admin queue card\n// say what the thread is about without parsing the subject line. Extensible union;\n// server-validated against the thread's party (never trusted raw from the client).\nexport const AdminDispatchContextRefSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('thresholdItem'), thresholdItemId: z.string() }),\n z.object({\n kind: z.literal('hallContent'),\n hallItemId: z.string(),\n // null ⇒ the hall parent DETAIL; set ⇒ a chapter/track/episode sub-item.\n subItemId: z.string().nullable(),\n }),\n z.object({ kind: z.literal('hallContentChangeRequest'), changeRequestId: z.string() }),\n]);\nexport type AdminDispatchContextRef = z.infer<typeof AdminDispatchContextRefSchema>;\n\nexport const AdminDispatchPartyKindSchema = z.enum(['user', 'workProject']);\nexport type AdminDispatchPartyKind = z.infer<typeof AdminDispatchPartyKindSchema>;\n\nexport const AdminDispatchSchema = z.object({\n adminDispatchId: z.string(),\n // Party-generic dispatch: the platform corresponds with a PARTY — a user or a\n // workProject. Absent ⇒ 'user' (every pre-generalization thread). For 'user'\n // threads `userId` is the thread owner (the sole member-side authority). For\n // 'workProject' threads `workProjectId` is set, read/reply authority is ACTIVE\n // GUILDMATE standing evaluated server-side (never a stored member list), and\n // `userId` holds the INITIATING member's uid for attribution only — it is never\n // a work-thread authority.\n partyKind: AdminDispatchPartyKindSchema.optional(),\n workProjectId: z.string().optional(),\n contextRef: AdminDispatchContextRefSchema.optional(),\n userId: z.string(),\n initiatorUserId: z.string(),\n initiatedBy: z.enum(['user', 'admin']),\n subject: z.string(),\n status: z.enum(['open', 'user_reply', 'admin_reply', 'closed_resolved', 'closed_unresolved']),\n createdAt: z.number(),\n lastUpdatedAt: z.number(),\n readByAdmin: z.boolean(),\n readByUser: z.boolean(),\n closedBy: z.string().optional(),\n // Conversation Files quota counters for THIS admin-support thread — same\n // per-conversation caps and same backend-only ownership as the invite conversation.\n ...conversationFileCounterFields,\n});\nexport type AdminDispatch = z.infer<typeof AdminDispatchSchema>;\n\n// Per-message body for admin-support `conversationMessages` — the ONE chat surface still\n// transported through Firestore (guild channel + invite messages are realtime-only, served\n// by the chat Worker Durable Object). Written by runSendGuildChatMessage (senderId/text/\n// createdAt + optional replyTo); the admin-dispatch INITIAL message\n// (runStartAdminSupportThread) additionally stores `messageId`. This is the STORED shape — a relaxed\n// @ttt-productions/chat-core ChatMessageV1: `messageId` is the doc id (only sometimes persisted) and\n// `threadId` is not stored. Reuses the chat-schemas ReplyTo Zod shape.\n// A chat message carries NO file reference — files live in the conversation's\n// `conversationFiles` subcollection (ConversationFileSchema above).\nexport const ChatMessageV1Schema = z.object({\n senderId: z.string(),\n text: z.string(),\n createdAt: z.number(),\n messageId: z.string().optional(),\n threadId: z.string().optional(),\n type: z.string().optional(),\n // Rides on the realtime invite-thread envelope (chat Worker invite Durable Object);\n // guild-invite messages are realtime-only — there is no Firestore inviteMessages\n // subcollection. Optional so the same body schema still fits the guildChat /\n // admin-dispatch messages that don't carry it.\n guildInviteId: z.string().optional(),\n replyTo: ReplyToSchema.optional(),\n isSystemMessage: z.boolean().optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n // Moderation tombstone flag — the single-doc `hidden` flip written by the admin\n // moderateReportedContent pipeline (the admin-work-message itemType). Backend-only\n // writable (conversationMessages is callable-only in rules); absent ⇒ visible.\n // Thread views render a hidden message as a moderation tombstone.\n hidden: z.boolean().optional(),\n});\nexport type ChatMessageV1Doc = z.infer<typeof ChatMessageV1Schema>;\n"]}
@@ -31,6 +31,7 @@ export declare const ContentViolationSchema: z.ZodObject<{
31
31
  fileOrigin: z.ZodOptional<z.ZodEnum<{
32
32
  "commission-proposal": "commission-proposal";
33
33
  "profile-picture": "profile-picture";
34
+ "conversation-file": "conversation-file";
34
35
  "audition-entry": "audition-entry";
35
36
  "work-asset": "work-asset";
36
37
  "craft-skill-media": "craft-skill-media";
@@ -47,7 +48,6 @@ export declare const ContentViolationSchema: z.ZodObject<{
47
48
  "tune-track-audio": "tune-track-audio";
48
49
  "television-episode-photo": "television-episode-photo";
49
50
  "television-episode-video": "television-episode-video";
50
- "guild-chat-message-attachment": "guild-chat-message-attachment";
51
51
  "ncii-evidence": "ncii-evidence";
52
52
  }>>;
53
53
  originalFileName: z.ZodOptional<z.ZodString>;
@@ -80,10 +80,16 @@ export declare const NciiAllegationV1Schema: z.ZodObject<{
80
80
  channelId: z.ZodString;
81
81
  messageId: z.ZodString;
82
82
  }, z.core.$strict>, z.ZodObject<{
83
- kind: z.ZodLiteral<"chatAttachment">;
84
- channelId: z.ZodString;
85
- messageId: z.ZodString;
86
- attachmentId: z.ZodString;
83
+ kind: z.ZodLiteral<"conversationFile">;
84
+ conversation: z.ZodDiscriminatedUnion<[z.ZodObject<{
85
+ kind: z.ZodLiteral<"guildInvite">;
86
+ guildInviteId: z.ZodString;
87
+ }, z.core.$strict>, z.ZodObject<{
88
+ kind: z.ZodLiteral<"adminSupport">;
89
+ adminDispatchId: z.ZodString;
90
+ }, z.core.$strict>], "kind">;
91
+ conversationFileId: z.ZodString;
92
+ mediaAssetId: z.ZodString;
87
93
  }, z.core.$strict>, z.ZodObject<{
88
94
  kind: z.ZodLiteral<"guildChatMessage">;
89
95
  channelId: z.ZodString;
@@ -118,6 +124,7 @@ export declare const NciiAllegationV1Schema: z.ZodObject<{
118
124
  "guild-invite-message": "guild-invite-message";
119
125
  "guild-chat-message": "guild-chat-message";
120
126
  "admin-work-message": "admin-work-message";
127
+ "conversation-file": "conversation-file";
121
128
  "hall-library-item": "hall-library-item";
122
129
  "hall-library-sub-item": "hall-library-sub-item";
123
130
  audition: "audition";
@@ -134,7 +141,6 @@ export declare const NciiAllegationV1Schema: z.ZodObject<{
134
141
  mediaAssetId: z.ZodOptional<z.ZodString>;
135
142
  channelId: z.ZodOptional<z.ZodString>;
136
143
  messageId: z.ZodOptional<z.ZodString>;
137
- attachmentId: z.ZodOptional<z.ZodString>;
138
144
  locator: z.ZodDiscriminatedUnion<[z.ZodObject<{
139
145
  kind: z.ZodLiteral<"mediaAsset">;
140
146
  mediaAssetId: z.ZodString;
@@ -184,10 +190,16 @@ export declare const NciiAllegationV1Schema: z.ZodObject<{
184
190
  channelId: z.ZodString;
185
191
  messageId: z.ZodString;
186
192
  }, z.core.$strict>, z.ZodObject<{
187
- kind: z.ZodLiteral<"chatAttachment">;
188
- channelId: z.ZodString;
189
- messageId: z.ZodString;
190
- attachmentId: z.ZodString;
193
+ kind: z.ZodLiteral<"conversationFile">;
194
+ conversation: z.ZodDiscriminatedUnion<[z.ZodObject<{
195
+ kind: z.ZodLiteral<"guildInvite">;
196
+ guildInviteId: z.ZodString;
197
+ }, z.core.$strict>, z.ZodObject<{
198
+ kind: z.ZodLiteral<"adminSupport">;
199
+ adminDispatchId: z.ZodString;
200
+ }, z.core.$strict>], "kind">;
201
+ conversationFileId: z.ZodString;
202
+ mediaAssetId: z.ZodString;
191
203
  }, z.core.$strict>, z.ZodObject<{
192
204
  kind: z.ZodLiteral<"guildChatMessage">;
193
205
  channelId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"allegations.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/allegations.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;4FAG4F;AAC5F,eAAO,MAAM,gCAAgC;;;;EAA+D,CAAC;AAC7G,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;8EAC8E;AAC9E,eAAO,MAAM,0BAA0B;;;;;EAA2D,CAAC;AACnG,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;oDAEoD;AACpD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgBxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"allegations.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/allegations.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;4FAG4F;AAC5F,eAAO,MAAM,gCAAgC;;;;EAA+D,CAAC;AAC7G,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;8EAC8E;AAC9E,eAAO,MAAM,0BAA0B;;;;;EAA2D,CAAC;AACnG,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;oDAEoD;AACpD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgBxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -112,10 +112,16 @@ export declare const NciiCaseV1Schema: z.ZodObject<{
112
112
  channelId: z.ZodString;
113
113
  messageId: z.ZodString;
114
114
  }, z.core.$strict>, z.ZodObject<{
115
- kind: z.ZodLiteral<"chatAttachment">;
116
- channelId: z.ZodString;
117
- messageId: z.ZodString;
118
- attachmentId: z.ZodString;
115
+ kind: z.ZodLiteral<"conversationFile">;
116
+ conversation: z.ZodDiscriminatedUnion<[z.ZodObject<{
117
+ kind: z.ZodLiteral<"guildInvite">;
118
+ guildInviteId: z.ZodString;
119
+ }, z.core.$strict>, z.ZodObject<{
120
+ kind: z.ZodLiteral<"adminSupport">;
121
+ adminDispatchId: z.ZodString;
122
+ }, z.core.$strict>], "kind">;
123
+ conversationFileId: z.ZodString;
124
+ mediaAssetId: z.ZodString;
119
125
  }, z.core.$strict>, z.ZodObject<{
120
126
  kind: z.ZodLiteral<"guildChatMessage">;
121
127
  channelId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/cases.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,oDAAoD;AACpD,eAAO,MAAM,kBAAkB;;;EAA+B,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;gCAKgC;AAChC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;6CAC6C;AAC7C,eAAO,MAAM,8BAA8B;;;;;kBAQhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;0CAC0C;AAC1C,eAAO,MAAM,2BAA2B;;;;kBAI7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,uDAAuD;AACvD,eAAO,MAAM,iCAAiC;;;;EAAuD,CAAC;AACtG,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;oCACoC;AACpC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;kBAQ/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAOpF;mCACmC;AACnC,eAAO,MAAM,2BAA2B;;;;;EAKtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;YAEY;AACZ,eAAO,MAAM,2BAA2B;;;EAAiC,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;mBACmB;AACnB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;kBAWzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/cases.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,oDAAoD;AACpD,eAAO,MAAM,kBAAkB;;;EAA+B,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;gCAKgC;AAChC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;6CAC6C;AAC7C,eAAO,MAAM,8BAA8B;;;;;kBAQhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;0CAC0C;AAC1C,eAAO,MAAM,2BAA2B;;;;kBAI7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,uDAAuD;AACvD,eAAO,MAAM,iCAAiC;;;;EAAuD,CAAC;AACtG,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;oCACoC;AACpC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;kBAQ/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAOpF;mCACmC;AACnC,eAAO,MAAM,2BAA2B;;;;;EAKtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;YAEY;AACZ,eAAO,MAAM,2BAA2B;;;EAAiC,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;mBACmB;AACnB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;kBAWzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -66,10 +66,16 @@ export declare const NciiTemporaryHoldV1Schema: z.ZodObject<{
66
66
  channelId: z.ZodString;
67
67
  messageId: z.ZodString;
68
68
  }, z.core.$strict>, z.ZodObject<{
69
- kind: z.ZodLiteral<"chatAttachment">;
70
- channelId: z.ZodString;
71
- messageId: z.ZodString;
72
- attachmentId: z.ZodString;
69
+ kind: z.ZodLiteral<"conversationFile">;
70
+ conversation: z.ZodDiscriminatedUnion<[z.ZodObject<{
71
+ kind: z.ZodLiteral<"guildInvite">;
72
+ guildInviteId: z.ZodString;
73
+ }, z.core.$strict>, z.ZodObject<{
74
+ kind: z.ZodLiteral<"adminSupport">;
75
+ adminDispatchId: z.ZodString;
76
+ }, z.core.$strict>], "kind">;
77
+ conversationFileId: z.ZodString;
78
+ mediaAssetId: z.ZodString;
73
79
  }, z.core.$strict>, z.ZodObject<{
74
80
  kind: z.ZodLiteral<"guildChatMessage">;
75
81
  channelId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"holds.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/holds.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;oEACoE;AACpE,eAAO,MAAM,6BAA6B;;;;EAA6C,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;oDAEoD;AACpD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwB3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"holds.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/holds.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;oEACoE;AACpE,eAAO,MAAM,6BAA6B;;;;EAA6C,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;oDAEoD;AACpD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwB3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -33,7 +33,7 @@ export declare const NciiDiscoveryCursorV1Schema: z.ZodObject<{
33
33
  verifyRemoval: "verifyRemoval";
34
34
  }>;
35
35
  lastSurface: z.ZodEnum<{
36
- chatAttachment: "chatAttachment";
36
+ conversationFile: "conversationFile";
37
37
  original: "original";
38
38
  hallCopy: "hallCopy";
39
39
  profileMedia: "profileMedia";
@@ -81,7 +81,7 @@ export declare const NciiRemovalJobV1Schema: z.ZodObject<{
81
81
  verifyRemoval: "verifyRemoval";
82
82
  }>;
83
83
  lastSurface: z.ZodEnum<{
84
- chatAttachment: "chatAttachment";
84
+ conversationFile: "conversationFile";
85
85
  original: "original";
86
86
  hallCopy: "hallCopy";
87
87
  profileMedia: "profileMedia";
@@ -180,10 +180,16 @@ export declare const NciiRemovalTargetV1Schema: z.ZodObject<{
180
180
  channelId: z.ZodString;
181
181
  messageId: z.ZodString;
182
182
  }, z.core.$strict>, z.ZodObject<{
183
- kind: z.ZodLiteral<"chatAttachment">;
184
- channelId: z.ZodString;
185
- messageId: z.ZodString;
186
- attachmentId: z.ZodString;
183
+ kind: z.ZodLiteral<"conversationFile">;
184
+ conversation: z.ZodDiscriminatedUnion<[z.ZodObject<{
185
+ kind: z.ZodLiteral<"guildInvite">;
186
+ guildInviteId: z.ZodString;
187
+ }, z.core.$strict>, z.ZodObject<{
188
+ kind: z.ZodLiteral<"adminSupport">;
189
+ adminDispatchId: z.ZodString;
190
+ }, z.core.$strict>], "kind">;
191
+ conversationFileId: z.ZodString;
192
+ mediaAssetId: z.ZodString;
187
193
  }, z.core.$strict>, z.ZodObject<{
188
194
  kind: z.ZodLiteral<"guildChatMessage">;
189
195
  channelId: z.ZodString;
@@ -200,7 +206,7 @@ export declare const NciiRemovalTargetV1Schema: z.ZodObject<{
200
206
  textRef: z.ZodString;
201
207
  }, z.core.$strict>], "kind">;
202
208
  surface: z.ZodEnum<{
203
- chatAttachment: "chatAttachment";
209
+ conversationFile: "conversationFile";
204
210
  original: "original";
205
211
  hallCopy: "hallCopy";
206
212
  profileMedia: "profileMedia";
@@ -1 +1 @@
1
- {"version":3,"file":"removal.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/removal.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;+DAC+D;AAC/D,eAAO,MAAM,sBAAsB;;;;;;;;EAQjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,uDAAuD;AACvD,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAOxE;2DAC2D;AAC3D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;kBAI7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAQhF;;;2CAG2C;AAC3C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoBxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAQtE,8BAA8B;AAC9B,eAAO,MAAM,gCAAgC;;;;EAA0C,CAAC;AACxF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,yBAAyB;AACzB,eAAO,MAAM,4BAA4B;;;;;EAAyD,CAAC;AACnG,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,8BAA8B;AAC9B,eAAO,MAAM,iCAAiC;;;;EAAkD,CAAC;AACjG,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;uDAIuD;AACvD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAe3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"removal.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/removal.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;+DAC+D;AAC/D,eAAO,MAAM,sBAAsB;;;;;;;;EAQjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,uDAAuD;AACvD,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAOxE;2DAC2D;AAC3D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;kBAI7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAQhF;;;2CAG2C;AAC3C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoBxB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAQtE,8BAA8B;AAC9B,eAAO,MAAM,gCAAgC;;;;EAA0C,CAAC;AACxF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,yBAAyB;AACzB,eAAO,MAAM,4BAA4B;;;;;EAAyD,CAAC;AACnG,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,8BAA8B;AAC9B,eAAO,MAAM,iCAAiC;;;;EAAkD,CAAC;AACjG,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;uDAIuD;AACvD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAe3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -24,7 +24,7 @@ export declare const TakeItDownRequestRootV1Schema: z.ZodObject<{
24
24
  workAsset: "workAsset";
25
25
  auditionEntry: "auditionEntry";
26
26
  guildInviteMessage: "guildInviteMessage";
27
- chatAttachment: "chatAttachment";
27
+ conversationFile: "conversationFile";
28
28
  guildChatMessage: "guildChatMessage";
29
29
  adminWorkMessage: "adminWorkMessage";
30
30
  url: "url";
@@ -241,10 +241,16 @@ export declare const TakeItDownRequesterPrivateV1Schema: z.ZodObject<{
241
241
  channelId: z.ZodString;
242
242
  messageId: z.ZodString;
243
243
  }, z.core.$strict>, z.ZodObject<{
244
- kind: z.ZodLiteral<"chatAttachment">;
245
- channelId: z.ZodString;
246
- messageId: z.ZodString;
247
- attachmentId: z.ZodString;
244
+ kind: z.ZodLiteral<"conversationFile">;
245
+ conversation: z.ZodDiscriminatedUnion<[z.ZodObject<{
246
+ kind: z.ZodLiteral<"guildInvite">;
247
+ guildInviteId: z.ZodString;
248
+ }, z.core.$strict>, z.ZodObject<{
249
+ kind: z.ZodLiteral<"adminSupport">;
250
+ adminDispatchId: z.ZodString;
251
+ }, z.core.$strict>], "kind">;
252
+ conversationFileId: z.ZodString;
253
+ mediaAssetId: z.ZodString;
248
254
  }, z.core.$strict>, z.ZodObject<{
249
255
  kind: z.ZodLiteral<"guildChatMessage">;
250
256
  channelId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/requests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../src/doc-schemas/ncii/requests.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAaL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AASjC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuB/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAQpF,sEAAsE;AACtE,eAAO,MAAM,+BAA+B;;;EAA0C,CAAC;AACvF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,oFAAoF;AACpF,eAAO,MAAM,qCAAqC;;;;;;;kBAIvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG;;;;;;iFAMiF;AACjF,eAAO,MAAM,8BAA8B;;;;;;EAMzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;8EAE8E;AAC9E,eAAO,MAAM,+BAA+B;;;;;;;;;;;kBAKjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;;;;iBAKiB;AACjB,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;;kBAM5C,CAAC;AACZ,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC;AAE9G;;kBAEkB;AAClB,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAQ9F,gCAAgC;AAChC,eAAO,MAAM,mCAAmC;;;;EAA8C,CAAC;AAC/F,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG;oFACoF;AACpF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAY9B,CAAC;AACZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AASlF;sBACsB;AACtB,eAAO,MAAM,sCAAsC;;;;EAAiD,CAAC;AACrG,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG;;gCAEgC;AAChC,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAYpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAQ9F;sEACsE;AACtE,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAUjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAiBxF;;;;4DAI4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;kBAe5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAY9E,sEAAsE;AACtE,eAAO,MAAM,gCAAgC;;;;;;;;EAQ3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;4EAC4E;AAC5E,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;kBAavC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AASpG,qFAAqF;AACrF,eAAO,MAAM,oCAAoC,sIAOE,CAAC;AAEpD;;;yEAGyE;AACzE,eAAO,MAAM,8CAA8C,kLAIR,CAAC;AAEpD;wDACwD;AACxD,eAAO,MAAM,0BAA0B,2CAGY,CAAC;AAEpD;;;;;;wFAMwF;AACxF,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,uBAAuB,GACrC,SAAS,mBAAmB,EAAE,CAIhC;AAED;;;;;;;;;+DAS+D;AAC/D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,aAAa,EAAE,uBAAuB,CAAC;IACvC,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACpD,GAAG;IAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC;IAAC,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAelF;AAYD;2DAC2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAC;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;mFAC+E;IAC/E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C;yEACqE;IACrE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,EAAE,CAqBhF;AAED,wFAAwF;AACxF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,uBAAuB,CAOlF"}