@cloudglue/tinycloud 0.3.11 → 0.3.13
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.
|
|
20
|
+
`npx @cloudglue/tinycloud@0.3.13` always runs tinycloud 0.3.13. It also adds two
|
|
21
21
|
wrapper commands:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
tinycloud install --version 0.3.
|
|
24
|
+
tinycloud install --version 0.3.13 # 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
|
@@ -206,9 +206,11 @@ Authoring your own recipes: [reference/workflow-authoring.md](reference/workflow
|
|
|
206
206
|
`data.embed_snippet` (`<cg-video>`), which only plays on a private site of
|
|
207
207
|
the same account. When writing HTML around an embed, use the component's
|
|
208
208
|
built-ins (`autoplay`+`muted`, `loop`, `start-time`, `exclusive`,
|
|
209
|
+
`playbackrates` — speed-menu rates, default `1 1.5 2`, shown at every
|
|
210
|
+
player size; embed v7 —
|
|
209
211
|
`clip-start`/`clip-end` to frame one "back to moment" clip — plus
|
|
210
212
|
`clip-only`, 0.3.8+, to play nothing but that window; JS
|
|
211
|
-
`playSegment(start, end?)`) and the container components
|
|
213
|
+
`playSegment(start, end?)`, `playbackRate` get/set) and the container components
|
|
212
214
|
(`<cg-playlist>`, `<cg-grid>`, `<cg-chapters>`) rather than hand-rolled
|
|
213
215
|
players, galleries, or segment-list JS — details in
|
|
214
216
|
[reference/verbs.md](reference/verbs.md).
|
|
@@ -71,7 +71,8 @@ connector?" or an envelope field needs explaining.
|
|
|
71
71
|
(`status`, `data`, `ref`, `meta`, `error`, …). The machine contract; see
|
|
72
72
|
reference/envelope.md.
|
|
73
73
|
- **Watch context / describe** — the reusable analysis `tinycloud watch`
|
|
74
|
-
produces (summary, segments
|
|
74
|
+
produces (summary, segments with their spoken utterances inlined as
|
|
75
|
+
`speech[]`, transcript-ish context). Cached locally and
|
|
75
76
|
mirrored in Cloudglue, so later `extract`/`ask`/`search` reuse it instead
|
|
76
77
|
of re-analyzing.
|
|
77
78
|
- **See / image describe (0.3.7+)** — the image counterpart of `watch`:
|
|
@@ -121,9 +122,11 @@ connector?" or an envelope field needs explaining.
|
|
|
121
122
|
embed via the `data.embed_snippet` `<cg-video>` tag, which only plays on a
|
|
122
123
|
private published site of the same account. The embed has playback
|
|
123
124
|
attributes (`autoplay`+`muted`, `loop`, `start-time`, `poster`,
|
|
124
|
-
`accent-color`, `exclusive`,
|
|
125
|
+
`accent-color`, `exclusive`, `playbackrates` — space-separated
|
|
126
|
+
playback-speed-menu rates, default `1 1.5 2`, shown at every player size
|
|
127
|
+
(sites embed v7) — and `clip-start`/`clip-end` to frame a single
|
|
125
128
|
"back to moment" clip — `clip-only`, 0.3.8+, plays nothing but that
|
|
126
|
-
window) and a JS API (`playSegment`, `seekTo`, media
|
|
129
|
+
window) and a JS API (`playSegment`, `seekTo`, `playbackRate` get/set, media
|
|
127
130
|
events re-dispatched on the element) for custom site HTML, and plays
|
|
128
131
|
standalone or inside the container components (`<cg-playlist>`,
|
|
129
132
|
`<cg-grid>`, `<cg-chapters>`) — see reference/verbs.md.
|
|
@@ -54,7 +54,7 @@ Flags shared by most verbs are listed once at the bottom.
|
|
|
54
54
|
tinycloud watch <source> [--segment uniform:20|chapters|shots|segments]
|
|
55
55
|
[--shot-min-seconds <s>] [--shot-max-seconds <s>]
|
|
56
56
|
[--profile default|light|custom] [--speech-only | --visual-only]
|
|
57
|
-
[--start <t>] [--end <t>] [--transcript] [--content]
|
|
57
|
+
[--start <t>] [--end <t>] [--transcript] [--content]
|
|
58
58
|
[--background]
|
|
59
59
|
```
|
|
60
60
|
|
|
@@ -65,6 +65,20 @@ bounds are part of the cache key, so tuned and default shot passes never
|
|
|
65
65
|
collide. `watch` is **video/audio only** — point it at an image and it errors
|
|
66
66
|
("watch analyzes video/audio; for an image use `tinycloud see`").
|
|
67
67
|
|
|
68
|
+
Segments carry the spoken words (0.3.12+): each segment (and embedded shot)
|
|
69
|
+
inlines its overlapping utterances as `speech: string[]`. A source with
|
|
70
|
+
speech but no visual segmentation — an audio file, `--speech-only`, a very
|
|
71
|
+
short or windowed source — gets uniform 20s speech segments synthesized
|
|
72
|
+
(`"segmentation": "uniform:20"`) instead of an empty `segments` list. Caches
|
|
73
|
+
written by older versions heal automatically on the next watch or search.
|
|
74
|
+
|
|
75
|
+
`--transcript` adds the full transcript as `data.transcript` (speaker-labeled
|
|
76
|
+
when more than one speaker); `--content` inlines the complete describe
|
|
77
|
+
markdown as `data.content`. Both are derived per invocation — they don't
|
|
78
|
+
change the cache key and are served on cache hits, so asking for them never
|
|
79
|
+
re-runs an analysis. `--json-index` was removed in 0.3.12 (it had long been a
|
|
80
|
+
no-op; passing it now errors as an unknown flag).
|
|
81
|
+
|
|
68
82
|
### see — analyze an image (cloud, 0.3.7+)
|
|
69
83
|
|
|
70
84
|
```bash
|
|
@@ -122,6 +136,9 @@ tinycloud search "<keyword>" [--in <paths|source-ids|collection-ids|all>]
|
|
|
122
136
|
|
|
123
137
|
Searches cached context locally, including cached `see` image results (0.3.7+),
|
|
124
138
|
so a describe you've already run is greppable without another cloud call.
|
|
139
|
+
`--field speech` matches the utterances inlined on cached watch segments —
|
|
140
|
+
including speech-only/audio watches (0.3.12+; older cache entries heal in
|
|
141
|
+
place during the scan, nothing is re-billed).
|
|
125
142
|
|
|
126
143
|
### probe — semantic search (cloud)
|
|
127
144
|
|
|
@@ -373,13 +390,25 @@ When generating custom site HTML around a `<cg-video>` embed, use the
|
|
|
373
390
|
component's built-ins instead of reinventing them. It defaults to a
|
|
374
391
|
responsive 16:9 dark placeholder (override with plain page CSS on the
|
|
375
392
|
`cg-video` selector); mount-time attributes: `autoplay` (pair with `muted` or
|
|
376
|
-
browsers block it), `loop`, `start-time`, `poster`, `accent-color`,
|
|
393
|
+
browsers block it), `loop`, `start-time`, `poster`, `accent-color`,
|
|
394
|
+
`playbackrates` (speed menu — next paragraph), and
|
|
377
395
|
`exclusive` (put it on every player in a gallery so starting one pauses the
|
|
378
396
|
rest). Its JS API queues until ready — `playSegment(start, end?)`,
|
|
379
|
-
`seekTo()`, `play()`/`pause()` — and media events
|
|
397
|
+
`seekTo()`, `play()`/`pause()`, `playbackRate` (get/set) — and media events
|
|
398
|
+
are re-dispatched on the
|
|
380
399
|
element (`timeupdate`, `ended`, `cg-ready`); prefer `playSegment` over
|
|
381
400
|
hand-rolled seek logic for "click a moment to play that segment" pages.
|
|
382
401
|
|
|
402
|
+
Playback speed (sites embed v7): every `<cg-video>` shows a playback-speed
|
|
403
|
+
menu at every player size — including narrow grid cells and phones — with
|
|
404
|
+
default rates `1 1.5 2`. Supply your own list with the space-separated
|
|
405
|
+
`playbackrates` attribute (e.g. `playbackrates="0.5 1 1.5 2"`), and get/set
|
|
406
|
+
the speed from page code via the `playbackRate` JS property (safe to set
|
|
407
|
+
before mount; non-positive and non-numeric values are ignored — the viewer
|
|
408
|
+
can always change it from the menu). The speed menu ships in the
|
|
409
|
+
Cloudglue-served embed script, so it is not gated on a tinycloud version and
|
|
410
|
+
already-published sites pick it up without republishing.
|
|
411
|
+
|
|
383
412
|
To frame a single moment inside the full recording — a cited highlight you
|
|
384
413
|
want to share on its own — add `clip-start`/`clip-end` (seconds) to a bare
|
|
385
414
|
`<cg-video>`: the player draws a clip-length badge, a clip-region strip with a
|
|
@@ -9,11 +9,11 @@ set -u
|
|
|
9
9
|
|
|
10
10
|
# Mirror tinycloud-skill.json: min_version / supported_range upper bound
|
|
11
11
|
# (CI diffs these against the manifest).
|
|
12
|
-
MIN_VERSION="0.3.
|
|
12
|
+
MIN_VERSION="0.3.12"
|
|
13
13
|
MAX_VERSION_EXCLUSIVE="0.4.0"
|
|
14
14
|
INSTALL_CMD='curl -fsSL https://app.cloudglue.dev/tinycloud.sh | bash'
|
|
15
15
|
# Kept in sync with ../tinycloud-skill.json required_features (CI diffs them).
|
|
16
|
-
REQUIRED_FEATURES="envelope.v1 watch.v1 see.v1 extract.v1 extract.images.v1 caption.v1 search.v1 probe.v1 ask.v1 clip.v1 grab.v1 face.v1 jobs.v1 library.collections.v1 library.collections.create.v1 library.collections.mutate.v1 library.collections.entities.v1 library.sync.url.v1 workflow.v1 publish.v1 publish.manage.v1 publish.video.v1 setup.v1"
|
|
16
|
+
REQUIRED_FEATURES="envelope.v1 watch.v1 watch.speech.v1 see.v1 extract.v1 extract.images.v1 caption.v1 search.v1 probe.v1 ask.v1 clip.v1 grab.v1 face.v1 jobs.v1 library.collections.v1 library.collections.create.v1 library.collections.mutate.v1 library.collections.entities.v1 library.sync.url.v1 workflow.v1 publish.v1 publish.manage.v1 publish.video.v1 setup.v1"
|
|
17
17
|
|
|
18
18
|
# 1) Binary present and responsive?
|
|
19
19
|
if ! command -v tinycloud >/dev/null 2>&1; then
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"skill_version": "0.3.
|
|
2
|
+
"skill_version": "0.3.13",
|
|
3
3
|
"tinycloud": {
|
|
4
|
-
"min_version": "0.3.
|
|
5
|
-
"supported_range": ">=0.3.
|
|
4
|
+
"min_version": "0.3.12",
|
|
5
|
+
"supported_range": ">=0.3.12 <0.4.0",
|
|
6
6
|
"required_features": [
|
|
7
7
|
"envelope.v1",
|
|
8
8
|
"watch.v1",
|
|
9
|
+
"watch.speech.v1",
|
|
9
10
|
"see.v1",
|
|
10
11
|
"extract.v1",
|
|
11
12
|
"extract.images.v1",
|