@vosjs/cli 0.60.1 → 0.63.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/README.md +5 -3
- package/dist/{assetManifest-Y5FYTZW6.js → assetManifest-OMN33M2A.js} +2 -2
- package/dist/{chunk-QL25OPZB.js → chunk-AKIPDSHE.js} +656 -222
- package/dist/chunk-AKIPDSHE.js.map +1 -0
- package/dist/{chunk-WZGCEAXB.js → chunk-AUFY3M22.js} +2 -2
- package/dist/{chunk-WZGCEAXB.js.map → chunk-AUFY3M22.js.map} +1 -1
- package/dist/{chunk-YMVRTZ4L.js → chunk-PT73CRXX.js} +48 -77
- package/dist/chunk-PT73CRXX.js.map +1 -0
- package/dist/cli.js +5 -5
- package/dist/index.js +3 -3
- package/dist/manifest-ZBK6IERM.js +8 -0
- package/dist/{run-BJ77A4G6.js → run-OGG3NP2N.js} +3 -3
- package/package.json +4 -4
- package/schema/doc.schema.json +1 -1
- package/skills/VERSION +1 -1
- package/skills/vos-authoring/references/schema-reference.md +2 -0
- package/skills/vos-remix/references/3d-recipe.md +16 -10
- package/dist/chunk-QL25OPZB.js.map +0 -1
- package/dist/chunk-YMVRTZ4L.js.map +0 -1
- package/dist/manifest-Q4QMVIYR.js +0 -8
- /package/dist/{assetManifest-Y5FYTZW6.js.map → assetManifest-OMN33M2A.js.map} +0 -0
- /package/dist/{manifest-Q4QMVIYR.js.map → manifest-ZBK6IERM.js.map} +0 -0
- /package/dist/{run-BJ77A4G6.js.map → run-OGG3NP2N.js.map} +0 -0
package/README.md
CHANGED
|
@@ -328,19 +328,21 @@ vos pull bright-loop [--since <versionId>] [--check] # what changed on vos.so
|
|
|
328
328
|
# --check reports without writing; --since walks from a base you name
|
|
329
329
|
vos duplicate <vosId> # a private sibling of your OWN vos (someone else's is remixed: fetch, then push --remix-of)
|
|
330
330
|
vos folder list | create <name> [--parent] [--desc] | move <ids…> --to <folder|none> | pull <ref> [--media]
|
|
331
|
-
vos asset push <file…> [--folder <slug>] | rename <id> <name.ext> #
|
|
331
|
+
vos asset push <file…> [--folder <slug>] | rename <id> <name.ext> # any kind the platform takes (GET /api/limits); prints asset:<id>, the url, and the manifest line
|
|
332
|
+
vos asset import <url> [--license <text>] [--attribution <text>] # fetch a file from an address and add it, with where it came from kept beside it
|
|
333
|
+
vos assets ls [--kind <kind>] [--q <text>] [--sort size] | usage | why <id> # what is in the library, what holds the storage, what uses a file
|
|
332
334
|
vos recipe push <FILE.md> --folder <slug> | --asset <id> # the one recipe write: create, or replace in place
|
|
333
335
|
```
|
|
334
336
|
|
|
335
337
|
`push` is polymorphic by a deterministic sniff, never a flag: a take directory (a `doc.json` carrying `source`) pushes recording and document through the take pipeline; a `config.json` (or a directory holding one) pushes the program, and a `doc.json` beside it that carries `program` (a program document: overlays, objects, audio, speed, tween edits, its own length; `program.config` omitted on disk) rides along, lint-gated. `fetch` and `pull` write a program document back the same way. `pull` takes `--since <versionId>` (walk the changelog from that base instead of the tracked one) and `--check` (print what changed and stop: nothing on disk moves) on both paths. A program push LANDS where `vos.json` says: a directory that tracks a vos iterates it, so the fetch, edit, check, push, pull loop needs no flags, and making something separate from the same config is the explicit `--remix-of` door. Program pushes take `--vos`, `--title`, `--slug`, `--desc`, `--tags`, `--folder`, `--remix-of`, `--base`, `--label`, `--note`, `--override <id>` (repeatable) and `--claimable`; take pushes take `--title`, `--label`, `--note`, `--folder`, `--override` and `--yes`. Both take `--wait`. A new vos pushed without `--folder` lands unfiled, at the root of the shelf, and the done line says so.
|
|
336
338
|
|
|
337
|
-
**A program's files are declared, never typed into a function.** `config.json` names each file it uses in `assets` (`"assets": { "logo": { "ref": "./logo.png", "kind": "image" }, "shots": { "ref": ["./shots/1.png", "./shots/2.png"] } }`) and reads `ctx.assets.logo`, or `"$assets.logo"` in an element, object or font. On disk a `ref` is a path in the config's own directory or below, so `vos render`, `vos still` and `vos preview` serve the file to the page from disk. A path that climbs out of that directory (`../`, an absolute path, a link that points away) is not served and not uploaded, and a config loaded from a URL reads no local file: a program's code runs in a page, and what the page is served the program can send anywhere. `vos push` uploads each local file (content-addressed, so a re-push sends nothing
|
|
339
|
+
**A program's files are declared, never typed into a function.** `config.json` names each file it uses in `assets` (`"assets": { "logo": { "ref": "./logo.png", "kind": "image" }, "shots": { "ref": ["./shots/1.png", "./shots/2.png"] } }`) and reads `ctx.assets.logo`, or `"$assets.logo"` in an element, object or font. On disk a `ref` is a path in the config's own directory or below, so `vos render`, `vos still` and `vos preview` serve the file to the page from disk. A path that climbs out of that directory (`../`, an absolute path, a link that points away) is not served and not uploaded, and a config loaded from a URL reads no local file: a program's code runs in a page, and what the page is served the program can send anywhere. `vos push` uploads each local file (content-addressed, so a re-push sends nothing: pictures, SVG, video, sound, `.glb` models, fonts and HDR environments) and what it stores names the hosted file as `asset:<id>`, the one spelling the platform resolves for every render; the config on disk keeps its paths. A file an element names as `src` or a font names as `url` is lifted into the manifest on the way (the element then names `"$assets.<name>"`), and a path in `data` that is a file beside the config is uploaded and rewritten to the hosted file's path, so every place a program can name a file crosses. A file typed inside a function cannot be rewritten: `vos push` says so, with the manifest line to write. `vos fetch --media` brings a program's hosted files home under `assets/` and re-points the manifest at them (`assets/.hosted.json` remembers which hosted file each one is, so a later fetch replaces one that changed); without `--media` the manifest keeps `asset:<id>` and a local render reads each file with your key. `vos check` says when a `"$assets.<name>"` names nothing, when a declared path is not a file, and when a function names a hosted file in code instead of the manifest: a file named only in code does not load on a render of a private program and does not follow a remix. A `--claimable` push carries them too, through the claim's own upload session (below).
|
|
338
340
|
|
|
339
341
|
**Sound is a track, never an element.** A document's added sound lives in `doc.json` (`audio: [{ id, key, name, start, in, out, duration, gain, fadeIn, fadeOut }]`) for a program as for a take: `vos push` uploads each local file its keys name and keys the hosted asset; `vos render` of a program mixes it locally; the studio shows it as a track with gain and fades. An `audio` element embedded in the config is not a track (renders do not mix it, and a `data:` source can push a config past what a claimable push carries); `vos check` says so. `vos asset push score.ogg` uploads a sound on its own and prints the url a key takes; an unfiled sound that no document uses is removed after 7 days, so pass `--folder` or reference it.
|
|
340
342
|
|
|
341
343
|
Both paths share the same base tracking and the same two 409 shapes. `stale_base` replays the platform's typed changelog: run `vos pull`, re-apply, push again. `protected_conflict` lists nodes a human edited in the studio: keep their values, or re-push with `--override <id>` only when the user asked for that exact change. The first push of a take asks before uploading (`--yes` for headless); agents never upload unprompted. The take's duration rides the upload, and the platform refuses a take over the hosted recording cap. Every push should carry `--label` (what changed, one line) and `--note` (why: the user's ask); the version history reads as a conversation, and an unlabelled push is a turn the human cannot read.
|
|
342
344
|
|
|
343
|
-
`--claimable` is the credential-free rung, programs only: no key is resolved, no `vos.json` is written, and the response is a claim URL (72 h; unclaimed work is deleted, which is deliberate cleanup). Hand the link to the user and nowhere else: it is the only reference and the only credential. Claiming moves the vos into the user's library, and iteration after claim rides their key (`vos push --vos <id>`). Limits are the platform's: config ≤ 200 KB, 5 pushes per day per network.
|
|
345
|
+
`--claimable` is the credential-free rung, programs only: no key is resolved, no `vos.json` is written, and the response is a claim URL (72 h; unclaimed work is deleted, which is deliberate cleanup). Hand the link to the user and nowhere else: it is the only reference and the only credential. Claiming moves the vos into the user's library, and iteration after claim rides their key (`vos push --vos <id>`). Limits are the platform's: config ≤ 200 KB, 5 pushes per day per network. Every local file the program names (the manifest, elements, fonts, `data`, and the document's overlays, props and sound) crosses through the claim's own upload session, which the push opens with no credential and the claim spends: at most 12 files and 50 MB in all, sound up to 5 minutes, video up to 60 seconds. Until the user claims it, the claim link is the only way to read them; at the claim they become the user's. Anything a push could not carry is a `warning` event under `--json`, never only a line on stderr. `--share` makes the claim page lead with "Claim and share", which claims it and gives it a link anyone can watch in the user's one press; it is refused on a keyed push, because a key never publishes. `--prompt "<text>"` shows the prompt that made it on the watch page, on any program push: pass only what the user wrote, and only when they said to show it.
|
|
344
346
|
|
|
345
347
|
`vos folder pull <ref>` writes a folder's context package to disk (its recipes, the inherited ones, the exemplar programs and assets), which is what an agent reads to create in the owner's style. Recipes are `.md` files named in capitals (`CUT.md`, `BRAND.md`): the server uppercases an agent-filed name.
|
|
346
348
|
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
localManifestRefs,
|
|
5
5
|
pullManifest,
|
|
6
6
|
uploadManifest
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PT73CRXX.js";
|
|
8
8
|
import "./chunk-WCF6KIOK.js";
|
|
9
9
|
export {
|
|
10
10
|
hostedLiteralWarnings,
|
|
@@ -12,4 +12,4 @@ export {
|
|
|
12
12
|
pullManifest,
|
|
13
13
|
uploadManifest
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=assetManifest-
|
|
15
|
+
//# sourceMappingURL=assetManifest-OMN33M2A.js.map
|