{"record":{"id":"6f8d07f7304437d1","repo":"deepseek-ai/deepseek-harness","slug":"harness-definetool-path-names-undeclared-proper","errorCode":null,"errorMessage":"harness.defineTool ${path} names undeclared property ${JSON.stringify(name)}","messagePattern":"harness\\.defineTool (.+?) names undeclared property (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/extensions/cordis-host-runner/src/guard.ts","lineNumber":255,"sourceCode":"    }\n  }\n  return { spec: normalizePropertyMap(value, path, new Set(), false) }\n}\n\n/** Validate raw required names and return their lookup set. */\nfunction normalizeRequiredNames(value: unknown, properties: Record<string, unknown>, path: string): Set<string> {\n  if (value === undefined) return new Set()\n  if (!isDensePlainArray(value)) {\n    throw new Error(`harness.defineTool ${path} must be an array of declared property names`)\n  }\n  const names = new Set<string>()\n  for (let index = 0; index < value.length; index++) {\n    const name = value[index]\n    if (typeof name !== 'string') {\n      throw new Error(`harness.defineTool ${path} must be an array of declared property names`)\n    }\n    names.add(name)\n    if (!Object.hasOwn(properties, name)) throw new Error(`harness.defineTool ${path} names undeclared property ${JSON.stringify(name)}`)\n  }\n  return names\n}\n\n/** Mutable holder used only while one normalized property-map root is unresolved. */\ninterface NormalizeRoot {\n  value?: Record<string, unknown>\n}\n\n/** Where a normalized value node is installed. */\ntype NormalizeValueDestination =\n  | { kind: 'property'; target: Record<string, unknown>; key: string }\n  | { kind: 'item'; target: Record<string, unknown> }\n  | { kind: 'one-of'; target: Record<string, unknown>[]; index: number }\n\n/** Where a normalized property map is installed. */\ntype NormalizeMapDestination =\n  | { kind: 'root'; holder: NormalizeRoot }","sourceCodeStart":237,"sourceCodeEnd":273,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/extensions/cordis-host-runner/src/guard.ts#L237-L273","documentation":"Error \"harness.defineTool ${path} names undeclared property ${JSON.stringify(name)}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/extensions/cordis-host-runner/src/guard.ts:255 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"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"}