@osmo.inc/cli 0.1.15 → 0.1.17
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/DEPLOY.md +30 -67
- package/README.md +11 -231
- package/SETUP.md +18 -48
- package/dist/osmo.js +861 -736
- package/package.json +3 -4
- package/release.json +14 -15
- package/vendor/osmo-lite +0 -0
- package/vendor/platform.json +1 -1
- package/RELEASE.md +0 -164
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osmo.inc/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
7
7
|
"tag": "latest",
|
|
8
8
|
"registry": "https://registry.npmjs.org/"
|
|
9
9
|
},
|
|
10
|
-
"description": "
|
|
10
|
+
"description": "Share videos. Collect feedback.",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"bin": {
|
|
13
13
|
"osmo": "bin/osmo.mjs"
|
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
"LICENSE",
|
|
27
27
|
"THIRD_PARTY_NOTICES.md",
|
|
28
28
|
"third-party",
|
|
29
|
-
"release.json"
|
|
30
|
-
"RELEASE.md"
|
|
29
|
+
"release.json"
|
|
31
30
|
],
|
|
32
31
|
"engines": {
|
|
33
32
|
"node": ">=22 <23"
|
package/release.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.17",
|
|
3
3
|
"platform": "darwin-arm64",
|
|
4
4
|
"channel": "latest",
|
|
5
5
|
"defaultCloudOrigin": "https://studio.osmo.inc",
|
|
6
|
-
"sourceCommit": "
|
|
7
|
-
"sourceDirty":
|
|
6
|
+
"sourceCommit": "563ee37eec74dc7d47098e83e50e9b2088f5e28b",
|
|
7
|
+
"sourceDirty": true,
|
|
8
8
|
"signing": "ad-hoc",
|
|
9
9
|
"licenseFileIncluded": false,
|
|
10
10
|
"dependencyCount": 243,
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"contents": {
|
|
19
|
-
"totalBytes":
|
|
20
|
-
"fileCount":
|
|
19
|
+
"totalBytes": 59042643,
|
|
20
|
+
"fileCount": 947,
|
|
21
21
|
"groups": {
|
|
22
22
|
"vendor": 16948891,
|
|
23
23
|
"studio": 15935597,
|
|
@@ -25,16 +25,15 @@
|
|
|
25
25
|
"node_modules/typescript": 9913238,
|
|
26
26
|
"third-party": 4800129,
|
|
27
27
|
"src": 375601,
|
|
28
|
-
"dist":
|
|
28
|
+
"dist": 298595,
|
|
29
29
|
"node_modules/esbuild": 143795,
|
|
30
30
|
"runtime": 137478,
|
|
31
31
|
"node_modules/fflate": 96377,
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"DEPLOY.md": 4829,
|
|
35
|
-
"SETUP.md": 2811,
|
|
32
|
+
"DEPLOY.md": 2902,
|
|
33
|
+
"SETUP.md": 1138,
|
|
36
34
|
"THIRD_PARTY_NOTICES.md": 1088,
|
|
37
|
-
"package.json":
|
|
35
|
+
"package.json": 889,
|
|
36
|
+
"README.md": 636,
|
|
38
37
|
"bin": 544
|
|
39
38
|
},
|
|
40
39
|
"largestFiles": [
|
|
@@ -72,7 +71,7 @@
|
|
|
72
71
|
},
|
|
73
72
|
{
|
|
74
73
|
"path": "dist/osmo.js",
|
|
75
|
-
"bytes":
|
|
74
|
+
"bytes": 298595
|
|
76
75
|
},
|
|
77
76
|
{
|
|
78
77
|
"path": "third-party/rust-standard-library/COPYRIGHT-library.html",
|
|
@@ -121,15 +120,15 @@
|
|
|
121
120
|
]
|
|
122
121
|
},
|
|
123
122
|
"hashes": {
|
|
124
|
-
"dist/osmo.js": "
|
|
125
|
-
"vendor/osmo-lite": "
|
|
123
|
+
"dist/osmo.js": "01bc4e6a15c8508d8f2a408251303b2ee47e652dd9e530569dfd0705772546ac",
|
|
124
|
+
"vendor/osmo-lite": "403b62a187b6185128a8137210ae87ace3a4a13a0ff92b12aa1d9d85d7f99c07",
|
|
126
125
|
"studio/src/engine_bg.wasm": "7e1414a348e0e4de6646248f1cba4f08e73f30f5f42c3db3ed8beac2f1513bc4",
|
|
127
126
|
"studio/src/app.js": "4b1d952844a3ed878c0cdd20ce5d26bab711564e4086abc422ef939f299c70ff",
|
|
128
127
|
"studio/src/app.css": "42bd8cf182d2e5c9183fe04cddece8a150992180ed7e9bc9e981e376224d96ef",
|
|
129
128
|
"third-party/inventory.json": "6ff4e90c6583a67ca8bfe95b3f4399cfcdc080d39585dce1314a8dd91ee6fecb"
|
|
130
129
|
},
|
|
131
130
|
"lockfiles": {
|
|
132
|
-
"package-lock.json": "
|
|
131
|
+
"package-lock.json": "45083fcc718c0e5547b36eaeaadc7889ebb9c4989ab4d06fa54bc09a3fca2a14",
|
|
133
132
|
"apps/native/Cargo.lock": "cf31d67cf167c5f32438abfeb42159eb50da61d36e4e482bae50ed3d71241373",
|
|
134
133
|
"packages/render-engine/Cargo.lock": "a1a68051e1eea30ef0fa46bf17cd0685bb2c6a327defed0405e0d63dd61017a7"
|
|
135
134
|
}
|
package/vendor/osmo-lite
CHANGED
|
Binary file
|
package/vendor/platform.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"os":"darwin","arch":"arm64","version":"0.1.
|
|
1
|
+
{"os":"darwin","arch":"arm64","version":"0.1.17"}
|
package/RELEASE.md
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# Public release
|
|
2
|
-
|
|
3
|
-
Release branch: `feat/cli-public-beta-typescript`, based on preview after TypeScript migration
|
|
4
|
-
PR #1045. The previous implementation remains on `feat/cli-public-beta`. End-user cloud default:
|
|
5
|
-
`https://studio.osmo.inc`. Preview testing requires an explicit
|
|
6
|
-
`OSMO_BASE_URL=https://preview.osmo.inc` override. Existing project origins and
|
|
7
|
-
per-origin credentials are preserved; preview logins are not reused for production.
|
|
8
|
-
Initial supported distribution: macOS Apple Silicon, arm64 Node 22. Other
|
|
9
|
-
platforms must have their own build and clean-machine validation before support
|
|
10
|
-
is declared. The current host's native deployment target is recorded by the
|
|
11
|
-
binary; older macOS versions have not been certified by this change.
|
|
12
|
-
|
|
13
|
-
## Studio release switch
|
|
14
|
-
|
|
15
|
-
`OSMO_STUDIO_ENABLED=1` enables the unreleased `osmo studio` namespace for internal
|
|
16
|
-
testing, including `osmo studio init [folder]`. Initialization and its generated
|
|
17
|
-
AGENTS.md guide belong to Studio; the former top-level `osmo init` is removed.
|
|
18
|
-
Studio defaults off in both checkout and installed builds, independently of the
|
|
19
|
-
cloud origin. Other values do not enable it. Disabled commands return
|
|
20
|
-
`feature_disabled` with `--json` before project lookup, rendering, or cloud writes;
|
|
21
|
-
help and video-share usage omit Studio commands. This local switch does not
|
|
22
|
-
provide account-based access control.
|
|
23
|
-
|
|
24
|
-
Project commands (`publish`, `push`, `pull`, `sync`, `clone`, and `history`) also
|
|
25
|
-
live under `osmo studio` and require the same opt-in; their top-level forms are
|
|
26
|
-
removed. Top-level authentication, resources, video sharing, and video comments
|
|
27
|
-
are unchanged. The archive still contains
|
|
28
|
-
the full runtime for internal opt-in; this flag alone does not shrink the payload.
|
|
29
|
-
The release manifest records the default and environment variable. Installed
|
|
30
|
-
smoke tests cover the disabled public surface and explicitly opt in for Studio
|
|
31
|
-
rendering/deploy tests. Video deployment tests run with Studio disabled.
|
|
32
|
-
|
|
33
|
-
## Build and package
|
|
34
|
-
|
|
35
|
-
1. Use a clean checkout, `npm ci`, arm64 Node 22.18+, Rust/Cargo, wasm-pack,
|
|
36
|
-
the wasm32-unknown-unknown Rust target, Xcode command-line tools, Git, and FFmpeg.
|
|
37
|
-
The package builds both renderer targets from source, then bundles Studio.
|
|
38
|
-
It also rebuilds the TypeScript CLI into `dist/osmo.js`; only that bundle and
|
|
39
|
-
its starter/resource templates are shipped, not raw CLI or editor source.
|
|
40
|
-
Compilation defaults to two Cargo jobs to limit memory usage.
|
|
41
|
-
2. Run unit tests, build the package and validate the installed archive:
|
|
42
|
-
|
|
43
|
-
```sh
|
|
44
|
-
npm -w @osmo/cli test
|
|
45
|
-
npm -w @osmo/studio test
|
|
46
|
-
npm -w @osmo/cli run test:package
|
|
47
|
-
npm -w @osmo/cli run package:npm
|
|
48
|
-
node packages/cli/tools/smoke-package.mjs dist/osmo.inc-cli-0.1.15-darwin-arm64.tgz
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
`package:npm` builds a publishable archive without requiring a first-party
|
|
52
|
-
LICENSE file or Apple credentials. Existing first-party license metadata and an
|
|
53
|
-
optional LICENSE file are preserved; the build does not choose new license terms.
|
|
54
|
-
`package:internal` performs the same builds and checks but sets `private: true`
|
|
55
|
-
for a local test archive. Neither command publishes to npm.
|
|
56
|
-
|
|
57
|
-
### Optional Apple signing
|
|
58
|
-
|
|
59
|
-
Both archive types use an ad-hoc signature by default, which needs no Apple
|
|
60
|
-
account or certificate. Set `OSMO_SIGNING_IDENTITY` to opt into certificate
|
|
61
|
-
signing. Also set `OSMO_NOTARY_PROFILE` to opt into notarization using a configured
|
|
62
|
-
`notarytool` keychain profile; that option requires a Developer ID Application
|
|
63
|
-
identity. If explicitly requested signing/notarization fails, packaging fails
|
|
64
|
-
instead of silently downgrading. `release.json.signing` records `ad-hoc`,
|
|
65
|
-
`signed`, or `developer-id-notarized`. Standalone Mach-O binaries cannot have
|
|
66
|
-
notarization tickets stapled. Do not commit credentials.
|
|
67
|
-
|
|
68
|
-
## Notices
|
|
69
|
-
|
|
70
|
-
`third-party/inventory.json` enumerates the actual Studio bundle inputs, installed
|
|
71
|
-
CLI dependencies and target-specific Cargo dependency graphs. Full upstream
|
|
72
|
-
notices, Inter OFL, and matching Mediabunny MPL source are included. The CLI
|
|
73
|
-
renderer excludes desktop UI dependencies and their unused fonts. Cargo entries conservatively include build-time dependencies.
|
|
74
|
-
Missing third-party license text fails packaging. For crates omitting notices from their
|
|
75
|
-
published archive, `licenses/rust-sources.json` pins upstream notice files by
|
|
76
|
-
version, source commit and SHA-256. Dependency updates require reviewing these
|
|
77
|
-
records. The upstream declaration and standard MIT text are retained for crates
|
|
78
|
-
that declare MIT but omit its full text; see `licenses/README.md`.
|
|
79
|
-
|
|
80
|
-
`release.json` records the source commit, dirty-tree state, lockfile hashes,
|
|
81
|
-
platform, cloud default, signing state, renderer/Studio hashes, and payload sizes
|
|
82
|
-
by directory with the largest files. These are
|
|
83
|
-
local build records, not npm or SLSA provenance attestations. Review the archive
|
|
84
|
-
contents before publishing. No Passenger fonts should be present.
|
|
85
|
-
|
|
86
|
-
## Before opening access
|
|
87
|
-
|
|
88
|
-
- Validate the archive on a second Apple Silicon Mac, including launch behavior,
|
|
89
|
-
install, login to studio.osmo.inc, font rendering, MP4 export and both deploy workflows.
|
|
90
|
-
- Confirm the intended production account access policy, storage limits, upload rate
|
|
91
|
-
limits and operational budget. Those backend policies are not added by this
|
|
92
|
-
packaging change. Existing per-file limits are not per-account quotas.
|
|
93
|
-
- Use your company npm publishing credentials for `@osmo.inc/cli`. Publish stable versions under npm's
|
|
94
|
-
`latest` tag.
|
|
95
|
-
- Publish separately when ready:
|
|
96
|
-
|
|
97
|
-
```sh
|
|
98
|
-
npm publish ./dist/osmo.inc-cli-0.1.15-darwin-arm64.tgz --access public --tag latest
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
The private GitHub repository is not made public by this workflow. No automated
|
|
102
|
-
public publishing workflow is enabled here. Project initialization now uses `osmo studio init`; the scene API is unchanged.
|
|
103
|
-
|
|
104
|
-
## Local validation of 0.1.15-beta.1
|
|
105
|
-
|
|
106
|
-
Validated on macOS 27.0 / Apple Silicon, Node 22.23.1. The native binary declares
|
|
107
|
-
macOS 11.0 as its deployment target; this does not certify older macOS versions.
|
|
108
|
-
All scene, editor, Studio and CLI typechecks passed after the TypeScript port.
|
|
109
|
-
Scene tests: 233 passed; editor: 129; Studio: 68; CLI: 76, with the native deploy
|
|
110
|
-
case run separately. Packaging regressions: 3 passed, including stale-font
|
|
111
|
-
removal, missing/tampered notice rejection, and execution of the trimmed compiler
|
|
112
|
-
and ZIP dependency. The actual 19.5 MiB archive installed
|
|
113
|
-
offline outside the checkout, rejected unavailable Git without creating a partial
|
|
114
|
-
project, initialized and typechecked the starter, and rendered visible Inter text
|
|
115
|
-
to MP4. The archive contains `dist/osmo.js`, not raw CLI TypeScript, and its
|
|
116
|
-
bundled auth flow independently verifies the studio.osmo.inc default. All 5 deploy tests passed against local cloud fixtures using the installed
|
|
117
|
-
CLI and native release binary, including both deploy modes and comments. Two
|
|
118
|
-
additional installed-package tests passed: generated SVG/WGSL/GLB fixtures and
|
|
119
|
-
audible AAC export, plus Studio static assets and a native worker frame. The
|
|
120
|
-
normal desktop build still passes Cargo check with its default features.
|
|
121
|
-
The public npm archive also builds without a first-party LICENSE file or Apple
|
|
122
|
-
credentials and passes all nine installed-package checks. A separate standalone
|
|
123
|
-
video deployment to preview succeeded with Studio disabled. No npm publication,
|
|
124
|
-
Developer ID signing, or notarization was performed.
|
|
125
|
-
|
|
126
|
-
## Package size audit
|
|
127
|
-
|
|
128
|
-
Measured from the macOS arm64 internal npm tarball, with MiB = 1,048,576 bytes:
|
|
129
|
-
|
|
130
|
-
| Payload | Before | After |
|
|
131
|
-
| --- | ---: | ---: |
|
|
132
|
-
| Compressed download | 24.89 MiB | 19.48 MiB |
|
|
133
|
-
| Unpacked files | 77.52 MiB | 56.32 MiB |
|
|
134
|
-
| Native renderer | 22.25 MiB | 16.13 MiB |
|
|
135
|
-
| TypeScript dependency | 22.53 MiB | 9.45 MiB |
|
|
136
|
-
|
|
137
|
-
The archive excludes the standalone desktop window, file picker, playback audio
|
|
138
|
-
output library and desktop UI fonts. Audio mixing/export and Studio preview remain
|
|
139
|
-
supported. Checkout desktop builds retain their default features.
|
|
140
|
-
|
|
141
|
-
The staged compiler retains the compiler API and standard library declarations;
|
|
142
|
-
CLI executables, language server, translated diagnostics and development files are
|
|
143
|
-
excluded. Its JavaScript receives whitespace-only minification, with notices and
|
|
144
|
-
a modification notice retained. Unused fflate builds, duplicate raw Studio fonts,
|
|
145
|
-
vendor documentation, sample scripts and install metadata are also excluded.
|
|
146
|
-
`init` now creates a small text animation with no external assets or shaders.
|
|
147
|
-
|
|
148
|
-
Built-in WGSL implements rendering and effects; it stays embedded in the native
|
|
149
|
-
and WASM renderers. Project media, resource catalog downloads, repository examples,
|
|
150
|
-
shader demos and test fixtures are not bundled, except the existing 0.36 MiB
|
|
151
|
-
`resources examples` templates. Removing that public command requires separate
|
|
152
|
-
API approval. Resource listing/download/import continues to fetch content on demand.
|
|
153
|
-
|
|
154
|
-
The remaining major components are native rendering (16.13 MiB), browser WASM
|
|
155
|
-
(10.43 MiB), esbuild (9.90 MiB), the Node compiler and its standard libraries
|
|
156
|
-
(9.45 MiB), and Studio JavaScript (4.46 MiB). Studio includes its own browser
|
|
157
|
-
compiler for local source editing. Required notices and matching MPL source are
|
|
158
|
-
retained. A much smaller base install would require optional/on-demand Studio and
|
|
159
|
-
renderer downloads; that architectural change is not part of this cleanup.
|
|
160
|
-
|
|
161
|
-
Package verification rejects desktop dependencies, redundant assets and removed
|
|
162
|
-
compiler tools, and limits the macOS arm64 unpacked payload to 60 MiB. Review
|
|
163
|
-
size changes deliberately before raising that budget. `release.json.contents`
|
|
164
|
-
measures staged payload files before adding the release manifest itself.
|