@goscribe/server 1.0.10 → 1.1.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 (83) hide show
  1. package/ANALYSIS_PROGRESS_SPEC.md +463 -0
  2. package/PROGRESS_QUICK_REFERENCE.md +239 -0
  3. package/dist/lib/ai-session.d.ts +20 -9
  4. package/dist/lib/ai-session.js +316 -80
  5. package/dist/lib/auth.d.ts +35 -2
  6. package/dist/lib/auth.js +88 -15
  7. package/dist/lib/env.d.ts +32 -0
  8. package/dist/lib/env.js +46 -0
  9. package/dist/lib/errors.d.ts +33 -0
  10. package/dist/lib/errors.js +78 -0
  11. package/dist/lib/inference.d.ts +4 -1
  12. package/dist/lib/inference.js +9 -11
  13. package/dist/lib/logger.d.ts +62 -0
  14. package/dist/lib/logger.js +342 -0
  15. package/dist/lib/podcast-prompts.d.ts +43 -0
  16. package/dist/lib/podcast-prompts.js +135 -0
  17. package/dist/lib/pusher.d.ts +1 -0
  18. package/dist/lib/pusher.js +14 -2
  19. package/dist/lib/storage.d.ts +3 -3
  20. package/dist/lib/storage.js +51 -47
  21. package/dist/lib/validation.d.ts +51 -0
  22. package/dist/lib/validation.js +64 -0
  23. package/dist/routers/_app.d.ts +697 -111
  24. package/dist/routers/_app.js +5 -0
  25. package/dist/routers/auth.d.ts +11 -1
  26. package/dist/routers/chat.d.ts +11 -1
  27. package/dist/routers/flashcards.d.ts +205 -6
  28. package/dist/routers/flashcards.js +144 -66
  29. package/dist/routers/members.d.ts +165 -0
  30. package/dist/routers/members.js +531 -0
  31. package/dist/routers/podcast.d.ts +78 -63
  32. package/dist/routers/podcast.js +330 -393
  33. package/dist/routers/studyguide.d.ts +11 -1
  34. package/dist/routers/worksheets.d.ts +124 -13
  35. package/dist/routers/worksheets.js +123 -50
  36. package/dist/routers/workspace.d.ts +213 -26
  37. package/dist/routers/workspace.js +303 -181
  38. package/dist/server.js +12 -4
  39. package/dist/services/flashcard-progress.service.d.ts +183 -0
  40. package/dist/services/flashcard-progress.service.js +383 -0
  41. package/dist/services/flashcard.service.d.ts +183 -0
  42. package/dist/services/flashcard.service.js +224 -0
  43. package/dist/services/podcast-segment-reorder.d.ts +0 -0
  44. package/dist/services/podcast-segment-reorder.js +107 -0
  45. package/dist/services/podcast.service.d.ts +0 -0
  46. package/dist/services/podcast.service.js +326 -0
  47. package/dist/services/worksheet.service.d.ts +0 -0
  48. package/dist/services/worksheet.service.js +295 -0
  49. package/dist/trpc.d.ts +13 -2
  50. package/dist/trpc.js +55 -6
  51. package/dist/types/index.d.ts +126 -0
  52. package/dist/types/index.js +1 -0
  53. package/package.json +3 -2
  54. package/prisma/schema.prisma +142 -4
  55. package/src/lib/ai-session.ts +356 -85
  56. package/src/lib/auth.ts +113 -19
  57. package/src/lib/env.ts +59 -0
  58. package/src/lib/errors.ts +92 -0
  59. package/src/lib/inference.ts +11 -11
  60. package/src/lib/logger.ts +405 -0
  61. package/src/lib/pusher.ts +15 -3
  62. package/src/lib/storage.ts +56 -51
  63. package/src/lib/validation.ts +75 -0
  64. package/src/routers/_app.ts +5 -0
  65. package/src/routers/chat.ts +2 -23
  66. package/src/routers/flashcards.ts +108 -24
  67. package/src/routers/members.ts +586 -0
  68. package/src/routers/podcast.ts +385 -420
  69. package/src/routers/worksheets.ts +117 -35
  70. package/src/routers/workspace.ts +328 -195
  71. package/src/server.ts +13 -4
  72. package/src/services/flashcard-progress.service.ts +541 -0
  73. package/src/trpc.ts +59 -6
  74. package/src/types/index.ts +165 -0
  75. package/AUTH_FRONTEND_SPEC.md +0 -21
  76. package/CHAT_FRONTEND_SPEC.md +0 -474
  77. package/DATABASE_SETUP.md +0 -165
  78. package/MEETINGSUMMARY_FRONTEND_SPEC.md +0 -28
  79. package/PODCAST_FRONTEND_SPEC.md +0 -595
  80. package/STUDYGUIDE_FRONTEND_SPEC.md +0 -18
  81. package/WORKSHEETS_FRONTEND_SPEC.md +0 -26
  82. package/WORKSPACE_FRONTEND_SPEC.md +0 -47
  83. package/test-ai-integration.js +0 -134
