feat: Add OpenAI spec compliance with developer role support #36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
developerrole to message types for GPT-5.x and o-series models (HIGH priority)src/types/openai.tsConversationMessagePropsandChatMessageinterfaces to includedeveloperroleisValidRole,supportsDeveloperRole,validateRolefunctionrole (recommend usingtoolinstead)Technical Details
New Types Added (
src/types/openai.ts)MessageRoleconst object with all valid roles includingdeveloperOpenAIModelconst object with GPT-5.x, o-series, and legacy modelsDEVELOPER_ROLE_MODELSarray identifying models requiringdeveloperrolesupportsDeveloperRole(),isValidRole(),isDeprecatedRole(),getReplacementRole(),validateRole(),createMessage()Updated Interfaces
ConversationMessageProps.role: Added'developer'to union typeMarkdownMessageProps.role: Updated to useConversationMessageRoleChatMessage.role: Added'developer'to union typeTesting
tests/openai-types.spec.tswith Playwright tests covering:functionroleBackward Compatibility
user,assistant,tool) continue to work unchangedfunctionrole is still supported but will log a deprecation warningRelated
Test plan
npm run type-check- TypeScript compilation passesnpm run lint- ESLint passes with no warningsnpm run build- Production build succeedsdeveloperrole can be used in ChatMessagefunctionroleGenerated with Claude Code