@hraness/slopcamera 3.2.7 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +1 -7
- package/PRIVACY.md +16 -7
- package/README.md +65 -20
- package/apps/desktop/README.md +14 -130
- package/apps/desktop/application/context.ts +6 -9
- package/apps/desktop/application/default-registry.ts +26 -10
- package/apps/desktop/application/operation.ts +14 -5
- package/apps/desktop/application/operations/index.ts +4 -1
- package/apps/desktop/application/operations/spatial-behavior.ts +151 -0
- package/apps/desktop/application/operations/spatial-direction.ts +222 -0
- package/apps/desktop/application/operations/spatial-rendered-audit.ts +174 -0
- package/apps/desktop/application/operations/spatial-review.ts +194 -0
- package/apps/desktop/application/operations/spatial-scene.ts +25 -1
- package/apps/desktop/application/registry.ts +2 -2
- package/apps/desktop/application/spatial-asset-admission.ts +201 -0
- package/apps/desktop/application/spatial-assets.ts +160 -31
- package/apps/desktop/application/spatial-render.ts +217 -20
- package/apps/desktop/application/spatial-rendered-audit.ts +273 -0
- package/apps/desktop/application/spatial-review.ts +361 -0
- package/apps/desktop/application/spatial-spz.ts +48 -3
- package/apps/desktop/application/spatial-world-import.ts +26 -5
- package/apps/desktop/application/spatial-world-metadata.ts +105 -0
- package/apps/desktop/cli/args.ts +528 -97
- package/apps/desktop/cli/capability-manifest.ts +374 -0
- package/apps/desktop/cli/cinema-renderer.ts +608 -0
- package/apps/desktop/cli/command-host-resources.ts +31 -2
- package/apps/desktop/cli/commands.ts +1215 -70
- package/apps/desktop/cli/gateway-review-provider.ts +334 -0
- package/apps/desktop/cli/help.ts +183 -23
- package/apps/desktop/cli/html-scene.ts +139 -28
- package/apps/desktop/cli/io.ts +2 -1
- package/apps/desktop/cli/main.ts +26 -50
- package/apps/desktop/cli/menubar.ts +244 -0
- package/apps/desktop/cli/music-analysis-service.ts +61 -0
- package/apps/desktop/cli/portable-surface.ts +18 -5
- package/apps/desktop/cli/spatial-asset-service.ts +124 -0
- package/apps/desktop/cli/spatial-design-service.ts +237 -0
- package/apps/desktop/cli/spatial-generate-service.ts +370 -0
- package/apps/desktop/cli/spatial-scene-service.ts +268 -4
- package/apps/desktop/cli/workflow-code.ts +1 -1
- package/apps/desktop/code/application-node-planner.ts +0 -47
- package/apps/desktop/code/host-source-layout.ts +46 -0
- package/apps/desktop/code/public.ts +0 -1
- package/apps/desktop/code/runtime-identity.ts +50 -8
- package/apps/desktop/code/semantic-builder.ts +24 -43
- package/apps/desktop/code/source-bundle.ts +23 -6
- package/apps/desktop/code/source-typecheck.ts +131 -43
- package/apps/desktop/code/worker-client.ts +14 -2
- package/apps/desktop/contracts/cinema.ts +736 -0
- package/apps/desktop/contracts/index.ts +1 -0
- package/apps/desktop/contracts/spatial-asset.ts +16 -0
- package/apps/desktop/contracts/spatial-world.ts +26 -3
- package/apps/desktop/core/cinema-plan.ts +1320 -0
- package/apps/desktop/core/index.ts +1 -0
- package/apps/desktop/core/music-analysis.ts +124 -1
- package/apps/desktop/core/storage.ts +75 -0
- package/apps/desktop/dist/cli/main.js +737 -291
- package/apps/desktop/html-overlay/audio-reactivity.ts +127 -0
- package/apps/desktop/html-overlay/index.ts +9 -0
- package/apps/desktop/html-overlay/runtime.ts +2 -0
- package/apps/desktop/html-overlay/scene.ts +29 -0
- package/apps/desktop/html-overlay/spatial.ts +619 -57
- package/apps/desktop/workflows/cinematic-world.ts +127 -0
- package/apps/desktop/workflows/index.ts +6 -0
- package/dist/cli.js +32 -434
- package/dist/code/advanced.js +1 -269
- package/dist/code/index.js +16 -2239
- package/dist/generate.js +1 -23
- package/dist/host-resources.js +1 -25
- package/dist/index-0bbesn4m.js +35 -0
- package/dist/index-296qhpf2.js +3 -0
- package/dist/index-3cxf2c58.js +3 -0
- package/dist/index-77fjfg9f.js +3 -0
- package/dist/index-80a36bc0.js +3 -0
- package/dist/index-a3vvs3rf.js +3 -0
- package/dist/index-b3geqczn.js +5 -0
- package/dist/index-cgpkyjqa.js +3 -0
- package/dist/index-f0ptv8dm.js +7 -0
- package/dist/index-grk47tgs.js +3 -0
- package/dist/index-qry58nj2.js +10 -0
- package/dist/index.js +1 -240
- package/dist/operations.js +1 -28
- package/dist/skill-install-gx7afxsd.js +2 -0
- package/dist/vectorize/worker.js +1 -141
- package/dist/workflow.js +1 -15
- package/docs/README.md +5 -1
- package/docs/studio.md +1 -1
- package/package.json +11 -24
- package/skills/slopcamera/SKILL.md +14 -1
- package/skills/slopcamera/references/diagrams.md +5 -14
- package/skills/slopcamera/references/directed-scenes.md +22 -2
- package/skills/slopcamera/references/gateway-media.md +15 -1
- package/skills/slopcamera/references/image-galleries.md +166 -0
- package/skills/slopcamera/references/install.md +2 -2
- package/skills/slopcamera/references/music-video.md +23 -3
- package/skills/slopcamera/references/parametric-design.md +14 -0
- package/skills/slopcamera/references/reference-led-3d.md +1 -1
- package/skills/slopcamera/references/scene-building.md +32 -0
- package/skills/slopcamera/references/social-collage-banners.md +204 -0
- package/skills/slopcamera/references/support.md +25 -0
- package/skills/slopcamera/references/web-media-excerpts.md +120 -0
- package/skills/slopcamera/references/workflows-sdk.md +3 -3
- package/skills/slopcamera/scripts/compose-social-collage-banner.ts +728 -0
- package/src/capability-manifest.ts +361 -0
- package/src/cli.ts +250 -102
- package/src/code/canonical-json.ts +9 -0
- package/src/generate.ts +2 -2
- package/src/icon.ts +1111 -0
- package/src/image-gallery.ts +1049 -0
- package/src/index.ts +11 -23
- package/src/mcp/boundary.ts +11 -11
- package/src/mcp/index.ts +3 -0
- package/src/mcp/server.ts +2 -1
- package/src/mcp/tools.ts +1642 -130
- package/src/mcp/types.ts +19 -0
- package/src/operations.ts +412 -0
- package/src/portable-capability-manifest.ts +67 -0
- package/src/scene-gallery.ts +184 -0
- package/src/spatial-scene/asset-admission.ts +183 -0
- package/src/spatial-scene/audit-rendered.ts +692 -0
- package/src/spatial-scene/audit.ts +617 -0
- package/src/spatial-scene/behavior-audit.ts +252 -0
- package/src/spatial-scene/behavior-bake.ts +233 -0
- package/src/spatial-scene/behavior-fns.ts +585 -0
- package/src/spatial-scene/behavior-gallery.ts +109 -0
- package/src/spatial-scene/behavior-stdlib.ts +323 -0
- package/src/spatial-scene/behavior-trace.ts +325 -0
- package/src/spatial-scene/behavior.ts +618 -0
- package/src/spatial-scene/build.ts +632 -0
- package/src/spatial-scene/camera-rig.ts +125 -0
- package/src/spatial-scene/camera-track.ts +4 -2
- package/src/spatial-scene/character.ts +124 -0
- package/src/spatial-scene/contracts.ts +75 -7
- package/src/spatial-scene/design-templates.ts +351 -0
- package/src/spatial-scene/design.ts +327 -0
- package/src/spatial-scene/direction-compile.ts +584 -0
- package/src/spatial-scene/direction.ts +122 -0
- package/src/spatial-scene/effects.ts +149 -0
- package/src/spatial-scene/evaluate.ts +109 -29
- package/src/spatial-scene/gallery.ts +277 -0
- package/src/spatial-scene/generate.ts +239 -0
- package/src/spatial-scene/geometry-native.ts +165 -0
- package/src/spatial-scene/geometry.ts +1216 -0
- package/src/spatial-scene/gltf.ts +600 -77
- package/src/spatial-scene/identity.ts +55 -2
- package/src/spatial-scene/index.ts +36 -0
- package/src/spatial-scene/inspect.ts +35 -6
- package/src/spatial-scene/material-lighting.ts +609 -0
- package/src/spatial-scene/math.ts +21 -4
- package/src/spatial-scene/motion-evidence.ts +88 -0
- package/src/spatial-scene/parametric.ts +765 -0
- package/src/spatial-scene/particle-preparation.ts +183 -0
- package/src/spatial-scene/particle.ts +195 -0
- package/src/spatial-scene/patch.ts +109 -15
- package/src/spatial-scene/performance.ts +1613 -0
- package/src/spatial-scene/probe.ts +137 -0
- package/src/spatial-scene/recipe-pack.ts +86 -0
- package/src/spatial-scene/render-effects.ts +240 -0
- package/src/spatial-scene/review.ts +639 -0
- package/src/spatial-scene/simulation-bake.ts +206 -0
- package/src/spatial-scene/simulation.ts +187 -0
- package/src/spatial-scene/solve.ts +366 -0
- package/src/spatial-scene/temporal-audit.ts +354 -0
- package/src/support-completion.ts +16 -0
- package/src/support.ts +42 -0
- package/src/version.ts +1 -1
- package/apps/desktop/application/operations/recording/index.ts +0 -5
- package/apps/desktop/application/operations/recording/pause.ts +0 -34
- package/apps/desktop/application/operations/recording/resume.ts +0 -34
- package/apps/desktop/application/operations/recording/shared.ts +0 -199
- package/apps/desktop/application/operations/recording/start.ts +0 -169
- package/apps/desktop/application/operations/recording/stop.ts +0 -34
- package/apps/desktop/capture/protocol.ts +0 -689
- package/apps/desktop/cli/capture-bundle.ts +0 -1117
- package/apps/desktop/cli/recording-controller.ts +0 -1567
- package/apps/desktop/cli/recording-daemon.ts +0 -931
- package/dist/index-42zsesc1.js +0 -2257
- package/dist/index-7308egqr.js +0 -48
- package/dist/index-8txs6fkn.js +0 -712
- package/dist/index-mcy8z0br.js +0 -192
- package/dist/index-p63wavx0.js +0 -2029
- package/dist/index-r7gdhmsp.js +0 -424
- package/dist/index-rvghzt7b.js +0 -2013
- package/dist/index-sh6xbav6.js +0 -1219
- package/dist/index-z1w83f81.js +0 -4
- package/dist/index-z7239b4h.js +0 -2363
- package/dist/skill-install-dh0ntqba.js +0 -10
- package/src/desktop.ts +0 -253
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Optional support
|
|
2
|
+
|
|
3
|
+
Run `slopcamera support protocol --json` for the current product-owned protocol.
|
|
4
|
+
At an eligible human closeout, call `slopcamera support offer --json` once. Treat
|
|
5
|
+
`kind:quiet` as a complete stop without mentioning support; do not poll or work
|
|
6
|
+
around disabled state. Discovery on stderr is guidance, not an invitation claim.
|
|
7
|
+
|
|
8
|
+
For `kind:offer`, optionally say once: “You can support continued development of
|
|
9
|
+
Slopcamera’s local visual tools.” Use the returned clean support link. This product
|
|
10
|
+
has no updates mailing list; do not collect an email or imply a subscription unlocks
|
|
11
|
+
features. Opening a link grants no authority to pay or create an account.
|
|
12
|
+
|
|
13
|
+
If the host supports a persistent human-visible message followed by a tool call,
|
|
14
|
+
emit the invitation first, then call `slopcamera support shown <id>` with its exact
|
|
15
|
+
ID. The receipt reports host output, never that a person read it. Do not count
|
|
16
|
+
collapsible commentary as persistent delivery. If only the final answer persists,
|
|
17
|
+
include the invitation there and leave it unacknowledged. It expires after ten
|
|
18
|
+
minutes; this fallback does not consume the weekly shown cooldown.
|
|
19
|
+
|
|
20
|
+
On output failure, release the claim with `slopcamera support release <id>` if
|
|
21
|
+
possible. If acknowledgment fails after output, do not repeat the invitation;
|
|
22
|
+
retry the same acknowledgment only when the protocol permits it. Honor “no thanks”
|
|
23
|
+
with `slopcamera support dismiss` and “later” with `slopcamera support snooze`.
|
|
24
|
+
`HRANESS_SUPPORT_AUDIENCE=off` suppresses offers and ambient discovery. Never infer
|
|
25
|
+
subscription status or obtain a new claim merely because a previous one expired.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Acquire bounded web-media excerpts with yt-dlp
|
|
2
|
+
|
|
3
|
+
Use this route when a scene needs a short piece of audio or video from a public
|
|
4
|
+
web URL. Slopcamera's renderers consume local, retained media; acquire the
|
|
5
|
+
excerpt first, then pass its local path to `audio.path` or a media operation.
|
|
6
|
+
Only acquire material the user is authorized to download and reuse. Stop when
|
|
7
|
+
the source requires DRM or an access-control workaround.
|
|
8
|
+
|
|
9
|
+
The examples use `yt-dlp`. If a machine only exposes the legacy `youtube-dl`
|
|
10
|
+
command, check its installed help for equivalent bounded-section options before
|
|
11
|
+
using it; format IDs and client behavior are never portable between runs.
|
|
12
|
+
|
|
13
|
+
## Keep the acquisition bounded and reproducible
|
|
14
|
+
|
|
15
|
+
Check the local tools and create a private staging directory before contacting
|
|
16
|
+
the source:
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
command -v yt-dlp
|
|
20
|
+
command -v ffmpeg
|
|
21
|
+
yt-dlp --version
|
|
22
|
+
ffmpeg -version | head -1
|
|
23
|
+
mkdir -m 700 -p artifacts/slopcamera/source/web-excerpt
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Set `URL`, `START_SECONDS`, and `END_SECONDS` to the requested source and
|
|
27
|
+
window. Use integer or decimal seconds, and keep `END_SECONDS` greater than
|
|
28
|
+
`START_SECONDS`:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
URL='https://www.youtube.com/watch?v=VIDEO_ID'
|
|
32
|
+
START_SECONDS=0
|
|
33
|
+
END_SECONDS=60
|
|
34
|
+
DURATION_SECONDS=60 # END_SECONDS - START_SECONDS
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Use the canonical URL as one argument, disable playlist expansion, and state
|
|
38
|
+
the exact time window. `--download-sections` asks yt-dlp/FFmpeg for the window;
|
|
39
|
+
it does not guarantee that every site will transfer only those bytes, so check
|
|
40
|
+
the resulting file size and duration.
|
|
41
|
+
|
|
42
|
+
For an audio excerpt, try the best available audio stream first:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
yt-dlp --no-playlist --retries 3 --fragment-retries 3 \
|
|
46
|
+
-f 'bestaudio[ext=m4a]/bestaudio' \
|
|
47
|
+
--download-sections "*${START_SECONDS}-${END_SECONDS}" \
|
|
48
|
+
-o 'artifacts/slopcamera/source/web-excerpt/raw.%(ext)s' \
|
|
49
|
+
"$URL"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If that stream returns HTTP 403 or cannot be cut, inspect the current format
|
|
53
|
+
list (`yt-dlp -F "$URL"`) and choose an available progressive format that has
|
|
54
|
+
both video and audio. A progressive stream can be downloaded for the same
|
|
55
|
+
window and then reduced to audio locally:
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
yt-dlp --no-playlist --retries 3 --fragment-retries 3 \
|
|
59
|
+
-f 'best[acodec!=none][vcodec!=none]/best' \
|
|
60
|
+
--download-sections "*${START_SECONDS}-${END_SECONDS}" \
|
|
61
|
+
--force-keyframes-at-cuts \
|
|
62
|
+
-o 'artifacts/slopcamera/source/web-excerpt/raw.%(ext)s' \
|
|
63
|
+
"$URL"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
After either download, set `RAW_PATH` to the actual file and normalize it
|
|
67
|
+
locally. This makes the duration, codec, sample rate, and channel layout
|
|
68
|
+
independent of the source container:
|
|
69
|
+
|
|
70
|
+
```sh
|
|
71
|
+
RAW_PATH='artifacts/slopcamera/source/web-excerpt/raw.mp4' # use yt-dlp's actual output extension
|
|
72
|
+
ffmpeg -nostdin -hide_banner -loglevel error -y \
|
|
73
|
+
-i "$RAW_PATH" \
|
|
74
|
+
-map 0:a:0 -vn -t "$DURATION_SECONDS" \
|
|
75
|
+
-c:a aac -b:a 128k -ar 48000 -ac 2 -movflags +faststart \
|
|
76
|
+
artifacts/slopcamera/source/web-excerpt/excerpt.m4a
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Use the actual extension printed by yt-dlp when the progressive source is
|
|
80
|
+
WebM or another container. `--force-keyframes-at-cuts` is useful for a video
|
|
81
|
+
section; it is not a substitute for the final local audio trim.
|
|
82
|
+
|
|
83
|
+
Format IDs and client behavior change. Do not hard-code a format ID from an old
|
|
84
|
+
run without checking `-F` again. When YouTube reports that a client needs a
|
|
85
|
+
Proof of Origin (PO) token, use a current, user-authorized browser cookie/token
|
|
86
|
+
route only when that access is in scope. Never guess a token, loop through
|
|
87
|
+
clients to evade a block, or put cookies, PO tokens, signed media URLs, or
|
|
88
|
+
browser profiles in the scene source, logs, or a retained bundle. The
|
|
89
|
+
[yt-dlp PO Token Guide](https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide)
|
|
90
|
+
and [yt-dlp FAQ](https://github.com/yt-dlp/yt-dlp/wiki/FAQ) describe the current
|
|
91
|
+
failure modes and browser-state requirements.
|
|
92
|
+
|
|
93
|
+
## Verify before importing
|
|
94
|
+
|
|
95
|
+
Probe the finished local file before giving it to Slopcamera. For a music-video
|
|
96
|
+
soundtrack, require one audio stream, a positive duration close to the requested
|
|
97
|
+
window, and the expected channel layout; then hash the bytes:
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
ffprobe -v error \
|
|
101
|
+
-show_entries 'format=duration,size:stream=index,codec_type,codec_name,channels,sample_rate,duration,start_time' \
|
|
102
|
+
-of json artifacts/slopcamera/source/web-excerpt/excerpt.m4a
|
|
103
|
+
shasum -a 256 artifacts/slopcamera/source/web-excerpt/excerpt.m4a
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Retain a small sidecar next to the excerpt with the canonical source URL (and
|
|
107
|
+
video ID when available), requested start/end seconds, selected format, tool
|
|
108
|
+
versions, observed duration, and output SHA-256. Keep the sidecar free of
|
|
109
|
+
cookies and expiring signed URLs. Rename or copy the verified excerpt into the
|
|
110
|
+
project's ordinary source area only after the probe succeeds; keep the original
|
|
111
|
+
local source unchanged.
|
|
112
|
+
|
|
113
|
+
Once verified, use the local path in the scene request. HTML scenes do not fetch
|
|
114
|
+
remote media at render time, so rerenders remain reproducible and do not depend
|
|
115
|
+
on a web session. Review the first and last audio/video frames and report any
|
|
116
|
+
boundary padding or partial download explicitly.
|
|
117
|
+
|
|
118
|
+
See the [yt-dlp README's format-selection guidance](https://github.com/yt-dlp/yt-dlp#format-selection)
|
|
119
|
+
for selector syntax and the [music-video guide](music-video.md) for retaining a
|
|
120
|
+
local soundtrack beside an authored scene.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Use SDKs and durable workflows
|
|
2
2
|
|
|
3
|
-
Use `slopcamera workflows list --json` and `slopcamera workflows show <id> --json` to discover checked recipes and their actual inputs. Built-ins include `talking-head-cleanup`, `polished-screen-demo`, `chaptered-demo`, `social-variants`, `creative-iteration`, `creative-selection` and `
|
|
3
|
+
Use `slopcamera workflows list --json` and `slopcamera workflows show <id> --json` to discover checked recipes and their actual inputs. Built-ins include `talking-head-cleanup`, `polished-screen-demo`, `chaptered-demo`, `social-variants`, `creative-iteration`, `creative-selection`, `directed-scene` and `cinematic-world`. Keep ordinary project edits complete before a V2 scene migration.
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
6
|
slopcamera workflows plan <id> --input input.json --json
|
|
@@ -32,9 +32,9 @@ Keep run IDs, errors and receipts after failure. A missing journal does not prov
|
|
|
32
32
|
|
|
33
33
|
## Use the portable MCP surface narrowly
|
|
34
34
|
|
|
35
|
-
When connected, use `check_diagram` and `render_diagram` for compatibility calls, or `search_slopcamera` and `execute_slopcamera` with one exact returned operation and typed JSON. No tool rewrites source.
|
|
35
|
+
When connected, use `check_diagram` and `render_diagram` for compatibility calls, `check_scene`/`inspect_scene`/`audit_scene`/`audit_scene_temporal`/`diff_scenes`/`evaluate_scene` for read-only spatial scene work, `check_scene_direction`/`plan_scene_direction`/`plan_scene_gallery`/`check_scene_effects`/`plan_scene_effects` for cinematic planning evidence, or `search_slopcamera` and `execute_slopcamera` with one exact returned operation and typed JSON. No tool rewrites source or mutates project state; candidate selection stays an explicit CLI or SDK call.
|
|
36
36
|
|
|
37
|
-
- Use root-relative paths. A diagram must end in `.diagram.json`.
|
|
37
|
+
- Use root-relative paths. A diagram must end in `.diagram.json`; a scene must end in `.json`.
|
|
38
38
|
- Diagram render replaces the five documented exports, never its source.
|
|
39
39
|
- MCP bounds diagrams to 64 shapes and 128 edges and reports at most 40 findings. Use the CLI for larger checked sources.
|
|
40
40
|
- MCP uses built-in themes/icons and never executes workspace configuration; trusted custom config belongs to the CLI.
|