@gentbajko/slopify 3.25.9 → 4.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 (718) hide show
  1. package/dist/adapters/account-limits.js +30 -0
  2. package/dist/adapters/alignment/audio.js +1 -1
  3. package/dist/adapters/alignment/cache.js +4 -6
  4. package/dist/adapters/alignment/ctc.js +1 -2
  5. package/dist/adapters/alignment/lock.js +4 -3
  6. package/dist/adapters/alignment/multilingual.js +2 -4
  7. package/dist/adapters/alignment/prefetch.js +2 -1
  8. package/dist/adapters/alignment/runner.js +1 -1
  9. package/dist/adapters/alignment/worker.js +3 -2
  10. package/dist/adapters/explain.js +10 -12
  11. package/dist/adapters/ffmpeg.js +19 -1
  12. package/dist/adapters/host-cli/index.js +21 -4
  13. package/dist/adapters/host-cli/transport.js +2 -1
  14. package/dist/adapters/http-failure.js +53 -0
  15. package/dist/adapters/image/bytes.js +2 -1
  16. package/dist/adapters/image/codex.js +42 -9
  17. package/dist/adapters/image/fal.js +21 -53
  18. package/dist/adapters/image/google.js +33 -56
  19. package/dist/adapters/image/models.js +2 -2
  20. package/dist/adapters/image/openai.js +22 -48
  21. package/dist/adapters/image/reference.js +36 -0
  22. package/dist/adapters/image/replicate.js +21 -49
  23. package/dist/adapters/image/video.js +2 -1
  24. package/dist/adapters/interest/search-interest.js +113 -0
  25. package/dist/adapters/key-probes.js +54 -3
  26. package/dist/adapters/llm/antigravity-models.js +1 -1
  27. package/dist/adapters/llm/antigravity.js +11 -6
  28. package/dist/adapters/llm/assistant-cli.js +388 -0
  29. package/dist/adapters/llm/child-session.js +83 -0
  30. package/dist/adapters/llm/claude-code-models.js +52 -99
  31. package/dist/adapters/llm/claude-code.js +16 -4
  32. package/dist/adapters/llm/codex-limits.js +27 -68
  33. package/dist/adapters/llm/codex-models.js +1 -1
  34. package/dist/adapters/llm/codex-server-models.js +61 -109
  35. package/dist/adapters/llm/codex.js +12 -1
  36. package/dist/adapters/llm/document-workspace.js +3 -2
  37. package/dist/adapters/llm/image-workspace.js +3 -2
  38. package/dist/adapters/llm/openrouter.js +12 -48
  39. package/dist/adapters/llm/run-cli.js +9 -24
  40. package/dist/adapters/llm/sse-lines.js +5 -1
  41. package/dist/adapters/model-access.js +37 -0
  42. package/dist/adapters/tts/cartesia.js +15 -46
  43. package/dist/adapters/tts/elevenlabs.js +20 -52
  44. package/dist/adapters/tts/gemini.js +21 -41
  45. package/dist/adapters/tts/inworld-async.js +6 -2
  46. package/dist/adapters/tts/inworld.js +6 -2
  47. package/dist/adapters/tts/openai.js +20 -50
  48. package/dist/adapters/tts/system.js +2 -1
  49. package/dist/assets/models-lifecycle.yaml +6 -0
  50. package/dist/assistant-wiring.js +60 -0
  51. package/dist/autopilot-timers.js +59 -0
  52. package/dist/catalog/lifecycle.js +52 -0
  53. package/dist/catalog/propose.js +204 -0
  54. package/dist/catalog/registry.js +23 -14
  55. package/dist/catalog/schema.js +4 -1
  56. package/dist/catalog/store.js +39 -0
  57. package/dist/catalog/validate.js +5 -2
  58. package/dist/edge/autostart/native.js +3 -5
  59. package/dist/edge/autostart/prompt.js +2 -1
  60. package/dist/edge/autostart/service.js +3 -4
  61. package/dist/edge/cli-args.js +3 -4
  62. package/dist/edge/cli.js +2 -1
  63. package/dist/edge/docker-install/apply.js +11 -11
  64. package/dist/edge/docker-install/run.js +2 -1
  65. package/dist/edge/docker-install/state.js +4 -3
  66. package/dist/edge/docker-install/tree.js +2 -4
  67. package/dist/edge/docker-install/volume.js +3 -2
  68. package/dist/edge/docker.js +5 -4
  69. package/dist/edge/events/hub.js +5 -5
  70. package/dist/edge/http/actions.js +11 -32
  71. package/dist/edge/http/actor.js +5 -3
  72. package/dist/edge/http/app.js +86 -11
  73. package/dist/edge/http/assistant.js +129 -0
  74. package/dist/edge/http/audio-preview.js +4 -11
  75. package/dist/edge/http/auditions.js +1 -1
  76. package/dist/edge/http/autostart.js +5 -5
  77. package/dist/edge/http/backups.js +2 -4
  78. package/dist/edge/http/channel-memory.js +9 -22
  79. package/dist/edge/http/channels.js +14 -27
  80. package/dist/edge/http/checkpoints.js +39 -21
  81. package/dist/edge/http/design-templates.js +167 -0
  82. package/dist/edge/http/designs.js +178 -0
  83. package/dist/edge/http/diagnostics.js +5 -1
  84. package/dist/edge/http/document-themes.js +5 -14
  85. package/dist/edge/http/draft-files.js +1 -3
  86. package/dist/edge/http/draft-problem.js +5 -10
  87. package/dist/edge/http/drafts.js +3 -3
  88. package/dist/edge/http/entries.js +6 -9
  89. package/dist/edge/http/extension-auth.js +27 -0
  90. package/dist/edge/http/external-reviews.js +12 -11
  91. package/dist/edge/http/files.js +5 -11
  92. package/dist/edge/http/folder-location.js +1 -4
  93. package/dist/edge/http/fonts.js +0 -7
  94. package/dist/edge/http/home.js +47 -14
  95. package/dist/edge/http/host-cli.js +18 -8
  96. package/dist/edge/http/ids.js +8 -0
  97. package/dist/edge/http/keywords.js +35 -0
  98. package/dist/edge/http/model-checks.js +132 -0
  99. package/dist/edge/http/narration-peaks.js +5 -13
  100. package/dist/edge/http/onboarding.js +30 -26
  101. package/dist/edge/http/open-folder.js +5 -10
  102. package/dist/edge/http/outputs.js +7 -14
  103. package/dist/edge/http/patch-notes.js +6 -12
  104. package/dist/edge/http/planning.js +3 -7
  105. package/dist/edge/http/problem.js +2 -4
  106. package/dist/edge/http/project-create.js +2 -1
  107. package/dist/edge/http/project-templates.js +31 -19
  108. package/dist/edge/http/projects.js +24 -16
  109. package/dist/edge/http/prompts.js +9 -16
  110. package/dist/edge/http/pronunciations.js +1 -2
  111. package/dist/edge/http/providers.js +48 -34
  112. package/dist/edge/http/refusal.js +29 -0
  113. package/dist/edge/http/remote-access.js +40 -0
  114. package/dist/edge/http/remote-guard.js +71 -0
  115. package/dist/edge/http/request-guard.js +91 -0
  116. package/dist/edge/http/reviews.js +12 -25
  117. package/dist/edge/http/revision-files.js +6 -11
  118. package/dist/edge/http/revisions.js +14 -19
  119. package/dist/edge/http/run-cost.js +1 -2
  120. package/dist/edge/http/same-page.js +80 -0
  121. package/dist/edge/http/schedules.js +69 -40
  122. package/dist/edge/http/settings.js +27 -14
  123. package/dist/edge/http/social.js +283 -0
  124. package/dist/edge/http/staging.js +3 -5
  125. package/dist/edge/http/storage-files.js +5 -7
  126. package/dist/edge/http/storage.js +33 -25
  127. package/dist/edge/http/studio.js +94 -69
  128. package/dist/edge/http/style-preview.js +3 -6
  129. package/dist/edge/http/subtitles.js +3 -17
  130. package/dist/edge/http/template-studio.js +436 -0
  131. package/dist/edge/http/trash.js +11 -12
  132. package/dist/edge/http/tutorial.js +1 -2
  133. package/dist/edge/http/tutorials.js +5 -11
  134. package/dist/edge/http/update.js +7 -13
  135. package/dist/edge/http/waveform.js +3 -6
  136. package/dist/edge/http/youtube-edits.js +3 -4
  137. package/dist/edge/mcp/assistant.js +279 -0
  138. package/dist/edge/mcp/attribution.js +8 -2
  139. package/dist/edge/mcp/call-route.js +11 -2
  140. package/dist/edge/mcp/excluded-routes.js +29 -3
  141. package/dist/edge/mcp/http.js +11 -2
  142. package/dist/edge/mcp/instructions.js +6 -4
  143. package/dist/edge/mcp/library-tools.js +9 -5
  144. package/dist/edge/mcp/remake-tools.js +7 -4
  145. package/dist/edge/mcp/route-tool.js +35 -15
  146. package/dist/edge/mcp/server.js +13 -8
  147. package/dist/edge/mcp/tools-channels.js +11 -9
  148. package/dist/edge/mcp/tools-designs.js +165 -0
  149. package/dist/edge/mcp/tools-library.js +19 -7
  150. package/dist/edge/mcp/tools-planning.js +40 -21
  151. package/dist/edge/mcp/tools-projects.js +38 -11
  152. package/dist/edge/mcp/tools-publishing.js +9 -9
  153. package/dist/edge/mcp/tools-runs.js +23 -10
  154. package/dist/edge/mcp/tools-schedules.js +32 -8
  155. package/dist/edge/mcp/tools-setup.js +75 -11
  156. package/dist/edge/mcp/tools-social.js +47 -0
  157. package/dist/edge/mcp/tools-storage.js +11 -3
  158. package/dist/edge/mcp/tools-template-studio.js +166 -0
  159. package/dist/edge/mcp/tools.js +6 -0
  160. package/dist/edge/remote-access/cli.js +71 -0
  161. package/dist/edge/remote-access/model.js +32 -0
  162. package/dist/edge/remote-access/rules.js +207 -0
  163. package/dist/edge/remote-access/service.js +203 -0
  164. package/dist/edge/remote-access/store.js +44 -0
  165. package/dist/edge/remote-access/views.js +43 -0
  166. package/dist/extension/slopify-studio-chrome.zip +0 -0
  167. package/dist/extension/slopify-studio-firefox.zip +0 -0
  168. package/dist/host-cli/install.js +2 -2
  169. package/dist/host-cli/open-folder.js +2 -2
  170. package/dist/host-cli/paths.js +2 -4
  171. package/dist/host-cli/server.js +4 -4
  172. package/dist/host-cli/service.js +3 -3
  173. package/dist/host-cli/status.js +7 -7
  174. package/dist/kernel/db/migrations/0063-model-checks.sql +20 -0
  175. package/dist/kernel/db/migrations/0064-template-studio.sql +46 -0
  176. package/dist/kernel/db/migrations/0065-promise-and-assistant-reviews.sql +58 -0
  177. package/dist/kernel/db/migrations/0066-assistant.sql +44 -0
  178. package/dist/kernel/db/migrations/0067-autopilot.sql +6 -0
  179. package/dist/kernel/db/migrations/0068-topic-scores.sql +17 -0
  180. package/dist/kernel/db/migrations/0070-designs.sql +53 -0
  181. package/dist/kernel/db/migrations/0071-design-usage.sql +33 -0
  182. package/dist/kernel/db/migrations/0072-design-templates.sql +33 -0
  183. package/dist/kernel/db/migrations/0073-schedule-design-kind.sql +5 -0
  184. package/dist/kernel/db/migrations/0074-template-bakeoffs.sql +44 -0
  185. package/dist/kernel/db/migrations/0075-social-posts.sql +25 -0
  186. package/dist/kernel/db/migrations/0076-channel-social.sql +5 -0
  187. package/dist/kernel/db/migrations/0077-post-prompts.sql +17 -0
  188. package/dist/kernel/db/migrations/0078-uploaded-from-links.sql +7 -0
  189. package/dist/kernel/db/tx.js +2 -4
  190. package/dist/kernel/errors.js +27 -1
  191. package/dist/kernel/json-answer.js +15 -0
  192. package/dist/kernel/lock.js +4 -9
  193. package/dist/kernel/paths.js +8 -0
  194. package/dist/kernel/pipeline.js +12 -0
  195. package/dist/kernel/ports/assistant-cli.js +4 -0
  196. package/dist/kernel/ports/host-cli.js +3 -0
  197. package/dist/kernel/ports/interest.js +4 -0
  198. package/dist/kernel/ports/languages.js +0 -3
  199. package/dist/kernel/ports/model.js +2 -0
  200. package/dist/kernel/ports/settings-places.js +31 -0
  201. package/dist/kernel/ports/system-speech.js +31 -3
  202. package/dist/kernel/runner/attempt.js +14 -4
  203. package/dist/kernel/runner/audition.js +3 -1
  204. package/dist/kernel/runner/checkpoint-authority.js +2 -1
  205. package/dist/kernel/runner/index.js +8 -10
  206. package/dist/kernel/runner/model-access.js +40 -0
  207. package/dist/kernel/runner/model-check.js +153 -0
  208. package/dist/kernel/runner/providers.js +18 -12
  209. package/dist/kernel/runner/standalone.js +11 -7
  210. package/dist/main.js +338 -21
  211. package/dist/model-catalog.js +20 -0
  212. package/dist/model-checks.js +166 -0
  213. package/dist/patch-notes/4.0.0.md +51 -0
  214. package/dist/patch-notes/4.1.0.md +42 -0
  215. package/dist/patch-notes/index.json +12 -0
  216. package/dist/slices/admission/heads.js +2 -1
  217. package/dist/slices/admission/listing-facts.js +95 -0
  218. package/dist/slices/admission/repo.js +11 -7
  219. package/dist/slices/admission/rules.js +50 -15
  220. package/dist/slices/admission/schema.js +8 -0
  221. package/dist/slices/admission/stage-writes.js +0 -3
  222. package/dist/slices/admission/start.js +48 -31
  223. package/dist/slices/admission/state-words.js +34 -5
  224. package/dist/slices/admission/substitute.js +7 -4
  225. package/dist/slices/agents/attention-posts.js +31 -0
  226. package/dist/slices/agents/attention-templates.js +33 -0
  227. package/dist/slices/agents/attention.js +10 -1
  228. package/dist/slices/agents/connection.js +2 -6
  229. package/dist/slices/agents/model.js +6 -3
  230. package/dist/slices/agents/repo.js +15 -7
  231. package/dist/slices/article/continuation.js +0 -63
  232. package/dist/slices/article/plain.js +3 -2
  233. package/dist/slices/article/segments.js +2 -62
  234. package/dist/slices/assistant/access.js +1 -0
  235. package/dist/slices/assistant/asks.js +80 -0
  236. package/dist/slices/assistant/cost.js +54 -0
  237. package/dist/slices/assistant/gate.js +222 -0
  238. package/dist/slices/assistant/model.js +86 -0
  239. package/dist/slices/assistant/names.js +23 -0
  240. package/dist/slices/assistant/prompt.js +74 -0
  241. package/dist/slices/assistant/repo.js +74 -0
  242. package/dist/slices/assistant/tokens.js +18 -0
  243. package/dist/slices/assistant/turn.js +344 -0
  244. package/dist/slices/autopilot/buffer.js +76 -0
  245. package/dist/slices/autopilot/model.js +14 -0
  246. package/dist/slices/autopilot/notify.js +27 -0
  247. package/dist/slices/autopilot/repo.js +34 -0
  248. package/dist/slices/autopilot/signals.js +194 -0
  249. package/dist/slices/autopilot/warnings.js +85 -0
  250. package/dist/slices/autopilot/weekly.js +100 -0
  251. package/dist/slices/backups/files.js +2 -6
  252. package/dist/slices/backups/repo.js +3 -15
  253. package/dist/slices/backups/service.js +8 -7
  254. package/dist/slices/channels/cast-images.js +3 -2
  255. package/dist/slices/channels/model.js +0 -1
  256. package/dist/slices/channels/rebrand.js +0 -3
  257. package/dist/slices/channels/repo.js +4 -0
  258. package/dist/slices/channels/schema.js +7 -1
  259. package/dist/slices/channels/service.js +10 -0
  260. package/dist/slices/channels/videos.js +3 -15
  261. package/dist/slices/checkpoints/index.js +0 -1
  262. package/dist/slices/control/providers.js +2 -28
  263. package/dist/slices/designs/artwork.js +66 -0
  264. package/dist/slices/designs/budget.js +23 -0
  265. package/dist/slices/designs/calls.js +124 -0
  266. package/dist/slices/designs/check-context.js +38 -0
  267. package/dist/slices/designs/check-text.js +43 -0
  268. package/dist/slices/designs/fields.js +88 -0
  269. package/dist/slices/designs/frames.js +34 -0
  270. package/dist/slices/designs/gate.js +130 -0
  271. package/dist/slices/designs/layout.js +293 -0
  272. package/dist/slices/designs/model.js +35 -0
  273. package/dist/slices/designs/pdf-job.js +23 -0
  274. package/dist/slices/designs/pdf-pages.js +30 -0
  275. package/dist/slices/designs/pdf-runner.js +68 -0
  276. package/dist/slices/designs/pdf-worker.js +24 -0
  277. package/dist/slices/designs/picture-size.js +79 -0
  278. package/dist/slices/designs/pictures.js +55 -0
  279. package/dist/slices/designs/quote.js +24 -0
  280. package/dist/slices/designs/render-args.js +36 -0
  281. package/dist/slices/designs/render-input.js +59 -0
  282. package/dist/slices/designs/render.js +215 -0
  283. package/dist/slices/designs/repo.js +101 -0
  284. package/dist/slices/designs/requests.js +80 -0
  285. package/dist/slices/designs/runner.js +239 -0
  286. package/dist/slices/designs/sample-repo.js +91 -0
  287. package/dist/slices/designs/sample.js +223 -0
  288. package/dist/slices/designs/schema.js +87 -0
  289. package/dist/slices/designs/sections.js +44 -0
  290. package/dist/slices/designs/service.js +233 -0
  291. package/dist/slices/designs/steps-repo.js +102 -0
  292. package/dist/slices/designs/studio-kind.js +39 -0
  293. package/dist/slices/designs/template-checks.js +44 -0
  294. package/dist/slices/designs/template-make.js +118 -0
  295. package/dist/slices/designs/templates.js +218 -0
  296. package/dist/slices/document/fonts.js +2 -1
  297. package/dist/slices/document/model.js +7 -4
  298. package/dist/slices/document/render.js +2 -1
  299. package/dist/slices/document/theme-schema.js +1 -1
  300. package/dist/slices/document/theme.js +49 -3
  301. package/dist/slices/episodes/summarize.js +6 -2
  302. package/dist/slices/estimate/index.js +72 -28
  303. package/dist/slices/estimate/requests.js +4 -4
  304. package/dist/slices/fixes/rules.js +3 -1
  305. package/dist/slices/fonts/catalog.js +5 -3
  306. package/dist/slices/fonts/coverage.js +2 -1
  307. package/dist/slices/fonts/discovery.js +3 -2
  308. package/dist/slices/fonts/files.js +2 -6
  309. package/dist/slices/fonts/index.js +0 -1
  310. package/dist/slices/fonts/sfnt.js +45 -10
  311. package/dist/slices/images/appearance.js +8 -16
  312. package/dist/slices/images/scenes.js +102 -28
  313. package/dist/slices/keywords/digest.js +85 -0
  314. package/dist/slices/keywords/facts.js +92 -0
  315. package/dist/slices/keywords/fill.js +80 -0
  316. package/dist/slices/keywords/model.js +75 -0
  317. package/dist/slices/keywords/rules.js +187 -0
  318. package/dist/slices/keywords/schema.js +28 -0
  319. package/dist/slices/keywords/specs.js +260 -0
  320. package/dist/slices/keywords/values.js +74 -0
  321. package/dist/slices/library/lint.js +29 -12
  322. package/dist/slices/library/model.js +2 -0
  323. package/dist/slices/library/photorealistic.js +4 -12
  324. package/dist/slices/library/rename.js +9 -7
  325. package/dist/slices/library/save.js +14 -10
  326. package/dist/slices/library/slots.js +37 -11
  327. package/dist/slices/library/transfer.js +5 -4
  328. package/dist/slices/library/used-by.js +25 -10
  329. package/dist/slices/loudness/loudnorm.js +53 -12
  330. package/dist/slices/loudness/model.js +3 -2
  331. package/dist/slices/loudness/sentence-level.js +2 -1
  332. package/dist/slices/model-checks/cost.js +61 -0
  333. package/dist/slices/model-checks/listing.js +124 -0
  334. package/dist/slices/model-checks/model.js +20 -0
  335. package/dist/slices/model-checks/record.js +32 -0
  336. package/dist/slices/model-checks/repo.js +120 -0
  337. package/dist/slices/model-checks/rules.js +125 -0
  338. package/dist/slices/model-checks/run.js +143 -0
  339. package/dist/slices/model-checks/service.js +198 -0
  340. package/dist/slices/model-upkeep/model.js +1 -1
  341. package/dist/slices/model-upkeep/switch.js +72 -27
  342. package/dist/slices/model-upkeep/usage.js +39 -13
  343. package/dist/slices/narration/breaths.js +3 -1
  344. package/dist/slices/narration/clean-pieces.js +3 -1
  345. package/dist/slices/narration/concat.js +2 -1
  346. package/dist/slices/narration/pauses-model.js +3 -2
  347. package/dist/slices/narration/peaks.js +3 -4
  348. package/dist/slices/narration/pronunciation-chunks.js +4 -3
  349. package/dist/slices/narration/pronunciation.js +6 -4
  350. package/dist/slices/narration/steering.js +4 -3
  351. package/dist/slices/notifications/notifier.js +4 -3
  352. package/dist/slices/notifications/rules.js +5 -2
  353. package/dist/slices/notifications/settings.js +4 -12
  354. package/dist/slices/notifications/subject.js +4 -3
  355. package/dist/slices/onboarding/copy.js +21 -3
  356. package/dist/slices/onboarding/first-run.js +16 -40
  357. package/dist/slices/onboarding/full-video.js +3 -2
  358. package/dist/slices/onboarding/install.js +6 -4
  359. package/dist/slices/onboarding/model.js +26 -37
  360. package/dist/slices/onboarding/packs.js +22 -22
  361. package/dist/slices/onboarding/preferred-model.js +14 -0
  362. package/dist/slices/onboarding/quick-short.js +105 -65
  363. package/dist/slices/onboarding/sample.js +4 -2
  364. package/dist/slices/onboarding/state.js +9 -11
  365. package/dist/slices/onboarding/template.js +8 -6
  366. package/dist/slices/outputs/add.js +3 -2
  367. package/dist/slices/outputs/service.js +2 -2
  368. package/dist/slices/patch-notes/library.js +4 -3
  369. package/dist/slices/play-drafts/convert.js +4 -0
  370. package/dist/slices/play-drafts/readiness.js +3 -3
  371. package/dist/slices/play-drafts/review-inputs.js +9 -3
  372. package/dist/slices/play-drafts/review.js +5 -4
  373. package/dist/slices/play-drafts/schema.js +4 -0
  374. package/dist/slices/play-drafts/service.js +17 -7
  375. package/dist/slices/project-templates/from-project.js +9 -2
  376. package/dist/slices/project-templates/next-chapter.js +2 -1
  377. package/dist/slices/project-templates/provider-defaults.js +22 -0
  378. package/dist/slices/project-templates/repo.js +6 -1
  379. package/dist/slices/project-templates/setup-sections.js +26 -0
  380. package/dist/slices/project-templates/setup.js +14 -1
  381. package/dist/slices/project-templates/stand-ins.js +22 -0
  382. package/dist/slices/rebuild/activity.js +2 -0
  383. package/dist/slices/rebuild/admission-repo.js +3 -2
  384. package/dist/slices/rebuild/narration-history.js +4 -5
  385. package/dist/slices/rebuild/narration-retry.js +2 -1
  386. package/dist/slices/rebuild/preview-details.js +32 -14
  387. package/dist/slices/rebuild/preview-plan.js +3 -8
  388. package/dist/slices/rebuild/recipe-build.js +8 -3
  389. package/dist/slices/rebuild/recipe-describe.js +3 -3
  390. package/dist/slices/rebuild/recipe-digest.js +58 -0
  391. package/dist/slices/rebuild/recipe-input-schema.js +10 -0
  392. package/dist/slices/rebuild/recipe-keywords.js +71 -0
  393. package/dist/slices/rebuild/recipe-legacy.js +5 -1
  394. package/dist/slices/rebuild/recipe-model.js +4 -0
  395. package/dist/slices/rebuild/recipe-narration-text.js +2 -1
  396. package/dist/slices/rebuild/recipe-preparation.js +4 -4
  397. package/dist/slices/rebuild/recipe-reference.js +8 -4
  398. package/dist/slices/rebuild/recipe-reviews.js +27 -7
  399. package/dist/slices/rebuild/recipe-save.js +8 -5
  400. package/dist/slices/rebuild/recipe-scenes.js +40 -11
  401. package/dist/slices/rebuild/recipe-shorts.js +8 -8
  402. package/dist/slices/rebuild/recipe-social.js +46 -0
  403. package/dist/slices/rebuild/recipe-text.js +64 -20
  404. package/dist/slices/rebuild/recipe-validation.js +102 -31
  405. package/dist/slices/rebuild/recipe-visual.js +55 -16
  406. package/dist/slices/rebuild/recipe-voices.js +3 -2
  407. package/dist/slices/rebuild/recipe-work.js +19 -7
  408. package/dist/slices/rebuild/recipe-youtube.js +4 -3
  409. package/dist/slices/rebuild/recovery-selection.js +3 -1
  410. package/dist/slices/rebuild/recovery.js +9 -8
  411. package/dist/slices/rebuild/remake-outdated.js +5 -5
  412. package/dist/slices/rebuild/repo.js +4 -3
  413. package/dist/slices/rebuild/review-promise.js +25 -0
  414. package/dist/slices/rebuild/review-redo.js +3 -2
  415. package/dist/slices/rebuild/runtime-admission.js +4 -3
  416. package/dist/slices/rebuild/runtime-agent-review.js +11 -5
  417. package/dist/slices/rebuild/runtime-animate.js +10 -9
  418. package/dist/slices/rebuild/runtime-article.js +7 -5
  419. package/dist/slices/rebuild/runtime-checkpoints.js +5 -4
  420. package/dist/slices/rebuild/runtime-document.js +11 -13
  421. package/dist/slices/rebuild/runtime-export-bed.js +8 -12
  422. package/dist/slices/rebuild/runtime-export-edit.js +8 -16
  423. package/dist/slices/rebuild/runtime-export-inputs.js +12 -11
  424. package/dist/slices/rebuild/runtime-export-short.js +9 -5
  425. package/dist/slices/rebuild/runtime-export.js +38 -15
  426. package/dist/slices/rebuild/runtime-figure-card.js +2 -1
  427. package/dist/slices/rebuild/runtime-image.js +8 -12
  428. package/dist/slices/rebuild/runtime-instructions.js +2 -0
  429. package/dist/slices/rebuild/runtime-keywords.js +59 -0
  430. package/dist/slices/rebuild/runtime-lines.js +2 -11
  431. package/dist/slices/rebuild/runtime-local.js +17 -22
  432. package/dist/slices/rebuild/runtime-narration-publication.js +2 -5
  433. package/dist/slices/rebuild/runtime-narration-reuse.js +9 -13
  434. package/dist/slices/rebuild/runtime-narration-text.js +13 -17
  435. package/dist/slices/rebuild/runtime-pictures.js +2 -4
  436. package/dist/slices/rebuild/runtime-piece-label.js +10 -6
  437. package/dist/slices/rebuild/runtime-plan.js +31 -5
  438. package/dist/slices/rebuild/runtime-provider.js +67 -25
  439. package/dist/slices/rebuild/runtime-publication.js +10 -9
  440. package/dist/slices/rebuild/runtime-review.js +39 -33
  441. package/dist/slices/rebuild/runtime-run.js +4 -1
  442. package/dist/slices/rebuild/runtime-shorts.js +31 -50
  443. package/dist/slices/rebuild/runtime-store.js +20 -10
  444. package/dist/slices/rebuild/runtime-subtitles.js +28 -25
  445. package/dist/slices/rebuild/runtime-voices.js +10 -16
  446. package/dist/slices/rebuild/runtime-youtube.js +14 -31
  447. package/dist/slices/rebuild/service-readiness.js +11 -3
  448. package/dist/slices/rebuild/transition-repo.js +6 -5
  449. package/dist/slices/rebuild/work-records.js +6 -0
  450. package/dist/slices/reruns/cascade.js +1 -2
  451. package/dist/slices/reruns/index.js +6 -9
  452. package/dist/slices/research/synthesis.js +3 -2
  453. package/dist/slices/reviews/external-model.js +4 -1
  454. package/dist/slices/reviews/external-repo.js +2 -1
  455. package/dist/slices/reviews/external-rows.js +2 -3
  456. package/dist/slices/reviews/holds.js +5 -4
  457. package/dist/slices/reviews/model.js +32 -11
  458. package/dist/slices/reviews/repo.js +2 -1
  459. package/dist/slices/reviews/rules.js +4 -3
  460. package/dist/slices/reviews/verdict.js +2 -1
  461. package/dist/slices/reviews/view.js +5 -2
  462. package/dist/slices/revisions/downloads.js +4 -5
  463. package/dist/slices/revisions/image-plan.js +1 -1
  464. package/dist/slices/revisions/mutation-assets.js +9 -5
  465. package/dist/slices/revisions/mutation-cues.js +2 -5
  466. package/dist/slices/revisions/mutations.js +3 -3
  467. package/dist/slices/revisions/repo.js +3 -1
  468. package/dist/slices/revisions/schema.js +1 -0
  469. package/dist/slices/revisions/view.js +20 -0
  470. package/dist/slices/run-cost/limits.js +5 -2
  471. package/dist/slices/run-cost/meter.js +12 -5
  472. package/dist/slices/run-cost/panel.js +8 -74
  473. package/dist/slices/run-cost/plan-readings.js +127 -0
  474. package/dist/slices/run-cost/plan-use.js +169 -0
  475. package/dist/slices/run-cost/pricing.js +3 -3
  476. package/dist/slices/run-cost/week.js +32 -4
  477. package/dist/slices/schedules/agenda.js +18 -7
  478. package/dist/slices/schedules/by-date.js +42 -0
  479. package/dist/slices/schedules/calendar.js +5 -0
  480. package/dist/slices/schedules/design-agenda.js +36 -0
  481. package/dist/slices/schedules/design-check.js +41 -0
  482. package/dist/slices/schedules/design-run.js +126 -0
  483. package/dist/slices/schedules/next-run.js +62 -0
  484. package/dist/slices/schedules/prepare.js +18 -2
  485. package/dist/slices/schedules/repo.js +30 -21
  486. package/dist/slices/schedules/rescore.js +35 -0
  487. package/dist/slices/schedules/scheduler.js +13 -3
  488. package/dist/slices/schedules/schema.js +57 -3
  489. package/dist/slices/schedules/score.js +107 -0
  490. package/dist/slices/schedules/service.js +57 -24
  491. package/dist/slices/schedules/topic-list.js +15 -0
  492. package/dist/slices/schedules/topic-scores.js +104 -0
  493. package/dist/slices/schedules/topics.js +53 -41
  494. package/dist/slices/settings/cli-paths.js +4 -6
  495. package/dist/slices/settings/first-run.js +8 -43
  496. package/dist/slices/settings/health.js +30 -15
  497. package/dist/slices/settings/key-test.js +1 -1
  498. package/dist/slices/settings/model-reach.js +3 -17
  499. package/dist/slices/settings/model.js +14 -2
  500. package/dist/slices/settings/playback.js +34 -23
  501. package/dist/slices/settings/probe-read.js +16 -0
  502. package/dist/slices/settings/repo.js +33 -0
  503. package/dist/slices/settings/tutorial.js +2 -2
  504. package/dist/slices/settings/voices.js +4 -12
  505. package/dist/slices/shorts/keep.js +2 -1
  506. package/dist/slices/shorts/pick.js +6 -18
  507. package/dist/slices/shorts/prompts.js +4 -14
  508. package/dist/slices/shorts/render.js +6 -2
  509. package/dist/slices/social/channel.js +44 -0
  510. package/dist/slices/social/defaults.js +17 -0
  511. package/dist/slices/social/due.js +36 -0
  512. package/dist/slices/social/extension.js +18 -0
  513. package/dist/slices/social/fit.js +115 -0
  514. package/dist/slices/social/limits.js +186 -0
  515. package/dist/slices/social/links.js +21 -0
  516. package/dist/slices/social/media.js +132 -0
  517. package/dist/slices/social/model.js +75 -0
  518. package/dist/slices/social/notice.js +19 -0
  519. package/dist/slices/social/pack.js +176 -0
  520. package/dist/slices/social/post-prompt.js +56 -0
  521. package/dist/slices/social/queue.js +31 -0
  522. package/dist/slices/social/repo.js +133 -0
  523. package/dist/slices/social/reshape.js +97 -0
  524. package/dist/slices/social/rules.js +5 -0
  525. package/dist/slices/social/schema.js +70 -0
  526. package/dist/slices/social/serve.js +51 -0
  527. package/dist/slices/social/service.js +129 -0
  528. package/dist/slices/social/settings.js +21 -0
  529. package/dist/slices/social/sources.js +114 -0
  530. package/dist/slices/social/state.js +110 -0
  531. package/dist/slices/social/text.js +149 -0
  532. package/dist/slices/storage/arrange.js +3 -1
  533. package/dist/slices/storage/assets.js +8 -10
  534. package/dist/slices/storage/backup-designs.js +74 -0
  535. package/dist/slices/storage/backup-export.js +8 -3
  536. package/dist/slices/storage/backup-format.js +10 -0
  537. package/dist/slices/storage/backup-import.js +22 -4
  538. package/dist/slices/storage/delete-project.js +6 -5
  539. package/dist/slices/storage/files-location.js +6 -8
  540. package/dist/slices/storage/layout.js +13 -2
  541. package/dist/slices/storage/model.js +3 -0
  542. package/dist/slices/storage/portable.js +17 -12
  543. package/dist/slices/storage/schema.js +2 -0
  544. package/dist/slices/storage/staging-refs.js +2 -1
  545. package/dist/slices/storage/staging.js +6 -9
  546. package/dist/slices/storage/trim.js +26 -9
  547. package/dist/slices/studio/calendar.js +7 -2
  548. package/dist/slices/studio/disclosure.js +4 -4
  549. package/dist/slices/studio/model.js +1 -1
  550. package/dist/slices/studio/pack.js +9 -8
  551. package/dist/slices/studio/pick.js +2 -11
  552. package/dist/slices/studio/plan.js +7 -16
  553. package/dist/slices/studio/queue.js +3 -14
  554. package/dist/slices/studio/releases.js +26 -0
  555. package/dist/slices/studio/settings.js +20 -57
  556. package/dist/slices/studio/videos.js +35 -4
  557. package/dist/slices/style-preview/render.js +37 -16
  558. package/dist/slices/style-preview/schema.js +14 -1
  559. package/dist/slices/style-preview/service.js +2 -1
  560. package/dist/slices/style-preview/settings.js +33 -5
  561. package/dist/slices/subtitles/captions.js +1 -1
  562. package/dist/slices/telemetry/collector-client.js +2 -4
  563. package/dist/slices/telemetry/flush.js +2 -4
  564. package/dist/slices/telemetry/model.js +0 -7
  565. package/dist/slices/telemetry/record.js +10 -3
  566. package/dist/slices/template-studio/anatomy-view.js +161 -0
  567. package/dist/slices/template-studio/anatomy.js +73 -0
  568. package/dist/slices/template-studio/bakeoff-make.js +225 -0
  569. package/dist/slices/template-studio/bakeoff-repo.js +83 -0
  570. package/dist/slices/template-studio/bakeoff.js +333 -0
  571. package/dist/slices/template-studio/budget.js +106 -0
  572. package/dist/slices/template-studio/cards.js +78 -0
  573. package/dist/slices/template-studio/checks.js +322 -0
  574. package/dist/slices/template-studio/document-sample.js +56 -0
  575. package/dist/slices/template-studio/edit.js +15 -0
  576. package/dist/slices/template-studio/for-all.js +161 -0
  577. package/dist/slices/template-studio/free-video.js +31 -0
  578. package/dist/slices/template-studio/free.js +176 -0
  579. package/dist/slices/template-studio/gate.js +40 -0
  580. package/dist/slices/template-studio/hidden.js +20 -0
  581. package/dist/slices/template-studio/jobs.js +79 -0
  582. package/dist/slices/template-studio/loudness.js +111 -0
  583. package/dist/slices/template-studio/make.js +40 -0
  584. package/dist/slices/template-studio/model.js +58 -0
  585. package/dist/slices/template-studio/pack-import.js +253 -0
  586. package/dist/slices/template-studio/pack-samples.js +60 -0
  587. package/dist/slices/template-studio/pack.js +207 -0
  588. package/dist/slices/template-studio/paid-view.js +66 -0
  589. package/dist/slices/template-studio/paid.js +355 -0
  590. package/dist/slices/template-studio/quote.js +155 -0
  591. package/dist/slices/template-studio/ready.js +104 -0
  592. package/dist/slices/template-studio/repo.js +134 -0
  593. package/dist/slices/template-studio/reviews-path.js +58 -0
  594. package/dist/slices/template-studio/runner.js +84 -0
  595. package/dist/slices/template-studio/save.js +236 -0
  596. package/dist/slices/template-studio/say-it-as.js +248 -0
  597. package/dist/slices/template-studio/schedule-gate.js +34 -0
  598. package/dist/slices/template-studio/schedule-price.js +32 -0
  599. package/dist/slices/template-studio/schedule-sample.js +91 -0
  600. package/dist/slices/template-studio/schema.js +243 -0
  601. package/dist/slices/template-studio/scope.js +124 -0
  602. package/dist/slices/template-studio/sections.js +176 -0
  603. package/dist/slices/template-studio/service.js +175 -0
  604. package/dist/slices/template-studio/status.js +191 -0
  605. package/dist/slices/template-studio/topic.js +223 -0
  606. package/dist/slices/thumbnail/by-llm.js +1 -1
  607. package/dist/slices/trash/designs.js +76 -0
  608. package/dist/slices/trash/model.js +13 -4
  609. package/dist/slices/trash/service.js +52 -2
  610. package/dist/slices/tutorials/library.js +3 -2
  611. package/dist/slices/uploads/repo.js +37 -1
  612. package/dist/slices/uploads/rules.js +3 -2
  613. package/dist/slices/video/ass-text.js +17 -0
  614. package/dist/slices/video/audio-export.js +2 -64
  615. package/dist/slices/video/edit-list.js +2 -2
  616. package/dist/slices/video/edit-settings.js +1 -1
  617. package/dist/slices/video/encoding.js +169 -0
  618. package/dist/slices/video/ffmpeg.js +23 -21
  619. package/dist/slices/video/figure-card.js +1 -15
  620. package/dist/slices/video/plan.js +2 -1
  621. package/dist/slices/video/slideshow.js +43 -18
  622. package/dist/slices/voices/attribution.js +3 -2
  623. package/dist/slices/voices/model.js +9 -8
  624. package/dist/slices/voices/palette.js +0 -3
  625. package/dist/slices/voices/script.js +2 -1
  626. package/dist/slices/youtube/answer.js +4 -16
  627. package/dist/slices/youtube/edits-repo.js +3 -12
  628. package/dist/tutorials/AI-CLIs.md +25 -25
  629. package/dist/tutorials/Agents-MCP.md +34 -33
  630. package/dist/tutorials/Assistant.md +42 -0
  631. package/dist/tutorials/Backups.md +7 -7
  632. package/dist/tutorials/Calendar.md +17 -25
  633. package/dist/tutorials/Cast-Library.md +19 -19
  634. package/dist/tutorials/Channels.md +42 -35
  635. package/dist/tutorials/Costs-and-Run-Cost.md +38 -40
  636. package/dist/tutorials/Create-Article.md +114 -0
  637. package/dist/tutorials/Create-Extras.md +112 -0
  638. package/dist/tutorials/Create-Images.md +165 -0
  639. package/dist/tutorials/Create-Narration.md +178 -0
  640. package/dist/tutorials/Create-Overview.md +244 -0
  641. package/dist/tutorials/Create-Video-and-Style.md +144 -0
  642. package/dist/tutorials/Docker.md +3 -3
  643. package/dist/tutorials/Document-Themes.md +32 -32
  644. package/dist/tutorials/Editing-a-Project.md +94 -94
  645. package/dist/tutorials/FAQ.md +18 -18
  646. package/dist/tutorials/First-Launch-and-Welcome.md +50 -64
  647. package/dist/tutorials/Home-and-Projects.md +115 -71
  648. package/dist/tutorials/Home.md +33 -33
  649. package/dist/tutorials/Install.md +14 -13
  650. package/dist/tutorials/Intros-and-Outros.md +33 -34
  651. package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +62 -58
  652. package/dist/tutorials/Keywords-Slopify-Fills.md +87 -0
  653. package/dist/tutorials/Models.md +53 -21
  654. package/dist/tutorials/Multiple-Voices.md +41 -40
  655. package/dist/tutorials/Narration-Aliases-and-Glossary.md +14 -14
  656. package/dist/tutorials/Notifications.md +27 -17
  657. package/dist/tutorials/Other-Languages.md +15 -15
  658. package/dist/tutorials/PDF-Documents.md +38 -29
  659. package/dist/tutorials/Posting-to-Social-Sites.md +121 -0
  660. package/dist/tutorials/Project-Page.md +118 -120
  661. package/dist/tutorials/Prompts-and-Templates.md +84 -0
  662. package/dist/tutorials/Prompts.md +48 -44
  663. package/dist/tutorials/Providers-and-Keys.md +105 -98
  664. package/dist/tutorials/Publishing-to-YouTube.md +31 -31
  665. package/dist/tutorials/Recovery-and-Retries.md +31 -31
  666. package/dist/tutorials/Remote-Access.md +63 -0
  667. package/dist/tutorials/Reviews-and-Checkpoints.md +98 -90
  668. package/dist/tutorials/Schedules.md +46 -27
  669. package/dist/tutorials/Settings-Reference.md +194 -174
  670. package/dist/tutorials/Shorts.md +34 -33
  671. package/dist/tutorials/Start-at-Login.md +3 -3
  672. package/dist/tutorials/Studio-Extension.md +22 -24
  673. package/dist/tutorials/Template-Studio.md +128 -0
  674. package/dist/tutorials/Templates.md +51 -77
  675. package/dist/tutorials/Trash.md +4 -4
  676. package/dist/tutorials/Troubleshooting.md +44 -44
  677. package/dist/tutorials/Uninstalling-and-Moving.md +5 -5
  678. package/dist/tutorials/Updating-and-Patch-Notes.md +18 -18
  679. package/dist/tutorials/Video-Editing.md +34 -34
  680. package/dist/tutorials/Where-Your-Files-Live.md +10 -10
  681. package/dist/tutorials/YouTube-Description.md +26 -26
  682. package/dist/tutorials/Your-First-Short.md +35 -35
  683. package/dist/tutorials/_Sidebar.md +19 -14
  684. package/dist/updater/work-in-progress.js +42 -12
  685. package/dist/web/assets/index-BNftKQrA.css +1 -0
  686. package/dist/web/assets/index-Cpa58woP.js +459 -0
  687. package/dist/web/assets/pdf-BKh8f7R6.js +56 -0
  688. package/dist/web/assets/pdf.worker.min-BmVo14Nb.mjs +28 -0
  689. package/dist/web/assets/pdf.worker.min-D7i8o3wR.js +1 -0
  690. package/dist/web/index.html +2 -2
  691. package/package.json +6 -2
  692. package/dist/slices/article/provided-entries.js +0 -66
  693. package/dist/slices/article/run.js +0 -145
  694. package/dist/slices/images/run.js +0 -234
  695. package/dist/slices/narration/legacy-plan.js +0 -58
  696. package/dist/slices/narration/run.js +0 -270
  697. package/dist/slices/rebuild/runtime-actions.js +0 -90
  698. package/dist/slices/research/run.js +0 -224
  699. package/dist/slices/subtitles/prepare.js +0 -194
  700. package/dist/slices/subtitles/transcript.js +0 -34
  701. package/dist/slices/thumbnail/run.js +0 -219
  702. package/dist/slices/video/audio-inputs.js +0 -33
  703. package/dist/slices/video/reuse-audio.js +0 -62
  704. package/dist/slices/video/run.js +0 -78
  705. package/dist/slices/video/write-export.js +0 -158
  706. package/dist/slices/video/write-subtitles.js +0 -59
  707. package/dist/tutorials/Library-Overview.md +0 -76
  708. package/dist/tutorials/Play-Images.md +0 -161
  709. package/dist/tutorials/Play-Narration.md +0 -167
  710. package/dist/tutorials/Play-Outputs.md +0 -109
  711. package/dist/tutorials/Play-Overview.md +0 -227
  712. package/dist/tutorials/Play-Title-and-Article.md +0 -136
  713. package/dist/tutorials/Play-Video-and-Style.md +0 -143
  714. package/dist/web/assets/index-BadsoORk.css +0 -1
  715. package/dist/web/assets/index-D8LqNsCl.js +0 -326
  716. package/dist/web/assets/pdf-T7MCwjIv.js +0 -54
  717. package/dist/web/assets/pdf.worker.min-Dswkl-cV.mjs +0 -29
  718. package/dist/web/assets/pdf.worker.min-zC6nfbxG.js +0 -1
