@impractical-ai/motion 0.1.16 → 0.1.19

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.
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ buildServerInstructions
4
+ } from "./chunk-W4VH5SCR.js";
5
+ import "./chunk-D3OOI7XP.js";
6
+ import {
7
+ VIDEO_UI_GUIDE,
8
+ applyLocalMotionLibraryOverride,
9
+ craftLabEnabled,
10
+ gateReformEnabled,
11
+ motionLabEnabled,
12
+ phasedFlowEnabled,
13
+ qualityLoopEnabled
14
+ } from "./chunk-MTNMG25I.js";
15
+ import "./chunk-QQ6NYC74.js";
16
+ import "./chunk-4SKYR3FS.js";
17
+ import "./chunk-ZJSSF74D.js";
18
+ import {
19
+ invoke,
20
+ withMeteredCall
21
+ } from "./chunk-5VN5GZWK.js";
22
+ import "./chunk-XPFY56XH.js";
23
+ import "./chunk-77HVPD4G.js";
24
+
25
+ // src/mcp/guidance.ts
26
+ import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
27
+ import { dirname, join, resolve } from "node:path";
28
+ import { fileURLToPath } from "node:url";
29
+ var assetsDir = () => {
30
+ const here = dirname(fileURLToPath(import.meta.url));
31
+ for (const candidate of [resolve(here, "../assets"), resolve(here, "../../assets")]) {
32
+ try {
33
+ readFileSync(join(candidate, "impractical/SKILL.md"));
34
+ return candidate;
35
+ } catch {
36
+ }
37
+ }
38
+ throw new Error("the CLI ships no assets folder");
39
+ };
40
+ var fileFor = (key) => `${key.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase()}.md`;
41
+ async function collectGuidance(call = (name, body) => withMeteredCall("motion_context", () => invoke(name, body))) {
42
+ const assets = assetsDir();
43
+ const files = [
44
+ {
45
+ file: "mcp-instructions.md",
46
+ title: "The MCP's instructions",
47
+ source: "cli/src/mcp/stdio.ts buildServerInstructions (what every MCP agent gets when it connects)",
48
+ text: buildServerInstructions({
49
+ qualityLoop: qualityLoopEnabled(),
50
+ motionLab: motionLabEnabled(),
51
+ craftLab: craftLabEnabled(),
52
+ gateReform: gateReformEnabled(),
53
+ phasedFlow: phasedFlowEnabled()
54
+ })
55
+ },
56
+ {
57
+ file: "impractical-skill.md",
58
+ title: "The impractical skill (the workflow)",
59
+ source: "cli/assets/impractical/SKILL.md",
60
+ text: readFileSync(join(assets, "impractical/SKILL.md"), "utf8")
61
+ },
62
+ {
63
+ file: "motion-standard.md",
64
+ title: "The motion standard (arrive, hold, exit)",
65
+ source: "docs/motion-standard.md (shipped as cli/assets/motion-standard.md)",
66
+ text: readFileSync(join(assets, "motion-standard.md"), "utf8")
67
+ },
68
+ {
69
+ file: "video-ui-guide.md",
70
+ title: "The video UI guide",
71
+ source: "cli/src/mcp/video-ui-guidelines.ts VIDEO_UI_GUIDE (motion_context leads with it)",
72
+ text: VIDEO_UI_GUIDE
73
+ }
74
+ ];
75
+ const library = await applyLocalMotionLibraryOverride(
76
+ await call("motion-library", { brief: "the house guidance", detail: "focused", limit: 1 }),
77
+ "focused"
78
+ );
79
+ const guidance = library.guidance ?? {};
80
+ for (const [key, value] of Object.entries(guidance)) {
81
+ if (typeof value !== "string" || !value.trim()) continue;
82
+ files.push({
83
+ file: fileFor(key),
84
+ title: `motion_context guidance: ${key}`,
85
+ source: `motion_context guidance.${key} (the motion-library function; built from the repo by scripts/build-motion-library.mjs)`,
86
+ text: value
87
+ });
88
+ }
89
+ return files;
90
+ }
91
+ async function guidanceCommand(dir, call) {
92
+ if (!dir) throw new Error("Usage: impractical guidance --dir <folder>");
93
+ const root = resolve(dir);
94
+ const files = await collectGuidance(call);
95
+ rmSync(root, { recursive: true, force: true });
96
+ mkdirSync(root, { recursive: true });
97
+ for (const { file, text } of files) writeFileSync(join(root, file), text.trimEnd() + "\n");
98
+ const index = [
99
+ "# Impractical guidance",
100
+ "",
101
+ "Everything an agent working through the Impractical MCP is told, one file each. Read every file before you",
102
+ "write a film. Where each comes from (to change one, change its source): docs/agent-guidance.md.",
103
+ "",
104
+ ...files.map(({ file, title, source }) => `- ${file}: ${title}. Source: ${source}.`),
105
+ ""
106
+ ].join("\n");
107
+ writeFileSync(join(root, "README.md"), index);
108
+ return files.map(({ file }) => file).join("\n");
109
+ }
110
+ export {
111
+ collectGuidance,
112
+ guidanceCommand
113
+ };
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-AP27EKRR.js";
4
+ } from "./chunk-XPFY56XH.js";
5
5
  import "./chunk-77HVPD4G.js";
