@prave/shared 0.1.0 → 0.3.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 (56) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/lib/classify.d.ts +21 -0
  5. package/dist/lib/classify.d.ts.map +1 -0
  6. package/dist/lib/classify.js +121 -0
  7. package/dist/lib/index.d.ts +2 -0
  8. package/dist/lib/index.d.ts.map +1 -0
  9. package/dist/lib/index.js +1 -0
  10. package/dist/schemas/api-keys.schema.d.ts +71 -0
  11. package/dist/schemas/api-keys.schema.d.ts.map +1 -0
  12. package/dist/schemas/api-keys.schema.js +29 -0
  13. package/dist/schemas/billing.schema.d.ts +7 -7
  14. package/dist/schemas/billing.schema.d.ts.map +1 -1
  15. package/dist/schemas/billing.schema.js +2 -2
  16. package/dist/schemas/credits.schema.d.ts +61 -0
  17. package/dist/schemas/credits.schema.d.ts.map +1 -0
  18. package/dist/schemas/credits.schema.js +44 -0
  19. package/dist/schemas/index.d.ts +4 -1
  20. package/dist/schemas/index.d.ts.map +1 -1
  21. package/dist/schemas/index.js +4 -1
  22. package/dist/schemas/install.schema.d.ts +27 -5
  23. package/dist/schemas/install.schema.d.ts.map +1 -1
  24. package/dist/schemas/intelligence.schema.d.ts +82 -0
  25. package/dist/schemas/intelligence.schema.d.ts.map +1 -0
  26. package/dist/schemas/intelligence.schema.js +31 -0
  27. package/dist/schemas/marketplace.schema.d.ts +2 -2
  28. package/dist/schemas/marketplace.schema.d.ts.map +1 -1
  29. package/dist/schemas/marketplace.schema.js +2 -2
  30. package/dist/schemas/org.schema.d.ts +3 -3
  31. package/dist/schemas/search.schema.d.ts +41 -3
  32. package/dist/schemas/search.schema.d.ts.map +1 -1
  33. package/dist/schemas/skill-dependency.schema.d.ts +27 -5
  34. package/dist/schemas/skill-dependency.schema.d.ts.map +1 -1
  35. package/dist/schemas/skill-pr.schema.d.ts +544 -0
  36. package/dist/schemas/skill-pr.schema.d.ts.map +1 -0
  37. package/dist/schemas/skill-pr.schema.js +87 -0
  38. package/dist/schemas/skill-test.schema.d.ts +4 -9
  39. package/dist/schemas/skill-test.schema.d.ts.map +1 -1
  40. package/dist/schemas/skill-test.schema.js +4 -9
  41. package/dist/schemas/skill.schema.d.ts +76 -10
  42. package/dist/schemas/skill.schema.d.ts.map +1 -1
  43. package/dist/schemas/skill.schema.js +16 -1
  44. package/dist/types/categories.d.ts +5 -0
  45. package/dist/types/categories.d.ts.map +1 -0
  46. package/dist/types/categories.js +35 -0
  47. package/dist/types/index.d.ts +26 -1
  48. package/dist/types/index.d.ts.map +1 -1
  49. package/dist/types/index.js +3 -1
  50. package/dist/types/intelligence.d.ts +132 -0
  51. package/dist/types/intelligence.d.ts.map +1 -0
  52. package/dist/types/intelligence.js +52 -0
  53. package/dist/types/plan-limits.d.ts +62 -0
  54. package/dist/types/plan-limits.d.ts.map +1 -0
  55. package/dist/types/plan-limits.js +88 -0
  56. package/package.json +1 -1
