@cloudglue/tinycloud 0.3.4 → 0.3.5

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
@@ -16,11 +16,11 @@ The npm package is a small launcher: on first run it downloads the matching
16
16
  platform distribution from Cloudglue's CDN (cached under
17
17
  `~/.tinycloud/versions/<version>/`), verifies its checksum, and execs the real
18
18
  binary. The package version pins the binary version, so
19
- `npx @cloudglue/tinycloud@0.3.4` always runs tinycloud 0.3.4. It also adds two
19
+ `npx @cloudglue/tinycloud@0.3.5` always runs tinycloud 0.3.5. It also adds two
20
20
  wrapper commands:
21
21
 
22
22
  ```bash
23
- tinycloud install --version 0.3.4 # pre-download a version
23
+ tinycloud install --version 0.3.5 # pre-download a version
24
24
  tinycloud install --latest # install latest stable and pin to it
25
25
  tinycloud update # move to latest stable, prune old versions
26
26
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudglue/tinycloud",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Agent CLI for deep video work, by Cloudglue. Downloads the tinycloud binary on first run.",
5
5
  "bin": {
6
6
  "tinycloud": "bin/tinycloud.js"
@@ -118,6 +118,8 @@ tinycloud publish list --json
118
118
 
119
119
  # Share a video itself (hosted share page + HLS stream, like a Loom link)
120
120
  tinycloud publish video ./demo.mp4 --visibility public --json
121
+ # Share a single moment — also returns data.moment_url (0.3.5+)
122
+ tinycloud publish video ./demo.mp4 --clip-start 18 --clip-end 33 --json
121
123
  ```
122
124
 
123
125
  Per-verb details and all flags: [reference/verbs.md](reference/verbs.md).
@@ -185,7 +187,8 @@ Authoring your own recipes: [reference/workflow-authoring.md](reference/workflow
185
187
  are signed and short-lived (never hard-code them) — embed via
186
188
  `data.embed_snippet` (`<cg-video>`), which only plays on a private site of
187
189
  the same account. When writing HTML around an embed, use the component's
188
- built-ins (`autoplay`+`muted`, `loop`, `start-time`, `exclusive`; JS
190
+ built-ins (`autoplay`+`muted`, `loop`, `start-time`, `exclusive`,
191
+ `clip-start`/`clip-end` to frame one "back to moment" clip; JS
189
192
  `playSegment(start, end?)`) and the container components
190
193
  (`<cg-playlist>`, `<cg-grid>`, `<cg-chapters>`) rather than hand-rolled
191
194
  players, galleries, or segment-list JS — details in
@@ -88,11 +88,15 @@ connector?" or an envelope field needs explaining.
88
88
  `publish unpublish <site-id | site-name | label>`.
89
89
  - **Video share (shareable asset)** — `tinycloud publish video <source>`
90
90
  wraps a Cloudglue file in a hosted share page (`data.share.share_url`) plus
91
- an HLS stream; one active share per (file, visibility). Private shares
91
+ an HLS stream; one active share per (file, visibility). Adding
92
+ `--clip-start`/`--clip-end` (seconds, 0.3.5+) also returns `data.moment_url`,
93
+ the share page bounded to that "back to moment" window (also reachable as
94
+ `?s=<start>&e=<end>` on a `share_url`). Private shares
92
95
  embed via the `data.embed_snippet` `<cg-video>` tag, which only plays on a
93
96
  private published site of the same account. The embed has playback
94
97
  attributes (`autoplay`+`muted`, `loop`, `start-time`, `poster`,
95
- `accent-color`, `exclusive`) and a JS API (`playSegment`, `seekTo`, media
98
+ `accent-color`, `exclusive`, and `clip-start`/`clip-end` to frame a single
99
+ "back to moment" clip) and a JS API (`playSegment`, `seekTo`, media
96
100
  events re-dispatched on the element) for custom site HTML, and plays
97
101
  standalone or inside the container components (`<cg-playlist>`,
98
102
  `<cg-grid>`, `<cg-chapters>`) — see reference/verbs.md.
@@ -278,7 +278,7 @@ generated site name, or your `--name` label.
278
278
 
279
279
  ```bash
280
280
  tinycloud publish video <source> [--visibility public|private] # default public
281
- [--name <title>] [--segment-id <id>] --json
281
+ [--name <title>] [--segment-id <id>] [--clip-start <s> --clip-end <e>] --json
282
282
  tinycloud publish video list [--in <source>] [--visibility public|private] --json
283
283
  tinycloud publish video unpublish <share-id | source> --json # --visibility disambiguates
284
284
  ```
@@ -297,6 +297,14 @@ feature id.
297
297
  `data.embed_snippet` (a `<cg-video share-id="...">` tag), which only plays
298
298
  on a PRIVATE published site of the same account — `tinycloud publish`
299
299
  rejects an artifact with a private embed targeted at a public site.
300
+ - Moment window (0.3.5+): pass `--clip-start <s> --clip-end <e>` (seconds,
301
+ `clip-end > clip-start >= 0`, both required together or the command errors)
302
+ to also get `data.moment_url` — the hosted share page bounded to
303
+ `[start, end]`, with the same length badge, region strip, and "↺ Back to
304
+ moment" pill as the `<cg-video>` clip embed, and it survives the
305
+ private-share sign-in. Optional — omit it for a plain full-video share. The
306
+ same window is just `?s=<start>&e=<end>` appended to a `share_url`, so you
307
+ can hand-build a moment link from an existing share without re-publishing.
300
308
 
301
309
  When generating custom site HTML around a `<cg-video>` embed, use the
302
310
  component's built-ins instead of reinventing them. It defaults to a
@@ -309,6 +317,17 @@ rest). Its JS API queues until ready — `playSegment(start, end?)`,
309
317
  element (`timeupdate`, `ended`, `cg-ready`); prefer `playSegment` over
310
318
  hand-rolled seek logic for "click a moment to play that segment" pages.
311
319
 
320
+ To frame a single moment inside the full recording — a cited highlight you
321
+ want to share on its own — add `clip-start`/`clip-end` (seconds) to a bare
322
+ `<cg-video>`: the player draws a clip-length badge, a clip-region strip with a
323
+ live playhead, snaps the first play to `clip-start`, and auto-pauses at
324
+ `clip-end` (via `playSegment`). Scrubbing out of the window fades in a soft
325
+ "↺ Back to moment" pill — a manual scrub-out is never forced back. Both are
326
+ required and `clip-end` is ignored unless it is greater than `clip-start`; the
327
+ pair is `<cg-video>`-only (not read on `<cg-playlist-item>`/`<cg-grid-item>`).
328
+ Rule of thumb: one moment → `clip-start`/`clip-end` on a `<cg-video>`; several
329
+ segments a viewer navigates between → `<cg-chapters>` (below).
330
+
312
331
  For multi-video or segment-navigation pages, prefer the container components
313
332
  over hand-rolled galleries and segment-list JS:
314
333
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "skill_version": "0.3.4",
2
+ "skill_version": "0.3.5",
3
3
  "tinycloud": {
4
4
  "min_version": "0.3.4",
5
5
  "supported_range": ">=0.3.4 <0.4.0",