devrel-toolkit 0.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 (115) hide show
  1. package/README.md +63 -0
  2. package/dist/__tests__/cli.test.d.ts +2 -0
  3. package/dist/__tests__/cli.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli.test.js +47 -0
  5. package/dist/__tests__/cli.test.js.map +1 -0
  6. package/dist/__tests__/components.test.d.ts +2 -0
  7. package/dist/__tests__/components.test.d.ts.map +1 -0
  8. package/dist/__tests__/components.test.js +73 -0
  9. package/dist/__tests__/components.test.js.map +1 -0
  10. package/dist/__tests__/d-id-client.test.d.ts +2 -0
  11. package/dist/__tests__/d-id-client.test.d.ts.map +1 -0
  12. package/dist/__tests__/d-id-client.test.js +116 -0
  13. package/dist/__tests__/d-id-client.test.js.map +1 -0
  14. package/dist/__tests__/render-integration.test.d.ts +2 -0
  15. package/dist/__tests__/render-integration.test.d.ts.map +1 -0
  16. package/dist/__tests__/render-integration.test.js +26 -0
  17. package/dist/__tests__/render-integration.test.js.map +1 -0
  18. package/dist/__tests__/schema.test.d.ts +2 -0
  19. package/dist/__tests__/schema.test.d.ts.map +1 -0
  20. package/dist/__tests__/schema.test.js +173 -0
  21. package/dist/__tests__/schema.test.js.map +1 -0
  22. package/dist/__tests__/timing.test.d.ts +2 -0
  23. package/dist/__tests__/timing.test.d.ts.map +1 -0
  24. package/dist/__tests__/timing.test.js +69 -0
  25. package/dist/__tests__/timing.test.js.map +1 -0
  26. package/dist/cli/d-id.d.ts +3 -0
  27. package/dist/cli/d-id.d.ts.map +1 -0
  28. package/dist/cli/d-id.js +53 -0
  29. package/dist/cli/d-id.js.map +1 -0
  30. package/dist/cli/doctor.d.ts +3 -0
  31. package/dist/cli/doctor.d.ts.map +1 -0
  32. package/dist/cli/doctor.js +134 -0
  33. package/dist/cli/doctor.js.map +1 -0
  34. package/dist/cli/index.d.ts +3 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +21 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/cli/install-skill.d.ts +3 -0
  39. package/dist/cli/install-skill.d.ts.map +1 -0
  40. package/dist/cli/install-skill.js +50 -0
  41. package/dist/cli/install-skill.js.map +1 -0
  42. package/dist/cli/render.d.ts +4 -0
  43. package/dist/cli/render.d.ts.map +1 -0
  44. package/dist/cli/render.js +134 -0
  45. package/dist/cli/render.js.map +1 -0
  46. package/dist/cli/setup.d.ts +3 -0
  47. package/dist/cli/setup.d.ts.map +1 -0
  48. package/dist/cli/setup.js +60 -0
  49. package/dist/cli/setup.js.map +1 -0
  50. package/dist/compositor/DemoVideo.d.ts +4 -0
  51. package/dist/compositor/DemoVideo.d.ts.map +1 -0
  52. package/dist/compositor/DemoVideo.js +64 -0
  53. package/dist/compositor/DemoVideo.js.map +1 -0
  54. package/dist/compositor/Root.d.ts +3 -0
  55. package/dist/compositor/Root.d.ts.map +1 -0
  56. package/dist/compositor/Root.js +30 -0
  57. package/dist/compositor/Root.js.map +1 -0
  58. package/dist/compositor/components/AvatarPiP.d.ts +10 -0
  59. package/dist/compositor/components/AvatarPiP.d.ts.map +1 -0
  60. package/dist/compositor/components/AvatarPiP.js +52 -0
  61. package/dist/compositor/components/AvatarPiP.js.map +1 -0
  62. package/dist/compositor/components/BrowserFrame.d.ts +18 -0
  63. package/dist/compositor/components/BrowserFrame.d.ts.map +1 -0
  64. package/dist/compositor/components/BrowserFrame.js +97 -0
  65. package/dist/compositor/components/BrowserFrame.js.map +1 -0
  66. package/dist/compositor/components/Cursor.d.ts +13 -0
  67. package/dist/compositor/components/Cursor.d.ts.map +1 -0
  68. package/dist/compositor/components/Cursor.js +65 -0
  69. package/dist/compositor/components/Cursor.js.map +1 -0
  70. package/dist/compositor/components/Highlight.d.ts +9 -0
  71. package/dist/compositor/components/Highlight.d.ts.map +1 -0
  72. package/dist/compositor/components/Highlight.js +83 -0
  73. package/dist/compositor/components/Highlight.js.map +1 -0
  74. package/dist/compositor/components/IntroOutro.d.ts +10 -0
  75. package/dist/compositor/components/IntroOutro.d.ts.map +1 -0
  76. package/dist/compositor/components/IntroOutro.js +48 -0
  77. package/dist/compositor/components/IntroOutro.js.map +1 -0
  78. package/dist/compositor/components/SceneTransition.d.ts +9 -0
  79. package/dist/compositor/components/SceneTransition.d.ts.map +1 -0
  80. package/dist/compositor/components/SceneTransition.js +35 -0
  81. package/dist/compositor/components/SceneTransition.js.map +1 -0
  82. package/dist/compositor/components/Subtitles.d.ts +9 -0
  83. package/dist/compositor/components/Subtitles.d.ts.map +1 -0
  84. package/dist/compositor/components/Subtitles.js +45 -0
  85. package/dist/compositor/components/Subtitles.js.map +1 -0
  86. package/dist/compositor/index.d.ts +2 -0
  87. package/dist/compositor/index.d.ts.map +1 -0
  88. package/dist/compositor/index.js +4 -0
  89. package/dist/compositor/index.js.map +1 -0
  90. package/dist/compositor/timing.d.ts +16 -0
  91. package/dist/compositor/timing.d.ts.map +1 -0
  92. package/dist/compositor/timing.js +39 -0
  93. package/dist/compositor/timing.js.map +1 -0
  94. package/dist/d-id/client.d.ts +50 -0
  95. package/dist/d-id/client.d.ts.map +1 -0
  96. package/dist/d-id/client.js +114 -0
  97. package/dist/d-id/client.js.map +1 -0
  98. package/dist/d-id/generate.d.ts +9 -0
  99. package/dist/d-id/generate.d.ts.map +1 -0
  100. package/dist/d-id/generate.js +81 -0
  101. package/dist/d-id/generate.js.map +1 -0
  102. package/dist/utils/config.d.ts +14 -0
  103. package/dist/utils/config.d.ts.map +1 -0
  104. package/dist/utils/config.js +34 -0
  105. package/dist/utils/config.js.map +1 -0
  106. package/dist/utils/schema.d.ts +273 -0
  107. package/dist/utils/schema.d.ts.map +1 -0
  108. package/dist/utils/schema.js +98 -0
  109. package/dist/utils/schema.js.map +1 -0
  110. package/package.json +54 -0
  111. package/remotion.config.ts +4 -0
  112. package/skills/make-demo/SKILL.md +282 -0
  113. package/skills/make-demo/references/demo-script-schema.md +47 -0
  114. package/skills/make-demo/references/render-props-schema.md +49 -0
  115. package/skills/make-demo/references/toolkit-commands.md +23 -0
