mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
52 lines
2.3 KiB
JavaScript
52 lines
2.3 KiB
JavaScript
/** Verify every compiled companion through its package self-reference under plain Node. */
|
|
|
|
import { spawnSync } from 'node:child_process'
|
|
import { globSync, readFileSync } from 'node:fs'
|
|
import { dirname, resolve } from 'node:path'
|
|
import { pathToFileURL } from 'node:url'
|
|
|
|
const root = resolve(import.meta.dirname, '..')
|
|
const loaderUrl = pathToFileURL(resolve(root, 'vendor/loader/lib/index.js')).href
|
|
const failures = []
|
|
const manifests = globSync('packages/*/*/package.json', { cwd: root }).sort()
|
|
|
|
for (const manifestPath of manifests) {
|
|
const packageDir = dirname(resolve(root, manifestPath))
|
|
const manifest = JSON.parse(readFileSync(resolve(root, manifestPath), 'utf8'))
|
|
const packageName = manifest.name
|
|
if (typeof packageName !== 'string' || packageName.length === 0) {
|
|
failures.push(`${manifestPath}: missing package name`)
|
|
continue
|
|
}
|
|
|
|
const probe = `
|
|
const companion = await import(${JSON.stringify(`${packageName}/invariant`)});
|
|
const { default: Loader } = await import(${JSON.stringify(loaderUrl)});
|
|
if ('default' in companion) throw new Error('companion has a default export');
|
|
const loader = Object.create(Loader.prototype);
|
|
const unwrapped = loader.unwrapExports(companion);
|
|
if (unwrapped !== companion) throw new Error('Loader collapsed the companion namespace');
|
|
if (typeof unwrapped.name !== 'string') throw new Error('companion name is missing');
|
|
if (!Array.isArray(unwrapped.inject) || !unwrapped.inject.includes('invariants')) {
|
|
throw new Error('companion does not inject invariants');
|
|
}
|
|
if (typeof unwrapped.apply !== 'function') throw new Error('companion apply is missing');
|
|
`
|
|
const result = spawnSync(process.execPath, ['--input-type=module', '--eval', probe], {
|
|
cwd: packageDir,
|
|
encoding: 'utf8',
|
|
})
|
|
if (result.status === 0) continue
|
|
const detail = result.error?.message
|
|
?? (result.stderr.trim() || result.stdout.trim() || `node exited ${result.status}`)
|
|
failures.push(`${packageName}: ${detail}`)
|
|
}
|
|
|
|
if (failures.length > 0) {
|
|
console.error('verify-built-package-invariants: compiled companion failures:')
|
|
for (const failure of failures) console.error(` ${failure}`)
|
|
process.exit(1)
|
|
}
|
|
|
|
console.log(`verify-built-package-invariants: ${manifests.length} compiled companion(s) passed plain-Node Loader checks.`)
|