Summary
Sibling of #1012 (Python SDK), found during its consensus design pass. The ornn-api wire and the authoritative OpenAPI schema emit guid for skills (search enrichItem and detail buildDetailResponse; shared/.../schemas.ts declares guid for both detail and search-item), but the TypeScript SDK SkillSummary declares readonly id: string (sdk/typescript/src/types.ts:16) and the quickstart docs use .id.
Why it matters
Unlike Python (which raises KeyError: 'id' — #1012), TS silently yields undefined for skill.id on real API responses, so the field is quietly broken rather than crashing. This is the same root contract-drift as #1012 and the #1011 family.
Suggested fix
Rename SkillSummary.id → guid in sdk/typescript/src/types.ts (+ SkillDetail), update the mapping and the README/quickstart .id references, and align with the Python SDK fix in #1012. Add/adjust a fixture matching the real wire shape (guid, no id).
Related to #1012, #1011.
Summary
Sibling of #1012 (Python SDK), found during its consensus design pass. The ornn-api wire and the authoritative OpenAPI schema emit
guidfor skills (searchenrichItemand detailbuildDetailResponse;shared/.../schemas.tsdeclaresguidfor both detail and search-item), but the TypeScript SDKSkillSummarydeclaresreadonly id: string(sdk/typescript/src/types.ts:16) and the quickstart docs use.id.Why it matters
Unlike Python (which raises
KeyError: 'id'— #1012), TS silently yieldsundefinedforskill.idon real API responses, so the field is quietly broken rather than crashing. This is the same root contract-drift as #1012 and the #1011 family.Suggested fix
Rename
SkillSummary.id→guidinsdk/typescript/src/types.ts(+SkillDetail), update the mapping and the README/quickstart.idreferences, and align with the Python SDK fix in #1012. Add/adjust a fixture matching the real wire shape (guid, noid).Related to #1012, #1011.