@@ -0,0 +1,544 @@
1
+ import { z } from 'zod';
2
+ export declare const prStatusSchema: z.ZodEnum<["open", "merged", "closed"]>;
3
+ export type PullRequestStatus = z.infer<typeof prStatusSchema>;
4
+ export declare const skillPullRequestSchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ skill_id: z.ZodString;
7
+ author_id: z.ZodString;
8
+ title: z.ZodString;
9
+ summary: z.ZodNullable<z.ZodString>;
10
+ proposed_content: z.ZodString;
11
+ proposed_description: z.ZodNullable<z.ZodString>;
12
+ status: z.ZodEnum<["open", "merged", "closed"]>;
13
+ merged_by: z.ZodNullable<z.ZodString>;
14
+ merged_at: z.ZodNullable<z.ZodString>;
15
+ closed_by: z.ZodNullable<z.ZodString>;
16
+ closed_at: z.ZodNullable<z.ZodString>;
17
+ created_at: z.ZodString;
18
+ updated_at: z.ZodString;
19
+ /** Attached by the API: public-safe author slice for cards/avatars. */
20
+ author: z.ZodOptional<z.ZodNullable<z.ZodObject<{
21
+ id: z.ZodString;
22
+ username: z.ZodNullable<z.ZodString>;
23
+ display_name: z.ZodNullable<z.ZodString>;
24
+ avatar_url: z.ZodNullable<z.ZodString>;
25
+ is_creator: z.ZodBoolean;
26
+ is_partner: z.ZodBoolean;
27
+ }, "strip", z.ZodTypeAny, {
28
+ id: string;
29
+ username: string | null;
30
+ display_name: string | null;
31
+ avatar_url: string | null;
32
+ is_creator: boolean;
33
+ is_partner: boolean;
34
+ }, {
35
+ id: string;
36
+ username: string | null;
37
+ display_name: string | null;
38
+ avatar_url: string | null;
39
+ is_creator: boolean;
40
+ is_partner: boolean;
41
+ }>>>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ status: "open" | "merged" | "closed";
44
+ id: string;
45
+ created_at: string;
46
+ updated_at: string;
47
+ skill_id: string;
48
+ summary: string | null;
49
+ author_id: string;
50
+ title: string;
51
+ proposed_content: string;
52
+ proposed_description: string | null;
53
+ merged_by: string | null;
54
+ merged_at: string | null;
55
+ closed_by: string | null;
56
+ closed_at: string | null;
57
+ author?: {
58
+ id: string;
59
+ username: string | null;
60
+ display_name: string | null;
61
+ avatar_url: string | null;
62
+ is_creator: boolean;
63
+ is_partner: boolean;
64
+ } | null | undefined;
65
+ }, {
66
+ status: "open" | "merged" | "closed";
67
+ id: string;
68
+ created_at: string;
69
+ updated_at: string;
70
+ skill_id: string;
71
+ summary: string | null;
72
+ author_id: string;
73
+ title: string;
74
+ proposed_content: string;
75
+ proposed_description: string | null;
76
+ merged_by: string | null;
77
+ merged_at: string | null;
78
+ closed_by: string | null;
79
+ closed_at: string | null;
80
+ author?: {
81
+ id: string;
82
+ username: string | null;
83
+ display_name: string | null;
84
+ avatar_url: string | null;
85
+ is_creator: boolean;
86
+ is_partner: boolean;
87
+ } | null | undefined;
88
+ }>;
89
+ export type SkillPullRequest = z.infer<typeof skillPullRequestSchema>;
90
+ export declare const createPullRequestInputSchema: z.ZodObject<{
91
+ title: z.ZodString;
92
+ summary: z.ZodNullable<z.ZodOptional<z.ZodString>>;
93
+ proposed_content: z.ZodString;
94
+ proposed_description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
95
+ }, "strip", z.ZodTypeAny, {
96
+ title: string;
97
+ proposed_content: string;
98
+ summary?: string | null | undefined;
99
+ proposed_description?: string | null | undefined;
100
+ }, {
101
+ title: string;
102
+ proposed_content: string;
103
+ summary?: string | null | undefined;
104
+ proposed_description?: string | null | undefined;
105
+ }>;
106
+ export type CreatePullRequestInput = z.infer<typeof createPullRequestInputSchema>;
107
+ /**
108
+ * Author can push a new "commit" — a fresh proposed_content body — to an
109
+ * already-open PR. Same shape as create minus the title (title doesn't
110
+ * change once the PR is open).
111
+ */
112
+ export declare const updatePullRequestInputSchema: z.ZodObject<{
113
+ summary: z.ZodNullable<z.ZodOptional<z.ZodString>>;
114
+ proposed_content: z.ZodString;
115
+ proposed_description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ proposed_content: string;
118
+ summary?: string | null | undefined;
119
+ proposed_description?: string | null | undefined;
120
+ }, {
121
+ proposed_content: string;
122
+ summary?: string | null | undefined;
123
+ proposed_description?: string | null | undefined;
124
+ }>;
125
+ export type UpdatePullRequestInput = z.infer<typeof updatePullRequestInputSchema>;
126
+ export declare const skillPrCommentSchema: z.ZodObject<{
127
+ id: z.ZodString;
128
+ pull_request_id: z.ZodString;
129
+ author_id: z.ZodString;
130
+ body: z.ZodString;
131
+ created_at: z.ZodString;
132
+ author: z.ZodOptional<z.ZodNullable<z.ZodObject<{
133
+ id: z.ZodString;
134
+ username: z.ZodNullable<z.ZodString>;
135
+ display_name: z.ZodNullable<z.ZodString>;
136
+ avatar_url: z.ZodNullable<z.ZodString>;
137
+ is_creator: z.ZodBoolean;
138
+ is_partner: z.ZodBoolean;
139
+ }, "strip", z.ZodTypeAny, {
140
+ id: string;
141
+ username: string | null;
142
+ display_name: string | null;
143
+ avatar_url: string | null;
144
+ is_creator: boolean;
145
+ is_partner: boolean;
146
+ }, {
147
+ id: string;
148
+ username: string | null;
149
+ display_name: string | null;
150
+ avatar_url: string | null;
151
+ is_creator: boolean;
152
+ is_partner: boolean;
153
+ }>>>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ id: string;
156
+ created_at: string;
157
+ author_id: string;
158
+ pull_request_id: string;
159
+ body: string;
160
+ author?: {
161
+ id: string;
162
+ username: string | null;
163
+ display_name: string | null;
164
+ avatar_url: string | null;
165
+ is_creator: boolean;
166
+ is_partner: boolean;
167
+ } | null | undefined;
168
+ }, {
169
+ id: string;
170
+ created_at: string;
171
+ author_id: string;
172
+ pull_request_id: string;
173
+ body: string;
174
+ author?: {
175
+ id: string;
176
+ username: string | null;
177
+ display_name: string | null;
178
+ avatar_url: string | null;
179
+ is_creator: boolean;
180
+ is_partner: boolean;
181
+ } | null | undefined;
182
+ }>;
183
+ export type SkillPrComment = z.infer<typeof skillPrCommentSchema>;
184
+ export declare const createPrCommentInputSchema: z.ZodObject<{
185
+ body: z.ZodString;
186
+ }, "strip", z.ZodTypeAny, {
187
+ body: string;
188
+ }, {
189
+ body: string;
190
+ }>;
191
+ export type CreatePrCommentInput = z.infer<typeof createPrCommentInputSchema>;
192
+ export declare const pullRequestPageSchema: z.ZodObject<{
193
+ pull_request: z.ZodObject<{
194
+ id: z.ZodString;
195
+ skill_id: z.ZodString;
196
+ author_id: z.ZodString;
197
+ title: z.ZodString;
198
+ summary: z.ZodNullable<z.ZodString>;
199
+ proposed_content: z.ZodString;
200
+ proposed_description: z.ZodNullable<z.ZodString>;
201
+ status: z.ZodEnum<["open", "merged", "closed"]>;
202
+ merged_by: z.ZodNullable<z.ZodString>;
203
+ merged_at: z.ZodNullable<z.ZodString>;
204
+ closed_by: z.ZodNullable<z.ZodString>;
205
+ closed_at: z.ZodNullable<z.ZodString>;
206
+ created_at: z.ZodString;
207
+ updated_at: z.ZodString;
208
+ /** Attached by the API: public-safe author slice for cards/avatars. */
209
+ author: z.ZodOptional<z.ZodNullable<z.ZodObject<{
210
+ id: z.ZodString;
211
+ username: z.ZodNullable<z.ZodString>;
212
+ display_name: z.ZodNullable<z.ZodString>;
213
+ avatar_url: z.ZodNullable<z.ZodString>;
214
+ is_creator: z.ZodBoolean;
215
+ is_partner: z.ZodBoolean;
216
+ }, "strip", z.ZodTypeAny, {
217
+ id: string;
218
+ username: string | null;
219
+ display_name: string | null;
220
+ avatar_url: string | null;
221
+ is_creator: boolean;
222
+ is_partner: boolean;
223
+ }, {
224
+ id: string;
225
+ username: string | null;
226
+ display_name: string | null;
227
+ avatar_url: string | null;
228
+ is_creator: boolean;
229
+ is_partner: boolean;
230
+ }>>>;
231
+ }, "strip", z.ZodTypeAny, {
232
+ status: "open" | "merged" | "closed";
233
+ id: string;
234
+ created_at: string;
235
+ updated_at: string;
236
+ skill_id: string;
237
+ summary: string | null;
238
+ author_id: string;
239
+ title: string;
240
+ proposed_content: string;
241
+ proposed_description: string | null;
242
+ merged_by: string | null;
243
+ merged_at: string | null;
244
+ closed_by: string | null;
245
+ closed_at: string | null;
246
+ author?: {
247
+ id: string;
248
+ username: string | null;
249
+ display_name: string | null;
250
+ avatar_url: string | null;
251
+ is_creator: boolean;
252
+ is_partner: boolean;
253
+ } | null | undefined;
254
+ }, {
255
+ status: "open" | "merged" | "closed";
256
+ id: string;
257
+ created_at: string;
258
+ updated_at: string;
259
+ skill_id: string;
260
+ summary: string | null;
261
+ author_id: string;
262
+ title: string;
263
+ proposed_content: string;
264
+ proposed_description: string | null;
265
+ merged_by: string | null;
266
+ merged_at: string | null;
267
+ closed_by: string | null;
268
+ closed_at: string | null;
269
+ author?: {
270
+ id: string;
271
+ username: string | null;
272
+ display_name: string | null;
273
+ avatar_url: string | null;
274
+ is_creator: boolean;
275
+ is_partner: boolean;
276
+ } | null | undefined;
277
+ }>;
278
+ comments: z.ZodArray<z.ZodObject<{
279
+ id: z.ZodString;
280
+ pull_request_id: z.ZodString;
281
+ author_id: z.ZodString;
282
+ body: z.ZodString;
283
+ created_at: z.ZodString;
284
+ author: z.ZodOptional<z.ZodNullable<z.ZodObject<{
285
+ id: z.ZodString;
286
+ username: z.ZodNullable<z.ZodString>;
287
+ display_name: z.ZodNullable<z.ZodString>;
288
+ avatar_url: z.ZodNullable<z.ZodString>;
289
+ is_creator: z.ZodBoolean;
290
+ is_partner: z.ZodBoolean;
291
+ }, "strip", z.ZodTypeAny, {
292
+ id: string;
293
+ username: string | null;
294
+ display_name: string | null;
295
+ avatar_url: string | null;
296
+ is_creator: boolean;
297
+ is_partner: boolean;
298
+ }, {
299
+ id: string;
300
+ username: string | null;
301
+ display_name: string | null;
302
+ avatar_url: string | null;
303
+ is_creator: boolean;
304
+ is_partner: boolean;
305
+ }>>>;
306
+ }, "strip", z.ZodTypeAny, {
307
+ id: string;
308
+ created_at: string;
309
+ author_id: string;
310
+ pull_request_id: string;
311
+ body: string;
312
+ author?: {
313
+ id: string;
314
+ username: string | null;
315
+ display_name: string | null;
316
+ avatar_url: string | null;
317
+ is_creator: boolean;
318
+ is_partner: boolean;
319
+ } | null | undefined;
320
+ }, {
321
+ id: string;
322
+ created_at: string;
323
+ author_id: string;
324
+ pull_request_id: string;
325
+ body: string;
326
+ author?: {
327
+ id: string;
328
+ username: string | null;
329
+ display_name: string | null;
330
+ avatar_url: string | null;
331
+ is_creator: boolean;
332
+ is_partner: boolean;
333
+ } | null | undefined;
334
+ }>, "many">;
335
+ /** Snapshot of the live skill content the PR was opened against — used for diff. */
336
+ base_content: z.ZodString;
337
+ base_description: z.ZodNullable<z.ZodString>;
338
+ }, "strip", z.ZodTypeAny, {
339
+ pull_request: {
340
+ status: "open" | "merged" | "closed";
341
+ id: string;
342
+ created_at: string;
343
+ updated_at: string;
344
+ skill_id: string;
345
+ summary: string | null;
346
+ author_id: string;
347
+ title: string;
348
+ proposed_content: string;
349
+ proposed_description: string | null;
350
+ merged_by: string | null;
351
+ merged_at: string | null;
352
+ closed_by: string | null;
353
+ closed_at: string | null;
354
+ author?: {
355
+ id: string;
356
+ username: string | null;
357
+ display_name: string | null;
358
+ avatar_url: string | null;
359
+ is_creator: boolean;
360
+ is_partner: boolean;
361
+ } | null | undefined;
362
+ };
363
+ comments: {
364
+ id: string;
365
+ created_at: string;
366
+ author_id: string;
367
+ pull_request_id: string;
368
+ body: string;
369
+ author?: {
370
+ id: string;
371
+ username: string | null;
372
+ display_name: string | null;
373
+ avatar_url: string | null;
374
+ is_creator: boolean;
375
+ is_partner: boolean;
376
+ } | null | undefined;
377
+ }[];
378
+ base_content: string;
379
+ base_description: string | null;
380
+ }, {
381
+ pull_request: {
382
+ status: "open" | "merged" | "closed";
383
+ id: string;
384
+ created_at: string;
385
+ updated_at: string;
386
+ skill_id: string;
387
+ summary: string | null;
388
+ author_id: string;
389
+ title: string;
390
+ proposed_content: string;
391
+ proposed_description: string | null;
392
+ merged_by: string | null;
393
+ merged_at: string | null;
394
+ closed_by: string | null;
395
+ closed_at: string | null;
396
+ author?: {
397
+ id: string;
398
+ username: string | null;
399
+ display_name: string | null;
400
+ avatar_url: string | null;
401
+ is_creator: boolean;
402
+ is_partner: boolean;
403
+ } | null | undefined;
404
+ };
405
+ comments: {
406
+ id: string;
407
+ created_at: string;
408
+ author_id: string;
409
+ pull_request_id: string;
410
+ body: string;
411
+ author?: {
412
+ id: string;
413
+ username: string | null;
414
+ display_name: string | null;
415
+ avatar_url: string | null;
416
+ is_creator: boolean;
417
+ is_partner: boolean;
418
+ } | null | undefined;
419
+ }[];
420
+ base_content: string;
421
+ base_description: string | null;
422
+ }>;
423
+ export type PullRequestPage = z.infer<typeof pullRequestPageSchema>;
424
+ /**
425
+ * Cross-skill PR listing — used by the authenticated `/me/pulls` view.
426
+ * Each row carries a slim skill slice so the UI can render the
427
+ * "Proposed change to <skill name>" line + deep-link back to the skill.
428
+ */
429
+ export declare const myPullRequestSchema: z.ZodObject<{
430
+ id: z.ZodString;
431
+ skill_id: z.ZodString;
432
+ author_id: z.ZodString;
433
+ title: z.ZodString;
434
+ summary: z.ZodNullable<z.ZodString>;
435
+ proposed_content: z.ZodString;
436
+ proposed_description: z.ZodNullable<z.ZodString>;
437
+ status: z.ZodEnum<["open", "merged", "closed"]>;
438
+ merged_by: z.ZodNullable<z.ZodString>;
439
+ merged_at: z.ZodNullable<z.ZodString>;
440
+ closed_by: z.ZodNullable<z.ZodString>;
441
+ closed_at: z.ZodNullable<z.ZodString>;
442
+ created_at: z.ZodString;
443
+ updated_at: z.ZodString;
444
+ /** Attached by the API: public-safe author slice for cards/avatars. */
445
+ author: z.ZodOptional<z.ZodNullable<z.ZodObject<{
446
+ id: z.ZodString;
447
+ username: z.ZodNullable<z.ZodString>;
448
+ display_name: z.ZodNullable<z.ZodString>;
449
+ avatar_url: z.ZodNullable<z.ZodString>;
450
+ is_creator: z.ZodBoolean;
451
+ is_partner: z.ZodBoolean;
452
+ }, "strip", z.ZodTypeAny, {
453
+ id: string;
454
+ username: string | null;
455
+ display_name: string | null;
456
+ avatar_url: string | null;
457
+ is_creator: boolean;
458
+ is_partner: boolean;
459
+ }, {
460
+ id: string;
461
+ username: string | null;
462
+ display_name: string | null;
463
+ avatar_url: string | null;
464
+ is_creator: boolean;
465
+ is_partner: boolean;
466
+ }>>>;
467
+ } & {
468
+ skill: z.ZodObject<{
469
+ id: z.ZodString;
470
+ slug: z.ZodString;
471
+ name: z.ZodString;
472
+ visibility: z.ZodEnum<["public", "private"]>;
473
+ }, "strip", z.ZodTypeAny, {
474
+ id: string;
475
+ name: string;
476
+ slug: string;
477
+ visibility: "public" | "private";
478
+ }, {
479
+ id: string;
480
+ name: string;
481
+ slug: string;
482
+ visibility: "public" | "private";
483
+ }>;
484
+ }, "strip", z.ZodTypeAny, {
485
+ status: "open" | "merged" | "closed";
486
+ id: string;
487
+ created_at: string;
488
+ updated_at: string;
489
+ skill_id: string;
490
+ summary: string | null;
491
+ skill: {
492
+ id: string;
493
+ name: string;
494
+ slug: string;
495
+ visibility: "public" | "private";
496
+ };
497
+ author_id: string;
498
+ title: string;
499
+ proposed_content: string;
500
+ proposed_description: string | null;
501
+ merged_by: string | null;
502
+ merged_at: string | null;
503
+ closed_by: string | null;
504
+ closed_at: string | null;
505
+ author?: {
506
+ id: string;
507
+ username: string | null;
508
+ display_name: string | null;
509
+ avatar_url: string | null;
510
+ is_creator: boolean;
511
+ is_partner: boolean;
512
+ } | null | undefined;
513
+ }, {
514
+ status: "open" | "merged" | "closed";
515
+ id: string;
516
+ created_at: string;
517
+ updated_at: string;
518
+ skill_id: string;
519
+ summary: string | null;
520
+ skill: {
521
+ id: string;
522
+ name: string;
523
+ slug: string;
524
+ visibility: "public" | "private";
525
+ };
526
+ author_id: string;
527
+ title: string;
528
+ proposed_content: string;
529
+ proposed_description: string | null;
530
+ merged_by: string | null;
531
+ merged_at: string | null;
532
+ closed_by: string | null;
533
+ closed_at: string | null;
534
+ author?: {
535
+ id: string;
536
+ username: string | null;
537
+ display_name: string | null;
538
+ avatar_url: string | null;
539
+ is_creator: boolean;
540
+ is_partner: boolean;
541
+ } | null | undefined;
542
+ }>;
543
+ export type MyPullRequest = z.infer<typeof myPullRequestSchema>;
544
+ //# sourceMappingURL=skill-pr.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-pr.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill-pr.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,cAAc,yCAAuC,CAAA;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;IAejC,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvE,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAKvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAIvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,0BAA0B;;;;;;EAErC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;QA5DhC,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DvE,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGpF,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;IA1E9B,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiFvE,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -0,0 +1,87 @@
1
+ import { z } from 'zod';
2
+ export const prStatusSchema = z.enum(['open', 'merged', 'closed']);
3
+ export const skillPullRequestSchema = z.object({
4
+ id: z.string().uuid(),
5
+ skill_id: z.string().uuid(),
6
+ author_id: z.string().uuid(),
7
+ title: z.string().min(3).max(140),
8
+ summary: z.string().max(2000).nullable(),
9
+ proposed_content: z.string(),
10
+ proposed_description: z.string().max(500).nullable(),
11
+ status: prStatusSchema,
12
+ merged_by: z.string().uuid().nullable(),
13
+ merged_at: z.string().datetime().nullable(),
14
+ closed_by: z.string().uuid().nullable(),
15
+ closed_at: z.string().datetime().nullable(),
16
+ created_at: z.string().datetime(),
17
+ updated_at: z.string().datetime(),
18
+ /** Attached by the API: public-safe author slice for cards/avatars. */
19
+ author: z
20
+ .object({
21
+ id: z.string().uuid(),
22
+ username: z.string().nullable(),
23
+ display_name: z.string().nullable(),
24
+ avatar_url: z.string().nullable(),
25
+ is_creator: z.boolean(),
26
+ is_partner: z.boolean(),
27
+ })
28
+ .nullable()
29
+ .optional(),
30
+ });
31
+ export const createPullRequestInputSchema = z.object({
32
+ title: z.string().min(3).max(140),
33
+ summary: z.string().max(2000).optional().nullable(),
34
+ proposed_content: z.string().min(1),
35
+ proposed_description: z.string().max(500).optional().nullable(),
36
+ });
37
+ /**
38
+ * Author can push a new "commit" — a fresh proposed_content body — to an
39
+ * already-open PR. Same shape as create minus the title (title doesn't
40
+ * change once the PR is open).
41
+ */
42
+ export const updatePullRequestInputSchema = z.object({
43
+ summary: z.string().max(2000).optional().nullable(),
44
+ proposed_content: z.string().min(1),
45
+ proposed_description: z.string().max(500).optional().nullable(),
46
+ });
47
+ export const skillPrCommentSchema = z.object({
48
+ id: z.string().uuid(),
49
+ pull_request_id: z.string().uuid(),
50
+ author_id: z.string().uuid(),
51
+ body: z.string().min(1).max(4000),
52
+ created_at: z.string().datetime(),
53
+ author: z
54
+ .object({
55
+ id: z.string().uuid(),
56
+ username: z.string().nullable(),
57
+ display_name: z.string().nullable(),
58
+ avatar_url: z.string().nullable(),
59
+ is_creator: z.boolean(),
60
+ is_partner: z.boolean(),
61
+ })
62
+ .nullable()
63
+ .optional(),
64
+ });
65
+ export const createPrCommentInputSchema = z.object({
66
+ body: z.string().min(1).max(4000),
67
+ });
68
+ export const pullRequestPageSchema = z.object({
69
+ pull_request: skillPullRequestSchema,
70
+ comments: z.array(skillPrCommentSchema),
71
+ /** Snapshot of the live skill content the PR was opened against — used for diff. */
72
+ base_content: z.string(),
73
+ base_description: z.string().nullable(),
74
+ });
75
+ /**
76
+ * Cross-skill PR listing — used by the authenticated `/me/pulls` view.
77
+ * Each row carries a slim skill slice so the UI can render the
78
+ * "Proposed change to <skill name>" line + deep-link back to the skill.
79
+ */
80
+ export const myPullRequestSchema = skillPullRequestSchema.extend({
81
+ skill: z.object({
82
+ id: z.string().uuid(),
83
+ slug: z.string(),
84
+ name: z.string(),
85
+ visibility: z.enum(['public', 'private']),
86
+ }),
87
+ });
@@ -1,25 +1,20 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * BYOK (Bring Your Own Key) tester input. The API **never** persists
4
- * the caller's Anthropic key it's used once for the round-trip and
5
- * dropped. Store hashes of keys only if rate-limiting is added later.
3
+ * Managed Skill-Tester input. Prave provides the Anthropic API key
4
+ * server-side and meters usage in credits one credit per request.
5
+ * Model is fixed to Haiku 4.5 for predictable cost; advanced users can
6
+ * later override via a per-plan whitelist.
6
7
  */
