@synap-core/workspace-templates 0.2.1

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.
@@ -0,0 +1,312 @@
1
+ # Content Studio workspace template
2
+ # HyperFrames + Remotion video creation pipeline.
3
+
4
+ meta:
5
+ slug: content-studio
6
+ name: Content Studio
7
+ description: HyperFrames + Remotion video pipeline — script, design, compose, render, publish.
8
+ icon: clapperboard
9
+ color: violet
10
+ tags: [content, video, creation, pipeline]
11
+ isPublic: true
12
+
13
+ workspace:
14
+ name: Content Studio
15
+ description: >
16
+ Content creation pipeline — HyperFrames for rapid design, Remotion
17
+ for production rendering. Create videos, carousels, reels, and social
18
+ content from one workspace.
19
+ proposalId: content-studio-v1
20
+ subtype: content-studio
21
+ visibility: pod_visible
22
+ capabilities:
23
+ - content.pipeline
24
+ - content.compose
25
+ - content.render
26
+ - content.assets
27
+ - content.templates
28
+ sourceRoles:
29
+ brand: consumer
30
+ content: provider
31
+
32
+ profiles:
33
+ - slug: content-pipeline
34
+ displayName: Pipeline
35
+ icon: workflow
36
+ color: violet
37
+ description: "A content creation pipeline: script → design → compose → render."
38
+ semanticSlug: content.pipeline
39
+ properties:
40
+ - slug: pipeline-kind
41
+ label: Kind
42
+ valueType: string
43
+ inputType: select
44
+ enumValues: [reel, carousel, demo, explainer, custom]
45
+ constraints: { defaultValue: reel }
46
+ - slug: pipeline-platform
47
+ label: Platform
48
+ valueType: string
49
+ inputType: select
50
+ enumValues: [instagram, tiktok, youtube, linkedin, x, all]
51
+ constraints: { defaultValue: instagram }
52
+ - slug: pipeline-mode
53
+ label: Mode
54
+ valueType: string
55
+ inputType: select
56
+ enumValues: [fast, quality, data]
57
+ constraints: { defaultValue: quality }
58
+ - slug: pipeline-script
59
+ label: Script
60
+ valueType: string
61
+ inputType: textarea
62
+ - slug: pipeline-stages
63
+ label: Stages
64
+ valueType: string
65
+ inputType: textarea
66
+
67
+ - slug: content-composition
68
+ displayName: Composition
69
+ icon: clapperboard
70
+ color: blue
71
+ description: A Remotion composition or HyperFrames sequence ready for rendering.
72
+ semanticSlug: content.composition
73
+ properties:
74
+ - slug: composition-id
75
+ label: Composition ID
76
+ valueType: string
77
+ inputType: text
78
+ - slug: aspect-ratio
79
+ label: Aspect Ratio
80
+ valueType: string
81
+ inputType: select
82
+ enumValues: ["9:16", "16:9", "1:1", "4:5"]
83
+ constraints: { defaultValue: "16:9" }
84
+ - slug: duration-seconds
85
+ label: Duration (seconds)
86
+ valueType: number
87
+ inputType: number
88
+ - slug: hyperframes-meta
89
+ label: HyperFrames JSON
90
+ valueType: string
91
+ inputType: textarea
92
+ - slug: template-id
93
+ label: Template
94
+ valueType: string
95
+ inputType: text
96
+ - slug: pipeline-ref
97
+ label: Pipeline
98
+ valueType: string
99
+ inputType: text
100
+
101
+ - slug: content-asset
102
+ displayName: Asset
103
+ icon: image
104
+ color: green
105
+ description: "Media asset: image, video clip, audio track, font, or script."
106
+ semanticSlug: content.asset
107
+ properties:
108
+ - slug: asset-kind
109
+ label: Kind
110
+ valueType: string
111
+ inputType: select
112
+ enumValues: [image, video, audio, font, script, other]
113
+ - slug: source-kind
114
+ label: Source
115
+ valueType: string
116
+ inputType: select
117
+ enumValues: [uploaded, brand, generated]
118
+ constraints: { defaultValue: uploaded }
119
+ - slug: source-url
120
+ label: URL
121
+ valueType: string
122
+ inputType: url
123
+ - slug: brand-asset-ref
124
+ label: Brand Asset Ref
125
+ valueType: string
126
+ inputType: text
127
+ - slug: file-id
128
+ label: File ID
129
+ valueType: string
130
+ inputType: text
131
+ - slug: document-id
132
+ label: Document ID
133
+ valueType: string
134
+ inputType: text
135
+
136
+ - slug: render-job
137
+ displayName: Render Job
138
+ icon: play
139
+ color: amber
140
+ description: A render execution — queued, rendering, done, or failed.
141
+ semanticSlug: content.render
142
+ properties:
143
+ - slug: job-status
144
+ label: Status
145
+ valueType: string
146
+ inputType: select
147
+ enumValues: [queued, rendering, done, failed]
148
+ constraints: { defaultValue: queued }
149
+ - slug: output-format
150
+ label: Format
151
+ valueType: string
152
+ inputType: select
153
+ enumValues: [mp4, gif, webm, mp3]
154
+ constraints: { defaultValue: mp4 }
155
+ - slug: output-url
156
+ label: Output URL
157
+ valueType: string
158
+ inputType: url
159
+ - slug: render-duration-ms
160
+ label: Render Duration (ms)
161
+ valueType: number
162
+ inputType: number
163
+ - slug: error-message
164
+ label: Error
165
+ valueType: string
166
+ inputType: textarea
167
+ - slug: composition-ref
168
+ label: Composition
169
+ valueType: string
170
+ inputType: text
171
+
172
+ - slug: content-template
173
+ displayName: Template
174
+ icon: layout-template
175
+ color: pink
176
+ description: Reusable video template — HyperFrames, Remotion, or hybrid.
177
+ semanticSlug: content.template
178
+ properties:
179
+ - slug: template-kind
180
+ label: Kind
181
+ valueType: string
182
+ inputType: select
183
+ enumValues: [hyperframes, remotion, hybrid]
184
+ constraints: { defaultValue: hyperframes }
185
+ - slug: aspect-ratio
186
+ label: Aspect Ratio
187
+ valueType: string
188
+ inputType: select
189
+ enumValues: ["9:16", "16:9", "1:1", "4:5"]
190
+ constraints: { defaultValue: "16:9" }
191
+ - slug: template-status
192
+ label: Status
193
+ valueType: string
194
+ inputType: select
195
+ enumValues: [draft, approved, deprecated]
196
+ constraints: { defaultValue: approved }
197
+ - slug: template-config
198
+ label: Config JSON
199
+ valueType: string
200
+ inputType: textarea
201
+
202
+ views:
203
+ - name: Pipelines
204
+ slug: content-pipelines
205
+ type: kanban
206
+ scopeProfileSlug: content-pipeline
207
+ description: Content creation pipelines by status.
208
+ - name: Compositions
209
+ slug: content-compositions
210
+ type: grid
211
+ scopeProfileSlug: content-composition
212
+ description: Video compositions ready for rendering.
213
+ - name: Assets
214
+ slug: content-assets
215
+ type: grid
216
+ scopeProfileSlug: content-asset
217
+ description: Media assets uploaded or generated.
218
+ - name: Render Jobs
219
+ slug: render-jobs
220
+ type: table
221
+ scopeProfileSlug: render-job
222
+ description: Render queue and history.
223
+ - name: Templates
224
+ slug: content-templates
225
+ type: grid
226
+ scopeProfileSlug: content-template
227
+ description: Reusable video templates.
228
+
229
+ # App reference
230
+ app:
231
+ kind: native
232
+ appId: contentStudio
233
+ rendererType: native
234
+ title: Content Studio
235
+
236
+ layout:
237
+ pinnedApps: [dashboard, data, brandLibrary]
238
+ defaultView: Pipelines
239
+ defaultApp: contentStudio
240
+ sidebarItems:
241
+ - kind: app
242
+ appId: contentStudio
243
+ label: Content Studio
244
+ icon: clapperboard
245
+ surface:
246
+ kind: app
247
+ appId: contentStudio
248
+ rendererType: native
249
+ placement: main
250
+ displayMode: full
251
+ title: Content Studio
252
+ - kind: view
253
+ viewName: Pipelines
254
+ label: Pipelines
255
+ icon: workflow
256
+ - kind: view
257
+ viewName: Compositions
258
+ label: Compositions
259
+ icon: clapperboard
260
+ - kind: view
261
+ viewName: Assets
262
+ label: Assets
263
+ icon: image
264
+ - kind: view
265
+ viewName: Render Jobs
266
+ label: Renders
267
+ icon: play
268
+ - kind: view
269
+ viewName: Templates
270
+ label: Templates
271
+ icon: layout-template
272
+
273
+ entityLinks:
274
+ - sourceProfileSlug: content-composition
275
+ targetProfileSlug: content-pipeline
276
+ type: belongs_to_pipeline
277
+ label: Pipeline
278
+ - sourceProfileSlug: render-job
279
+ targetProfileSlug: content-composition
280
+ type: renders
281
+ label: Composition
282
+ - sourceProfileSlug: content-asset
283
+ targetProfileSlug: render-job
284
+ type: used_in
285
+ label: Render Job
286
+ - sourceProfileSlug: content-asset
287
+ targetProfileSlug: content-composition
288
+ type: used_in
289
+ label: Composition
290
+
291
+ seedEntities:
292
+ - profileSlug: content-template
293
+ title: Instagram Reel — Fast
294
+ properties:
295
+ template-kind: hyperframes
296
+ aspect-ratio: "9:16"
297
+ template-status: approved
298
+ template-config: '{"mode":"fast","pipeline":["script","hyperframes","render"],"description":"Quick social cut: write a script, get HyperFrames HTML, browser-capture to MP4."}'
299
+ - profileSlug: content-template
300
+ title: Product Demo — Quality
301
+ properties:
302
+ template-kind: hybrid
303
+ aspect-ratio: "16:9"
304
+ template-status: approved
305
+ template-config: '{"mode":"quality","pipeline":["script","hyperframes","remotion","render"],"description":"Premium product video: HyperFrames design exploration → Remotion production render with springs + audio sync."}'
306
+ - profileSlug: content-template
307
+ title: Data Recap — Data-Driven
308
+ properties:
309
+ template-kind: remotion
310
+ aspect-ratio: "16:9"
311
+ template-status: approved
312
+ template-config: '{"mode":"data","pipeline":["data","remotion","render"],"description":"Synap-powered: pull entities via calculateMetadata(), animate charts, render weekly recap."}'