{"record":{"id":"61fde8bbab0e2a6d","repo":"deepseek-ai/deepseek-harness","slug":"typert-generator-cannot-find-workspace-root-above","errorCode":null,"errorMessage":"typert-generator: cannot find workspace root above ${start}","messagePattern":"typert-generator: cannot find workspace root above (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/typert/generator/src/tsdown-plugin.ts","lineNumber":153,"sourceCode":"  return Object.hasOwn(exportsField, './typert')\n    || Object.hasOwn(exportsField, './client/typert')\n    || Object.hasOwn(exportsField, './remote')\n}\n\nfunction packageRoot(start: string, workspace: string): string | undefined {\n  let current = resolve(start)\n  while (current !== workspace) {\n    if (existsSync(join(current, 'package.json'))) return current\n    current = dirname(current)\n  }\n  return undefined\n}\n\nfunction workspaceRoot(start: string): string {\n  let current = resolve(start)\n  while (!existsSync(join(current, 'tsconfig.host.json'))) {\n    const parent = dirname(current)\n    if (parent === current) throw new Error(`typert-generator: cannot find workspace root above ${start}`)\n    current = parent\n  }\n  return current\n}\n","sourceCodeStart":135,"sourceCodeEnd":158,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/typert/generator/src/tsdown-plugin.ts#L135-L158","documentation":"Error \"typert-generator: cannot find workspace root above ${start}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/typert/generator/src/tsdown-plugin.ts:153 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run the build from inside the workspace so the plugin can locate the workspace root."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}