@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.
- package/LICENSE +21 -0
- package/NOTICE.md +60 -0
- package/PRIVACY.md +46 -0
- package/README.md +311 -0
- package/SECURITY.md +21 -0
- package/apps/desktop/README.md +966 -0
- package/apps/desktop/analysis/protocol.ts +223 -0
- package/apps/desktop/application/capability-binding.ts +594 -0
- package/apps/desktop/application/context.ts +97 -0
- package/apps/desktop/application/creative-iteration.ts +1385 -0
- package/apps/desktop/application/default-registry.ts +146 -0
- package/apps/desktop/application/directing-contract.ts +218 -0
- package/apps/desktop/application/directing-plan.ts +178 -0
- package/apps/desktop/application/errors.ts +18 -0
- package/apps/desktop/application/gateway-port.ts +867 -0
- package/apps/desktop/application/html-overlay-browser-runtime.ts +687 -0
- package/apps/desktop/application/html-overlay-integrity.ts +337 -0
- package/apps/desktop/application/html-overlay-renderer.ts +45 -0
- package/apps/desktop/application/index.ts +13 -0
- package/apps/desktop/application/operation-completion-checkpoint.ts +333 -0
- package/apps/desktop/application/operation-effects.ts +94 -0
- package/apps/desktop/application/operation.ts +224 -0
- package/apps/desktop/application/operations/analysis/faces.ts +244 -0
- package/apps/desktop/application/operations/analysis/music.ts +248 -0
- package/apps/desktop/application/operations/analysis/project-auto-zooms.ts +302 -0
- package/apps/desktop/application/operations/analysis/project-inactivity.ts +381 -0
- package/apps/desktop/application/operations/analysis/scenes.ts +272 -0
- package/apps/desktop/application/operations/analysis/shared.ts +202 -0
- package/apps/desktop/application/operations/derive/edit-batch.ts +967 -0
- package/apps/desktop/application/operations/derive/follow-faces.ts +454 -0
- package/apps/desktop/application/operations/edit/bind-candidate-revision.ts +91 -0
- package/apps/desktop/application/operations/edit/create-candidate-revision.ts +377 -0
- package/apps/desktop/application/operations/edit/create-revision.ts +255 -0
- package/apps/desktop/application/operations/edit/freeze-revision.ts +182 -0
- package/apps/desktop/application/operations/gateway/image.ts +41 -0
- package/apps/desktop/application/operations/gateway/index.ts +17 -0
- package/apps/desktop/application/operations/gateway/shared.ts +122 -0
- package/apps/desktop/application/operations/gateway/speech.ts +41 -0
- package/apps/desktop/application/operations/gateway/transcription.ts +42 -0
- package/apps/desktop/application/operations/gateway/video.ts +41 -0
- package/apps/desktop/application/operations/index.ts +31 -0
- package/apps/desktop/application/operations/iteration/create-candidate.ts +240 -0
- package/apps/desktop/application/operations/iteration/create-matrix.ts +117 -0
- package/apps/desktop/application/operations/iteration/select.ts +155 -0
- package/apps/desktop/application/operations/iteration/shared.ts +250 -0
- package/apps/desktop/application/operations/media/audio-effects.ts +376 -0
- package/apps/desktop/application/operations/media/binding.ts +79 -0
- package/apps/desktop/application/operations/media/capabilities.ts +112 -0
- package/apps/desktop/application/operations/media/color-grade.ts +343 -0
- package/apps/desktop/application/operations/media/html-overlay.ts +802 -0
- package/apps/desktop/application/operations/media/index.ts +8 -0
- package/apps/desktop/application/operations/media/ingest.ts +303 -0
- package/apps/desktop/application/operations/media/overlay.ts +729 -0
- package/apps/desktop/application/operations/media/shared.ts +845 -0
- package/apps/desktop/application/operations/media/transform-platform.ts +120 -0
- package/apps/desktop/application/operations/project/commit-edits.ts +2054 -0
- package/apps/desktop/application/operations/project/promote-selection.ts +495 -0
- package/apps/desktop/application/operations/project/snapshot.ts +95 -0
- package/apps/desktop/application/operations/recording/index.ts +5 -0
- package/apps/desktop/application/operations/recording/pause.ts +34 -0
- package/apps/desktop/application/operations/recording/resume.ts +34 -0
- package/apps/desktop/application/operations/recording/shared.ts +199 -0
- package/apps/desktop/application/operations/recording/start.ts +169 -0
- package/apps/desktop/application/operations/recording/stop.ts +34 -0
- package/apps/desktop/application/operations/render/bind-candidate-output.ts +324 -0
- package/apps/desktop/application/operations/render/materialize-selection.ts +322 -0
- package/apps/desktop/application/operations/render/project-caption-plan.ts +287 -0
- package/apps/desktop/application/operations/render/project-plan.ts +939 -0
- package/apps/desktop/application/operations/render/project-spatial-receipt.ts +70 -0
- package/apps/desktop/application/operations/render/project.ts +1922 -0
- package/apps/desktop/application/operations/shared.ts +67 -0
- package/apps/desktop/application/operations/slopcamera-portable.ts +1188 -0
- package/apps/desktop/application/operations/slopcamera-visuals.ts +784 -0
- package/apps/desktop/application/operations/spatial-project.ts +209 -0
- package/apps/desktop/application/operations/spatial-render.ts +415 -0
- package/apps/desktop/application/operations/spatial-scene.ts +97 -0
- package/apps/desktop/application/operations/studio.ts +143 -0
- package/apps/desktop/application/output-publication-lease.ts +163 -0
- package/apps/desktop/application/project-publication-lease.ts +233 -0
- package/apps/desktop/application/project-store.ts +196 -0
- package/apps/desktop/application/receipts.ts +533 -0
- package/apps/desktop/application/registry.ts +182 -0
- package/apps/desktop/application/spatial-assets.ts +675 -0
- package/apps/desktop/application/spatial-compositor-cadence.ts +23 -0
- package/apps/desktop/application/spatial-project-authority.ts +35 -0
- package/apps/desktop/application/spatial-project-lease.ts +126 -0
- package/apps/desktop/application/spatial-project-render-preparation.ts +225 -0
- package/apps/desktop/application/spatial-project-store.ts +286 -0
- package/apps/desktop/application/spatial-render-projection.ts +201 -0
- package/apps/desktop/application/spatial-render.ts +677 -0
- package/apps/desktop/application/spatial-spz.ts +44 -0
- package/apps/desktop/application/spatial-world-import.ts +135 -0
- package/apps/desktop/application/spatial-world-provenance.ts +46 -0
- package/apps/desktop/application/studio-port.ts +58 -0
- package/apps/desktop/application/verified-receipt-reconciliation.ts +1574 -0
- package/apps/desktop/capture/protocol.ts +689 -0
- package/apps/desktop/cli/analyzer.ts +406 -0
- package/apps/desktop/cli/args.ts +3181 -0
- package/apps/desktop/cli/asset-ingest.ts +747 -0
- package/apps/desktop/cli/atomic-render-effects.ts +210 -0
- package/apps/desktop/cli/atomic-render-platform.ts +205 -0
- package/apps/desktop/cli/atomic-render.ts +50 -0
- package/apps/desktop/cli/audio-analysis.ts +252 -0
- package/apps/desktop/cli/bounded-map.ts +39 -0
- package/apps/desktop/cli/bundle-service.ts +256 -0
- package/apps/desktop/cli/capabilities.ts +212 -0
- package/apps/desktop/cli/capture-bundle.ts +1117 -0
- package/apps/desktop/cli/command-host-resources.ts +251 -0
- package/apps/desktop/cli/commands.ts +6836 -0
- package/apps/desktop/cli/directing-blob.ts +291 -0
- package/apps/desktop/cli/directing-media.ts +517 -0
- package/apps/desktop/cli/directing-quote.ts +89 -0
- package/apps/desktop/cli/directing-service.ts +288 -0
- package/apps/desktop/cli/emoji-assets.ts +538 -0
- package/apps/desktop/cli/errors.ts +29 -0
- package/apps/desktop/cli/face-analysis-service.ts +940 -0
- package/apps/desktop/cli/filter-script.ts +76 -0
- package/apps/desktop/cli/gateway-application-port.ts +1142 -0
- package/apps/desktop/cli/gateway-credential.ts +81 -0
- package/apps/desktop/cli/gateway-media-artifacts.ts +723 -0
- package/apps/desktop/cli/gateway-media-catalog.ts +922 -0
- package/apps/desktop/cli/gateway-media-service.ts +3106 -0
- package/apps/desktop/cli/gateway-media-signature.ts +122 -0
- package/apps/desktop/cli/gateway-provider-options.ts +562 -0
- package/apps/desktop/cli/gateway-scene-provider.ts +391 -0
- package/apps/desktop/cli/help.ts +501 -0
- package/apps/desktop/cli/html-overlay-gpu.ts +97 -0
- package/apps/desktop/cli/html-overlay-renderer.ts +2478 -0
- package/apps/desktop/cli/io.ts +290 -0
- package/apps/desktop/cli/main.ts +123 -0
- package/apps/desktop/cli/media-effects-service.ts +885 -0
- package/apps/desktop/cli/media-ingest-model.ts +364 -0
- package/apps/desktop/cli/media-ingest-platform.ts +227 -0
- package/apps/desktop/cli/media-ingest-program.ts +200 -0
- package/apps/desktop/cli/media-ingest.ts +30 -0
- package/apps/desktop/cli/music-analysis-service.ts +434 -0
- package/apps/desktop/cli/mutation-lock.ts +530 -0
- package/apps/desktop/cli/native-assets.d.ts +12 -0
- package/apps/desktop/cli/native-media-runtime.macos.ts +7 -0
- package/apps/desktop/cli/overlay-playback.ts +177 -0
- package/apps/desktop/cli/paths.ts +265 -0
- package/apps/desktop/cli/portable-surface.ts +242 -0
- package/apps/desktop/cli/project-camera-receipt.ts +112 -0
- package/apps/desktop/cli/project-face-camera.ts +394 -0
- package/apps/desktop/cli/project-inactivity-service.ts +552 -0
- package/apps/desktop/cli/project-media-integrity.ts +121 -0
- package/apps/desktop/cli/project-renderer.ts +1526 -0
- package/apps/desktop/cli/project-service.ts +519 -0
- package/apps/desktop/cli/project-state-transaction.ts +520 -0
- package/apps/desktop/cli/query-limits.ts +1 -0
- package/apps/desktop/cli/recording-controller.ts +1567 -0
- package/apps/desktop/cli/recording-daemon.ts +931 -0
- package/apps/desktop/cli/recording-ref.ts +56 -0
- package/apps/desktop/cli/renamed-environment.ts +6 -0
- package/apps/desktop/cli/renderer.ts +1439 -0
- package/apps/desktop/cli/run-cli-test-helper.ts +60 -0
- package/apps/desktop/cli/scene-analysis-service.ts +879 -0
- package/apps/desktop/cli/spatial-compositor-verifier.ts +213 -0
- package/apps/desktop/cli/spatial-project-service.ts +90 -0
- package/apps/desktop/cli/spatial-scene-service.ts +105 -0
- package/apps/desktop/cli/spatial-world-service.ts +39 -0
- package/apps/desktop/cli/speech-analysis-service.ts +682 -0
- package/apps/desktop/cli/studio-assemble.ts +58 -0
- package/apps/desktop/cli/studio-command.ts +60 -0
- package/apps/desktop/cli/studio-custody.ts +60 -0
- package/apps/desktop/cli/studio-encode.ts +216 -0
- package/apps/desktop/cli/studio-exr.ts +52 -0
- package/apps/desktop/cli/studio-files.ts +179 -0
- package/apps/desktop/cli/studio-output-validation.ts +162 -0
- package/apps/desktop/cli/studio-process.ts +145 -0
- package/apps/desktop/cli/studio-runtime.ts +77 -0
- package/apps/desktop/cli/studio-scaffold.ts +70 -0
- package/apps/desktop/cli/studio-service.ts +301 -0
- package/apps/desktop/cli/studio-spatial-asset.ts +248 -0
- package/apps/desktop/cli/studio-template-names.ts +3 -0
- package/apps/desktop/cli/studio-workflow.ts +19 -0
- package/apps/desktop/cli/time.ts +25 -0
- package/apps/desktop/cli/workflow-code.ts +584 -0
- package/apps/desktop/cli/workflow-runs.ts +576 -0
- package/apps/desktop/code/advanced.ts +139 -0
- package/apps/desktop/code/application-node-planner.ts +1288 -0
- package/apps/desktop/code/compiler.ts +329 -0
- package/apps/desktop/code/contracts.ts +13 -0
- package/apps/desktop/code/creative-recipes.ts +94 -0
- package/apps/desktop/code/define-workflow.ts +115 -0
- package/apps/desktop/code/editing.ts +284 -0
- package/apps/desktop/code/file-candidate-provenance.ts +420 -0
- package/apps/desktop/code/file-candidate.ts +69 -0
- package/apps/desktop/code/graph-builder.ts +10 -0
- package/apps/desktop/code/host-resource-policy.ts +55 -0
- package/apps/desktop/code/plan-contracts.ts +159 -0
- package/apps/desktop/code/planning.ts +361 -0
- package/apps/desktop/code/public.ts +134 -0
- package/apps/desktop/code/reference-projection.ts +62 -0
- package/apps/desktop/code/run-contracts.ts +466 -0
- package/apps/desktop/code/run-store.ts +2478 -0
- package/apps/desktop/code/runtime-identity.ts +328 -0
- package/apps/desktop/code/scheduler.ts +3067 -0
- package/apps/desktop/code/semantic-builder.ts +1436 -0
- package/apps/desktop/code/source-bundle.ts +1641 -0
- package/apps/desktop/code/source-typecheck.ts +211 -0
- package/apps/desktop/code/testing.ts +79 -0
- package/apps/desktop/code/worker-client.ts +1675 -0
- package/apps/desktop/code/worker-effects.ts +141 -0
- package/apps/desktop/code/worker-entry.ts +435 -0
- package/apps/desktop/code/worker-lease-guardian.ts +179 -0
- package/apps/desktop/code/worker-process-identity.ts +484 -0
- package/apps/desktop/code/worker-protocol.ts +211 -0
- package/apps/desktop/code/workflow-effects.ts +132 -0
- package/apps/desktop/contracts/analysis.ts +949 -0
- package/apps/desktop/contracts/edit.ts +576 -0
- package/apps/desktop/contracts/index.ts +9 -0
- package/apps/desktop/contracts/media-effects.ts +139 -0
- package/apps/desktop/contracts/project-render.ts +644 -0
- package/apps/desktop/contracts/project.ts +740 -0
- package/apps/desktop/contracts/recording.ts +1434 -0
- package/apps/desktop/contracts/render.ts +334 -0
- package/apps/desktop/contracts/runtime.ts +155 -0
- package/apps/desktop/contracts/spatial-compositor.ts +58 -0
- package/apps/desktop/contracts/spatial-project.ts +159 -0
- package/apps/desktop/contracts/spatial-world.ts +48 -0
- package/apps/desktop/contracts/video-effects.ts +120 -0
- package/apps/desktop/core/alignment-apply.ts +400 -0
- package/apps/desktop/core/audio-alignment.ts +466 -0
- package/apps/desktop/core/auto-zoom.ts +209 -0
- package/apps/desktop/core/canonical-json.ts +14 -0
- package/apps/desktop/core/emoji.ts +210 -0
- package/apps/desktop/core/events.ts +409 -0
- package/apps/desktop/core/face-framing.ts +533 -0
- package/apps/desktop/core/face-tracks.ts +326 -0
- package/apps/desktop/core/inactivity.ts +137 -0
- package/apps/desktop/core/index.ts +30 -0
- package/apps/desktop/core/intervals.ts +123 -0
- package/apps/desktop/core/montage.ts +236 -0
- package/apps/desktop/core/music-analysis.ts +518 -0
- package/apps/desktop/core/plan.ts +244 -0
- package/apps/desktop/core/project-auto-zoom.ts +75 -0
- package/apps/desktop/core/project-camera-spatial.ts +676 -0
- package/apps/desktop/core/project-camera.ts +403 -0
- package/apps/desktop/core/project-captions.ts +888 -0
- package/apps/desktop/core/project-inactivity.ts +125 -0
- package/apps/desktop/core/project-metadata.ts +927 -0
- package/apps/desktop/core/project-plan.ts +375 -0
- package/apps/desktop/core/project-render-plan.ts +303 -0
- package/apps/desktop/core/project-time.ts +469 -0
- package/apps/desktop/core/render-plan.ts +442 -0
- package/apps/desktop/core/scene-cache.ts +174 -0
- package/apps/desktop/core/scene-sampling.ts +448 -0
- package/apps/desktop/core/spatial-compositor.ts +22 -0
- package/apps/desktop/core/spatial-durability.ts +99 -0
- package/apps/desktop/core/spatial-project.ts +169 -0
- package/apps/desktop/core/spatial-shot-clock.ts +32 -0
- package/apps/desktop/core/speech-analysis.ts +333 -0
- package/apps/desktop/core/storage.ts +970 -0
- package/apps/desktop/core/time-map.ts +91 -0
- package/apps/desktop/core/time.ts +61 -0
- package/apps/desktop/core/video-effects.ts +660 -0
- package/apps/desktop/dist/cli/NebulaSans-Bold-26se8aek.otf +0 -0
- package/apps/desktop/dist/cli/NebulaSans-Bold-bcz7y08t.woff2 +0 -0
- package/apps/desktop/dist/cli/NebulaSans-Book-5ax05zvn.woff2 +0 -0
- package/apps/desktop/dist/cli/NebulaSans-Book-8cenzchw.otf +0 -0
- package/apps/desktop/dist/cli/main.js +5086 -0
- package/apps/desktop/html-overlay/catalog.ts +171 -0
- package/apps/desktop/html-overlay/contracts.ts +372 -0
- package/apps/desktop/html-overlay/execution-profile.ts +77 -0
- package/apps/desktop/html-overlay/index.ts +98 -0
- package/apps/desktop/html-overlay/libraries.ts +263 -0
- package/apps/desktop/html-overlay/random.ts +49 -0
- package/apps/desktop/html-overlay/runtime.ts +813 -0
- package/apps/desktop/html-overlay/scaffolds.ts +792 -0
- package/apps/desktop/html-overlay/spark-runtime.ts +88 -0
- package/apps/desktop/html-overlay/spatial-splat-runtime.ts +60 -0
- package/apps/desktop/html-overlay/spatial.ts +720 -0
- package/apps/desktop/studio/assets/README.md +39 -0
- package/apps/desktop/studio/assets/contracts.ts +129 -0
- package/apps/desktop/studio/assets/network.ts +64 -0
- package/apps/desktop/studio/assets/poly-haven.ts +148 -0
- package/apps/desktop/studio/drivers/blender_driver.py +466 -0
- package/apps/desktop/studio/drivers/cadquery_driver.py +176 -0
- package/apps/desktop/studio/education/driver.py +308 -0
- package/apps/desktop/studio/education/lesson.py +180 -0
- package/apps/desktop/studio/education/toolkit.py +249 -0
- package/apps/desktop/workflows/chaptered-demo.ts +48 -0
- package/apps/desktop/workflows/creative-iteration.ts +107 -0
- package/apps/desktop/workflows/creative-selection.ts +92 -0
- package/apps/desktop/workflows/fragments.ts +486 -0
- package/apps/desktop/workflows/index.ts +93 -0
- package/apps/desktop/workflows/polished-screen-demo.ts +128 -0
- package/apps/desktop/workflows/scene-direction.ts +12 -0
- package/apps/desktop/workflows/social-variants.ts +75 -0
- package/apps/desktop/workflows/talking-head-cleanup.ts +53 -0
- package/dist/NebulaSans-Bold-26se8aek.otf +0 -0
- package/dist/NebulaSans-Bold-bcz7y08t.woff2 +0 -0
- package/dist/NebulaSans-Book-5ax05zvn.woff2 +0 -0
- package/dist/NebulaSans-Book-8cenzchw.otf +0 -0
- package/dist/cli.js +479 -0
- package/dist/code/advanced.js +270 -0
- package/dist/code/index.js +2240 -0
- package/dist/generate.js +24 -0
- package/dist/host-resources.js +26 -0
- package/dist/index-42zsesc1.js +2257 -0
- package/dist/index-7308egqr.js +48 -0
- package/dist/index-8txs6fkn.js +712 -0
- package/dist/index-mcy8z0br.js +192 -0
- package/dist/index-p63wavx0.js +2029 -0
- package/dist/index-r7gdhmsp.js +424 -0
- package/dist/index-sh6xbav6.js +1219 -0
- package/dist/index-z1w83f81.js +4 -0
- package/dist/index-z7239b4h.js +2363 -0
- package/dist/index-zfeg9hmw.js +2013 -0
- package/dist/index.js +241 -0
- package/dist/operations.js +29 -0
- package/dist/skill-install-dh0ntqba.js +10 -0
- package/dist/vectorize/worker.js +142 -0
- package/dist/workflow.js +16 -0
- package/docs/README.md +38 -0
- package/docs/studio.md +215 -0
- package/examples/studio/blender/README.md +26 -0
- package/examples/studio/blender/character.py +152 -0
- package/examples/studio/blender/cloth.py +101 -0
- package/examples/studio/blender/color_chart.py +29 -0
- package/examples/studio/blender/fluid.py +78 -0
- package/examples/studio/blender/import_model.py +74 -0
- package/examples/studio/blender/product.py +53 -0
- package/examples/studio/blender/shaded_street.py +481 -0
- package/examples/studio/blender/studio_scene.py +147 -0
- package/examples/studio/cadquery/README.md +13 -0
- package/examples/studio/cadquery/bracket.py +36 -0
- package/examples/studio/cadquery/import_step.py +12 -0
- package/examples/studio/education/README.md +46 -0
- package/examples/studio/education/lesson.json +99 -0
- package/examples/studio/education/scene.py +7 -0
- package/examples/studio/hybrid-scene.ts +96 -0
- package/examples/studio/native-workflow.ts +14 -0
- package/examples/studio/vgpu/README.md +64 -0
- package/examples/studio/vgpu/heat-field.mjs +290 -0
- package/package.json +304 -0
- package/packages/scene/src/index.ts +1 -0
- package/packages/scene/src/scene.ts +215 -0
- package/schema/diagram.schema.json +334 -0
- package/skills/slopcamera/SKILL.md +45 -0
- package/skills/slopcamera/agents/openai.yaml +4 -0
- package/skills/slopcamera/references/customization.md +77 -0
- package/skills/slopcamera/references/diagrams.md +153 -0
- package/skills/slopcamera/references/directed-scenes.md +42 -0
- package/skills/slopcamera/references/directing-video.md +18 -0
- package/skills/slopcamera/references/educational-video.md +26 -0
- package/skills/slopcamera/references/gateway-media.md +134 -0
- package/skills/slopcamera/references/install.md +62 -0
- package/skills/slopcamera/references/native-studio.md +31 -0
- package/skills/slopcamera/references/reference-led-3d.md +140 -0
- package/skills/slopcamera/references/rubber-stamp-examples/poster-example-1.jpg +0 -0
- package/skills/slopcamera/references/rubber-stamp-examples/poster-example-2.jpg +0 -0
- package/skills/slopcamera/references/rubber-stamp-examples/stamp-style-1.png +0 -0
- package/skills/slopcamera/references/rubber-stamp-examples/stamp-style-2.png +0 -0
- package/skills/slopcamera/references/rubber-stamp-field-notes.md +144 -0
- package/skills/slopcamera/references/vectorization.md +29 -0
- package/skills/slopcamera/references/video-projects.md +187 -0
- package/skills/slopcamera/references/visual-communication.md +120 -0
- package/skills/slopcamera/references/workflows-sdk.md +45 -0
- package/skills/slopcamera/scripts/compose-rubber-stamp-field-note.ts +229 -0
- package/src/artifacts.ts +106 -0
- package/src/assets/fonts/nebula-sans/LICENSE.txt +96 -0
- package/src/assets/fonts/nebula-sans/NebulaSans-Bold.otf +0 -0
- package/src/assets/fonts/nebula-sans/NebulaSans-Bold.woff2 +0 -0
- package/src/assets/fonts/nebula-sans/NebulaSans-Book.otf +0 -0
- package/src/assets/fonts/nebula-sans/NebulaSans-Book.woff2 +0 -0
- package/src/assets/fonts/nebula-sans/PROVENANCE.md +21 -0
- package/src/assets.d.ts +9 -0
- package/src/cli.ts +601 -0
- package/src/cloud-errors.ts +26 -0
- package/src/code/advanced.ts +10 -0
- package/src/code/boundary.ts +21 -0
- package/src/code/canonical-json.ts +129 -0
- package/src/code/compiler.ts +953 -0
- package/src/code/contracts.ts +576 -0
- package/src/code/define-workflow.ts +334 -0
- package/src/code/errors.ts +41 -0
- package/src/code/graph-builder.ts +945 -0
- package/src/code/index.ts +121 -0
- package/src/code/json-snapshot.ts +899 -0
- package/src/code/json-utf8.ts +88 -0
- package/src/code/portable-builder.ts +136 -0
- package/src/code/projection.ts +378 -0
- package/src/code/public-operations.ts +450 -0
- package/src/code/runtime.ts +580 -0
- package/src/code/sha256.ts +36 -0
- package/src/config.ts +180 -0
- package/src/desktop.ts +253 -0
- package/src/fs.ts +10 -0
- package/src/generate.ts +704 -0
- package/src/host-resource-posix.ts +161 -0
- package/src/host-resources.ts +1749 -0
- package/src/icons.ts +58 -0
- package/src/index.ts +200 -0
- package/src/label-layout.ts +130 -0
- package/src/layout.ts +413 -0
- package/src/lint.ts +127 -0
- package/src/mcp/boundary.ts +354 -0
- package/src/mcp/index.ts +33 -0
- package/src/mcp/server.ts +272 -0
- package/src/mcp/tools.ts +963 -0
- package/src/mcp/types.ts +71 -0
- package/src/operations.ts +775 -0
- package/src/parse.ts +861 -0
- package/src/process-environment.ts +17 -0
- package/src/render.ts +437 -0
- package/src/skill-install.ts +49 -0
- package/src/spatial-scene/authoring.ts +27 -0
- package/src/spatial-scene/camera-track.ts +83 -0
- package/src/spatial-scene/contracts.ts +277 -0
- package/src/spatial-scene/evaluate.ts +145 -0
- package/src/spatial-scene/gltf.ts +558 -0
- package/src/spatial-scene/identity.ts +260 -0
- package/src/spatial-scene/index.ts +10 -0
- package/src/spatial-scene/inspect.ts +68 -0
- package/src/spatial-scene/math.ts +280 -0
- package/src/spatial-scene/patch.ts +131 -0
- package/src/spatial-scene/time.ts +53 -0
- package/src/studio/contracts.ts +129 -0
- package/src/studio/index.ts +2 -0
- package/src/studio/plan.ts +156 -0
- package/src/studio/shared.ts +41 -0
- package/src/theme.ts +68 -0
- package/src/tldr.ts +474 -0
- package/src/types.ts +212 -0
- package/src/vectorize/archive.ts +101 -0
- package/src/vectorize/command.ts +797 -0
- package/src/vectorize/index.ts +27 -0
- package/src/vectorize/limits.ts +61 -0
- package/src/vectorize/metrics.ts +351 -0
- package/src/vectorize/pixels.ts +323 -0
- package/src/vectorize/supervisor.ts +339 -0
- package/src/vectorize/svg.ts +188 -0
- package/src/vectorize/tool.ts +542 -0
- package/src/vectorize/types.ts +113 -0
- package/src/vectorize/vectorize.ts +634 -0
- package/src/vectorize/worker-protocol.ts +40 -0
- package/src/vectorize/worker.ts +209 -0
- package/src/version.ts +1 -0
- package/src/workflow.ts +409 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Hraness contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Notices
|
|
2
|
+
|
|
3
|
+
Slopcamera is an independent project and is not affiliated with or endorsed by
|
|
4
|
+
tldraw, Inc.
|
|
5
|
+
|
|
6
|
+
The runtime package does not include the tldraw SDK or tldraw Offline. It writes
|
|
7
|
+
the documented `.tldr` JSON interchange format so that users can import a
|
|
8
|
+
diagram into compatible tldraw software. The development test suite optionally
|
|
9
|
+
uses the upstream `tldraw` package to check compatibility; that package remains
|
|
10
|
+
under the [tldraw license](https://tldraw.dev/community/license).
|
|
11
|
+
|
|
12
|
+
The optional `slopcamera canvas install` command downloads an unmodified installer
|
|
13
|
+
from the official
|
|
14
|
+
[`tldraw/tldraw-offline`](https://github.com/tldraw/tldraw-offline) GitHub
|
|
15
|
+
release and verifies the SHA-256 digest published by GitHub. tldraw Offline is
|
|
16
|
+
not open source and remains subject to its own terms.
|
|
17
|
+
|
|
18
|
+
tldraw and its associated marks are trademarks of tldraw, Inc.
|
|
19
|
+
|
|
20
|
+
Raster output uses
|
|
21
|
+
[`@resvg/resvg-js`](https://github.com/yisibl/resvg-js), distributed under the
|
|
22
|
+
Mozilla Public License 2.0. It is installed as a separate runtime dependency
|
|
23
|
+
and is not relicensed by this project.
|
|
24
|
+
|
|
25
|
+
Default diagram and caption typography uses the unmodified Nebula Sans Book
|
|
26
|
+
and Bold fonts, distributed under the SIL Open Font License 1.1. The npm
|
|
27
|
+
package retains the upstream license and provenance in
|
|
28
|
+
`src/assets/fonts/nebula-sans/`.
|
|
29
|
+
|
|
30
|
+
Raster-to-SVG conversion uses
|
|
31
|
+
[`VTracer`](https://github.com/visioncortex/vtracer), distributed under the MIT
|
|
32
|
+
License. The package does not bundle VTracer. On first use it downloads an
|
|
33
|
+
unmodified macOS or Linux platform archive from the official VTracer 0.6.4
|
|
34
|
+
GitHub release, verifies both archive and extracted binary SHA-256, and caches
|
|
35
|
+
the binary outside the package.
|
|
36
|
+
|
|
37
|
+
Raster decoding and fidelity measurement use
|
|
38
|
+
[`sharp`](https://github.com/lovell/sharp), distributed under the Apache
|
|
39
|
+
License 2.0. Sharp's prebuilt
|
|
40
|
+
[`libvips`](https://github.com/libvips/libvips) dependency is distributed under
|
|
41
|
+
the GNU Lesser General Public License 3.0 or later. Both remain separately
|
|
42
|
+
installed runtime dependencies and are not relicensed by this project.
|
|
43
|
+
|
|
44
|
+
Optional model-backed generation uses
|
|
45
|
+
[`@ai-sdk/gateway`](https://www.npmjs.com/package/@ai-sdk/gateway) and the
|
|
46
|
+
[`ai`](https://www.npmjs.com/package/ai) SDK. Prompts and referenced media are
|
|
47
|
+
sent to Vercel AI Gateway and the model provider selected by the caller, under
|
|
48
|
+
those services' terms. Slopcamera does not operate an intermediary generation
|
|
49
|
+
service.
|
|
50
|
+
|
|
51
|
+
The production `slopcamera.com` browser bundle includes
|
|
52
|
+
[`posthog-js`](https://github.com/PostHog/posthog-js), distributed under its
|
|
53
|
+
combined Apache License 2.0 and MIT terms. The fingerprinted bundle carries the
|
|
54
|
+
upstream license text generated from the exact locked package.
|
|
55
|
+
|
|
56
|
+
The complete local workflow host uses
|
|
57
|
+
[`Effect`](https://github.com/Effect-TS/effect), distributed under the MIT
|
|
58
|
+
License (Copyright 2023 Effectful Technologies Inc). It remains a separately
|
|
59
|
+
installed runtime dependency and is not relicensed by this project. Portable
|
|
60
|
+
workflow authoring and graph compilation do not load this runtime.
|
package/PRIVACY.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Privacy and local data
|
|
2
|
+
|
|
3
|
+
`@hraness/slopcamera` is a local-first media authoring toolkit for work that the
|
|
4
|
+
operator owns or is authorized to record, import, edit, analyze, and publish.
|
|
5
|
+
This document describes the data it can capture, the local execution boundary,
|
|
6
|
+
and the selected media that can leave the machine.
|
|
7
|
+
|
|
8
|
+
On macOS, Slopcamera can request permission to record selected displays, system
|
|
9
|
+
audio, a selected camera, and a selected microphone. When interaction metadata
|
|
10
|
+
is enabled, it can record cursor positions, clicks, key activity, focused-input
|
|
11
|
+
bounds, display topology, and changed window snapshots. Typed-text collection
|
|
12
|
+
is separately opt-in. Slopcamera suppresses secure fields even when typed-text
|
|
13
|
+
collection is enabled.
|
|
14
|
+
|
|
15
|
+
Slopcamera can also read caller-selected local media and project files, invoke
|
|
16
|
+
bounded local browser and media subprocesses, analyze faces locally without
|
|
17
|
+
identifying them, and write recordings, derived media, metadata, previews, and
|
|
18
|
+
receipts below a caller-selected project. Its local MCP server and workflow
|
|
19
|
+
host expose fixed, typed operations to an authorized local agent. Explicitly
|
|
20
|
+
imported imperative workflow modules are trusted current-user Bun code rather
|
|
21
|
+
than sandboxed input.
|
|
22
|
+
|
|
23
|
+
Generation and model-backed media analysis can send an explicit prompt and
|
|
24
|
+
caller-selected media to Vercel AI Gateway. Local media upload requires the
|
|
25
|
+
matching command acknowledgement. Local vectorization, face detection,
|
|
26
|
+
ordinary media editing, diagram rendering, and capture remain local. Slopcamera does
|
|
27
|
+
not provide an account service and does not upload a project to a Slopcamera
|
|
28
|
+
service.
|
|
29
|
+
|
|
30
|
+
Use Slopcamera only on devices, accounts, displays, conversations, and media that you
|
|
31
|
+
are entitled and permitted to capture or process. Obtain any consent required
|
|
32
|
+
by law, contract, workplace policy, or platform rules. Do not use Slopcamera to
|
|
33
|
+
surveil another person, collect credentials, bypass operating-system
|
|
34
|
+
permissions or access controls, capture protected communications without
|
|
35
|
+
authorization, or publish private media without permission.
|
|
36
|
+
|
|
37
|
+
Screen recordings, camera and microphone media, system audio, cursor and input
|
|
38
|
+
events, typed text, window titles, focus state, project paths, model prompts,
|
|
39
|
+
and generated receipts can contain credentials, private communications,
|
|
40
|
+
personal data, or proprietary material. Review captured and derived artifacts
|
|
41
|
+
before committing, sharing, uploading, or publishing them. Keep Gateway
|
|
42
|
+
credentials in the process environment and remove secrets and private media
|
|
43
|
+
from vulnerability reports.
|
|
44
|
+
|
|
45
|
+
Report suspected vulnerabilities through GitHub private vulnerability
|
|
46
|
+
reporting at https://github.com/hraness/slopcamera/security/advisories/new.
|
package/README.md
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
# Slopcamera
|
|
2
|
+
|
|
3
|
+
[](https://slopcamera.com)
|
|
4
|
+
|
|
5
|
+
**Slopcamera is a local visual studio for coding agents. Author scenes, combine
|
|
6
|
+
generated and recorded media, and export images, diagrams, animation, and video
|
|
7
|
+
from retained sources.**
|
|
8
|
+
|
|
9
|
+
Describe a finished result to Codex, Claude, or another coding agent. Slopcamera gives
|
|
10
|
+
it a Bun CLI, TypeScript SDK, and version-matched Agent Skill to inspect sources,
|
|
11
|
+
direct cameras, edit a composition, and render the result. A separate MCP server
|
|
12
|
+
exposes a fixed diagram and image toolset. There is no Slopcamera account or hosted
|
|
13
|
+
project database.
|
|
14
|
+
|
|
15
|
+
[Install](#install-slopcamera) · [Make a first diagram](#make-your-first-diagram) · [Capabilities](#what-slopcamera-does) · [Documentation](docs/README.md) · [slopcamera.com](https://slopcamera.com)
|
|
16
|
+
|
|
17
|
+
## Why Slopcamera
|
|
18
|
+
|
|
19
|
+
- **Keep creative work editable.** Native scenes, portable scenes, diagrams,
|
|
20
|
+
and video projects retain their own sources and settings. Rendered frames
|
|
21
|
+
and portable assets are derivatives; a video of a character does not retain
|
|
22
|
+
its rig.
|
|
23
|
+
- **Give agents explicit operations.** Inspect a project, name a camera, plan
|
|
24
|
+
a render, review a candidate, and select a result. The CLI returns structured
|
|
25
|
+
results and keeps operation receipts that identify inputs and outputs.
|
|
26
|
+
- **Revise without replacing the originals.** Normal media edits record cuts,
|
|
27
|
+
timing, framing, captions, and effects as project decisions. Preview and final
|
|
28
|
+
renders use the same timeline and composition.
|
|
29
|
+
- **Choose where computation happens.** Local rendering and editing use your
|
|
30
|
+
machine. Optional model-backed work uses your Vercel AI Gateway access, with
|
|
31
|
+
explicit acknowledgement before named local media is uploaded. Native Python
|
|
32
|
+
authoring requires separate trust because it runs as your current user.
|
|
33
|
+
|
|
34
|
+
## Install Slopcamera
|
|
35
|
+
|
|
36
|
+
Slopcamera currently installs from source. No renamed release archive has been
|
|
37
|
+
published. Install [Bun 1.3.14 or newer](https://bun.sh) and Git, then use a new
|
|
38
|
+
checkout:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
git clone --branch main https://github.com/hraness/slopcamera.git slopcamera-source
|
|
42
|
+
cd slopcamera-source
|
|
43
|
+
git rev-parse HEAD > ../slopcamera-source-commit.txt
|
|
44
|
+
bun install --frozen-lockfile --ignore-scripts
|
|
45
|
+
bun run build:sdk
|
|
46
|
+
bun run build:desktop:cli
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Keep the checkout and recorded commit. In this shell, define the command against
|
|
50
|
+
that exact build:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
export SLOPCAMERA_SOURCE_ROOT="$PWD"
|
|
54
|
+
slopcamera() { bun "$SLOPCAMERA_SOURCE_ROOT/apps/desktop/dist/cli/main.js" "$@"; }
|
|
55
|
+
slopcamera --help
|
|
56
|
+
slopcamera doctor --json
|
|
57
|
+
slopcamera skill install --target agents
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Use `--target claude` for Claude Code or omit the target for Codex. Add
|
|
61
|
+
`--scope project` inside the target repository for a project-only skill install.
|
|
62
|
+
The skill comes from the same checkout as the CLI. Start a new agent session
|
|
63
|
+
after installation. In a later shell, restore the checkout path and function.
|
|
64
|
+
|
|
65
|
+
Native engines install separately. The [source-install guide](docs/how-to/use-current-source.md)
|
|
66
|
+
explains workspace placement and durable-run identity; the
|
|
67
|
+
[capability reference](docs/reference/capabilities.md) names runtime requirements.
|
|
68
|
+
|
|
69
|
+
<details>
|
|
70
|
+
<summary>Historical Atet release evidence</summary>
|
|
71
|
+
|
|
72
|
+
[Atet v3.2.3](https://github.com/hraness/atet/releases/tag/v3.2.3) and its
|
|
73
|
+
[original archive](https://github.com/hraness/atet/releases/download/v3.2.3/hraness-atet-3.2.3.tgz)
|
|
74
|
+
remain historical publication evidence. Those immutable bytes install Atet,
|
|
75
|
+
not Slopcamera. Renaming the repository does not create a renamed package or
|
|
76
|
+
change an existing release.
|
|
77
|
+
|
|
78
|
+
</details>
|
|
79
|
+
|
|
80
|
+
## Make your first diagram
|
|
81
|
+
|
|
82
|
+
After the source build above, this local task needs no model account. In a new directory,
|
|
83
|
+
create the included diagram, check it, and render it:
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
mkdir slopcamera-first
|
|
87
|
+
cd slopcamera-first
|
|
88
|
+
slopcamera diagram init first.diagram.json
|
|
89
|
+
slopcamera diagram check first.diagram.json --strict
|
|
90
|
+
slopcamera diagram render first.diagram.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
You now have `example-flow.tldr`, `example-flow.light.svg`,
|
|
94
|
+
`example-flow.dark.svg`, `example-flow.light.png`, and
|
|
95
|
+
`example-flow.dark.png`. Open a PNG to inspect the result. The JSON remains
|
|
96
|
+
editable, and the `.tldr` file is editable tldraw interchange. Rendering again
|
|
97
|
+
replaces those five derived files.
|
|
98
|
+
|
|
99
|
+
Follow [Your first diagram](docs/tutorials/first-diagram.md) to change a label and
|
|
100
|
+
see the result. For a moving 3D subject, use [Directed scenes](docs/spatial-scenes.md).
|
|
101
|
+
For detailed native 3D from the current source build, follow
|
|
102
|
+
[Your first native film](docs/tutorials/first-native-film.md).
|
|
103
|
+
|
|
104
|
+
## What Slopcamera does
|
|
105
|
+
|
|
106
|
+
### Author scenes and direct cameras
|
|
107
|
+
|
|
108
|
+
Place geometry, images, video, diagrams, and text in a portable scene. Inspect
|
|
109
|
+
stable part IDs, make typed edits, select a named camera, and render frames,
|
|
110
|
+
contact sheets, or video. The Three.js profile includes calibrated cameras,
|
|
111
|
+
explicit animation, supported GLB geometry, and an explicitly selected hardware
|
|
112
|
+
GPU path. Spark admits saved splat worlds for local camera direction.
|
|
113
|
+
|
|
114
|
+
> Create a short product reveal. Keep the model editable, orbit the camera,
|
|
115
|
+
> mount the product diagram on a screen in the scene, and show me contact frames
|
|
116
|
+
> before rendering the video.
|
|
117
|
+
|
|
118
|
+
The portable GLB profile has a defined geometry and material subset. Saved splats
|
|
119
|
+
capture appearance; they do not establish collision geometry or editable native
|
|
120
|
+
meshes. See [Directed scenes](docs/spatial-scenes.md).
|
|
121
|
+
|
|
122
|
+
### Film native worlds and educational animation
|
|
123
|
+
|
|
124
|
+
The current source build can direct Blender for detailed sets, materials,
|
|
125
|
+
lighting, skinned characters, cloth and liquid caches; CadQuery for parametric
|
|
126
|
+
solids and STEP; and Manim Community for mathematical animation. Seven editable
|
|
127
|
+
starters include a product, character, shaded street, cloth, liquid, CAD bracket,
|
|
128
|
+
and educational presenter.
|
|
129
|
+
|
|
130
|
+
> Build a shaded street with an original presenter. Explain the idea with an
|
|
131
|
+
> animated diagram mounted in the world, then pull the camera back into the
|
|
132
|
+
> city. Keep the native scenes and diagram sources for later edits.
|
|
133
|
+
|
|
134
|
+
Native source and exact job settings remain retained. Verified frames can become
|
|
135
|
+
an ordinary project clip. `slopcamera scene camera-track` samples an explicit
|
|
136
|
+
camera clock for reuse. Supported GLB derivatives and calibrated cameras can
|
|
137
|
+
cross between native and portable scenes; rigs, solvers, and procedural materials
|
|
138
|
+
remain native. Blender and Python environments are installed separately, and
|
|
139
|
+
source execution requires explicit current-user trust. See [Native film studio](docs/studio.md)
|
|
140
|
+
and [Make an educational video](docs/how-to/educational-video.md).
|
|
141
|
+
|
|
142
|
+
### Build diagrams and motion graphics
|
|
143
|
+
|
|
144
|
+
Create editable diagrams with tldraw, SVG, and PNG outputs, or turn raster artwork
|
|
145
|
+
into SVG locally with VTracer. Animate graphic layers with HTML, SVG, Motion,
|
|
146
|
+
p5, Two, Paper Shaders, or Three.js. Outputs can stand alone or join a video
|
|
147
|
+
project. The optional vgpu example renders programmable WebGPU passes into
|
|
148
|
+
retained raster frames for use on a world-space screen.
|
|
149
|
+
|
|
150
|
+
Use `slopcamera html catalog` to inspect the admitted local creative tools. The
|
|
151
|
+
[creative toolkit reference](docs/html-overlay-creative-toolkit.md) distinguishes
|
|
152
|
+
available profiles from upstream possibilities. vgpu does not enable shared GPU
|
|
153
|
+
textures or a Three WebGPU renderer inside the current WebGL2/Spark profile.
|
|
154
|
+
|
|
155
|
+
### Generate and direct media
|
|
156
|
+
|
|
157
|
+
Discover image, video, speech, and transcription models through your own Vercel
|
|
158
|
+
AI Gateway access. Generate images from text and references, add a voiceover,
|
|
159
|
+
transcribe sound, or create video shots using the selected model's supported
|
|
160
|
+
inputs. Availability and pricing come from the live catalog.
|
|
161
|
+
|
|
162
|
+
The current source build also provides `direct` shot recipes: retain a film
|
|
163
|
+
budget across attempts, review each take before accepting it, and use an accepted
|
|
164
|
+
clip's last decoded frame as the next shot's reference. Changed predecessors
|
|
165
|
+
invalidate affected continuations while earlier paid results remain retained.
|
|
166
|
+
Model continuity is reviewed, not guaranteed. Budget estimates are not a provider
|
|
167
|
+
billing cap.
|
|
168
|
+
|
|
169
|
+
See [Generate media](docs/how-to/generate-media.md), [Direct short generated clips](docs/directing-video.md),
|
|
170
|
+
and [Gateway configuration](docs/vercel.md). Generation uses caller-owned access;
|
|
171
|
+
uploading local references requires the matching explicit acknowledgement.
|
|
172
|
+
|
|
173
|
+
### Edit footage and deliver finished videos
|
|
174
|
+
|
|
175
|
+
Record a screen, camera, microphone, and system audio on macOS, or import existing
|
|
176
|
+
footage. Remove pauses and filler words, align sound, reframe speakers, zoom into
|
|
177
|
+
screen actions, and add captions, graphics, color, and audio treatment. Preview
|
|
178
|
+
candidates before selecting a result, then export clean and captioned versions
|
|
179
|
+
in 16:9, 9:16, 1:1, and 4:5 from the same edit.
|
|
180
|
+
|
|
181
|
+
> Edit my product demo: cut the pauses, zoom into each important click, keep the
|
|
182
|
+
> speaker framed, add captions and `logo.svg`, and show a preview before export.
|
|
183
|
+
|
|
184
|
+
Recording requires the corresponding macOS permissions. Input-event capture can
|
|
185
|
+
include clicks, cursor movement, key activity, and focused-input information;
|
|
186
|
+
typed-text capture is separately opt-in and secure fields are suppressed. Read
|
|
187
|
+
[`PRIVACY.md`](PRIVACY.md) before recording sensitive material.
|
|
188
|
+
|
|
189
|
+
Start with [Edit a video](docs/how-to/edit-video.md) or inspect a reusable recipe:
|
|
190
|
+
|
|
191
|
+
```sh
|
|
192
|
+
slopcamera workflows list --json
|
|
193
|
+
slopcamera workflows show social-variants --json
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## How Slopcamera works
|
|
197
|
+
|
|
198
|
+
Keep the source that owns each creative decision. A native scene owns a rig or
|
|
199
|
+
simulation; a portable scene owns supported geometry, cameras, and media surfaces;
|
|
200
|
+
a diagram owns its objects and labels; a video project owns cuts and delivery.
|
|
201
|
+
SLOPCAMERA connects these through explicit assets and rendered derivatives.
|
|
202
|
+
|
|
203
|
+
1. **Prepare the sources.** Import footage and assets or author a scene, diagram,
|
|
204
|
+
or native program. Inspect available tools before choosing an engine.
|
|
205
|
+
2. **Direct the result.** Name cameras, shots, timing, composition, and output
|
|
206
|
+
settings. Generate missing media only when the job calls for it.
|
|
207
|
+
3. **Review a render.** Inspect contact frames, motion, captions, sound, and
|
|
208
|
+
continuity. Preserve candidates and select the approved result.
|
|
209
|
+
4. **Deliver and revise.** Export the required formats and retain source paths,
|
|
210
|
+
project decisions, and operation receipts for the next change.
|
|
211
|
+
|
|
212
|
+
### Instructions for coding agents
|
|
213
|
+
|
|
214
|
+
Read local project instructions and inspect sources before changing them. Use
|
|
215
|
+
`slopcamera --help`, `slopcamera doctor --json`, `slopcamera operations list --json`, and the
|
|
216
|
+
installed skill to discover the exact local surface. Agree on material output
|
|
217
|
+
requirements, preview substantial changes, inspect the resulting files, and
|
|
218
|
+
report their paths. Do not infer provider access, native trust, or model quality
|
|
219
|
+
from a successful plan.
|
|
220
|
+
|
|
221
|
+
[Run agent workflows](docs/how-to/run-workflows.md) covers reusable recipes,
|
|
222
|
+
declarative graphs, approvals, and resuming work.
|
|
223
|
+
|
|
224
|
+
## Important limitations
|
|
225
|
+
|
|
226
|
+
- **Runtime support varies.** The CLI uses Bun on macOS, Linux, and Windows;
|
|
227
|
+
capture is macOS-specific. Media, browser, GPU, and native studio profiles
|
|
228
|
+
have additional requirements. Use the capability reference and `slopcamera doctor`.
|
|
229
|
+
- **Interchange preserves a supported subset.** Native rigs and simulations do
|
|
230
|
+
not become editable Three scenes by exporting a GLB. An image or video on a
|
|
231
|
+
plane supplies pixels, not hidden geometry. Calibrated camera exchange does
|
|
232
|
+
not match lighting, depth of field, or color treatment automatically.
|
|
233
|
+
- **Generated media requires review.** Models may change subject identity,
|
|
234
|
+
motion, or text. Saved AI worlds are appearance assets, not validated robotics
|
|
235
|
+
or reinforcement-learning environments.
|
|
236
|
+
- **Trusted code is not sandboxed.** Native Python and caller-authored Bun
|
|
237
|
+
workflows run with the current user's access. Hashes and receipts identify
|
|
238
|
+
observed inputs and outputs; they do not make arbitrary code hermetic.
|
|
239
|
+
- **MCP is a subset.** Its fixed tools check and render diagrams, vectorize
|
|
240
|
+
images, and generate images. It does not expose every local CLI operation.
|
|
241
|
+
|
|
242
|
+
## Design and trust
|
|
243
|
+
|
|
244
|
+
There is no Slopcamera account, hosted project database, or browser generation service.
|
|
245
|
+
Ordinary editing and rendering remain local. Gateway generation and selected
|
|
246
|
+
cloud analysis use credentials from the local process and request explicit
|
|
247
|
+
acknowledgement before uploading named media. This website never accepts a
|
|
248
|
+
Gateway credential. Native Python requires separate authorization. Custom Bun
|
|
249
|
+
workflow modules execute when loaded, including during check and plan; review
|
|
250
|
+
their source first. Both have the current user's access, including potential
|
|
251
|
+
network access, outside the normal media-operation boundary.
|
|
252
|
+
|
|
253
|
+
Original media remains unchanged by normal edit operations. Projects retain
|
|
254
|
+
explicit revisions, and important operations record their inputs and outputs.
|
|
255
|
+
Native tools, providers, codecs, and GPU drivers can affect results, so retained
|
|
256
|
+
source identity alone does not promise identical pixels on another machine.
|
|
257
|
+
|
|
258
|
+
See [Architecture](docs/architecture.md), [`SECURITY.md`](SECURITY.md),
|
|
259
|
+
[`PRIVACY.md`](PRIVACY.md), and [`NOTICE`](NOTICE) for the detailed boundaries.
|
|
260
|
+
|
|
261
|
+
## Documentation
|
|
262
|
+
|
|
263
|
+
- **Learn:** [Your first diagram](docs/tutorials/first-diagram.md) · [Your first native film](docs/tutorials/first-native-film.md).
|
|
264
|
+
- **Make a result:** [Edit video](docs/how-to/edit-video.md) · [Generate media](docs/how-to/generate-media.md) · [Run workflows](docs/how-to/run-workflows.md) · [Educational video](docs/how-to/educational-video.md).
|
|
265
|
+
- **Look up support:** [Capabilities and release availability](docs/reference/capabilities.md) · [SDK entrypoints](docs/reference/sdk.md) · [Creative tools](docs/html-overlay-creative-toolkit.md).
|
|
266
|
+
- **Understand the system:** [Architecture](docs/architecture.md) · [Native studio](docs/studio.md) · [Directed scenes](docs/spatial-scenes.md).
|
|
267
|
+
|
|
268
|
+
The [documentation index](docs/README.md) connects these paths.
|
|
269
|
+
|
|
270
|
+
## For software integrations
|
|
271
|
+
|
|
272
|
+
Run this example with Bun from the source checkout after `bun run build:sdk`.
|
|
273
|
+
The checkout resolves its own `@hraness/slopcamera` package exports.
|
|
274
|
+
|
|
275
|
+
SDK imports do not start the CLI or inspect local project state. For example,
|
|
276
|
+
convert an existing local image into an SVG:
|
|
277
|
+
|
|
278
|
+
```ts
|
|
279
|
+
import { vectorizeImage } from "@hraness/slopcamera"
|
|
280
|
+
|
|
281
|
+
const result = await vectorizeImage("logo.png", { outputPath: "logo.svg" })
|
|
282
|
+
console.log(result.receipt.sourceSha256, result.receipt.svgSha256)
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Use `@hraness/slopcamera/code` for declarative workflow graphs,
|
|
286
|
+
`@hraness/slopcamera/workflow` for trusted Bun workflows, and `@hraness/slopcamera/local/*`
|
|
287
|
+
for the local media engine. See the [SDK reference](docs/reference/sdk.md) for
|
|
288
|
+
entrypoint scope and execution effects.
|
|
289
|
+
|
|
290
|
+
## Verification
|
|
291
|
+
|
|
292
|
+
```sh
|
|
293
|
+
bun install --frozen-lockfile --ignore-scripts
|
|
294
|
+
bun run check
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
The required check covers public SDK boundaries, the local runtime, schemas,
|
|
298
|
+
Agent Skill, generated entrypoints, static site, deterministic and property
|
|
299
|
+
tests, and packed consumers. Native and provider-dependent profiles require
|
|
300
|
+
their corresponding external qualification; a local unit-test pass does not
|
|
301
|
+
establish them. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the complete gates.
|
|
302
|
+
|
|
303
|
+
## Contributing
|
|
304
|
+
|
|
305
|
+
Read [`CONTRIBUTING.md`](CONTRIBUTING.md) and the nearest `AGENTS.md` before
|
|
306
|
+
changing a package or runtime boundary. Report vulnerabilities through
|
|
307
|
+
[`SECURITY.md`](SECURITY.md).
|
|
308
|
+
|
|
309
|
+
## License
|
|
310
|
+
|
|
311
|
+
[MIT](LICENSE), with third-party notices in [`NOTICE`](NOTICE).
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
Report suspected vulnerabilities privately through [GitHub’s security advisory form](https://github.com/hraness/slopcamera/security/advisories/new). Do not open a public issue for credential exposure, path escape, unsafe SVG output, archive extraction, subprocess containment, unbounded resource use, Gateway authority substitution, or MCP boundary failures.
|
|
4
|
+
|
|
5
|
+
Include the affected version, platform, command or API, minimal reproduction, expected boundary, observed result, and whether any secret or caller-owned media left the machine. Remove tokens, account identifiers, private paths, and proprietary media from the report.
|
|
6
|
+
|
|
7
|
+
Slopcamera’s local MCP server confines paths to one caller-selected root but is not an operating-system sandbox against concurrent same-user mutation. Vectorization is network-silent. Generation sends its prompt and explicitly supplied media directly to Vercel AI Gateway. Slopcamera reads `AI_GATEWAY_API_KEY` or `VERCEL_OIDC_TOKEN` from the process environment and never persists either value.
|
|
8
|
+
|
|
9
|
+
An explicitly imported workflow module is trusted Bun code with the authority of the current user. Review workflow modules before running them. Declarative graph compilation restricts operation nodes to the closed capability projection supplied by the host and rejects unsupported capabilities before executor or resource admission, but it does not sandbox the JavaScript that constructs the graph.
|
|
10
|
+
|
|
11
|
+
The macOS host can request Screen Recording, System Audio Recording, Camera,
|
|
12
|
+
Microphone, and Input Monitoring permissions. Its input-event metadata and
|
|
13
|
+
recordings can contain selected display pixels, system audio, camera video,
|
|
14
|
+
microphone audio, cursor movement, clicks, key activity, focused-input bounds,
|
|
15
|
+
display topology, and changed window snapshots. Typed text is captured only
|
|
16
|
+
when separately enabled, and secure fields are suppressed even then. Treat all
|
|
17
|
+
capture output as sensitive, obtain the required consent, and inspect it before
|
|
18
|
+
sharing or uploading it.
|
|
19
|
+
|
|
20
|
+
The [privacy guide](PRIVACY.md) describes captured data, local processing,
|
|
21
|
+
selected uploads, and how to handle sensitive artifacts.
|