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

@@ -68,7 +68,8 @@ export function isResultSuccessful(
if (!message) return false
if (message.type === 'assistant') {
const lastContent = last(message.message.content)
const content = message.message!.content
const lastContent = Array.isArray(content) ? content[content.length - 1] : undefined
return (
lastContent?.type === 'text' ||
lastContent?.type === 'thinking' ||
@@ -78,7 +79,7 @@ export function isResultSuccessful(
if (message.type === 'user') {
// Check if all content blocks are tool_result type
const content = message.message.content
const content = message.message!.content
if (
Array.isArray(content) &&
content.length > 0 &&
@@ -323,8 +324,8 @@ export async function* handleOrphanedPermission(
const alreadyPresent = mutableMessages.some(
m =>
m.type === 'assistant' &&
Array.isArray(m.message.content) &&
m.message.content.some(
Array.isArray(m.message!.content) &&
m.message!.content.some(
b => b.type === 'tool_use' && 'id' in b && b.id === toolUseID,
),
)
@@ -385,9 +386,9 @@ export function extractReadFilesFromMessages(
for (const message of messages) {
if (
message.type === 'assistant' &&
Array.isArray(message.message.content)
Array.isArray(message.message!.content)
) {
for (const content of message.message.content) {
for (const content of message.message!.content) {
if (
content.type === 'tool_use' &&
content.name === FILE_READ_TOOL_NAME
@@ -442,8 +443,8 @@ export function extractReadFilesFromMessages(
// Second pass: find corresponding tool results and extract content
for (const message of messages) {
if (message.type === 'user' && Array.isArray(message.message.content)) {
for (const content of message.message.content) {
if (message.type === 'user' && Array.isArray(message.message!.content)) {
for (const content of message.message!.content) {
if (content.type === 'tool_result' && content.tool_use_id) {
// Handle Read tool results
const readFilePath = fileReadToolUseIds.get(content.tool_use_id)
@@ -537,9 +538,9 @@ export function extractBashToolsFromMessages(messages: Message[]): Set<string> {
for (const message of messages) {
if (
message.type === 'assistant' &&
Array.isArray(message.message.content)
Array.isArray(message.message!.content)
) {
for (const content of message.message.content) {
for (const content of message.message!.content) {
if (content.type === 'tool_use' && content.name === BASH_TOOL_NAME) {
const { input } = content
if (