motionloom 2.4.0 → 2.5.1
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/CHANGELOG.md +41 -0
- package/README.md +22 -2
- package/SKILL.md +1 -1
- package/agent-card.json +4 -1
- package/agent-surfaces.json +1 -1
- package/bin/motionloom.mjs +20 -6
- package/capability-registry.json +308 -0
- package/dev-lab/public/devlab.js +193 -0
- package/dev-lab/public/index.html +30 -0
- package/docs/STATUS.md +2 -2
- package/docs/apple-distribution.md +24 -0
- package/docs/architecture/apple/cloudkit.md +18 -0
- package/docs/architecture/apple/contracts.md +9 -0
- package/docs/architecture/apple/implementation-status-2026-08-16.md +55 -0
- package/docs/architecture/apple/studio.md +35 -0
- package/docs/releases/2.5.0.md +31 -0
- package/docs/releases/2.5.1.md +21 -0
- package/docs/releases/npm-publish-from-workstation.md +6 -6
- package/docs/research/ai-repository-benchmark-2026-08-16.md +75 -0
- package/package.json +12 -4
- package/requirements.txt +1 -0
- package/rig-adapter-registry.json +3 -3
- package/scripts/attestation.py +8 -0
- package/scripts/capture-runtime-telemetry.py +16 -8
- package/scripts/devlab.py +3 -10
- package/scripts/docs-audit.py +13 -1
- package/scripts/evidence-verifier.py +18 -9
- package/scripts/intelligence.py +85 -18
- package/scripts/package-consumer-smoke.mjs +76 -0
- package/scripts/runtime-adapters.mjs +28 -3
- package/scripts/skill-doctor.py +27 -1
- package/tests/runtime-harness/index.html +24 -0
- package/tests/runtime-harness/main.jsx +111 -0
- package/tests/scripts/run_tests.py +85 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,46 @@ All notable MotionLoom changes are documented here. The project follows semantic
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [2.5.1] - 2026-08-18
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Preserve the caller's working directory through the npm CLI router, so default onboarding targets the consumer project instead of the installed package directory.
|
|
12
|
+
- Ship Dev Lab assets, the runtime harness, Python requirements and optional browser runtime dependencies in the npm tarball; verify the installed package from an isolated consumer project before release.
|
|
13
|
+
- Render Dev Lab metadata and checks with safe DOM APIs, enforce a same-origin script CSP, and reject invalid, terminal or expired browser-review candidates before enabling review.
|
|
14
|
+
- Restrict runtime evidence cleanup to a dedicated child of an explicit policy root and preserve caller data outside that boundary.
|
|
15
|
+
- Read the CLI version from `package.json` so displayed status stays aligned with release metadata.
|
|
16
|
+
- Publish from GitHub Actions through npm Trusted Publishing/OIDC with a pinned compatible npm client, without a long-lived `NPM_TOKEN`; provenance is generated automatically by npm.
|
|
17
|
+
|
|
18
|
+
### Verified
|
|
19
|
+
|
|
20
|
+
- Pass the full Python/Node regression suite, quality and signed-attestation gate, isolated installed-package smoke test, Dev Lab browser-security smoke test, real Rive/GSAP/Framer Motion runtime capture, 6,900-case deep stress run and twelve Swift package tests.
|
|
21
|
+
- Pass the pull-request Quality, Security Analysis, Documentation and Package Hygiene, Dev Lab and Apple workflows before preparing this patch release.
|
|
22
|
+
|
|
23
|
+
### Boundary
|
|
24
|
+
|
|
25
|
+
- This patch does not add framework capability, Apple signing, TestFlight distribution or production approval. Browser review and remote release actions remain explicit human-governed steps.
|
|
26
|
+
|
|
27
|
+
## [2.5.0] - 2026-08-17
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- Read-only `motionloom capability card --format json` discovery surface. It exports the evidence-validated runtime registry for an Agent, including runtime status, adapter/version, compatibility, verification timestamp, inputs/outputs, evidence references, limitations, fallback, risk and side-effect metadata.
|
|
32
|
+
- `pnpm intelligence:card` shortcut and `agent-card.json` command/capability declarations for machine-readable discovery without a parallel capability policy.
|
|
33
|
+
- `capability-registry.json` is included in the npm package allowlist, so the default card command has its verified registry after a normal package installation.
|
|
34
|
+
- Benchmark research ledger comparing public agent workflow, model-serving and AI/video repositories; the release applies the low-risk capability-card lesson and records deferred generation-profile and hash-bound workflow-template work with explicit gates.
|
|
35
|
+
- Native `apps/apple/` alpha in the GitHub source release: shared Swift packages for contracts, review state, macOS bridge, review UI and local-first CloudKit metadata sync, plus unsigned macOS Studio and iOS/iPadOS Review build targets and Apple CI.
|
|
36
|
+
|
|
37
|
+
### Verified
|
|
38
|
+
|
|
39
|
+
- Capability-card export validates registry evidence before output and fails closed for missing, altered or out-of-repository evidence. It does not select a runtime or infer review/production approval.
|
|
40
|
+
- The repository release target passes the full regression suite, Skill/doctor and documentation gates, package artifact inspection, and GitHub Quality, Security, Documentation and Apple CI checks.
|
|
41
|
+
|
|
42
|
+
### Boundary
|
|
43
|
+
|
|
44
|
+
- The Apple deliverable is an alpha source release. It has no Apple Developer signing, CloudKit production container, TestFlight distribution or iOS Simulator UI-smoke claim.
|
|
45
|
+
- Capability discovery is not execution authority. Runtime selection still validates current evidence, and attestation/production approval remain non-derived human decisions.
|
|
46
|
+
|
|
7
47
|
## [2.4.0] - 2026-08-15
|
|
8
48
|
|
|
9
49
|
### Added
|
|
@@ -109,6 +149,7 @@ See the [2.0.0 release note](docs/releases/2.0.0.md).
|
|
|
109
149
|
The 1.5.0–1.9.0 milestones established runtime evidence, browser review, Intelligence Core, semantic lint, continuity, telemetry and trust-boundary hardening. Their detailed notes are available in [`docs/releases/`](docs/releases/).
|
|
110
150
|
|
|
111
151
|
[2.2.0]: docs/releases/2.2.0.md
|
|
152
|
+
[2.5.0]: docs/releases/2.5.0.md
|
|
112
153
|
[2.4.0]: docs/releases/2.4.0.md
|
|
113
154
|
[2.3.0]: docs/releases/2.3.0.md
|
|
114
155
|
[2.1.0]: docs/releases/2.1.0.md
|
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://nodejs.org/)
|
|
8
8
|
[](https://www.python.org/)
|
|
9
|
+
[](https://github.com/lenhonbp/MotionLoom/actions/workflows/apple.yml)
|
|
9
10
|
[](https://agentskills.io/specification)
|
|
10
11
|
|
|
11
12
|
**Project-aware animation production and runtime verification for coding agents.**
|
|
@@ -14,7 +15,7 @@ MotionLoom is an independent open-source Agent Skill for building UI motion, Lot
|
|
|
14
15
|
|
|
15
16
|
> **MotionLoom is not an auto-approval layer.** A valid signature, a passing heuristic, or a successful render proves only the contract it checks. Visual quality, intent, accessibility and PR authorization remain reviewable human decisions.
|
|
16
17
|
|
|
17
|
-
> **Release posture:**
|
|
18
|
+
> **Release posture:** MotionLoom 2.5.1 hardens installed-package onboarding, Dev Lab browser review, runtime-output cleanup and consumer-package acceptance. The native macOS/iOS review app remains an unsigned source alpha under `apps/apple/`; the npm package remains the cross-platform Node/Python Skill and documentation surface. Verify npm/GitHub publication metadata separately; passing evidence never implies user approval.
|
|
18
19
|
|
|
19
20
|
## Why MotionLoom
|
|
20
21
|
|
|
@@ -76,7 +77,7 @@ npx --no-install motionloom doctor # check the installed package
|
|
|
76
77
|
npx --no-install motionloom repair --yes # restore only missing managed pieces
|
|
77
78
|
```
|
|
78
79
|
|
|
79
|
-
MotionLoom supports **Node.js 18+** and **Python 3.11+** on Ubuntu, macOS and Windows. `npx` is the recommended first-run surface; after setup, use the project-local binary through `npx --no-install motionloom ...`. A global install remains optional, not required.
|
|
80
|
+
MotionLoom's onboarding and contract CLI supports **Node.js 18+** and **Python 3.11+** on Ubuntu, macOS and Windows. Browser-runtime capture uses the separately declared optional Playwright/Vite dependencies and follows the capability contract's Node.js 22 requirement. Signed-attestation commands additionally require the Python `cryptography` package declared in the shipped `requirements.txt`; `motionloom doctor` reports missing runtime prerequisites. `npx` is the recommended first-run surface; after setup, use the project-local binary through `npx --no-install motionloom ...`. A global install remains optional, not required.
|
|
80
81
|
|
|
81
82
|
### When you begin animation work
|
|
82
83
|
|
|
@@ -154,6 +155,14 @@ Read the [Project Memory schema](schemas/project-memory.schema.json), [2.1.0 rel
|
|
|
154
155
|
|
|
155
156
|
Capability selection uses `agent-card.json` and the capability registry. A runtime is not promoted from `scaffold_only` to `verified` because a template exists; its adapter evidence and CI contract must pass.
|
|
156
157
|
|
|
158
|
+
An Agent can inspect the read-only capability card before choosing a renderer:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
motionloom capability card --format json
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The card exposes declared compatibility, evidence references, limitations and fallback paths. It does **not** select a runtime, refresh evidence, infer production approval or replace the verification step; use `motionloom intelligence capabilities select --registry capability-registry.json --capability runtime.<id>` immediately before execution.
|
|
165
|
+
|
|
157
166
|
## Evidence, trust and review
|
|
158
167
|
|
|
159
168
|
MotionLoom keeps distinct layers distinct:
|
|
@@ -257,6 +266,14 @@ The public integration surfaces are intentionally small and inspectable:
|
|
|
257
266
|
|
|
258
267
|
The Skill can trigger or suggest an internal browser-capable Agent to open the Dev Lab after rendering. Dev Lab is post-render review infrastructure, not a competing Skill. The user can request changes, receive a structured fix plan and rerender selectively, or explicitly confirm the PR path.
|
|
259
268
|
|
|
269
|
+
## Native companion apps (alpha)
|
|
270
|
+
|
|
271
|
+
`apps/apple/` contains the native-first Apple companion surface. **MotionLoom Studio for macOS** opens a scoped project, exposes the evidence and timeline inspection surface, and can request only allow-listed local checks. **MotionLoom Review for iPhone and iPad** reads a hash-bound review launch descriptor, scrubs evidence, records annotations, and exports a human review decision.
|
|
272
|
+
|
|
273
|
+
These apps do not replace the Agent, the npm CLI or Dev Lab. They make a project’s artifact state and human review decision visible between Agent sessions. They cannot grant `production_approved`, set `OPEN_PR=1`, push Git changes, publish npm packages, or turn an AI-generated asset into artist-authored material.
|
|
274
|
+
|
|
275
|
+
Read [the Apple workspace guide](apps/apple/README.md), [the contract boundary](docs/architecture/apple/contracts.md), and [the TestFlight preparation guide](docs/apple-distribution.md) before building locally.
|
|
276
|
+
|
|
260
277
|
## Repository map
|
|
261
278
|
|
|
262
279
|
| Path | Purpose |
|
|
@@ -273,6 +290,7 @@ The Skill can trigger or suggest an internal browser-capable Agent to open the D
|
|
|
273
290
|
| `references/` | Progressive-disclosure implementation references |
|
|
274
291
|
| `docs/` | Framework selection, checklists, audits and release notes |
|
|
275
292
|
| `dev-lab/` | Self-contained browser review workbench and harness |
|
|
293
|
+
| `apps/apple/` | macOS Studio and iOS/iPadOS Review companion sources, Swift packages, Xcode project and local build guide |
|
|
276
294
|
| `artifacts/<task-id>/` | Per-task evidence, report and handoff bundle |
|
|
277
295
|
| `schemas/visual-truth.schema.json`, `scripts/visual-truth.py` | Provenance-bound visual comparison and review explanation contract |
|
|
278
296
|
| `schemas/remediation-history.schema.json`, `scripts/remediation-learning.py` | Append-only remediation/benchmark ledger and aggregate learning metrics |
|
|
@@ -297,6 +315,7 @@ The Skill can trigger or suggest an internal browser-capable Agent to open the D
|
|
|
297
315
|
| Check control-to-runtime and rig compatibility | `motionloom runtime-candidate`, `motionloom rig-compatibility`, and [production checklist](docs/CHECKLIST.md) |
|
|
298
316
|
| Validate visual truth before review/PR | `motionloom visual-truth build|validate` and [production checklist](docs/CHECKLIST.md) |
|
|
299
317
|
| Check current evidence posture | [Current status](docs/STATUS.md), [external corpus evidence](docs/audits/external-project-corpus-2026-08-13.md) and [historical audit snapshot](AUDIT-REPORT.md) |
|
|
318
|
+
| Build the native review companions | [Apple workspace guide](apps/apple/README.md), [Studio architecture](docs/architecture/apple/studio.md), and [distribution preparation](docs/apple-distribution.md) |
|
|
300
319
|
| Contribute code or docs | [CONTRIBUTING.md](CONTRIBUTING.md) |
|
|
301
320
|
| Report a vulnerability or request help | [SECURITY.md](SECURITY.md) and [SUPPORT.md](SUPPORT.md) |
|
|
302
321
|
| See version history | [CHANGELOG.md](CHANGELOG.md) and [release notes](docs/releases/) |
|
|
@@ -305,6 +324,7 @@ The Skill can trigger or suggest an internal browser-capable Agent to open the D
|
|
|
305
324
|
|
|
306
325
|
```bash
|
|
307
326
|
npm install
|
|
327
|
+
python3 -m pip install --requirement requirements.txt
|
|
308
328
|
python3 scripts/skill-doctor.py --json
|
|
309
329
|
python3 tests/scripts/run_tests.py
|
|
310
330
|
python3 scripts/eval-intelligence.py
|
package/SKILL.md
CHANGED
|
@@ -7,7 +7,7 @@ description: >-
|
|
|
7
7
|
validate, review, or deliver animation inside an existing project.
|
|
8
8
|
license: MIT
|
|
9
9
|
metadata:
|
|
10
|
-
version: "2.
|
|
10
|
+
version: "2.5.1"
|
|
11
11
|
target_frameworks: "lottie,dotlottie,rive,gsap,framer-motion,spine,threejs"
|
|
12
12
|
verified_runtimes: "lottie-json,dotlottie-package,svg-cutout-rig,rive,gsap,framer-motion"
|
|
13
13
|
---
|
package/agent-card.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"card_version": "1.0",
|
|
3
3
|
"name": "motionloom",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.5.1",
|
|
5
5
|
"description": "Project-aware animation production with durable Project Memory, provider-neutral Artifact Intake, hash-bound control-to-runtime candidates, tiered asset provenance, framework-neutral motion IR, rig compatibility, runtime verification and telemetry, Visual Truth, Remediation Learning, DSSE-compatible signed attestation, internal browser review, trust-boundary hardening and deterministic Agent handoff.",
|
|
6
6
|
"capabilities": [
|
|
7
7
|
"project.setup",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"provenance.emit",
|
|
42
42
|
"provenance.verify",
|
|
43
43
|
"capability.discover",
|
|
44
|
+
"capability.card",
|
|
44
45
|
"capability.select",
|
|
45
46
|
"replay.capture",
|
|
46
47
|
"replay.verify",
|
|
@@ -121,6 +122,7 @@
|
|
|
121
122
|
"project-graph",
|
|
122
123
|
"provenance-attestation",
|
|
123
124
|
"capability-registry",
|
|
125
|
+
"capability-card",
|
|
124
126
|
"motion-ir",
|
|
125
127
|
"replay-bundle",
|
|
126
128
|
"semantic-lint-report",
|
|
@@ -203,6 +205,7 @@
|
|
|
203
205
|
"intelligence_graph": "python3 scripts/intelligence.py graph build --task-dir artifacts/<task-id>",
|
|
204
206
|
"intelligence_provenance": "python3 scripts/intelligence.py provenance build --task-dir artifacts/<task-id>",
|
|
205
207
|
"intelligence_capabilities": "python3 scripts/intelligence.py capabilities build --output capability-registry.json",
|
|
208
|
+
"intelligence_capability_card": "motionloom capability card --format json",
|
|
206
209
|
"intelligence_motion_ir": "python3 scripts/intelligence.py motion-ir build --task-dir artifacts/<task-id>",
|
|
207
210
|
"intelligence_replay": "python3 scripts/intelligence.py replay capture --task-dir artifacts/<task-id>",
|
|
208
211
|
"semantic_lint": "python3 scripts/intelligence.py semantic-lint build --task-dir artifacts/<task-id>",
|
package/agent-surfaces.json
CHANGED
package/bin/motionloom.mjs
CHANGED
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
9
|
import { dirname, resolve } from "node:path";
|
|
10
10
|
import { spawnSync } from "node:child_process";
|
|
11
|
+
import { readFileSync } from "node:fs";
|
|
11
12
|
|
|
12
13
|
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
14
|
+
const PACKAGE = JSON.parse(readFileSync(resolve(ROOT, "package.json"), "utf8"));
|
|
15
|
+
const VERSION = PACKAGE.version || "unknown";
|
|
13
16
|
const PYTHON = process.env.MOTIONLOOM_PYTHON || (process.platform === "win32" ? "python" : "python3");
|
|
14
17
|
|
|
15
18
|
const PYTHON_COMMANDS = {
|
|
@@ -32,8 +35,6 @@ const PYTHON_COMMANDS = {
|
|
|
32
35
|
pr: "scripts/pr.py",
|
|
33
36
|
"validate-lottie": "scripts/validate-lottie.py",
|
|
34
37
|
manifest: "scripts/manifest.py",
|
|
35
|
-
test: "tests/scripts/run_tests.py",
|
|
36
|
-
"deep-audit": "tests/scripts/deep-stress.py",
|
|
37
38
|
discovery: "scripts/discovery.py",
|
|
38
39
|
"visual-truth": "scripts/visual-truth.py",
|
|
39
40
|
"remediation-learning": "scripts/remediation-learning.py",
|
|
@@ -54,8 +55,12 @@ const NODE_COMMANDS = {
|
|
|
54
55
|
repair: "scripts/setup.mjs",
|
|
55
56
|
};
|
|
56
57
|
|
|
58
|
+
const COMMAND_ALIASES = {
|
|
59
|
+
capability: { script: "scripts/intelligence.py", args: ["capabilities"] },
|
|
60
|
+
};
|
|
61
|
+
|
|
57
62
|
function printHelp() {
|
|
58
|
-
console.log(`MotionLoom
|
|
63
|
+
console.log(`MotionLoom ${VERSION} — project-aware animation production and evidence contracts
|
|
59
64
|
|
|
60
65
|
Usage:
|
|
61
66
|
motionloom <command> [args...]
|
|
@@ -69,6 +74,7 @@ Use when an animation task needs it:
|
|
|
69
74
|
analyze Run project analysis and refresh Project Memory
|
|
70
75
|
memory Initialize, inspect, refresh, recover or validate memory
|
|
71
76
|
intelligence Build or validate Intelligence Core artifacts
|
|
77
|
+
capability Export or select evidence-bound runtime capabilities
|
|
72
78
|
attestation Build/validate canonical signed-attestation artifacts
|
|
73
79
|
verify-attestation Verify an attestation against a trust policy
|
|
74
80
|
evidence-verify Verify runtime evidence externally
|
|
@@ -103,6 +109,7 @@ Cross-platform examples:
|
|
|
103
109
|
--status accepted --summary "Use ease-out for UI entry" --user-confirmed
|
|
104
110
|
motionloom discovery check --root . --json
|
|
105
111
|
motionloom discovery install-matrix --root . --json
|
|
112
|
+
motionloom capability card --format json
|
|
106
113
|
motionloom visual-truth validate --root . --input src/output/<scene>/visual-truth.json
|
|
107
114
|
motionloom remediation-learning summary --history artifacts/remediation-history.jsonl --json
|
|
108
115
|
motionloom asset-provenance check --input <asset-provenance.json> --root <scene-dir> --mode runtime --json
|
|
@@ -124,7 +131,8 @@ if (!command || command === "help" || command === "--help" || command === "-h")
|
|
|
124
131
|
process.exit(0);
|
|
125
132
|
}
|
|
126
133
|
|
|
127
|
-
const
|
|
134
|
+
const alias = COMMAND_ALIASES[command];
|
|
135
|
+
const script = alias?.script || NODE_COMMANDS[command] || PYTHON_COMMANDS[command];
|
|
128
136
|
if (!script) {
|
|
129
137
|
console.error(`Unknown MotionLoom command: ${command}`);
|
|
130
138
|
printHelp();
|
|
@@ -132,9 +140,15 @@ if (!script) {
|
|
|
132
140
|
}
|
|
133
141
|
|
|
134
142
|
const executable = script.endsWith(".mjs") ? process.execPath : PYTHON;
|
|
135
|
-
|
|
143
|
+
const delegatedArgs = alias
|
|
144
|
+
? [...alias.args, ...args]
|
|
145
|
+
: NODE_COMMANDS[command] && !["setup", "init"].includes(command)
|
|
146
|
+
? [command, ...args]
|
|
147
|
+
: command === "init"
|
|
148
|
+
? ["init", ...args]
|
|
149
|
+
: args;
|
|
136
150
|
const result = spawnSync(executable, [resolve(ROOT, script), ...delegatedArgs], {
|
|
137
|
-
cwd:
|
|
151
|
+
cwd: process.cwd(),
|
|
138
152
|
stdio: "inherit",
|
|
139
153
|
env: process.env,
|
|
140
154
|
});
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "0.1",
|
|
3
|
+
"registry_id": "registry-motionloom-2.5.1",
|
|
4
|
+
"generated_at": "2026-08-17T23:50:53Z",
|
|
5
|
+
"selection_policy": {
|
|
6
|
+
"require_verified": true,
|
|
7
|
+
"allow_scaffold_only": false,
|
|
8
|
+
"max_evidence_age_seconds": 604800
|
|
9
|
+
},
|
|
10
|
+
"capabilities": [
|
|
11
|
+
{
|
|
12
|
+
"id": "runtime.lottie-json",
|
|
13
|
+
"kind": "renderer",
|
|
14
|
+
"status": "verified",
|
|
15
|
+
"adapter_version": "2.5.1",
|
|
16
|
+
"inputs": [
|
|
17
|
+
"project-context",
|
|
18
|
+
"motion-spec",
|
|
19
|
+
"source-binding"
|
|
20
|
+
],
|
|
21
|
+
"outputs": [
|
|
22
|
+
"runtime-evidence"
|
|
23
|
+
],
|
|
24
|
+
"compatibility": {
|
|
25
|
+
"browsers": [
|
|
26
|
+
"chromium"
|
|
27
|
+
],
|
|
28
|
+
"os": [
|
|
29
|
+
"linux"
|
|
30
|
+
],
|
|
31
|
+
"node": ">=22"
|
|
32
|
+
},
|
|
33
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
34
|
+
"evidence": [
|
|
35
|
+
{
|
|
36
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
37
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
38
|
+
"kind": "ci"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"limitations": [
|
|
42
|
+
"Capability evidence is refreshed by runtime:test."
|
|
43
|
+
],
|
|
44
|
+
"fallback": "",
|
|
45
|
+
"risk_level": "low",
|
|
46
|
+
"side_effect_level": "local_write"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "runtime.dotlottie-package",
|
|
50
|
+
"kind": "packager",
|
|
51
|
+
"status": "verified",
|
|
52
|
+
"adapter_version": "2.5.1",
|
|
53
|
+
"inputs": [
|
|
54
|
+
"project-context",
|
|
55
|
+
"motion-spec",
|
|
56
|
+
"source-binding"
|
|
57
|
+
],
|
|
58
|
+
"outputs": [
|
|
59
|
+
"runtime-evidence"
|
|
60
|
+
],
|
|
61
|
+
"compatibility": {
|
|
62
|
+
"browsers": [
|
|
63
|
+
"chromium"
|
|
64
|
+
],
|
|
65
|
+
"os": [
|
|
66
|
+
"linux"
|
|
67
|
+
],
|
|
68
|
+
"node": ">=22"
|
|
69
|
+
},
|
|
70
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
71
|
+
"evidence": [
|
|
72
|
+
{
|
|
73
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
74
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
75
|
+
"kind": "ci"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"limitations": [
|
|
79
|
+
"Capability evidence is refreshed by runtime:test."
|
|
80
|
+
],
|
|
81
|
+
"fallback": "",
|
|
82
|
+
"risk_level": "low",
|
|
83
|
+
"side_effect_level": "local_write"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "runtime.svg-cutout-rig",
|
|
87
|
+
"kind": "renderer",
|
|
88
|
+
"status": "verified",
|
|
89
|
+
"adapter_version": "2.5.1",
|
|
90
|
+
"inputs": [
|
|
91
|
+
"project-context",
|
|
92
|
+
"motion-spec",
|
|
93
|
+
"source-binding"
|
|
94
|
+
],
|
|
95
|
+
"outputs": [
|
|
96
|
+
"runtime-evidence"
|
|
97
|
+
],
|
|
98
|
+
"compatibility": {
|
|
99
|
+
"browsers": [
|
|
100
|
+
"chromium"
|
|
101
|
+
],
|
|
102
|
+
"os": [
|
|
103
|
+
"linux"
|
|
104
|
+
],
|
|
105
|
+
"node": ">=22"
|
|
106
|
+
},
|
|
107
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
108
|
+
"evidence": [
|
|
109
|
+
{
|
|
110
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
111
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
112
|
+
"kind": "ci"
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"limitations": [
|
|
116
|
+
"Capability evidence is refreshed by runtime:test."
|
|
117
|
+
],
|
|
118
|
+
"fallback": "",
|
|
119
|
+
"risk_level": "low",
|
|
120
|
+
"side_effect_level": "local_write"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "runtime.rive",
|
|
124
|
+
"kind": "runtime-adapter",
|
|
125
|
+
"status": "verified",
|
|
126
|
+
"adapter_version": "2.5.1",
|
|
127
|
+
"inputs": [
|
|
128
|
+
"project-context",
|
|
129
|
+
"motion-spec",
|
|
130
|
+
"source-binding"
|
|
131
|
+
],
|
|
132
|
+
"outputs": [
|
|
133
|
+
"runtime-evidence"
|
|
134
|
+
],
|
|
135
|
+
"compatibility": {
|
|
136
|
+
"browsers": [
|
|
137
|
+
"chromium"
|
|
138
|
+
],
|
|
139
|
+
"os": [
|
|
140
|
+
"linux"
|
|
141
|
+
],
|
|
142
|
+
"node": ">=22"
|
|
143
|
+
},
|
|
144
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
145
|
+
"evidence": [
|
|
146
|
+
{
|
|
147
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
148
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
149
|
+
"kind": "ci"
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"limitations": [
|
|
153
|
+
"Capability evidence is refreshed by runtime:test."
|
|
154
|
+
],
|
|
155
|
+
"fallback": "",
|
|
156
|
+
"risk_level": "low",
|
|
157
|
+
"side_effect_level": "local_write"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "runtime.gsap",
|
|
161
|
+
"kind": "runtime-adapter",
|
|
162
|
+
"status": "verified",
|
|
163
|
+
"adapter_version": "2.5.1",
|
|
164
|
+
"inputs": [
|
|
165
|
+
"project-context",
|
|
166
|
+
"motion-spec",
|
|
167
|
+
"source-binding"
|
|
168
|
+
],
|
|
169
|
+
"outputs": [
|
|
170
|
+
"runtime-evidence"
|
|
171
|
+
],
|
|
172
|
+
"compatibility": {
|
|
173
|
+
"browsers": [
|
|
174
|
+
"chromium"
|
|
175
|
+
],
|
|
176
|
+
"os": [
|
|
177
|
+
"linux"
|
|
178
|
+
],
|
|
179
|
+
"node": ">=22"
|
|
180
|
+
},
|
|
181
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
182
|
+
"evidence": [
|
|
183
|
+
{
|
|
184
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
185
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
186
|
+
"kind": "ci"
|
|
187
|
+
}
|
|
188
|
+
],
|
|
189
|
+
"limitations": [
|
|
190
|
+
"Capability evidence is refreshed by runtime:test."
|
|
191
|
+
],
|
|
192
|
+
"fallback": "",
|
|
193
|
+
"risk_level": "low",
|
|
194
|
+
"side_effect_level": "local_write"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "runtime.framer-motion",
|
|
198
|
+
"kind": "runtime-adapter",
|
|
199
|
+
"status": "verified",
|
|
200
|
+
"adapter_version": "2.5.1",
|
|
201
|
+
"inputs": [
|
|
202
|
+
"project-context",
|
|
203
|
+
"motion-spec",
|
|
204
|
+
"source-binding"
|
|
205
|
+
],
|
|
206
|
+
"outputs": [
|
|
207
|
+
"runtime-evidence"
|
|
208
|
+
],
|
|
209
|
+
"compatibility": {
|
|
210
|
+
"browsers": [
|
|
211
|
+
"chromium"
|
|
212
|
+
],
|
|
213
|
+
"os": [
|
|
214
|
+
"linux"
|
|
215
|
+
],
|
|
216
|
+
"node": ">=22"
|
|
217
|
+
},
|
|
218
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
219
|
+
"evidence": [
|
|
220
|
+
{
|
|
221
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
222
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
223
|
+
"kind": "ci"
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
"limitations": [
|
|
227
|
+
"Capability evidence is refreshed by runtime:test."
|
|
228
|
+
],
|
|
229
|
+
"fallback": "",
|
|
230
|
+
"risk_level": "low",
|
|
231
|
+
"side_effect_level": "local_write"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "runtime.spine",
|
|
235
|
+
"kind": "renderer",
|
|
236
|
+
"status": "scaffold_only",
|
|
237
|
+
"adapter_version": "2.5.1",
|
|
238
|
+
"inputs": [
|
|
239
|
+
"project-context",
|
|
240
|
+
"motion-spec",
|
|
241
|
+
"source-binding"
|
|
242
|
+
],
|
|
243
|
+
"outputs": [
|
|
244
|
+
"runtime-evidence"
|
|
245
|
+
],
|
|
246
|
+
"compatibility": {
|
|
247
|
+
"browsers": [
|
|
248
|
+
"chromium"
|
|
249
|
+
],
|
|
250
|
+
"os": [
|
|
251
|
+
"linux"
|
|
252
|
+
],
|
|
253
|
+
"node": ">=22"
|
|
254
|
+
},
|
|
255
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
256
|
+
"evidence": [
|
|
257
|
+
{
|
|
258
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
259
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
260
|
+
"kind": "ci"
|
|
261
|
+
}
|
|
262
|
+
],
|
|
263
|
+
"limitations": [
|
|
264
|
+
"Scaffold only; do not use for production acceptance."
|
|
265
|
+
],
|
|
266
|
+
"fallback": "runtime.lottie-json",
|
|
267
|
+
"risk_level": "high",
|
|
268
|
+
"side_effect_level": "local_write"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"id": "runtime.threejs",
|
|
272
|
+
"kind": "renderer",
|
|
273
|
+
"status": "scaffold_only",
|
|
274
|
+
"adapter_version": "2.5.1",
|
|
275
|
+
"inputs": [
|
|
276
|
+
"project-context",
|
|
277
|
+
"motion-spec",
|
|
278
|
+
"source-binding"
|
|
279
|
+
],
|
|
280
|
+
"outputs": [
|
|
281
|
+
"runtime-evidence"
|
|
282
|
+
],
|
|
283
|
+
"compatibility": {
|
|
284
|
+
"browsers": [
|
|
285
|
+
"chromium"
|
|
286
|
+
],
|
|
287
|
+
"os": [
|
|
288
|
+
"linux"
|
|
289
|
+
],
|
|
290
|
+
"node": ">=22"
|
|
291
|
+
},
|
|
292
|
+
"last_verified_at": "2026-08-17T23:50:53Z",
|
|
293
|
+
"evidence": [
|
|
294
|
+
{
|
|
295
|
+
"path": "scripts/runtime-adapters.mjs",
|
|
296
|
+
"sha256": "6f135e75e700a7bb105903db59445fcd3577669b595082a2b542db639f5fe56d",
|
|
297
|
+
"kind": "ci"
|
|
298
|
+
}
|
|
299
|
+
],
|
|
300
|
+
"limitations": [
|
|
301
|
+
"Scaffold only; do not use for production acceptance."
|
|
302
|
+
],
|
|
303
|
+
"fallback": "runtime.lottie-json",
|
|
304
|
+
"risk_level": "high",
|
|
305
|
+
"side_effect_level": "local_write"
|
|
306
|
+
}
|
|
307
|
+
]
|
|
308
|
+
}
|