mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 13:55:50 +00:00
feat: 问就是封包
This commit is contained in:
@@ -159,7 +159,7 @@ export async function getAnthropicClient({
|
||||
? process.env.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION
|
||||
: getAWSRegion()
|
||||
|
||||
const bedrockArgs: ConstructorParameters<typeof AnthropicBedrock>[0] = {
|
||||
const bedrockArgs: any = {
|
||||
...ARGS,
|
||||
awsRegion,
|
||||
...(isEnvTruthy(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH) && {
|
||||
@@ -290,7 +290,7 @@ export async function getAnthropicClient({
|
||||
const vertexArgs: ConstructorParameters<typeof AnthropicVertex>[0] = {
|
||||
...ARGS,
|
||||
region: getVertexRegionForModel(model),
|
||||
googleAuth,
|
||||
googleAuth: googleAuth as any,
|
||||
...(isDebugToStdErr() && { logger: createStderrLogger() }),
|
||||
}
|
||||
// we have always been lying about the return type - this doesn't support batching or models
|
||||
|
||||
@@ -108,7 +108,7 @@ export function getPromptTooLongTokenGap(
|
||||
return undefined
|
||||
}
|
||||
const { actualTokens, limitTokens } = parsePromptTooLongTokenCounts(
|
||||
msg.errorDetails,
|
||||
msg.errorDetails as string,
|
||||
)
|
||||
if (actualTokens === undefined || limitTokens === undefined) {
|
||||
return undefined
|
||||
@@ -148,7 +148,7 @@ export function isMediaSizeErrorMessage(msg: AssistantMessage): boolean {
|
||||
return (
|
||||
msg.isApiErrorMessage === true &&
|
||||
msg.errorDetails !== undefined &&
|
||||
isMediaSizeError(msg.errorDetails)
|
||||
isMediaSizeError(msg.errorDetails as string)
|
||||
)
|
||||
}
|
||||
export const CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = 'Credit balance is too low'
|
||||
|
||||
@@ -1279,7 +1279,7 @@ export async function getAllMcpConfigs(): Promise<{
|
||||
// Keys never collide (`slack` vs `claude.ai Slack`) so the merge below
|
||||
// won't catch this — need content-based dedup by URL signature.
|
||||
const { servers: dedupedClaudeAi } = dedupClaudeAiMcpServers(
|
||||
claudeaiMcpServers,
|
||||
claudeaiMcpServers as Record<string, ScopedMcpServerConfig>,
|
||||
claudeCodeServers,
|
||||
)
|
||||
|
||||
@@ -1351,6 +1351,7 @@ export function parseMcpConfig(params: {
|
||||
if (
|
||||
getPlatform() === 'windows' &&
|
||||
(!configToCheck.type || configToCheck.type === 'stdio') &&
|
||||
('command' in configToCheck) &&
|
||||
(configToCheck.command === 'npx' ||
|
||||
configToCheck.command.endsWith('\\npx') ||
|
||||
configToCheck.command.endsWith('/npx'))
|
||||
|
||||
@@ -99,7 +99,7 @@ export async function* runPostToolUseHooks<Input extends AnyObject, Output>(
|
||||
result.message.attachment.type === 'hook_blocking_error'
|
||||
)
|
||||
) {
|
||||
yield { message: result.message }
|
||||
yield { message: result.message as AttachmentMessage | ProgressMessage<HookProgress> }
|
||||
}
|
||||
|
||||
if (result.blockingError) {
|
||||
@@ -251,7 +251,7 @@ export async function* runPostToolUseFailureHooks<Input extends AnyObject>(
|
||||
result.message.attachment.type === 'hook_blocking_error'
|
||||
)
|
||||
) {
|
||||
yield { message: result.message }
|
||||
yield { message: result.message as AttachmentMessage | ProgressMessage<HookProgress> }
|
||||
}
|
||||
|
||||
if (result.blockingError) {
|
||||
@@ -476,7 +476,7 @@ export async function* runPreToolUseHooks(
|
||||
)) {
|
||||
try {
|
||||
if (result.message) {
|
||||
yield { type: 'message', message: { message: result.message } }
|
||||
yield { type: 'message', message: { message: result.message as AttachmentMessage | ProgressMessage<HookProgress> } }
|
||||
}
|
||||
if (result.blockingError) {
|
||||
const denialMessage = getPreToolHookBlockingMessage(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { BetaContentBlock } from '@anthropic-ai/sdk/resources/beta/messages/messages.mjs'
|
||||
import type { BetaContentBlock, BetaUsage } from '@anthropic-ai/sdk/resources/beta/messages/messages.mjs'
|
||||
import { createHash, randomUUID, type UUID } from 'crypto'
|
||||
import { mkdir, readFile, writeFile } from 'fs/promises'
|
||||
import isPlainObject from 'lodash-es/isPlainObject.js'
|
||||
@@ -166,8 +166,8 @@ function addCachedCostToTotalSessionCost(
|
||||
if (message.type === 'stream_event') {
|
||||
return
|
||||
}
|
||||
const model = message.message.model
|
||||
const usage = message.message.usage
|
||||
const model = (message as AssistantMessage).message.model as string
|
||||
const usage = (message as AssistantMessage).message.usage as BetaUsage
|
||||
const costUSD = calculateUSDCost(model, usage)
|
||||
addToTotalSessionCost(costUSD, usage, model)
|
||||
}
|
||||
@@ -251,7 +251,7 @@ function mapAssistantMessage(
|
||||
timestamp: message.timestamp,
|
||||
message: {
|
||||
...message.message,
|
||||
content: message.message.content
|
||||
content: (message.message.content as BetaContentBlock[])
|
||||
.map(_ => {
|
||||
switch (_.type) {
|
||||
case 'text':
|
||||
@@ -269,7 +269,7 @@ function mapAssistantMessage(
|
||||
return _ // Handle other block types unchanged
|
||||
}
|
||||
})
|
||||
.filter(Boolean) as BetaContentBlock[],
|
||||
.filter(Boolean) as any,
|
||||
},
|
||||
type: 'assistant',
|
||||
}
|
||||
@@ -282,7 +282,7 @@ function mapMessage(
|
||||
uuid?: UUID,
|
||||
): AssistantMessage | SystemAPIErrorMessage | StreamEvent {
|
||||
if (message.type === 'assistant') {
|
||||
return mapAssistantMessage(message, f, index, uuid)
|
||||
return mapAssistantMessage(message as AssistantMessage, f, index, uuid)
|
||||
} else {
|
||||
return message
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user