@@ -1,99 +1,75 @@
1
1
  # Templates
2
2
 
3
- A template is a saved Play setup: prompts, voice, images, style, outputs, reviews and checkpoints, under a name. Pick it on Play, type a topic, and the video is set up the way you like it. Schedules run templates too, so a template is also the recipe every scheduled video follows.
3
+ A template is a saved setup: prompts, voice, images, style, extras, pauses and checks, under a name. Start from it on Create, type a topic, and the video is set up the way you like it. Schedules run templates too, so a template is also the recipe every scheduled video follows.
4
4
 
5
- **Where to find it:** **Library → Templates**. You also pick templates at the top of **Play**, save them from Play's right rail or a project's **More** menu, and move them between channels on a channel's **Templates** tab.
5
+ Set a template up section by section, with a live sample beside every setting, in **Edit template** (see [Edit template](Template-Studio)).
6
+
7
+ **Where to find it:** **Templates** in the rail. You also pick templates under **Start from** on Create, save them with Create's **Save as template** or a project's **More** menu, and move them between channels on a channel's **Templates** tab.
8
+
9
+ ## The Templates page
10
+
11
+ Two tabs: **Video templates** (with how many you have) and **Poster templates** (posters, flyers and social sizes). The header holds **Add starter templates**, while a starter is left to add, and **Import a template file (.zip)**. With seven or more templates, **Search templates** and a sort menu sit above the cards; with two or more channels, **Show templates of** narrows them to one channel.
12
+
13
+ Each video template is a card: a still from its sample once it has one, its name in full, one line of what it makes (for example "Landscape 16:9 · Voice: History narrator (storyteller), OpenAI · about 2,200 words · captions on the video · 2 shorts"), what it **Asks for**, its channel and, once schedules run it, how they run it (for example **Used by 1 schedule**). Pressing its name or its still opens Edit template. Its actions:
14
+
15
+ | Action | What it does |
16
+ |---|---|
17
+ | **Make a video** | Opens Create with a fresh draft made from the template. Nothing starts until you press **Make the video**. |
18
+ | **Edit template** | Opens the template's editor, section by section, with a sample beside the settings. See [Edit template](Template-Studio). |
19
+ | **More** → **Duplicate** | Makes a copy in the same channel, named "<name> copy", then "<name> copy 2" and so on. |
20
+ | **More** → **Versions** | Every saved version (see [Versions](#versions)). |
21
+ | **More** → **Export as a file (.zip)** | Saves the template as a `<name>.slopify-template.zip` file you can import on another computer with **Import a template file (.zip)**. |
22
+ | **More** → **Delete…** | Asks first, then moves the template to the trash (see [Delete a template](#delete-a-template)). |
23
+
24
+ With no templates yet, the page says what a template is for and offers **Add starter templates**.
6
25
 
7
26
  ## What a template keeps
8
27
 
9
28
  | Kept | Left out |
10
29
  |---|---|
11
- | Every Play setting and every checkpoint choice | The topic you typed: keywords the project title names, such as `{{Topic}}`, are saved empty |
12
- | A copy of each prompt the setup uses (article, image, thumbnail, description, shorts and so on) | Extra videos you queued with **Add topic** |
30
+ | Every setting of Create and every pause and check | The topic you typed: keywords the project title names, such as `{{Topic}}`, are saved empty |
31
+ | A copy of each prompt the setup uses (article, image, thumbnail, description, shorts and so on) | Extra videos you added with **Another topic** |
13
32
  | A copy of each picked intro and outro | Uploaded fonts |
14
33
  | Values of the other keywords, such as a word count | Uploaded files keep their names but must be attached again when you use the template |
15
34
  | The channel it belongs to | |
16
35
 
17
- Because the template keeps copies of its prompts, editing a prompt in the Library later does not change a template you already saved. Save the template again to pick up the new prompt.
36
+ Because the template keeps copies of its prompts, editing a prompt on Prompts later does not change a template you already saved. Save the template again to pick up the new prompt.
18
37
 
19
- ## Save a template from Play
38
+ ## Save a template from Create
20
39
 
21
- 1. Set up a video on [Play](Play-Overview) the way you want every video of this kind to look.
22
- 2. In the right rail, press **Save as template**.
40
+ 1. Set up a video on [Create](Create-Overview) the way you want every video of this kind to look.
41
+ 2. Press **Save as template** in the page header.
23
42
  3. Type a **Template name** (up to 120 characters). The placeholder suggests the title without its keywords.
24
- 4. Read the list under the name. It says what is left out, such as the topic you typed and any extra videos. If the title names no keyword, it says every keyword keeps its value.
25
- 5. Press **Save template**. The template appears on Play's **Template** picker and in **Library → Templates**.
43
+ 4. Read the line under the name. It says what is left out, such as the topic you typed.
44
+ 5. Press **Save template**. The template appears under Create's **Start from** and on **Templates**.
26
45
 
27
46
  ## Save a template from a finished project
28
47
 
29
- You can turn any project's current setup into a template, which is handy after you have tuned a project with **Edit project**.
48
+ You can turn any project's current setup into a template, which is handy after you have tuned a project with **Edit settings**.
30
49
 
31
50
  1. Open the project.
32
- 2. Open the **More** menu (or press `Ctrl+K` and search for **Save as template**).
51
+ 2. Press **Save as template…** under the project's status (or press `Ctrl+K` and search for **Save as template**).
33
52
  3. Type a **Template name** (up to 120 characters) and press **Save template**.
34
53
 
35
- The template takes the setup of the revision you are looking at.
36
-
37
- ## Save a template from Library → Templates
38
-
39
- 1. Open **Library → Templates** and press **Save a setup**.
40
- 2. Under **Saved Play draft**, choose a draft. Only drafts saved in Play are listed; open Play and set one up first if the list is empty. The draft itself is not changed.
41
- 3. Type a **Template name** (up to 120 characters).
42
- 4. Pick the **Channel**. The default, **The draft's channel**, is the draft's own channel, or its template's channel when it has none.
43
- 5. Press **Save template**.
54
+ The template takes the settings of the version you are looking at.
44
55
 
45
56
  ## Use a template
46
57
 
47
- **From Play:**
58
+ **From Create:**
48
59
 
49
- 1. Open **Play**.
50
- 2. Pick the template in the **Template** field at the top. Play opens a fresh draft made from it and carries over the topic you already typed.
51
- 3. Type the topic, check the rows, and press **Start run**.
60
+ 1. Open **Create**.
61
+ 2. Pick the template under **Start from**. Create opens a fresh draft made from it and carries over the topic you already typed.
62
+ 3. Type the topic, check the rows, and press **Make the video**.
52
63
 
53
- **From Library → Templates:**
54
-
55
- 1. Find the template in the list.
56
- 2. Press **Use in Play**. Slopify makes a new Play draft from the template and opens it. Nothing starts until you press **Start run**.
64
+ **From Templates or Home:** press **Make a video** on the template. Create opens with a fresh draft made from it.
57
65
 
58
66
  Keywords the project title names start empty so you can type this video's topic. Uploaded files keep their names but must be attached again.
59
67
 
60
- ## The row actions
61
-
62
- Every template row has the same actions as the other Library lists, always in this order:
63
-
64
- | Action | What it does |
65
- |---|---|
66
- | **Edit** | Picks the template and shows its keywords beside the list (below). To change its settings, press **Use in Play**, change the draft, then **Save a setup**. |
67
- | **Duplicate** | Makes `<name> copy` in the same channel ("Duplicated as …"). |
68
- | **Use in Play** | Makes a fresh Play draft from the template and opens it. |
69
- | **History** (clock icon) | Every saved version, compared with the current one, with **Restore** (see [History](#history)). |
70
- | **Delete** (bin icon) | Asks first, then moves the template to the trash (see [Delete a template](#delete-a-template)). |
71
-
72
- A press anywhere on a row picks it. The pencil beside a template's name renames it in the row (see [Rename a template](#rename-a-template)).
73
-
74
- ## See a template's keywords
75
-
76
- Pick a template (or press **Edit**) and its keywords show beside the list: each keyword, whether it is a topic keyword (saved empty) or a setting-like keyword that keeps its value, and which prompts or fields it feeds. This is the same list Play and Edit project show. With nothing picked it says "Pick a template to see the keywords it fills."; a template with none says "No keywords: the prompts and the title name none."
77
-
78
- ## Rename a template
79
-
80
- 1. Press the pencil (**Rename <name>**) beside the template's name.
81
- 2. Type the new name (up to 120 characters) and press **Save name** or Enter. `Esc` or **Cancel** keeps the old name.
82
-
83
- The notice says "Renamed “A” to “B”." with **Undo**. A rename saves a new version of the template; its settings stay as they are.
84
-
85
- ## History
86
-
87
- Press the clock icon (**History of <name>**) on a template's row. The drawer has:
88
-
89
- - **Versions**: every version, newest first, as **Version N** with its name and date. The newest is marked **Current**; the others have **Restore**.
90
- - **Compare with the current version**: the version you picked, side by side with the current one. A rename between them is said above ("Renamed from … to …").
91
-
92
- **Restore** saves the old version again as a new version ("Restored version 2 of … as version 5."), so nothing after it is lost. Schedules keep the version they were set up with; see [Versions](#versions).
68
+ ## Versions
93
69
 
94
- ## Filter by channel
70
+ Every save of a template is a new version. **More** → **Versions** lists them, newest first, as **Version N** with its name and date, the newest marked current, the others with **Restore**, and **Compare with the current version** beside the list. **Restore** saves the old version again as a new version ("Restored version 2 of … as version 5."), so nothing after it is lost.
95
71
 
96
- Use **Show templates of** above the list to see only one channel's templates, or **All channels**. This only changes what you see. A template's channel is the one a draft made from it runs in; see [Channels](Channels).
72
+ Schedules run the template's newest version until you approve one for schedules in Edit template (**More** → **Approve for schedules**); from then on they run the approved one. See [Edit template](Template-Studio#approve-for-schedules) and [Schedules](Schedules).
97
73
 
98
74
  ## Move a template to another channel
99
75
 
@@ -103,43 +79,41 @@ Use **Show templates of** above the list to see only one channel's templates, or
103
79
 
104
80
  The template and every schedule that runs it move together. Their next runs use the new channel's brand kit, cast and series brief. Projects already made keep what they were made with. Moving a template does not make a new version of it.
105
81
 
106
- ## Versions
107
-
108
- Each template shows **Version N · updated** with the date. Schedules remember the version they were set up with; to make a schedule use a newer version, pick the template again in the schedule's **Template** field. See [Schedules](Schedules).
109
-
110
82
  ## Delete a template
111
83
 
112
- 1. Press the bin icon (**Delete <name>**) on the template's row.
84
+ 1. Open the template's **More** and choose **Delete…**.
113
85
  2. Confirm with **Delete template**.
114
86
 
115
- The template goes to **Settings → Backup & storage → Trash** for 30 days, where you can restore it. A template that a schedule still runs can't be deleted: delete or change that schedule first. See [Trash](Trash).
87
+ The template goes to **Settings → Trash** for 30 days, where you can restore it. Projects already made from it keep their setup. A template that a schedule still runs can't be deleted: delete or change that schedule first. See [Trash](Trash).
116
88
 
117
89
  ## Retired models
118
90
 
119
- When a template picks a model that has been retired, its row says so, for example "Images … is retired.", with **Switch to <model>**. One press switches the template to the replacement, as in Settings → **Models**, and the schedules that run it follow. When there is no replacement, the row says to choose another model in Settings → **Models** or edit the template. See [Models](Models#switch-away-from-a-retired-model).
91
+ When a template picks a model that has been retired, it says so, for example "Images … is retired.", with **Switch to <model>**. One press switches the template to the replacement, as in Settings → **Models**, and the schedules that run it follow. When there is no replacement, it says to choose another model in Settings → **Models** or edit the template. See [Models](Models#switch-away-from-a-retired-model).
120
92
 
121
- ## Starter packs
93
+ ## Starter templates
122
94
 
123
- **Library → Templates → Add pack** opens **Add a starter pack**. Press **Add pack** on a pack's row; it then reads **Added**. Each pack adds prompts, a suggested voice and a ready-made Play template for one kind of channel:
95
+ **Templates → Add starter templates** offers a ready-made set for one kind of channel. Each adds prompts, a suggested voice and a ready-made template, named `<kind> starter`:
124
96
 
125
- | Pack | What it is for |
97
+ | Starter | What it is for |
126
98
  |---|---|
127
99
  | **Sleep lore** | Slow, gentle myths and legends told to fall asleep to |
128
100
  | **True crime** | Measured, factual retellings of real cases and their investigations |
129
101
  | **History** | Narrative history of people, places and events, told like a documentary |
130
102
  | **Science explainers** | Clear, friendly explanations of how the world works, one idea at a time |
131
103
 
132
- Adding a pack twice changes nothing, and a pack never replaces a prompt or template of yours with the same name. The first-run screen offers the same packs (**Add to library**); see [First launch and welcome](First-Launch-and-Welcome#starter-packs).
104
+ Adding one twice changes nothing, and it never replaces a prompt or template of yours with the same name. The first-run screen offers the same starters; see [First launch and welcome](First-Launch-and-Welcome#starter-templates).
133
105
 
134
106
  ## Tips
135
107
 
136
108
  - Make one template per kind of video (a long documentary, a 60-second short, a podcast) rather than one template you change each time.
137
- - Put the topic keyword in the title, like `History: {{Topic}}`. Then the template saves it empty, Play asks for it, and a schedule can fill it from its topic list.
109
+ - Put the topic keyword in the title, like `History: {{Topic}}`. Then the template saves it empty, Create asks for it, and a schedule can fill it from its topic list.
138
110
  - Keep settings you vary per video, such as a word count, as their own keywords. A schedule can set them per topic in its table.
139
111
 
140
112
  ## Related pages
141
113
 
142
- - [Play overview](Play-Overview)
114
+ - [Edit template](Template-Studio)
115
+ - [Create Overview](Create-Overview)
116
+ - [Prompts and Templates](Prompts-and-Templates)
143
117
  - [Schedules](Schedules)
144
118
  - [Channels](Channels)
145
119
  - [Prompts](Prompts)
@@ -9,8 +9,8 @@ Deleting something in Slopify does not remove it at once. Deleted projects, prom
9
9
  | Kind | Shown as | Deleted from |
10
10
  | --- | --- | --- |
11
11
  | Project | Project | Projects (the delete button on a project's row, then **Delete project**) |
12
- | Library prompt | Prompt · *type* (for example Prompt · article) | Library → Prompts |
13
- | Intro or outro | Intro or Outro | Library → Intros & outros |
12
+ | Prompt | Prompt · *type* (for example Prompt · article) | Prompts |
13
+ | Intro or outro | Intro or Outro | Prompts → Intros and Outros |
14
14
  | Template | Template | Templates |
15
15
  | Schedule | Schedule | Schedules |
16
16
 
@@ -29,7 +29,7 @@ It comes back as it was. A few kinds have their own rules:
29
29
  | Item | What happens on restore |
30
30
  | --- | --- |
31
31
  | Prompt, intro/outro or template whose name was taken meanwhile | It comes back as "Name (restored)", then "Name (restored 2)" and so on. The message says which name it got. A renamed template gets a new version. |
32
- | Project that was waiting its turn (a queued batch item, or held at a checkpoint) | It was held while in the trash and picks up where it was. |
32
+ | Project that was waiting its turn (queued behind other videos, or held at a pause) | It was held while in the trash and picks up where it was. |
33
33
  | Schedule | It comes back **paused**, with no next run. Press **Resume** on Schedules to run it again. |
34
34
  | Schedule whose template is also in the trash | Restore the template first (it is listed in the trash too), then the schedule. |
35
35
  | Schedule whose template was removed for good | It cannot be restored: it has nothing to run. **Delete now** removes it from the trash. |
@@ -58,7 +58,7 @@ A project's disk space is freed only when it leaves the trash. Settings → **Ba
58
58
 
59
59
  | Situation | What to do |
60
60
  | --- | --- |
61
- | A project that is still running | Open the project and use **More project actions → Cancel the run…** first. On Projects the delete button says "Cancel the run first, then delete it." |
61
+ | A project that is still running | Open the project and press **Cancel the run…** under its status first. On Projects the delete button says "Cancel the run first, then delete it." |
62
62
  | A template that a schedule (not in the trash) uses | Delete that schedule first. |
63
63
 
64
64
  ## Messages you may see
@@ -2,31 +2,31 @@
2
2
 
3
3
  Most problems in Slopify show up as a failed step on the project page with a message that says what failed and where to fix it. This page collects the common ones, grouped by where you meet them, with the fix for each.
4
4
 
5
- **Where to find it:** failed steps show on the project page (the right rail and the step's section, under **Error details**). Startup problems show in the terminal that started Slopify. **Download diagnostics** is on every Settings section.
5
+ **Where to find it:** failed steps show on the project page (the title row's next action and the step's part, under **Error details**). Startup problems show in the terminal that started Slopify. **Download diagnostics** is at the foot of Settings → **About** and in the **Help** menu.
6
6
 
7
7
  ## First steps for any problem
8
8
 
9
9
  1. Read the message. Slopify's messages name the screen or the command that fixes them.
10
10
  2. On a project, press the next action button. For a failed step it is the fix, or **Try ... again**, which keeps everything already made. See [Recovery and Retries](Recovery-and-Retries).
11
11
  3. Reload the page. A lot of "couldn't load" messages clear with a reload.
12
- 4. If it keeps happening, open Settings and press **Download diagnostics**, then attach the file to a bug report.
12
+ 4. If it keeps happening, press **Download diagnostics** (Settings → **About**, or the **Help** menu), then attach the file to a bug report.
13
13
 
14
14
  ### Download diagnostics
15
15
 
16
- **Download diagnostics** saves `slopify-diagnostics.json`: the Slopify version, your system and Node version, which providers are set up or found, the project count and the state of the model catalogue. It never holds your keys, prompts or project content.
16
+ **Download diagnostics** saves `slopify-diagnostics.json`: the Slopify version, your system and Node version, which services are set up or found, the project count and the state of the model list. It never holds your keys, prompts or project content.
17
17
 
18
- ## Provider keys and accounts
18
+ ## Service keys and accounts
19
19
 
20
20
  | Message (or part of it) | Cause | Fix |
21
21
  | --- | --- | --- |
22
- | "*Provider* did not accept the API key ... The key may be wrong, expired or revoked" | The key is wrong or was revoked. | Paste a current key in Settings → **Providers**, save, then press **Try ... again** on the project. The fix-it button **Open Settings → Providers → *provider*** takes you there. |
23
- | "No *provider* API key is saved. Add one in Settings → Providers, then use Try again." | The project uses a provider with no key. | Add the key, or switch the project to another provider in **Edit project → Providers**. |
24
- | "*Provider* says the account is out of credits" | Your provider account has no balance. | Add credits on the provider's website, then try again. |
22
+ | "*Service* did not accept the API key ... The key may be wrong, expired or revoked" | The key is wrong or was revoked. | Paste a current key in Settings → **Keys & services**, save, then press **Try ... again** on the project. The fix-it button **Open Settings → Keys & services → *service*** takes you there. |
23
+ | "No *service* API key is saved. Add one in Settings → Keys & services, then use Try again." | The project uses a service with no key. | Add the key, or switch the project to another service in **Edit settings** (under **Written by** in Article, in Narration or in Images). |
24
+ | "*Service* says the account is out of credits" | Your account with that service has no balance. | Add credits on the service's website, then try again. |
25
25
  | "Google gives this API key no image quota for this model" | The Google project behind the key has no quota for that image model. | Enable billing or quota in Google's console, or pick another image model. |
26
- | "Slopify could not load this provider's model list. Check the API key in Settings → Providers and your internet connection, then refresh the list." | The model list could not be fetched. | Check the key and your connection, then refresh. |
27
- | "Save this provider's API key in Settings → Providers to load its models." | No key yet. | Save the key first. |
26
+ | "Slopify could not load this provider's model list. Check the API key in Settings → Keys & services and your internet connection, then refresh the list." | The model list could not be fetched. | Check the key and your connection, then refresh. |
27
+ | "Save this provider's API key in Settings → Keys & services to load its models." | No key yet. | Save the key first. |
28
28
 
29
- Keys and how to get them: [Providers and Keys](Providers-and-Keys).
29
+ Keys and how to get them: [Keys and Services](Providers-and-Keys).
30
30
 
31
31
  ## AI CLIs (Claude Code, Codex, Antigravity)
32
32
 
@@ -36,31 +36,31 @@ Keys and how to get them: [Providers and Keys](Providers-and-Keys).
36
36
  | "Your Codex plan's usage limit is used up ... Slopify waits for it to reset and then carries on by itself." (also Claude and Antigravity) | Nothing to do: the run waits instead of failing. The project, Home, Projects and the Calendar say "Waiting for Codex limits (resets at 14:00)". See [Recovery and Retries](Recovery-and-Retries#waiting-for-cli-plan-limits). |
37
37
  | "The *CLI* stopped without answering" | Run the CLI in a terminal to check it works and is signed in, then try again. |
38
38
  | "Slopify could not hand the whole prompt to the CLI, so it cannot tell what the CLI worked on (it may already have used your quota)." | Use **Try again**. This is not retried automatically, so you choose whether to spend the quota again. |
39
- | "No Codex model is chosen for images." | Choose a model (or Codex default) for images in **Edit project → Providers**, then try again. |
40
- | "Slopify could not get the model list from the *CLI* CLI." | Check the CLI is installed and signed in (Settings → Providers), refresh the list, or type an exact model ID. |
41
- | A CLI shows as not installed in Settings | Install the CLI so it is on your `PATH`, or, in Docker, rerun the Docker install after installing or moving a CLI so the host helper finds it. Then press **Check again** on its row under **Health check**. |
42
- | "The Antigravity CLI tried to use a tool Slopify does not allow (it said: …), so it gave no answer." | Headless `agy` refuses page reading, the browser and commands, and then ends its turn with no text. Press **Try again**. If it keeps happening, choose another model or text provider in the **Providers** section of **Edit project**. |
43
- | "The Antigravity CLI answered with no text." | Press **Try again**. If it keeps happening, run `agy` in a terminal to check it works, or choose another model in the **Providers** section of **Edit project**. |
44
- | "The Antigravity CLI is busy: Google's capacity for this model is used for the moment…" | Nothing to do: Slopify tries again by itself shortly. If it keeps happening, run fewer projects at once or choose another model in the **Providers** section of **Edit project**. |
39
+ | "No Codex model is chosen for images." | Choose a model (or Codex default) under **Images by** in **Edit settings** → **Images**, then try again. |
40
+ | "Slopify could not get the model list from the *CLI* CLI." | Check the CLI is installed and signed in (Settings → Keys & services), refresh the list, or type an exact model ID. |
41
+ | A CLI shows as not installed in Settings | Install the CLI so it is on your `PATH`, or, in Docker, rerun the Docker install after installing or moving a CLI so the host helper finds it. Then press **Check every service** on Settings → **Keys & services**, or **Check again** on its row. |
42
+ | "The Antigravity CLI tried to use a tool Slopify does not allow (it said: …), so it gave no answer." | Headless `agy` refuses page reading, the browser and commands, and then ends its turn with no text. Press **Try again**. If it keeps happening, choose another model or writing service under **Written by** in **Edit settings** → **Article**. |
43
+ | "The Antigravity CLI answered with no text." | Press **Try again**. If it keeps happening, run `agy` in a terminal to check it works, or choose another model under **Written by** in **Edit settings** → **Article**. |
44
+ | "The Antigravity CLI is busy: Google's capacity for this model is used for the moment…" | Nothing to do: Slopify tries again by itself shortly. If it keeps happening, run fewer projects at once or choose another model under **Written by** in **Edit settings** → **Article**. |
45
45
  | "The Antigravity CLI is not signed in…" | Run `agy` in a terminal, sign in with your Google account, then press **Try again**. |
46
- | A run stops with "The chosen model is not available…" after the move from Gemini CLI | The old Gemini CLI model ids (for example `gemini-2.5-pro`) are not in the Antigravity CLI list. Run `agy models` and pick a model in **Edit project → Providers**. |
46
+ | A run stops with "The chosen model is not available…" after the move from Gemini CLI | The old Gemini CLI model ids (for example `gemini-2.5-pro`) are not in the Antigravity CLI list. Run `agy models` and pick a model under **Written by** in **Edit settings** → **Article**. |
47
47
 
48
48
  See [AI CLIs](AI-CLIs).
49
49
 
50
- ## Provider refusals, models and timeouts
50
+ ## Refusals, models and timeouts
51
51
 
52
52
  | Message (or part of it) | Fix |
53
53
  | --- | --- |
54
- | "*Provider* refused to make this image under its content rules" | Press **Soften and retry**, or reword the image prompt in **Edit project → Images**, or choose another image provider. |
55
- | A content filter refused a text prompt | Press **Edit the prompt** and reword it in **Edit project → Prompts**. |
56
- | "The chosen model may not exist or not be available to your account" / "The model for ... is no longer offered." | Press **Switch model**, pick another model in **Edit project → Providers**, save, try again. See [Models](Models). |
57
- | "The AI model did not answer within 120 seconds. It may be overloaded" (also the narration provider, image provider or image-to-video model) | Wait a few minutes, then **Try again**, or choose another model. Slopify already retried several times before showing this. |
58
- | "*Provider* sent back something that is not a PNG or JPEG image" | Use **Try again**; if it keeps happening, choose another image model. |
59
- | "Check that voice ... still exists in Settings → Voices and that each narration part fits the model's length limit" | The voice was removed, or a chunk is too long for the model. Pick a saved voice, or lower **Chunking** in **Edit project → Providers**. |
60
- | An animated image failed ("choose another image-to-video model under Animate images in Edit project → Inputs → Look") | Try again, or pick another model under **Animate images**. The image stays still meanwhile and is listed under **Render notes**. |
54
+ | "*Service* refused to make this image under its content rules" | Press **Soften and retry**, or reword the image prompt in **Edit settings** → **Images**, or choose another image service. |
55
+ | A content filter refused a text prompt | Press **Edit the prompt** and reword the prompt in **Edit settings**, in the section of the step that failed. |
56
+ | "The chosen model may not exist or not be available to your account" / "The model for ... is no longer offered." | Press **Switch model**, pick another model in **Edit settings** (under **Written by**, **Read by** or **Images by**), save, try again. See [Models](Models). |
57
+ | "The … did not answer within … seconds. It may be overloaded" (the AI model, the voice service, the image service or the image-to-video model) | Wait a few minutes, then **Try again**, or choose another model. Slopify already retried several times before showing this. |
58
+ | "*Service* sent back something that is not a PNG or JPEG image" | Use **Try again**; if it keeps happening, choose another image model. |
59
+ | "Check that voice ... still exists in Settings → Voices and that each narration part fits the model's length limit" | The voice was removed, or a chunk is too long for the model. Pick a saved voice, or split the narration into smaller parts (**Split the narration by** in **Edit settings** → **Narration**). |
60
+ | An animated image failed ("choose another image-to-video model under Animate images …") | Try again, or pick another model under **Animate images** (**Edit settings** → **Video and style** → **Look**). The image stays still meanwhile, and the Video part says so in its notes. |
61
61
  | Rate limit messages (429) | Nothing to do: Slopify waits and tries again by itself. |
62
62
 
63
- ## ffmpeg, captions and rendering
63
+ ## ffmpeg, captions and making the video
64
64
 
65
65
  Slopify ships its own ffmpeg; you do not need to install one. In Docker it is inside the image.
66
66
 
@@ -68,13 +68,13 @@ Slopify ships its own ffmpeg; you do not need to install one. In Docker it is in
68
68
  | --- | --- |
69
69
  | "Slopify can't find ffmpeg ... its bundled copy is missing for this computer." | Reinstall Slopify, or set `SLOPIFY_FFMPEG` to the path of an ffmpeg program. On first start Slopify also tries to download the same build into `<data-dir>/bin/`; if that fails, check your connection and your antivirus quarantine. |
70
70
  | "Slopify could not start ffmpeg ..." | Reinstall Slopify. If you set `SLOPIFY_FFMPEG`, check it points to a working ffmpeg. |
71
- | "The audio/video export failed (ffmpeg exited with code ...)" | Open **Error details**: it quotes what ffmpeg could not do, for example an input file it could not open. Replace that file (an uploaded image or clip in **Edit project → Images**), or try again. |
72
- | "Slopify couldn't measure the loudness of the narration" | Try again. If it happens again, turn off **Level the volume** in **Edit project → Inputs → Pauses and volume**, then download diagnostics and report it. |
73
- | "The style preview couldn't render ... Press Render again." | Press **Render again**. If it fails again, download diagnostics and report it. |
74
- | "The free subtitle model could not be downloaded" / "download was interrupted" / "failed download verification" | The caption model (378 MB by default, the size chosen in Settings → Production defaults → **Subtitle timing model**) downloads on first use. Check your connection, then **Continue** the run, or pick a smaller model there. `SLOPIFY_NO_MODEL_PREFETCH` only skips the download at start; captions still need it. |
75
- | "Captions can't be edited until the current narration has finished and its subtitle timing is ready." | Let the narration and subtitle timing finish, then edit captions. |
76
- | "The saved subtitle timing doesn't match the current narration." | Do what the message says: make the subtitle timing again (More → make it again), then edit the captions. |
77
- | "Subtitles recovered after missing narration (N)" under the video | Some transcript passages could not be matched to the audio and were left out of the captions. The audio is fine. Review those passages before sharing. |
71
+ | "The audio/video export failed (ffmpeg exited with code ...)" | Open **Error details**: it quotes what ffmpeg could not do, for example an input file it could not open. Replace that file (an uploaded image or clip in **Edit settings** → **Images**), or try again. |
72
+ | "Slopify couldn't measure the loudness of the narration" | Try again. If it happens again, turn off **Level the volume** in **Edit settings** → **Video and style** → **Sound polish**, then download diagnostics and report it. |
73
+ | "The style preview couldn't be made. Press Make the preview again." | Press **Make the preview again**. If it fails again, download diagnostics and report it. |
74
+ | "The free subtitle model could not be downloaded" / "download … was interrupted" / "failed download verification" | The caption timing model (378 MB by default, the size chosen in Settings → Production defaults → **Caption timing model**) downloads on first use. Check your connection, then **Continue** the run, or pick a smaller model there. `SLOPIFY_NO_MODEL_PREFETCH` only skips the download at start; captions still need it. |
75
+ | "Captions can't be edited until the current narration has finished and its caption timing is ready." | Let the narration and its caption timing finish, then edit the captions. |
76
+ | "The saved caption timing doesn't match the current narration." | Do what the message says: press **Make the video again** in the project's Video part, which times the captions again, then edit the captions. |
77
+ | **Passages left out of the captions** under the video | Some passages could not be matched to the audio, so the captions skip them. The audio is fine. Press a passage's time to hear it, and look them over before sharing. |
78
78
 
79
79
  With **Language** set to one without word timing, captions and cuts work differently; see [Other Languages](Other-Languages).
80
80
 
@@ -99,15 +99,15 @@ See [Install](Install) for the command-line options.
99
99
  | "Slopify hit an unexpected error (*code*). Reload the page and try again." | Reload. If it keeps happening, download diagnostics and report it. |
100
100
  | "The project could not be loaded." | Reload, or go back to Projects. |
101
101
  | "The upload stopped before the file finished copying. Choose the file again." | Pick the file again and wait for "Waiting for uploads to finish…" to clear before saving. |
102
- | "A newer revision is available. Your unsaved changes are kept below and in this browser." | The project was saved elsewhere (another tab, a remake). Press **Reload latest and re-apply my edit** to lay your changes over the newer revision, check them and press **Save changes**; **Copy my edit** puts your changes on the clipboard first. |
102
+ | "A newer version is available. Your unsaved changes are kept below and in this browser." | The project was saved elsewhere (another tab, or something made again). Press **Reload latest and re-apply my edit** to lay your changes over the newer version, check them and press **Save changes**; **Copy my edit** puts your changes on the clipboard first. |
103
103
 
104
104
  ## Disk space
105
105
 
106
106
  | Symptom | Fix |
107
107
  | --- | --- |
108
108
  | A step fails with "The disk is full, so ... stopped." | Press **Free space**; Settings → **Backup & storage** shows each project's size. Delete projects you do not need (they go to the [Trash](Trash); **Delete now** frees the space at once), or use **Keep outputs only** on finished projects. Then try again. |
109
- | You want space back from a finished project | On its page, **Free space** → **Free …: keep the outputs, drop the working files**. See [Project Page](Project-Page#free-space). |
110
- | History shows "Retained file missing" or "File missing" | That output's file was removed from disk (for example by **Keep outputs only**, or by hand). Remake the output to get it back. |
109
+ | You want space back from a finished project | On its page, **Edit settings** → **Versions** → **Free space** → **Free …**. See [Project Page](Project-Page#free-space). |
110
+ | **Versions** or **All files** shows "File missing" | That file was removed from disk (for example by **Keep outputs only**, or by hand). Make it again to get it back. |
111
111
 
112
112
  See [Where Your Files Live](Where-Your-Files-Live).
113
113
 
@@ -120,7 +120,7 @@ See [Where Your Files Live](Where-Your-Files-Live).
120
120
  | AI CLIs | Run directly with your logins | Run on the host through a small helper, `slopify-cli-bridge.service`, with your existing logins. Check it with `systemctl --user status slopify-cli-bridge.service`. Without it, Settings shows the CLIs as unavailable. |
121
121
  | **Open folder** | Opens your file manager | Opens it through the host helper; without the helper you get the path to copy, and "run the Docker launcher again ... so it sets up the host helper" |
122
122
  | Start at login | Settings → General → **Start Slopify when I log in** | Slopify starts whenever Docker does; Settings only shows Docker's own setting (with Docker Desktop, its **Start Docker Desktop when you sign in**) |
123
- | Updating | The updates button at the foot of the sidebar, or `npx @gentbajko/slopify@latest update` while Slopify is running | `npx @gentbajko/slopify@latest update` from the terminal. It keeps a recovery copy of your data in a Docker volume and puts the previous version back if the new one does not start. |
123
+ | Updating | **Help → Check for updates** at the foot of the rail, or `npx @gentbajko/slopify@latest update` while Slopify is running | `npx @gentbajko/slopify@latest update` from the terminal. It keeps a recovery copy of your data in a Docker volume and puts the previous version back if the new one does not start. |
124
124
 
125
125
  If an install or update fails, the message names what failed and, in Docker, the volume that holds the recovery copy of your data. Do not delete that volume; fix the problem and run the same command again. See [Docker](Docker) and [Updating and Patch Notes](Updating-and-Patch-Notes).
126
126
 
@@ -128,27 +128,27 @@ If an install or update fails, the message names what failed and, in Docker, the
128
128
 
129
129
  | What you see | What it means |
130
130
  | --- | --- |
131
- | **Queued** | Other videos in the batch queue go first. The Calendar's **Batch queue** shows the order. |
131
+ | **Queued** | Other videos in the queue go first. Home's and the Calendar's **Waiting to start** show the order. |
132
132
  | **Waiting for limits** / "Waiting for Codex limits (resets at 14:00)" | A CLI plan is used up; the run waits and carries on after the reset time shown. |
133
133
  | **Waiting to try again** | A rate limit or timeout; it retries at the time shown. |
134
- | **Waiting for your review** | A checkpoint is holding the run. Press **Approve ...**. |
135
- | **Waiting for the agent** | A review set to **External agent (MCP)** waits for your agent. Check the agent's routine is running; with no answer, the review passes by itself after 2 hours. See [Agents (MCP)](Agents-MCP). |
136
- | **Prepared** | Its schedule made it ahead; the video is made on its day. |
137
- | A step says **taking longer than usual** | It has run longer than the same step usually takes in your finished runs. It is still going; open **Live** to see whether text or images are still arriving. |
134
+ | **Waiting for your review** | A pause is holding the run. Press **Approve and make the …**. See [Pauses and Checks](Reviews-and-Checkpoints). |
135
+ | **Waiting for the agent** | An AI check set to **Your own AI agent** waits for your agent. Check the agent's routine is running; with no answer, the review passes by itself after 2 hours. See [Agents (MCP)](Agents-MCP). |
136
+ | **Waiting for its day** | Its schedule made it ahead; the video is made on its day. |
137
+ | A step says **taking longer than usual** | It has run longer than the same step usually takes in your finished runs. It is still going; open **Progress** to see whether text or images are still arriving. |
138
138
  | **Paused** | Press **Continue the run**. |
139
139
  | **Stopped** | The run was interrupted (for example by a restart). Press **Continue the run**. |
140
140
  | A step is failed with "interrupted" | Slopify stopped while it ran. Press **Try ... again**. |
141
141
 
142
142
  ## Tips
143
143
 
144
- - Open the **Live** view on a project to watch text, narration and images arrive; it shows whether anything is still happening.
144
+ - Open **Progress** on a running project to watch text, narration and images arrive; it shows whether anything is still happening.
145
145
  - Keep Slopify on `127.0.0.1`. There is no login, so anyone who reaches the port controls the app and its keys.
146
146
 
147
147
  ## Related pages
148
148
 
149
149
  - [Recovery and Retries](Recovery-and-Retries)
150
150
  - [FAQ](FAQ)
151
- - [Providers and Keys](Providers-and-Keys)
151
+ - [Keys and Services](Providers-and-Keys)
152
152
  - [AI CLIs](AI-CLIs)
153
153
  - [Docker](Docker)
154
154
  - [Install](Install)
@@ -7,7 +7,7 @@ How to take Slopify off a computer, and how to move your projects between a norm
7
7
  ## Before you remove anything
8
8
 
9
9
  1. Let running projects finish, or pause them.
10
- 2. Open Settings → **Backup & storage** and press **Export everything**. Keep the downloaded `.tar` file somewhere safe. It holds every project with its files and history, your library, templates, schedules, Play drafts, fonts, settings and usage. It does not hold your provider keys; keep those in your password manager.
10
+ 2. Open Settings → **Backup & storage** and press **Export everything**. Keep the downloaded `.tar` file somewhere safe. It holds every project with its files and versions, your prompts, templates, schedules, Create drafts, fonts, settings and usage. It does not hold your service keys; keep those in your password manager.
11
11
  3. If you turned on Settings → **General** → **Start Slopify when I log in**, turn it off. That removes the login entry, so nothing tries to start Slopify at your next login.
12
12
 
13
13
  Deleting the folders below can't be undone. Scheduled backups in your `Backups` folder are deleted with it unless you move them first.
@@ -59,7 +59,7 @@ The installer turned on user lingering for the bridge (so your user services run
59
59
  3. Start Slopify normally: `npx @gentbajko/slopify@latest`. See [Install](Install).
60
60
  4. In the new Slopify, open Settings → **Backup & storage** → **Import a backup** and pick the `.tar` file. Large backups take a while to upload and check.
61
61
  5. Read the summary. Projects, library, templates and settings come in; schedules arrive paused.
62
- 6. Enter your provider keys in Settings → **Providers** and check your voices in Settings → **Voices**.
62
+ 6. Enter your service keys in Settings → **Keys & services** and check your voices in Settings → **Voices**.
63
63
  7. Resume your schedules on the Schedules screen. See [Schedules](Schedules).
64
64
  8. Once everything opens fine, remove the Docker install as above.
65
65
 
@@ -69,7 +69,7 @@ The installer turned on user lingering for the bridge (so your user services run
69
69
  2. Stop it (`Ctrl+C`). If start-at-login is on, turn it off first so it doesn't come back at the next login and take port 6969.
70
70
  3. Install Docker: `npx @gentbajko/slopify@latest --docker`. See [Docker](Docker).
71
71
  4. Open `http://127.0.0.1:6969`, go to Settings → **Backup & storage** → **Import a backup** and pick the file.
72
- 5. Enter your provider keys, resume schedules, and check that your projects open.
72
+ 5. Enter your service keys, resume schedules, and check that your projects open.
73
73
  6. Remove the old install when you are sure.
74
74
 
75
75
  ## Move to another computer
@@ -87,7 +87,7 @@ An import adds and never replaces:
87
87
  | Schedules | Arrive paused, so two installs never run them both. |
88
88
  | Settings | Filled in where this install has none; this install's own are kept. |
89
89
  | Usage history | Added once; importing the same backup again doesn't count it twice. |
90
- | Provider keys | Never in a backup. Enter them again. |
90
+ | Service keys | Never in a backup. Enter them again. |
91
91
 
92
92
  Running projects must finish or pause before an import. See [Backups](Backups) for what an archive carries in full.
93
93
 
@@ -108,6 +108,6 @@ To put your project files on another disk or in Documents while keeping the same
108
108
  - [Install](Install)
109
109
  - [Docker](Docker)
110
110
  - [Start at Login](Start-at-Login)
111
- - [Providers and Keys](Providers-and-Keys)
111
+ - [Keys and Services](Providers-and-Keys)
112
112
  - [Schedules](Schedules)
113
113
  - [Trash](Trash)
@@ -2,26 +2,26 @@
2
2
 
3
3
  Slopify checks for new versions by itself and updates with one click or one command. An update waits for running work, keeps a copy to go back to, and puts the previous version back if the new one doesn't start. After an update, the new version's patch notes open once.
4
4
 
5
- **Where to find it:** the circular-arrows button at the foot of the sidebar. Patch notes are in Settings → **Patch notes**; Settings → **About** has **What's new in this version**.
5
+ **Where to find it:** **Help → Check for updates** at the foot of the rail, and **Update ready** in the rail when a new version is ready. Patch notes are in **Help → What's new** (Settings → **Patch notes**); Settings → **About** has **What's new in this version**.
6
6
 
7
- ## The updates button
7
+ ## Where updates show
8
8
 
9
- The circular-arrows button at the foot of the sidebar (in the top bar on a phone) shows the update state. Hover it (or read it with a screen reader) to see `Your version: … · Newest: …` and what a click does. The version you are running is also shown beside the Slopify logo at the top of the sidebar.
9
+ **Help** at the foot of the rail ends with the update row: a line with the version you are running (`You have Slopify …`, or `Your version: … · Newest: …`) and the one thing to do. While there is something new, the rail also shows an item for it, in words, above **Search**. On a phone the update stays inside **Help**, which turns lime-ink while an update is ready.
10
10
 
11
- | What you see | Meaning | Click does |
11
+ | What you see | Meaning | The row does |
12
12
  | --- | --- | --- |
13
- | No dot | You have the newest version, as of the last check. | Checks again now. |
14
- | A dot on the button | An update is ready. | Downloads and installs it. |
15
- | Spinning | Checking, or updating. | Nothing; wait. |
16
- | Label says **Update to X will install when 'Title' finishes.** | The update is waiting for running work. | Cancels the waiting update. |
17
- | Amber | The last check or update had a problem. The label says what. | Checks again. |
13
+ | No item in the rail; Help says **Check for updates** | You have the newest version, as of the last check. | Checks again now. |
14
+ | **Update ready** in the rail; its menu says what installing does | An update is ready. | **Install update X** downloads and installs it. |
15
+ | **Checking for updates…** or **Updating…** | Checking, or updating. | Nothing; wait. |
16
+ | **Update waiting**, and the line **Update to X will install when 'Title' finishes.** | The update is waiting for running work. | **Cancel the update** drops the waiting update. |
17
+ | **Update failed**, and the line says what | The last update had a problem. | **Install update X** tries again. |
18
18
 
19
19
  Slopify checks every 15 minutes and whenever you come back to the tab.
20
20
 
21
21
  ## Update from the app
22
22
 
23
- 1. Click the circular-arrows button when it shows a dot.
24
- 2. If a video is being made, the update waits. A message says **Update to X will install when 'Title' finishes.** Click the button again to cancel the waiting update; nothing has changed yet.
23
+ 1. Press **Update ready** in the rail (or **Help**), then **Install update X**. The menu says first that installing restarts Slopify and that anything running finishes first.
24
+ 2. If a video is being made, the update waits. A message says **Update to X will install when 'Title' finishes.** **Cancel the update** in the same menu drops it; nothing has changed yet.
25
25
  3. When nothing is running, Slopify installs the new version, stops, and starts the new one.
26
26
  4. The page reconnects by itself. If another open tab was loaded before the update, it shows **Slopify was updated** with **Reload**.
27
27
 
@@ -33,7 +33,7 @@ Run:
33
33
  npx @gentbajko/slopify@latest update
34
34
  ```
35
35
 
36
- It asks the running Slopify to update itself, exactly as the button does, and follows it until it is done:
36
+ It asks the running Slopify to update itself, exactly as **Install update** does, and follows it until it is done:
37
37
 
38
38
  - `Slopify X is already the newest version.` when there is nothing to do.
39
39
  - `Slopify is generating right now. Waiting for running work to finish before updating (press Ctrl+C to cancel; nothing has been changed yet)...` while work runs.
@@ -58,9 +58,9 @@ Later starts of Slopify, including an older `npx` or a global `slopify` command,
58
58
 
59
59
  For Docker, the installer does the update from the host with a recovery copy of the whole data volume. See [Docker](Docker#update-the-docker-install).
60
60
 
61
- ## When the button can't update
61
+ ## When the app can't update
62
62
 
63
- The button's label says why:
63
+ The line above the update row says why:
64
64
 
65
65
  | Message | What to do |
66
66
  | --- | --- |
@@ -68,7 +68,7 @@ The button's label says why:
68
68
  | Run Slopify from its installed package to use in-app updates. | You are running from source or a copy without its package files. Start it with `npx @gentbajko/slopify@latest`. |
69
69
  | npm was not found, so in-app updates are off. | Install Node.js with npm from nodejs.org, or update from the terminal with `npx @gentbajko/slopify@latest`. |
70
70
  | An update is already in progress. | Wait for it to finish. |
71
- | An update is already waiting for running work to finish. | Wait, or click the button to cancel it. |
71
+ | An update is already waiting for running work to finish. | Wait, or press **Cancel the update**. |
72
72
 
73
73
  If an update didn't finish, Slopify keeps or puts back the previous version. `logs/updates.log` in the data folder says why.
74
74
 
@@ -92,7 +92,7 @@ After an update to a new major version (for example 2.x to 3.0), the first launc
92
92
  - The last step has **Read the full patch notes**.
93
93
  - Closing the tour also counts as having seen that version's patch notes.
94
94
 
95
- The 3.0 tour covers Home, Play's one path, Automatic reviews, Channels and cast, Episodes that remember (episode memory and your existing videos), The calendar, What a run cost, YouTube Studio prep, Multiple voices, Long videos stay watchable (more images per hour and ambient sound), Other languages and A trash bin. A fresh install never sees it.
95
+ The 3.0 tour covers Home, Create's one path, An AI checks the results, Channels and cast, A channel that remembers (its Memory and Titles to avoid tabs), The calendar, What a run cost, Copy for YouTube Studio, Multiple voices, Long videos stay watchable (more images per hour and ambient sound), Other languages and A trash bin. A fresh install never sees it.
96
96
 
97
97
  ## Read the patch notes
98
98
 
@@ -106,8 +106,8 @@ To open the notes for the version you are running, go to Settings → **About**
106
106
 
107
107
  ## Tips
108
108
 
109
- - Keep Slopify running overnight? Updates wait for running work, so you can press the button at any time and it installs when the current video is done.
110
- - Settings → **About** has the same explanation of the updates button, and links to GitHub, Patreon and Buy Me a Coffee.
109
+ - Keep Slopify running overnight? Updates wait for running work, so you can press **Install update** at any time and it installs when the current video is done.
110
+ - Settings → **About** has the same explanation of updates. GitHub, Patreon and Buy Me a Coffee are under **Support Slopify** at the foot of the rail.
111
111
  - Updating doesn't touch your projects folder. For extra safety before a big update, use **Export everything** or turn on [Backups](Backups).
112
112
 
113
113
  ## Related pages