@@ -7,44 +7,34 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
7
7
  cookies: Record<string, string | undefined>;
8
8
  };
9
9
  meta: object;
10
- errorShape: import("@trpc/server").TRPCDefaultErrorShape;
10
+ errorShape: {
11
+ data: {
12
+ zodError: string | null;
13
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
14
+ httpStatus: number;
15
+ path?: string;
16
+ stack?: string;
17
+ };
18
+ message: string;
19
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
20
+ };
11
21
  transformer: true;
12
22
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
13
23
  listEpisodes: import("@trpc/server").TRPCQueryProcedure<{
14
24
  input: {
15
25
  workspaceId: string;
16
26
  };
17
- output: ({
27
+ output: {
18
28
  id: string;
19
29
  title: string;
20
30
  description: string | null;
21
- metadata: null;
22
- segments: never[];
23
- createdAt: Date;
24
- updatedAt: Date;
25
- workspaceId: string;
26
- type: import("@prisma/client").$Enums.ArtifactType;
27
- createdById: string | null;
28
- isArchived: boolean;
29
- } | {
30
- id: string;
31
- title: string;
32
- description: string | undefined;
33
31
  metadata: {
34
32
  title: string;
35
33
  totalDuration: number;
36
- voice: string;
37
- speed: number;
38
- segments: {
34
+ speakers: {
39
35
  id: string;
40
- title: string;
41
- content: string;
42
- startTime: number;
43
- duration: number;
44
- keyPoints: string[];
45
- order: number;
46
- audioUrl?: string | undefined;
47
- objectKey?: string | undefined;
36
+ role: "host" | "guest" | "expert";
37
+ name?: string | undefined;
48
38
  }[];
49
39
  summary: {
50
40
  executiveSummary: string;
@@ -57,7 +47,8 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
57
47
  };
58
48
  generatedAt: string;
59
49
  description?: string | undefined;
60
- };
50
+ } | null;
51
+ imageUrl: string | null;
61
52
  segments: ({
62
53
  id: string;
63
54
  title: string;
@@ -70,7 +61,7 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
70
61
  id: string;
71
62
  title: string;
72
63
  audioUrl: null;
73
- objectKey: string | undefined;
64
+ objectKey: string | null;
74
65
  startTime: number;
75
66
  duration: number;
76
67
  order: number;
@@ -78,10 +69,12 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
78
69
  createdAt: Date;
79
70
  updatedAt: Date;
80
71
  workspaceId: string;
72
+ generating: boolean;
73
+ generatingMetadata: import("@prisma/client/runtime/library").JsonValue;
81
74
  type: import("@prisma/client").$Enums.ArtifactType;
82
75
  createdById: string | null;
83
76
  isArchived: boolean;
84
- })[];
77
+ }[];
85
78
  meta: object;
86
79
  }>;
87
80
  getEpisode: import("@trpc/server").TRPCQueryProcedure<{
@@ -95,18 +88,10 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
95
88
  metadata: {
96
89
  title: string;
97
90
  totalDuration: number;
98
- voice: string;
99
- speed: number;
100
- segments: {
91
+ speakers: {
101
92
  id: string;
102
- title: string;
103
- content: string;
104
- startTime: number;
105
- duration: number;
106
- keyPoints: string[];
107
- order: number;
108
- audioUrl?: string | undefined;
109
- objectKey?: string | undefined;
93
+ role: "host" | "guest" | "expert";
94
+ name?: string | undefined;
110
95
  }[];
111
96
  summary: {
112
97
  executiveSummary: string;
@@ -120,6 +105,7 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
120
105
  generatedAt: string;
121
106
  description?: string | undefined;
122
107
  };
108
+ imageUrl: string | null;
123
109
  segments: ({
124
110
  id: string;
125
111
  title: string;
@@ -135,7 +121,7 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
135
121
  title: string;
136
122
  content: string;
137
123
  audioUrl: null;
138
- objectKey: string | undefined;
124
+ objectKey: string | null;
139
125
  startTime: number;
140
126
  duration: number;
141
127
  keyPoints: string[];
@@ -154,7 +140,11 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
154
140
  title: string;
155
141
  userPrompt: string;
156
142
  description?: string | undefined;
157
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
143
+ speakers?: {
144
+ id: string;
145
+ role: "host" | "guest" | "expert";
146
+ name?: string | undefined;
147
+ }[] | undefined;
158
148
  speed?: number | undefined;
159
149
  generateIntro?: boolean | undefined;
160
150
  generateOutro?: boolean | undefined;
@@ -169,39 +159,38 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
169
159
  title: any;
170
160
  description: string | undefined;
171
161
  totalDuration: number;
172
- voice: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer";
173
- speed: number;
174
- segments: {
162
+ summary: any;
163
+ speakers: {
175
164
  id: string;
176
- title: any;
177
- content: any;
178
- objectKey: string;
179
- startTime: number;
180
- duration: number;
181
- keyPoints: any;
182
- order: any;
165
+ role: "host" | "guest" | "expert";
166
+ name?: string | undefined;
183
167
  }[];
184
- summary: any;
185
168
  generatedAt: string;
186
169
  };
187
170
  content: string;
188
171
  };
189
172
  meta: object;
190
173
  }>;
191
- regenerateSegment: import("@trpc/server").TRPCMutationProcedure<{
174
+ deleteSegment: import("@trpc/server").TRPCMutationProcedure<{
192
175
  input: {
193
- episodeId: string;
194
176
  segmentId: string;
195
- newContent?: string | undefined;
196
- voice?: "alloy" | "echo" | "fable" | "onyx" | "nova" | "shimmer" | undefined;
197
- speed?: number | undefined;
198
177
  };
199
178
  output: {
200
- segmentId: string;
201
- audioUrl: string | undefined;
202
- duration: number;
179
+ meta: import("@prisma/client/runtime/library").JsonValue | null;
180
+ id: string;
181
+ createdAt: Date;
182
+ updatedAt: Date;
183
+ title: string;
184
+ objectKey: string | null;
185
+ generating: boolean;
186
+ generatingMetadata: import("@prisma/client/runtime/library").JsonValue | null;
187
+ artifactId: string;
203
188
  content: string;
204
- totalDuration: number;
189
+ duration: number;
190
+ order: number;
191
+ startTime: number;
192
+ keyPoints: string[];
193
+ audioUrl: string | null;
205
194
  };
206
195
  meta: object;
207
196
  }>;
@@ -231,8 +220,11 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
231
220
  title: string;
232
221
  description: string | undefined;
233
222
  totalDuration: number;
234
- voice: string;
235
- speed: number;
223
+ speakers: {
224
+ id: string;
225
+ role: "host" | "guest" | "expert";
226
+ name?: string | undefined;
227
+ }[];
236
228
  };
237
229
  };
238
230
  meta: object;
@@ -252,8 +244,11 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
252
244
  workspaceId: string;
253
245
  type: import("@prisma/client").$Enums.ArtifactType;
254
246
  isArchived: boolean;
247
+ generating: boolean;
248
+ generatingMetadata: import("@prisma/client/runtime/library").JsonValue | null;
255
249
  difficulty: import("@prisma/client").$Enums.Difficulty | null;
256
250
  estimatedTime: string | null;
251
+ imageObjectKey: string | null;
257
252
  createdById: string | null;
258
253
  };
259
254
  meta: object;
@@ -265,6 +260,26 @@ export declare const podcast: import("@trpc/server").TRPCBuiltRouter<{
265
260
  output: boolean;
266
261
  meta: object;
267
262
  }>;
263
+ getSegment: import("@trpc/server").TRPCQueryProcedure<{
264
+ input: {
265
+ segmentId: string;
266
+ };
267
+ output: {
268
+ id: string;
269
+ title: string;
270
+ content: string;
271
+ startTime: number;
272
+ duration: number;
273
+ order: number;
274
+ keyPoints: string[];
275
+ audioUrl: string | null;
276
+ objectKey: string | null;
277
+ meta: import("@prisma/client/runtime/library").JsonValue;
278
+ createdAt: Date;
279
+ updatedAt: Date;
280
+ };
281
+ meta: object;
282
+ }>;
268
283
  getAvailableVoices: import("@trpc/server").TRPCQueryProcedure<{
269
284
  input: void;
270
285
  output: {