* feat: local engine management * chore: move remote engine into engine page instead extension page * chore: set default engine from extension * chore: update endpoint update engine * chore: update event onEngineUpdate * chore: filter out engine download * chore: update version env * chore: select default engine variant base on user device specs * chore: symlink engine variants * chore: rolldown.config in mjs format * chore: binary codesign * fix: download state in footer bar and variant status * chore: update yarn.lock * fix: rimraf failure * fix: setup-node@v3 for built-in cache * fix: cov pipeline * fix: build syntax * chore: fix build step * fix: create engines folder on launch * chore: update ui delete engine variant with modal confirmation * chore: fix linter * chore: add installing progress for Local Engine download * chore: wording --------- Co-authored-by: Louis <louis@jan.ai>
28 lines
737 B
TypeScript
28 lines
737 B
TypeScript
import { cpuInfo } from 'cpu-instructions'
|
|
|
|
// Check the CPU info and determine the supported instruction set
|
|
const info = cpuInfo.cpuInfo().some((e) => e.toUpperCase() === 'AVX512')
|
|
? 'avx512'
|
|
: cpuInfo.cpuInfo().some((e) => e.toUpperCase() === 'AVX2')
|
|
? 'avx2'
|
|
: cpuInfo.cpuInfo().some((e) => e.toUpperCase() === 'AVX')
|
|
? 'avx'
|
|
: 'noavx'
|
|
|
|
// Send the result and wait for confirmation before exiting
|
|
new Promise<void>((resolve, reject) => {
|
|
// @ts-ignore
|
|
process.send(info, (error: Error | null) => {
|
|
if (error) {
|
|
reject(error)
|
|
} else {
|
|
resolve()
|
|
}
|
|
})
|
|
})
|
|
.then(() => process.exit(0))
|
|
.catch((error) => {
|
|
console.error('Failed to send info:', error)
|
|
process.exit(1)
|
|
})
|