7
8
  export declare const skillTestInputSchema: z.ZodObject<{
8
9
  prompt: z.ZodString;
9
- api_key: z.ZodString;
10
- model: z.ZodOptional<z.ZodString>;
11
10
  max_tokens: z.ZodOptional<z.ZodNumber>;
12
11
  temperature: z.ZodOptional<z.ZodNumber>;
13
12
  }, "strip", z.ZodTypeAny, {
14
13
  prompt: string;
15
- api_key: string;
16
- model?: string | undefined;
17
14
  max_tokens?: number | undefined;
18
15
  temperature?: number | undefined;
19
16
  }, {
20
17
  prompt: string;
21
- api_key: string;
22
- model?: string | undefined;
23
18
  max_tokens?: number | undefined;
24
19
  temperature?: number | undefined;
25
20
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-test.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill-test.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;EAU/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
1
+ {"version":3,"file":"skill-test.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill-test.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
@@ -1,17 +1,12 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * BYOK (Bring Your Own Key) tester input. The API **never** persists
4
- * the caller's Anthropic key it's used once for the round-trip and
5
- * dropped. Store hashes of keys only if rate-limiting is added later.
3
+ * Managed Skill-Tester input. Prave provides the Anthropic API key
4
+ * server-side and meters usage in credits one credit per request.
5
+ * Model is fixed to Haiku 4.5 for predictable cost; advanced users can
6
+ * later override via a per-plan whitelist.
6
7
  */
7
8
  export const skillTestInputSchema = z.object({
8
9
  prompt: z.string().min(1).max(12_000),
9
- api_key: z
10
- .string()
11
- .min(10)
12
- .max(256)
13
- .regex(/^sk-ant-/, 'Must be an Anthropic key (starts with sk-ant-)'),
14
- model: z.string().min(1).max(80).optional(),
15
10
  max_tokens: z.number().int().min(1).max(8192).optional(),
16
11
  temperature: z.number().min(0).max(1).optional(),
17
12
  });