feat: 全部类型问题解决

This commit is contained in:
claude-code-best
2026-04-11 10:24:00 +08:00
parent 7088fe3c8b
commit 6a70056910
135 changed files with 671 additions and 503 deletions

View File

@@ -39,6 +39,7 @@ import {
getAgentListingDeltaAttachment,
getDeferredToolsDeltaAttachment,
getMcpInstructionsDeltaAttachment,
type Attachment,
} from '../../utils/attachments.js'
import { getMemoryPath } from '../../utils/config.js'
import { COMPACT_MAX_OUTPUT_TOKENS } from '../../utils/context.js'
@@ -114,6 +115,7 @@ import {
roughTokenCountEstimation,
roughTokenCountEstimationForMessages,
} from '../tokenEstimation.js'
import type { SDKStatus } from '../../entrypoints/agentSdkTypes.js'
import { groupMessagesByApiRound } from './grouping.js'
import {
getCompactPrompt,
@@ -150,7 +152,7 @@ export function stripImagesFromMessages(messages: Message[]): Message[] {
return message
}
const content = message.message.content
const content = message.message!.content
if (!Array.isArray(content)) {
return message
}
@@ -216,8 +218,8 @@ export function stripReinjectedAttachments(messages: Message[]): Message[] {
m =>
!(
m.type === 'attachment' &&
(m.attachment.type === 'skill_discovery' ||
m.attachment.type === 'skill_listing')
(m.attachment!.type === 'skill_discovery' ||
m.attachment!.type === 'skill_listing')
),
)
}
@@ -251,8 +253,8 @@ export function truncateHeadForPTLRetry(
// (drops only the marker, re-adds it, zero progress on retry 2+).
const input =
messages[0]?.type === 'user' &&
messages[0].isMeta &&
messages[0].message.content === PTL_RETRY_MARKER
messages[0]?.isMeta &&
messages[0]?.message?.content === PTL_RETRY_MARKER
? messages.slice(1)
: messages
@@ -760,7 +762,7 @@ export async function compactConversation(
context.setStreamMode?.('requesting')
context.setResponseLength?.(() => 0)
context.onCompactProgress?.({ type: 'compact_end' })
context.setSDKStatus?.(null)
context.setSDKStatus?.("" as SDKStatus)
}
}
@@ -1103,7 +1105,7 @@ export async function partialCompactConversation(
context.setStreamMode?.('requesting')
context.setResponseLength?.(() => 0)
context.onCompactProgress?.({ type: 'compact_end' })
context.setSDKStatus?.(null)
context.setSDKStatus?.("" as SDKStatus)
}
}
@@ -1453,7 +1455,7 @@ export async function createPostCompactFileAttachments(
)
let usedTokens = 0
return results.filter((result): result is AttachmentMessage => {
return results.filter((result): result is AttachmentMessage<Attachment> => {
if (result === null) {
return false
}
@@ -1613,10 +1615,10 @@ export async function createAsyncAgentAttachmentsIfNeeded(
function collectReadToolFilePaths(messages: Message[]): Set<string> {
const stubIds = new Set<string>()
for (const message of messages) {
if (message.type !== 'user' || !Array.isArray(message.message.content)) {
if (message.type !== 'user' || !Array.isArray(message.message!.content)) {
continue
}
for (const block of message.message.content) {
for (const block of message.message!.content) {
if (
block.type === 'tool_result' &&
typeof block.content === 'string' &&
@@ -1631,11 +1633,11 @@ function collectReadToolFilePaths(messages: Message[]): Set<string> {
for (const message of messages) {
if (
message.type !== 'assistant' ||
!Array.isArray(message.message.content)
!Array.isArray(message.message!.content)
) {
continue
}
for (const block of message.message.content) {
for (const block of message.message!.content) {
if (
block.type !== 'tool_use' ||
block.name !== FILE_READ_TOOL_NAME ||