Add gated local feature-video capture to completed user-facing deliverables. - Capture loopback scenario WebM recordings through the existing artifact registry. - Keep recording failures non-blocking and cover gated, unsafe, and failed capture paths. - Document the scenario contract and package the Playwright runtime dependency. Files changed: .changeset/fn-8289-feature-video.md | 7 + docs/workflow-steps.md | 8 + packages/cli/package.json | 3 +- packages/cli/tsup.config.ts | 7 + packages/engine/package.json | 3 +- .../__tests__/executor-review-artifacts.test.ts | 44 ++++ packages/engine/src/executor.ts | 33 +++ .../src/review-artifacts/feature-video.test.ts | 75 +++++++ .../engine/src/review-artifacts/feature-video.ts | 226 +++++++++++++++++++++ packages/engine/src/review-artifacts/index.ts | 10 + pnpm-lock.yaml | 6 + 11 files changed, 420 insertions(+), 2 deletions(-) Fusion-Task-Id: FN-8289 Fusion-Task-Lineage: 8a34675a-2417-4669-a14a-b74c4aa99331 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
62 lines
1.9 KiB
JSON
62 lines
1.9 KiB
JSON
{
|
|
"name": "@fusion/engine",
|
|
"version": "0.72.0",
|
|
"license": "MIT",
|
|
"description": "Fusion engine: executor, merger, scheduler, and automation runtime for the Fusion AI coding agent.",
|
|
"homepage": "https://github.com/Runfusion/Fusion#readme",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/Runfusion/Fusion",
|
|
"directory": "packages/engine"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/Runfusion/Fusion/issues"
|
|
},
|
|
"type": "module",
|
|
"exports": {
|
|
".": {
|
|
"types": "./src/index.ts",
|
|
"source": "./src/index.ts",
|
|
"import": "./dist/index.js"
|
|
}
|
|
},
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"README.md"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run --silent=passed-only --reporter=dot --project=engine-default --project=engine-reliability",
|
|
"test:core": "vitest run --silent=passed-only --reporter=dot --project=engine-core",
|
|
"test:slow": "vitest run --silent=passed-only --reporter=dot --project=engine-slow",
|
|
"test:all": "vitest run --silent=passed-only --reporter=dot",
|
|
"test:executor": "vitest run src/__tests__/executor-*.test.ts",
|
|
"test:watch": "vitest src/__tests__/executor-*.test.ts --watch"
|
|
},
|
|
"dependencies": {
|
|
"@earendil-works/pi-ai": "0.80.10",
|
|
"@earendil-works/pi-coding-agent": "0.80.10",
|
|
"@fusion/core": "workspace:*",
|
|
"@fusion/pi-claude-cli": "workspace:*",
|
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
"cron-parser": "^5.5.0",
|
|
"esbuild": "^0.25.12",
|
|
"node-pty": "npm:@homebridge/node-pty-prebuilt-multiarch@^0.13.1",
|
|
"proper-lockfile": "^4.1.2",
|
|
"typebox": "^1.0.0",
|
|
"playwright-core": "^1.60.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.5.0",
|
|
"@types/proper-lockfile": "^4.1.4",
|
|
"@vitest/coverage-v8": "^4.1.0",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^4.1.0"
|
|
},
|
|
"private": true
|
|
}
|