singularity-forge/package.json
TÂCHES 46c88e6494 feat: branded postinstall with @clack/prompts (#115)
* feat: branded postinstall with @clack/prompts

Replace raw ANSI ASCII art dump with structured, branded installer
flow using @clack/prompts and picocolors:

- Branded intro header with product name and version
- Animated spinners during patch and Playwright install steps
- Subprocess output captured (no more raw npm/Playwright noise)
- Boxed summary note with status indicators (✓/⚠)
- Clean outro with next-step instructions
- Graceful fallback to minimal output if clack unavailable
- All output routed to stderr for npm lifecycle visibility
- Async subprocess execution (not execSync) so spinners animate

* fix: restore ASCII banner alongside clack postinstall UI

The branded ASCII art banner is a key differentiator. Keep it as the
first thing users see, then follow with clack spinner steps for the
setup progress. Fallback path also simplified since the banner already
shows the version.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 09:18:13 -06:00

60 lines
1.9 KiB
JSON

{
"name": "gsd-pi",
"version": "2.3.9",
"description": "GSD — Get Shit Done coding agent",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/glittercowboy/gsd-pi.git"
},
"homepage": "https://github.com/glittercowboy/gsd-pi#readme",
"bugs": {
"url": "https://github.com/glittercowboy/gsd-pi/issues"
},
"type": "module",
"bin": {
"gsd": "dist/loader.js",
"gsd-cli": "dist/loader.js"
},
"files": [
"dist",
"patches",
"pkg",
"src/resources",
"scripts/postinstall.js",
"package.json",
"README.md"
],
"piConfig": {
"name": "gsd",
"configDir": ".gsd"
},
"engines": {
"node": ">=20.6.0"
},
"scripts": {
"build": "tsc && npm run copy-themes",
"copy-themes": "node -e \"const{mkdirSync,cpSync}=require('fs');const{resolve}=require('path');const src=resolve(__dirname,'node_modules/@mariozechner/pi-coding-agent/dist/modes/interactive/theme');mkdirSync('pkg/dist/modes/interactive/theme',{recursive:true});cpSync(src,'pkg/dist/modes/interactive/theme',{recursive:true})\"",
"test": "node --import ./src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test 'src/resources/extensions/gsd/tests/*.test.ts' 'src/resources/extensions/gsd/tests/*.test.mjs' 'src/tests/*.test.ts'",
"dev": "tsc --watch",
"postinstall": "node scripts/postinstall.js",
"pi:install-global": "node scripts/install-pi-global.js",
"pi:uninstall-global": "node scripts/uninstall-pi-global.js",
"sync-pkg-version": "node scripts/sync-pkg-version.cjs",
"prepublishOnly": "npm run sync-pkg-version && npm run build"
},
"dependencies": {
"@clack/prompts": "^1.1.0",
"@mariozechner/pi-coding-agent": "^0.57.1",
"picocolors": "^1.1.1",
"playwright": "^1.58.2"
},
"devDependencies": {
"@types/node": "^22.0.0",
"patch-package": "^8.0.1",
"typescript": "^5.4.0"
},
"overrides": {
"gaxios": "7.1.4"
}
}