Skip to content

Commit 9acbc99

Browse files
refactor: address CodeRabbit nitpick suggestions
- Update Opus max_output_tokens to 64K (Opus 4.5 spec) - Replace empty interfaces with Record<string, never> type aliases - Optimize buildPromptString to iterate in reverse for efficiency - Make claudeAgentSdk delegate to createClaudeAgentSdk to reduce duplication 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent ba501a5 commit 9acbc99

File tree

3 files changed

+12
-24
lines changed

3 files changed

+12
-24
lines changed

packages/typescript/ai-claude-agent-sdk/src/claude-agent-sdk-adapter.ts

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -587,28 +587,20 @@ export class ClaudeAgentSdk extends BaseAdapter<
587587
* Extracts text content from the last user message.
588588
*/
589589
private buildPromptString(messages: Array<ModelMessage>): string {
590-
// Find all user messages and combine them
591-
const userMessages: Array<string> = []
592-
593-
for (const message of messages) {
594-
if (message.role === 'user') {
595-
let content: string
590+
// Find the last user message by iterating in reverse
591+
for (let i = messages.length - 1; i >= 0; i--) {
592+
const message = messages[i]
593+
if (message?.role === 'user') {
596594
if (typeof message.content === 'string') {
597-
content = message.content
598-
} else if (message.content) {
599-
content = message.content
595+
return message.content
596+
} else if (message.content && message.content.length > 0) {
597+
return message.content
600598
.map((part) => this.convertContentPartToText(part))
601599
.join('\n')
602-
} else {
603-
content = ''
604600
}
605-
userMessages.push(content)
606601
}
607602
}
608-
609-
// Return the last user message or empty string
610-
const lastMessage = userMessages[userMessages.length - 1]
611-
return lastMessage ?? ''
603+
return ''
612604
}
613605

614606
}
@@ -660,7 +652,7 @@ export function createClaudeAgentSdk(
660652
* ```
661653
*/
662654
export function claudeAgentSdk(config?: ClaudeAgentSdkConfig): ClaudeAgentSdk {
663-
return new ClaudeAgentSdk(config)
655+
return createClaudeAgentSdk(config)
664656
}
665657

666658
export type { ClaudeAgentSdkConfig }

packages/typescript/ai-claude-agent-sdk/src/message-types.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,13 @@ export interface ClaudeAgentSdkDocumentMetadata {
7272
* Metadata for Claude Agent SDK audio content parts.
7373
* Note: Audio is NOT supported by Claude - placeholder for type compatibility.
7474
*/
75-
export interface ClaudeAgentSdkAudioMetadata {
76-
// Audio not supported - placeholder for type compatibility
77-
}
75+
export type ClaudeAgentSdkAudioMetadata = Record<string, never>
7876

7977
/**
8078
* Metadata for Claude Agent SDK video content parts.
8179
* Note: Video is NOT supported by Claude - placeholder for type compatibility.
8280
*/
83-
export interface ClaudeAgentSdkVideoMetadata {
84-
// Video not supported - placeholder for type compatibility
85-
}
81+
export type ClaudeAgentSdkVideoMetadata = Record<string, never>
8682

8783
/**
8884
* Map of modality types to their Claude Agent SDK-specific metadata types.

packages/typescript/ai-claude-agent-sdk/src/model-meta.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const CLAUDE_OPUS = {
6565
name: 'Claude Opus',
6666
id: 'opus',
6767
context_window: 200_000,
68-
max_output_tokens: 32_000,
68+
max_output_tokens: 64_000, // Opus 4.5 supports 64K output tokens
6969
knowledge_cutoff: '2025-01',
7070
pricing: {
7171
input: { normal: 15 },

0 commit comments

Comments
 (0)