@vosjs/cli 0.66.0 → 0.67.0
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/dist/{assetManifest-RDHHKAAM.js → assetManifest-DU5ZEIDE.js} +3 -3
- package/dist/{chunk-UQLC4BEZ.js → chunk-C5VKACGQ.js} +5 -1
- package/dist/{chunk-UQLC4BEZ.js.map → chunk-C5VKACGQ.js.map} +1 -1
- package/dist/{chunk-TYGDQEEI.js → chunk-MDRYSHOF.js} +2 -2
- package/dist/{chunk-63KINQOJ.js → chunk-OFTRK3Y3.js} +2 -2
- package/dist/{chunk-SFU4U3GM.js → chunk-XCWC7SUS.js} +30 -9
- package/dist/chunk-XCWC7SUS.js.map +1 -0
- package/dist/cli.js +6 -6
- package/dist/index.js +4 -4
- package/dist/{run-OY6B5AFZ.js → run-QSV3VXKE.js} +5 -5
- package/package.json +4 -4
- package/skills/VERSION +1 -1
- package/skills/launch-kit/SKILL.md +4 -1
- package/skills/vos-authoring/SKILL.md +14 -3
- package/skills/vos-create/SKILL.md +4 -1
- package/skills/vos-footage/SKILL.md +4 -1
- package/skills/vos-port/SKILL.md +2 -1
- package/skills/vos-port/references/elements-and-context.md +5 -2
- package/skills/vos-remix/SKILL.md +5 -2
- package/dist/chunk-SFU4U3GM.js.map +0 -1
- /package/dist/{assetManifest-RDHHKAAM.js.map → assetManifest-DU5ZEIDE.js.map} +0 -0
- /package/dist/{chunk-TYGDQEEI.js.map → chunk-MDRYSHOF.js.map} +0 -0
- /package/dist/{chunk-63KINQOJ.js.map → chunk-OFTRK3Y3.js.map} +0 -0
- /package/dist/{run-OY6B5AFZ.js.map → run-QSV3VXKE.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
stillOutFor,
|
|
20
20
|
stillWarnings,
|
|
21
21
|
videoFormat
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MDRYSHOF.js";
|
|
23
23
|
import {
|
|
24
24
|
ASSET_ROUTE,
|
|
25
25
|
MEDIA_HEAD_BYTES,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
resolveMediaType,
|
|
35
35
|
serveFile,
|
|
36
36
|
unusedFlagsMessage
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-C5VKACGQ.js";
|
|
38
38
|
|
|
39
39
|
// src/cli.ts
|
|
40
40
|
import { writeFile } from "fs/promises";
|
|
@@ -822,7 +822,7 @@ async function cmdCheck(argv) {
|
|
|
822
822
|
const result = runCheck(parsed);
|
|
823
823
|
if (result.config) {
|
|
824
824
|
const baseDir = baseDirOf(source);
|
|
825
|
-
const { hostedLiteralWarnings } = await import("./assetManifest-
|
|
825
|
+
const { hostedLiteralWarnings } = await import("./assetManifest-DU5ZEIDE.js");
|
|
826
826
|
const extra = [
|
|
827
827
|
...baseDir ? missingManifestFiles(result.config, baseDir) : [],
|
|
828
828
|
...hostedLiteralWarnings(result.config)
|
|
@@ -856,7 +856,7 @@ async function cmdCheck(argv) {
|
|
|
856
856
|
return result.ok ? EXIT_OK : EXIT_ERROR;
|
|
857
857
|
}
|
|
858
858
|
async function delegate(argv, viaAlias = false) {
|
|
859
|
-
const { run } = await import("./run-
|
|
859
|
+
const { run } = await import("./run-QSV3VXKE.js");
|
|
860
860
|
if (viaAlias && argv[0]) {
|
|
861
861
|
process.stderr.write(
|
|
862
862
|
`note: "vos voila ${argv[0]}" is now "vos ${argv[0]}".
|
|
@@ -896,7 +896,7 @@ async function main() {
|
|
|
896
896
|
const engine = HELP_ENGINE.split("\n").filter(
|
|
897
897
|
(l) => l.startsWith(` vos ${cmd} `)
|
|
898
898
|
);
|
|
899
|
-
const { verbHelp } = await import("./run-
|
|
899
|
+
const { verbHelp } = await import("./run-QSV3VXKE.js");
|
|
900
900
|
const take = verbHelp(cmd);
|
|
901
901
|
process.stdout.write(
|
|
902
902
|
`${engine.join("\n")}
|
|
@@ -928,7 +928,7 @@ ${take.includes("no such verb") ? "" : take}`
|
|
|
928
928
|
main().then(async (code) => {
|
|
929
929
|
if (code === EXIT_OK) {
|
|
930
930
|
const verb = process.argv[2] ?? "";
|
|
931
|
-
const { HELP } = await import("./run-
|
|
931
|
+
const { HELP } = await import("./run-QSV3VXKE.js");
|
|
932
932
|
const documented = [
|
|
933
933
|
...helpFlagsFor(HELP_ENGINE, verb),
|
|
934
934
|
...helpFlagsFor(HELP, verb)
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
startTakeServer,
|
|
15
15
|
validateActions,
|
|
16
16
|
waitForPageDone
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XCWC7SUS.js";
|
|
18
18
|
import {
|
|
19
19
|
BrowserUnavailableError,
|
|
20
20
|
configDuration,
|
|
@@ -23,13 +23,13 @@ import {
|
|
|
23
23
|
previewPages,
|
|
24
24
|
renderStill,
|
|
25
25
|
renderVideo
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-MDRYSHOF.js";
|
|
27
27
|
import {
|
|
28
28
|
RECORDING_NAME,
|
|
29
29
|
loadTake,
|
|
30
30
|
pullMedia,
|
|
31
31
|
takePaths
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-OFTRK3Y3.js";
|
|
33
33
|
import {
|
|
34
34
|
apiError,
|
|
35
35
|
apiJson,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
readSyncState,
|
|
39
39
|
resolveCredential,
|
|
40
40
|
writeSyncState
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-C5VKACGQ.js";
|
|
42
42
|
import "./chunk-6XPFWQKP.js";
|
|
43
43
|
import {
|
|
44
44
|
manifest
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
takeBackdrop,
|
|
7
7
|
takeBrowserArgs,
|
|
8
8
|
verbHelp
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-XCWC7SUS.js";
|
|
10
|
+
import "./chunk-MDRYSHOF.js";
|
|
11
|
+
import "./chunk-OFTRK3Y3.js";
|
|
12
|
+
import "./chunk-C5VKACGQ.js";
|
|
13
13
|
import "./chunk-6XPFWQKP.js";
|
|
14
14
|
export {
|
|
15
15
|
HELP,
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
takeBrowserArgs,
|
|
20
20
|
verbHelp
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=run-
|
|
22
|
+
//# sourceMappingURL=run-QSV3VXKE.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vosjs/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.0",
|
|
4
4
|
"description": "The vos CLI: record the real product from a scripted browser flow, auto-zoom from the cursor track, cut as data in doc.json, render deterministic video and stills, deliver a release's media per destination spec, and sync with vos.so. One binary, every verb, MIT.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -53,12 +53,12 @@
|
|
|
53
53
|
"playwright": "^1.49.0",
|
|
54
54
|
"@vosjs/core": "^0.27.1",
|
|
55
55
|
"@vosjs/editor": "^1.4.0",
|
|
56
|
-
"@vosjs/elements": "^0.10.3",
|
|
57
56
|
"@vosjs/render-core": "^0.3.21",
|
|
57
|
+
"@vosjs/elements": "^0.10.3",
|
|
58
58
|
"@vosjs/shared": "^0.7.0",
|
|
59
59
|
"@vosjs/studio-core": "^0.38.0",
|
|
60
|
-
"@vosjs/
|
|
61
|
-
"@vosjs/
|
|
60
|
+
"@vosjs/tween": "^0.8.3",
|
|
61
|
+
"@vosjs/timeline": "^0.5.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@types/node": "^22",
|
package/skills/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.22.0
|
|
@@ -285,11 +285,14 @@ kit's stills into the release's project so the human can retrospect without
|
|
|
285
285
|
a terminal:
|
|
286
286
|
|
|
287
287
|
```
|
|
288
|
-
vos push take --folder <project-slug> --label "v2.1 launch" --note "<what shipped, one line>"
|
|
288
|
+
vos push take --folder <project-slug> --label "v2.1 launch" --note "<what shipped, one line>" \
|
|
289
|
+
--prompt "<the person's prompt, as they wrote it>"
|
|
289
290
|
vos push poster/landscape --folder <project-slug> --label "v2.1 poster, landscape"
|
|
290
291
|
vos asset push kit/*.png --folder <project-slug>
|
|
291
292
|
```
|
|
292
293
|
|
|
294
|
+
`--prompt` shows the person's prompt on the watch page by default: their words as they wrote them, never yours, with no file path, key or email they did not mean to publish. Say it is shown, and that they can take it off from the watch page.
|
|
295
|
+
|
|
293
296
|
End by handing the human the loop, not the files: the watch page plays the
|
|
294
297
|
latest version, the studio edits the cut AND the posters (the card is a
|
|
295
298
|
layer you drag; the words are retyped in place), and `vos pull --media`
|
|
@@ -56,10 +56,20 @@ Find a credential in this order, without printing it: `VOS_API_KEY`, then
|
|
|
56
56
|
the first line of `~/.config/vos/credentials`. With one, push:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
vos push my-config.json --title "…" --desc "one line"
|
|
59
|
+
vos push my-config.json --title "…" --desc "one line" \
|
|
60
|
+
--prompt "<the person's prompt, as they wrote it>" --wait
|
|
60
61
|
# --wait stays until the cover has rendered, then prints the links
|
|
61
62
|
```
|
|
62
63
|
|
|
64
|
+
**Show the prompt that made it.** Pass the person's prompt with `--prompt`
|
|
65
|
+
on the push that creates the vos: the watch page shows it by default, so
|
|
66
|
+
whoever watches sees what was asked. Use their words as they wrote them,
|
|
67
|
+
typos included, and never add your own; leave out a file path, key, email
|
|
68
|
+
or name they did not mean to publish. The vos lands private, so its owner
|
|
69
|
+
sees the prompt before anyone else: say it is shown, and that they can take
|
|
70
|
+
it off from the watch page. A push without one prints the command that
|
|
71
|
+
adds it.
|
|
72
|
+
|
|
63
73
|
The vos lands PRIVATE on the key owner's shelf: only they can open the
|
|
64
74
|
links, and publishing stays their act on vos.so. Keyed pushes never expire;
|
|
65
75
|
iterate with `vos push my-config.json --vos <id>`.
|
|
@@ -67,13 +77,14 @@ iterate with `vos push my-config.json --vos <id>`.
|
|
|
67
77
|
No credential at all? Use the claimable push instead of stopping:
|
|
68
78
|
|
|
69
79
|
```bash
|
|
70
|
-
vos push my-config.json --claimable --title "…"
|
|
80
|
+
vos push my-config.json --claimable --title "…" \
|
|
81
|
+
--prompt "<the person's prompt, as they wrote it>"
|
|
71
82
|
# → claim: https://vos.so/claim/… expires: <72h from now>
|
|
72
83
|
|
|
73
84
|
# No CLI, or an older one? The same thing over plain HTTP:
|
|
74
85
|
curl -s -X POST https://vos.so/api/claim \
|
|
75
86
|
-H 'content-type: application/json' \
|
|
76
|
-
-d '{"title": "…", "config": <the VosConfigJson>}'
|
|
87
|
+
-d '{"title": "…", "prompt": "<their prompt>", "config": <the VosConfigJson>}'
|
|
77
88
|
# → { "claimUrl": "https://vos.so/claim/…", "expiresAt": "…" }
|
|
78
89
|
```
|
|
79
90
|
|
|
@@ -165,9 +165,12 @@ from what it produced.
|
|
|
165
165
|
|
|
166
166
|
```bash
|
|
167
167
|
vos push <file>.json --title "…" --desc "one line" --tags a,b \
|
|
168
|
-
--folder <folderId|slug> --label "what you did" --note "why: the ask"
|
|
168
|
+
--folder <folderId|slug> --label "what you did" --note "why: the ask" \
|
|
169
|
+
--prompt "<the person's prompt, as they wrote it>"
|
|
169
170
|
```
|
|
170
171
|
|
|
172
|
+
`--prompt` shows the person's prompt on the watch page by default: their words as they wrote them, never yours, with no file path, key or email they did not mean to publish. Say it is shown, and that they can take it off from the watch page.
|
|
173
|
+
|
|
171
174
|
Pass `--label` and `--note` on EVERY push, the first one included: a
|
|
172
175
|
create stamps them on v1, and the history is the conversation the human
|
|
173
176
|
reads. The push creates a PRIVATE vos on the key owner's shelf, filed
|
|
@@ -69,9 +69,12 @@ sliced to the window); the editorial cut still trims `segments`.
|
|
|
69
69
|
## 4. The shelf is the record — push BEFORE the handoff
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
vos push take --label "footage handoff" --note "<what it shows; which composition it feeds>"
|
|
72
|
+
vos push take --label "footage handoff" --note "<what it shows; which composition it feeds>" \
|
|
73
|
+
--prompt "<the person's prompt, as they wrote it>"
|
|
73
74
|
```
|
|
74
75
|
|
|
76
|
+
`--prompt` shows the person's prompt on the watch page by default: their words as they wrote them, never yours, with no file path, key or email they did not mean to publish. Say it is shown, and that they can take it off from the watch page.
|
|
77
|
+
|
|
75
78
|
The take goes to the maker's shelf first, so the clip is never the only
|
|
76
79
|
copy of the work. Two cases where you ASK before pushing instead: there is
|
|
77
80
|
no vos.so credential (`vos login` needs the human), or the footage shows a
|
package/skills/vos-port/SKILL.md
CHANGED
|
@@ -195,7 +195,8 @@ approximation.
|
|
|
195
195
|
6. **Knob honesty**: one `--set data.<key>=<value>` still per param.
|
|
196
196
|
7. **Push** with the score: `vos push config.json --folder <slug> --label
|
|
197
197
|
"port of <source>" --note "<what was substituted, what is a painter>"
|
|
198
|
-
--
|
|
198
|
+
--prompt "<the person's prompt, as they wrote it>" --wait`, and hand over
|
|
199
|
+
the watch and studio links. `--prompt` shows the person's prompt on the watch page by default: their words as they wrote them, never yours, with no file path, key or email they did not mean to publish. Say it is shown, and that they can take it off from the watch page.
|
|
199
200
|
|
|
200
201
|
## The honest gaps (say them in the push note)
|
|
201
202
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Generated by scripts/build-element-reference.mjs from @vosjs/core 0.27.
|
|
1
|
+
<!-- Generated by scripts/build-element-reference.mjs from @vosjs/core 0.27.1, @vosjs/elements 0.10.3, @vosjs/timeline 0.5.0 and @vosjs/shared 0.7.0. Do not edit by hand: re-run the script. -->
|
|
2
2
|
|
|
3
3
|
# Elements, the context and eases: the declarations
|
|
4
4
|
|
|
@@ -208,7 +208,10 @@ interface BaseElement {
|
|
|
208
208
|
type: 'text' | 'image' | 'svg' | 'video' | 'audio';
|
|
209
209
|
/** Position on screen */
|
|
210
210
|
position: ElementPosition;
|
|
211
|
-
/**
|
|
211
|
+
/**
|
|
212
|
+
* The point of the box an `{x, y}` position names (absent: its top-left
|
|
213
|
+
* corner). Ignored for a preset position, which places the whole box.
|
|
214
|
+
*/
|
|
212
215
|
anchor?: Anchor;
|
|
213
216
|
/** Layer order (higher = on top, default: 100) */
|
|
214
217
|
zIndex?: number;
|
|
@@ -33,7 +33,8 @@ Two shapes, both used as `Authorization: Bearer`:
|
|
|
33
33
|
Humans mint keys at https://vos.so/app/api.
|
|
34
34
|
3. **No credential at all** — the claimable push (programs only):
|
|
35
35
|
```bash
|
|
36
|
-
vos push my-remix.json --claimable --title "My remix"
|
|
36
|
+
vos push my-remix.json --claimable --title "My remix" \
|
|
37
|
+
--prompt "<the person's prompt, as they wrote it>"
|
|
37
38
|
# → claim: https://vos.so/claim/… expires: <72h from now>
|
|
38
39
|
|
|
39
40
|
# No CLI, or an older one? The same thing over plain HTTP:
|
|
@@ -88,11 +89,13 @@ vos.so.
|
|
|
88
89
|
5. **Push** as a private vos with lineage (the CLI reads `vos.json` beside
|
|
89
90
|
the config for the `remixOfId` credit):
|
|
90
91
|
```bash
|
|
91
|
-
vos push <slug>/config.json --title "Aurora Ribbons — dusk"
|
|
92
|
+
vos push <slug>/config.json --title "Aurora Ribbons — dusk" \
|
|
93
|
+
--prompt "<the person's prompt, as they wrote it>"
|
|
92
94
|
# → Created private vos <id>
|
|
93
95
|
# watch: https://vos.so/vos/<id>
|
|
94
96
|
# studio: https://vos.so/studio?vos=<id>
|
|
95
97
|
```
|
|
98
|
+
`--prompt` shows the person's prompt on the watch page by default: their words as they wrote them, never yours, with no file path, key or email they did not mean to publish. Say it is shown, and that they can take it off from the watch page.
|
|
96
99
|
|
|
97
100
|
6. **Iterate** — further edits become versions of the same vos:
|
|
98
101
|
```bash
|