-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsdk.d.ts
More file actions
150 lines (133 loc) · 3.17 KB
/
sdk.d.ts
File metadata and controls
150 lines (133 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import type {
Message as APIAssistantMessage,
MessageParam as APIUserMessage,
Usage,
} from '@anthropic-ai/sdk/resources/index.mjs'
export type NonNullableUsage = {
[K in keyof Usage]: NonNullable<Usage[K]>
}
export type ApiKeySource = 'user' | 'project' | 'org' | 'temporary'
export type ConfigScope = 'local' | 'user' | 'project'
export type McpStdioServerConfig = {
type?: 'stdio' // Optional for backwards compatibility
command: string
args?: string[]
env?: Record<string, string>
}
export type McpSSEServerConfig = {
type: 'sse'
url: string
headers?: Record<string, string>
}
export type McpHttpServerConfig = {
type: 'http'
url: string
headers?: Record<string, string>
}
export type McpServerConfig = McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig
export type Options = {
abortController?: AbortController
allowedTools?: string[]
appendSystemPrompt?: string
customSystemPrompt?: string
cwd?: string
disallowedTools?: string[]
executable?: 'bun' | 'deno' | 'node'
executableArgs?: string[]
maxThinkingTokens?: number
maxTurns?: number
mcpServers?: Record<string, McpServerConfig>
pathToClaudeCodeExecutable?: string
permissionMode?: PermissionMode
permissionPromptToolName?: string
continue?: boolean
resume?: string
model?: string
fallbackModel?: string
}
export type PermissionMode =
| 'default'
| 'acceptEdits'
| 'bypassPermissions'
| 'plan'
export type SDKUserMessage = {
type: 'user'
message: APIUserMessage
parent_tool_use_id: string | null
session_id: string
}
export type SDKAssistantMessage = {
type: 'assistant'
message: APIAssistantMessage
parent_tool_use_id: string | null
session_id: string
}
export type SDKResultMessage =
| {
type: 'result'
subtype: 'success'
duration_ms: number
duration_api_ms: number
is_error: boolean
num_turns: number
result: string
session_id: string
total_cost_usd: number
usage: NonNullableUsage
}
| {
type: 'result'
subtype: 'error_max_turns' | 'error_during_execution'
duration_ms: number
duration_api_ms: number
is_error: boolean
num_turns: number
session_id: string
total_cost_usd: number
usage: NonNullableUsage
}
export type SDKSystemMessage = {
type: 'system'
subtype: 'init'
apiKeySource: ApiKeySource
cwd: string
session_id: string
tools: string[]
mcp_servers: {
name: string
status: string
}[]
model: string
permissionMode: PermissionMode
}
export type SDKMessage =
| SDKAssistantMessage
| SDKUserMessage
| SDKResultMessage
| SDKSystemMessage
type Props = {
prompt: string | AsyncIterable<SDKUserMessage>
abortController?: AbortController
options?: Options
}
/**
* Query Claude Code
*
* Behavior:
* - Yields a message at a time
* - Uses the tools and commands you give it
*
* Usage:
* ```ts
* const response = query({ prompt: "Help me write a function", options: {} })
* for await (const message of response) {
* console.log(message)
* }
* ```
*/
export function query({
prompt,
abortController,
options,
}: Props): AsyncGenerator<SDKMessage>
export class AbortError extends Error {}