{"_id":"@agr77/boz","_rev":"15-acd429b3c010b4d718eac9cd54f5e691","name":"@agr77/boz","dist-tags":{"latest":"2.5.7"},"versions":{"2.3.0":{"name":"@agr77/boz","version":"2.3.0","keywords":["ai","market-analysis","stocks","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.3.0","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"0832a0d6534cf54150eaeaae83ce1b7d040046df","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.3.0.tgz","fileCount":3979,"integrity":"sha512-e2hq/MnHYtbUz3sKUVta86M+Hd7JTMgAtb9hJnODDOgjs7OFVsOeZS2w2kVosoQeWCT15O45GLiLotEqpk5jRQ==","signatures":[{"sig":"MEYCIQDi+mzsts9weGEMcPm2FeSoGY0D62MKM6uPZ+pAz48gTwIhAOJjpX9IFlPfOL3GYNehjIFVAffIWctJh7iHwwHSGAm/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69384178},"main":"dist/main.js","type":"module","engines":{"node":">=18"},"gitHead":"8df631aba3a02d1e21ebadea52caf7c4a8aa3286","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","lint":"next lint","ping":"node dist/utils/ping.js","test":"vitest run","build":"next build --webpack","start":"next start","dev:cli":"tsx src/main.ts","dev:web":"next dev --webpack","coverage":"vitest run --coverage","build:cli":"tsc -p tsconfig.cli.json && node scripts/build-env.js","build:web":"next build --webpack","start:cli":"node dist/main.js","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","prepublishOnly":"npm run build:cli && npm run build:web"},"_npmUser":{"name":"agr77","email":"awiones@gmail.com"},"overrides":{"postcss":"^8.5.15","marked-terminal":{"marked":"$marked"}},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"11.17.0","description":"Open-source AI market analyzer that combines real-time data, technical indicators, macro context, news, and sentiment into structured insights.","directories":{},"_nodeVersion":"26.2.0","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^6.46.0","rss-parser":"^3.13.0","yahoo-finance2":"^3.15.4","marked-terminal":"^7.3.0","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.15","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^5.9.3","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10","@types/marked-terminal":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.3.0_1788000798400_0.09229571490054544","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.4.0":{"name":"@agr77/boz","version":"2.4.0","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.4.0","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"c79f62e8bfffc3dafe82fed1c58f9ff957b005e8","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.4.0.tgz","fileCount":4038,"integrity":"sha512-/6Bjmd0uARZgifIcTMHYcxNoS2BXSDRoO9I1tlUoPh5GyhYXBEhjPRGDgjKw9cuZVLEwcvrh0iloL0qfkAB5sA==","signatures":[{"sig":"MEUCIGJctDmmHpTOSM83lyq5mxtWeYFtQrinSEhaqMtid+YnAiEAnPFkwrlYPs2lLbgFm0hEuJHyQEwAgPKDIMGCPU8SO9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBCI0CLHQ1Vo7q5PXwy9fj4FY50IHl7Du1uMrpnAJg7VAiAVR13suqmjm77cuKpkZbpcILFoeYI71QwH0yzvK7yGOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70603104},"main":"dist/main.js","type":"module","engines":{"node":">=18"},"gitHead":"731ad417a0683a934145310f931b1c75b758020d","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start","dev:web":"next dev --webpack","prepack":"npm run build:package","coverage":"vitest run --coverage","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.15"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^6.46.0","rss-parser":"^3.13.0","yahoo-finance2":"^3.15.4","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.15","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^5.9.3","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.4.0_1788006096349_0.7387746213563078","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.4.1":{"name":"@agr77/boz","version":"2.4.1","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.4.1","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"ffc9946b76ea5195b9d2e2c4be75ba92f5abdc4d","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.4.1.tgz","fileCount":4057,"integrity":"sha512-dGy2o0MMLbuTs8Tdfp6MsgTeA3JXt3T6gw1e57OVvypA4/wlnH4ZzK0s3XRkZTj8maSBwP4IdQufNfVkElpk6A==","signatures":[{"sig":"MEUCIHX+wLzDjcNAi3hYLEfC6/4aYQjYcy3VR94AvCF8/1jPAiEAsF4OgSNeoW7Fo2Z5gq5Uv5LPRUYKpuc/QdNggUiCPhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD6DK2VRiS2tS9YPUaolfNoPwg20DvSTootGh6zng/J8AIhAKwFoDoWOoA1CKK7fXnUDx5tBsuwBGPvCRmhGhNQHzsW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71643121},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"a1159d1dc4ccb239746e238b9b83b4ee32b3e917","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start","dev:web":"next dev --webpack","prepack":"npm run build:package","coverage":"vitest run --coverage","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.4.1_1788049972982_0.02136597708770327","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.4.2":{"name":"@agr77/boz","version":"2.4.2","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.4.2","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"5bfa9c0b3f336c8bf6cf77e06926e9c6e115c759","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.4.2.tgz","fileCount":4059,"integrity":"sha512-mySQIE4UKWR/nGA9EzKb8lkVcKXuwkoVaSNLciaonsEpyL1VDvfU+n/feG+UrC/M7vkRNdBBml48Qap0489wOA==","signatures":[{"sig":"MEQCIALANTzsv6ob/gXqSG4FqCyMypCm+GYQ7LaVZdKW6UK6AiAiq5VBkRXtndQd4jGlhg95/rL1dYUbPm0w6xl8G0wHNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAFGwGEnW6RhfWAA18Ru5AYJydLEA9T7PEoPVW/egtStAiEArYfLgSnyOAnu41zblXVsRD7BNpQz3/gaAGa17JsDbRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71707129},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"bd67980159f768b6ca179aed01bbba065e2243ae","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start","dev:web":"next dev --webpack","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.4.2_1788090321325_0.2087482736091919","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.4.3":{"name":"@agr77/boz","version":"2.4.3","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.4.3","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"1248e5f58d662a7e25e4883d06b9687e5d18a323","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.4.3.tgz","fileCount":4064,"integrity":"sha512-AGAMS/sSwqHbMRxN3GGP2uDahraI3e4jvCTooVvz4wx0FVoh3gKh+rkPaXoylpxw0rG1mo31U2IHhRCXlA+vqw==","signatures":[{"sig":"MEUCIQDsyigoBaP15cB6UzhkJbrUwVVJYnRTZ6HEe0fCLAhWlwIgZ2iuQE5aVWb7tMbaSpV8+m+NSqWebBle/uWGEaUscMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDQHNrM9MKH3ZytAiczedwDcram6hW5CtdlFXC012bWwIgM448+ReFy0XIoe+KPsMXxcQf8jSz2C+Tb+b9Iq4Oyk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72144651},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"3c023700cd1181c3a9ed95ac8e53a44d25d36c81","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start","dev:web":"next dev --webpack","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.4.3_1788160100068_0.16877494312978336","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.4.31":{"name":"@agr77/boz","version":"2.4.31","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.4.31","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"b2709c8e88a8320c8a6be103cff69d907c80ce27","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.4.31.tgz","fileCount":4071,"integrity":"sha512-S555G3ca8ZsNFCzj33twwmMLul652B1SDS5wkYgkfrBcDndYE4riKZ7Mpda2FHiCOAdA0GChI8Y6mt1M05xKiQ==","signatures":[{"sig":"MEYCIQCv0zuEtDZi1/RSWZBrGUDArsXEEhpWR1WIDxTm/UIaBgIhAOCpHfMqdqqs8ZQ3LjDHeSmHIi44eN9d+MYsaq+tpqal","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD56DegkGGrIiGSssF/SjkgdVHaFUrDQTFuC2cqgOVIHAIhALoStlcHqKRtmSXbrdzrYWE2RTvhUTjr9bmBN0kMpLB4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.4.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72229495},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"4ba01272182bf211dd6f2e0e91cc6fd2058ded62","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start","dev:web":"next dev --webpack","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.4.31_1788167458095_0.1973451712722647","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.0":{"name":"@agr77/boz","version":"2.5.0","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.0","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"bc90836d111bc68ee858a5445c8b9149bf3144b0","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.0.tgz","fileCount":4071,"integrity":"sha512-Az3SsnO+FG7boDUBvK85WUgrG0Bm4xOfAv8OjgGr9cKYbsAnla1I3akV+0tFLtjqwNEE2PLtqKWPmgP7RputIw==","signatures":[{"sig":"MEYCIQCvwQrDSavUvSgDwHV1E97t333ApSUOt3a2XaaGwvmz8AIhAO/pyg1Fg3/F5BlInXP2GtEhzaTB/WxOiDf3AXRZx9mH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH9A/tqRvME01z0ygJjIxTvJM16VDVm8oHY1FOYMEQS1AiEAzsPsAFWeWop02rJcC0vmBzx5s43ysVyGZRufhCa/I18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72229461},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"e80f22e64a7a07a39ce9e501699b2180ab82466a","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start","dev:web":"next dev --webpack","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.0_1788169040847_0.9300520247033033","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.1":{"name":"@agr77/boz","version":"2.5.1","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.1","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"904c5c8e77e86ccfae55ee712f2c3254e3deb2ae","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.1.tgz","fileCount":4072,"integrity":"sha512-6kSyMiKNwy1cnSZTqTjsnQJeBArSBoDs8/MifLeJ4SDFMG1Ts5HKrVH0szIE9py87wzkHEwyKpP5mDT0/OfRPQ==","signatures":[{"sig":"MEYCIQD76EnA8vP1rgsHKyr/QzYjHCnud304zR5vCgLifGkPFgIhAMrwP+9cZ27/TkUk5ypLb7zuHQmPdeY8qIH2m/Aw/cTz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA8/xShwQantNmBSA30ZbQiw+gXD2FANe+1ZMQLqHdIhAiEAlp76aOSX6atb6gmY7ZAVdLKRsn88j0UVgX4vylGY3tI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72574282},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"4b19f4f9c79f4a8eaa084722e34d6a6f2ba21659","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.1_1788259809086_0.7905517214897015","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.2":{"name":"@agr77/boz","version":"2.5.2","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.2","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"57b4b08002d5ec72ee1351fc2a423f904c1ee480","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.2.tgz","fileCount":4073,"integrity":"sha512-10wFwLGVXXbGX+Dav83OjIdZ0YP+WsIU9HZS6EgowYsH6v2uB5qmmmW1YEhxrDMTs4ZOG3GYvHTRCXARYIJ1yQ==","signatures":[{"sig":"MEUCIHhOgW5k3pErwtopKhBBUIXCdzARf1hIoUyUCjuONgZwAiEAxy27N0TNQUv6EceWHpL4BLEq7GBV4GPgMA/DgZL+UQE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICRRgnzSdJNj/pmailZs70Ha0tGA8xPcKqNnuF5/TDIPAiEArW5DlzbfMF1HAUm3DPb5sx40bGS+icKtAmMcdMfSbdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74256533},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"57a44e3a90efbe0c744523f3cf5ecff8590d4568","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.2_1788339481626_0.6156851760601796","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.3":{"name":"@agr77/boz","version":"2.5.3","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.3","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"9bde04cc01834bdda8c1c4f40b56b3265da50f69","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.3.tgz","fileCount":4078,"integrity":"sha512-Hh53tGoeFo1FIC5tBESJopX15cLdTuQNtcq9dpxCpDmtdrBxoKLz7W1qKS8EMM0PwW95F1aPG+/HQScxmhHjDg==","signatures":[{"sig":"MEUCIQD2pXeNrt0iWDY8zn6aFrHFrqrahCdcbo4VTUIprXRWcgIgGS85zHMlImivl6LYhA5Yz8uPRL2n7SaHLKKXUJXcFMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdXbTGsFvIMftwmpDSBdVOkKW2Sme0YeKsSX5WKm76oAIhAIC3n5DR7CmO0PdRrQQ2oWGkgkj6Q9qvV4oxMruPANLl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76806884},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"644a186d039a91616fd5f42949e1ed95227bb814","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.3_1788626335327_0.26343373476326337","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.4":{"name":"@agr77/boz","version":"2.5.4","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.4","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"de150f745d814e916110c5e69125689e3b2c142b","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.4.tgz","fileCount":4073,"integrity":"sha512-Z3zP82HNcr4h6o+bO2j4dgMGQIfUAS+wT2+u4HZrnSYqC+Nh3TQEZIfEVoYGqClrKqcEs2xlcMz+cAOx4m9Wug==","signatures":[{"sig":"MEYCIQDs0podEmdNy1gEXXNy3wkN+gpufIZL47RAMxOtWf7nlwIhAL1VwOgfyjft/wi6+GoANmJdAEQxZ2VqBkoAypgpd3xw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEGqol49kNAeHGBZbJfsGeNUdSx/BSF7MBLBYOKPxL9BAiEAueqMe7iV41vCL79MgG8kXgou30MTL6ORTI4eM78f5oY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75475316},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"6dfb04db4c5a73655b4f81ab702230ecf016d0c0","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.4_1788674822385_0.5376424505809001","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.5":{"name":"@agr77/boz","version":"2.5.5","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.5","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"9bb6c8afa8001abc38f39ae0266f17c49f0a23d1","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.5.tgz","fileCount":4083,"integrity":"sha512-xOFAs9FRnP5I+2ox8BQBjGm0QDGAFVuC6GxrbfYODGSf/vIz5AQBi6wxFUAipGbJ8sV0xS4oUVW/lJySNRkbkg==","signatures":[{"sig":"MEQCIFHbZLgdUCdLD6k0/um//vMN9JlGI1efknX9Q6keO56bAiBNbFbSrZUvXGJoSn3q4J0VQ60V2YNliXwvbI6aIWI/Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDHPJFie+feC/mAfwjmPy/K17QC4dtNd4h4d+aVntS0ngIhAOPZ3+z2vle2uOcSb2aroRkMllU+RY34ryjPK5unZX/i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75502842},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"657116b6b5c1475446752458715c353d7270140b","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"postcss":"^8.5.23"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.0","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.5_1788779789234_0.6253268702472818","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.6":{"name":"@agr77/boz","version":"2.5.6","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.6","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"6578cacf7facf36fffb677ecbc64e444ded5a5ee","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.6.tgz","fileCount":4085,"integrity":"sha512-Pr9p7bth2dCdx6TXzDqKW1o0Wb782wtTfU/cwctYq5x10bhbq+i/21HiVVgZkhlE6VRaBJdl4F/33HWCVdWsJQ==","signatures":[{"sig":"MEUCIQCsyTRlFMeMJvnhgWJ5wyw1PBR+KDKGBsdFjnekRP6eQwIgHyLhNufJLi7XChCSWoRnY9lOqn8V0v7fzSmG3zpuv98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC09P8FB+WCto5ENaH+f8L39yFOSZ7usbQ8weA18xp2KAIhANyI5am9upsNtrXy0VMBTcu5rlb9eZgiQIH2hJrbJL7M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75897214},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"b4c6f92ddca78a821f70954d3bd403c613c09da5","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"sharp":"^0.35.4","postcss":"^8.5.23","baseline-browser-mapping":"^2.11.0"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^3.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.3","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.17","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.6_1789115724614_0.4538926360383082","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.5.7":{"name":"@agr77/boz","version":"2.5.7","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"author":{"name":"AGR"},"license":"ISC","_id":"@agr77/boz@2.5.7","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"bin":{"boz":"dist/main.js"},"dist":{"shasum":"0ffdb028fc346114477c86de8a7d64e763f3ed51","tarball":"https://registry.npmjs.org/@agr77/boz/-/boz-2.5.7.tgz","fileCount":4089,"integrity":"sha512-Wjp7ZIftSleVICiaWVGVUmRhwpqNM2xv4UBgdAUKIhKUnjgN4PBFTBXE35lQbK92zTcq8mRs+B+WaeZti6HgUQ==","signatures":[{"sig":"MEUCIQDXPfp7gPvGeXx9gdVTane35Uoz6GfBzDpaxL8W44Op+AIgEFYwg9ObQGayeBGxqK/nScrhx2TFZ6IKmasyNug6SYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCkRFTJOZIEyn9OW9LQuvvjLYR38zYtHkTv3xvKQznfrwIhAKfVZBvPrtqICMFpQXDRdxvC97QynC7qKm9XmIlM6ga0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agr77%2fboz@2.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75899926},"main":"dist/main.js","type":"module","engines":{"node":"^22.22.2 || ^24.15.0 || >=26.0.0"},"gitHead":"7dfe67826a554bab5a90bf42bad3fae3fb3e5f66","scripts":{"dev":"cross-env BOZ_DEV=1 tsx src/main.ts","test":"vitest run","build":"npm run build:web","start":"next start --hostname 127.0.0.1","dev:web":"next dev --webpack --hostname 127.0.0.1","prepack":"npm run build:package","coverage":"vitest run --coverage --exclude tests/cli/*-web.test.ts","build:web":"next build --webpack","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/copy-static.js","test:install":"npm install -g . && boz --version && boz --help","build:package":"npm run build:launcher && npm run build:web && node scripts/copy-static.js","build:launcher":"node scripts/clean-dist.js && tsc -p tsconfig.launcher.json && node scripts/build-env.js","prepublishOnly":"npm test && npm run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8683f58-ff4a-41ed-a639-f5ae40e24b0e"}},"overrides":{"sharp":"^0.35.4","postcss":"^8.5.23","baseline-browser-mapping":"^2.11.0"},"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"_npmVersion":"12.0.2","description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","axios":"^1.18.1","dotenv":"^17.4.2","marked":"^18.0.5","openai":"^7.5.0","rss-parser":"^3.13.0","yahoo-finance2":"^4.0.2","technicalindicators":"^3.1.0","isomorphic-dompurify":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","next":"^16.3.3","react":"^19.2.7","vitest":"^4.1.9","postcss":"^8.5.23","cross-env":"^10.1.0","react-dom":"^19.2.7","typescript":"^7.0.2","@types/node":"^26.1.1","@types/react":"19.2.18","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/boz_2.5.7_1789148118940_0.20120104792131643","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-08-29T10:53:18.214Z","modified":"2026-09-15T13:24:08.497Z","2.3.0":"2026-08-29T10:53:18.782Z","2.4.0":"2026-08-29T12:21:36.698Z","2.4.1":"2026-08-30T00:32:53.461Z","2.4.2":"2026-08-30T11:45:21.665Z","2.4.3":"2026-08-31T07:08:20.499Z","2.4.31":"2026-08-31T09:10:58.436Z","2.5.0":"2026-08-31T09:37:21.192Z","2.5.1":"2026-09-01T10:50:09.409Z","2.5.2":"2026-09-02T08:58:01.996Z","2.5.3":"2026-09-05T16:38:55.880Z","2.5.4":"2026-09-06T06:07:02.813Z","2.5.5":"2026-09-07T11:16:30.181Z","2.5.6":"2026-09-11T08:35:25.031Z","2.5.7":"2026-09-11T17:35:19.334Z"},"bugs":{"url":"https://github.com/AlGhozaliRamadhan/boz/issues"},"author":{"name":"AGR"},"license":"ISC","homepage":"https://github.com/AlGhozaliRamadhan/boz#readme","keywords":["ai","market-analysis","web-dashboard","stocks","idx","crypto","trading","technical-indicators","sentiment","typescript"],"repository":{"url":"git+https://github.com/AlGhozaliRamadhan/boz.git","type":"git"},"description":"Web-first AI market intelligence dashboard for technical, macro, news, sentiment, and risk-aware analysis.","maintainers":[{"name":"agr77","email":"awiones@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"./public/logo-boz-solid.png\" alt=\"BOZ logo\" width=\"120\" />\n</p>\n\n<h1 align=\"center\">Behavioral Outlook Zone</h1>\n\n<p align=\"center\">\n  <strong>AI-assisted market intelligence, from raw data to a risk-aware thesis.</strong>\n</p>\n\n<p align=\"center\">\n  Analyze stocks, crypto, and IDX-listed companies from one focused web workspace.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@agr77/boz\"><img src=\"https://img.shields.io/npm/v/@agr77/boz?style=flat-square&color=00c853\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/@agr77/boz\"><img src=\"https://img.shields.io/npm/dm/@agr77/boz?style=flat-square&color=00c853\" alt=\"npm downloads\" /></a>\n  <img src=\"https://img.shields.io/badge/Node.js-22.22.2%20%7C%2024.15.0%20%7C%2026%2B-339933?style=flat-square&logo=nodedotjs&logoColor=white\" alt=\"Supported Node.js versions: 22.22.2, 24.15.0, or 26 and newer\" />\n  <img src=\"https://img.shields.io/badge/TypeScript-7.x-3178C6?style=flat-square&logo=typescript&logoColor=white\" alt=\"TypeScript 7\" />\n  <img src=\"https://img.shields.io/badge/license-ISC-7c3aed?style=flat-square\" alt=\"ISC license\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"#features\">Features</a> &bull;\n  <a href=\"#quick-start\">Quick start</a> &bull;\n  <a href=\"#configuration\">Configuration</a> &bull;\n  <a href=\"#development\">Development</a>\n</p>\n\n<p align=\"center\">\n  <img src=\"./public/screenshots/dashboard.png\" alt=\"BOZ intelligence dashboard showing BTC-USD market data and an interactive chart\" width=\"100%\" />\n</p>\n\n<p align=\"center\"><sub>Live intelligence dashboard &mdash; quote, macro regime, sentiment, technicals, charting, and trade planning in one view.</sub></p>\n\n## What is BOZ?\n\nBOZ is an open-source market intelligence web app that combines price data, technical indicators, macro context, news, and crowd sentiment. Its job is to turn scattered signals into a structured view: market bias, conviction, entry conditions, targets, stop levels, invalidation criteria, and risks.\n\nVersion 2.5 is web-only: install it, run `boz`, and the complete dashboard opens in your browser.\n\n> [!IMPORTANT]\n> BOZ is a research and educational tool, not financial advice. Market data can be delayed or incomplete; verify important information independently before acting.\n\n## Features\n\n| Capability | What it gives you |\n| --- | --- |\n| **Intelligence dashboard** | Quotes, volume, market regime, correlation, sentiment, TradingView charts, and a consolidated verdict. |\n| **Multi-timeframe technicals** | RSI, MACD, Bollinger Bands, ATR, OBV, moving averages, Fibonacci levels, and HH/HL or LH/LL structure. |\n| **Omni-Agent research** | Conversational analysis with tool use, evidence gathering, reflection, and specialized quantitative, news, and risk perspectives. |\n| **Risk-aware trade plans** | Action, conviction, entry, targets, stop loss, reward/risk, invalidation, and late-signal warnings. |\n| **News and crowd intelligence** | RSS and market headlines alongside Fear & Greed, StockTwits, Reddit, and crypto community signals. |\n| **IDX momentum scanner** | Purpose-built scanning for Indonesian equities and momentum candidates. |\n| **Flexible AI backends** | OpenAI, Anthropic, Groq, OpenRouter, GitHub Models, NVIDIA NIM, Ollama, and OpenAI-compatible local gateways. |\n| **Session memory** | Disk-backed preferences and retained context for more consistent follow-up research. |\n\n## Product tour\n\n### Omni-Agent workspace\n\nStart with a suggested workflow or ask BOZ a free-form market question. The agent selects the relevant market, technical, news, sentiment, and risk tools before producing a response.\n\n<p align=\"center\">\n  <img src=\"./public/screenshots/chat-agent.png\" alt=\"BOZ Omni-Agent chat workspace\" width=\"100%\" />\n</p>\n\n### How analysis flows\n\n```mermaid\nflowchart LR\n    U[Web dashboard] --> I[Intent and symbol resolution]\n    I --> M[Market and macro data]\n    I --> N[News and crowd sentiment]\n    M --> T[Indicators and market structure]\n    N --> A[Agent research loop]\n    T --> S[AI synthesis]\n    A --> S\n    P[GitHub Models<br/>NVIDIA NIM<br/>Ollama or custom] --> S\n    S --> O[Verdict, levels,<br/>risks, and sources]\n```\n\n## Quick start\n\nBOZ requires **Node.js `^22.22.2`, `^24.15.0`, or `>=26.0.0`**.\n\nRun the packaged web app immediately without installing:\n\n```bash\nnpx @agr77/boz\n```\n\nOr install the web launcher globally:\n\n```bash\nnpm install --global @agr77/boz\nboz\n```\n\nRunning `boz` starts the dashboard and opens it in your browser. The default address is [http://127.0.0.1:21526](http://127.0.0.1:21526). Run `boz menu` when you want the terminal launcher with setup details and launch choices; choosing **Run in background** starts BOZ without a separate Next.js terminal window.\n\nBackground mode uses the native Windows system tray. Double-click the BOZ icon to open the dashboard, or right-click it to open BOZ, choose whether it starts when you sign in, or exit cleanly. `boz web` remains available for scripts and for starting the foreground server directly.\n\nThe npm release includes the compiled launcher, Next.js standalone server, static assets, and public assets. Installing from npm does not require cloning the repository or building the app yourself.\n\n### Launcher commands\n\n| Command | Description |\n| --- | --- |\n| `boz` | Start the dashboard and open it in your browser. |\n| `boz menu` | Show the terminal launcher and wait for a launch choice. |\n| `boz web` | Start the foreground dashboard and open it in your browser. |\n| `boz background` | Start the dashboard in the Windows system tray. |\n| `boz --port 3001` | Start the dashboard on a custom port. |\n| `boz --version` | Print the installed version. |\n| `boz --help` | Show command help. |\n\n## Configuration\n\nConfigure BOZ from **Settings** in the web interface or with environment variables. Installed settings are stored in `~/.boz/.env`; local development can also use a `.env` file in the project root.\n\nCredentials entered through Settings are write-only: the browser sends a replacement value to BOZ but cannot read saved values back. They are stored in the per-user server configuration file and are never persisted in browser storage. Set `BOZ_CONFIG_DIR` to use a different per-user configuration directory.\n\n```dotenv\n# openai | anthropic | groq | openrouter | github | nvidia | offline | custom\nAI_PROVIDER=github\n\n# OpenAI\nOPENAI_API_KEY=<openai-api-key>\nOPENAI_AI_MODEL=gpt-6-astra\n\n# Anthropic\nANTHROPIC_API_KEY=<anthropic-api-key>\nANTHROPIC_AI_MODEL=claude-opus-5\n\n# Groq\nGROQ_API_KEY=<groq-api-key>\nGROQ_AI_MODEL=openai/gpt-oss-120b\n\n# OpenRouter\nOPENROUTER_API_KEY=<openrouter-api-key>\nOPENROUTER_AI_MODEL=~openai/gpt-latest\n\n# GitHub Models\nGITHUB_TOKEN=<github-token>\nGITHUB_AI_MODEL=openai/gpt-4o\nGITHUB_AI_ENDPOINT=https://models.github.ai/inference\n\n# NVIDIA NIM\nNVIDIA_API_KEY=<nvidia-api-key>\nNVIDIA_AI_MODEL=nvidia/nemotron-3-ultra-550b-a55b\nNVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1\n\n# Local Ollama-compatible endpoint\nOFFLINE_AI_URL=http://localhost:11434\nOFFLINE_AI_MODEL=qwen3-14b-t4\n\n# Any OpenAI-compatible provider (9router, local gateway, and similar)\nCUSTOM_AI_URL=http://localhost:20128/v1\nCUSTOM_AI_KEY=<optional-api-key>\nCUSTOM_AI_MODEL=<model-id>\nCUSTOM_AI_MODELS=<model-id>,<another-model-id>\n\n# Optional news and macro enrichment\nALPHA_VANTAGE_API_KEY=<api-key>\nFINNHUB_API_KEY=<api-key>\nFRED_API_KEY=<api-key>\n```\n\n| Provider | Best for | Credential |\n| --- | --- | --- |\n| **GitHub Models** | Easy hosted setup and broad model choice | `GITHUB_TOKEN` |\n| **NVIDIA NIM** | Long, tool-heavy research sessions | `NVIDIA_API_KEY` |\n| **OpenAI** | Official GPT models | `OPENAI_API_KEY` |\n| **Anthropic** | Official Claude models | `ANTHROPIC_API_KEY` |\n| **Groq** | High-speed open-model inference | `GROQ_API_KEY` |\n| **OpenRouter** | Multi-provider routing and model catalog | `OPENROUTER_API_KEY` |\n| **Offline / Ollama** | Private local inference | No key by default |\n| **Custom** | OpenAI-compatible routers and gateways | Provider-dependent |\n\nNever commit `.env` files or API keys. They are excluded by the repository's `.gitignore`. Remote custom-provider endpoints must use HTTPS; explicit loopback endpoints remain available for local OpenAI-compatible routers.\n\n## Development\n\n```bash\ngit clone https://github.com/AlGhozaliRamadhan/BOZ.git\ncd BOZ\nnpm ci\n\n# Start the web dashboard\nnpm run dev:web\n```\n\n### Useful scripts\n\n| Script | Purpose |\n| --- | --- |\n| `npm run dev` | Start the web-only launcher with the Next.js development server. |\n| `npm run dev:web` | Run the Next.js dashboard with hot reload. |\n| `npm run build:web` | Create the production web build. |\n| `npm run build:launcher` | Compile the lightweight `boz` web launcher. |\n| `npm run build:package` | Build every artifact included in the npm package. |\n| `npm run typecheck` | Type-check the application without emitting files. |\n| `npm test` | Run the Vitest test suite once. |\n| `npm run test:watch` | Run tests in watch mode. |\n| `npm run coverage` | Generate test coverage. |\n\n### Docker\n\nThe included Compose setup runs the dashboard on host loopback port `3000`:\n\n```bash\ndocker compose up --build\n```\n\nThen open [http://localhost:3000](http://localhost:3000).\n\nBOZ currently has no multi-user authentication. Keep the service bound to loopback; do not expose the container port to a LAN or the public internet.\n\n## Contributing\n\nFocused pull requests are welcome.\n\n1. Fork the repository and create a feature branch.\n2. Make the change and add or update tests where appropriate.\n3. Run `npm test` and the relevant build command.\n4. Open a pull request describing the behavior change and how it was verified.\n\n## Data and risk notes\n\n- Upstream market and sentiment services can be unavailable, rate-limited, or delayed.\n- A high conviction score is model output, not a guarantee of future performance.\n- Keep credentials local and review generated analysis before relying on it.\n- All trading decisions and resulting gains or losses remain your responsibility.\n\n## License\n\nBOZ is released under the **ISC License**.\n","readmeFilename":"README.md"}