deepseek-ai/deepseek-harness · error · TypertAnalysisError

typert(${artifact.face}): ${artifact.package} must export ${

Error message

typert(${artifact.face}): ${artifact.package} must export ${subpath} as ${JSON.stringify(expected)}

What it means

Error "typert(${artifact.face}): ${artifact.package} must export ${subpath} as ${JSON.stringify(expected)}" thrown in deepseek-ai/deepseek-harness.

Source

Thrown at packages/typert/generator/src/workspace.ts:83

    return artifacts
  }

  private validateExport(artifact: WorkspaceEmitResult): void {
    const manifestPath = resolve(this.root, artifact.packageRoot, 'package.json')
    const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as {
      exports?: unknown
      files?: unknown
    }
    const subpath = artifact.face === 'host' ? './typert' : './client/typert'
    const expected = {
      types: `./lib/typert.${artifact.face}.d.ts`,
      default: `./lib/typert.${artifact.face}.js`,
    }
    const actual = manifest.exports !== null && typeof manifest.exports === 'object'
      ? (manifest.exports as Record<string, unknown>)[subpath]
      : undefined
    if (!sameExport(actual, expected)) {
      throw new TypertAnalysisError(
        `typert(${artifact.face}): ${artifact.package} must export ${subpath} as ${JSON.stringify(expected)}`,
      )
    }
    const files = Array.isArray(manifest.files) ? manifest.files : []
    for (const file of [`lib/typert.${artifact.face}.js`, `lib/typert.${artifact.face}.d.ts`]) {
      if (!files.includes(file)) {
        throw new TypertAnalysisError(`typert(${artifact.face}): ${artifact.package} package files must include ${file}`)
      }
    }
    if (artifact.face !== 'host') return
    const remoteExpected = {
      types: './lib/typert.remote-client.d.ts',
      default: './lib/typert.remote-client.js',
    }
    const remoteActual = manifest.exports !== null && typeof manifest.exports === 'object'
      ? (manifest.exports as Record<string, unknown>)['./remote']
      : undefined
    // The declaration map is emitted beside these two but never published: it

View on GitHub (pinned to b150a551b8)

Solutions

  1. Fix the package exports so the subpath maps to the expected value.

When it happens

Trigger: Thrown at packages/typert/generator/src/workspace.ts:83 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24). Data as JSON: /api/errors/c5ada34bffdfba04. Report an issue: GitHub.