@cloudglue/tinycloud 0.3.7 → 0.3.8

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/README.md CHANGED
@@ -17,11 +17,11 @@ The npm package is a small launcher: on first run it downloads the matching
17
17
  platform distribution from Cloudglue's CDN (cached under
18
18
  `~/.tinycloud/versions/<version>/`), verifies its checksum, and execs the real
19
19
  binary. The package version pins the binary version, so
20
- `npx @cloudglue/tinycloud@0.3.7` always runs tinycloud 0.3.7. It also adds two
20
+ `npx @cloudglue/tinycloud@0.3.8` always runs tinycloud 0.3.8. It also adds two
21
21
  wrapper commands:
22
22
 
23
23
  ```bash
24
- tinycloud install --version 0.3.7 # pre-download a version
24
+ tinycloud install --version 0.3.8 # pre-download a version
25
25
  tinycloud install --latest # install latest stable and pin to it
26
26
  tinycloud update # move to latest stable, prune old versions
27
27
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudglue/tinycloud",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "description": "Agent CLI for deep video and image work, by Cloudglue. Downloads the tinycloud binary on first run.",
5
5
  "bin": {
6
6
  "tinycloud": "bin/tinycloud.js"
@@ -127,6 +127,8 @@ tinycloud publish list --json
127
127
  tinycloud publish video ./demo.mp4 --visibility public --json
128
128
  # Share a single moment — also returns data.moment_url (0.3.5+)
129
129
  tinycloud publish video ./demo.mp4 --clip-start 18 --clip-end 33 --json
130
+ # Hard clip — the share page plays ONLY the moment (0.3.8+)
131
+ tinycloud publish video ./demo.mp4 --clip-start 18 --clip-end 33 --clip-only --json
130
132
  ```
131
133
 
132
134
  Per-verb details and all flags: [reference/verbs.md](reference/verbs.md).
@@ -203,7 +205,8 @@ Authoring your own recipes: [reference/workflow-authoring.md](reference/workflow
203
205
  `data.embed_snippet` (`<cg-video>`), which only plays on a private site of
204
206
  the same account. When writing HTML around an embed, use the component's
205
207
  built-ins (`autoplay`+`muted`, `loop`, `start-time`, `exclusive`,
206
- `clip-start`/`clip-end` to frame one "back to moment" clip; JS
208
+ `clip-start`/`clip-end` to frame one "back to moment" clip — plus
209
+ `clip-only`, 0.3.8+, to play nothing but that window; JS
207
210
  `playSegment(start, end?)`) and the container components
208
211
  (`<cg-playlist>`, `<cg-grid>`, `<cg-chapters>`) rather than hand-rolled
209
212
  players, galleries, or segment-list JS — details in
@@ -108,12 +108,15 @@ connector?" or an envelope field needs explaining.
108
108
  an HLS stream; one active share per (file, visibility). Adding
109
109
  `--clip-start`/`--clip-end` (seconds, 0.3.5+) also returns `data.moment_url`,
110
110
  the share page bounded to that "back to moment" window (also reachable as
111
- `?s=<start>&e=<end>` on a `share_url`). Private shares
111
+ `?s=<start>&e=<end>` on a `share_url`); adding `--clip-only` (0.3.8+,
112
+ feature `publish.video.moment.hard.v1`) upgrades it to a hard clip —
113
+ `&clip=hard`, the page plays only the moment. Private shares
112
114
  embed via the `data.embed_snippet` `<cg-video>` tag, which only plays on a
113
115
  private published site of the same account. The embed has playback
114
116
  attributes (`autoplay`+`muted`, `loop`, `start-time`, `poster`,
115
117
  `accent-color`, `exclusive`, and `clip-start`/`clip-end` to frame a single
116
- "back to moment" clip) and a JS API (`playSegment`, `seekTo`, media
118
+ "back to moment" clip `clip-only`, 0.3.8+, plays nothing but that
119
+ window) and a JS API (`playSegment`, `seekTo`, media
117
120
  events re-dispatched on the element) for custom site HTML, and plays
118
121
  standalone or inside the container components (`<cg-playlist>`,
119
122
  `<cg-grid>`, `<cg-chapters>`) — see reference/verbs.md.
@@ -313,7 +313,7 @@ generated site name, or your `--name` label.
313
313
 
314
314
  ```bash
315
315
  tinycloud publish video <source> [--visibility public|private] # default public
316
- [--name <title>] [--segment-id <id>] [--clip-start <s> --clip-end <e>] --json
316
+ [--name <title>] [--segment-id <id>] [--clip-start <s> --clip-end <e> [--clip-only]] --json
317
317
  tinycloud publish video list [--in <source>] [--visibility public|private] --json
318
318
  tinycloud publish video unpublish <share-id | source> --json # --visibility disambiguates
319
319
  ```
@@ -340,6 +340,17 @@ feature id.
340
340
  private-share sign-in. Optional — omit it for a plain full-video share. The
341
341
  same window is just `?s=<start>&e=<end>` appended to a `share_url`, so you
342
342
  can hand-build a moment link from an existing share without re-publishing.
343
+ - Hard clip (0.3.8+): add `--clip-only` to a `--clip-start`/`--clip-end` pair
344
+ (it requires both — the command errors before anything uploads) and
345
+ `data.moment_url` ends in `?s=<start>&e=<end>&clip=hard`: the share page
346
+ plays ONLY the moment (trimmed stream; the seek bar is the clip) instead of
347
+ the full video with a "back to moment" overlay. The flag survives the
348
+ pending → re-run flow (the `next` hint carries it), and the same suffix
349
+ works hand-built on an existing `share_url`. Gated by the
350
+ `publish.video.moment.hard.v1` feature id; older share pages ignore
351
+ `&clip=hard` and fall back to the soft window. It shapes the viewing
352
+ experience, not access control — anyone with the bare `share_url` still has
353
+ the whole video; restrict access with `--visibility private`.
343
354
 
344
355
  When generating custom site HTML around a `<cg-video>` embed, use the
345
356
  component's built-ins instead of reinventing them. It defaults to a
@@ -360,7 +371,13 @@ live playhead, snaps the first play to `clip-start`, and auto-pauses at
360
371
  "↺ Back to moment" pill — a manual scrub-out is never forced back. Both are
361
372
  required and `clip-end` is ignored unless it is greater than `clip-start`; the
362
373
  pair is `<cg-video>`-only (not read on `<cg-playlist-item>`/`<cg-grid-item>`).
363
- Rule of thumb: one moment `clip-start`/`clip-end` on a `<cg-video>`; several
374
+ Adding `clip-only` (embed v6, 0.3.8+) hardens the window: the player shows
375
+ only the clip, with the timeline re-based to it — no badge, strip, or pill,
376
+ because there is nothing to scrub back to. It is honored only alongside a
377
+ valid `clip-start`/`clip-end` pair, and older embed scripts ignore it,
378
+ degrading to the soft behavior above.
379
+ Rule of thumb: one moment → `clip-start`/`clip-end` on a `<cg-video>`
380
+ (`clip-only` if viewers should see nothing but the moment); several
364
381
  segments a viewer navigates between → `<cg-chapters>` (below).
365
382
 
366
383
  For multi-video or segment-navigation pages, prefer the container components
@@ -1,5 +1,5 @@
1
1
  {
2
- "skill_version": "0.3.7",
2
+ "skill_version": "0.3.8",
3
3
  "tinycloud": {
4
4
  "min_version": "0.3.7",
5
5
  "supported_range": ">=0.3.7 <0.4.0",