@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
@@ -11,35 +11,39 @@ Runs can take a while, so Slopify can tell you when one needs you: in the browse
11
11
  | A run **finishes** | "Video ready: *title*", or "Run finished: *title*" for a run that makes audio only |
12
12
  | A run **finishes with problems** | "Video ready with problems: *title* — *reason*": the video was made but another step failed |
13
13
  | A run **fails** | "Run failed: *title* — *reason*", with the first line of the reason |
14
- | A step **fails while the run waits on something else** | "Step failed: *title* — *reason*". Only when another step is waiting: an agent's review, your checkpoint, or a prepared run's day. See [Step failed](#step-failed). |
15
- | A run **stops to wait for you** | "Waiting for you: *title*": a review checkpoint is holding the next step, or the work left is waiting for **Continue the run** |
16
- | An agent's review **passed without an answer** | "Passed without review: no agent answered in 2 h", naming the project and the item. See [Agents (MCP)](Agents-MCP#if-no-agent-answers). |
17
- | An automatic review **needs a decision** | "Review needs a decision: <title>", when an automatic review flags an item and keeps it (its redos ran out, or the stage only flags). It says what was flagged and to press **Overrule** or **Redo** on the project. Sent once per verdict. |
14
+ | A step **fails while the run waits on something else** | "Step failed: *title* — *reason*". Only when another step is waiting: an agent's check, your approval at a pause, or the day of a video made ahead. See [Step failed](#step-failed). |
15
+ | A run **stops to wait for you** | "Waiting for you: *title*": a pause is holding the next step, or the work left is waiting for **Continue the run** |
16
+ | An agent's check **passed without an answer** | "Passed without review: no agent answered in 2 h", naming the project and the item. See [Agents (MCP)](Agents-MCP#if-no-agent-answers). |
17
+ | An AI check **needs a decision** | "Review needs a decision: <title>", when an AI check flags an item and keeps it (its redos ran out, or the stage only flags). It says what was flagged and to press **Overrule** or **Redo** on the project. Sent once per verdict. |
18
18
  | A schedule has **new topics waiting** for approval | For example "5 new topics are waiting for you" |
19
19
 
20
- Pausing or cancelling a run yourself sends nothing, and neither does a project that was already finished when the page loaded. A run waiting for an [agent's review](Agents-MCP#the-external-agent-reviewer), or a prepared run waiting for its day, sends no "Waiting for you": nobody needs to act. A message holds the project title and what happened, never your keys, prompts or files.
20
+ Pausing or cancelling a run yourself sends nothing, and neither does a project that was already finished when the page loaded. A run waiting for an [agent's check](Agents-MCP#your-own-ai-agent-as-the-checker), or a video made ahead waiting for its day, sends no "Waiting for you": nobody needs to act. A message holds the project title and what happened, never your keys, prompts or files.
21
21
 
22
- A run an [agent](Agents-MCP) started ends its messages with **· started by agent**, and a flag from an agent's review ends with **· by agent**.
22
+ A run an [agent](Agents-MCP) started ends its messages with **· started by agent**, and a flag from an agent's check ends with **· by agent**.
23
23
 
24
24
  ### Step failed
25
25
 
26
26
  An ordinary run tells you once, at its end: "Run failed" or "Video ready with problems", with the end chime. A step that fails on the way is named there, not in a message of its own.
27
27
 
28
- "Step failed" is for the other case: a step fails while another step of the run is waiting (for an agent's review, your checkpoint, or a prepared run's day). The run is not over and may wait for hours, so Slopify tells you right away instead of at the end. The project still reads by what it waits for, and the failed step shows on its page with its fix.
28
+ "Step failed" is for the other case: a step fails while another step of the run is waiting (for an agent's check, your approval at a pause, or the day of a video made ahead). The run is not over and may wait for hours, so Slopify tells you right away instead of at the end. The project still reads by what it waits for, and the failed step shows on its page with its fix.
29
29
 
30
30
  Each failure is told once. A restart neither repeats a message already sent nor loses one: what was told is saved. A step that fails again after **Try again** is a new failure and is told again. If the run later ends **Failed** on failures already told, no second "Run failed" goes out.
31
31
 
32
+ ### On the page, always
33
+
34
+ The end of a run is also said on the page itself, whatever the switches below say: while a Slopify tab is open, a notice in the corner reads "Video ready: *title*" with **Watch** (the project's Video part), "Run finished: *title*" with **Open** for a run without a video, or "Run failed: *title* — *reason*" with **Open**, which stays until you close it. With several tabs open, one of them shows it.
35
+
32
36
  ### While you were away
33
37
 
34
38
  When you come back to a Slopify tab after more than two minutes away (or open one after closing it), one notice sums up what happened meanwhile, for example "While you were away: 2 runs finished, 1 step failed beside a wait, 1 run waits for you.", with **Open Home**. It counts runs that finished, runs that failed, steps that failed beside a wait, and runs that started waiting for you. Runs waiting for an agent or for their day are not counted as waiting for you. It works from this browser's own memory of what it last saw, with no setting.
35
39
 
36
40
  ## Turn on browser notifications
37
41
 
38
- Browser notifications work while any Slopify tab is open, in any section, even in the background.
42
+ Browser notifications work while any Slopify tab is open, on any page, even in the background.
39
43
 
40
44
  1. Open **Settings → Notifications**.
41
- 2. Turn **Browser notifications** on. The browser asks for permission now (never when the page loads). Allow it.
42
- 3. Press **Send test notification** to check. You should see "Test notification sent to this browser."
45
+ 2. Turn **Notify me in this browser** on. The browser asks for permission now (never when the page loads). Allow it.
46
+ 3. Press **Send test notification**, which appears beside the switch once it is on, to check. You should see "Test notification sent to this browser."
43
47
 
44
48
  What to expect:
45
49
 
@@ -55,22 +59,22 @@ If you blocked notifications for Slopify earlier, Slopify says "Notifications ar
55
59
  1. Click the icon left of the address bar and open the site settings.
56
60
  2. Allow notifications.
57
61
  3. Reload the page.
58
- 4. Turn **Browser notifications** on again.
62
+ 4. Turn **Notify me in this browser** on again.
59
63
 
60
64
  Some browsers only allow notifications from installed apps. If the test says so, use a Notification URL instead.
61
65
 
62
- ## Run sounds
66
+ ## Sounds when a run starts and ends
63
67
 
64
- **Settings → Notifications → Run sounds** (on by default) plays a chime when a run starts and a different, longer one when it finishes, fails or stops to wait for you, like a message arriving on a phone. A "Step failed" plays the end chime too. **Play start** and **Play end** let you hear them.
68
+ **Settings → Notifications → Play a sound when a run starts and ends** (on by default) plays a chime when a run starts and a different, longer one when it finishes, fails or stops to wait for you, like a message arriving on a phone. A "Step failed" plays the end chime too. **Hear the start sound** and **Hear the end sound** play them.
65
69
 
66
70
  - Works while any Slopify tab is open; only one tab plays each chime.
67
71
  - Needs no permission, but browsers keep a page silent until it has been clicked once, so click anywhere in Slopify after opening it.
68
- - With **Browser notifications** on too, a run's start also shows "Started: *title*".
72
+ - With **Notify me in this browser** on too, a run's start also shows "Started: *title*".
69
73
  - It is this browser's own setting. Your computer's volume sets how loud.
70
74
 
71
75
  ## Get notifications on your phone (Notification URL)
72
76
 
73
- A Notification URL works with no Slopify tab open. When a run finishes, fails or waits, a step fails beside a wait, a review needs a decision or passes without an agent's answer, Slopify sends that address one `POST` with a short plain-text body. Its last line is the project's link, so you can open it straight from the message, for example:
77
+ A Notification URL works with no Slopify tab open. When a run finishes, fails or waits, a step fails beside a wait, an AI check needs a decision or passes without an agent's answer, Slopify sends that address one `POST` with a short plain-text body. Its last line is the project's link, so you can open it straight from the message, for example:
74
78
 
75
79
  ```
76
80
  Video ready: Black holes explained
@@ -99,16 +103,22 @@ To turn it off, clear the field and press **Save**.
99
103
  - [Agents](Agents-MCP) never see the address, only whether one is configured. They may set a new one.
100
104
  - In [Docker](Docker) the request goes out from the container, so the address must be reachable from there. `localhost` means the container itself.
101
105
 
106
+ ## Weekly report
107
+
108
+ Settings → Notifications → **Weekly report** sends last week in one message to the Notification URL: how many videos were made, each failed step with its project and reason (the first ten, then a count), what it cost, and how much of each CLI plan's week is used. It goes out once a week, on Monday from 09:00 in this computer's time zone; if Slopify was off on Monday, it goes out the next time it runs that week. It needs a Notification URL. A send that fails is tried again 15 minutes later. Default: off.
109
+
110
+ Home shows the same last 7 days under **Coming up** (see [Home and Projects](Home-and-Projects#autopilot)).
111
+
102
112
  ## Tips
103
113
 
104
114
  - Turn on both: browser notifications while you are at the computer, ntfy for when you walk away.
105
- - Pair notifications with [Reviews and checkpoints](Reviews-and-Checkpoints) so a run that waits for your review tells you right away.
115
+ - Pair notifications with [pauses](Reviews-and-Checkpoints) so a run that waits for your review tells you right away.
106
116
 
107
117
  ## Related pages
108
118
 
109
119
  - [Settings reference](Settings-Reference)
110
120
  - [Schedules](Schedules)
111
121
  - [Calendar](Calendar)
112
- - [Reviews and checkpoints](Reviews-and-Checkpoints)
122
+ - [Pauses and checks](Reviews-and-Checkpoints)
113
123
  - [Agents (MCP)](Agents-MCP)
114
124
  - [Troubleshooting](Troubleshooting)
@@ -1,12 +1,12 @@
1
1
  # Other Languages
2
2
 
3
- A project can be written and narrated in one of 30 languages, not only English. Slopify asks the text model to write the article, description and shorts titles in that language, lists the voices that speak it, and times the captions for it. English and nine other languages get word-by-word captions; the rest are timed sentence by sentence.
3
+ A project can be written and narrated in one of 30 languages, not only English. Slopify asks the AI to write the article, description and shorts titles in that language, lists the voices that speak it, and times the captions for it. English and nine other languages get word-by-word captions; the rest are timed sentence by sentence.
4
4
 
5
- **Where to find it:** Play → **Channel** row → **Language**. On a finished project: Edit project → **Providers** → **Language**. For a channel's default: Channels → the channel → **Brand** → **Language of new projects**.
5
+ **Where to find it:** Create → **Article** row → **Language**. On a finished project: **Edit settings** → **Channel** → **Language**. For a channel's default: Channels → the channel → **Name and look** → **Language of new projects**.
6
6
 
7
7
  ## Pick a language for one video
8
8
 
9
- 1. On Play, open the **Channel** row.
9
+ 1. On Create, open the **Article** row.
10
10
  2. Under **Language**, pick the language. The first option, **Channel's language (…)**, uses the channel's language and names it.
11
11
  3. Open the **Narration** row and pick a **Voice** that speaks the language. The list only shows voices listed for that language, plus voices whose languages are unknown.
12
12
  4. Read the line under the Language picker: it says what is written in the language and how the captions will be timed.
@@ -16,16 +16,16 @@ A template saves the language its draft had. A draft that never picked one uses
16
16
 
17
17
  ## Set a channel's language
18
18
 
19
- 1. Open **Channels**, pick the channel and open its **Brand** tab.
19
+ 1. Open **Channels**, pick the channel and open its **Name and look** tab.
20
20
  2. Under **Language of new projects**, pick the language. **Not set** means English.
21
21
 
22
22
  This applies with the brand kit off too, because language is not styling. Projects already made keep their language.
23
23
 
24
24
  ## Change the language of a finished project
25
25
 
26
- 1. Open the project and press **Edit project**.
27
- 2. Open **Providers** and pick the new **Language**.
28
- 3. Save. Changing the language re-writes the project's text and re-times its captions; the rebuild review shows what will be remade and what it costs.
26
+ 1. Open the project and press **Edit settings**.
27
+ 2. Open **Channel** and pick the new **Language**.
28
+ 3. Press **Save changes**. Changing the language writes the project's text again and times its captions again; **Choose what to make again** shows what will be made and what it costs.
29
29
 
30
30
  ## What changes with the language
31
31
 
@@ -61,12 +61,12 @@ English projects get no extra line, so they are exactly what they were before la
61
61
  Saved voices carry the languages they speak.
62
62
 
63
63
  1. Open **Settings → Voices** and add a voice.
64
- 2. Leave **Languages** blank and Slopify asks ElevenLabs, Cartesia or Inworld which languages the voice speaks, or type codes yourself, such as `es, de`.
65
- 3. Press **Edit** in the Languages column to change them later.
64
+ 2. Leave **Languages it speaks** on **Any language** and Slopify asks ElevenLabs, Cartesia or Inworld which languages the voice speaks, or pick them yourself by name.
65
+ 3. Change them later in the voice's row, under **Speaks**: pick a language to add it, or remove one.
66
66
 
67
67
  OpenAI has no voice API for this, and its voices read every language its model does. A voice whose languages are unknown is offered for every language.
68
68
 
69
- On Play, the voice list shows the voices that speak the project language. Tick **Show all voices** to pick one listed for other languages, for example a multilingual voice whose languages are listed wrong. If you pick such a voice, Play warns you but does not stop the run. Speaker voice pickers under Speakers, and a cast member's voice picker, filter the same way. See [Multiple-Voices](Multiple-Voices).
69
+ On Create, the voice list shows the voices that speak the project language. Tick **Show all voices** to pick one listed for other languages, for example a multilingual voice whose languages are listed wrong. If you pick such a voice, Create warns you but does not stop the run. Speaker voice pickers under Speakers, and a cast member's voice picker, filter the same way. See [Multiple-Voices](Multiple-Voices).
70
70
 
71
71
  ## Caption timing in detail
72
72
 
@@ -87,21 +87,21 @@ For any language other than English, Slopify checks that your caption font has t
87
87
 
88
88
  1. It uses a bundled Noto font for Latin, Greek, Cyrillic, Arabic, Hebrew, Devanagari and Thai.
89
89
  2. For Chinese, Japanese and Korean, which are not bundled (their fonts run to 10-20 MB), it looks for a font on your computer that has the letters.
90
- 3. If none is found, the Video stage stops and says so. Upload a font that has the letters with **Upload font (.ttf or .otf)** in the caption font picker (Play → **Video and style**, or Edit project → **Subtitles**), choose it, then press **Try again**. Noto Sans JP, KR or SC from fonts.google.com work.
90
+ 3. If none is found, the Video stage stops and says so. Upload a font that has the letters with **Upload font (.ttf or .otf)** in the caption font picker (Create → **Video and style**, or **Edit settings** → **Captions**), choose it, then press **Try again**. Noto Sans JP, KR or SC from fonts.google.com work.
91
91
 
92
- English projects always render with exactly the font you chose.
92
+ English projects always use exactly the font you chose.
93
93
 
94
94
  ## Limits
95
95
 
96
96
  - Only the 30 languages above can be picked.
97
97
  - Word-by-word captions and cuts that follow the narration are only available in English and the nine multilingual languages.
98
98
  - The first captions in a multilingual language need a one-time download of about 248 MB.
99
- - Some voice providers list languages incorrectly; use Show all voices if the voice you want is missing.
99
+ - Some voice services list languages incorrectly; use Show all voices if the voice you want is missing.
100
100
 
101
101
  ## Related pages
102
102
 
103
- - [Play-Narration](Play-Narration)
104
- - [Play-Video-and-Style](Play-Video-and-Style)
103
+ - [Create: Narration](Create-Narration)
104
+ - [Create: Video and Style](Create-Video-and-Style)
105
105
  - [Channels](Channels)
106
106
  - [Multiple-Voices](Multiple-Voices)
107
107
  - [Shorts](Shorts)
@@ -1,26 +1,26 @@
1
1
  # PDF Documents
2
2
 
3
- Slopify can lay out your article as a styled PDF: a title page with the thumbnail as its cover, a table of contents, the article with drop caps, a sources page and an optional closing page. It is drawn on your computer in the theme you pick, needs no provider and costs nothing.
3
+ Slopify can lay out your article as a styled PDF: a title page with the thumbnail as its cover, a table of contents, the article with drop caps, a sources page and an optional closing page. It is drawn on your computer in the look you pick, needs no service and costs nothing.
4
4
 
5
- **Where to find it:** Play → **Outputs** row → **Document**. On a finished project: the **Document** section of the project page, and Edit project → **Inputs** → **Stages** → **Document theme**.
5
+ **Where to find it:** Create → **Extras** → **PDF of the article**. On a finished project: the **PDF** section of the project page, and **Edit settings** → **Extras** → **PDF**.
6
6
 
7
7
  ## Make a PDF
8
8
 
9
- 1. On Play, open the **Outputs** row.
10
- 2. In the **Document** rail, switch the source from **Off** to **Generate**.
11
- 3. Pick a **Theme**: the built-in **Plain**, or one of your own themes from Library → PDF themes.
12
- 4. Start the run.
9
+ 1. On Create, open the **Extras** row.
10
+ 2. Tick **PDF of the article**.
11
+ 3. Pick a **PDF look**: one of the three ready looks, **Plain**, **Book** or **Modern** (**Preview** shows it), or one of your own PDF looks.
12
+ 4. Make the video.
13
13
 
14
- The Document stage runs after the article (and the thumbnail, if there is one) is ready. A thumbnail that failed or was canceled doesn't hold it back: the PDF is then laid out without a cover. It needs an article with some text; an empty article stops the stage with a message pointing you to Edit project → Article.
14
+ The Document stage runs after the article (and the thumbnail, if there is one) is ready. A thumbnail that failed or was canceled doesn't hold it back: the PDF is then laid out without a cover. It needs an article with some text; an empty article stops the stage with a message pointing you to **Edit settings** → **Article**.
15
15
 
16
16
  ## Options
17
17
 
18
18
  | Option | What it does | Default |
19
19
  |---|---|---|
20
- | **Document** source | **Generate** lays out a PDF of the article and title on this computer, in the theme you pick. It needs no provider and costs nothing. | Off |
21
- | **Theme** | How the PDF looks: the built-in **Plain** theme, or one of yours from **Library → PDF themes**. **Edit themes** opens the list. | Plain, or the channel's document theme |
20
+ | **PDF of the article** | Lays out a PDF of the article and title on this computer, in the look you pick. It needs no service and costs nothing. | Off |
21
+ | **PDF look** | How the PDF looks: a ready look (**Plain**, **Book** or **Modern**), or one of your own PDF looks. **Edit PDF looks** opens the list. | Plain, or the channel's PDF look |
22
22
 
23
- A theme of yours is copied into the project when you pick it. Editing the theme later leaves this project alone until you pick it again, so a PDF already made or queued never changes by surprise. A channel's brand kit can set a **Document theme** for its videos whose template picks none; see [Channels](Channels).
23
+ A look of yours is copied into the project when you pick it. Editing the look later leaves this project alone until you pick it again, so a PDF already made or queued never changes by surprise. A channel's brand kit can set a **PDF look** for its videos whose template picks none; see [Channels](Channels).
24
24
 
25
25
  ## What's in the PDF
26
26
 
@@ -28,11 +28,11 @@ In order:
28
28
 
29
29
  | Part | What it holds |
30
30
  |---|---|
31
- | **Title page** | The theme's brand name and tagline (if the theme sets them), the video's title, the project's thumbnail as a cover, then the date and word count. |
32
- | **Table of Contents** | Headings from the article, down to the level the theme sets (two levels in Plain), with page numbers. |
31
+ | **Title page** | The look's brand name and tagline (if the look sets them), the video's title, the project's thumbnail as a cover, then the date and word count. |
32
+ | **Table of Contents** | Headings from the article, down to the level the look sets (two levels in Plain), with page numbers. |
33
33
  | **Body** | The article: headings, paragraphs with a drop cap after headings, bold and italic, links, lists, quotes and rules. |
34
34
  | **Sources Consulted** | The article's "Sources Consulted" section, then any other web link cited in the research notes. Links stay clickable. |
35
- | **Closing page** | Optional: the theme's own lines, the document's details (written on, total words, total pages), a link and a closing line. Off in Plain. |
35
+ | **Closing page** | Optional: the look's own lines, the document's details (written on, total words, total pages), a link and a closing line. Off in Plain. |
36
36
 
37
37
  Every page after the title page has a running header ("Brand | Title", or the title alone) and a page number in the footer.
38
38
 
@@ -49,9 +49,9 @@ The title page uses the project's thumbnail as its cover when:
49
49
 
50
50
  - the project makes or uploads a thumbnail (its Thumbnail source is not Off),
51
51
  - the thumbnail is a PNG, JPEG or WebP image, and
52
- - the theme's cover setting is on (it is in Plain).
52
+ - the look's cover setting is on (it is in Plain).
53
53
 
54
- Otherwise the title page has no cover and the details sit in the theme's usual place. That includes a thumbnail step that failed or was canceled: the PDF is made anyway, without a cover. If you make the thumbnail later, the PDF is marked outdated, so you can remake it with the cover. If the thumbnail file can't be read, the Document stage stops and asks you to regenerate or upload the thumbnail again, then use **Try again** on Document.
54
+ Otherwise the title page has no cover and the details sit in the look's usual place. That includes a thumbnail step that failed or was canceled: the PDF is made anyway, without a cover. If you make the thumbnail later, the PDF is marked outdated, so you can make it again with the cover. If the thumbnail file can't be read, the PDF stage stops and asks you to make or upload the thumbnail again, then use **Try again** on the PDF.
55
55
 
56
56
  ### Sources
57
57
 
@@ -62,39 +62,48 @@ Sources come from two places:
62
62
 
63
63
  When there are no sources, the Sources page is left out.
64
64
 
65
- ## The Plain theme
65
+ ## The ready looks
66
66
 
67
- Plain is the one built-in theme: an unbranded A4 page on a warm off-white background, headings in dark blue, the Cinzel typeface for body and headings, a three-line drop cap after headings, a table of contents and a sources page, no closing page.
67
+ Three looks come with Slopify, all unbranded A4 pages with a table of contents and a sources page and no closing page:
68
68
 
69
- To change fonts, colours, paper size (A4 or Letter), page parts and the closing page, make your own theme. See [Document-Themes](Document-Themes).
69
+ | Look | What it looks like |
70
+ |---|---|
71
+ | **Plain** | A warm off-white page, headings in dark blue, the Cinzel typeface for body and headings, a three-line drop cap after headings. What a new project gets. |
72
+ | **Book** | The article set like a novel in Literata on a parchment texture, Cinzel headings and drop caps in warm brown. |
73
+ | **Modern** | A sans-serif on a white page, blue headings and no drop caps, like a report. |
74
+
75
+ To change fonts, colors, paper size (A4 or Letter), page parts and the closing page, make your own PDF look. See [PDF looks](Document-Themes).
70
76
 
71
77
  ## Open and download the PDF
72
78
 
73
- On the project page, the **Document** section shows the theme's name (for example **Plain theme**) and, once the PDF is made:
79
+ On the project page, the **PDF** part shows the PDF itself (where the browser can show PDFs) and, beside it:
74
80
 
75
- - **Open PDF** opens it in a new browser tab.
76
81
  - **Download PDF** saves the file to your computer.
82
+ - **Open in a new tab** opens it in a new browser tab.
83
+ - **Open folder** opens the project's folder.
84
+
85
+ A line under them gives the file's size and the look's name (for example **Plain theme**).
77
86
 
78
- While the stage runs it says "The PDF will be saved when rendering finishes." The file lives in the project's folder; see [Where-Your-Files-Live](Where-Your-Files-Live).
87
+ While the stage runs it says "The PDF will be saved when it is made." The file lives in the project's folder; see [Where-Your-Files-Live](Where-Your-Files-Live).
79
88
 
80
- ## Change the theme of a finished project
89
+ ## Change the look of a finished project
81
90
 
82
- 1. Open the project and press **Edit project**.
83
- 2. Open **Inputs**. Under **Stages**, set the Document source to Generate if it was Off.
84
- 3. Pick a **Document theme**.
85
- 4. Save. The rebuild review lists the PDF to be made again; it costs nothing.
91
+ 1. Open the project and press **Edit settings**.
92
+ 2. Open **Extras**. Turn on **PDF of the article** if it was off.
93
+ 3. Pick a **PDF look**.
94
+ 4. Press **Save changes**, then **Make the PDF again (free)** (or the title row's next action).
86
95
 
87
96
  ## Tips
88
97
 
89
- - Use Library → PDF themes' live preview to try a theme on a sample article before you pick it for a project.
98
+ - Use the live preview on the PDF looks page (Settings → Production defaults → PDF look → Edit PDF looks) to try a look on a sample article before you pick it for a project.
90
99
  - If a PDF has no cover, check that the project has a thumbnail and that it is a PNG, JPEG or WebP image.
91
100
  - Want the sources page filled? Make sure your Article prompt asks for a "Sources Consulted" section, and consider turning on research.
92
101
 
93
102
  ## Related pages
94
103
 
95
104
  - [Document-Themes](Document-Themes)
96
- - [Play-Outputs](Play-Outputs)
105
+ - [Create: Extras](Create-Extras)
97
106
  - [Channels](Channels)
98
107
  - [Project-Page](Project-Page)
99
108
  - [Editing-a-Project](Editing-a-Project)
100
- - [Play-Title-and-Article](Play-Title-and-Article)
109
+ - [Create: Article](Create-Article)
@@ -0,0 +1,121 @@
1
+ # Posting to Social Sites
2
+
3
+ Slopify can get a project's post ready for **X, LinkedIn, Instagram, TikTok, Reddit and Bluesky**, beside its YouTube upload. Slopify prepares each site's post (its words, hashtags, link, pictures or video in the site's shape, and when it goes out). It never posts for you: there is no sign-in and no site API. The optional [Studio extension](Studio-Extension) fills each site's own post form in your browser, sets the site's scheduler where it has one, and turns the site's AI label on. You check the post and press **Post** yourself.
4
+
5
+ **Where to find it:** a finished project → **Copy for YouTube Studio** → **Where** (shown once the project posts to at least one site). A template's sites are set in **Templates → Edit template → YouTube description and posts**, or on Create in the **Extras** row under **Post to other sites**. Each channel's **Name and look** tab holds its account names and X subscription.
6
+
7
+ ## Turn posting on
8
+
9
+ 1. Open the template with **Edit template** and go to **YouTube description and posts**.
10
+ 2. Under **Post to**, turn on each site. Each one starts with the defaults below.
11
+ 3. Change the **text** and the **video** or **pictures** of each site there; hashtags, the thumbnail and the YouTube link are in the section's fold (**More … settings**).
12
+ 4. Press **Save**. A site whose words come from a post prompt is a paid step, so the sample's **Make sample** shows its price like any other (the **Posts** line).
13
+
14
+ A project or template with no site turned on works exactly as before: Copy for YouTube Studio shows YouTube alone.
15
+
16
+ ### What each site gets by default
17
+
18
+ | Site | Words | Media |
19
+ |---|---|---|
20
+ | X | The summary, two hashtags | The video |
21
+ | LinkedIn | The summary, three hashtags | The video |
22
+ | Instagram | The summary as the caption, five hashtags | Up to 10 pictures as a carousel, cut to 4:5 |
23
+ | TikTok | The summary, five hashtags | Short 1 |
24
+ | Bluesky | The summary, two hashtags | Up to 4 pictures |
25
+ | Reddit | A link post with the project's title | The YouTube link |
26
+
27
+ ## The post in Copy for YouTube Studio
28
+
29
+ Choose a site under **Where**. Its panel shows, top to bottom:
30
+
31
+ - **Where it stands**: not filled yet, waiting for the extension, filled (press Post on the site), scheduled, posted, or why the fill stopped.
32
+ - **Things to check**: what doesn't fit the site, each with its fix (text too long, too many pictures, a video too long for X Free, no subreddit, a release time the site can't schedule). A warning never stops you from filling the post.
33
+ - **The post** as the site will show it: its words in an editable box, counted live the way the site counts them, and its media in the shape it is sent in. Your changes save when you leave the box and stay this project's own; **Reset to the written text** drops them.
34
+ - **When it goes out** (see below).
35
+ - **Settings**: the text source, video, pictures, designs, hashtags, thumbnail and YouTube link for this project. A change here is this project's own; **Use the template's settings** goes back.
36
+
37
+ ## Where the words come from
38
+
39
+ | Text | What it posts | Cost |
40
+ |---|---|---|
41
+ | Summary | The keyword digest's summary when the run wrote one, otherwise the YouTube description's first paragraph (the default) | Free |
42
+ | YouTube description | The description without its chapters and hashtags | Free |
43
+ | Title | The video's title | Free |
44
+ | Written by a post prompt | A post written from the article by one of your prompts of kind Post (or the built-in one) | One AI call per site; it shows in the estimate as **Posts** |
45
+ | My own text | Your text, with `{{Slopify_Title}}`, `{{Slopify_Summary}}` and the other [keywords Slopify fills](Keywords-Slopify-Fills) | Free |
46
+ | No text | Nothing | Free |
47
+
48
+ A post prompt is a paid step, so it is picked in Edit template's **YouTube description and posts** (or on Create), where the estimate shows its cost. Copy for YouTube Studio can switch a site between the free sources.
49
+
50
+ Hashtags come from the video's YouTube tags, then the shorts' hashtags, up to each site's most. The YouTube link is added, when asked, once the video is on YouTube. Text longer than the site takes is cut at the last whole sentence that fits, and the post says so.
51
+
52
+ ## Pictures and video
53
+
54
+ A post can carry the long video, one of the shorts, the thumbnail, any number of the project's pictures, and the project's posters and edited images kept in it (**Posters and edited images…** under the project's status, then **Keep in project**), in any mix. Instagram's pictures are cut to 4:5 the first time they are needed; a design goes in its own format closest to the site's shape (portrait on Instagram, a story on TikTok, square elsewhere), drawn when the post needs it; shorts are already vertical; the long video is never re-encoded. Sites that don't mix a video with pictures (LinkedIn, TikTok, Reddit, Bluesky) get a warning rather than a refusal.
55
+
56
+ ## Each site's limits
57
+
58
+ Slopify counts the way each site does: X counts a link as 23 characters and CJK characters and emoji twice, Bluesky counts characters as you see them, the others count plainly.
59
+
60
+ | Site | Text | Pictures | Video | Video and pictures together | Seen on the site |
61
+ |---|---|---|---|---|---|
62
+ | X Free | 280 | 4 | 2 min 20 s | Yes | Not yet |
63
+ | X Premium, Premium+ | 25,000 | 4 | 3 h | Yes | Not yet |
64
+ | LinkedIn | 3,000 | 20 | 15 min | No | Not yet |
65
+ | Instagram | 2,200 | 20 | 15 min | Yes | 2026-10-18 |
66
+ | TikTok | 4,000 | 35 | 60 min | No | 2026-10-18 |
67
+ | Bluesky | 300 | 4 | 3 min | No | 2026-10-18 |
68
+ | Reddit | 40,000 (title 300) | 20 | 15 min | No | Not yet |
69
+
70
+ ## When it goes out
71
+
72
+ The post follows the YouTube item it carries: a short's own release time when it carries a short, else the long video's.
73
+
74
+ - **X, LinkedIn and TikTok** have their own scheduler. The extension sets it to the release time; you press **Schedule**. Outside the site's window (TikTok takes about 15 minutes to 10 days ahead, LinkedIn about 3 months), or after the release time, it leaves the post to go out now, and the post says why.
75
+ - **Instagram, Bluesky and Reddit** have none. Pressing **Fill** before the release time makes the post wait: about 2 minutes before the release time, the extension opens the site in a background tab, fills the post and shows a notification (and calls your [Notification URL](Notifications), when one is set); you press **Post**. If the browser was closed, it fills when it opens again, up to 12 hours late.
76
+ - With no release time, or one already past, the post goes out when you press **Post**.
77
+
78
+ ## Fill in a site
79
+
80
+ **Fill in X** (and each other site) is the drawer's main button while that site is chosen. It opens the site's post form and hands the post to the extension. It stays disabled, with the reason beside it, until:
81
+
82
+ - the Slopify Studio extension is installed and paired (**Settings → YouTube Studio and posting**);
83
+ - the extension is new enough to post; and
84
+ - the site is allowed in the extension's options (**Allow posting on X**, and so on).
85
+
86
+ The extension only fills a tab that Slopify opened: the one **Fill in X** opens, or the background tab it opens at release time. A site's page you open yourself is never filled or touched. The extension never presses Post, Share, Publish or the final Schedule.
87
+
88
+ ## AI labels
89
+
90
+ Instagram's **Add AI label**, TikTok's **AI-generated content** and X's content disclosure are always turned on for a post that carries Slopify's pictures or video. LinkedIn, Bluesky and Reddit have none.
91
+
92
+ ## After it is posted
93
+
94
+ When the site shows the published post, the extension reads its link and the panel shows **Posted** with **Open the post**. When it can't, it looks the post up on your profile (the account names below). When you posted it yourself, or the link was missed, paste it under **Posted it yourself? Paste its link**; only the site's own post links are taken. **Remove link** lets the post be filled again.
95
+
96
+ ## Reddit
97
+
98
+ A Reddit post has its own **Subreddit** (without `r/`), **Title**, **Flair** and **Post type** (Link, Text or Media). Reddit refuses a post without a subreddit, so the post warns until one is set. Reddit's post form hasn't been checked in a real browser yet (**Needs a live check**): the title, subreddit and text go in through Reddit's own submit address, but check the media and flair before you press Post.
99
+
100
+ ## Your accounts and X subscription
101
+
102
+ In **Channels** → your channel → **Name and look** → **Posting**:
103
+
104
+ - **X subscription** (Free, Premium or Premium+) only changes which warnings a post gets, such as the 280-character and 2 min 20 s limits of X Free.
105
+ - **Account names** let the extension find a published post's link on your profile page. They are never used to sign in.
106
+
107
+ ## Post prompts
108
+
109
+ Write your own in **Prompts**, kind **Post** (**Start from an example** → **Slopify's own wording** fills in the wording Slopify uses). Slopify gives it the site's length limit and asks again when the answer is over it, then adds the hashtags and link itself. Pick it for a site in Edit template's **YouTube description and posts** by choosing **Written by a post prompt** as its text.
110
+
111
+ ## Agents
112
+
113
+ Agents read and prepare posts (`get_post_packs`, `set_post_choice`, `edit_post_text`, `reset_post_text`, `set_reddit_post`, `set_post_link`) and report a post waiting for your Post. They can't press Fill and can't post. See [Agents (MCP)](Agents-MCP).
114
+
115
+ ## Related pages
116
+
117
+ - [Publishing to YouTube](Publishing-to-YouTube)
118
+ - [Studio extension](Studio-Extension)
119
+ - [Edit template](Template-Studio)
120
+ - [Channels](Channels)
121
+ - [Prompts](Prompts)