@hraness/slopcamera 3.2.4

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 (441) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +60 -0
  3. package/PRIVACY.md +46 -0
  4. package/README.md +311 -0
  5. package/SECURITY.md +21 -0
  6. package/apps/desktop/README.md +966 -0
  7. package/apps/desktop/analysis/protocol.ts +223 -0
  8. package/apps/desktop/application/capability-binding.ts +594 -0
  9. package/apps/desktop/application/context.ts +97 -0
  10. package/apps/desktop/application/creative-iteration.ts +1385 -0
  11. package/apps/desktop/application/default-registry.ts +146 -0
  12. package/apps/desktop/application/directing-contract.ts +218 -0
  13. package/apps/desktop/application/directing-plan.ts +178 -0
  14. package/apps/desktop/application/errors.ts +18 -0
  15. package/apps/desktop/application/gateway-port.ts +867 -0
  16. package/apps/desktop/application/html-overlay-browser-runtime.ts +687 -0
  17. package/apps/desktop/application/html-overlay-integrity.ts +337 -0
  18. package/apps/desktop/application/html-overlay-renderer.ts +45 -0
  19. package/apps/desktop/application/index.ts +13 -0
  20. package/apps/desktop/application/operation-completion-checkpoint.ts +333 -0
  21. package/apps/desktop/application/operation-effects.ts +94 -0
  22. package/apps/desktop/application/operation.ts +224 -0
  23. package/apps/desktop/application/operations/analysis/faces.ts +244 -0
  24. package/apps/desktop/application/operations/analysis/music.ts +248 -0
  25. package/apps/desktop/application/operations/analysis/project-auto-zooms.ts +302 -0
  26. package/apps/desktop/application/operations/analysis/project-inactivity.ts +381 -0
  27. package/apps/desktop/application/operations/analysis/scenes.ts +272 -0
  28. package/apps/desktop/application/operations/analysis/shared.ts +202 -0
  29. package/apps/desktop/application/operations/derive/edit-batch.ts +967 -0
  30. package/apps/desktop/application/operations/derive/follow-faces.ts +454 -0
  31. package/apps/desktop/application/operations/edit/bind-candidate-revision.ts +91 -0
  32. package/apps/desktop/application/operations/edit/create-candidate-revision.ts +377 -0
  33. package/apps/desktop/application/operations/edit/create-revision.ts +255 -0
  34. package/apps/desktop/application/operations/edit/freeze-revision.ts +182 -0
  35. package/apps/desktop/application/operations/gateway/image.ts +41 -0
  36. package/apps/desktop/application/operations/gateway/index.ts +17 -0
  37. package/apps/desktop/application/operations/gateway/shared.ts +122 -0
  38. package/apps/desktop/application/operations/gateway/speech.ts +41 -0
  39. package/apps/desktop/application/operations/gateway/transcription.ts +42 -0
  40. package/apps/desktop/application/operations/gateway/video.ts +41 -0
  41. package/apps/desktop/application/operations/index.ts +31 -0
  42. package/apps/desktop/application/operations/iteration/create-candidate.ts +240 -0
  43. package/apps/desktop/application/operations/iteration/create-matrix.ts +117 -0
  44. package/apps/desktop/application/operations/iteration/select.ts +155 -0
  45. package/apps/desktop/application/operations/iteration/shared.ts +250 -0
  46. package/apps/desktop/application/operations/media/audio-effects.ts +376 -0
  47. package/apps/desktop/application/operations/media/binding.ts +79 -0
  48. package/apps/desktop/application/operations/media/capabilities.ts +112 -0
  49. package/apps/desktop/application/operations/media/color-grade.ts +343 -0
  50. package/apps/desktop/application/operations/media/html-overlay.ts +802 -0
  51. package/apps/desktop/application/operations/media/index.ts +8 -0
  52. package/apps/desktop/application/operations/media/ingest.ts +303 -0
  53. package/apps/desktop/application/operations/media/overlay.ts +729 -0
  54. package/apps/desktop/application/operations/media/shared.ts +845 -0
  55. package/apps/desktop/application/operations/media/transform-platform.ts +120 -0
  56. package/apps/desktop/application/operations/project/commit-edits.ts +2054 -0
  57. package/apps/desktop/application/operations/project/promote-selection.ts +495 -0
  58. package/apps/desktop/application/operations/project/snapshot.ts +95 -0
  59. package/apps/desktop/application/operations/recording/index.ts +5 -0
  60. package/apps/desktop/application/operations/recording/pause.ts +34 -0
  61. package/apps/desktop/application/operations/recording/resume.ts +34 -0
  62. package/apps/desktop/application/operations/recording/shared.ts +199 -0
  63. package/apps/desktop/application/operations/recording/start.ts +169 -0
  64. package/apps/desktop/application/operations/recording/stop.ts +34 -0
  65. package/apps/desktop/application/operations/render/bind-candidate-output.ts +324 -0
  66. package/apps/desktop/application/operations/render/materialize-selection.ts +322 -0
  67. package/apps/desktop/application/operations/render/project-caption-plan.ts +287 -0
  68. package/apps/desktop/application/operations/render/project-plan.ts +939 -0
  69. package/apps/desktop/application/operations/render/project-spatial-receipt.ts +70 -0
  70. package/apps/desktop/application/operations/render/project.ts +1922 -0
  71. package/apps/desktop/application/operations/shared.ts +67 -0
  72. package/apps/desktop/application/operations/slopcamera-portable.ts +1188 -0
  73. package/apps/desktop/application/operations/slopcamera-visuals.ts +784 -0
  74. package/apps/desktop/application/operations/spatial-project.ts +209 -0
  75. package/apps/desktop/application/operations/spatial-render.ts +415 -0
  76. package/apps/desktop/application/operations/spatial-scene.ts +97 -0
  77. package/apps/desktop/application/operations/studio.ts +143 -0
  78. package/apps/desktop/application/output-publication-lease.ts +163 -0
  79. package/apps/desktop/application/project-publication-lease.ts +233 -0
  80. package/apps/desktop/application/project-store.ts +196 -0
  81. package/apps/desktop/application/receipts.ts +533 -0
  82. package/apps/desktop/application/registry.ts +182 -0
  83. package/apps/desktop/application/spatial-assets.ts +675 -0
  84. package/apps/desktop/application/spatial-compositor-cadence.ts +23 -0
  85. package/apps/desktop/application/spatial-project-authority.ts +35 -0
  86. package/apps/desktop/application/spatial-project-lease.ts +126 -0
  87. package/apps/desktop/application/spatial-project-render-preparation.ts +225 -0
  88. package/apps/desktop/application/spatial-project-store.ts +286 -0
  89. package/apps/desktop/application/spatial-render-projection.ts +201 -0
  90. package/apps/desktop/application/spatial-render.ts +677 -0
  91. package/apps/desktop/application/spatial-spz.ts +44 -0
  92. package/apps/desktop/application/spatial-world-import.ts +135 -0
  93. package/apps/desktop/application/spatial-world-provenance.ts +46 -0
  94. package/apps/desktop/application/studio-port.ts +58 -0
  95. package/apps/desktop/application/verified-receipt-reconciliation.ts +1574 -0
  96. package/apps/desktop/capture/protocol.ts +689 -0
  97. package/apps/desktop/cli/analyzer.ts +406 -0
  98. package/apps/desktop/cli/args.ts +3181 -0
  99. package/apps/desktop/cli/asset-ingest.ts +747 -0
  100. package/apps/desktop/cli/atomic-render-effects.ts +210 -0
  101. package/apps/desktop/cli/atomic-render-platform.ts +205 -0
  102. package/apps/desktop/cli/atomic-render.ts +50 -0
  103. package/apps/desktop/cli/audio-analysis.ts +252 -0
  104. package/apps/desktop/cli/bounded-map.ts +39 -0
  105. package/apps/desktop/cli/bundle-service.ts +256 -0
  106. package/apps/desktop/cli/capabilities.ts +212 -0
  107. package/apps/desktop/cli/capture-bundle.ts +1117 -0
  108. package/apps/desktop/cli/command-host-resources.ts +251 -0
  109. package/apps/desktop/cli/commands.ts +6836 -0
  110. package/apps/desktop/cli/directing-blob.ts +291 -0
  111. package/apps/desktop/cli/directing-media.ts +517 -0
  112. package/apps/desktop/cli/directing-quote.ts +89 -0
  113. package/apps/desktop/cli/directing-service.ts +288 -0
  114. package/apps/desktop/cli/emoji-assets.ts +538 -0
  115. package/apps/desktop/cli/errors.ts +29 -0
  116. package/apps/desktop/cli/face-analysis-service.ts +940 -0
  117. package/apps/desktop/cli/filter-script.ts +76 -0
  118. package/apps/desktop/cli/gateway-application-port.ts +1142 -0
  119. package/apps/desktop/cli/gateway-credential.ts +81 -0
  120. package/apps/desktop/cli/gateway-media-artifacts.ts +723 -0
  121. package/apps/desktop/cli/gateway-media-catalog.ts +922 -0
  122. package/apps/desktop/cli/gateway-media-service.ts +3106 -0
  123. package/apps/desktop/cli/gateway-media-signature.ts +122 -0
  124. package/apps/desktop/cli/gateway-provider-options.ts +562 -0
  125. package/apps/desktop/cli/gateway-scene-provider.ts +391 -0
  126. package/apps/desktop/cli/help.ts +501 -0
  127. package/apps/desktop/cli/html-overlay-gpu.ts +97 -0
  128. package/apps/desktop/cli/html-overlay-renderer.ts +2478 -0
  129. package/apps/desktop/cli/io.ts +290 -0
  130. package/apps/desktop/cli/main.ts +123 -0
  131. package/apps/desktop/cli/media-effects-service.ts +885 -0
  132. package/apps/desktop/cli/media-ingest-model.ts +364 -0
  133. package/apps/desktop/cli/media-ingest-platform.ts +227 -0
  134. package/apps/desktop/cli/media-ingest-program.ts +200 -0
  135. package/apps/desktop/cli/media-ingest.ts +30 -0
  136. package/apps/desktop/cli/music-analysis-service.ts +434 -0
  137. package/apps/desktop/cli/mutation-lock.ts +530 -0
  138. package/apps/desktop/cli/native-assets.d.ts +12 -0
  139. package/apps/desktop/cli/native-media-runtime.macos.ts +7 -0
  140. package/apps/desktop/cli/overlay-playback.ts +177 -0
  141. package/apps/desktop/cli/paths.ts +265 -0
  142. package/apps/desktop/cli/portable-surface.ts +242 -0
  143. package/apps/desktop/cli/project-camera-receipt.ts +112 -0
  144. package/apps/desktop/cli/project-face-camera.ts +394 -0
  145. package/apps/desktop/cli/project-inactivity-service.ts +552 -0
  146. package/apps/desktop/cli/project-media-integrity.ts +121 -0
  147. package/apps/desktop/cli/project-renderer.ts +1526 -0
  148. package/apps/desktop/cli/project-service.ts +519 -0
  149. package/apps/desktop/cli/project-state-transaction.ts +520 -0
  150. package/apps/desktop/cli/query-limits.ts +1 -0
  151. package/apps/desktop/cli/recording-controller.ts +1567 -0
  152. package/apps/desktop/cli/recording-daemon.ts +931 -0
  153. package/apps/desktop/cli/recording-ref.ts +56 -0
  154. package/apps/desktop/cli/renamed-environment.ts +6 -0
  155. package/apps/desktop/cli/renderer.ts +1439 -0
  156. package/apps/desktop/cli/run-cli-test-helper.ts +60 -0
  157. package/apps/desktop/cli/scene-analysis-service.ts +879 -0
  158. package/apps/desktop/cli/spatial-compositor-verifier.ts +213 -0
  159. package/apps/desktop/cli/spatial-project-service.ts +90 -0
  160. package/apps/desktop/cli/spatial-scene-service.ts +105 -0
  161. package/apps/desktop/cli/spatial-world-service.ts +39 -0
  162. package/apps/desktop/cli/speech-analysis-service.ts +682 -0
  163. package/apps/desktop/cli/studio-assemble.ts +58 -0
  164. package/apps/desktop/cli/studio-command.ts +60 -0
  165. package/apps/desktop/cli/studio-custody.ts +60 -0
  166. package/apps/desktop/cli/studio-encode.ts +216 -0
  167. package/apps/desktop/cli/studio-exr.ts +52 -0
  168. package/apps/desktop/cli/studio-files.ts +179 -0
  169. package/apps/desktop/cli/studio-output-validation.ts +162 -0
  170. package/apps/desktop/cli/studio-process.ts +145 -0
  171. package/apps/desktop/cli/studio-runtime.ts +77 -0
  172. package/apps/desktop/cli/studio-scaffold.ts +70 -0
  173. package/apps/desktop/cli/studio-service.ts +301 -0
  174. package/apps/desktop/cli/studio-spatial-asset.ts +248 -0
  175. package/apps/desktop/cli/studio-template-names.ts +3 -0
  176. package/apps/desktop/cli/studio-workflow.ts +19 -0
  177. package/apps/desktop/cli/time.ts +25 -0
  178. package/apps/desktop/cli/workflow-code.ts +584 -0
  179. package/apps/desktop/cli/workflow-runs.ts +576 -0
  180. package/apps/desktop/code/advanced.ts +139 -0
  181. package/apps/desktop/code/application-node-planner.ts +1288 -0
  182. package/apps/desktop/code/compiler.ts +329 -0
  183. package/apps/desktop/code/contracts.ts +13 -0
  184. package/apps/desktop/code/creative-recipes.ts +94 -0
  185. package/apps/desktop/code/define-workflow.ts +115 -0
  186. package/apps/desktop/code/editing.ts +284 -0
  187. package/apps/desktop/code/file-candidate-provenance.ts +420 -0
  188. package/apps/desktop/code/file-candidate.ts +69 -0
  189. package/apps/desktop/code/graph-builder.ts +10 -0
  190. package/apps/desktop/code/host-resource-policy.ts +55 -0
  191. package/apps/desktop/code/plan-contracts.ts +159 -0
  192. package/apps/desktop/code/planning.ts +361 -0
  193. package/apps/desktop/code/public.ts +134 -0
  194. package/apps/desktop/code/reference-projection.ts +62 -0
  195. package/apps/desktop/code/run-contracts.ts +466 -0
  196. package/apps/desktop/code/run-store.ts +2478 -0
  197. package/apps/desktop/code/runtime-identity.ts +328 -0
  198. package/apps/desktop/code/scheduler.ts +3067 -0
  199. package/apps/desktop/code/semantic-builder.ts +1436 -0
  200. package/apps/desktop/code/source-bundle.ts +1641 -0
  201. package/apps/desktop/code/source-typecheck.ts +211 -0
  202. package/apps/desktop/code/testing.ts +79 -0
  203. package/apps/desktop/code/worker-client.ts +1675 -0
  204. package/apps/desktop/code/worker-effects.ts +141 -0
  205. package/apps/desktop/code/worker-entry.ts +435 -0
  206. package/apps/desktop/code/worker-lease-guardian.ts +179 -0
  207. package/apps/desktop/code/worker-process-identity.ts +484 -0
  208. package/apps/desktop/code/worker-protocol.ts +211 -0
  209. package/apps/desktop/code/workflow-effects.ts +132 -0
  210. package/apps/desktop/contracts/analysis.ts +949 -0
  211. package/apps/desktop/contracts/edit.ts +576 -0
  212. package/apps/desktop/contracts/index.ts +9 -0
  213. package/apps/desktop/contracts/media-effects.ts +139 -0
  214. package/apps/desktop/contracts/project-render.ts +644 -0
  215. package/apps/desktop/contracts/project.ts +740 -0
  216. package/apps/desktop/contracts/recording.ts +1434 -0
  217. package/apps/desktop/contracts/render.ts +334 -0
  218. package/apps/desktop/contracts/runtime.ts +155 -0
  219. package/apps/desktop/contracts/spatial-compositor.ts +58 -0
  220. package/apps/desktop/contracts/spatial-project.ts +159 -0
  221. package/apps/desktop/contracts/spatial-world.ts +48 -0
  222. package/apps/desktop/contracts/video-effects.ts +120 -0
  223. package/apps/desktop/core/alignment-apply.ts +400 -0
  224. package/apps/desktop/core/audio-alignment.ts +466 -0
  225. package/apps/desktop/core/auto-zoom.ts +209 -0
  226. package/apps/desktop/core/canonical-json.ts +14 -0
  227. package/apps/desktop/core/emoji.ts +210 -0
  228. package/apps/desktop/core/events.ts +409 -0
  229. package/apps/desktop/core/face-framing.ts +533 -0
  230. package/apps/desktop/core/face-tracks.ts +326 -0
  231. package/apps/desktop/core/inactivity.ts +137 -0
  232. package/apps/desktop/core/index.ts +30 -0
  233. package/apps/desktop/core/intervals.ts +123 -0
  234. package/apps/desktop/core/montage.ts +236 -0
  235. package/apps/desktop/core/music-analysis.ts +518 -0
  236. package/apps/desktop/core/plan.ts +244 -0
  237. package/apps/desktop/core/project-auto-zoom.ts +75 -0
  238. package/apps/desktop/core/project-camera-spatial.ts +676 -0
  239. package/apps/desktop/core/project-camera.ts +403 -0
  240. package/apps/desktop/core/project-captions.ts +888 -0
  241. package/apps/desktop/core/project-inactivity.ts +125 -0
  242. package/apps/desktop/core/project-metadata.ts +927 -0
  243. package/apps/desktop/core/project-plan.ts +375 -0
  244. package/apps/desktop/core/project-render-plan.ts +303 -0
  245. package/apps/desktop/core/project-time.ts +469 -0
  246. package/apps/desktop/core/render-plan.ts +442 -0
  247. package/apps/desktop/core/scene-cache.ts +174 -0
  248. package/apps/desktop/core/scene-sampling.ts +448 -0
  249. package/apps/desktop/core/spatial-compositor.ts +22 -0
  250. package/apps/desktop/core/spatial-durability.ts +99 -0
  251. package/apps/desktop/core/spatial-project.ts +169 -0
  252. package/apps/desktop/core/spatial-shot-clock.ts +32 -0
  253. package/apps/desktop/core/speech-analysis.ts +333 -0
  254. package/apps/desktop/core/storage.ts +970 -0
  255. package/apps/desktop/core/time-map.ts +91 -0
  256. package/apps/desktop/core/time.ts +61 -0
  257. package/apps/desktop/core/video-effects.ts +660 -0
  258. package/apps/desktop/dist/cli/NebulaSans-Bold-26se8aek.otf +0 -0
  259. package/apps/desktop/dist/cli/NebulaSans-Bold-bcz7y08t.woff2 +0 -0
  260. package/apps/desktop/dist/cli/NebulaSans-Book-5ax05zvn.woff2 +0 -0
  261. package/apps/desktop/dist/cli/NebulaSans-Book-8cenzchw.otf +0 -0
  262. package/apps/desktop/dist/cli/main.js +5086 -0
  263. package/apps/desktop/html-overlay/catalog.ts +171 -0
  264. package/apps/desktop/html-overlay/contracts.ts +372 -0
  265. package/apps/desktop/html-overlay/execution-profile.ts +77 -0
  266. package/apps/desktop/html-overlay/index.ts +98 -0
  267. package/apps/desktop/html-overlay/libraries.ts +263 -0
  268. package/apps/desktop/html-overlay/random.ts +49 -0
  269. package/apps/desktop/html-overlay/runtime.ts +813 -0
  270. package/apps/desktop/html-overlay/scaffolds.ts +792 -0
  271. package/apps/desktop/html-overlay/spark-runtime.ts +88 -0
  272. package/apps/desktop/html-overlay/spatial-splat-runtime.ts +60 -0
  273. package/apps/desktop/html-overlay/spatial.ts +720 -0
  274. package/apps/desktop/studio/assets/README.md +39 -0
  275. package/apps/desktop/studio/assets/contracts.ts +129 -0
  276. package/apps/desktop/studio/assets/network.ts +64 -0
  277. package/apps/desktop/studio/assets/poly-haven.ts +148 -0
  278. package/apps/desktop/studio/drivers/blender_driver.py +466 -0
  279. package/apps/desktop/studio/drivers/cadquery_driver.py +176 -0
  280. package/apps/desktop/studio/education/driver.py +308 -0
  281. package/apps/desktop/studio/education/lesson.py +180 -0
  282. package/apps/desktop/studio/education/toolkit.py +249 -0
  283. package/apps/desktop/workflows/chaptered-demo.ts +48 -0
  284. package/apps/desktop/workflows/creative-iteration.ts +107 -0
  285. package/apps/desktop/workflows/creative-selection.ts +92 -0
  286. package/apps/desktop/workflows/fragments.ts +486 -0
  287. package/apps/desktop/workflows/index.ts +93 -0
  288. package/apps/desktop/workflows/polished-screen-demo.ts +128 -0
  289. package/apps/desktop/workflows/scene-direction.ts +12 -0
  290. package/apps/desktop/workflows/social-variants.ts +75 -0
  291. package/apps/desktop/workflows/talking-head-cleanup.ts +53 -0
  292. package/dist/NebulaSans-Bold-26se8aek.otf +0 -0
  293. package/dist/NebulaSans-Bold-bcz7y08t.woff2 +0 -0
  294. package/dist/NebulaSans-Book-5ax05zvn.woff2 +0 -0
  295. package/dist/NebulaSans-Book-8cenzchw.otf +0 -0
  296. package/dist/cli.js +479 -0
  297. package/dist/code/advanced.js +270 -0
  298. package/dist/code/index.js +2240 -0
  299. package/dist/generate.js +24 -0
  300. package/dist/host-resources.js +26 -0
  301. package/dist/index-42zsesc1.js +2257 -0
  302. package/dist/index-7308egqr.js +48 -0
  303. package/dist/index-8txs6fkn.js +712 -0
  304. package/dist/index-mcy8z0br.js +192 -0
  305. package/dist/index-p63wavx0.js +2029 -0
  306. package/dist/index-r7gdhmsp.js +424 -0
  307. package/dist/index-sh6xbav6.js +1219 -0
  308. package/dist/index-z1w83f81.js +4 -0
  309. package/dist/index-z7239b4h.js +2363 -0
  310. package/dist/index-zfeg9hmw.js +2013 -0
  311. package/dist/index.js +241 -0
  312. package/dist/operations.js +29 -0
  313. package/dist/skill-install-dh0ntqba.js +10 -0
  314. package/dist/vectorize/worker.js +142 -0
  315. package/dist/workflow.js +16 -0
  316. package/docs/README.md +38 -0
  317. package/docs/studio.md +215 -0
  318. package/examples/studio/blender/README.md +26 -0
  319. package/examples/studio/blender/character.py +152 -0
  320. package/examples/studio/blender/cloth.py +101 -0
  321. package/examples/studio/blender/color_chart.py +29 -0
  322. package/examples/studio/blender/fluid.py +78 -0
  323. package/examples/studio/blender/import_model.py +74 -0
  324. package/examples/studio/blender/product.py +53 -0
  325. package/examples/studio/blender/shaded_street.py +481 -0
  326. package/examples/studio/blender/studio_scene.py +147 -0
  327. package/examples/studio/cadquery/README.md +13 -0
  328. package/examples/studio/cadquery/bracket.py +36 -0
  329. package/examples/studio/cadquery/import_step.py +12 -0
  330. package/examples/studio/education/README.md +46 -0
  331. package/examples/studio/education/lesson.json +99 -0
  332. package/examples/studio/education/scene.py +7 -0
  333. package/examples/studio/hybrid-scene.ts +96 -0
  334. package/examples/studio/native-workflow.ts +14 -0
  335. package/examples/studio/vgpu/README.md +64 -0
  336. package/examples/studio/vgpu/heat-field.mjs +290 -0
  337. package/package.json +304 -0
  338. package/packages/scene/src/index.ts +1 -0
  339. package/packages/scene/src/scene.ts +215 -0
  340. package/schema/diagram.schema.json +334 -0
  341. package/skills/slopcamera/SKILL.md +45 -0
  342. package/skills/slopcamera/agents/openai.yaml +4 -0
  343. package/skills/slopcamera/references/customization.md +77 -0
  344. package/skills/slopcamera/references/diagrams.md +153 -0
  345. package/skills/slopcamera/references/directed-scenes.md +42 -0
  346. package/skills/slopcamera/references/directing-video.md +18 -0
  347. package/skills/slopcamera/references/educational-video.md +26 -0
  348. package/skills/slopcamera/references/gateway-media.md +134 -0
  349. package/skills/slopcamera/references/install.md +62 -0
  350. package/skills/slopcamera/references/native-studio.md +31 -0
  351. package/skills/slopcamera/references/reference-led-3d.md +140 -0
  352. package/skills/slopcamera/references/rubber-stamp-examples/poster-example-1.jpg +0 -0
  353. package/skills/slopcamera/references/rubber-stamp-examples/poster-example-2.jpg +0 -0
  354. package/skills/slopcamera/references/rubber-stamp-examples/stamp-style-1.png +0 -0
  355. package/skills/slopcamera/references/rubber-stamp-examples/stamp-style-2.png +0 -0
  356. package/skills/slopcamera/references/rubber-stamp-field-notes.md +144 -0
  357. package/skills/slopcamera/references/vectorization.md +29 -0
  358. package/skills/slopcamera/references/video-projects.md +187 -0
  359. package/skills/slopcamera/references/visual-communication.md +120 -0
  360. package/skills/slopcamera/references/workflows-sdk.md +45 -0
  361. package/skills/slopcamera/scripts/compose-rubber-stamp-field-note.ts +229 -0
  362. package/src/artifacts.ts +106 -0
  363. package/src/assets/fonts/nebula-sans/LICENSE.txt +96 -0
  364. package/src/assets/fonts/nebula-sans/NebulaSans-Bold.otf +0 -0
  365. package/src/assets/fonts/nebula-sans/NebulaSans-Bold.woff2 +0 -0
  366. package/src/assets/fonts/nebula-sans/NebulaSans-Book.otf +0 -0
  367. package/src/assets/fonts/nebula-sans/NebulaSans-Book.woff2 +0 -0
  368. package/src/assets/fonts/nebula-sans/PROVENANCE.md +21 -0
  369. package/src/assets.d.ts +9 -0
  370. package/src/cli.ts +601 -0
  371. package/src/cloud-errors.ts +26 -0
  372. package/src/code/advanced.ts +10 -0
  373. package/src/code/boundary.ts +21 -0
  374. package/src/code/canonical-json.ts +129 -0
  375. package/src/code/compiler.ts +953 -0
  376. package/src/code/contracts.ts +576 -0
  377. package/src/code/define-workflow.ts +334 -0
  378. package/src/code/errors.ts +41 -0
  379. package/src/code/graph-builder.ts +945 -0
  380. package/src/code/index.ts +121 -0
  381. package/src/code/json-snapshot.ts +899 -0
  382. package/src/code/json-utf8.ts +88 -0
  383. package/src/code/portable-builder.ts +136 -0
  384. package/src/code/projection.ts +378 -0
  385. package/src/code/public-operations.ts +450 -0
  386. package/src/code/runtime.ts +580 -0
  387. package/src/code/sha256.ts +36 -0
  388. package/src/config.ts +180 -0
  389. package/src/desktop.ts +253 -0
  390. package/src/fs.ts +10 -0
  391. package/src/generate.ts +704 -0
  392. package/src/host-resource-posix.ts +161 -0
  393. package/src/host-resources.ts +1749 -0
  394. package/src/icons.ts +58 -0
  395. package/src/index.ts +200 -0
  396. package/src/label-layout.ts +130 -0
  397. package/src/layout.ts +413 -0
  398. package/src/lint.ts +127 -0
  399. package/src/mcp/boundary.ts +354 -0
  400. package/src/mcp/index.ts +33 -0
  401. package/src/mcp/server.ts +272 -0
  402. package/src/mcp/tools.ts +963 -0
  403. package/src/mcp/types.ts +71 -0
  404. package/src/operations.ts +775 -0
  405. package/src/parse.ts +861 -0
  406. package/src/process-environment.ts +17 -0
  407. package/src/render.ts +437 -0
  408. package/src/skill-install.ts +49 -0
  409. package/src/spatial-scene/authoring.ts +27 -0
  410. package/src/spatial-scene/camera-track.ts +83 -0
  411. package/src/spatial-scene/contracts.ts +277 -0
  412. package/src/spatial-scene/evaluate.ts +145 -0
  413. package/src/spatial-scene/gltf.ts +558 -0
  414. package/src/spatial-scene/identity.ts +260 -0
  415. package/src/spatial-scene/index.ts +10 -0
  416. package/src/spatial-scene/inspect.ts +68 -0
  417. package/src/spatial-scene/math.ts +280 -0
  418. package/src/spatial-scene/patch.ts +131 -0
  419. package/src/spatial-scene/time.ts +53 -0
  420. package/src/studio/contracts.ts +129 -0
  421. package/src/studio/index.ts +2 -0
  422. package/src/studio/plan.ts +156 -0
  423. package/src/studio/shared.ts +41 -0
  424. package/src/theme.ts +68 -0
  425. package/src/tldr.ts +474 -0
  426. package/src/types.ts +212 -0
  427. package/src/vectorize/archive.ts +101 -0
  428. package/src/vectorize/command.ts +797 -0
  429. package/src/vectorize/index.ts +27 -0
  430. package/src/vectorize/limits.ts +61 -0
  431. package/src/vectorize/metrics.ts +351 -0
  432. package/src/vectorize/pixels.ts +323 -0
  433. package/src/vectorize/supervisor.ts +339 -0
  434. package/src/vectorize/svg.ts +188 -0
  435. package/src/vectorize/tool.ts +542 -0
  436. package/src/vectorize/types.ts +113 -0
  437. package/src/vectorize/vectorize.ts +634 -0
  438. package/src/vectorize/worker-protocol.ts +40 -0
  439. package/src/vectorize/worker.ts +209 -0
  440. package/src/version.ts +1 -0
  441. package/src/workflow.ts +409 -0