6
6
 
7
7
  // src/cli-args.ts
@@ -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" },
@@ -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-XWVFNS6W.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-LQX2JZWK.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-YWT3WVD3.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));
@@ -160,11 +180,11 @@ async function runCli(args, deps) {
160
180
  // src/index.ts
161
181
  runCli(process.argv.slice(2), {
162
182
  writeLine: (line) => console.log(line),
163
- loadCommands: () => import("./commands-6F7HITZN.js"),
164
- loadApi: () => import("./api-V7Q3PIWY.js"),
165
- loadMcp: () => import("./stdio-R4RCWJIS.js")
183
+ loadCommands: () => import("./commands-FSL4FNI4.js"),
184
+ loadApi: () => import("./api-LZ6H5LHP.js"),
185
+ loadMcp: () => import("./stdio-643H2TXL.js")
166
186
  }).catch(async (error) => {
167
- const { ApiError } = await import("./api-V7Q3PIWY.js");
187
+ const { ApiError } = await import("./api-LZ6H5LHP.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.");
@@ -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-W4VH5SCR.js";
9
+ import "./chunk-D3OOI7XP.js";
10
+ import "./chunk-MTNMG25I.js";
11
+ import "./chunk-QQ6NYC74.js";
12
+ import "./chunk-4SKYR3FS.js";
13
+ import "./chunk-ZJSSF74D.js";
14
+ import "./chunk-5VN5GZWK.js";
15
+ import "./chunk-XPFY56XH.js";
16
+ import "./chunk-77HVPD4G.js";
17
+ export {
18
+ ENGINE_DTS_URI,
19
+ buildServerInstructions,
20
+ createProjectWorkspaceLookup,
21
+ createServer,
22
+ runStdioServer
23
+ };
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ TEMPLATE_PAGE,
4
+ rankTemplates,
5
+ templateSearchTool,
6
+ templateSourceCommand,
7
+ templateSourceTool
8
+ } from "./chunk-D3OOI7XP.js";
9
+ import "./chunk-QQ6NYC74.js";
10
+ import "./chunk-5VN5GZWK.js";
11
+ import "./chunk-XPFY56XH.js";
12
+ import "./chunk-77HVPD4G.js";
13
+ export {
14
+ TEMPLATE_PAGE,
15
+ rankTemplates,
16
+ templateSearchTool,
17
+ templateSourceCommand,
18
+ templateSourceTool
19
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@impractical-ai/motion",
3
- "version": "0.1.16",
3
+ "version": "0.1.19",
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
- // package.json
4
- var package_default = {
5
- name: "@impractical-ai/motion",
6
- version: "0.1.16",
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
- // 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 = "a212b8f" ? "a212b8f" : "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
- };