#!/usr/bin/env node import assert from 'node:assert/strict' import { spawnSync } from 'node:child_process' import { resolve } from 'node:path' function render(overrides = {}) { const env = { ...process.env, DSH_DEFAULT_WORKSPACE: '/workspace', DSH_IMAGE_TAG: 'latest', DSH_LISTEN_ADDRESS: '0.0.0.0', DSH_PORT: '3080', DSH_PROXY_POLYFILL: 'true', DSH_TELEMETRY_DISABLED: 'true', DSH_TRUSTED_HOSTS: '', DSH_WORKSPACE: './workspace', ...overrides, } if (!Object.hasOwn(overrides, 'DSH_SUDO_ENABLED')) delete env.DSH_SUDO_ENABLED const result = spawnSync( 'docker', ['compose', '--env-file', '/dev/null', '-f', 'docker-compose.yaml', 'config', '--format', 'json'], { encoding: 'utf8', env, }, ) assert.equal(result.status, 0, result.stderr) return JSON.parse(result.stdout).services['deepseek-harness'] } const defaults = render() assert.equal(defaults.image, 'szcq/deepseek-harness:latest') assert.equal(defaults.container_name, 'deepseek-harness') assert.equal(defaults.ports[0].host_ip, '0.0.0.0') assert.equal(defaults.ports[0].published, '3080') assert.equal(Object.hasOwn(defaults.environment, 'DSH_PROXY_USERNAME'), false) assert.equal(Object.hasOwn(defaults.environment, 'DSH_PROXY_PASSWORD'), false) assert.equal(Object.hasOwn(defaults.environment, 'DSH_PLATFORM_PASSWORD'), false) assert.equal(defaults.environment.DSH_PROXY_POLYFILL, 'true') assert.equal(defaults.environment.DSH_TRUSTED_HOSTS, '') assert.equal(Object.hasOwn(defaults.environment, 'DSH_UPDATE_METADATA_URL'), false) assert.deepEqual(defaults.group_add, ['dsh-sudo-false']) assert.equal(defaults.environment.DSH_EXPERIMENTAL_PROBATION_SECONDS, '120') assert.equal(defaults.environment.DSH_LOG_MAX_BYTES, '104857600') assert.equal(defaults.environment.DSH_PLATFORM_DATA, '/data/platform') assert.equal(defaults.environment.DSH_HOME, '/data/dsh') assert.deepEqual(defaults.volumes.map(volume => volume.target).sort(), ['/data/dsh', '/data/platform', '/workspace']) assert.equal(defaults.volumes.find(volume => volume.target === '/data/dsh').type, 'volume') assert.equal(defaults.volumes.find(volume => volume.target === '/data/platform').type, 'volume') assert.equal(defaults.volumes.find(volume => volume.target === '/workspace').source, resolve('./workspace')) const configured = render({ DSH_IMAGE_TAG: '1.0.0', DSH_LISTEN_ADDRESS: '0.0.0.0', DSH_PORT: '4080', DSH_PROXY_POLYFILL: 'false', DSH_SUDO_ENABLED: 'true', DSH_TELEMETRY_DISABLED: 'false', DSH_TRUSTED_HOSTS: '192.168.1.10,dsh.example:8443', }) assert.equal(configured.image, 'szcq/deepseek-harness:1.0.0') assert.equal(configured.ports[0].host_ip, '0.0.0.0') assert.equal(configured.ports[0].published, '4080') assert.equal(Object.hasOwn(configured.environment, 'DSH_PROXY_USERNAME'), false) assert.equal(Object.hasOwn(configured.environment, 'DSH_PROXY_PASSWORD'), false) assert.equal(Object.hasOwn(configured.environment, 'DSH_PLATFORM_PASSWORD'), false) assert.equal(configured.environment.DSH_PROXY_POLYFILL, 'false') assert.equal(configured.environment.DSH_TELEMETRY_DISABLED, 'false') assert.equal(configured.environment.DSH_TRUSTED_HOSTS, '192.168.1.10,dsh.example:8443') assert.deepEqual(configured.group_add, ['dsh-sudo-true']) console.log('Compose configuration checks passed')