package/dist/index.js ADDED
@@ -0,0 +1,241 @@
1
+ // @bun
2
+ import {
3
+ SLOPCAMERA_VERSION,
4
+ STUDIO_LIMITS,
5
+ SlopcameraMcpToolRuntime,
6
+ StudioCapabilityNameSchema,
7
+ StudioDigestSchema,
8
+ StudioEngineOptionsSchema,
9
+ StudioEngineSchema,
10
+ StudioExecutionProfileSchema,
11
+ StudioJobSchema,
12
+ StudioOutputArtifactSchema,
13
+ StudioOutputFormatSchema,
14
+ StudioOutputInterpretationSchema,
15
+ StudioOutputRoleSchema,
16
+ StudioOutputSpecSchema,
17
+ StudioPathSchema,
18
+ StudioPlanSchema,
19
+ StudioReceiptSchema,
20
+ StudioRenderSchema,
21
+ StudioRuntimeIdentitySchema,
22
+ StudioSourceBundleSchema,
23
+ StudioSourceSpaceSchema,
24
+ WorkspaceBoundary,
25
+ WorkspaceBoundaryError,
26
+ artifactSummary,
27
+ checkDiagramFile,
28
+ desktopDownloadPage,
29
+ desktopStatus,
30
+ diagramApi,
31
+ findDesktopApplication,
32
+ getLatestDesktopRelease,
33
+ inspectStudioBundle,
34
+ inspectStudioPlan,
35
+ installDesktop,
36
+ mcpMaximumRenderedPixels,
37
+ mcpMaximumScale,
38
+ mcpSourceByteLimit,
39
+ openInDesktop,
40
+ parseStudioJob,
41
+ parseStudioPlan,
42
+ parseStudioReceipt,
43
+ parseStudioRuntimeIdentity,
44
+ parseStudioSourceBundle,
45
+ planStudioJob,
46
+ readDiagramFile,
47
+ renderDiagramFile,
48
+ runMcpServer,
49
+ selectDesktopAsset,
50
+ slopcameraApi,
51
+ slopcameraMcpProtocolVersion,
52
+ slopcameraMcpServerName,
53
+ slopcameraMcpTools,
54
+ studioJobSha256,
55
+ studioOutputPath,
56
+ studioRuntimeSha256,
57
+ studioSourceBundleSha256,
58
+ validateStudioReceipt
59
+ } from "./index-zfeg9hmw.js";
60
+ import {
61
+ bundledSkillPath,
62
+ installSkill
63
+ } from "./index-7308egqr.js";
64
+ import"./index-8txs6fkn.js";
65
+ import {
66
+ SlopcameraWorkflowError,
67
+ defineSlopcameraWorkflow,
68
+ runSlopcameraWorkflow
69
+ } from "./index-mcy8z0br.js";
70
+ import {
71
+ DiagramValidationError,
72
+ SlopcameraOperationError,
73
+ StackLayoutError,
74
+ builtInIcons,
75
+ executeSlopcameraOperation,
76
+ executeSlopcameraOperationWithLease,
77
+ isSlopcameraOperationCode,
78
+ lintDiagram,
79
+ parseDiagramSource,
80
+ parseDiagramSpec,
81
+ parseSlopcameraOperationInput,
82
+ renderPng,
83
+ renderSvg,
84
+ resolveDiagramSource,
85
+ resolveEdge,
86
+ resolveStackLayout,
87
+ searchSlopcameraOperations,
88
+ serializeTldr,
89
+ slopcameraOperationCodes,
90
+ slopcameraOperationHostResourceClaims,
91
+ slopcameraOperationRegistry,
92
+ stackLayoutDefaults,
93
+ withSlopcameraOperationHostAdmission
94
+ } from "./index-z7239b4h.js";
95
+ import {
96
+ VTRACER_VERSION,
97
+ VectorizeError,
98
+ vectorizeDefaultLimits,
99
+ vectorizeHardLimits,
100
+ vectorizeImage,
101
+ vectorizeProfileNames,
102
+ vtracerReleases
103
+ } from "./index-p63wavx0.js";
104
+ import {
105
+ SlopcameraCloudError,
106
+ createFixedGatewayFetch,
107
+ generateSlopcameraImage,
108
+ generateSlopcameraImageFile,
109
+ slopcameraGatewayApiBaseUrl,
110
+ slopcameraGatewayCredentialStatus,
111
+ slopcameraImageModels,
112
+ slopcameraMaximumPromptBytes,
113
+ slopcameraMaximumRawImageBytes,
114
+ slopcameraResponseMediaTypes
115
+ } from "./index-r7gdhmsp.js";
116
+ import {
117
+ HOST_RESOURCE_MAX_WAIT_MILLISECONDS,
118
+ HostResourceError,
119
+ createDefaultHostResourceCoordinator,
120
+ createHostResourceCoordinator,
121
+ createProcessLocalHostResourceCoordinator,
122
+ defaultSlopcameraHostResourceProfile,
123
+ defaultSlopcameraHostResourceStateRoot,
124
+ normalizeHostResourceClaims,
125
+ normalizeHostResourceProfile,
126
+ slopcameraHostResourceNames
127
+ } from "./index-sh6xbav6.js";
128
+ import"./index-z1w83f81.js";
129
+ export {
130
+ withSlopcameraOperationHostAdmission,
131
+ vtracerReleases,
132
+ vectorizeProfileNames,
133
+ vectorizeImage,
134
+ vectorizeHardLimits,
135
+ vectorizeDefaultLimits,
136
+ validateStudioReceipt,
137
+ studioSourceBundleSha256,
138
+ studioRuntimeSha256,
139
+ studioOutputPath,
140
+ studioJobSha256,
141
+ stackLayoutDefaults,
142
+ slopcameraResponseMediaTypes,
143
+ slopcameraOperationRegistry,
144
+ slopcameraOperationHostResourceClaims,
145
+ slopcameraOperationCodes,
146
+ slopcameraMcpTools,
147
+ slopcameraMcpServerName,
148
+ slopcameraMcpProtocolVersion,
149
+ slopcameraMaximumRawImageBytes,
150
+ slopcameraMaximumPromptBytes,
151
+ slopcameraImageModels,
152
+ slopcameraHostResourceNames,
153
+ slopcameraGatewayCredentialStatus,
154
+ slopcameraGatewayApiBaseUrl,
155
+ slopcameraApi,
156
+ serializeTldr,
157
+ selectDesktopAsset,
158
+ searchSlopcameraOperations,
159
+ runSlopcameraWorkflow,
160
+ runMcpServer,
161
+ resolveStackLayout,
162
+ resolveEdge,
163
+ resolveDiagramSource,
164
+ renderSvg,
165
+ renderPng,
166
+ renderDiagramFile,
167
+ readDiagramFile,
168
+ planStudioJob,
169
+ parseStudioSourceBundle,
170
+ parseStudioRuntimeIdentity,
171
+ parseStudioReceipt,
172
+ parseStudioPlan,
173
+ parseStudioJob,
174
+ parseSlopcameraOperationInput,
175
+ parseDiagramSpec,
176
+ parseDiagramSource,
177
+ openInDesktop,
178
+ normalizeHostResourceProfile,
179
+ normalizeHostResourceClaims,
180
+ mcpSourceByteLimit,
181
+ mcpMaximumScale,
182
+ mcpMaximumRenderedPixels,
183
+ lintDiagram,
184
+ isSlopcameraOperationCode,
185
+ installSkill,
186
+ installDesktop,
187
+ inspectStudioPlan,
188
+ inspectStudioBundle,
189
+ getLatestDesktopRelease,
190
+ generateSlopcameraImageFile,
191
+ generateSlopcameraImage,
192
+ findDesktopApplication,
193
+ executeSlopcameraOperationWithLease,
194
+ executeSlopcameraOperation,
195
+ diagramApi,
196
+ desktopStatus,
197
+ desktopDownloadPage,
198
+ defineSlopcameraWorkflow,
199
+ defaultSlopcameraHostResourceStateRoot,
200
+ defaultSlopcameraHostResourceProfile,
201
+ createProcessLocalHostResourceCoordinator,
202
+ createHostResourceCoordinator,
203
+ createFixedGatewayFetch,
204
+ createDefaultHostResourceCoordinator,
205
+ checkDiagramFile,
206
+ bundledSkillPath,
207
+ builtInIcons,
208
+ artifactSummary,
209
+ WorkspaceBoundaryError,
210
+ WorkspaceBoundary,
211
+ VectorizeError,
212
+ VTRACER_VERSION,
213
+ StudioSourceSpaceSchema,
214
+ StudioSourceBundleSchema,
215
+ StudioRuntimeIdentitySchema,
216
+ StudioRenderSchema,
217
+ StudioReceiptSchema,
218
+ StudioPlanSchema,
219
+ StudioPathSchema,
220
+ StudioOutputSpecSchema,
221
+ StudioOutputRoleSchema,
222
+ StudioOutputInterpretationSchema,
223
+ StudioOutputFormatSchema,
224
+ StudioOutputArtifactSchema,
225
+ StudioJobSchema,
226
+ StudioExecutionProfileSchema,
227
+ StudioEngineSchema,
228
+ StudioEngineOptionsSchema,
229
+ StudioDigestSchema,
230
+ StudioCapabilityNameSchema,
231
+ StackLayoutError,
232
+ SlopcameraWorkflowError,
233
+ SlopcameraOperationError,
234
+ SlopcameraMcpToolRuntime,
235
+ SlopcameraCloudError,
236
+ STUDIO_LIMITS,
237
+ SLOPCAMERA_VERSION,
238
+ HostResourceError,
239
+ HOST_RESOURCE_MAX_WAIT_MILLISECONDS,
240
+ DiagramValidationError
241
+ };
@@ -0,0 +1,29 @@
1
+ // @bun
2
+ import {
3
+ SlopcameraOperationError,
4
+ executeSlopcameraOperation,
5
+ executeSlopcameraOperationWithLease,
6
+ isSlopcameraOperationCode,
7
+ parseSlopcameraOperationInput,
8
+ searchSlopcameraOperations,
9
+ slopcameraOperationCodes,
10
+ slopcameraOperationHostResourceClaims,
11
+ slopcameraOperationRegistry,
12
+ withSlopcameraOperationHostAdmission
13
+ } from "./index-z7239b4h.js";
14
+ import"./index-p63wavx0.js";
15
+ import"./index-r7gdhmsp.js";
16
+ import"./index-sh6xbav6.js";
17
+ import"./index-z1w83f81.js";
18
+ export {
19
+ withSlopcameraOperationHostAdmission,
20
+ slopcameraOperationRegistry,
21
+ slopcameraOperationHostResourceClaims,
22
+ slopcameraOperationCodes,
23
+ searchSlopcameraOperations,
24
+ parseSlopcameraOperationInput,
25
+ isSlopcameraOperationCode,
26
+ executeSlopcameraOperationWithLease,
27
+ executeSlopcameraOperation,
28
+ SlopcameraOperationError
29
+ };
@@ -0,0 +1,10 @@
1
+ // @bun
2
+ import {
3
+ bundledSkillPath,
4
+ installSkill
5
+ } from "./index-7308egqr.js";
6
+ import"./index-z1w83f81.js";
7
+ export {
8
+ installSkill,
9
+ bundledSkillPath
10
+ };
@@ -0,0 +1,142 @@
1
+ // @bun
2
+ import {
3
+ MAX_VECTORIZE_REQUEST_BYTES,
4
+ MAX_VECTORIZE_RESPONSE_BYTES,
5
+ VECTORIZE_WORKER_PROTOCOL,
6
+ VectorizeError,
7
+ configureVectorizeSharpConcurrency,
8
+ forwardVectorizeWorkerTermination,
9
+ vectorizeImageInProcess,
10
+ withInheritedCommandFileDescriptors
11
+ } from "../index-p63wavx0.js";
12
+ import"../index-z1w83f81.js";
13
+
14
+ // src/vectorize/worker.ts
15
+ import { lstat, realpath } from "fs/promises";
16
+ import { tmpdir } from "os";
17
+ import { basename, dirname } from "path";
18
+ var errorCodes = new Set([
19
+ "input_limit",
20
+ "invalid_input",
21
+ "output_limit",
22
+ "quality_limit",
23
+ "timeout",
24
+ "tool_download",
25
+ "tool_integrity",
26
+ "tool_platform",
27
+ "tool_version",
28
+ "trace_failed",
29
+ "unsafe_svg"
30
+ ]);
31
+ forwardVectorizeWorkerTermination();
32
+ await main();
33
+ async function main() {
34
+ let response;
35
+ try {
36
+ configureVectorizeSharpConcurrency();
37
+ const requestText = await readBoundedInput();
38
+ const request = parseRequest(requestText);
39
+ const input = decodeInput(request.input);
40
+ const temporaryRoot = await validateTemporaryRoot(request.temporaryRoot);
41
+ const result = await withInheritedCommandFileDescriptors(request.options.inheritedFileDescriptors, async () => await vectorizeImageInProcess(input, request.options, temporaryRoot));
42
+ response = {
43
+ ok: true,
44
+ protocol: VECTORIZE_WORKER_PROTOCOL,
45
+ result
46
+ };
47
+ } catch (error) {
48
+ response = {
49
+ error: serializeError(error),
50
+ ok: false,
51
+ protocol: VECTORIZE_WORKER_PROTOCOL
52
+ };
53
+ }
54
+ let encoded = JSON.stringify(response);
55
+ if (Buffer.byteLength(encoded) > MAX_VECTORIZE_RESPONSE_BYTES) {
56
+ encoded = JSON.stringify({
57
+ error: {
58
+ code: "output_limit",
59
+ details: { maximumBytes: MAX_VECTORIZE_RESPONSE_BYTES },
60
+ message: "The vectorization worker response exceeds its IPC limit."
61
+ },
62
+ ok: false,
63
+ protocol: VECTORIZE_WORKER_PROTOCOL
64
+ });
65
+ }
66
+ await Bun.write(Bun.stdout, encoded);
67
+ }
68
+ async function readBoundedInput() {
69
+ const reader = Bun.stdin.stream().getReader();
70
+ const chunks = [];
71
+ let bytes = 0;
72
+ try {
73
+ while (true) {
74
+ const { done, value } = await reader.read();
75
+ if (done)
76
+ break;
77
+ bytes += value.byteLength;
78
+ if (bytes > MAX_VECTORIZE_REQUEST_BYTES) {
79
+ await reader.cancel();
80
+ throw new VectorizeError("input_limit", "The vectorization worker request exceeds its IPC limit.", { bytes, maximumBytes: MAX_VECTORIZE_REQUEST_BYTES });
81
+ }
82
+ chunks.push(value);
83
+ }
84
+ } finally {
85
+ reader.releaseLock();
86
+ }
87
+ return Buffer.concat(chunks, bytes).toString("utf8");
88
+ }
89
+ function parseRequest(text) {
90
+ let parsed;
91
+ try {
92
+ parsed = JSON.parse(text);
93
+ } catch (error) {
94
+ throw new VectorizeError("invalid_input", "The vectorization worker request is malformed.", {}, { cause: error });
95
+ }
96
+ if (!isRecord(parsed) || parsed.protocol !== VECTORIZE_WORKER_PROTOCOL || !isRecord(parsed.input) || !isRecord(parsed.options) || typeof parsed.temporaryRoot !== "string" || parsed.temporaryRoot.length === 0 || typeof parsed.input.kind !== "string" || typeof parsed.input.value !== "string" || !["bytes", "path"].includes(parsed.input.kind)) {
97
+ throw new VectorizeError("invalid_input", "The vectorization worker request is invalid.");
98
+ }
99
+ return parsed;
100
+ }
101
+ function decodeInput(input) {
102
+ if (input.kind === "path")
103
+ return input.value;
104
+ if (input.value.length > Math.ceil(MAX_VECTORIZE_REQUEST_BYTES / 3) * 4 || input.value.length % 4 !== 0) {
105
+ throw new VectorizeError("input_limit", "Encoded raster input exceeds its IPC limit.");
106
+ }
107
+ const bytes = Buffer.from(input.value, "base64");
108
+ if (bytes.toString("base64") !== input.value) {
109
+ throw new VectorizeError("invalid_input", "Encoded raster input is not canonical base64.");
110
+ }
111
+ return bytes;
112
+ }
113
+ async function validateTemporaryRoot(path) {
114
+ let realRoot;
115
+ let realTemporaryDirectory;
116
+ try {
117
+ const resolved = await Promise.all([
118
+ realpath(path),
119
+ realpath(tmpdir())
120
+ ]);
121
+ realRoot = resolved[0];
122
+ realTemporaryDirectory = resolved[1];
123
+ const metadata = await lstat(path);
124
+ if (!metadata.isDirectory() || metadata.isSymbolicLink() || dirname(realRoot) !== realTemporaryDirectory || !/^slopcamera-vectorize-[A-Za-z0-9_-]{6,}$/u.test(basename(realRoot))) {
125
+ throw new VectorizeError("invalid_input", "The supervisor temporary directory is invalid.");
126
+ }
127
+ } catch (error) {
128
+ if (error instanceof VectorizeError)
129
+ throw error;
130
+ throw new VectorizeError("invalid_input", "The supervisor temporary directory could not be verified.", {}, { cause: error });
131
+ }
132
+ return realRoot;
133
+ }
134
+ function serializeError(error) {
135
+ const code = error instanceof VectorizeError && errorCodes.has(error.code) ? error.code : "trace_failed";
136
+ const message = error instanceof Error ? error.message : "The vectorization worker failed.";
137
+ const details = error instanceof VectorizeError && Buffer.byteLength(JSON.stringify(error.details)) <= 64 * 1024 ? error.details : {};
138
+ return { code, details, message };
139
+ }
140
+ function isRecord(value) {
141
+ return typeof value === "object" && value !== null && !Array.isArray(value);
142
+ }
@@ -0,0 +1,16 @@
1
+ // @bun
2
+ import {
3
+ SlopcameraWorkflowError,
4
+ defineSlopcameraWorkflow,
5
+ runSlopcameraWorkflow
6
+ } from "./index-mcy8z0br.js";
7
+ import"./index-z7239b4h.js";
8
+ import"./index-p63wavx0.js";
9
+ import"./index-r7gdhmsp.js";
10
+ import"./index-sh6xbav6.js";
11
+ import"./index-z1w83f81.js";
12
+ export {
13
+ runSlopcameraWorkflow,
14
+ defineSlopcameraWorkflow,
15
+ SlopcameraWorkflowError
16
+ };
package/docs/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Slopcamera documentation
2
+
3
+ Slopcamera retains editable source, renders local or generated media, and assembles it into inspectable video projects. Choose a guide for the work you want to do.
4
+
5
+ These pages describe Slopcamera from current source. [Install that source](how-to/use-current-source.md) to use the CLI, SDK and matching Agent Skill; no Slopcamera release archive is available yet. Historical Atet archives retain their original package and commands. The [capability reference](reference/capabilities.md) distinguishes them and lists local runtime requirements.
6
+
7
+ ## Learn by making something
8
+
9
+ - [Create and revise your first diagram](tutorials/first-diagram.md): make a two-node diagram, inspect its five exports, then change its source.
10
+ - [Render your first native film](tutorials/first-native-film.md): retain a Blender source, render a small shot, and export an ordinary Slopcamera project.
11
+
12
+ ## Complete a task
13
+
14
+ - [Run current-source commands](how-to/use-current-source.md): build an exact checkout of Slopcamera.
15
+
16
+ - [Edit and deliver video](how-to/edit-video.md): import footage, align related tracks, place overlays, and check a delivery.
17
+ - [Generate images, video, or narration](how-to/generate-media.md): discover Gateway capabilities, acknowledge selected uploads, and retain the result.
18
+ - [Direct short generated clips](directing-video.md): budget, review takes, preserve endpoint continuity, and recover uncertain work.
19
+ - [Author a native film](studio.md): use Blender, CadQuery, or Manim; retain caches; share assets and calibrated cameras.
20
+ - [Render and edit spatial scenes](spatial-scenes.md): patch named entities, use hardware rendering, import a saved world, or prepare a V2 shot composition.
21
+ - [Make an educational video](how-to/educational-video.md): keep mathematical visuals, narration, and timing evidence revisable.
22
+ - [Run or recover a workflow](how-to/run-workflows.md): use a built-in recipe or trusted Bun module and inspect its durable run.
23
+ - [Configure Vercel](vercel.md) or [publish Slopcamera](publishing.md): provider and maintainer procedures.
24
+
25
+ ## Look up a contract
26
+
27
+ - [Capabilities, versions, and platforms](reference/capabilities.md): current Slopcamera capabilities, historical Atet versions, and supported runtime boundaries.
28
+ - [SDK surfaces](reference/sdk.md): portable and local imports, operation projections, and execution contracts.
29
+ - [CLI help](reference/capabilities.md#discover-the-installed-contract): exact grammar and JSON schemas from the installed host.
30
+
31
+ ## Understand the design
32
+
33
+ - [Source, representations, and projects](architecture.md): what stays editable, what a receipt proves, and how local and cloud work fit together.
34
+ - [Choose an HTML authoring surface](html-overlay-creative-toolkit.md): why DOM, vector, Three.js, and explicit GPU profiles serve different jobs. Its ecosystem research is dated separately from its supported locks.
35
+
36
+ ## Work with an agent
37
+
38
+ The [Slopcamera Agent Skill](../skills/slopcamera/SKILL.md) routes an agent to the relevant task reference. Install the skill from the same source build as your CLI; installing a skill alone does not install the CLI or native tools. See the [installation instructions](../README.md#install-slopcamera).