@impractical-ai/motion 0.1.15 → 0.1.18

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/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  PACKAGE_VERSION
4
- } from "./chunk-52D5QRLI.js";
4
+ } from "./chunk-2GCSX3YN.js";
5
5
  import "./chunk-77HVPD4G.js";
6
6
 
7
- // cli/src/cli-args.ts
7
+ // src/cli-args.ts
8
8
  import { parseArgs } from "node:util";
9
9
  var CLI_OPTIONS = {
10
10
  key: { type: "string" },
@@ -24,6 +24,7 @@ var CLI_OPTIONS = {
24
24
  name: { type: "string" },
25
25
  jobs: { type: "string" },
26
26
  dir: { type: "string" },
27
+ changed: { type: "string", multiple: true },
27
28
  out: { type: "string" },
28
29
  draft: { type: "string" },
29
30
  id: { type: "string" },
@@ -48,7 +49,7 @@ function parseCliArgs(args) {
48
49
  });
49
50
  }
50
51
 
51
- // cli/src/cli-runtime.ts
52
+ // src/cli-runtime.ts
52
53
  var HELP = `impractical \u2014 Impractical Motion from your terminal (and your coding agent)
53
54
 
54
55
  Setup
@@ -61,11 +62,14 @@ Setup
61
62
 
62
63
  Agents
63
64
  mcp Run the MCP server over stdio (for coding agents)
65
+ draft-check --dir <folder> [--changed <path> ...]
66
+ The checks an MCP save runs, on a draft saved another way
67
+ template-source <slug> --dir <folder>
68
+ A library template's code (App.tsx, direction.ts, its kits), written into the folder
69
+ guidance --dir <folder> Every piece of guidance the MCP gives an agent (its instructions, the house skills,
70
+ the motion standard, the video UI guide), one file each, with an index
64
71
 
65
72
  Make videos
66
- generate --value-prop "..." [--directors d1,d2] [--vibe confident]
67
- [--code-file app.md] [--brand <slug>] [--asset file ...]
68
- [--project <id>] [--model <id>] [--wait]
69
73
  status --project <id> | --jobs <id,id> [--wait]
70
74
  export [draftId] [--wait] [--out video.mp4]
71
75
 
@@ -106,6 +110,23 @@ async function runCli(args, deps) {
106
110
  const { runStdioServer } = await deps.loadMcp();
107
111
  return runStdioServer();
108
112
  }
113
+ if (command === "template-source") {
114
+ const { templateSourceCommand } = await import("./template-source-KKAKXOHX.js");
115
+ deps.writeLine(await templateSourceCommand(rest[0], typeof flags.dir === "string" ? flags.dir : void 0));
116
+ return;
117
+ }
118
+ if (command === "guidance") {
119
+ const { guidanceCommand } = await import("./guidance-SMXXX463.js");
120
+ deps.writeLine(await guidanceCommand(typeof flags.dir === "string" ? flags.dir : void 0));
121
+ return;
122
+ }
123
+ if (command === "draft-check") {
124
+ const { draftCheck } = await import("./draft-check-BRVH77WB.js");
125
+ const changed = Array.isArray(flags.changed) ? flags.changed : typeof flags.changed === "string" ? [flags.changed] : [];
126
+ const report = await draftCheck(typeof flags.dir === "string" ? flags.dir : void 0, changed);
127
+ if (report) deps.writeLine(report);
128
+ return;
129
+ }
109
130
  const [commands, { withMeteredCall }] = await Promise.all([
110
131
  deps.loadCommands(),
111
132
  deps.loadApi()
@@ -127,8 +148,7 @@ async function runCli(args, deps) {
127
148
  case "keys":
128
149
  return commands.keys(rest, flags);
129
150
  case "generate":
130
- commands.validateMeteredCommand("generate", rest, flags);
131
- return withMeteredCall("cli_generate", () => commands.generate(flags));
151
+ throw new Error("generate has been retired. Make videos in the Studio chat (impractical.ai), or with your coding agent through `impractical mcp`.");
132
152
  case "status":
133
153
  commands.validateMeteredCommand("status", rest, flags);
134
154
  return withMeteredCall("cli_status", () => commands.status(flags));
@@ -157,14 +177,14 @@ async function runCli(args, deps) {
157
177
  throw new Error(`Unknown command "${[command, ...rest].join(" ")}"`);
158
178
  }
159
179
 
160
- // cli/src/index.ts
180
+ // src/index.ts
161
181
  runCli(process.argv.slice(2), {
162
182
  writeLine: (line) => console.log(line),
163
- loadCommands: () => import("./commands-MJSGITIZ.js"),
164
- loadApi: () => import("./api-UXWCLV7P.js"),
165
- loadMcp: () => import("./stdio-LWBKGIWN.js")
183
+ loadCommands: () => import("./commands-Y723HSJI.js"),
184
+ loadApi: () => import("./api-WSATRY3V.js"),
185
+ loadMcp: () => import("./stdio-N2RZGMBI.js")
166
186
  }).catch(async (error) => {
167
- const { ApiError } = await import("./api-UXWCLV7P.js");
187
+ const { ApiError } = await import("./api-WSATRY3V.js");
168
188
  if (error instanceof ApiError) {
169
189
  console.error(`Error (${error.status} from ${error.fn}): ${error.message}`);
170
190
  if (error.status === 429) console.error("Weekly MCP allowance reached. Upgrade or wait for Monday UTC.");
@@ -4,9 +4,9 @@ import {
4
4
  __require
5
5
  } from "./chunk-77HVPD4G.js";
6
6
 
7
- // cli/node_modules/esbuild/lib/main.js
7
+ // node_modules/esbuild/lib/main.js
8
8
  var require_main = __commonJS({
9
- "cli/node_modules/esbuild/lib/main.js"(exports, module) {
9
+ "node_modules/esbuild/lib/main.js"(exports, module) {
10
10
  var __defProp = Object.defineProperty;
11
11
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
12
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ENGINE_DTS_URI,
4
+ buildServerInstructions,
5
+ createProjectWorkspaceLookup,
6
+ createServer,
7
+ runStdioServer
8
+ } from "./chunk-ZEVR6SM6.js";
9
+ import "./chunk-M6427SHW.js";
10
+ import "./chunk-JSEDAJHM.js";
11
+ import "./chunk-QQ6NYC74.js";
12
+ import "./chunk-TETWFQPX.js";
13
+ import "./chunk-XWCSIM4L.js";
14
+ import "./chunk-FTSZCIMV.js";
15
+ import "./chunk-2GCSX3YN.js";
16
+ import "./chunk-77HVPD4G.js";
17
+ export {
18
+ ENGINE_DTS_URI,
19
+ buildServerInstructions,
20
+ createProjectWorkspaceLookup,
21
+ createServer,
22
+ runStdioServer
23
+ };
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ rankTemplates,
4
+ templateSearchTool,
5
+ templateSourceCommand,
6
+ templateSourceTool
7
+ } from "./chunk-M6427SHW.js";
8
+ import "./chunk-QQ6NYC74.js";
9
+ import "./chunk-FTSZCIMV.js";
10
+ import "./chunk-2GCSX3YN.js";
11
+ import "./chunk-77HVPD4G.js";
12
+ export {
13
+ rankTemplates,
14
+ templateSearchTool,
15
+ templateSourceCommand,
16
+ templateSourceTool
17
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@impractical-ai/motion",
3
- "version": "0.1.15",
3
+ "version": "0.1.18",
4
4
  "private": false,
5
5
  "description": "Create and refine Impractical Motion videos from coding agents and the terminal.",
6
6
  "homepage": "https://github.com/Openpod/impractical-motion#readme",
@@ -27,9 +27,9 @@
27
27
  "scripts": {
28
28
  "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",
29
29
  "typecheck": "tsc --noEmit",
30
- "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-workspaces.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-workspaces.test.mjs dist/mcp-longpoll.test.mjs dist/mcp-agent-timeout.test.mjs dist/api-hardening.test.mjs",
30
+ "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-frames-watchdog.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-video-ui.test.ts tests/mcp-template-search.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-workspaces.test.ts tests/mcp-longpoll.test.ts tests/mcp-agent-timeout.test.ts tests/api-hardening.test.ts tests/guidance.test.ts tests/mcp-image-scale.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-frames-watchdog.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-video-ui.test.mjs dist/mcp-template-search.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-workspaces.test.mjs dist/mcp-longpoll.test.mjs dist/mcp-agent-timeout.test.mjs dist/api-hardening.test.mjs dist/guidance.test.mjs dist/mcp-image-scale.test.mjs",
31
31
  "prepack": "npm run build",
32
- "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"
32
+ "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-frames-watchdog.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/mcp-video-ui.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-frames-watchdog.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/mcp-video-ui.test.mjs .rig-tests/review-modules.test.mjs .rig-tests/rig-transplant.test.mjs"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
@@ -1,71 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // cli/package.json
4
- var package_default = {
5
- name: "@impractical-ai/motion",
6
- version: "0.1.15",
7
- private: false,
8
- description: "Create and refine Impractical Motion videos from coding agents and the terminal.",
9
- homepage: "https://github.com/Openpod/impractical-motion#readme",
10
- repository: {
11
- type: "git",
12
- url: "git+https://github.com/Openpod/impractical-motion.git"
13
- },
14
- bugs: {
15
- url: "https://github.com/Openpod/impractical-motion/issues"
16
- },
17
- license: "UNLICENSED",
18
- type: "module",
19
- files: [
20
- "dist",
21
- "assets",
22
- "README.md"
23
- ],
24
- bin: {
25
- impractical: "dist/index.js"
26
- },
27
- engines: {
28
- node: ">=22"
29
- },
30
- scripts: {
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
- typecheck: "tsc --noEmit",
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-workspaces.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-workspaces.test.mjs dist/mcp-longpoll.test.mjs dist/mcp-agent-timeout.test.mjs dist/api-hardening.test.mjs",
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"
36
- },
37
- publishConfig: {
38
- access: "public"
39
- },
40
- devDependencies: {
41
- "@types/node": "^26.1.0",
42
- esbuild: "^0.25.0",
43
- typescript: "^5.6.3"
44
- },
45
- dependencies: {
46
- "@modelcontextprotocol/sdk": "^1.32.1",
47
- "playwright-core": "^1.55.1",
48
- zod: "^4.4.3"
49
- }
50
- };
51
-
52
- // cli/src/constants.ts
53
- if (package_default.name !== "@impractical-ai/motion" || typeof package_default.version !== "string" || !package_default.version) {
54
- throw new Error("The packaged CLI manifest is missing valid release metadata");
55
- }
56
- var PRODUCTION_APP_URL = "https://motion.impractical.ai";
57
- var PRODUCTION_SUPABASE_URL = "https://uaxjweednprtbhbceify.supabase.co";
58
- var PACKAGE_NAME = "@impractical-ai/motion";
59
- var PACKAGE_VERSION = package_default.version;
60
- var BUILD_COMMIT = "e3a238b6" ? "e3a238b6" : "dev";
61
- var BUILD_ID = `${PACKAGE_VERSION}+${BUILD_COMMIT}`;
62
- var PACKAGE_COMMAND = `npx --yes ${PACKAGE_NAME}`;
63
-
64
- export {
65
- PRODUCTION_APP_URL,
66
- PRODUCTION_SUPABASE_URL,
67
- PACKAGE_NAME,
68
- PACKAGE_VERSION,
69
- BUILD_COMMIT,
70
- PACKAGE_COMMAND
71
- };