@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/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@osmo.inc/cli",
3
- "version": "0.1.15",
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": "Local Osmo Studio: native rendering, browser preview, and timeline feedback",
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.15",
2
+ "version": "0.1.17",
3
3
  "platform": "darwin-arm64",
4
4
  "channel": "latest",
5
5
  "defaultCloudOrigin": "https://studio.osmo.inc",
6
- "sourceCommit": "0bb14b4541e8e9955714ce24cdbac68869935b02",
7
- "sourceDirty": false,
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": 59066771,
20
- "fileCount": 948,
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": 293069,
28
+ "dist": 298595,
29
29
  "node_modules/esbuild": 143795,
30
30
  "runtime": 137478,
31
31
  "node_modules/fflate": 96377,
32
- "README.md": 17083,
33
- "RELEASE.md": 9545,
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": 951,
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": 293069
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": "c6e7596e1469131d949c0fea10b18639de29f22c3ae0a5f18248396ad05963db",
125
- "vendor/osmo-lite": "33c4b23661d96b1e4b124059233fda15b84a2c928c17eb4502bdd42026f4c589",
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": "86a27a636faac94ee6a7d93fbfddd5b6f9fff296738eb9f702095e5a73b70f07",
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
@@ -1 +1 @@
1
- {"os":"darwin","arch":"arm64","version":"0.1.15"}
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.