{"_id":"specrails-desktop","_rev":"105-222c4f39a97a550eed89193a3f1f8304","name":"specrails-desktop","dist-tags":{"latest":"2.59.2"},"versions":{"2.0.0":{"name":"specrails-desktop","version":"2.0.0","license":"MIT","_id":"specrails-desktop@2.0.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b27e2fe5fde286b014873788550c3369434a3b75","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.0.0.tgz","fileCount":455,"integrity":"sha512-IAPB/wOlgNQe0+gZVIXl79tF/ygDrWZlbzhMWEx7K9Gxs9w27JKcB66Wm4sfkP5i+i7zX7dgDKIe/W1o9Y31tQ==","signatures":[{"sig":"MEYCIQCI+veiR4CLSBK+05uSK3lDuJ7HHfZo2McBsv5n2fCKaQIhAJixetOfMLm6rcpUW1a3fCkOGtRvJ9SH0xF52EQ011G1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19699125},"engines":{"node":">=20.0.0"},"gitHead":"a8b20dcbd85ebc1ac8f1e71c8874444402582ea2","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.0.0_1781297092846_0.7620253295735164","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"specrails-desktop","version":"2.1.0","license":"MIT","_id":"specrails-desktop@2.1.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"c0ae155e7d47aa99a1f86f38276da5d163c50ff2","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.1.0.tgz","fileCount":455,"integrity":"sha512-1VkYjY63MpByIUHl9X5BE/2UoYprQG9FRkDlmENUDE/tN7R16OV5jRN9o7g0eoBhBeRg5WDn5nPhMXqDK12TJA==","signatures":[{"sig":"MEUCIDbBz2vjDoRDfQdhxcGqycevixpb271iXvLnJdQWgmYIAiEAhzeM9+5kK4nqFp9nJL2/AlcNWZGf/Qjx2uey5oR1O1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19721733},"engines":{"node":">=20.0.0"},"gitHead":"8a591703a0ada2f7adb32e771049f87698d8528a","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.1.0_1781336701494_0.7878757984083637","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"specrails-desktop","version":"2.2.0","license":"MIT","_id":"specrails-desktop@2.2.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"af786fb6b61ec9937edbab56199d556a963fe74c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.2.0.tgz","fileCount":455,"integrity":"sha512-UJ86Um7jOFqxv7Vk/5keotLCQ14U0KLzfazMEGdHsVTKRRcxXTKAaibvm2adUUxsjzJ/HY5230xI3+CNlsGrUg==","signatures":[{"sig":"MEUCIQC/AnLQpmcWUKl1VfNFuQP224dm38bQqjLFWLPbsG+oowIgOXfLGjUmw9vKxpLD9koK9scYOYIseeKDhmN2Xu4Y9+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19734479},"engines":{"node":">=20.0.0"},"gitHead":"a61f21835e95dc70612b939117bfcf8fe9ff4bd9","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.2.0_1781371612537_0.4416449937814273","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"specrails-desktop","version":"2.2.1","license":"MIT","_id":"specrails-desktop@2.2.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"02f987fe07cc87492c7453f35a408a195a9ba4b4","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.2.1.tgz","fileCount":455,"integrity":"sha512-vXBDnNYFwOmZ33qD1edq57vML1JXk0flsKsyCan3mPlNKNQnMvo80hPOnUmSXprXjnmSsbJx61igRnxt9KQe7A==","signatures":[{"sig":"MEUCIEhyB9KHfVE/kPQCXFORCsmYLQU0D+btBQ6Z02/90WZoAiEA2dNVDTeJjvultlpDvb9dALTa3vxeHBRi6MyT9FKHIp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19736608},"engines":{"node":">=20.0.0"},"gitHead":"7b383c5a2f6192e1e5748209a7f6cbc0b4c1a81b","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.2.1_1781383922087_0.22908062810996332","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"specrails-desktop","version":"2.3.0","license":"MIT","_id":"specrails-desktop@2.3.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"867b261d1a29935bc28456565e49b1adc8943645","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.3.0.tgz","fileCount":465,"integrity":"sha512-KCAQTUsnTE6jgB0TfgqsRHchx+xFCLVPmJrc3tX9jLAv30dwTcywkLN78vGiRyPNM+VlE9F4B89gWg9LAv1Psg==","signatures":[{"sig":"MEUCIQDceF8g6oodqQAYhDh9UtkNkJFnU4dFKJK5ZhJXP7OdQQIgPj1U/jckpmb9Hjz8bnwkAKsjxyRAu57jHzZvQj+DOFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19777869},"engines":{"node":">=20.0.0"},"gitHead":"d1c5f55c84dc242f4225b8597c19df2aa5957f3a","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.3.0_1781434790388_0.5273230557308375","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"specrails-desktop","version":"2.4.0","license":"MIT","_id":"specrails-desktop@2.4.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"28734c97400ed708be082c7c5d6a8dd61c889a22","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.4.0.tgz","fileCount":485,"integrity":"sha512-4/PYRTUFjb1YujaAzjOHQQmfbjpDNPdVs3vo2zZuK69o6EWGpCGPZBXQgXsj6oYmUsdOBlg6awDEMkdbedDtFw==","signatures":[{"sig":"MEUCIFzRBIQd0EY1J9Q3hP3gp7RqmnY/KYiEcnx8L2aX2sJHAiEAibydWwSEugD5TQS0jqyUh4bVBKBhJAjeBBAOtcsddNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20070319},"engines":{"node":">=20.0.0"},"gitHead":"e84d2f1f282c849dc81d51c021ad38ebb4faad9c","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.4.0_1781478744688_0.6257249133623051","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"specrails-desktop","version":"2.5.0","license":"MIT","_id":"specrails-desktop@2.5.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"f6cda3dbb17acc232687eb16e9164d9929e62c27","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.5.0.tgz","fileCount":487,"integrity":"sha512-ppPLSbusaYHkLSGHkp11eF11kl126TypVCLR4XSo+RisR0K7MMNpRPAy+MICJqnEes5LMl7oDBAdiEAagvQHoA==","signatures":[{"sig":"MEQCIHhlzpRWrESJfQGmaZn3o766JUJlac7mD0f6jBomhDOqAiBF2XNPk96+DCxU6poOI2ZTPP5jStRHbXLQ3EZhBLSMqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20115190},"engines":{"node":">=20.0.0"},"gitHead":"5c3888c9c2ab77e24a801eea0293108fd48f3c00","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@homebridge/ciao":"^1.3.9","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.5.0_1781558744615_0.7226575005600637","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"specrails-desktop","version":"2.6.0","license":"MIT","_id":"specrails-desktop@2.6.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"9c1a01509cb8724102c9d68243c1639c52379511","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.6.0.tgz","fileCount":489,"integrity":"sha512-tdx8gMYCfRNLcbYCvT4/CG3ULC4IV7EQm8bXXGOhdtug8oJWkN9HUHAowuc15D3OnoYCzU0VAkJb+4vXh5e36w==","signatures":[{"sig":"MEQCIAU4JyymKVTVPSUIJTMmAbhVG12kFzq7dMON39c9bbF0AiBjbj8CUKfZ/wVTG7Tondoc0dxUcJEZnsCBRhlsPNNqqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20255862},"engines":{"node":">=20.0.0"},"gitHead":"043bfce37775fa933ea59b695964f6d93ca48d28","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.6.0_1781630988064_0.9887231030689316","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"specrails-desktop","version":"2.7.0","license":"MIT","_id":"specrails-desktop@2.7.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d5da2251084f843dd655f504b897c396a9b1728c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.7.0.tgz","fileCount":495,"integrity":"sha512-zk2qv7ckDQfhpz+b3R5FrggEoW9ELgo0UFpaRYZ29nQ1+EmmeKUNbUcVWbTkug8jptL4GJi3upLp3BTVWcdrmA==","signatures":[{"sig":"MEUCIACI33tgQqAaGC2KCFQA+CnGP3zyBw7zI2WP3tH+0thgAiEAn7EL66PdqSXRPfOjeAdO1XZZrIMBAQjPXXzhBaJgeWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20361972},"engines":{"node":">=20.0.0"},"gitHead":"715b089a470356d2b5f5b8d28fae07ed14ad779a","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.7.0_1781721567698_0.06957317148323128","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"specrails-desktop","version":"2.8.0","license":"MIT","_id":"specrails-desktop@2.8.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"a8ed47488165c479368e76799aee6f9d9fcbb696","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.8.0.tgz","fileCount":496,"integrity":"sha512-0ptWEDDLLgFBzaw8U1kyfss+fOkV3yyiMxD1N8W2iItlVoWW0HF8YC6pKJ8LJg4WPEUDKWaTXo2keO4W7SYCFg==","signatures":[{"sig":"MEUCIHDOzysYbkkVPKbWq0iqDPCLXUyLxVixZ8YB98yFtH1SAiEA5uXH3OyfPo2sQNOKGqdYXwQFjspJ08978qlONoGAKUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20367223},"engines":{"node":">=20.0.0"},"gitHead":"af888122d30befc900150da4ae4c229d641627a0","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.8.0_1781769302553_0.8416277771739458","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"specrails-desktop","version":"2.9.0","license":"MIT","_id":"specrails-desktop@2.9.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"872a4661484b9c652b3d3c5cd1ee5968c6d9f853","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.9.0.tgz","fileCount":724,"integrity":"sha512-BBMqn/DgxKPQebhwMRcuKhZS/jZYPsifidsHsVIl8XFowSqDBiJbzvk7riXjrloMfBoFZssL26CIOd9nCJ+XsQ==","signatures":[{"sig":"MEUCIQCyt6B0lzP7VjftBNRcSIKnnZ5apXRWZ+2kki5QlhasawIgNTFoFXaCENwmQQaAqbArWoolYovy88gBwFoeqiXpAw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21629552},"engines":{"node":">=20.0.0"},"gitHead":"d0229d88d8adaeec2cb69ebc9f559b0e864351eb","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.9.0_1781859390773_0.8673833619283404","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"specrails-desktop","version":"2.9.1","license":"MIT","_id":"specrails-desktop@2.9.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"afd7267d3167cb8371e81e1e97ac5af184d3b7d9","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.9.1.tgz","fileCount":724,"integrity":"sha512-CnM5e8/Z3N46HwK0ol2c9dmUR307UCWP2AVzM+5FQT51AqhMEDQBTeXvR6VK2qF0N5b60+2VDo4HQgAuTkwawA==","signatures":[{"sig":"MEYCIQCldHgI311isMU2g/mJEk3FNmD3kw3J2N7gZfALnDLIGwIhAMhA06ZjjoVKG1l9ULIy7Nj2Ch4HJp636ERLx9iDT8Ac","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21629369},"engines":{"node":">=20.0.0"},"gitHead":"79d910f956bb328277415b1e83fede5cdeb49b24","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.9.1_1781864020908_0.7775759186496141","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"specrails-desktop","version":"2.10.0","license":"MIT","_id":"specrails-desktop@2.10.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"ac9506a869e5fa5d558a44b12f0b3ca4d525d229","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.10.0.tgz","fileCount":726,"integrity":"sha512-w4oxc/7WCf/tXehV7fQzmHHK3GL6/9dd2Q1iqvO7peqZ/JyoxOq+MKSwQM9QvWRpo6c2fv2y/83hX/SrDdSisw==","signatures":[{"sig":"MEQCIERkOw0JTpDbFI2T2oCfbZpQn6Ldtfs36y7VQ3btRYJUAiBGiXkJUZ+CcdJ9JQU1cxsG50ADBBh1wGmsSoU1cS3Twg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21658046},"engines":{"node":">=20.0.0"},"gitHead":"4269306db8126243f7504df2917abf41beb4b9d5","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.10.0_1781876870943_0.25184565802717573","host":"s3://npm-registry-packages-npm-production"}},"2.10.1":{"name":"specrails-desktop","version":"2.10.1","license":"MIT","_id":"specrails-desktop@2.10.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b37b2c74b655fea9320f48a74998fc72e0747f9d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.10.1.tgz","fileCount":726,"integrity":"sha512-aWiQkylAVxgrNqQ+EoNZcXuEIQeRkeoBNNvhYDNyQfmDly7V6rkBfcnk6+wGa6rBkbtNn5n4aBhHxLi2o2Cefg==","signatures":[{"sig":"MEYCIQCOW5Dcgho9Rqep0xknE+O4rBPnjHw6pMVE0UeCpknzyQIhAKK8Lnvd6vFoCjrjKGC6OzPq62RIBmZAVLGEMJe9WHJx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21661877},"engines":{"node":">=20.0.0"},"gitHead":"f97fa5ec452749b98b2962d49457c211026ad3de","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.10.1_1781887581215_0.5474011865576454","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"specrails-desktop","version":"2.11.0","license":"MIT","_id":"specrails-desktop@2.11.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"98d994044c2a551e1906989c314ee67e60285e59","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.0.tgz","fileCount":726,"integrity":"sha512-2G+aMXbhUjW8airC9efAF8uCLckjtfSTWq117MPeRqHbPB7VUW/QyGL31kP5Lw5F2A9aFyJQ40JscsSQ724ncw==","signatures":[{"sig":"MEUCIQDdxEDKjYTFmkMXcu87vwe/HISmSGP64bFxrFE3ZCdmUwIgNlIGjQwYz/hwRXZZuCiH5qfsVEF/iVzaJcKoxaJoC5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21662512},"engines":{"node":">=20.0.0"},"gitHead":"a832aef3d8926c99bc3fe0e0df1fd501680c40d4","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.0_1781902180396_0.7798810523546624","host":"s3://npm-registry-packages-npm-production"}},"2.11.1":{"name":"specrails-desktop","version":"2.11.1","license":"MIT","_id":"specrails-desktop@2.11.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"23f860c6b86e8004c438fe70cde4b1e0698141d5","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.1.tgz","fileCount":726,"integrity":"sha512-2/wbf8XyOQOAkMVO8oStRL3i2RL316bgnNt2IqzULZhNOot6LadEJajYR10OWINHo7GZG+uYDyPqlnCc3x8S2w==","signatures":[{"sig":"MEQCIDihHOCU9/NbcxTPZYg3QmqbOEpWjpE7xtlKZPVwWlHpAiAGsHqywtcuw04xctVAuIf8PufPve2uZu0yrCbyxiDT7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21666871},"engines":{"node":">=20.0.0"},"gitHead":"fb9c9492871fd491cd759e4c61f798285976e608","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.1_1781935605111_0.13229930268029677","host":"s3://npm-registry-packages-npm-production"}},"2.11.2":{"name":"specrails-desktop","version":"2.11.2","license":"MIT","_id":"specrails-desktop@2.11.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"9ac17bc11bb6ee25cb59c37a15fe76a0d16f838b","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.2.tgz","fileCount":726,"integrity":"sha512-Xr7PTVKpKSPx8ZqnVnEi+IA1TJWUSyvUbvicuZd0Oi+f3muaBNQZoTnOvMiGJ+QD5SQbaHtfUCkPxWFCChJX4A==","signatures":[{"sig":"MEYCIQDKLED/l2zmcA+lJ7KZQkYnAyHPzfzFaylBiSbHZRoiegIhAJlbuaY78AN/ySrP4Go0JUIqn9vY1KvnGxq/O3hw+wjC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21671385},"engines":{"node":">=20.0.0"},"gitHead":"96de8d60691a748d64fb43cee70c677ce8bcc663","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.2_1781939862081_0.31675090492351643","host":"s3://npm-registry-packages-npm-production"}},"2.11.3":{"name":"specrails-desktop","version":"2.11.3","license":"MIT","_id":"specrails-desktop@2.11.3","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"c8fef941b02b88568150e0f57b071441ebdf3048","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.3.tgz","fileCount":726,"integrity":"sha512-2QXK4eIOp3Rz4CLbf+zO7rO4xQEn5+PGzAgMjcppIWiMOYdaLoppZWcUhlI2JgG1ZHyBBWhNCSYwDfxF9LN3TA==","signatures":[{"sig":"MEUCIQCPeU/QX9bQqGVM/itJPEroKqVv9PMmiz6Po+gHvyCw3wIgIHDRFrk1S+1j8WOXO+ipq/naIaqOUBfGu6lgqg/d7I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21673536},"engines":{"node":">=20.0.0"},"gitHead":"1171fc93b8fc8e8c856232b30a0191f2fc72185f","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.3_1781952787421_0.033850052122016194","host":"s3://npm-registry-packages-npm-production"}},"2.11.4":{"name":"specrails-desktop","version":"2.11.4","license":"MIT","_id":"specrails-desktop@2.11.4","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b03fc06a7dba50796ca6b290a155b87106e72534","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.4.tgz","fileCount":727,"integrity":"sha512-gN5rVV4Xyi8gmRtphl5QgNC3ZlmZr6Dfvp2S6XD5InuBnbJGkKTzlLbkkpoOIjlI7HtYwgz5LCUL2NI4XnvvMQ==","signatures":[{"sig":"MEUCIGRcaTa9dvuDuw+UjYosva085Jw/UlqOZdHTXyQkmo8bAiEAi5gm5+RrCGhcELjO+6En/z4X+qFeyNAhi9khZUiEYtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21685048},"engines":{"node":">=20.0.0"},"gitHead":"b04be765eb1228a7503c93d2cfdcc27fbc49e814","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.4_1781970244910_0.4743303167893449","host":"s3://npm-registry-packages-npm-production"}},"2.11.5":{"name":"specrails-desktop","version":"2.11.5","license":"MIT","_id":"specrails-desktop@2.11.5","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b078c155aaca1520061c18ccd3ffbc8773f2d53d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.5.tgz","fileCount":727,"integrity":"sha512-2HKw5BLXtw/XN9SJ2OBkXesBlKsp4hLmQvDzZvaYzU1D48p0pxshOlM5JFDm5VvGZiiiZhedPkcU9CUGKx/8Jw==","signatures":[{"sig":"MEYCIQCqiF/pAzDA/bWiKETC5leUHU7kwwZ6feXrVyyw/qHrFwIhAK8ASnrsJ/HLYvwEm0irzC7OtVdit3xdZKWIa+wKykU3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21687751},"engines":{"node":">=20.0.0"},"gitHead":"3e87528c7622f04f6027d95a287549fde52cebd0","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.5_1781975660839_0.4969673309282099","host":"s3://npm-registry-packages-npm-production"}},"2.11.6":{"name":"specrails-desktop","version":"2.11.6","license":"MIT","_id":"specrails-desktop@2.11.6","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"4417f6b8cde164c8ec236bc37a2365d87c08438e","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.6.tgz","fileCount":728,"integrity":"sha512-osSpTHEeanT374Od29R5+9Ybf+amEMUXkV0xAmstyJVwBs2PrSBE5i6iyIKdWXw29+yOz3cNt/TwOMGr5w5wAA==","signatures":[{"sig":"MEQCIDG6eiT3LvyCGktrbfBi3bEA3gwerFOyWGcxCCDSqs9fAiBj0+LtrG/TlOV8ffEa2Fc21giiMTVmkIMzaX/um00S1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21720215},"engines":{"node":">=20.0.0"},"gitHead":"5ea8a21164f5a6374a48bb15a98ca54e678762b5","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.6_1781986145222_0.4650455746729143","host":"s3://npm-registry-packages-npm-production"}},"2.11.7":{"name":"specrails-desktop","version":"2.11.7","license":"MIT","_id":"specrails-desktop@2.11.7","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"8e76b303305640ac4fdc018be665c25689f72add","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.7.tgz","fileCount":728,"integrity":"sha512-MZywEq/bKrp2+kX8fTMikcjwnD+0esTHowBkfNxCs0GOvy4RRCFYZ980Ek/6jX1747lcvWCCntULQ6JE3sZ9Kg==","signatures":[{"sig":"MEQCIEsERxPV9Dp8ZLTnf6WoEPWEUL3eLWG5qu2s58/Cych3AiBTl+FZPk55rbc1kjlriEKycMkkiwaReMGPgi/8jW7/SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21730679},"engines":{"node":">=20.0.0"},"gitHead":"ac3541019eba5df74e0e0cf7961ead9075baaf45","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.7_1782024017172_0.5300933092344251","host":"s3://npm-registry-packages-npm-production"}},"2.11.8":{"name":"specrails-desktop","version":"2.11.8","license":"MIT","_id":"specrails-desktop@2.11.8","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"6dbb8300fa88f6aead129be27205173709cf6fd4","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.8.tgz","fileCount":729,"integrity":"sha512-FiJvJ4xEbr1q97AnZbG9oqZLIzwjCKruSGh1yv1jRQ4fGdEVH4nj//c0ra53EJ+xtF3QW7iOK0XbUbrFuCrplw==","signatures":[{"sig":"MEYCIQCj2p7+CqOXKMtvP6GKFakNEg5te8eMHzc9ffyfPpU9PQIhANCEqTOnNNh7DzOWiPsg9pFNQOXKOvs9XVtwvZRdO5UO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21827284},"engines":{"node":">=20.0.0"},"gitHead":"2ac5aac7822a3392bf5106836b9c8fe7e7ef0882","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.8_1782029020464_0.3559948908472639","host":"s3://npm-registry-packages-npm-production"}},"2.11.9":{"name":"specrails-desktop","version":"2.11.9","license":"MIT","_id":"specrails-desktop@2.11.9","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"e50881866ea3f5cc0155699a559504085be843ad","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.9.tgz","fileCount":729,"integrity":"sha512-z1/nhYmj3MDP4J6ryW0pWjN3sadeigzL5Od57tmeYu9kP5TuzPvFTKCrUN2hMeecIwsWccoOBb6fs11hfW8yYA==","signatures":[{"sig":"MEMCH0BKGYS/+lTPZdd39omG3bjtORWBjFV6V7x9dabzdYkCIBJjRTZsOC4A/pfBqJo1V6SA98K2cIdAAk9pTk8N06A5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21832912},"engines":{"node":">=20.0.0"},"gitHead":"dc8b2915ba4463f228689e1a91eb8fd7837ebeb6","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.9_1782034452152_0.5909175233153956","host":"s3://npm-registry-packages-npm-production"}},"2.11.10":{"name":"specrails-desktop","version":"2.11.10","license":"MIT","_id":"specrails-desktop@2.11.10","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"235474c536da6fd6b67999b12d6abfce9cb90ef9","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.11.10.tgz","fileCount":729,"integrity":"sha512-YOCulWabm5Xd1WQd0GMmPhLfSzsMFT9SwjoSp1PQcYcxMls+AUHIULjih6SVzvS8OOs8+gEyMd9cYLPyN0YWnw==","signatures":[{"sig":"MEQCIBm/2pwThHIl94YaquutQMltquXKZzzhEQFGWv8vCrF+AiBCNQyHxcJXP9rAgL5tdFV3kT8sacHZO4CkObmh8qv/iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.11.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21837563},"engines":{"node":">=20.0.0"},"gitHead":"e0549ef971a00921aa86d6c3fd5fa6f20c1b62a7","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.11.10_1782053082517_0.24591342837433428","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"specrails-desktop","version":"2.12.0","license":"MIT","_id":"specrails-desktop@2.12.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"c2ef78f2636ed814742610308c6bbba715821730","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.12.0.tgz","fileCount":730,"integrity":"sha512-6sa52B8byTx6QTCNeCIP3GtNDHkSBPNex+xHNg+tCZN7S5ABfNDNSMicR4I1XdZIUNKYUen/A3ob/aNtUaWb6w==","signatures":[{"sig":"MEYCIQCm/mzVVf4MXib7S5Vro3WFkLweeE/qOniXiEXv/Te5QgIhAOW7LRPTnVn3RSYAsuoM2uuGlNzjjZzBigi+W6vDp8yg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21865247},"engines":{"node":">=20.0.0"},"gitHead":"02ddfc50a12699f0da29b59bb92e30e301c7e711","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.12.0_1782221479629_0.6999365870560015","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"specrails-desktop","version":"2.13.0","license":"MIT","_id":"specrails-desktop@2.13.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b8738298759025802abcba073ff39d271ec58c6c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.13.0.tgz","fileCount":767,"integrity":"sha512-P+MdL9GGy0e8E0OSDrP1b1oV1hBGqQ5TbHcQERpuHF5MibNkOVnxgCNSu2hx8FzYPtdogMwZ097DZN0X+7V6mQ==","signatures":[{"sig":"MEQCIHIqnBXbVN0dQyFhgtF4hZPstVujSdNmhGFvjgGsXDZOAiB4UqoHs8tVHZxRVloYL6M56GT1BW4ZtHqA5kFeGUBUog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22386174},"engines":{"node":">=20.0.0"},"gitHead":"a1a9d08ca371e49dc14a2653b33d495ae108dd1a","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.13.0_1782465396578_0.503632104015391","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"specrails-desktop","version":"2.14.0","license":"MIT","_id":"specrails-desktop@2.14.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"48f78405d438631e4fa87e9cfe06e0fe813588aa","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.14.0.tgz","fileCount":768,"integrity":"sha512-Xqbmxoe30gaj8VEB9geEYrmzr7SHZLlAsGrcOE8hHBinN5sGWvJPmr6fezZyz0rojSA+PbjmD2wiBQIGpg7dEw==","signatures":[{"sig":"MEUCIQDzMI3cYSETLv7A28HVc5bUKSh2XROw4BlNiQBwjZtl4wIgYfloNcFnHBWyklqXzufcf+2cpGRtxWHyI5jGmdFj3Wk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22535407},"engines":{"node":">=20.0.0"},"gitHead":"c3fc5f147dcdf8a3f6180ec000c829ab63f4d0aa","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.14.0_1782505108013_0.5859196904784483","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"specrails-desktop","version":"2.15.0","license":"MIT","_id":"specrails-desktop@2.15.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"ac2eb9eba2447dd09b673a2f26bd78c79eb04567","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.15.0.tgz","fileCount":775,"integrity":"sha512-JseXwmran2fZAoHZTKAlQO759XLu/2M9IaUUz1XykGU6iNWnBYcJr0XSGlniGYggshXC/TJ+fo7K3P0jiIqikw==","signatures":[{"sig":"MEUCIQCR1s6dQwz7bzNIIFHJSaNB0ZG4c3qDK7weff4jLiYIkQIgZfWJUSQ71B32vpmbDycG4UQkGo8hTEP7SfO6swGErd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22653630},"engines":{"node":">=20.0.0"},"gitHead":"495bfa076a39831797929946690c4fb99aae401d","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.15.0_1782713486089_0.02944840720234998","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"specrails-desktop","version":"2.16.0","license":"MIT","_id":"specrails-desktop@2.16.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"0a0543df8bff24f0886bbf243bc862befad8cc39","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.16.0.tgz","fileCount":775,"integrity":"sha512-AagNLp2Q3OPxg2aYn8rwvs/919IWYIBX8XU0Hnrk79BQZOYrapyMUjZfiK9f8T6Xq+B2wSUyDCMwniZOLMG1tQ==","signatures":[{"sig":"MEYCIQDrIkeC+kjTGdzUBfJjfAiBtCq5J98VBFwzhDNG1ss1JwIhANNqEb79FRhrgp8SAiR/XBnm+OdrlarrnfINUWIsBeZJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22670400},"engines":{"node":">=20.0.0"},"gitHead":"8ca9ee29f0481c0f32bf7cfecb0d15b6a3d2491c","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.json","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.16.0_1782799472848_0.5059895749648067","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"specrails-desktop","version":"2.17.0","license":"MIT","_id":"specrails-desktop@2.17.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"a7bdde5d350e1447f954551b9150c2262dbe8a5e","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.17.0.tgz","fileCount":816,"integrity":"sha512-ijpvPEwNMAfAYwd6T955+7roPrgEO1oEtWRHw1dRRF2RvcXxhgCzH0d3mNM4G3ndDSgiWUD7YjPw8DrrHA0Hwg==","signatures":[{"sig":"MEUCIC6FjKtD6Cr7HW/WFhcJW6jj/2mo+A/9rdEcwGOwOA0DAiEAoXOW33hBnp+unzZMcn/QPWjwD6WY0HT9jErjH3txiic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22953734},"engines":{"node":">=20.0.0"},"gitHead":"da052ab6a6aa4c7bff5a03e7b6118f3f2168852e","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.17.0_1782853464020_0.07207747159975897","host":"s3://npm-registry-packages-npm-production"}},"2.18.0":{"name":"specrails-desktop","version":"2.18.0","license":"MIT","_id":"specrails-desktop@2.18.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"3654709896f2b16949e1c6c6da4e6cf7642b6114","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.18.0.tgz","fileCount":838,"integrity":"sha512-OU44v6rSfiX6Xqan5zPC2x5whsp2ifJpf50cBkGcdOWRsfLDUPDZ996xBLlailAgbxrwRq2ecY1KSL9eqllgKg==","signatures":[{"sig":"MEQCIHs+QRr4n+shO/reTYUCj34f6kzMEt3I941n8lZShLPEAiBViuBE3wCwkzWm5j9SAMyqqxfky47L1YFIdlG8ySSbCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23251032},"engines":{"node":">=20.0.0"},"gitHead":"e37096fe3cfca69300a9e866bea9bae0d9a9d1c3","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.18.0_1782905149290_0.35460453495664224","host":"s3://npm-registry-packages-npm-production"}},"2.18.1":{"name":"specrails-desktop","version":"2.18.1","license":"MIT","_id":"specrails-desktop@2.18.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"bec7bf118c5fb537e97706df1a51e8989d03c286","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.18.1.tgz","fileCount":838,"integrity":"sha512-+5aPHjUhzsrd8pGGZnqreDglsEdyQCUtxFk6VLPTqsn1nbeeDcQJyE5kV2JP4iewDfX+0FDLL6mzSjusDfxexw==","signatures":[{"sig":"MEUCIB3gBR/3zp0zNSJzCboB6Vd+OoJaspL+5uKg+TQrh8NEAiEA36U8GoUhHqeWEfyFuy5nCN0nw/gM6s3JMAoo/PY1mBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23251032},"engines":{"node":">=20.0.0"},"gitHead":"36cd29977863affaf9d0727c1bee2f873b7a4227","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.18.1_1782910398725_0.0974720843093213","host":"s3://npm-registry-packages-npm-production"}},"2.18.2":{"name":"specrails-desktop","version":"2.18.2","license":"MIT","_id":"specrails-desktop@2.18.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"cb4a7d23d45fcf5be8c0719b12b298dba13edc0a","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.18.2.tgz","fileCount":838,"integrity":"sha512-eQmz/DB2nZOgMfz7Bccr9ChBmWyToXQVSiPMDHlxI2uuFkfSdeeeAI9L6QijIKeUmTeQaj7cnPtqPW5oMnF8XA==","signatures":[{"sig":"MEQCIEsZxpoZMzZUM8MbgLRSBfEPvy8cSRdkUW0D9Vd0hnRHAiAc52PFjmVW5f1vHAtSAliDdeHcCv0E7NDbxrphqSe73w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.18.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23251943},"engines":{"node":">=20.0.0"},"gitHead":"a599a46ff153c7dae518c9f044d2fb4e3d71c703","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.18.2_1782912955471_0.931424545638678","host":"s3://npm-registry-packages-npm-production"}},"2.19.0":{"name":"specrails-desktop","version":"2.19.0","license":"MIT","_id":"specrails-desktop@2.19.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"86dbd571df32b8ae82f1856e41978dce0ece864d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.19.0.tgz","fileCount":843,"integrity":"sha512-OyTP/rFH5uL2zLBmDFeqc1jaXcrN+w34i93cseybKCy11DADwD4SbzH5Ubp2YBGXi58abZZlq82zEj7QQ+olfA==","signatures":[{"sig":"MEQCIBZ4qj4pS26vKVXGfRuilR3X9vfKtMDlsOKEijLC2GX9AiBzmFxFw8D5eplggt648dftnn43V/S4rUIPeogp2q2Y1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23442685},"engines":{"node":">=20.0.0"},"gitHead":"904ffee132363099a9e90a18054cdc079bcc2268","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.19.0_1782977265134_0.35636175523436786","host":"s3://npm-registry-packages-npm-production"}},"2.19.1":{"name":"specrails-desktop","version":"2.19.1","license":"MIT","_id":"specrails-desktop@2.19.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"0c3271b7088502ef877044afe3f32a52abc6be14","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.19.1.tgz","fileCount":843,"integrity":"sha512-552d/gqf/dtVeTdPFPb9/3nhHZZl6rtmmiEVbe7QB6qly711h11MajRanQL1tg5VfPr4Z6+Z1kpvmWdadTLRMQ==","signatures":[{"sig":"MEUCIQC5ACoQw6ywumOMO9ZVFsUIc9iwY3WcbaWAbjY1ujbrzwIgMS2nPIvCI1ACR3NMRA8EFgXWlOQ8diyq/KLB803HWlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23442685},"engines":{"node":">=20.0.0"},"gitHead":"5de3c6bd718784a437c8e30ac793451d2e36728c","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.19.1_1782978487762_0.9282266298704345","host":"s3://npm-registry-packages-npm-production"}},"2.20.0":{"name":"specrails-desktop","version":"2.20.0","license":"MIT","_id":"specrails-desktop@2.20.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b1e87693e213cd304fb5f5c4ece949be81da2aef","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.20.0.tgz","fileCount":848,"integrity":"sha512-+cuJS3JC8UwqV4MifhCG1lPnqNGGrr81ODaq5KhSjJHamyIf+cxhyiM1CG4yNAOhgbqG03j9XWWr04yoXmpSOQ==","signatures":[{"sig":"MEUCIQCCXhtbx2/lA8j30aDo1jgEM2tEBNTta5MmOM64CR6txAIgAOxJWZtsnokcL+WYlBaRXH+RdIHXaA57Ik0mTezvaZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23492899},"engines":{"node":">=20.0.0"},"gitHead":"daea3cdeb1a5aaa12d8eba29d115cbd05a7bda88","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.20.0_1782998563092_0.5500812884968274","host":"s3://npm-registry-packages-npm-production"}},"2.20.1":{"name":"specrails-desktop","version":"2.20.1","license":"MIT","_id":"specrails-desktop@2.20.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1ce40133fb2e740143a9d79c3e1a495abb4c3b24","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.20.1.tgz","fileCount":848,"integrity":"sha512-/C9pgrl2cwgSC4hgoBJxA0TvBv6MyzJma4PO1b0d3ny/yFM02QoP1D2Tx76aOo58cgQat+cx04XlS1YeStjxUQ==","signatures":[{"sig":"MEYCIQCk59kHew6WgtY0BSEfzz4weTra4fwi3eYuRR36ceqICwIhAPk/sffNk6LJ9lmykSuuug4nZbYJkLZEHhQbxu/zS3/v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23585867},"engines":{"node":">=20.0.0"},"gitHead":"2b7dcb603c107b0655dcb463ab9cbe3b2c62f932","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.20.1_1783055984223_0.7228316683293097","host":"s3://npm-registry-packages-npm-production"}},"2.21.0":{"name":"specrails-desktop","version":"2.21.0","license":"MIT","_id":"specrails-desktop@2.21.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b2ebdcc5318ca46ad4b2e69936c9fc2f67637a9c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.21.0.tgz","fileCount":853,"integrity":"sha512-YWoHlkSyrxmnpN5DY0NmlztPZ306jOIYXGyucKj9tmhywjtn82T34cNRKjS35ueQK54AJDw8XhYDpN12tSk7Dg==","signatures":[{"sig":"MEQCIF3j3yZW9Y8qs+40oPNiJwOU66yKl67OAMuIM/HOkP7wAiBmD3atLhcFBlrG3GlM2xPnk7N2HZvXN4orqiceMmgWPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23626163},"engines":{"node":">=20.0.0"},"gitHead":"566f99e73eb07d47a69ad298f2699484a59e35dd","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.21.0_1783071292025_0.5117135345052721","host":"s3://npm-registry-packages-npm-production"}},"2.22.0":{"name":"specrails-desktop","version":"2.22.0","license":"MIT","_id":"specrails-desktop@2.22.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d9bd6ef991ec0336581f4645d7ae2b065fe63f7a","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.22.0.tgz","fileCount":871,"integrity":"sha512-DhMwtrS4VC1VtT0Ik8nK5yRXmiH55Dvte1tCgsB9DhXWCkhzC2VGL3BHcHx35Pj1MiqESp7vclYTk7negI4dVA==","signatures":[{"sig":"MEUCIQCsh50IJrx5/r+TzVI6dlxTHsm3xSsdFDGBXsEf6pt6SwIgBNPX3QU8VCyEE2R2EP7V17AygPVUwMxBFvjlhOR6diI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24267920},"engines":{"node":">=20.0.0"},"gitHead":"dbc838b1307e5e9939370c4ab50f3c48daa97e6d","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.22.0_1783172563155_0.036209074972562094","host":"s3://npm-registry-packages-npm-production"}},"2.23.0":{"name":"specrails-desktop","version":"2.23.0","license":"MIT","_id":"specrails-desktop@2.23.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"2921fc33008a96a66997b26c99a668ab03a5966d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.23.0.tgz","fileCount":871,"integrity":"sha512-w170dUWP6QGk/iPx/gvCg9Gi9xMiEgnoKPDI7eXYFp6lbYo7DJ4uF0tciCwAhelfneN3eldwXRnHf0crQzCA7w==","signatures":[{"sig":"MEYCIQDojKa8oVU28auBPVqQkBK+34IX+2rXQhCtWOATm4YIXgIhANmpMJImk87fEWWS/ggWRnrzrCs0/Q+gCjCT8A7jiG5f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24290293},"engines":{"node":">=20.0.0"},"gitHead":"1e2daeb5945a51573d40dc3b33a311a32fd4e2b0","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.23.0_1783187730953_0.4894272317848287","host":"s3://npm-registry-packages-npm-production"}},"2.23.1":{"name":"specrails-desktop","version":"2.23.1","license":"MIT","_id":"specrails-desktop@2.23.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"db0c4d21f222689ca3baa92139c3efba001ef778","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.23.1.tgz","fileCount":871,"integrity":"sha512-kRJOkCTjtc+bIRUa+LX60ZcyGh8xyal9MzUZzah3/pDAHK6sCjTAUEu/8McfFKJaKMbZS4ES9fS8EeezvYvmfA==","signatures":[{"sig":"MEUCIQD2tk00Ovc7Z/hjF0aD3369fPJNrfz+GoGZAVhpAwxdmgIgYHHciaOVpPPIKW4ifMAgLv/Cj17LeB015nMfFHaOONw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.23.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24298237},"engines":{"node":">=20.0.0"},"gitHead":"6afc897acb6ca5f4aecbb81f862dc075a6eeb424","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.23.1_1783205409647_0.9296610820532469","host":"s3://npm-registry-packages-npm-production"}},"2.24.0":{"name":"specrails-desktop","version":"2.24.0","license":"MIT","_id":"specrails-desktop@2.24.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"ecafcc638a4b447f38e727357aad56d0c3d0cfee","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.24.0.tgz","fileCount":874,"integrity":"sha512-3uFkb4VFG2AHAyoK0FRoh0ni8qQg+akNfQQ0kwzPyeNlsOItPUxZJJyHdj5HfrHB6AWdHxSXKvd0hl5pUAp3bg==","signatures":[{"sig":"MEUCIQDJCmFYDnxZYKd+23C+fCs2ti6ruhXNUG5xw5T5AbDtdQIgEpSYnyyFb4L3Epz0i2fdjPyh2BfPIIpJh1JP8V0kckE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24342234},"engines":{"node":">=20.0.0"},"gitHead":"c75b588d9b74dada4a87da5b35413845e70611d5","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.24.0_1783248683142_0.8153514944139226","host":"s3://npm-registry-packages-npm-production"}},"2.24.1":{"name":"specrails-desktop","version":"2.24.1","license":"MIT","_id":"specrails-desktop@2.24.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"6603870aa5c62e624c2e1fcdec512eb3cd8a400c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.24.1.tgz","fileCount":874,"integrity":"sha512-JIHxUCJD/iA1be+hFpLLMM+dSNCA15KDoPiWAKwP7fEfm8YChTLX1+w69zd6RwBuVRY8p5svdevSkqefqQTm5Q==","signatures":[{"sig":"MEUCIQDQgCjCpkstuA1POihzbmg4OPhelF4SDvNuI31rsuC3ywIgNVatqQIvqe6z6MBYkL7B9FDjgo562KAgT4aQBA2qd14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24352677},"engines":{"node":">=20.0.0"},"gitHead":"28fb11b1bcdfaf502a1b56925a4cdf897d86bb67","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.24.1_1783289686132_0.20249456726228066","host":"s3://npm-registry-packages-npm-production"}},"2.24.2":{"name":"specrails-desktop","version":"2.24.2","license":"MIT","_id":"specrails-desktop@2.24.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"812daa4ef0e0708aa484bc213dd9b621899c0a2d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.24.2.tgz","fileCount":875,"integrity":"sha512-+kKbxgPRnb71w71G2Vf0mgttRDRGC2zm2gjVu3kJdTvhdl+++pywMpZ0QMOiJ6f44efbD9QbevFYF1q00mwXAg==","signatures":[{"sig":"MEUCIB8wenW2ata0hImsFZt25McdxqcZmxYNUNgg9ByiShQhAiEAqIz2rC/wcRJi8EwKlpWjrkiwEDTEOlXSRvsYHkLGNPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.24.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24380901},"engines":{"node":">=20.0.0"},"gitHead":"cdf7b9032cc7887cb25ee1e12209e42e009a0347","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.24.2_1783319921071_0.10888336333284676","host":"s3://npm-registry-packages-npm-production"}},"2.24.3":{"name":"specrails-desktop","version":"2.24.3","license":"MIT","_id":"specrails-desktop@2.24.3","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"095ffa3c23dc3b298f07ef218d887e891530ee40","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.24.3.tgz","fileCount":875,"integrity":"sha512-T9MhT0TDiyX4icpsFdoTinkhcJqmrAAfOvziXI0YvtBcnAe1gU+g4426MiDNHLg0n1sl2kSBcWKrTIHvgaTWbA==","signatures":[{"sig":"MEUCIQDSha+ttdA1tPRo4koEIgxpGmiLilgVY65GAxC5JcaupAIgRdUbWQ3249ze0RP98bROlLZdsKdmQrDcFZYIxWUCKb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.24.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24407167},"engines":{"node":">=20.0.0"},"gitHead":"c663570ba29afec691ed9409549c80ecd2b9076f","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.24.3_1783335266122_0.7644804945286505","host":"s3://npm-registry-packages-npm-production"}},"2.25.0":{"name":"specrails-desktop","version":"2.25.0","license":"MIT","_id":"specrails-desktop@2.25.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"f5ad17d199306db86211061de965c12679fae87b","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.25.0.tgz","fileCount":875,"integrity":"sha512-OTHM9XoqORSuN7xp0C7xz1A4EI64kwkp7pJvqR9AFZNbzsZfX/9dH0tJGaw+uqaqEoV6bWqBhN/ZqnVxqmmJ/Q==","signatures":[{"sig":"MEQCIHGgSjKiissy+f4U0BmnEg/TsTB0NNLcVnL/jYucdlTgAiA3h/6opzZSYYDZRjTfZbZsG5kXxQgnPyFj5+Vgs9ydUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24416499},"engines":{"node":">=20.0.0"},"gitHead":"076fd20a4fd44ef48ce414fc95477662f972fdd6","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.25.0_1783340929243_0.33072773282009393","host":"s3://npm-registry-packages-npm-production"}},"2.26.0":{"name":"specrails-desktop","version":"2.26.0","license":"MIT","_id":"specrails-desktop@2.26.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"00cc41c03f0b79361950f312331d4c2786fa538b","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.26.0.tgz","fileCount":876,"integrity":"sha512-/HKf9hX8m9D+qjU0r2aQEzkaRlwf8PG7oaz1HSvwwdN5OkU6kjgUljabcT0DcmYO59JPAJi3IfiSXMtP45AiRQ==","signatures":[{"sig":"MEUCIQD2ovCDtCffuYANmySczzgYJA9Pe/1pD9Od99zJDEiW9QIgdSsepyQ1NavbYQRcwOOcgpaRxI6eOLET7UE3GdrY20E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24469795},"engines":{"node":">=20.0.0"},"gitHead":"1ce3685c88cced48875032b9ec42a771b263e2f1","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.26.0_1783352143465_0.4745148118702416","host":"s3://npm-registry-packages-npm-production"}},"2.26.1":{"name":"specrails-desktop","version":"2.26.1","license":"MIT","_id":"specrails-desktop@2.26.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"7564949287813badd55936acdd1244860066cc99","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.26.1.tgz","fileCount":877,"integrity":"sha512-OaUmvRMhF8QWKZZWVQKXL0BHGszunBitKRsPcPbn4xwHMTqqHjJY0BeZv+gSAxygDoU5XSDCcBaxChhDXYzECA==","signatures":[{"sig":"MEYCIQD5XOH+hhXsIfGjT2s/Evf1XZy5NlLzIFN2w0f5MoQXkgIhAJRrhPxsbmiePzTAiNd8KfbberVy602mOvNvvvYcksjw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24510515},"engines":{"node":">=20.0.0"},"gitHead":"4ff8c1a95333019ec9b38415e56dbb55d3b184df","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.26.1_1783416543035_0.5919293197092326","host":"s3://npm-registry-packages-npm-production"}},"2.26.2":{"name":"specrails-desktop","version":"2.26.2","license":"MIT","_id":"specrails-desktop@2.26.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"c4f219db0a013f7324e9ca05469b2c9b29afc117","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.26.2.tgz","fileCount":878,"integrity":"sha512-M46D9mEGU0VzI/mYTJBT5SdlGipL4zToMnjMD+kEI30c3zefZo0T7mIuECUzdzGicE9Oaj5ap7C2Fm9ZEFsmUw==","signatures":[{"sig":"MEYCIQCISkf/8v6b/nqt7mdcfN3TB9yITA5Ou1Ve2JUQ88m9pQIhAMgDJsA6tXCRcSjn2+OkezyRgMSnLhbt3Gxd48wJPX+1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.26.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24529419},"engines":{"node":">=20.0.0"},"gitHead":"21b5a3ec9b0a6030e62c8b8cba35f14883caff7a","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.26.2_1783434181772_0.9293567638523108","host":"s3://npm-registry-packages-npm-production"}},"2.27.0":{"name":"specrails-desktop","version":"2.27.0","license":"MIT","_id":"specrails-desktop@2.27.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"2a7a437d7f6ac126b74e2e8a1fe69c4ae52a4012","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.27.0.tgz","fileCount":883,"integrity":"sha512-EE0OrymAE0/ZeFWC3nOQi+wiTNy0cCf6/O5MH6x/Hv60Twv2gWEtEn0qaPeaudLOOjUl1c01KgeR+PovqNuiiw==","signatures":[{"sig":"MEUCIQCNfmdZ1JSCvjqQnAgMJ4p/nEj8H3esPVw8l7fLx0CShwIgPPU4Y5EH/Fi+k1z3ABZM+HnFMzCJagX/Xh4//qQNmUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24592384},"engines":{"node":">=20.0.0"},"gitHead":"89c5283da7493646d18b774234b87ef596f221b6","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.27.0_1783489340659_0.09763563580396895","host":"s3://npm-registry-packages-npm-production"}},"2.28.0":{"name":"specrails-desktop","version":"2.28.0","license":"MIT","_id":"specrails-desktop@2.28.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"080e97ba8a8e9a0c526f1e7c9bf2c583c222a551","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.28.0.tgz","fileCount":887,"integrity":"sha512-oSDTBskx/K9CCcHoHp4qYDaLL+HA9vys556qVz3D63NOauT7r6i8i54on7DlsfLuF6nbCFH8cOlJYbkXZNCygA==","signatures":[{"sig":"MEYCIQCOZ9plE+vkPsquePKYyqzvfEonPiludZ7r2+3zVMmmuwIhAKACk13lTZVmecDVU7tF+K/+NQ0xTYw2MH17FAz5rZjn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24736518},"engines":{"node":">=20.0.0"},"gitHead":"91db771713034b49049d2094c23a857e813d0e14","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.28.0_1783526482547_0.06877028531426532","host":"s3://npm-registry-packages-npm-production"}},"2.28.1":{"name":"specrails-desktop","version":"2.28.1","license":"MIT","_id":"specrails-desktop@2.28.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"4d86609b952b8c3455d4ae9b021e0ea5319dc9e2","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.28.1.tgz","fileCount":887,"integrity":"sha512-Lf2RD2RURC8M+6zBG+rCbdHhnTp1NOWMveZ7WdveXWOZUPi8Lv0yk/Q6GXMYsdOBaw9LoMVEOZ4Qs1sHI9XPpg==","signatures":[{"sig":"MEQCICzri2BmvpNHP1FXHUXH9nZ+h6Vz0pPLvzLO93U/Q2EPAiAPiznSJACjcNDObAGc0PRwkL5BrML5+9aiHkYzMjXlwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24740808},"engines":{"node":">=20.0.0"},"gitHead":"79f5c8ccc068e7fc11cb11a4fb0350d142a9cf87","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.28.1_1783545238245_0.18105009069501898","host":"s3://npm-registry-packages-npm-production"}},"2.29.0":{"name":"specrails-desktop","version":"2.29.0","license":"MIT","_id":"specrails-desktop@2.29.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"f120f5f4ea6bb0b33af8f8378d3e069ed08d5ef8","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.29.0.tgz","fileCount":887,"integrity":"sha512-+BbxWvwBoIyTt1e4TOp9VJFgYXxPGO0c610PgQniOXElYuS83AW1qxR9L1KSj7mnaq4rr/PoclY4EZx4yy21fw==","signatures":[{"sig":"MEQCIH7gdaJoICaZAVdQ3nN1eK8XsT08coxtmk8YBT3u50K5AiB2OTENAfkBH9es/TP4LTcp0xj6H2kghd1JAKD31lenVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24759630},"engines":{"node":">=20.0.0"},"gitHead":"76d2c17cd709f3e0f0e7cd2548f54784bf270c50","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.29.0_1783592749750_0.285615545613068","host":"s3://npm-registry-packages-npm-production"}},"2.29.1":{"name":"specrails-desktop","version":"2.29.1","license":"MIT","_id":"specrails-desktop@2.29.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"160aa6202906bfdbbb57deb62928ce00d09498b0","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.29.1.tgz","fileCount":886,"integrity":"sha512-mOA0mbKavyabel4/MqutOxV+MDpH0CLOMgvAHs4Fq6DciZIqJk2ld/aGRQqs4zDrZiwMIGnW5vvwpYXoIQrvEA==","signatures":[{"sig":"MEYCIQC1Z/rx3gwbLWZOOlsz41h4n7D7me+fXkpcMO0/nmsmswIhANta3s85AOz7SC054NfHXD6avNGz1cAGBpqhc0gs93du","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.29.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24769387},"engines":{"node":">=20.0.0"},"gitHead":"57beabbf369382119ec72130928433de2bfef54e","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.16.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.1.1","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.0","esbuild":"^0.28.0","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.29.1_1783613998721_0.9737837731795775","host":"s3://npm-registry-packages-npm-production"}},"2.29.2":{"name":"specrails-desktop","version":"2.29.2","license":"MIT","_id":"specrails-desktop@2.29.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d1316c543f1a25bbd7592daae7cbef5278fd5868","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.29.2.tgz","fileCount":935,"integrity":"sha512-Y1U9kXrnzQ6UI8iUNJJJt1Nt/UOdNFkfojBLNOerd0lzp9DkD/dJm1L4iJUpWfhFs42i5+qVkNO7sKPAbz2QsA==","signatures":[{"sig":"MEQCIEZCK+0Ad3sMpubbdIdG53ugzagDSWC/VXr+j6ZY9MVkAiB2tLyItnbvhRKjSoeqm+Gynrxh9Nem5YCqX6sLsz/zrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.29.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25321288},"engines":{"node":">=20.0.0"},"gitHead":"b484c01b9f1b377cbecace6ad6333095d5884fe0","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.29.2_1783685106401_0.9338999396412777","host":"s3://npm-registry-packages-npm-production"}},"2.29.3":{"name":"specrails-desktop","version":"2.29.3","license":"MIT","_id":"specrails-desktop@2.29.3","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"bc221c9e6f4f94dba0a9f08233507bb8c5d03474","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.29.3.tgz","fileCount":936,"integrity":"sha512-/pv5FWXtQsceDjH7vO3v9WE0twVI4ztUn9mfNVeSCH39xxqHlDK1pL8r5+8T5Du28CvBCYK01WweoV3VOgheew==","signatures":[{"sig":"MEYCIQCt6WdxYdguaGidfNNRo5rebhfuGzX8ETYI6iVzbFpqlwIhAMEsMD6F6MCGJP22a0/E+quiLV6XXo/mZzrtpFxTw1TO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.29.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25575777},"engines":{"node":">=20.0.0"},"gitHead":"68972858db449ae9351acff3fa55fb6f89ce1b33","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.29.3_1783786060278_0.8278308231559082","host":"s3://npm-registry-packages-npm-production"}},"2.29.4":{"name":"specrails-desktop","version":"2.29.4","license":"MIT","_id":"specrails-desktop@2.29.4","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"a8e5ab068907ac00026f611082c1d53acc20af21","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.29.4.tgz","fileCount":936,"integrity":"sha512-br8fySsgIJVMRpWKMTCOm7quVdpHX32kYPhAdslyKIIlnId50eRFlGvIP1UqpaF7Rw5ptaK+7583o7HxGOL6Ow==","signatures":[{"sig":"MEQCID+Vv4iSDBY92EDJRnr733gikJqaWWUEWMxaz89w+s+9AiAFlXdvFZPfaBovhE6ilqEJWqi59gLwo52sm1KXfd0pkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.29.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25619693},"engines":{"node":">=20.0.0"},"gitHead":"7c2aa53d06d3e02e586a592ae6abe9beff0ed23f","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.29.4_1783922302095_0.780925779749944","host":"s3://npm-registry-packages-npm-production"}},"2.29.5":{"name":"specrails-desktop","version":"2.29.5","license":"MIT","_id":"specrails-desktop@2.29.5","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"8e9c7e2586d33681c5603f40e3339715ec4a2a26","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.29.5.tgz","fileCount":936,"integrity":"sha512-ka9Q7ro1mlQSl6SsUkyTOXl5UXbuAmcm66FXflEE5lZQfcCIhwxjHhTmSKoPgKcO/hKPWr8qNgLwac7lfvPlig==","signatures":[{"sig":"MEUCIETKEX9W2jTzB2+JWrXbSu5eZttwSnXj4TFIXxtFmtnbAiEAvg/gAL/J6nYSI25PY0ULNyMzNg/DH//JZKCmAJ9PPN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.29.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25652326},"engines":{"node":">=20.0.0"},"gitHead":"250d4a37693b67aa2c685b1014844987052f4d6d","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.29.5_1784022543463_0.37246379903821736","host":"s3://npm-registry-packages-npm-production"}},"2.30.0":{"name":"specrails-desktop","version":"2.30.0","license":"MIT","_id":"specrails-desktop@2.30.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"31118e186c87b13d8ac0fa6b15ab8fe1a00de469","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.30.0.tgz","fileCount":956,"integrity":"sha512-JpWvYYANoUN43nYAbHNn56FThYM0m4l++g8xzszG5lOHCE3D8jqwzmvqq/3fLOKRGpYa0aWndeOzfCuIdPm2RA==","signatures":[{"sig":"MEUCIFO+is5PNS/nOL+SOjqmQZiS5Qc9uLJ82YwNBqJG9dfWAiEA2tMSKM/iiL+h4vRPDwwBbl3/jm0QI5a8wOPMkwyLBWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25886222},"engines":{"node":">=20.0.0"},"gitHead":"2a1cd30e0de936e57f504e21dd9e6b6de2f48017","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.30.0_1784283685619_0.6989640773529238","host":"s3://npm-registry-packages-npm-production"}},"2.30.1":{"name":"specrails-desktop","version":"2.30.1","license":"MIT","_id":"specrails-desktop@2.30.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"4a87aaecd6a6d45d791b887c4213fe06b9b2fc3c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.30.1.tgz","fileCount":956,"integrity":"sha512-AsUdlF7nCxR/4OoC0it16gUwkl8l9LS2X6B+Ki+LuCKOg9vGJlYRhp1zni4FZyRAe0gb+xLsLVeO6JeIztTJuA==","signatures":[{"sig":"MEUCIFe2hR7DsLd0S63sVv6EPPEqB2uXH3osWK51An4Xuf/VAiEA9nuXDo4q94qkTetHPABqndzwvBuBdFSwMOv2yVTd+RM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.30.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25888385},"engines":{"node":">=20.0.0"},"gitHead":"f6f4c8c0962e49bb9301c472c28476e7b1139fb3","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.30.1_1784412525610_0.0882605387517883","host":"s3://npm-registry-packages-npm-production"}},"2.30.2":{"name":"specrails-desktop","version":"2.30.2","license":"MIT","_id":"specrails-desktop@2.30.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1c7569c9d3fd039cd4351c0a04529ebd89c5d6b1","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.30.2.tgz","fileCount":956,"integrity":"sha512-YD1ElswRN9qCIx7Gm0XqYzPCUQb/2q7Cpes7juwMKUXcxXgf/WkHFx0yLcr7oGu3s1juT2GQEocvuoynoUQ3wg==","signatures":[{"sig":"MEYCIQDPs4L37EfI2x2HjjUDjTjIt827WqioCGRxktldQItMPAIhAMEIu5SKJVnqacFz1k4tELGKZzmcmtFOfO4Be5MgAycw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.30.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25889891},"engines":{"node":">=20.0.0"},"gitHead":"87efd879b9ce066c453f9f762b6fa8e149b52bcd","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.30.2_1784455242763_0.4148968038214762","host":"s3://npm-registry-packages-npm-production"}},"2.30.3":{"name":"specrails-desktop","version":"2.30.3","license":"MIT","_id":"specrails-desktop@2.30.3","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"501b65a3b32763ea5c74fbe4431d72926f5b29fc","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.30.3.tgz","fileCount":956,"integrity":"sha512-eIv4QTaWFSpmyOteFxLUlvjQD8N7KgMOI9hSMdkQWF76XbSRr4XdU7+ZL9vJdUa+3McsK57LcD3A1Y3S2BNngw==","signatures":[{"sig":"MEYCIQCQYS27atHTYGk5vEjBub74osjTgUAyaq6QBjeiAupXNgIhANWHOIyCqAA1jf5w89IPWOjHgjjoyAE+WLIwhk0XJKHV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.30.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25891298},"engines":{"node":">=20.0.0"},"gitHead":"a1fc150f3829e6d220c2a30f832114e6cb840690","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.30.3_1784478423555_0.09033888537178703","host":"s3://npm-registry-packages-npm-production"}},"2.31.0":{"name":"specrails-desktop","version":"2.31.0","license":"MIT","_id":"specrails-desktop@2.31.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"a3ebfe9ce5db379aeca0406ec0d9216c75a36778","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.31.0.tgz","fileCount":961,"integrity":"sha512-4lC6c3N4+3gsowctyhCIez5hCzVsgXFHUGNLP3gffuScL6dXC4ttx28bR6hLMyEvvMG0FalEs2RrwpVvZyQAZw==","signatures":[{"sig":"MEYCIQCwX/lPOL/HZIGYRdq6ckC0GpQc3AffECsxNoQ/CskIEQIhAJRMqq4rkNtm69fCyUn17GNjjYE6jzLREkNY/oxQSxVY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26098286},"engines":{"node":">=20.19.0"},"gitHead":"4b4c5d1518453a31a93074f306ba631d88368f5d","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.31.0_1784533244562_0.06242884990813247","host":"s3://npm-registry-packages-npm-production"}},"2.31.1":{"name":"specrails-desktop","version":"2.31.1","license":"MIT","_id":"specrails-desktop@2.31.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"578bd6fbec174943b63a89062e54e32144bd67dd","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.31.1.tgz","fileCount":961,"integrity":"sha512-ofcgGc6h/A2UmkPpzIYTqSoaDUeC/4CH4HsaeBtwdmgPG6KBbLuyQpl3lVyBvOPai/j429FMsOhC1RrqqxFU+A==","signatures":[{"sig":"MEYCIQCdD03F2qaY93C812F0H96psBu5g9zeI3CySKcfE0GFNwIhANrt7gbYhXWQQWuGy0M6wyrrFj/cT3BLGt/56cksO7Ti","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.31.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26098286},"engines":{"node":">=20.19.0"},"gitHead":"3a3dccf8eb5ec3cab4ffedb554c58107317d7369","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.31.1_1784539431418_0.78815911937267","host":"s3://npm-registry-packages-npm-production"}},"2.31.2":{"name":"specrails-desktop","version":"2.31.2","license":"MIT","_id":"specrails-desktop@2.31.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"e739837d781d68b9fe1147e459349f942cd163d7","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.31.2.tgz","fileCount":961,"integrity":"sha512-gf+Ah+oxOVcgWwoQeOQgk3EfMzuY3blcu2DUkaMmSfApT2yfHqzBcrxBJ6Tfd3K1H5AjTKTN3rXcrF4WUu+21g==","signatures":[{"sig":"MEUCIGf4/6r6CkAPwTGgvWCZEL3CkgloIIWge7yhd/OvYsoqAiEAxYczbqK4LlDVi/Vt4505YDlKvjdHUi3tnz1ZXJ5o3jM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.31.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26098570},"engines":{"node":">=20.19.0"},"gitHead":"72c5aa0b2e300a1bc548b95eb7ce949d9e3b1fb9","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.31.2_1784543942680_0.5835566811889772","host":"s3://npm-registry-packages-npm-production"}},"2.32.0":{"name":"specrails-desktop","version":"2.32.0","license":"MIT","_id":"specrails-desktop@2.32.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1fa556df2ff96489e8eb2ea84668d1244e2d9870","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.32.0.tgz","fileCount":962,"integrity":"sha512-f0JAxQgQ0sx7q2uuhdkXAesZDfq0FKgil/sQB6RuZROnT5+qFMfJeYEYmNz44mbjvMJSUrShe7F7gEdHJMp/+A==","signatures":[{"sig":"MEUCIFQnMipSR4MzUTVZD+zTCBkIaNfYg8WHY9mZkza/xI22AiEAipRbb42a5bgBOPSZKQJYzLU44P7xTzA+xkYfLk5sb74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26108980},"engines":{"node":">=20.19.0"},"gitHead":"4448e118bd4068efd6ad56d0711ad7bdf2076ac1","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.32.0_1784640767599_0.875435343738179","host":"s3://npm-registry-packages-npm-production"}},"2.33.0":{"name":"specrails-desktop","version":"2.33.0","license":"MIT","_id":"specrails-desktop@2.33.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"ef592687c0198a0cfe0f083878002a931c2e8c96","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.33.0.tgz","fileCount":964,"integrity":"sha512-jHkjJqXC1M8lsl1EvZJl9LucHmkOko0gQnBTCuJ+moJZGR+3iTduje8cJi8dXzuOvOEMtS5Kntl2dz/RBgPbmw==","signatures":[{"sig":"MEUCIFB9nCDB3/A0B9hXTv/i1cf6MH9aEcjRsBFDtzBZDCcBAiEAh2EiipaBlFhTS9Tq2VDkN1CE0X9TJj2wZ7OMXR04XAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26113799},"engines":{"node":">=20.19.0"},"gitHead":"667b1d24c5de453f1e3e98802b8113285757c82e","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.33.0_1784671761069_0.004308246015205519","host":"s3://npm-registry-packages-npm-production"}},"2.34.0":{"name":"specrails-desktop","version":"2.34.0","license":"MIT","_id":"specrails-desktop@2.34.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"b69fc7623380f870b555218c3bc5161fdc481df1","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.34.0.tgz","fileCount":968,"integrity":"sha512-n0MjeGyNYbuMkU8V+ZAN6eCn9WWxijByIcv+q0sPVtFwoAMbtecohdfXdLvaXCOX5b/qS73WFJydnXQa4WkJmQ==","signatures":[{"sig":"MEQCIAMc0LS5M4QgUA311rIv99MAh+ihHvx+1upM6gyjrvauAiAUOl0KYAXUx3Uhh8WzAC0ZjSFnP+Y7TkNwQXKMPoRyJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26143173},"engines":{"node":">=20.19.0"},"gitHead":"dcf4d5a638c098468ed5a6df1bb6a040b7ac0723","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.34.0_1784748447763_0.21418774931434115","host":"s3://npm-registry-packages-npm-production"}},"2.34.1":{"name":"specrails-desktop","version":"2.34.1","license":"MIT","_id":"specrails-desktop@2.34.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"7fd2845ccab63ad431156736c1777fa8fa5228d2","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.34.1.tgz","fileCount":968,"integrity":"sha512-7XIU4nQovmBrcFbrpwPZuRq5p2PIiU/tBKhlmLglLpAolTkZvsiLkGosBHWyqMmbduRjU7hcJM7WfHuddeCX3Q==","signatures":[{"sig":"MEYCIQDhaXF1vQtdUn+XEb3yGmZNIo76nAHBwEO4CUaLHobqLwIhAJNGQ7nLakPjaosMn6281nVZK94uLQjE5tnx/7Upds1q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.34.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26152217},"engines":{"node":">=20.19.0"},"gitHead":"faa11fc03c22467da83db69b11dbe21aebd75c48","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.34.1_1785100187076_0.8257528443231432","host":"s3://npm-registry-packages-npm-production"}},"2.35.0":{"name":"specrails-desktop","version":"2.35.0","license":"MIT","_id":"specrails-desktop@2.35.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"358e329a0208436539ca6e795d7fe298a2ee3533","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.35.0.tgz","fileCount":991,"integrity":"sha512-TXJQKKFdzCIRXoEe+at4VLAFkPYo027pIDkoSgrWYTJaCZIyEEri0kHAi/Szyifstesgd7xWsQgeTLYGwQRrxw==","signatures":[{"sig":"MEQCIA8eVDKzQVBspJGp8uuUTkxIoIvcKBF4ic3DOziKwW74AiAVqcbNUnPwxdwpGxVtXqjjDENigiiHzEJCuv/raCvckQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26401413},"engines":{"node":">=20.19.0"},"gitHead":"814a30db518828033455a3f22160969495e0615c","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.35.0_1785264472903_0.6525732429112925","host":"s3://npm-registry-packages-npm-production"}},"2.36.0":{"name":"specrails-desktop","version":"2.36.0","license":"MIT","_id":"specrails-desktop@2.36.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"5b1880014b0a95af7c5312cab9e209e25a173328","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.36.0.tgz","fileCount":992,"integrity":"sha512-V5uPX4ixf3XPS0DWZppNe3YSpk4a2xsSJnAXSAGpqj9NfQ+k+fGKG9mt8lFA66+2g4z5grH6r+qEM8N0Zk7yRQ==","signatures":[{"sig":"MEYCIQDKaoyJVJdBHku70GXUMHxq5QHwYfuXQyHVvgRW6rugGgIhALVReeksnAVE66Ttihmbdd2rwREz41T4/Bec3nsHw0Uq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26449731},"engines":{"node":">=20.19.0"},"gitHead":"3366128d5f943921c7a946170daaa2cbf1254431","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:coverage && cd client && npm run test:coverage","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && cd client && npm run build && cd .. && npm run build:cli","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.8.2","description":"<div align=\"center\">","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.36.0_1785518168490_0.19359277694478982","host":"s3://npm-registry-packages-npm-production"}},"2.42.1":{"name":"specrails-desktop","version":"2.42.1","license":"MIT","_id":"specrails-desktop@2.42.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"86b7e1307c909025868b074d86fa6a4303d50cf1","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.42.1.tgz","fileCount":1061,"integrity":"sha512-mdzns4XGQs9hYsrqpDqcaigCebRRxO7BQYEpCFoSq+AQqwvKRrKLniUdN8ZV+Yi1QXO/iOBu96tvcVJ/fO1BDw==","signatures":[{"sig":"MEUCIQC+adZTyONuSQESXyZ87kiI3WjjVI5H0zh2cTpzDbnjdQIgRmH8I/FvT56o3q3Imo19/2hT4s5Xaa+BsiRJroY5dsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.42.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28178469},"_from":"file:artifacts/npm/specrails-desktop-2.42.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.42.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-mdzns4XGQs9hYsrqpDqcaigCebRRxO7BQYEpCFoSq+AQqwvKRrKLniUdN8ZV+Yi1QXO/iOBu96tvcVJ/fO1BDw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.42.1_1788771734975_0.8677477324896241","host":"s3://npm-registry-packages-npm-production"}},"2.42.2":{"name":"specrails-desktop","version":"2.42.2","license":"MIT","_id":"specrails-desktop@2.42.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"90273a977b51ea2501744f4f5f9ad2cce9505df0","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.42.2.tgz","fileCount":1061,"integrity":"sha512-hnYfKAlPG1lusNV0lC7N1t0jIrDgVjSasBjIS2QdG7cQmxbJhpBSxP6yWg/A1TkZXLgryGpDJE/yy1C6NPbFDA==","signatures":[{"sig":"MEYCIQCRWXEvDmt57GzQU7XJ1pnYKU3dXuEmZ1MM/jwec1CJ5wIhAKCqdWqMuVUqyUDgKYhVgn2GjolmyWWtmXkVoOs5K/MP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.42.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28180119},"_from":"file:artifacts/npm/specrails-desktop-2.42.2.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.42.2.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-hnYfKAlPG1lusNV0lC7N1t0jIrDgVjSasBjIS2QdG7cQmxbJhpBSxP6yWg/A1TkZXLgryGpDJE/yy1C6NPbFDA==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.42.2_1788802973826_0.041886349163136716","host":"s3://npm-registry-packages-npm-production"}},"2.43.0":{"name":"specrails-desktop","version":"2.43.0","license":"MIT","_id":"specrails-desktop@2.43.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"69459ea15c387c9450861b6c1b1bc6f5b3a27c1d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.43.0.tgz","fileCount":1061,"integrity":"sha512-lxF0y1ZVl34mPk7TMGrWcG3Zk8Skcg+tilkDXTpwsg+6YdfRauHYrflcSBpAiWlESkc8uqpVArpHFkystNYiwA==","signatures":[{"sig":"MEQCIH2UmUBuR97tXev+jQRq15Cue5gmR2DSAMA0+Q7UgJsSAiAiV+3UkUGtYqmSnBBM3zxQ09gJUxmmhs+wb8Iq7iKwWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28181068},"_from":"file:artifacts/npm/specrails-desktop-2.43.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.43.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-lxF0y1ZVl34mPk7TMGrWcG3Zk8Skcg+tilkDXTpwsg+6YdfRauHYrflcSBpAiWlESkc8uqpVArpHFkystNYiwA==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.43.0_1788813264324_0.7732707599479802","host":"s3://npm-registry-packages-npm-production"}},"2.43.1":{"name":"specrails-desktop","version":"2.43.1","license":"MIT","_id":"specrails-desktop@2.43.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"61eb960dbcbc03e55af1d9c148581c389f389126","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.43.1.tgz","fileCount":1061,"integrity":"sha512-Z22wn37Rnm8FbO/nafI28lfTbFm6UGlF6bIJriPuqfpxjcAJKG0nYBIycqCp6FLYXELPoyEZ0Jvdi0906jntKQ==","signatures":[{"sig":"MEYCIQCJqpWjaDKi/9NgdB4wJ6SJkUdeLP4SijWVeKQgxxgwtAIhANRqFRTKq8SwomiUdlBbOskPizFndvWdJsslFLBs9eQf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.43.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28185947},"_from":"file:artifacts/npm/specrails-desktop-2.43.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.43.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-Z22wn37Rnm8FbO/nafI28lfTbFm6UGlF6bIJriPuqfpxjcAJKG0nYBIycqCp6FLYXELPoyEZ0Jvdi0906jntKQ==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.43.1_1788858851385_0.6905464697780523","host":"s3://npm-registry-packages-npm-production"}},"2.43.2":{"name":"specrails-desktop","version":"2.43.2","license":"MIT","_id":"specrails-desktop@2.43.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"0a607f1a64cc97d4715868b73ec627962b6136cc","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.43.2.tgz","fileCount":1061,"integrity":"sha512-x7frZMcXSmsdcXxw37Bq3j7SZ4BL6P9nDQw3YZpik8XDBj4MZl76OYB6/R+LOwdfWcwV13vvqeS/uxlQhyY2Lw==","signatures":[{"sig":"MEQCIHjGXslaAAg6OvTM6ZkdBDUNejkdeXVJJaLuKSUQH7CoAiBsfZBAPk9ylTF4c85qTlUVAsKoNJS4LAa5gpoMzmCb+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.43.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28190108},"_from":"file:artifacts/npm/specrails-desktop-2.43.2.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.43.2.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-x7frZMcXSmsdcXxw37Bq3j7SZ4BL6P9nDQw3YZpik8XDBj4MZl76OYB6/R+LOwdfWcwV13vvqeS/uxlQhyY2Lw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.43.2_1788904175243_0.7050576686822743","host":"s3://npm-registry-packages-npm-production"}},"2.44.0":{"name":"specrails-desktop","version":"2.44.0","license":"MIT","_id":"specrails-desktop@2.44.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"3294aad67579b7f0fae2d3244ace81e0d337107b","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.44.0.tgz","fileCount":1064,"integrity":"sha512-U0p/K8JOLqfoqRMBCJramXb7A6/pPCxtL+ro6koVJVthwYLzEgxQZNipW4OaieLaLrDQDYwKmNPD984Ao6FfvQ==","signatures":[{"sig":"MEQCICAVZM/7S6/24Q1c7WU25rRsHt7A7uzPQqsILflWLoztAiAbEfHFNzAba/NinxP0K0im2bAo6w3zyxt53n7oy+yfeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.44.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28227319},"_from":"file:artifacts/npm/specrails-desktop-2.44.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.44.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-U0p/K8JOLqfoqRMBCJramXb7A6/pPCxtL+ro6koVJVthwYLzEgxQZNipW4OaieLaLrDQDYwKmNPD984Ao6FfvQ==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.44.0_1788971655983_0.756122876641393","host":"s3://npm-registry-packages-npm-production"}},"2.44.1":{"name":"specrails-desktop","version":"2.44.1","license":"MIT","_id":"specrails-desktop@2.44.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"ccd2a7b753c7373bde1b8c1e18e394df99dd25c5","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.44.1.tgz","fileCount":1064,"integrity":"sha512-c441YTuhW2CDP7er0Chy8Ctd0bXMZm0LCIa9kXCQI7mM7WLns8a08k4wLw9rT75XMGAlMYr4J0yXaCjO9dtPkQ==","signatures":[{"sig":"MEUCIDpqCSh9cMtjXLwC86MvJ7/uW1qaN+SiveJOcVGdGCTaAiEAocOr8GAQjHg6snE+Zk7LEOeVpDuafkCiIatj2NiBEJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.44.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28226838},"_from":"file:artifacts/npm/specrails-desktop-2.44.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.44.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-c441YTuhW2CDP7er0Chy8Ctd0bXMZm0LCIa9kXCQI7mM7WLns8a08k4wLw9rT75XMGAlMYr4J0yXaCjO9dtPkQ==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.44.1_1789021078110_0.792931996595923","host":"s3://npm-registry-packages-npm-production"}},"2.44.2":{"name":"specrails-desktop","version":"2.44.2","license":"MIT","_id":"specrails-desktop@2.44.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d7bf5fc4dd2b88238984f89120d96ee385b9df0c","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.44.2.tgz","fileCount":1065,"integrity":"sha512-PezQje380OY2y/wFbto2Gu6BCR084mmDzMzx5gYFNbsjBRkN9jDShdFnMuFNpIpqyO1RdPTcLhP46EfJgJhFqw==","signatures":[{"sig":"MEQCIA6Xqaf03vs6/iAOKrLX0uvFJlYLCZvWliy8d1n4QSStAiAFAYv8Eat4tMgRQGNha8zN04lqkxPvnFxJL+glcoBgDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.44.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28237741},"_from":"file:artifacts/npm/specrails-desktop-2.44.2.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.44.2.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-PezQje380OY2y/wFbto2Gu6BCR084mmDzMzx5gYFNbsjBRkN9jDShdFnMuFNpIpqyO1RdPTcLhP46EfJgJhFqw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.44.2_1789109911710_0.04088835183854189","host":"s3://npm-registry-packages-npm-production"}},"2.45.0":{"name":"specrails-desktop","version":"2.45.0","license":"MIT","_id":"specrails-desktop@2.45.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"6fa50f5bfb1b8c5dd5b194e7aaf8c1be664d2e10","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.45.0.tgz","fileCount":1087,"integrity":"sha512-J2LjAgbASkxObLKaQmjTKYGamtJ1mG4juhBZVEOEcbD48LlNOB7rDJEbgF1i8vDAJELNjxaNYgxNY/rJHiGvXA==","signatures":[{"sig":"MEYCIQCCqaZ1bdBateChflZ9pfgjvgmDUkvZoOcMovXJaSEgqgIhAND1hGgANJHFeyTsP9Wq3PxyHHbyNVLe7GCr++o+4p1f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.45.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28444004},"_from":"file:artifacts/npm/specrails-desktop-2.45.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.45.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-J2LjAgbASkxObLKaQmjTKYGamtJ1mG4juhBZVEOEcbD48LlNOB7rDJEbgF1i8vDAJELNjxaNYgxNY/rJHiGvXA==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.45.0_1789212972727_0.9551349949557713","host":"s3://npm-registry-packages-npm-production"}},"2.46.0":{"name":"specrails-desktop","version":"2.46.0","license":"MIT","_id":"specrails-desktop@2.46.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"ea66501f7b4c48bacc4151b86c3ffb3c823b1df7","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.46.0.tgz","fileCount":1092,"integrity":"sha512-yOlhPjyvqfyE09Gev+eYF/V2G3eiPiFCjb4Zpv9X53G5BXHhskL5572j7PnlFR8Z7HTH/cU0MKcvKmcEr2LQIg==","signatures":[{"sig":"MEQCIA5B5LCPUg0rgNFVZtShInkAdyFIcm/E6EYM4Y4fySK2AiA4z2rBuPvs7LiTBeHud+S6ZYOy4sf7S0JcTReK9SfXjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.46.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28493961},"_from":"file:artifacts/npm/specrails-desktop-2.46.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.46.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-yOlhPjyvqfyE09Gev+eYF/V2G3eiPiFCjb4Zpv9X53G5BXHhskL5572j7PnlFR8Z7HTH/cU0MKcvKmcEr2LQIg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.46.0_1789300541935_0.00885677254734274","host":"s3://npm-registry-packages-npm-production"}},"2.47.0":{"name":"specrails-desktop","version":"2.47.0","license":"MIT","_id":"specrails-desktop@2.47.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d388acd6b178b60041ecceb171467d0f828ca183","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.47.0.tgz","fileCount":1103,"integrity":"sha512-ZEyxHJvsOD+aWbJAOHGdMbYctSzmq1B/d9+vpFK2TvqbumDKlhGgSdA0UKZiL+39UZt8/fyGsu8o0SSXz1gXhQ==","signatures":[{"sig":"MEQCIGmGYQqhBx8466z/eL0UU/+2F2RdkvGkaVYVtv+7DjH0AiAbvIbDEtKQqd7sp4Lg5WPj2GVIsLbz3MkWxJV/Z+dIDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.47.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28680177},"_from":"file:artifacts/npm/specrails-desktop-2.47.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.47.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-ZEyxHJvsOD+aWbJAOHGdMbYctSzmq1B/d9+vpFK2TvqbumDKlhGgSdA0UKZiL+39UZt8/fyGsu8o0SSXz1gXhQ==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.47.0_1789311527020_0.4026529709602267","host":"s3://npm-registry-packages-npm-production"}},"2.48.0":{"name":"specrails-desktop","version":"2.48.0","license":"MIT","_id":"specrails-desktop@2.48.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"3b3aad19bec76a55aeafd5dd9628d153911bce01","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.48.0.tgz","fileCount":1120,"integrity":"sha512-xoq4iSs1aAJ1uwKaa5Mwu+gQ6yzC8rDNaqtVesQaSAAbfCXEHX2gWPWQTPb0VUxD2YJDdqJk7Lje39vVXjqAJg==","signatures":[{"sig":"MEYCIQDGXtDYKKcRGNcorW3tdBY6DqeP6HfX9BSKNCFg3Dx/KAIhANaNBDqJUqXpLZN7VWf53vcqk67Fuf8kL22cYsz63vpC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUn901mquUj/UTM9rw4mkp3UQeAopnOhfvE+JLCb9MZQIhAM3d3p6Lz19ksH6HbMNV+2lhXBO5pJsD7M0i1T7bgj9s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.48.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29570754},"_from":"file:artifacts/npm/specrails-desktop-2.48.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.48.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-xoq4iSs1aAJ1uwKaa5Mwu+gQ6yzC8rDNaqtVesQaSAAbfCXEHX2gWPWQTPb0VUxD2YJDdqJk7Lje39vVXjqAJg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.48.0_1789827991446_0.12523193402442567","host":"s3://npm-registry-packages-npm-production"}},"2.48.1":{"name":"specrails-desktop","version":"2.48.1","license":"MIT","_id":"specrails-desktop@2.48.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"454056c38c271c2405531fdc39d481bed333201e","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.48.1.tgz","fileCount":1120,"integrity":"sha512-/tBy7v7oAAdOG2j8hawu3y6E7rCzot9Hgh+m/cRXkZ6ik/RjCOi9vugW4LCN5CDekoZ/zIKhGC0yWQ4CdF5AWw==","signatures":[{"sig":"MEUCIQC4ut/q8Jo8hmnBIO16ZD7aIgZWmZLTwio5KljcK0bhFgIgUWh3fe/pKk+qFKRJCupYkoQmfpA6kaZ9k1EMeVgprWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICZLfC8aIfFWTW9Hgt3GAWDGsS57UaO2XE9cC7IqlJCpAiBhUk7fnadclgkzhLytD/WlQB2Y2rOlzXcNpxN2QgrFAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.48.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29570754},"_from":"file:artifacts/npm/specrails-desktop-2.48.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.48.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-/tBy7v7oAAdOG2j8hawu3y6E7rCzot9Hgh+m/cRXkZ6ik/RjCOi9vugW4LCN5CDekoZ/zIKhGC0yWQ4CdF5AWw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.48.1_1789851430339_0.9443251814559532","host":"s3://npm-registry-packages-npm-production"}},"2.49.0":{"name":"specrails-desktop","version":"2.49.0","license":"MIT","_id":"specrails-desktop@2.49.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"2da917eccf9ba4747efd98b32f737fb71d536e5b","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.49.0.tgz","fileCount":1123,"integrity":"sha512-FDQneyRJow2noRGp8roUBqljn4cbH5+yB+p8S1c4evJGd8gSCjnKB2sfPChpceWdVijY22qXYHCg9Xlcra40Dg==","signatures":[{"sig":"MEQCIBErK8C5I4Y87khphmwmbF6fcMf86U3R6SpwKI6+ZEdlAiBNnIqKG4tRomwJ/kXFxVQbkqreHysVFUGjOdZfCkkApA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCG8ecJjGJfgOl1XvawXnj278oBp38A4p9FZDC84VeW4AIgWZ20/v1PtTME4KKyvpt0Eet0pkOJPcA/lwrR5TyyC4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.49.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29757019},"_from":"file:artifacts/npm/specrails-desktop-2.49.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.49.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-FDQneyRJow2noRGp8roUBqljn4cbH5+yB+p8S1c4evJGd8gSCjnKB2sfPChpceWdVijY22qXYHCg9Xlcra40Dg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.49.0_1789887220399_0.45817913366756224","host":"s3://npm-registry-packages-npm-production"}},"2.49.1":{"name":"specrails-desktop","version":"2.49.1","license":"MIT","_id":"specrails-desktop@2.49.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"5e277cbf9612eace9f6102a6fe75482dac9ecafc","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.49.1.tgz","fileCount":1123,"integrity":"sha512-k6TvpF+JJ2lD6MeJsll2NB3m7w7z99+uU//lBA3PgT6mfdWEEZDFS3UzLVaCltITkKm1WtcCd7vNZf/QrdTNpw==","signatures":[{"sig":"MEUCIQC4sGjoKFPyxpvYDtGz4ent2Px/rTH2ZLyzxgSEhJxeagIgCVblGpokEz9i1RXqtlCuS7TawjGdMysdiyjFWtLIz+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB3CuufIh7MGiHvm+CKt745A2BJWEloHBM7XtawycqxlAiAPTAj2VI8GqQnzJ1ygnxvDw5xsnapYJxP2jo2kNVt+CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.49.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29758313},"_from":"file:artifacts/npm/specrails-desktop-2.49.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.49.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-k6TvpF+JJ2lD6MeJsll2NB3m7w7z99+uU//lBA3PgT6mfdWEEZDFS3UzLVaCltITkKm1WtcCd7vNZf/QrdTNpw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.49.1_1789910055406_0.5872014490725597","host":"s3://npm-registry-packages-npm-production"}},"2.49.2":{"name":"specrails-desktop","version":"2.49.2","license":"MIT","_id":"specrails-desktop@2.49.2","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1dd1c56c5c1ef58e8577564f71fc851ceac7a292","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.49.2.tgz","fileCount":1123,"integrity":"sha512-fuFZWtv9GJwwqzxRs50E2f2yFnTEjE4ijBb5iUu7fBSlXs1XztNeSSHMSOBl2IK4UC4kcYsIotMOpo4dXQ3oMw==","signatures":[{"sig":"MEYCIQCqFgm2jd1hhABPLxuXe8H2+RHxVG6IXKWMzke6zxRtRAIhAMzL11hH+A/hHmpt/lChmRY9HS0otxrSjnIyfw3xEi6V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQChDqMeoN6FyBVvPRAR3YIxz77i7Kw2BMGVWk9Nxg1gwQIhAJ+HE36k+lYLGSzDi7kheZ0Ac0BwARIsXMaNZV197pnb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.49.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29759034},"_from":"file:artifacts/npm/specrails-desktop-2.49.2.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.49.2.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-fuFZWtv9GJwwqzxRs50E2f2yFnTEjE4ijBb5iUu7fBSlXs1XztNeSSHMSOBl2IK4UC4kcYsIotMOpo4dXQ3oMw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.49.2_1789963114814_0.4720114162278035","host":"s3://npm-registry-packages-npm-production"}},"2.50.0":{"name":"specrails-desktop","version":"2.50.0","license":"MIT","_id":"specrails-desktop@2.50.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d475e3088dc874ab6c6fe6c07aa2063df978218d","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.50.0.tgz","fileCount":1125,"integrity":"sha512-JYZ41chJp8wRMI87qdKRGCDZIgiGBreafl6IL5QoFPRvJMbwiwVsJUXuRhVNcwV2qS3Lpht3Bfn/OxnOz6H8Yg==","signatures":[{"sig":"MEUCIQCqlgXb2glVglRUvyHxxabbUUqBek9WkplO7964EqJ4RwIgBDLjFGbHXl9QKShL+M8EKlO6hO8YdpZ33cTO3Jc5v5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICkiTN9KgPV/O8wHPVsaWOrRLgtL/g+7d7wJ4PF9g9MgAiEA+MYRQnVdXBuPapiptE7zT3WKCm8c2Z6E6lmmmQ3+mao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.50.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29808529},"_from":"file:artifacts/npm/specrails-desktop-2.50.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.50.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-JYZ41chJp8wRMI87qdKRGCDZIgiGBreafl6IL5QoFPRvJMbwiwVsJUXuRhVNcwV2qS3Lpht3Bfn/OxnOz6H8Yg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.50.0_1789988785357_0.09748690731375254","host":"s3://npm-registry-packages-npm-production"}},"2.51.0":{"name":"specrails-desktop","version":"2.51.0","license":"MIT","_id":"specrails-desktop@2.51.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1bcea803cb8622571a72da9d3ade68925b4fee04","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.51.0.tgz","fileCount":1130,"integrity":"sha512-mBqF6d2LSj7tJEjqZq00pIpgUm15IZJRfH5ryV45d4UsOw0isWOCOP/iGjKZipoWBGtacwT86cm/gyA5YpboNA==","signatures":[{"sig":"MEUCIQD7fOyLp6IuMOhkM7HBHvhfvE0geNNXUKV1MhMv12lNkQIgSLAkbKxfN9VhQB3y01eCu7j7N/G16SxMZVmCzUSN7xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDwBxUvvRxxG2da8EMUj6XQK5/BWw6K37fME0ZzwTWXvAIgKn50Itf0QRnQhuhdbsQ20bU0umNbFXqIap4xGlEePr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.51.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29929598},"_from":"file:artifacts/npm/specrails-desktop-2.51.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.51.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-mBqF6d2LSj7tJEjqZq00pIpgUm15IZJRfH5ryV45d4UsOw0isWOCOP/iGjKZipoWBGtacwT86cm/gyA5YpboNA==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.51.0_1790032185131_0.4385227552023061","host":"s3://npm-registry-packages-npm-production"}},"2.51.1":{"name":"specrails-desktop","version":"2.51.1","license":"MIT","_id":"specrails-desktop@2.51.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"d6dc24fec8c9e7e6f9f3bd90b780b171fdd33053","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.51.1.tgz","fileCount":1130,"integrity":"sha512-fIEsgdyvjINnSkw0C0vC9XOMqjU/+7E5ZjOt+C/TMu89uNJ80dddD7xNvgZL53bJ2pmTaBE9lxJLIku1UBp0YQ==","signatures":[{"sig":"MEYCIQDB3fMMDlrg3rbtdweO6SBD9LtlhzRHgnLjGpdOjzU5bQIhANxWy/z9WJOmH5/xbZs4PCahskmAlT1uC2GDKBzgQhbr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBpvOR/cQdPFKtbWvaA5Tl5TteSlHoHgLrAlXeVDRaqIAiBI3WvhqK/2ksIQQCMN5iePzCw+vFDAPmepndxPJWN6DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.51.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29934158},"_from":"file:artifacts/npm/specrails-desktop-2.51.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.51.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-fIEsgdyvjINnSkw0C0vC9XOMqjU/+7E5ZjOt+C/TMu89uNJ80dddD7xNvgZL53bJ2pmTaBE9lxJLIku1UBp0YQ==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.51.1_1790075101388_0.47029232975168744","host":"s3://npm-registry-packages-npm-production"}},"2.52.0":{"name":"specrails-desktop","version":"2.52.0","license":"MIT","_id":"specrails-desktop@2.52.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"563b3c440b512be8fe95000b8b55a2c5bc27ddb4","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.52.0.tgz","fileCount":1130,"integrity":"sha512-pDunkX5BRA6BcCUFJ7rOScOwzaopqJtqy1Ki9ZbX1QZxYo0DdbH4GBYrIVW/6frvhKeUrXRkY15mavKWt2fSLg==","signatures":[{"sig":"MEQCIA0i9RXXoqyhzkFAi2hO9SYzpUvFYn7Wa+h7NYwE+vcvAiAOMTtmWUOLgL6cG2op3eeWrPC5ewPoCM+EkOhMuzZM8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC3PrEzq5kvqLUZIXTjOqoje5ENHjJRhcilG9hKSLbSgQIgaqQBj/6RqtvjvjGnnFdwzGQxu0li+EwlMVcU3d3RvAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.52.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29936496},"_from":"file:artifacts/npm/specrails-desktop-2.52.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.52.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-pDunkX5BRA6BcCUFJ7rOScOwzaopqJtqy1Ki9ZbX1QZxYo0DdbH4GBYrIVW/6frvhKeUrXRkY15mavKWt2fSLg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.52.0_1790079357362_0.8086438071146345","host":"s3://npm-registry-packages-npm-production"}},"2.53.0":{"name":"specrails-desktop","version":"2.53.0","license":"MIT","_id":"specrails-desktop@2.53.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"aa5cceb21bd7731baa69793297a5d3a0de158d96","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.53.0.tgz","fileCount":1130,"integrity":"sha512-kTiLHwOSyPkDj692k/mHFPg+76KBb9GGOmxh3GSCQOaYLuVfCbv9h9lwOwkkVOtkHOF0sI+2Cm4hk4gjsPzNwg==","signatures":[{"sig":"MEYCIQCksahXCSgK+c0co013abmxQeTxzEnr/ETTS/ZTUd6CAAIhANhclwSUedcPDQS8L9UPL7Cfgl+Y5oVgJAcZxWO5poOv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDva7z5rfSuq8q9gDDdTexCr9flpgwVh3Z5AP+Qi6DEqAiEAhykghrmWPJk6bRF8kPjdOxVxlAGvHBGpFza4M8H+Qec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.53.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29936530},"_from":"file:artifacts/npm/specrails-desktop-2.53.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.53.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-kTiLHwOSyPkDj692k/mHFPg+76KBb9GGOmxh3GSCQOaYLuVfCbv9h9lwOwkkVOtkHOF0sI+2Cm4hk4gjsPzNwg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.53.0_1790085962994_0.8589073195434342","host":"s3://npm-registry-packages-npm-production"}},"2.54.0":{"name":"specrails-desktop","version":"2.54.0","license":"MIT","_id":"specrails-desktop@2.54.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"6a58ddedbc3034d8b2e16eae9a176874ac0718f6","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.54.0.tgz","fileCount":1130,"integrity":"sha512-QfKjnx+Inq+BFuinP/2UjgdbAcDX7AnHZVBpGCatobEiy4hs0PsgvDe5uRitRPv8VRUTNcLhNNWef1ylfg8k7g==","signatures":[{"sig":"MEUCIQCfSqxM80aJJS1vPsCon5OXRtJLYnCtve8/OwYcGPmqzgIgBB3QpNNwVTKQ14obZY/EUZFV1X90mkkPQ4T72iDIVR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGbK3dAT9neLV6ajchVukqdzaEiKRmXILLmZKZLJ/I6bAiEAi0uCgJ30EirTaq/bMo2YXIP9tySGpyC7PhrPmUgxnUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.54.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29941700},"_from":"file:artifacts/npm/specrails-desktop-2.54.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.54.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-QfKjnx+Inq+BFuinP/2UjgdbAcDX7AnHZVBpGCatobEiy4hs0PsgvDe5uRitRPv8VRUTNcLhNNWef1ylfg8k7g==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.54.0_1790100806698_0.5162405693243739","host":"s3://npm-registry-packages-npm-production"}},"2.55.0":{"name":"specrails-desktop","version":"2.55.0","license":"MIT","_id":"specrails-desktop@2.55.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"4a12eccc2a6a0c6c1f66892a1a76f3c25ea88a9e","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.55.0.tgz","fileCount":1131,"integrity":"sha512-b7rYsYfl2zwRbyVdtdUbFqcwFCQJfBBJoWMy0Ugi8Ggwq9q9QSnzgQ8wqDe/zl7lKghvwNvhhZiUmt95MTqsWg==","signatures":[{"sig":"MEQCIFbszGwY02zApxAwZDMmoNLYMx0dmvrUD3T8SQAHnioOAiB1LH7bE0fyzQmcXSRk5Rn8PPtGgIzp9DyEnupHIiXi9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFtJiFpZlRv50gwlZsYHcj/Qr5fe1s567367n8DZfboWAiAsUeF2nSntpOLiGu/YEskMC22jHJkKnphUwsqo2LldAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.55.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29949311},"_from":"file:artifacts/npm/specrails-desktop-2.55.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.55.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-b7rYsYfl2zwRbyVdtdUbFqcwFCQJfBBJoWMy0Ugi8Ggwq9q9QSnzgQ8wqDe/zl7lKghvwNvhhZiUmt95MTqsWg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.55.0_1790120469681_0.09051407926903088","host":"s3://npm-registry-packages-npm-production"}},"2.55.1":{"name":"specrails-desktop","version":"2.55.1","license":"MIT","_id":"specrails-desktop@2.55.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"17f4c40afdd66787e80a5c618517d21f1151db96","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.55.1.tgz","fileCount":1193,"integrity":"sha512-CwWmObi4alYkakKhA5v8KLq1sEEKeEcq6a61qW5Or1Nkg/VyTIxZx+3NWCDryQRL+ZBq4XTeFej91uqeykWDow==","signatures":[{"sig":"MEUCIGDuAmlTiFN20RF2fvxho9klK4Zbzcj/CHhXW5mB5j/1AiEA72wmwVyR5tJ7Nk2LdDGqWOagGliufekhfzet2fR1E3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDU9GSMqPBj6e0z1JwwX9sdovtS6wfGjSGJV6rcHPxFDAiA7VJjRl25+KcM7hepDRdXORw3dJ+EDszfBRnWby0ugsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.55.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30409391},"_from":"file:artifacts/npm/specrails-desktop-2.55.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.55.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-CwWmObi4alYkakKhA5v8KLq1sEEKeEcq6a61qW5Or1Nkg/VyTIxZx+3NWCDryQRL+ZBq4XTeFej91uqeykWDow==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.55.1_1790184638091_0.4994342594478549","host":"s3://npm-registry-packages-npm-production"}},"2.56.0":{"name":"specrails-desktop","version":"2.56.0","license":"MIT","_id":"specrails-desktop@2.56.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"a19e416ab233d3281d0f9fb61f383ca02f0dd5e9","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.56.0.tgz","fileCount":1195,"integrity":"sha512-mCEQFsX1nd8+N/KbF3SOwIzk4BqO8stYNuQPyBXRmvKFZFFPf0dCe7F3KgcUiIohh+AHiceAPOleEigs/nl3Ww==","signatures":[{"sig":"MEUCIHbjrxJz8UOXqeGBxQ5z/sDzYvHQ88TRq4kuY36+GmihAiEAh/bl5n2QYxUZclQ8GbDIFxzB1VoKBcKkZh9kOZ0kC9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDOBCkXhChq+kxDb9Wps/I5FouqRfpjK20sPMZwRkc3twIhAM34dWfI1j8qoTLRoPCXgC2EbhpIJ5mxmUVzzjZls28b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.56.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30441069},"_from":"file:artifacts/npm/specrails-desktop-2.56.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.56.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-mCEQFsX1nd8+N/KbF3SOwIzk4BqO8stYNuQPyBXRmvKFZFFPf0dCe7F3KgcUiIohh+AHiceAPOleEigs/nl3Ww==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.56.0_1790275184611_0.4120251177887735","host":"s3://npm-registry-packages-npm-production"}},"2.56.1":{"name":"specrails-desktop","version":"2.56.1","license":"MIT","_id":"specrails-desktop@2.56.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"17cee3c4a04d0dd139e6843613b689da663230a7","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.56.1.tgz","fileCount":1183,"integrity":"sha512-8uNnDNNC1yPxb6YegOv6crLC0DLat4SV/jyEaWmlSbVdhOh56Fh8voz/fFqVYv/M3UV8c2E12yUWCvyd1kwqkg==","signatures":[{"sig":"MEUCIQDNLuLjiaGTJsasJf3/WAuWzimekeE73HuSLrXufhmHNAIgV8N2Q1wSPtEKyvzbyvOIT+g1kYhGbmM3QDc4Q9dRFbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICoJn1Z1ioVEi/aC86iErjKzfajL3NYZAVcNUBgqHEOnAiApMHLXSIjV16JZa3OyOVuIydWX7soXJo+dMgiYuwAEqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.56.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30263385},"_from":"file:artifacts/npm/specrails-desktop-2.56.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.56.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-8uNnDNNC1yPxb6YegOv6crLC0DLat4SV/jyEaWmlSbVdhOh56Fh8voz/fFqVYv/M3UV8c2E12yUWCvyd1kwqkg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.56.1_1790327067168_0.3832756985199046","host":"s3://npm-registry-packages-npm-production"}},"2.57.0":{"name":"specrails-desktop","version":"2.57.0","license":"MIT","_id":"specrails-desktop@2.57.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1797edff0eb5e2522aa3efa2c8062ad2da7530f5","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.57.0.tgz","fileCount":1183,"integrity":"sha512-uR4e/NmLnDJlNjq8Xr07WqoavI2G9XLo9jVRLxtw+sCXxb2qXYtT2+m5LcnAEI79i4hl/3kU3nPJSYBeXrOAHw==","signatures":[{"sig":"MEYCIQD6m9Yp/5ekk0KkQt7lBbnEByfgshc4JRbw0M7lfgPaRAIhAMpz7GAdoljbcgyfi5DGRUq/1Nn4SsUHY/QLbIesriUs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGdvN6MZhQNoppZjvqgG8tEL79pW5nFnZeL/tfQMFfWiAiEAnKVpa5zRRQch9Pdwgx4rFp0kotob3dUVSrwlAVZd9Go=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.57.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30263908},"_from":"file:artifacts/npm/specrails-desktop-2.57.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.57.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-uR4e/NmLnDJlNjq8Xr07WqoavI2G9XLo9jVRLxtw+sCXxb2qXYtT2+m5LcnAEI79i4hl/3kU3nPJSYBeXrOAHw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.57.0_1790341351972_0.4578674253253172","host":"s3://npm-registry-packages-npm-production"}},"2.57.1":{"name":"specrails-desktop","version":"2.57.1","license":"MIT","_id":"specrails-desktop@2.57.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"91f8444b7089e9f0c5f65deaa9e88621077bac14","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.57.1.tgz","fileCount":1183,"integrity":"sha512-Irvwdg+NA4g6UOmayu+tTF9de4cyZ+scEoZ8bE61E9d4piPuqtkdjW4mRZ138TTnsNhbm58/efagaEudLTG52A==","signatures":[{"sig":"MEQCIETeWxWVTMuxM2Vlcndj2TJfCOaCMOBelVxviex70N+vAiAwRKld4+E7ywk0JA/iaksqzFQSlZNJiJmfnzHuGqNwwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnHiwPS+wJqMk7VGdIz5v+pyvZHu5jerHQdfDW+IuGbQIgBghsT7qoMuKwJyuo6XkUUS075ZL0PoXX8kE3rkCckYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.57.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30268421},"_from":"file:artifacts/npm/specrails-desktop-2.57.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.57.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-Irvwdg+NA4g6UOmayu+tTF9de4cyZ+scEoZ8bE61E9d4piPuqtkdjW4mRZ138TTnsNhbm58/efagaEudLTG52A==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.57.1_1790365908674_0.23503504308814804","host":"s3://npm-registry-packages-npm-production"}},"2.58.0":{"name":"specrails-desktop","version":"2.58.0","license":"MIT","_id":"specrails-desktop@2.58.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"64e877722f557e9b8d355ebbd89eb5cf97acae56","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.58.0.tgz","fileCount":1200,"integrity":"sha512-JgEcZI7NlKGqGUBOeP3PyfDAMMmJs2FC9i9xz9+TwMPj+Mmsy5i8nlXPCzPLEyEsRp8k5FvHbWF/aWF523Odtw==","signatures":[{"sig":"MEUCIQD5BXB9Hk8G3hvAnHbGhFZN9/JtKERNDIahH3jY1xhewwIgJ5zqvNOPl20P3BNTyxvd+AhjisAkkSTl3CDcY11d98s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAP2Edp/9qoCexEFI11gxy7D35r9cEXTS/b5lbGcSb3zAiEAgTQxe22IYUR+TescMswiYpXEVEk3312je+OsrrMXjxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.58.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30631827},"_from":"file:artifacts/npm/specrails-desktop-2.58.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client","build:desktop:verified":"npm run build:server && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.58.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-JgEcZI7NlKGqGUBOeP3PyfDAMMmJs2FC9i9xz9+TwMPj+Mmsy5i8nlXPCzPLEyEsRp8k5FvHbWF/aWF523Odtw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.58.0_1790693633724_0.9011320640417939","host":"s3://npm-registry-packages-npm-production"}},"2.58.1":{"name":"specrails-desktop","version":"2.58.1","license":"MIT","_id":"specrails-desktop@2.58.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"e20483cf17f894635c794db345a3c7bcad289db4","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.58.1.tgz","fileCount":1200,"integrity":"sha512-KJK6bK61N2NN8QF7j5UjH3VgxNDgyozklQ/gP3YBZtihW+gf4f5lyTXqb6R/nGpXaYrgUjcwEwEpFcnhYvd02A==","signatures":[{"sig":"MEUCIQDpDzJphcaxlFhQ4xeH8br22S32PZhHg/kD8+cwQE8H8QIgbxz/QksPMvOtNig31WMBX98nyWeFfqVmQRiSn4liOOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD6/QQkv5O7Q9n/1CgQ1m49V7TCSbZhLGu5Fox73LNpygIhAIY0dbagvtf9D4rfGJGcsNlYJ8lhb/hiKMiojF9oKWOV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.58.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30631827},"_from":"file:artifacts/npm/specrails-desktop-2.58.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client","build:desktop:verified":"npm run build:server && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.58.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-KJK6bK61N2NN8QF7j5UjH3VgxNDgyozklQ/gP3YBZtihW+gf4f5lyTXqb6R/nGpXaYrgUjcwEwEpFcnhYvd02A==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.58.1_1790702868296_0.6784567776764454","host":"s3://npm-registry-packages-npm-production"}},"2.59.0":{"name":"specrails-desktop","version":"2.59.0","license":"MIT","_id":"specrails-desktop@2.59.0","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"98920e199f24d520c65d85166c708d786d64ff25","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.59.0.tgz","fileCount":1220,"integrity":"sha512-gVPsEuNO12ES76ea0Zp8ruSRo1KyZYJgpznnvWQmp04ceD8NbLm70qnzmxLmD+iG3JOiJIkMcfITvvviuuNHNg==","signatures":[{"sig":"MEUCIEZWNP7bUozMl0/5zBAk1PCV+lEOuRjudJLmoGeIi3SvAiEAuT56HGh1bXxExrRT2fpMEwXPrhE0uBoaMDO8VP3gP8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC0fhvH/IwCy29WroXxzVSrSURlW01hlBOFhgXl2xLEewIhAKXHWdEg8lBkcIIEwo/mF84ekGf/X/AeIImgtpC+3Tnd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.59.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30583347},"_from":"file:artifacts/npm/specrails-desktop-2.59.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client","build:desktop:verified":"npm run build:server && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.59.0.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-gVPsEuNO12ES76ea0Zp8ruSRo1KyZYJgpznnvWQmp04ceD8NbLm70qnzmxLmD+iG3JOiJIkMcfITvvviuuNHNg==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.59.0_1790842351875_0.8992929595147572","host":"s3://npm-registry-packages-npm-production"}},"2.59.1":{"name":"specrails-desktop","version":"2.59.1","license":"MIT","_id":"specrails-desktop@2.59.1","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"dist":{"shasum":"1dfbb68eb723820135b61b2a2f53aebf64e5d159","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.59.1.tgz","fileCount":1221,"integrity":"sha512-8FRlTgk21rbyU0wTW4IPzI58RhPXtf2zxUJ+FKMfb7JOL0CC07KoFkPxCkbzOS0a/vFnRu5ueB/l8kBvTG/K7g==","signatures":[{"sig":"MEYCIQDC091SIrq8oB3uyWrEyM/vZWu1+O/yoBPpd/Y2MydgSgIhAMhvuXI31XolWqIwRyMNmejjPeNkescX/wVb5qyZoHsC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3ofFnaCthiBX7/8bxKtyy1m0VMEnb+Ig9cMF3sbtrSAIhAMr44llM4s3z18onHaAXaR6X5s6sIp50nUr+WNkyTcaf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.59.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30653854},"_from":"file:artifacts/npm/specrails-desktop-2.59.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client","build:desktop:verified":"npm run build:server && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build"},"_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.59.1.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-8FRlTgk21rbyU0wTW4IPzI58RhPXtf2zxUJ+FKMfb7JOL0CC07KoFkPxCkbzOS0a/vFnRu5ueB/l8kBvTG/K7g==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/specrails-desktop_2.59.1_1791031600518_0.2365174330811477","host":"s3://npm-registry-packages-npm-production"}},"2.59.2":{"_id":"specrails-desktop@2.59.2","bin":{"specrails-desktop":"cli/dist/specrails-desktop.js"},"bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"dist":{"shasum":"10e586a4323d2496f1a0e2c089cab2f4dcb6cad2","tarball":"https://registry.npmjs.org/specrails-desktop/-/specrails-desktop-2.59.2.tgz","fileCount":1221,"integrity":"sha512-1XMd7XJUnQ1UdERXTQwGYVQG193TMdttNyo2fmXaXZn/YbnI8jCcAgUFgG0tZKO0p+iwAjoLhlmdzd93aALYJw==","signatures":[{"sig":"MEQCIF2c5IZ5eDiU1ZqE6lVJiiEXxilIChDlV/b6N1DEvvJ4AiAX3Jlv6L9wkRu8Sn879cXgWXOgJlACYTsDVVtWT2za/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE4dRmA+aIeZw7md0LSKI31w/HSQuBDOAPXTM7azMGUwAiEA6npNggRmd7zP1XWL4ARtuHJxiCoLUUuP3wB/HM7lmWk="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/specrails-desktop@2.59.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30655854},"name":"specrails-desktop","_from":"file:artifacts/npm/specrails-desktop-2.59.2.tgz","engines":{"node":">=20.19.0"},"license":"MIT","scripts":{"ci":"npm run typecheck && npm run check-core-compat && npm run test:scripts && npm run test:coverage && npm run test:coverage --prefix client && npm run build && npm run check:package","dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","test":"vitest run && tsx scripts/check-core-compat.ts","build":"npm run build:server && npm run build --prefix client && npm run build:cli && npm run build:mcp-bridge && npm run build:local-runner","prepack":"npm run build","test:all":"vitest run && cd client && npx vitest run","build:cli":"tsc --project tsconfig.cli.json","typecheck":"tsc --noEmit && tsc -p tsconfig.cli.json --noEmit && tsc -p mcp-bridge/tsconfig.json --noEmit && tsc -p local-runner/tsconfig.json --noEmit && cd client && tsc --noEmit","dev:client":"cd client && npm run dev","dev:server":"tsx watch server/index.ts","test:watch":"vitest","dev:desktop":"tauri dev","test:client":"cd client && npx vitest run","audit:source":"node scripts/audit-source.mjs","build:server":"node -e \"require('fs').rmSync('server/dist',{recursive:true,force:true})\" && tsc --project tsconfig.build.json --noCheck && node scripts/copy-server-assets.mjs","test:scripts":"node scripts/test-scripts.mjs","build:desktop":"npm run build:server && cd client && npm run build && cd .. && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build","build:sidecar":"node scripts/build-sidecar.mjs","check:package":"node scripts/check-package.mjs","test:coverage":"vitest run --coverage --maxWorkers=1 --reporter=dot --bail=1","generate-icons":"tauri icon src-tauri/icons/icon.svg","docs:source-map":"node scripts/generate-source-map.mjs","build:mcp-bridge":"node scripts/build-mcp-bridge.mjs","assemble-runtimes":"node scripts/assemble-runtimes-local.mjs","check-core-compat":"tsx scripts/check-core-compat.ts","audit:architecture":"node scripts/audit-server-modules.mjs --check && node scripts/audit-client-features.mjs --check","build:local-runner":"node scripts/build-local-runner.mjs","build:desktop:local":"npm run assemble-runtimes && npm run build:desktop","dev:desktop:prepare":"npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && npm run dev:client","build:desktop:verified":"npm run build:server && npm run build:sidecar && npm run build:mcp-bridge && npm run build:local-runner && tauri build"},"version":"2.59.2","_npmUser":{"name":"fjpulidop","email":"fj.pulidop@gmail.com"},"homepage":"https://github.com/fjpulidop/specrails-desktop#readme","_resolved":"/home/runner/work/specrails-desktop/specrails-desktop/artifacts/npm/specrails-desktop-2.59.2.tgz","overrides":{"ip":"npm:@eggjs/ip@2.1.0","shell-quote":"1.9.0"},"_integrity":"sha512-1XMd7XJUnQ1UdERXTQwGYVQG193TMdttNyo2fmXaXZn/YbnI8jCcAgUFgG0tZKO0p+iwAjoLhlmdzd93aALYJw==","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"_npmVersion":"10.9.8","description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","directories":{},"maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.21.0","ajv":"^8.17.1","zod":"^3.25.76","diff":"^9.0.0","multer":"^2.2.0","werift":"^0.23.0","express":"^5.2.1","js-yaml":"4.1.1","chokidar":"^5.0.0","node-pty":"^1.0.0","pdf-parse":"^2.4.5","tree-kill":"^1.2.2","playwright":"^1.60.0","selfsigned":"^5.5.0","cross-spawn":"^7.0.6","better-sqlite3":"^12.8.0","read-excel-file":"^9.0.6","@tailwindcss/typography":"^0.5.19","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.10","esbuild":"^0.28.1","@types/ws":"^8.5.0","supertest":"^7.2.2","typescript":"^5.4.0","@types/diff":"^7.0.2","@types/node":"^25.5.0","concurrently":"^9.2.1","@types/multer":"^2.1.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@tauri-apps/cli":"^2.0.0","@types/chokidar":"^1.7.5","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.2.0","@types/cross-spawn":"^6.0.6","@vitest/coverage-v8":"^4.1.10","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/specrails-desktop_2.59.2_1791048736754_0.8766810803035376"}}},"time":{"created":"2026-06-12T20:44:52.680Z","modified":"2026-10-03T17:32:17.299Z","2.0.0":"2026-06-12T20:44:53.294Z","2.1.0":"2026-06-13T07:45:01.780Z","2.2.0":"2026-06-13T17:26:52.805Z","2.2.1":"2026-06-13T20:52:02.317Z","2.3.0":"2026-06-14T10:59:50.606Z","2.4.0":"2026-06-14T23:12:24.949Z","2.5.0":"2026-06-15T21:25:44.903Z","2.6.0":"2026-06-16T17:29:48.305Z","2.7.0":"2026-06-17T18:39:27.967Z","2.8.0":"2026-06-18T07:55:02.839Z","2.9.0":"2026-06-19T08:56:31.093Z","2.9.1":"2026-06-19T10:13:41.198Z","2.10.0":"2026-06-19T13:47:51.231Z","2.10.1":"2026-06-19T16:46:21.527Z","2.11.0":"2026-06-19T20:49:40.720Z","2.11.1":"2026-06-20T06:06:45.370Z","2.11.2":"2026-06-20T07:17:42.339Z","2.11.3":"2026-06-20T10:53:07.702Z","2.11.4":"2026-06-20T15:44:05.164Z","2.11.5":"2026-06-20T17:14:21.317Z","2.11.6":"2026-06-20T20:09:05.484Z","2.11.7":"2026-06-21T06:40:17.453Z","2.11.8":"2026-06-21T08:03:40.720Z","2.11.9":"2026-06-21T09:34:12.427Z","2.11.10":"2026-06-21T14:44:42.753Z","2.12.0":"2026-06-23T13:31:19.960Z","2.13.0":"2026-06-26T09:16:36.824Z","2.14.0":"2026-06-26T20:18:28.332Z","2.15.0":"2026-06-29T06:11:26.345Z","2.16.0":"2026-06-30T06:04:33.148Z","2.17.0":"2026-06-30T21:04:24.264Z","2.18.0":"2026-07-01T11:25:49.540Z","2.18.1":"2026-07-01T12:53:19.008Z","2.18.2":"2026-07-01T13:35:55.828Z","2.19.0":"2026-07-02T07:27:45.447Z","2.19.1":"2026-07-02T07:48:08.059Z","2.20.0":"2026-07-02T13:22:43.348Z","2.20.1":"2026-07-03T05:19:44.460Z","2.21.0":"2026-07-03T09:34:52.250Z","2.22.0":"2026-07-04T13:42:43.528Z","2.23.0":"2026-07-04T17:55:31.176Z","2.23.1":"2026-07-04T22:50:09.876Z","2.24.0":"2026-07-05T10:51:23.401Z","2.24.1":"2026-07-05T22:14:46.383Z","2.24.2":"2026-07-06T06:38:41.337Z","2.24.3":"2026-07-06T10:54:26.365Z","2.25.0":"2026-07-06T12:28:49.485Z","2.26.0":"2026-07-06T15:35:43.714Z","2.26.1":"2026-07-07T09:29:03.294Z","2.26.2":"2026-07-07T14:23:02.015Z","2.27.0":"2026-07-08T05:42:20.957Z","2.28.0":"2026-07-08T16:01:22.848Z","2.28.1":"2026-07-08T21:13:58.502Z","2.29.0":"2026-07-09T10:25:50.012Z","2.29.1":"2026-07-09T16:19:58.952Z","2.29.2":"2026-07-10T12:05:06.679Z","2.29.3":"2026-07-11T16:07:40.562Z","2.29.4":"2026-07-13T05:58:22.328Z","2.29.5":"2026-07-14T09:49:03.715Z","2.30.0":"2026-07-17T10:21:25.906Z","2.30.1":"2026-07-18T22:08:45.891Z","2.30.2":"2026-07-19T10:00:43.025Z","2.30.3":"2026-07-19T16:27:03.802Z","2.31.0":"2026-07-20T07:40:44.849Z","2.31.1":"2026-07-20T09:23:51.640Z","2.31.2":"2026-07-20T10:39:02.956Z","2.32.0":"2026-07-21T13:32:47.929Z","2.33.0":"2026-07-21T22:09:21.330Z","2.34.0":"2026-07-22T19:27:28.100Z","2.34.1":"2026-07-26T21:09:47.367Z","2.35.0":"2026-07-28T18:47:53.245Z","2.36.0":"2026-07-31T17:16:08.796Z","2.42.1":"2026-09-07T09:02:15.357Z","2.42.2":"2026-09-07T17:42:54.180Z","2.43.0":"2026-09-07T20:34:24.589Z","2.43.1":"2026-09-08T09:14:11.723Z","2.43.2":"2026-09-08T21:49:35.590Z","2.44.0":"2026-09-09T16:34:16.298Z","2.44.1":"2026-09-10T06:17:58.431Z","2.44.2":"2026-09-11T06:58:31.942Z","2.45.0":"2026-09-12T11:36:13.005Z","2.46.0":"2026-09-13T11:55:42.190Z","2.47.0":"2026-09-13T14:58:47.276Z","2.48.0":"2026-09-19T14:26:31.718Z","2.48.1":"2026-09-19T20:57:10.587Z","2.49.0":"2026-09-20T06:53:40.680Z","2.49.1":"2026-09-20T13:14:15.746Z","2.49.2":"2026-09-21T03:58:35.026Z","2.50.0":"2026-09-21T11:06:25.583Z","2.51.0":"2026-09-21T23:09:45.348Z","2.51.1":"2026-09-22T11:05:01.656Z","2.52.0":"2026-09-22T12:15:57.598Z","2.53.0":"2026-09-22T14:06:03.270Z","2.54.0":"2026-09-22T18:13:26.938Z","2.55.0":"2026-09-22T23:41:09.923Z","2.55.1":"2026-09-23T17:30:38.318Z","2.56.0":"2026-09-24T18:39:44.869Z","2.56.1":"2026-09-25T09:04:27.751Z","2.57.0":"2026-09-25T13:02:32.268Z","2.57.1":"2026-09-25T19:51:48.919Z","2.58.0":"2026-09-29T14:53:53.961Z","2.58.1":"2026-09-29T17:27:48.657Z","2.59.0":"2026-10-01T08:12:32.102Z","2.59.1":"2026-10-03T12:46:40.759Z","2.59.2":"2026-10-03T17:32:16.984Z"},"bugs":{"url":"https://github.com/fjpulidop/specrails-desktop/issues"},"license":"MIT","homepage":"https://github.com/fjpulidop/specrails-desktop#readme","repository":{"url":"git+https://github.com/fjpulidop/specrails-desktop.git","type":"git"},"description":"[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/","maintainers":[{"name":"fjpulidop","email":"fj.pulidop@gmail.com"}],"readme":"# Specrails Desktop\n\n[![CI](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/fjpulidop/specrails-desktop/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/specrails-desktop.svg)](https://www.npmjs.com/package/specrails-desktop)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nSpecrails Desktop is a local application for turning software specifications into reviewed implementations. Use a mission conversation to explore and direct work, or organize specs on a board and run them through built-in or custom loops. The app coordinates your installed AI CLIs, Git worktrees, project context and delivery decisions.\n\n[specrails-core](https://github.com/fjpulidop/specrails-core) supplies the provider workflows and agents. Desktop adds the interface, execution lifecycle, history and project management.\n\nProjects can opt into the [programmatic agent runtime](docs/internals/programmatic-agent-runtime.md) to run Core's explicit phases with per-role Claude, Codex or local/API providers. The source feature requires a paired Core build; the guide covers setup, recovery and delivery ownership.\n\nThis README describes the current source tree. Published packages do not include unmerged changes; check the [release notes](https://github.com/fjpulidop/specrails-desktop/releases) for the features in your installed version.\n\n## Start using Specrails\n\nChoose one way to run the app. The native application and npm server both use the local backend; do not start them together on the same port.\n\n### Native application\n\nGet an installer from the [official releases](https://github.com/fjpulidop/specrails-desktop/releases). The release pipeline targets macOS Apple Silicon and Windows x64/ARM64. Select an artifact actually present in the release, and check its release notes and platform requirements.\n\nLaunch Specrails, install and authenticate at least one supported AI CLI, then add a project. The setup flow checks prerequisites and installs the project's Core artifacts. Provider CLIs and their authentication are separate from the app; they are not bundled model services.\n\nThe native application provides separate mission windows and OS webviews: WebView2 on Windows and WebKit on macOS. See the [Windows validation matrix](docs/platforms/windows-parity.md) for automated coverage and remaining platform acceptance.\n\n### npm application in your browser\n\nRequires Node.js **20.19.0+**, Git and an authenticated provider CLI. Use a current Node 22 release if your provider CLI requires a newer runtime.\n\n```sh\nnpm install -g specrails-desktop\nspecrails-desktop start\nspecrails-desktop add /absolute/path/to/project\n```\n\nOpen [http://127.0.0.1:4200](http://127.0.0.1:4200). This distribution serves the web interface; installing it does not install the native Tauri application or enable native mission windows.\n\n```sh\nspecrails-desktop list\nspecrails-desktop --status\nspecrails-desktop --help\nspecrails-desktop stop\n```\n\nThe CLI also forwards workflow commands to a running server. Its legacy direct fallback runs **Claude** when the server is unavailable and does not record Desktop analytics. Use the running app for provider selection and managed execution.\n\n## Working with projects and specs\n\n| Area | What the current source supports |\n| --- | --- |\n| Specs | Explore an idea in conversation, generate a Quick Spec, refine its contract, or capture a website as context. Structured AI actions are offered only when the provider supports their required tool restrictions. |\n| Missions | Converse with an agent using project, spec and file references. Follow-ups queue by default; explicit **Steer** sends a correction into a running invocation through its supported transport. Delivery and read acknowledgements remain distinct. |\n| Board and rails | Assign specs to execution lanes and select Implement, SDD Quick, Freestyle or a published custom loop, subject to provider capabilities. Inspect live steps, errors and retry state. |\n| Multiple repositories | One project owns a shared backlog and can include several local repositories. Specs select their affected repositories; execution prepares their worktrees together and presents delivery evidence and actions per repository. |\n| Review and delivery | Inspect recorded changes, create or publish a PR, integrate locally, or check out completed work. Conflicts and stale evidence require resolution; a multi-repo spec completes only when all required deliveries are accepted. |\n| Files | Browse and search by repository, jump to lines, read source, inspect recorded diffs and construction history, and request an AI summary. This is a read-only explorer, not an editor. |\n| Processes and metrics | Use the integrated terminal and inspect retained background-process logs. Track invocation activity and available usage; estimated costs are labelled and unavailable usage is not shown as zero. |\n\nAdditional folders can be added to an existing project in **Project settings → General → Repositories and folders**. Reading a repository does not grant it implementation scope. Secondary folders without Git provide context but cannot be additional implementation targets. See [multi-repository projects](docs/multi-repo-projects.md).\n\nIn the native app, the mission header can move a conversation into its own window and reintegrate it. The agent continues in the same backend. Draft and workspace handoffs require acknowledgement; closing a mission window reintegrates it, while closing main hides it to the tray. Quitting the application is a separate shutdown operation. See [detachable mission windows](docs/features/detachable-mission-windows.md).\n\nNative mission browsing retains the actual WebKit/WebView2 session, including history and authentication popups. Website-to-spec capture and the browser fallback use Playwright. These paths have different rendering and capture capabilities; availability of bundled runtimes does not make remote websites or model calls work offline.\n\n## Providers and integrations\n\nInstall and authenticate the provider CLI you intend to use before launching work. The current adapter checks use these minimum versions:\n\n| Provider | Executable | Adapter minimum | Usage reporting |\n| --- | --- | --- | --- |\n| Claude Code | `claude` | No pinned minimum | Provider-reported cost when present |\n| Codex CLI | `codex` | 0.128.0 | Tokens with estimated cost |\n\n**Local AI engines.** Any OpenAI-compatible endpoint (Ollama, llama.cpp, LM Studio, vLLM…) registered in **Settings → Specrails Agents → Provider connections** is a selectable engine on every surface — rails, Add Spec, chat, agent missions and the Project Builder — executed by the bundled local agent runner. Availability is a machine property: a local-only machine needs no selection, every surface defaults to the local engine, and an endpoint that stops answering is not offered until it recovers. Token usage is recorded; cost stays unknown unless you enter rates. See [local providers](docs/local-providers.md).\n\nGit is required for isolated worktrees and branch delivery. Authenticated `gh` is needed for GitHub PR operations. Jira, MCP integrations and other external services require their own configuration and credentials. Agents asked to connect should follow the [dedicated agent instructions](docs/agents/mcp.md). The [Specrails MCP server](docs/mcp.md) exposes project-aware operations to agents; repository-specific operations retain explicit repository identity.\n\n## Core installation and updates\n\nDesktop's version, the selected Core executable, the active shared framework and each project's installed artifacts are separate state. The current source supports Core 4 and Core 5; its online installation fallback requests Core 5. Core 5 installs deterministically and does not run the removed `enrich` wizard.\n\nThe resolver considers compatible managed, bundled, local and externally installed Core packages. An explicit `SPECRAILS_CORE_BIN` takes precedence; ordinary resolution does not silently downgrade an activated framework. Updating an external CLI alone does not refresh every project's copied artifacts.\n\nSettings reports these versions separately. A partially refreshed workspace remains pending, blocks new implementations and offers **Finish updating** using the retained package. Read access and conversations remain available. See [Core runtime selection and recovery](docs/internals/core-runtime-updates.md) before diagnosing a version mismatch.\n\n## Develop from source\n\nUse **Node 22.22.3** to match the native CI runtime, plus npm and Git. The root package accepts Node 20.19+, but the current Vite client specifically requires **20.19+ on Node 20 or 22.12+ on Node 22 and later**. Node 21 and early Node 22 releases do not satisfy that requirement. Native builds also require Rust and the [Tauri platform prerequisites](https://v2.tauri.app/start/prerequisites/).\n\n```sh\ngit clone https://github.com/fjpulidop/specrails-desktop.git\ncd specrails-desktop\nnpm ci\nnpm ci --prefix client\nnpm run dev\n```\n\nWeb development starts the API on **4200** and Vite on **4201**, with hot reload. These commands use the normal local Specrails data directory; they do not create an isolated test profile.\n\nTo develop native features, stop the web development command and any other Specrails instance, then run:\n\n```sh\nnpm run dev:desktop\n```\n\nTauri's development hook rebuilds the sidecar and MCP bridge, starts Vite, then opens the native application. Ports **4200 and 4201** must be free. Use the default ports: `SPECRAILS_DEV_SERVER_PORT`, `SPECRAILS_DEV_CLIENT_PORT` and `SPECRAILS_PORT` overrides are for web development and can conflict with Tauri's fixed endpoints.\n\nFrontend changes reload through Vite. After backend or MCP changes, restart `npm run dev:desktop` to rebuild their packaged artifacts. Preparation failures stop startup instead of using an old sidecar. The first build may download packaging dependencies; no installer is needed for this development loop.\n\n| Command | Purpose |\n| --- | --- |\n| `npm run typecheck` | Check server, CLI, MCP bridge and client types |\n| `npm test` | Server/CLI tests and Core compatibility check |\n| `npm run test:client` | Client tests |\n| `npm run test:scripts` | Test build, packaging and release helpers |\n| `npm run ci` | Type, compatibility, script and coverage checks, then build and package validation |\n| `npm run build` | Build the npm server, client, CLI and MCP bridge |\n| `npm run check:package` | Validate the built npm package payload |\n| `npm run build:desktop` | Build native artifacts from available staged resources |\n\n`build:desktop` does not assemble a complete release runtime bundle or sign it. `build:desktop:local` assembles local runtimes for macOS ARM64 only. Release resources, signing, platform tests and publication are defined in [CI and releases](docs/ci-cd.md); a local web build does not validate native behavior.\n\n## Architecture and data\n\n| Directory | Responsibility |\n| --- | --- |\n| `server/` | Express, WebSocket, SQLite, provider execution and project services |\n| `client/` | React interface, mission/board views and workspace tools |\n| `cli/` | Local server management and command bridge |\n| `mcp-bridge/` | stdio-to-server MCP bridge |\n| `src-tauri/` | Native windows, webviews, OS integrations and sidecar lifecycle |\n\nThe default data home is `~/.specrails/`, containing the project registry, per-project history and managed framework/workspace data. Source files remain in their selected repositories. Back up the data home and repositories when preserving a complete working environment. The [architecture reference](docs/internals/architecture.md) describes the service boundaries.\n\nThe local server binds to loopback and authenticates API and WebSocket access. Specrails is a single-user application, not a server to expose publicly. Project history is stored locally, but provider CLIs, package installation, update checks, websites and configured integrations can contact external services. Model calls can transmit the context supplied to them and incur provider charges. See [SECURITY.md](SECURITY.md) for reporting vulnerabilities.\n\n## Further reading\n\n- [User guide](docs/guide/en/getting-started/1-what-is-specrails.md)\n- [Multi-repository projects](docs/multi-repo-projects.md)\n- [Mission background processes and logs](docs/mission-processes.md)\n- [Native browser capture and performance](docs/internals/browser-capture-performance.md)\n- [Review packets](docs/internals/review-packet.md)\n- [Internal documentation](docs/internals/README.md)\n- [Contributing](CONTRIBUTING.md) and [changelog](CHANGELOG.md)\n\nSpecrails Desktop is available under the [MIT license](LICENSE). Development can be supported through [Ko-fi](https://ko-fi.com/D1D81Y002C).\n\n","readmeFilename":"README.md"}