@impractical-ai/motion 0.1.11 → 0.1.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 +12 -0
- package/assets/engine.d.ts +1015 -682
- package/assets/impractical/SKILL.md +12 -0
- package/dist/{api-FMMG3W6J.js → api-4YQKINQI.js} +2 -2
- package/dist/{chunk-VTHAZQEV.js → chunk-GAHKKLF3.js} +1 -1
- package/dist/{chunk-HGA2O3JM.js → chunk-PTYSKJ2Y.js} +4 -3
- package/dist/{chunk-SN6SLPIC.js → chunk-ZCTJTQB7.js} +2 -2
- package/dist/{commands-EDRH2XMY.js → commands-NWJK7ANI.js} +3 -3
- package/dist/index.js +7 -6
- package/dist/stdio-PLWZDKDA.js +72714 -0
- package/package.json +3 -2
- package/dist/stdio-VBPVT2KS.js +0 -36204
|
@@ -5,6 +5,18 @@ description: Create and refine studio-quality motion-graphics launch videos with
|
|
|
5
5
|
|
|
6
6
|
# Impractical Motion
|
|
7
7
|
|
|
8
|
+
<!-- ARRIVAL-DRIFT-STANDARD START -->
|
|
9
|
+
## Default motion: arrival and residual drift
|
|
10
|
+
|
|
11
|
+
Foreground motion defaults to an energetic arrival, strong deceleration, and small continuing travel through the reading hold. Compose a deterministic residual trajectory with the native entrance; do not stop and restart with a disconnected tween. “Settled” and “hold” mean readable and visually stable, with subtle nonzero travel unless an explicit freeze, exact alignment or reduced-motion mode requires stillness.
|
|
12
|
+
|
|
13
|
+
Use the Rox `ambientOffset(seconds, amount, phase)` pattern: native 960×540 product groups start around amount 3.2–4, text around 0.8–1. Keep a signed velocity floor with gentle curvature, not a pure sine bob. Move attached labels, controls, connectors and shadows together, avoid double drift, preserve 3D hierarchy, and verify reverse/retimed seeks and late-hold displacement.
|
|
14
|
+
|
|
15
|
+
The host owns the background environment. Animate foreground objects only; never move or retime the background to simulate object motion. Reusable foregrounds should be transparent. Keep one primary focus and room around it; purposeful object camera moves remain welcome, and a generic card is not the default visual container.
|
|
16
|
+
|
|
17
|
+
For the complete trajectory and review checks, read `motion_context` → `guidance.director` before authoring.
|
|
18
|
+
<!-- ARRIVAL-DRIFT-STANDARD END -->
|
|
19
|
+
|
|
8
20
|
You direct the video yourself. Impractical provides the engine, the preview
|
|
9
21
|
build, the render, and the studio the user tweaks in — you provide the
|
|
10
22
|
direction. Everything runs through the **Impractical MCP server**; the video's
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
waitForJobs,
|
|
14
14
|
withAdmissionReceipt,
|
|
15
15
|
withMeteredCall
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-GAHKKLF3.js";
|
|
17
|
+
import "./chunk-PTYSKJ2Y.js";
|
|
18
18
|
import "./chunk-77HVPD4G.js";
|
|
19
19
|
export {
|
|
20
20
|
ApiContractError,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// package.json
|
|
4
4
|
var package_default = {
|
|
5
5
|
name: "@impractical-ai/motion",
|
|
6
|
-
version: "0.1.
|
|
6
|
+
version: "0.1.13",
|
|
7
7
|
private: false,
|
|
8
8
|
description: "Create and refine Impractical Motion videos from coding agents and the terminal.",
|
|
9
9
|
homepage: "https://github.com/Openpod/impractical-motion#readme",
|
|
@@ -31,7 +31,8 @@ var package_default = {
|
|
|
31
31
|
build: 'node ../scripts/verify-locked-cli-install.mjs && node ../scripts/build-engine-dts.mjs --cli-only && rm -rf dist && ./node_modules/esbuild/bin/esbuild src/index.ts --define:__BUILD_COMMIT__=\\"$(git rev-parse --short HEAD 2>/dev/null || echo dev)\\" --bundle --platform=node --format=esm --target=node22 --splitting --outdir=dist --external:playwright-core --banner:js="#!/usr/bin/env node" && chmod +x dist/index.js',
|
|
32
32
|
typecheck: "tsc --noEmit",
|
|
33
33
|
test: "npm run typecheck && npm run build && esbuild tests/onboarding.test.ts tests/mcp-tools.test.ts tests/mcp-frames.test.ts tests/mcp-browser-pool.test.ts tests/mcp-motion.test.ts tests/mcp-craft.test.ts tests/mcp-depthkit.test.ts tests/mcp-motion-score.test.ts tests/mcp-install-font.test.ts tests/mcp-metric-catalog.test.ts tests/mcp-text-census.test.ts tests/mcp-phased-flow.test.ts tests/mcp-preflight.test.ts tests/engine-dts.test.ts tests/mcp-connect.test.ts tests/mcp-longpoll.test.ts tests/mcp-agent-timeout.test.ts tests/api-hardening.test.ts --bundle --platform=node --format=esm --packages=external --outdir=dist --out-extension:.js=.mjs && node --test dist/onboarding.test.mjs dist/mcp-tools.test.mjs dist/mcp-frames.test.mjs dist/mcp-browser-pool.test.mjs dist/mcp-motion.test.mjs dist/mcp-craft.test.mjs dist/mcp-depthkit.test.mjs dist/mcp-motion-score.test.mjs dist/mcp-install-font.test.mjs dist/mcp-metric-catalog.test.mjs dist/mcp-text-census.test.mjs dist/mcp-phased-flow.test.mjs dist/mcp-preflight.test.mjs dist/engine-dts.test.mjs dist/mcp-connect.test.mjs dist/mcp-longpoll.test.mjs dist/mcp-agent-timeout.test.mjs dist/api-hardening.test.mjs",
|
|
34
|
-
prepack: "npm run build"
|
|
34
|
+
prepack: "npm run build",
|
|
35
|
+
"test:rig": "npm run typecheck && esbuild tests/engine-dts.test.ts tests/mcp-agent-timeout.test.ts tests/mcp-browser-pool.test.ts tests/mcp-component-assertions.test.ts tests/mcp-components.test.ts tests/mcp-connect.test.ts tests/mcp-craft.test.ts tests/mcp-depthkit.test.ts tests/mcp-exposed-ground.test.ts tests/mcp-frames.test.ts tests/mcp-install-font.test.ts tests/mcp-legibility.test.ts tests/mcp-longpoll.test.ts tests/mcp-metric-catalog.test.ts tests/mcp-motion-score.test.ts tests/mcp-motion-slop.test.ts tests/mcp-motion.test.ts tests/mcp-phased-flow.test.ts tests/mcp-preflight.test.ts tests/mcp-ref-inject.test.ts tests/mcp-shot-list.test.ts tests/mcp-text-census.test.ts tests/mcp-tools.test.ts tests/review-modules.test.ts tests/rig-transplant.test.ts --bundle --platform=node --format=esm --packages=external --outdir=.rig-tests --out-extension:.js=.mjs && node --test .rig-tests/engine-dts.test.mjs .rig-tests/mcp-agent-timeout.test.mjs .rig-tests/mcp-browser-pool.test.mjs .rig-tests/mcp-component-assertions.test.mjs .rig-tests/mcp-components.test.mjs .rig-tests/mcp-connect.test.mjs .rig-tests/mcp-craft.test.mjs .rig-tests/mcp-depthkit.test.mjs .rig-tests/mcp-exposed-ground.test.mjs .rig-tests/mcp-frames.test.mjs .rig-tests/mcp-install-font.test.mjs .rig-tests/mcp-legibility.test.mjs .rig-tests/mcp-longpoll.test.mjs .rig-tests/mcp-metric-catalog.test.mjs .rig-tests/mcp-motion-score.test.mjs .rig-tests/mcp-motion-slop.test.mjs .rig-tests/mcp-motion.test.mjs .rig-tests/mcp-phased-flow.test.mjs .rig-tests/mcp-preflight.test.mjs .rig-tests/mcp-ref-inject.test.mjs .rig-tests/mcp-shot-list.test.mjs .rig-tests/mcp-text-census.test.mjs .rig-tests/mcp-tools.test.mjs .rig-tests/review-modules.test.mjs .rig-tests/rig-transplant.test.mjs"
|
|
35
36
|
},
|
|
36
37
|
publishConfig: {
|
|
37
38
|
access: "public"
|
|
@@ -56,7 +57,7 @@ var PRODUCTION_APP_URL = "https://motion.impractical.ai";
|
|
|
56
57
|
var PRODUCTION_SUPABASE_URL = "https://uaxjweednprtbhbceify.supabase.co";
|
|
57
58
|
var PACKAGE_NAME = "@impractical-ai/motion";
|
|
58
59
|
var PACKAGE_VERSION = package_default.version;
|
|
59
|
-
var BUILD_COMMIT = "
|
|
60
|
+
var BUILD_COMMIT = "ffb78fc" ? "ffb78fc" : "dev";
|
|
60
61
|
var BUILD_ID = `${PACKAGE_VERSION}+${BUILD_COMMIT}`;
|
|
61
62
|
var PACKAGE_COMMAND = `npx --yes ${PACKAGE_NAME}`;
|
|
62
63
|
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
loadConfig,
|
|
7
7
|
recoverCorruptConfig,
|
|
8
8
|
saveConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-GAHKKLF3.js";
|
|
10
10
|
import {
|
|
11
11
|
PACKAGE_COMMAND,
|
|
12
12
|
PACKAGE_NAME,
|
|
13
13
|
PACKAGE_VERSION,
|
|
14
14
|
PRODUCTION_APP_URL,
|
|
15
15
|
PRODUCTION_SUPABASE_URL
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-PTYSKJ2Y.js";
|
|
17
17
|
|
|
18
18
|
// src/onboarding.ts
|
|
19
19
|
import {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
setup
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZCTJTQB7.js";
|
|
5
5
|
import {
|
|
6
6
|
invoke,
|
|
7
7
|
invokeAt,
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
saveConfig,
|
|
12
12
|
studioLink,
|
|
13
13
|
waitForJobs
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-GAHKKLF3.js";
|
|
15
|
+
import "./chunk-PTYSKJ2Y.js";
|
|
16
16
|
import "./chunk-77HVPD4G.js";
|
|
17
17
|
|
|
18
18
|
// src/commands.ts
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
PACKAGE_VERSION
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PTYSKJ2Y.js";
|
|
5
5
|
import "./chunk-77HVPD4G.js";
|
|
6
6
|
|
|
7
7
|
// src/cli-args.ts
|
|
@@ -76,7 +76,8 @@ Edit drafts
|
|
|
76
76
|
clone <video-share-url> Add an editable copy to your connected workspace
|
|
77
77
|
|
|
78
78
|
Share videos
|
|
79
|
-
share <file.mp4> [--title "..."] [--
|
|
79
|
+
share <file.mp4> [--title "..."] [--message "..."] [--expires-in 7] [--json]
|
|
80
|
+
[--references brand.json] [--project <id>]
|
|
80
81
|
Omit --project for a view-only link (the default)
|
|
81
82
|
share allow-editing <share-id> --project <id> Let recipients copy and edit
|
|
82
83
|
share view-only <share-id> Hide editing and block future project copies
|
|
@@ -159,11 +160,11 @@ async function runCli(args, deps) {
|
|
|
159
160
|
// src/index.ts
|
|
160
161
|
runCli(process.argv.slice(2), {
|
|
161
162
|
writeLine: (line) => console.log(line),
|
|
162
|
-
loadCommands: () => import("./commands-
|
|
163
|
-
loadApi: () => import("./api-
|
|
164
|
-
loadMcp: () => import("./stdio-
|
|
163
|
+
loadCommands: () => import("./commands-NWJK7ANI.js"),
|
|
164
|
+
loadApi: () => import("./api-4YQKINQI.js"),
|
|
165
|
+
loadMcp: () => import("./stdio-PLWZDKDA.js")
|
|
165
166
|
}).catch(async (error) => {
|
|
166
|
-
const { ApiError } = await import("./api-
|
|
167
|
+
const { ApiError } = await import("./api-4YQKINQI.js");
|
|
167
168
|
if (error instanceof ApiError) {
|
|
168
169
|
console.error(`Error (${error.status} from ${error.fn}): ${error.message}`);
|
|
169
170
|
if (error.status === 429) console.error("Weekly MCP allowance reached. Upgrade or wait for Monday UTC.");
|