{"_id":"@asidorenkocodeppi/ralph-tui","_rev":"10-33c9af8ce359ddb3a5362a83d87212e2","name":"@asidorenkocodeppi/ralph-tui","dist-tags":{"latest":"0.1.18"},"versions":{"0.1.9":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.9","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.9","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"dae5b81408d56121c51fd93dec8aea1af2dcd0c5","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.9.tgz","fileCount":35,"integrity":"sha512-d1fmTUPtwLTWCVVH5UE7GYuE30NzidYLUgHYZcQX3kNJkbFR9AdlYCDEyHZjd9j4ygF/r/0lpPEyQ6XgocCQiQ==","signatures":[{"sig":"MEQCIB6zGH3k2zDLqlB0JssQmWAuBRD9BMzyd+qcnG5pEC/YAiALNg7muLhQy47IDJZ9eV2xXNZ/NMkrPQlDMLCHTkkYTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26110562},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5f19391c5dc1ef46bb64e37da932ed5138b8e3a6","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","website:dev":"cd website && bun run dev","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","website:lint":"cd website && bun run lint","website:build":"cd website && bun run build","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.9_1768442062893_0.2423839972519244","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.10","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.10","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"1404da4f31096fa04b619e7bc2a86b4cfd323dfe","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.10.tgz","fileCount":35,"integrity":"sha512-Ema05yJRi/fQLQG0lSuCZROyi7bNb6OfsbnmTU4Lrp2RdRaX2G/TtjlO37elPHjXBEGpB8UoxLH9BuaxlZIKRA==","signatures":[{"sig":"MEYCIQCUTc1Uoj4OprUN8czxgta0NWJsgHcELTqH8s1t+DVF2AIhAL3Qrw8MgReD8Pj0KCFONe4yh/T6xYn2EvOw/raoSfxS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26116430},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d7c7e87ea1893e3c7c0059de4b4e82948f18496e","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","website:dev":"cd website && bun run dev","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","website:lint":"cd website && bun run lint","website:build":"cd website && bun run build","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.10_1768442488151_0.569055255487076","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.11","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.11","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"3f5f2a3d132ed47097cbd06ac8b6f5ac86016921","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.11.tgz","fileCount":35,"integrity":"sha512-tivQTB7cghssz2Ndfl1AQWbrnJAIv8mmtAspO9/GA+rbPH8Bo2F0qCVWjoc81hN+LwSCSoh7nHeXo4B1NeEIWA==","signatures":[{"sig":"MEQCIDIfWzlnMsjm9RkqFBkehkLmFOkwgnDCoYhaFGH2BLvlAiApKIGQ03zO8D3T4v1hPKLH5HhFbklmf4DtcZj3hOQShw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26209242},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"72edd5c3f2d7f97cf7a1ac8a83e7c68679192c3c","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","website:dev":"cd website && bun run dev","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","website:lint":"cd website && bun run lint","website:build":"cd website && bun run build","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.11_1768444269865_0.5803668688693062","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.12","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.12","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"c93ddf3ec1ab6cd113e332b214a1606e70d016f0","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.12.tgz","fileCount":35,"integrity":"sha512-Bq1neEHItkGyCjOVwuL5U8bC91QYgOFKqodzPS7FjEN0hVJWPI7qOrMlfKETA1+Si24LgJiC8v39tg+l7LqSqw==","signatures":[{"sig":"MEYCIQDUpCNw7Ig1BeZWjNc07oi5qNL7KmU6mkml8j1zpzXJXAIhAJBWntIyuqk9SQll/060Zn838/+xz0pck/3y/FX6b9JB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26214310},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"56b44a79b2efb3dbb8a9792f1f35188aedc295de","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","website:dev":"cd website && bun run dev","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","website:lint":"cd website && bun run lint","website:build":"cd website && bun run build","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.12_1768459520037_0.35890233675604","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.13","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.13","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"4eb0e087b72f8c1fe782fde0b4e2d3da047ac504","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.13.tgz","fileCount":35,"integrity":"sha512-7fFwWkUO463cVuVxEhqn02ojsEACzBBEfz88o7lNIQRuHgSXS0kdpDb7ZlKBc6U1yF6nNrimkGDwDDVlgP1b4g==","signatures":[{"sig":"MEUCIQDjNeQiHybtBt4O5DdlXYVhskaX4nPYh4/E4YU47/8IRAIgA6yR0iN9GJJ+l9/Z8eU3NRCMOLgN9IjTvTiJZvr+FD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26214001},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"401eed3674b49585e75ff957142ce6b9ab3b91da","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.13_1768460055583_0.10016918461395763","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.14","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.14","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"64027e92b8feab8bc328984dcfdfbec4e6303402","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.14.tgz","fileCount":35,"integrity":"sha512-bxUmcIqVeUVvNhBZoCvLQuDDGfcFhoG8tGKJ6gEoj+OyiPZG4KXoKxlA9d0DfEkbX858M/rgFWN2E/VdT+fOpQ==","signatures":[{"sig":"MEYCIQCwbVV4SHnhN+0NThmQlyqakafyl90sXmvKwtV1d6HXmgIhAPuTr+j/+C5uI+xdoCs3z/qERINmF6+FEt0u2Vp+6van","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26213769},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0542bef1ae2279a9033a7df3437bc7562a458953","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.14_1768460630145_0.14677391759519431","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.15","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.15","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"8eace486e72b067d94e7018dc5345d45ec6af225","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.15.tgz","fileCount":35,"integrity":"sha512-/nuTSVjX6VfpEDf/jUUA4J0k/CcW3hqU+E6qq2j3PuUDHWYQgQ2Ugtfxsn+sGEoIeK9azwlYCFaHP5RjuIMbsA==","signatures":[{"sig":"MEUCIQCCxPCYcGvDfmj8pXdfeDVnnsem6Jwv+RJ64wOSorw50wIgJxkLI9FCOt9FXqkmHZWrKXfzNS+VCFiZmwgo3rTWTyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26216969},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a38e19b9b10ec283578d9d0ba32773dd35f471f4","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.15_1768463179392_0.657638908604625","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.16","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.16","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"ed907b9574b6196a899bccb694301de7bd3e4d46","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.16.tgz","fileCount":35,"integrity":"sha512-B9r6IgprBTVmiGIe9bBHj74p36YUxMSce1ceS1nylfJlsMzmfx3PL4WdL8mD/rdEXnjD2aKF4bdJJSJUtcGB1A==","signatures":[{"sig":"MEUCIGJEaiHgR1RJkt3tMtnd78DKOPAfOi4AtB8O1jj9wSrnAiEAky9EHJiYw4OTRLKerp5PyDk7QCCMSFvKcfuAyGTT4ts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26628197},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c6e5bf299bc2cf5eebc9fa2c3e742d1d3d4948ca","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","postinstall":"node -e \"const fs=require('fs');if(!fs.existsSync('dist/cli.js')){console.log('Building ralph-tui...');require('child_process').execSync('bun run build',{stdio:'inherit'})}\"","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.16_1768570829744_0.534795710809955","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.17","author":{"name":"subsy"},"license":"MIT","_id":"@asidorenkocodeppi/ralph-tui@0.1.17","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"bin":{"ralph-tui":"dist/cli.js"},"dist":{"shasum":"019bfb67e9df5d096a5aa2a78aea6e6a258e67b9","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.17.tgz","fileCount":35,"integrity":"sha512-9dEQH4u5TQJsVCa1dTVmsMYDZmwuf22GmYJBKdQN4z4gx6Mbfz3giGc4UovwO4xoA1WHIu4DDiry5bMxvIwexg==","signatures":[{"sig":"MEUCIChlWQyGnOtyfVara4W5Bo92InH408vqcUhvHEcDl7fuAiEA6cHNEmrWDS3LIn/Mf152VZycqc72CJYTXVvi8XQEUA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26636377},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"190b9c742ab60c1963eae56882dd959ccddfb766","scripts":{"dev":"bun run ./src/cli.tsx","lint":"eslint src/","build":"bun run build:cli && bun run build:lib && bun run build:assets","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","lint:fix":"eslint src/ --fix","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","typecheck":"tsc --noEmit","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","postinstall":"node -e \"const fs=require('fs');if(!fs.existsSync('dist/cli.js')){console.log('Building ralph-tui...');require('child_process').execSync('bun run build',{stdio:'inherit'})}\"","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","prepublishOnly":"bun run build"},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"repository":{"url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git","type":"git"},"_npmVersion":"11.7.0","description":"Ralph TUI - AI Agent Loop Orchestrator","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^4.3.5","yaml":"^2.8.2","smol-toml":"^1.6.0","handlebars":"^4.7.8","@opentui/core":"^0.1.72","node-notifier":"^8.0.2","@opentui/react":"^0.1.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.2.17","devDependencies":{"react":"^19.2.3","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.6","@types/react":"^19.2.8","@types/handlebars":"^4.1.0","@types/node-notifier":"^8.0.5","@typescript-eslint/parser":"^8.52.0","@typescript-eslint/eslint-plugin":"^8.52.0"},"_npmOperationalInternal":{"tmp":"tmp/ralph-tui_0.1.17_1768571042426_0.6433057546071506","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@asidorenkocodeppi/ralph-tui","version":"0.1.18","publishConfig":{"access":"public"},"description":"Ralph TUI - AI Agent Loop Orchestrator","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"bin":{"ralph-tui":"dist/cli.js"},"scripts":{"build":"bun run build:cli && bun run build:lib && bun run build:assets","build:cli":"bun build ./src/cli.tsx --outdir ./dist --target bun --sourcemap=external","build:lib":"bun build ./src/index.ts --outdir ./dist --target bun --sourcemap=external","build:assets":"node -e \"const fs=require('fs');const path=require('path');function copyDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?copyDir(sp,dp):fs.copyFileSync(sp,dp)}}copyDir('assets','dist/assets')\"","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist","typecheck":"tsc --noEmit","lint":"eslint src/","lint:fix":"eslint src/ --fix","clean":"node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"","dev":"bun run ./src/cli.tsx","prepublishOnly":"bun run build","postinstall":"node -e \"const fs=require('fs');if(!fs.existsSync('dist/cli.js')){console.log('Building ralph-tui...');require('child_process').execSync('bun run build',{stdio:'inherit'})}\""},"author":{"name":"subsy"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git"},"homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"packageManager":"bun@1.2.17","engines":{"bun":">=1.0.0"},"devDependencies":{"@eslint/js":"^9.39.2","@types/handlebars":"^4.1.0","@types/node":"^25.0.6","@types/node-notifier":"^8.0.5","@types/react":"^19.2.8","@typescript-eslint/eslint-plugin":"^8.52.0","@typescript-eslint/parser":"^8.52.0","eslint":"^9.39.2","react":"^19.2.3","typescript":"^5.9.3"},"dependencies":{"@opentui/core":"^0.1.72","@opentui/react":"^0.1.72","handlebars":"^4.7.8","node-notifier":"^8.0.2","smol-toml":"^1.6.0","yaml":"^2.8.2","zod":"^4.3.5"},"gitHead":"b1a8c3ea6051437ee9c438f020a498526934ea6e","_id":"@asidorenkocodeppi/ralph-tui@0.1.18","_nodeVersion":"20.17.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-wlrmtwsFrQEfcqjYmbwA4xhOUVj2g0wchitUFfeBkvx38C5+0J7vdGmiczeCHOyg8PBvDlSA9erlt3b/3HwowQ==","shasum":"425165568cc7bc850c0da9821daca5d7ca19f43a","tarball":"https://registry.npmjs.org/@asidorenkocodeppi/ralph-tui/-/ralph-tui-0.1.18.tgz","fileCount":35,"unpackedSize":27182824,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFc83OYI/8E2P4aNoC8TBOC0EW4dLjE/63T3qQ//5RIvAiEA6zDWytV3wNrB+CiwgGGG17IST1PnNR27dx83bsGdde0="}]},"_npmUser":{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"},"directories":{},"maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ralph-tui_0.1.18_1768826695253_0.9739503270477752"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-15T01:54:22.810Z","modified":"2026-01-19T12:44:55.662Z","0.1.9":"2026-01-15T01:54:23.260Z","0.1.10":"2026-01-15T02:01:29.686Z","0.1.11":"2026-01-15T02:31:10.204Z","0.1.12":"2026-01-15T06:45:20.372Z","0.1.13":"2026-01-15T06:54:15.983Z","0.1.14":"2026-01-15T07:03:50.481Z","0.1.15":"2026-01-15T07:46:19.689Z","0.1.16":"2026-01-16T13:40:30.111Z","0.1.17":"2026-01-16T13:44:02.708Z","0.1.18":"2026-01-19T12:44:55.552Z"},"bugs":{"url":"https://github.com/aSidorenkoCodePPI/ralph-tui/issues"},"author":{"name":"subsy"},"license":"MIT","homepage":"https://github.com/aSidorenkoCodePPI/ralph-tui","repository":{"type":"git","url":"git+https://github.com/aSidorenkoCodePPI/ralph-tui.git"},"description":"Ralph TUI - AI Agent Loop Orchestrator","maintainers":[{"name":"asidorenkocodeppi","email":"artur.sidorenko@ppi.de"}],"readme":"# Ralph TUI\r\n\r\n[![Built with Bun](https://img.shields.io/badge/Built%20with-Bun-f9f1e1.svg)](https://bun.sh)\r\n[![npm version](https://img.shields.io/npm/v/@asidorenkocodeppi/ralph-tui.svg)](https://www.npmjs.com/package/@asidorenkocodeppi/ralph-tui)\r\n\r\n**AI Agent Loop Orchestrator** - A terminal UI for orchestrating AI coding agents to work through task lists autonomously.\r\n\r\nRalph TUI connects your AI coding assistant (GitHub Copilot CLI, OpenCode) to your task tracker and runs them in an autonomous loop, completing tasks one-by-one with intelligent selection, error handling, and full visibility.\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n\r\n- [Bun](https://bun.sh) - JavaScript runtime (REQUIRED)\r\n- [GitHub Copilot CLI](https://githubnext.com/projects/copilot-cli) - Default AI agent\r\n\r\n### Step 1: Install Bun\r\n\r\n```powershell\r\n# Windows - Option 1: via npm\r\nnpm install -g bun\r\n\r\n# Windows - Option 2: via PowerShell\r\npowershell -c \"irm bun.sh/install.ps1 | iex\"\r\n\r\n# macOS/Linux\r\ncurl -fsSL https://bun.sh/install | bash\r\n```\r\n\r\nAfter installation, verify Bun is available:\r\n```powershell\r\nbun --version\r\n```\r\n\r\n### Step 2: Install Ralph TUI\r\n\r\n```powershell\r\n# Install the package\r\nnpm install -g @asidorenkocodeppi/ralph-tui\r\n\r\n# IMPORTANT: Also install with bun to create the CLI symlink\r\nbun install -g @asidorenkocodeppi/ralph-tui\r\n```\r\n\r\n> **Note:** The `bun install -g` step is required to create the `ralph-tui` command in your PATH.\r\n\r\n### Step 3: Install GitHub Copilot CLI (Default Agent)\r\n\r\n```powershell\r\n# Install\r\nnpm install -g @githubnext/github-copilot-cli\r\n\r\n# Authenticate\r\ngh auth login\r\n```\r\n\r\n### Verify Installation\r\n\r\n```powershell\r\nralph-tui --help\r\n```\r\n\r\nIf you get \"command not found\", try:\r\n```powershell\r\n# Option 1: Run directly with bunx\r\nbunx @asidorenkocodeppi/ralph-tui --help\r\n\r\n# Option 2: Add bun's bin to PATH (add to your shell profile)\r\nexport PATH=\"$HOME/.bun/bin:$PATH\"\r\n```\r\n\r\n## Quick Start\r\n\r\n```powershell\r\n# Setup your project\r\ncd your-project\r\nralph-tui setup\r\n\r\n# Create a PRD with AI assistance\r\nralph-tui create-prd\r\n\r\n# Or create a PRD from a Jira issue\r\nralph-tui create-prd --jira\r\n\r\n# Run Ralph!\r\nralph-tui run --prd ./tasks/prd.json\r\n```\r\n\r\nThat's it! Ralph will work through your tasks autonomously.\r\n\r\n## Jira Integration\r\n\r\nRalph TUI integrates with Jira to convert your tickets into actionable PRDs with user stories.\r\n\r\n### Fetching Jira Issues\r\n\r\n```bash\r\n# List your assigned Jira issues\r\nralph-tui jira-prd\r\n```\r\n\r\nThis uses GitHub Copilot CLI's MCP (Model Context Protocol) to fetch issues assigned to you from Jira.\r\n\r\n### Creating PRDs from Jira Tickets\r\n\r\n```bash\r\n# Interactive: select a Jira ticket and generate a PRD\r\nralph-tui create-prd --jira\r\n```\r\n\r\n**How it works:**\r\n1. Fetches your assigned Jira issues via Copilot CLI MCP\r\n2. Presents an interactive selector to choose a ticket\r\n3. Opens an AI chat session with the ticket context\r\n4. AI transforms the Jira ticket into a structured PRD with:\r\n   - User stories (US-001, US-002, etc.)\r\n   - Acceptance criteria as checklists\r\n   - Technical requirements extracted from the ticket\r\n\r\n**Example transformation:**\r\n\r\nJira ticket:\r\n```\r\nTPH-123: Add dark mode support\r\nAcceptance Criteria:\r\n- User can toggle dark mode\r\n- Settings persist across sessions\r\n```\r\n\r\nGenerated PRD:\r\n```markdown\r\n### US-001: Dark Mode Toggle\r\n- [ ] Add toggle switch in settings page\r\n- [ ] Toggle changes theme immediately\r\n\r\n### US-002: Persist Dark Mode Setting\r\n- [ ] Save preference to localStorage\r\n- [ ] Load preference on app startup\r\n```\r\n\r\n### Jira MCP Setup\r\n\r\nThe Jira integration uses GitHub Copilot CLI's MCP feature. Ensure your Copilot CLI is configured with Jira MCP access.\r\n\r\n## Supported AI Agents\r\n\r\n| Agent | Description | Default |\r\n|-------|-------------|---------|\r\n| `copilot` | GitHub Copilot CLI | Yes |\r\n| `opencode` | OpenCode CLI | No |\r\n\r\n## How It Works\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────────┐\r\n│                        PLANNING PHASE                           │\r\n│   ┌──────────────┐     ┌──────────────┐     ┌──────────────┐   │\r\n│   │    JIRA      │────▶│   AI CHAT    │────▶│   PRD.JSON   │   │\r\n│   │   TICKET     │     │   SESSION    │     │  USER STORIES │   │\r\n│   └──────────────┘     └──────────────┘     └──────────────┘   │\r\n└─────────────────────────────────────────────────────────────────┘\r\n                              │\r\n                              ▼\r\n┌─────────────────────────────────────────────────────────────────┐\r\n│                       EXECUTION PHASE                           │\r\n│   ┌──────────────┐     ┌──────────────┐     ┌──────────────┐   │\r\n│   │  1. SELECT   │────▶│  2. BUILD    │────▶│  3. EXECUTE  │   │\r\n│   │    TASK      │     │    PROMPT    │     │    AGENT     │   │\r\n│   └──────────────┘     └──────────────┘     └──────────────┘   │\r\n│          ▲                                         │            │\r\n│          │                                         ▼            │\r\n│   ┌──────────────┐                         ┌──────────────┐    │\r\n│   │  5. NEXT     │◀────────────────────────│  4. DETECT   │    │\r\n│   │    TASK      │                         │  COMPLETION  │    │\r\n│   └──────────────┘                         └──────────────┘    │\r\n└─────────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n**Planning Phase:**\r\n1. Fetch a Jira ticket (or create manually)\r\n2. AI chat transforms it into user stories with acceptance criteria\r\n3. Save as `prd.json` - your task list\r\n\r\n**Execution Phase:**\r\n1. Ralph selects the highest-priority incomplete task\r\n2. Builds a prompt with task details + context\r\n3. Executes your AI agent (Copilot CLI)\r\n4. Detects completion via `<promise>COMPLETE</promise>` token\r\n5. Marks task done, moves to next\r\n\r\nRepeat until all tasks are complete.\r\n\r\n## Features\r\n\r\n- **Jira Integration**: Convert Jira tickets to PRDs with AI-generated user stories\r\n- **AI Agents**: GitHub Copilot CLI (default), OpenCode\r\n- **Task Trackers**: prd.json (simple), Beads (git-backed with dependencies)\r\n- **Session Persistence**: Pause anytime, resume later, survive crashes\r\n- **Real-time TUI**: Watch agent output, control execution with keyboard shortcuts\r\n- **Cross-iteration Context**: Automatic progress tracking between tasks\r\n- **Cross-platform**: Works on Windows, macOS, and Linux\r\n\r\n## Project Analysis\r\n\r\nRalph can analyze your project structure to help AI agents understand the codebase. The `learn` command scans your project, detects patterns, and generates a context file (`ralph-context.md`) that agents can use for better code understanding.\r\n\r\n### Basic Usage\r\n\r\n```bash\r\n# Analyze current directory\r\nralph-tui learn\r\n\r\n# Analyze a specific path\r\nralph-tui learn ./my-project\r\n\r\n# Custom output file\r\nralph-tui learn --output ./docs/context.md\r\n```\r\n\r\n### Analysis Depth\r\n\r\n```bash\r\n# Quick structural scan\r\nralph-tui learn --depth shallow\r\n\r\n# Standard analysis (default)\r\nralph-tui learn --depth standard\r\n\r\n# Deep analysis with code patterns\r\nralph-tui learn --depth deep\r\n```\r\n\r\n### AI-Powered Analysis\r\n\r\nUse the `--agent` flag to enable intelligent folder grouping via GitHub Copilot:\r\n\r\n```bash\r\n# Let AI analyze and group related code\r\nralph-tui learn --agent\r\n\r\n# Preview the analysis plan without executing\r\nralph-tui learn --agent --dry-run\r\n\r\n# Choose a specific splitting strategy\r\nralph-tui learn --agent --strategy domain\r\n```\r\n\r\n**Splitting Strategies:**\r\n\r\n| Strategy | Description |\r\n|----------|-------------|\r\n| `auto` | Let the AI choose the best strategy (default) |\r\n| `top-level` | Split by top-level directories |\r\n| `domain` | Group by code dependencies/imports |\r\n| `balanced` | Distribute files evenly across workers |\r\n\r\n### What Gets Analyzed\r\n\r\n- **Project structure**: Directory tree and organization\r\n- **Project types**: Detected frameworks and languages (TypeScript, React, etc.)\r\n- **Conventions**: Coding patterns and standards\r\n- **Dependencies**: Package relationships\r\n- **Architectural patterns**: Design patterns in use\r\n\r\n### Path Exclusions\r\n\r\nThe following are excluded by default:\r\n- Build directories: `node_modules/`, `dist/`, `build/`, `.next/`\r\n- Binary files: images, videos, archives, compiled files\r\n- Patterns from `.gitignore` and `.ralphignore`\r\n\r\nOverride exclusions with `--include`:\r\n```bash\r\nralph-tui learn --include \"dist/**\" --include \"*.min.js\"\r\n```\r\n\r\n## CLI Commands\r\n\r\n| Command | Description |\r\n|---------|-------------|\r\n| `ralph-tui` | Launch the interactive TUI |\r\n| `ralph-tui run [options]` | Start Ralph execution |\r\n| `ralph-tui resume` | Resume an interrupted session |\r\n| `ralph-tui status` | Check session status |\r\n| `ralph-tui logs` | View iteration output logs |\r\n| `ralph-tui setup` | Run interactive project setup |\r\n| `ralph-tui learn` | Analyze project for AI agents |\r\n| `ralph-tui create-prd` | Create a new PRD interactively |\r\n| `ralph-tui create-prd --jira` | Create PRD from Jira ticket |\r\n| `ralph-tui jira-prd` | List assigned Jira issues |\r\n| `ralph-tui config show` | Display merged configuration |\r\n| `ralph-tui plugins agents` | List available agent plugins |\r\n\r\n### Common Options\r\n\r\n```bash\r\n# Run with a PRD file (uses Copilot CLI by default)\r\nralph-tui run --prd ./prd.json\r\n\r\n# Run headless (no TUI)\r\nralph-tui run --prd ./prd.json --headless\r\n\r\n# Override agent\r\nralph-tui run --prd ./prd.json --agent opencode\r\n\r\n# Override model (Copilot supports: claude-sonnet-4, gpt-5, etc.)\r\nralph-tui run --prd ./prd.json --model claude-sonnet-4\r\n\r\n# Limit iterations\r\nralph-tui run --iterations 5\r\n```\r\n\r\n### TUI Keyboard Shortcuts\r\n\r\n| Key | Action |\r\n|-----|--------|\r\n| `s` | Start execution |\r\n| `p` | Pause/Resume |\r\n| `d` | Toggle dashboard |\r\n| `i` | Toggle iteration history |\r\n| `q` | Quit |\r\n| `?` | Show help |\r\n\r\n## Development\r\n\r\n### Setup\r\n\r\n```bash\r\ngit clone https://github.com/aSidorenkoCodePPI/ralph-tui.git\r\ncd ralph-tui\r\nbun install\r\n```\r\n\r\n### Build & Test\r\n\r\n```bash\r\nbun run build       # Build the project\r\nbun run typecheck   # Type check\r\nbun run lint        # Run linter\r\nbun run dev         # Run from source\r\n```\r\n\r\n### Project Structure\r\n\r\n```\r\nralph-tui/\r\n├── src/\r\n│   ├── cli.tsx           # CLI entry point\r\n│   ├── commands/         # CLI commands\r\n│   │   ├── jira-prd.ts   # Jira integration\r\n│   │   └── create-prd.ts # PRD creation with --jira flag\r\n│   ├── chat/             # AI chat engine for PRD generation\r\n│   ├── config/           # Configuration (Zod schemas)\r\n│   ├── engine/           # Execution engine\r\n│   ├── plugins/\r\n│   │   ├── agents/       # Agent plugins (copilot, opencode)\r\n│   │   └── trackers/     # Tracker plugins (json, beads)\r\n│   ├── prd/              # PRD parsing and Jira mapping\r\n│   ├── session/          # Session persistence\r\n│   └── tui/              # Terminal UI components\r\n└── dist/                 # Built output\r\n```\r\n\r\n## Credits\r\n\r\n- Original [Ralph Wiggum loop concept](https://ghuntley.com/ralph/) by Geoffrey Huntley\r\n- Forked from [subsy/ralph-tui](https://github.com/subsy/ralph-tui)\r\n\r\n## License\r\n\r\nMIT License\r\n","readmeFilename":"README.md"}