@@ -0,0 +1,273 @@
1
+ import { z } from "zod";
2
+ export declare const NavigationStepSchema: z.ZodObject<{
3
+ action: z.ZodEnum<{
4
+ goto: "goto";
5
+ click: "click";
6
+ scroll: "scroll";
7
+ type: "type";
8
+ wait: "wait";
9
+ hover: "hover";
10
+ }>;
11
+ target: z.ZodOptional<z.ZodString>;
12
+ value: z.ZodOptional<z.ZodString>;
13
+ waitAfter: z.ZodOptional<z.ZodNumber>;
14
+ }, z.core.$strip>;
15
+ export declare const HighlightSchema: z.ZodObject<{
16
+ selector: z.ZodString;
17
+ style: z.ZodEnum<{
18
+ box: "box";
19
+ glow: "glow";
20
+ arrow: "arrow";
21
+ underline: "underline";
22
+ }>;
23
+ color: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>;
25
+ export declare const ZoomTargetSchema: z.ZodObject<{
26
+ selector: z.ZodString;
27
+ level: z.ZodNumber;
28
+ }, z.core.$strip>;
29
+ export declare const SceneSchema: z.ZodObject<{
30
+ id: z.ZodString;
31
+ title: z.ZodString;
32
+ narration: z.ZodString;
33
+ navigation: z.ZodArray<z.ZodObject<{
34
+ action: z.ZodEnum<{
35
+ goto: "goto";
36
+ click: "click";
37
+ scroll: "scroll";
38
+ type: "type";
39
+ wait: "wait";
40
+ hover: "hover";
41
+ }>;
42
+ target: z.ZodOptional<z.ZodString>;
43
+ value: z.ZodOptional<z.ZodString>;
44
+ waitAfter: z.ZodOptional<z.ZodNumber>;
45
+ }, z.core.$strip>>;
46
+ highlights: z.ZodArray<z.ZodObject<{
47
+ selector: z.ZodString;
48
+ style: z.ZodEnum<{
49
+ box: "box";
50
+ glow: "glow";
51
+ arrow: "arrow";
52
+ underline: "underline";
53
+ }>;
54
+ color: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>>;
56
+ zoom: z.ZodOptional<z.ZodObject<{
57
+ selector: z.ZodString;
58
+ level: z.ZodNumber;
59
+ }, z.core.$strip>>;
60
+ transition: z.ZodEnum<{
61
+ fade: "fade";
62
+ slide: "slide";
63
+ cut: "cut";
64
+ }>;
65
+ }, z.core.$strip>;
66
+ export declare const DemoScriptSchema: z.ZodObject<{
67
+ title: z.ZodString;
68
+ description: z.ZodString;
69
+ url: z.ZodString;
70
+ resolution: z.ZodObject<{
71
+ width: z.ZodNumber;
72
+ height: z.ZodNumber;
73
+ }, z.core.$strip>;
74
+ fps: z.ZodNumber;
75
+ scenes: z.ZodArray<z.ZodObject<{
76
+ id: z.ZodString;
77
+ title: z.ZodString;
78
+ narration: z.ZodString;
79
+ navigation: z.ZodArray<z.ZodObject<{
80
+ action: z.ZodEnum<{
81
+ goto: "goto";
82
+ click: "click";
83
+ scroll: "scroll";
84
+ type: "type";
85
+ wait: "wait";
86
+ hover: "hover";
87
+ }>;
88
+ target: z.ZodOptional<z.ZodString>;
89
+ value: z.ZodOptional<z.ZodString>;
90
+ waitAfter: z.ZodOptional<z.ZodNumber>;
91
+ }, z.core.$strip>>;
92
+ highlights: z.ZodArray<z.ZodObject<{
93
+ selector: z.ZodString;
94
+ style: z.ZodEnum<{
95
+ box: "box";
96
+ glow: "glow";
97
+ arrow: "arrow";
98
+ underline: "underline";
99
+ }>;
100
+ color: z.ZodOptional<z.ZodString>;
101
+ }, z.core.$strip>>;
102
+ zoom: z.ZodOptional<z.ZodObject<{
103
+ selector: z.ZodString;
104
+ level: z.ZodNumber;
105
+ }, z.core.$strip>>;
106
+ transition: z.ZodEnum<{
107
+ fade: "fade";
108
+ slide: "slide";
109
+ cut: "cut";
110
+ }>;
111
+ }, z.core.$strip>>;
112
+ }, z.core.$strip>;
113
+ export declare const RenderHighlightSchema: z.ZodObject<{
114
+ bbox: z.ZodObject<{
115
+ x: z.ZodNumber;
116
+ y: z.ZodNumber;
117
+ width: z.ZodNumber;
118
+ height: z.ZodNumber;
119
+ }, z.core.$strip>;
120
+ style: z.ZodEnum<{
121
+ box: "box";
122
+ glow: "glow";
123
+ arrow: "arrow";
124
+ underline: "underline";
125
+ }>;
126
+ color: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strip>;
128
+ export declare const RenderZoomSchema: z.ZodObject<{
129
+ bbox: z.ZodObject<{
130
+ x: z.ZodNumber;
131
+ y: z.ZodNumber;
132
+ width: z.ZodNumber;
133
+ height: z.ZodNumber;
134
+ }, z.core.$strip>;
135
+ level: z.ZodNumber;
136
+ }, z.core.$strip>;
137
+ export declare const CursorPointSchema: z.ZodObject<{
138
+ x: z.ZodNumber;
139
+ y: z.ZodNumber;
140
+ timestamp: z.ZodNumber;
141
+ }, z.core.$strip>;
142
+ export declare const RenderSceneSchema: z.ZodObject<{
143
+ id: z.ZodString;
144
+ title: z.ZodOptional<z.ZodString>;
145
+ url: z.ZodOptional<z.ZodString>;
146
+ screenshotPath: z.ZodString;
147
+ avatarClipPath: z.ZodOptional<z.ZodString>;
148
+ avatarDuration: z.ZodNumber;
149
+ narration: z.ZodString;
150
+ highlights: z.ZodArray<z.ZodObject<{
151
+ bbox: z.ZodObject<{
152
+ x: z.ZodNumber;
153
+ y: z.ZodNumber;
154
+ width: z.ZodNumber;
155
+ height: z.ZodNumber;
156
+ }, z.core.$strip>;
157
+ style: z.ZodEnum<{
158
+ box: "box";
159
+ glow: "glow";
160
+ arrow: "arrow";
161
+ underline: "underline";
162
+ }>;
163
+ color: z.ZodOptional<z.ZodString>;
164
+ }, z.core.$strip>>;
165
+ zoom: z.ZodOptional<z.ZodObject<{
166
+ bbox: z.ZodObject<{
167
+ x: z.ZodNumber;
168
+ y: z.ZodNumber;
169
+ width: z.ZodNumber;
170
+ height: z.ZodNumber;
171
+ }, z.core.$strip>;
172
+ level: z.ZodNumber;
173
+ }, z.core.$strip>>;
174
+ transition: z.ZodEnum<{
175
+ fade: "fade";
176
+ slide: "slide";
177
+ cut: "cut";
178
+ }>;
179
+ cursorPath: z.ZodOptional<z.ZodArray<z.ZodObject<{
180
+ x: z.ZodNumber;
181
+ y: z.ZodNumber;
182
+ timestamp: z.ZodNumber;
183
+ }, z.core.$strip>>>;
184
+ }, z.core.$strip>;
185
+ export declare const IntroOutroSchema: z.ZodObject<{
186
+ title: z.ZodString;
187
+ subtitle: z.ZodOptional<z.ZodString>;
188
+ logoPath: z.ZodOptional<z.ZodString>;
189
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
190
+ }, z.core.$strip>;
191
+ export declare const RenderPropsSchema: z.ZodObject<{
192
+ resolution: z.ZodObject<{
193
+ width: z.ZodNumber;
194
+ height: z.ZodNumber;
195
+ }, z.core.$strip>;
196
+ fps: z.ZodNumber;
197
+ scenes: z.ZodArray<z.ZodObject<{
198
+ id: z.ZodString;
199
+ title: z.ZodOptional<z.ZodString>;
200
+ url: z.ZodOptional<z.ZodString>;
201
+ screenshotPath: z.ZodString;
202
+ avatarClipPath: z.ZodOptional<z.ZodString>;
203
+ avatarDuration: z.ZodNumber;
204
+ narration: z.ZodString;
205
+ highlights: z.ZodArray<z.ZodObject<{
206
+ bbox: z.ZodObject<{
207
+ x: z.ZodNumber;
208
+ y: z.ZodNumber;
209
+ width: z.ZodNumber;
210
+ height: z.ZodNumber;
211
+ }, z.core.$strip>;
212
+ style: z.ZodEnum<{
213
+ box: "box";
214
+ glow: "glow";
215
+ arrow: "arrow";
216
+ underline: "underline";
217
+ }>;
218
+ color: z.ZodOptional<z.ZodString>;
219
+ }, z.core.$strip>>;
220
+ zoom: z.ZodOptional<z.ZodObject<{
221
+ bbox: z.ZodObject<{
222
+ x: z.ZodNumber;
223
+ y: z.ZodNumber;
224
+ width: z.ZodNumber;
225
+ height: z.ZodNumber;
226
+ }, z.core.$strip>;
227
+ level: z.ZodNumber;
228
+ }, z.core.$strip>>;
229
+ transition: z.ZodEnum<{
230
+ fade: "fade";
231
+ slide: "slide";
232
+ cut: "cut";
233
+ }>;
234
+ cursorPath: z.ZodOptional<z.ZodArray<z.ZodObject<{
235
+ x: z.ZodNumber;
236
+ y: z.ZodNumber;
237
+ timestamp: z.ZodNumber;
238
+ }, z.core.$strip>>>;
239
+ }, z.core.$strip>>;
240
+ avatarPosition: z.ZodOptional<z.ZodEnum<{
241
+ "bottom-right": "bottom-right";
242
+ "bottom-left": "bottom-left";
243
+ "top-right": "top-right";
244
+ "top-left": "top-left";
245
+ }>>;
246
+ avatarSize: z.ZodOptional<z.ZodNumber>;
247
+ showSubtitles: z.ZodOptional<z.ZodBoolean>;
248
+ intro: z.ZodOptional<z.ZodObject<{
249
+ title: z.ZodString;
250
+ subtitle: z.ZodOptional<z.ZodString>;
251
+ logoPath: z.ZodOptional<z.ZodString>;
252
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
253
+ }, z.core.$strip>>;
254
+ outro: z.ZodOptional<z.ZodObject<{
255
+ title: z.ZodString;
256
+ subtitle: z.ZodOptional<z.ZodString>;
257
+ logoPath: z.ZodOptional<z.ZodString>;
258
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
259
+ }, z.core.$strip>>;
260
+ backgroundMusic: z.ZodOptional<z.ZodString>;
261
+ }, z.core.$strip>;
262
+ export type NavigationStep = z.infer<typeof NavigationStepSchema>;
263
+ export type Highlight = z.infer<typeof HighlightSchema>;
264
+ export type ZoomTarget = z.infer<typeof ZoomTargetSchema>;
265
+ export type Scene = z.infer<typeof SceneSchema>;
266
+ export type DemoScript = z.infer<typeof DemoScriptSchema>;
267
+ export type RenderHighlight = z.infer<typeof RenderHighlightSchema>;
268
+ export type RenderZoom = z.infer<typeof RenderZoomSchema>;
269
+ export type RenderScene = z.infer<typeof RenderSceneSchema>;
270
+ export type CursorPoint = z.infer<typeof CursorPointSchema>;
271
+ export type IntroOutro = z.infer<typeof IntroOutroSchema>;
272
+ export type RenderProps = z.infer<typeof RenderPropsSchema>;
273
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQtB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU3B,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAShC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;iBAQ3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe5B,CAAC;AAIH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { z } from "zod";
2
+ // ─── Demo Script Schema (produced by Claude Code skill, consumed by toolkit) ───
3
+ export const NavigationStepSchema = z.object({
4
+ action: z.enum(["goto", "click", "scroll", "type", "wait", "hover"]),
5
+ target: z.string().optional(),
6
+ value: z.string().optional(),
7
+ waitAfter: z.number().optional(),
8
+ });
9
+ export const HighlightSchema = z.object({
10
+ selector: z.string(),
11
+ style: z.enum(["box", "glow", "arrow", "underline"]),
12
+ color: z.string().optional(),
13
+ });
14
+ export const ZoomTargetSchema = z.object({
15
+ selector: z.string(),
16
+ level: z.number(),
17
+ });
18
+ export const SceneSchema = z.object({
19
+ id: z.string(),
20
+ title: z.string(),
21
+ narration: z.string(),
22
+ navigation: z.array(NavigationStepSchema),
23
+ highlights: z.array(HighlightSchema),
24
+ zoom: ZoomTargetSchema.optional(),
25
+ transition: z.enum(["fade", "slide", "cut"]),
26
+ });
27
+ export const DemoScriptSchema = z.object({
28
+ title: z.string(),
29
+ description: z.string(),
30
+ url: z.string(),
31
+ resolution: z.object({
32
+ width: z.number(),
33
+ height: z.number(),
34
+ }),
35
+ fps: z.number(),
36
+ scenes: z.array(SceneSchema),
37
+ });
38
+ // ─── Render Props Schema (toolkit input for Remotion rendering) ───
39
+ export const RenderHighlightSchema = z.object({
40
+ bbox: z.object({
41
+ x: z.number(),
42
+ y: z.number(),
43
+ width: z.number(),
44
+ height: z.number(),
45
+ }),
46
+ style: z.enum(["box", "glow", "arrow", "underline"]),
47
+ color: z.string().optional(),
48
+ });
49
+ export const RenderZoomSchema = z.object({
50
+ bbox: z.object({
51
+ x: z.number(),
52
+ y: z.number(),
53
+ width: z.number(),
54
+ height: z.number(),
55
+ }),
56
+ level: z.number(),
57
+ });
58
+ export const CursorPointSchema = z.object({
59
+ x: z.number(),
60
+ y: z.number(),
61
+ timestamp: z.number(),
62
+ });
63
+ export const RenderSceneSchema = z.object({
64
+ id: z.string(),
65
+ title: z.string().optional(),
66
+ url: z.string().optional(),
67
+ screenshotPath: z.string(),
68
+ avatarClipPath: z.string().optional(),
69
+ avatarDuration: z.number(),
70
+ narration: z.string(),
71
+ highlights: z.array(RenderHighlightSchema),
72
+ zoom: RenderZoomSchema.optional(),
73
+ transition: z.enum(["fade", "slide", "cut"]),
74
+ cursorPath: z.array(CursorPointSchema).optional(),
75
+ });
76
+ export const IntroOutroSchema = z.object({
77
+ title: z.string(),
78
+ subtitle: z.string().optional(),
79
+ logoPath: z.string().optional(),
80
+ durationSeconds: z.number().optional(),
81
+ });
82
+ export const RenderPropsSchema = z.object({
83
+ resolution: z.object({
84
+ width: z.number(),
85
+ height: z.number(),
86
+ }),
87
+ fps: z.number(),
88
+ scenes: z.array(RenderSceneSchema),
89
+ avatarPosition: z
90
+ .enum(["bottom-right", "bottom-left", "top-right", "top-left"])
91
+ .optional(),
92
+ avatarSize: z.number().optional(),
93
+ showSubtitles: z.boolean().optional(),
94
+ intro: IntroOutroSchema.optional(),
95
+ outro: IntroOutroSchema.optional(),
96
+ backgroundMusic: z.string().optional(),
97
+ });
98
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "devrel-toolkit",
3
+ "version": "0.1.0",
4
+ "description": "Toolkit for automated product demo video creation with AI avatars and Remotion compositing",
5
+ "type": "module",
6
+ "bin": {
7
+ "devrel-toolkit": "./dist/cli/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "files": [
11
+ "dist",
12
+ "skills",
13
+ "remotion.config.ts"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc --skipLibCheck",
17
+ "dev": "tsc --watch --skipLibCheck",
18
+ "prepublishOnly": "npm run build",
19
+ "start": "node dist/cli/index.js",
20
+ "postinstall": "node -e \"try{require('child_process').execSync('ffmpeg -version',{stdio:'ignore'})}catch{console.log('WARNING: FFmpeg not found. Install with: brew install ffmpeg (macOS) or apt install ffmpeg (Linux)')}\"",
21
+ "test": "vitest run"
22
+ },
23
+ "keywords": [
24
+ "devrel",
25
+ "demo",
26
+ "video",
27
+ "remotion",
28
+ "d-id",
29
+ "avatar"
30
+ ],
31
+ "license": "MIT",
32
+ "engines": {
33
+ "node": ">=18.0.0"
34
+ },
35
+ "dependencies": {
36
+ "@remotion/bundler": "^4.0.438",
37
+ "@remotion/cli": "^4.0.438",
38
+ "@remotion/media": "^4.0.438",
39
+ "@remotion/renderer": "^4.0.438",
40
+ "@remotion/transitions": "^4.0.438",
41
+ "chalk": "^5.6.2",
42
+ "commander": "^14.0.3",
43
+ "dotenv": "^17.3.1",
44
+ "ora": "^9.3.0",
45
+ "remotion": "^4.0.438",
46
+ "zod": "^4.3.6"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "^25.5.0",
50
+ "@types/react": "^19.2.14",
51
+ "typescript": "^5.9.3",
52
+ "vitest": "^4.1.0"
53
+ }
54
+ }
@@ -0,0 +1,4 @@
1
+ import { Config } from "@remotion/cli/config";
2
+
3
+ Config.setVideoImageFormat("png");
4
+ Config.setOverwriteOutput(true);