@boostecom/provider 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -0
- package/dist/index.cjs +2522 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +848 -0
- package/dist/index.d.ts +848 -0
- package/dist/index.js +2484 -0
- package/dist/index.js.map +1 -0
- package/docs/content/README.md +337 -0
- package/docs/content/agent-teams.mdx +324 -0
- package/docs/content/api.mdx +757 -0
- package/docs/content/best-practices.mdx +624 -0
- package/docs/content/examples.mdx +675 -0
- package/docs/content/guide.mdx +516 -0
- package/docs/content/index.mdx +99 -0
- package/docs/content/installation.mdx +246 -0
- package/docs/content/skills.mdx +548 -0
- package/docs/content/troubleshooting.mdx +588 -0
- package/docs/examples/README.md +499 -0
- package/docs/examples/abort-signal.ts +125 -0
- package/docs/examples/agent-teams.ts +122 -0
- package/docs/examples/basic-usage.ts +73 -0
- package/docs/examples/check-cli.ts +51 -0
- package/docs/examples/conversation-history.ts +69 -0
- package/docs/examples/custom-config.ts +90 -0
- package/docs/examples/generate-object-constraints.ts +209 -0
- package/docs/examples/generate-object.ts +211 -0
- package/docs/examples/hooks-callbacks.ts +63 -0
- package/docs/examples/images.ts +76 -0
- package/docs/examples/integration-test.ts +241 -0
- package/docs/examples/limitations.ts +150 -0
- package/docs/examples/logging-custom-logger.ts +99 -0
- package/docs/examples/logging-default.ts +55 -0
- package/docs/examples/logging-disabled.ts +74 -0
- package/docs/examples/logging-verbose.ts +64 -0
- package/docs/examples/long-running-tasks.ts +179 -0
- package/docs/examples/message-injection.ts +210 -0
- package/docs/examples/mid-stream-injection.ts +126 -0
- package/docs/examples/run-all-examples.sh +48 -0
- package/docs/examples/sdk-tools-callbacks.ts +49 -0
- package/docs/examples/skills-discovery.ts +144 -0
- package/docs/examples/skills-management.ts +140 -0
- package/docs/examples/stream-object.ts +80 -0
- package/docs/examples/streaming.ts +52 -0
- package/docs/examples/structured-output-repro.ts +227 -0
- package/docs/examples/tool-management.ts +215 -0
- package/docs/examples/tool-streaming.ts +132 -0
- package/docs/examples/zod4-compatibility-test.ts +290 -0
- package/docs/src/claude-code-language-model.test.ts +3883 -0
- package/docs/src/claude-code-language-model.ts +2586 -0
- package/docs/src/claude-code-provider.test.ts +97 -0
- package/docs/src/claude-code-provider.ts +179 -0
- package/docs/src/convert-to-claude-code-messages.images.test.ts +104 -0
- package/docs/src/convert-to-claude-code-messages.test.ts +193 -0
- package/docs/src/convert-to-claude-code-messages.ts +419 -0
- package/docs/src/errors.test.ts +213 -0
- package/docs/src/errors.ts +216 -0
- package/docs/src/index.test.ts +49 -0
- package/docs/src/index.ts +98 -0
- package/docs/src/logger.integration.test.ts +164 -0
- package/docs/src/logger.test.ts +184 -0
- package/docs/src/logger.ts +65 -0
- package/docs/src/map-claude-code-finish-reason.test.ts +120 -0
- package/docs/src/map-claude-code-finish-reason.ts +60 -0
- package/docs/src/mcp-helpers.test.ts +71 -0
- package/docs/src/mcp-helpers.ts +123 -0
- package/docs/src/message-injection.test.ts +460 -0
- package/docs/src/types.ts +447 -0
- package/docs/src/validation.test.ts +558 -0
- package/docs/src/validation.ts +360 -0
- package/package.json +124 -0
|
@@ -0,0 +1,757 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: API Reference
|
|
3
|
+
description: Documentation complète de l'API du provider Claude Code
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# API Reference
|
|
7
|
+
|
|
8
|
+
Cette page documente toutes les options de configuration disponibles pour le provider Claude Code.
|
|
9
|
+
|
|
10
|
+
## `claudeCode(model, settings?)`
|
|
11
|
+
|
|
12
|
+
Fonction principale pour créer une instance du modèle Claude Code.
|
|
13
|
+
|
|
14
|
+
### Paramètres
|
|
15
|
+
|
|
16
|
+
#### `model` (required)
|
|
17
|
+
|
|
18
|
+
Type: `string`
|
|
19
|
+
|
|
20
|
+
Le modèle Claude à utiliser. Peut être un alias court ou un identifiant complet.
|
|
21
|
+
|
|
22
|
+
**Aliases courts:**
|
|
23
|
+
- `'opus'` - Claude Opus (le plus capable)
|
|
24
|
+
- `'sonnet'` - Claude Sonnet (équilibré)
|
|
25
|
+
- `'haiku'` - Claude Haiku (rapide et économique)
|
|
26
|
+
|
|
27
|
+
**Identifiants complets:**
|
|
28
|
+
- `'claude-opus-4-5'`
|
|
29
|
+
- `'claude-sonnet-4-5-20250514'`
|
|
30
|
+
- `'claude-haiku-4-5-20250514'`
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
const model = claudeCode('sonnet');
|
|
34
|
+
// ou
|
|
35
|
+
const model = claudeCode('claude-sonnet-4-5-20250514');
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
#### `settings` (optional)
|
|
39
|
+
|
|
40
|
+
Type: `ClaudeCodeSettings`
|
|
41
|
+
|
|
42
|
+
Configuration avancée du comportement du provider.
|
|
43
|
+
|
|
44
|
+
## ClaudeCodeSettings
|
|
45
|
+
|
|
46
|
+
Interface complète de configuration.
|
|
47
|
+
|
|
48
|
+
### Options de base
|
|
49
|
+
|
|
50
|
+
#### `systemPrompt`
|
|
51
|
+
|
|
52
|
+
Type: `string | { type: 'preset', preset: 'claude_code', append?: string }`
|
|
53
|
+
|
|
54
|
+
Prompt système personnalisé ou preset Claude Code.
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// Prompt personnalisé
|
|
58
|
+
const model = claudeCode('sonnet', {
|
|
59
|
+
systemPrompt: 'Tu es un expert en TypeScript.',
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Preset avec ajout
|
|
63
|
+
const model = claudeCode('sonnet', {
|
|
64
|
+
systemPrompt: {
|
|
65
|
+
type: 'preset',
|
|
66
|
+
preset: 'claude_code',
|
|
67
|
+
append: 'Réponds toujours en français.',
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### `maxTurns`
|
|
73
|
+
|
|
74
|
+
Type: `number`
|
|
75
|
+
Default: Non défini
|
|
76
|
+
|
|
77
|
+
Nombre maximum de tours de conversation.
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
const model = claudeCode('sonnet', {
|
|
81
|
+
maxTurns: 10, // Maximum 10 échanges
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### `maxThinkingTokens`
|
|
86
|
+
|
|
87
|
+
Type: `number`
|
|
88
|
+
Default: Non défini
|
|
89
|
+
|
|
90
|
+
Tokens maximum pour la phase de réflexion du modèle.
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
const model = claudeCode('opus', {
|
|
94
|
+
maxThinkingTokens: 2000,
|
|
95
|
+
});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### `cwd`
|
|
99
|
+
|
|
100
|
+
Type: `string`
|
|
101
|
+
Default: `process.cwd()`
|
|
102
|
+
|
|
103
|
+
Répertoire de travail pour les opérations du CLI.
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
const model = claudeCode('sonnet', {
|
|
107
|
+
cwd: '/chemin/vers/projet',
|
|
108
|
+
});
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Gestion des outils
|
|
112
|
+
|
|
113
|
+
#### `allowedTools`
|
|
114
|
+
|
|
115
|
+
Type: `string[]`
|
|
116
|
+
Default: Tous les outils autorisés
|
|
117
|
+
|
|
118
|
+
Liste des outils que Claude peut utiliser.
|
|
119
|
+
|
|
120
|
+
**Outils intégrés:**
|
|
121
|
+
- `'Read'` - Lire des fichiers
|
|
122
|
+
- `'Write'` - Créer/écrire des fichiers
|
|
123
|
+
- `'Edit'` - Modifier des fichiers
|
|
124
|
+
- `'LS'` - Lister les fichiers
|
|
125
|
+
- `'Bash'` - Exécuter des commandes shell
|
|
126
|
+
- `'Task'` - Créer des sous-tâches
|
|
127
|
+
- `'Skill'` - Utiliser des compétences personnalisées
|
|
128
|
+
|
|
129
|
+
**Patterns avec wildcards:**
|
|
130
|
+
- `'Bash(git:*)'` - Seulement commandes git
|
|
131
|
+
- `'Bash(git log:*)'` - Seulement git log
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
const model = claudeCode('sonnet', {
|
|
135
|
+
allowedTools: ['Read', 'LS', 'Bash(git:*)'],
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### `disallowedTools`
|
|
140
|
+
|
|
141
|
+
Type: `string[]`
|
|
142
|
+
Default: Aucun
|
|
143
|
+
|
|
144
|
+
Outils explicitement interdits.
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
const model = claudeCode('sonnet', {
|
|
148
|
+
disallowedTools: [
|
|
149
|
+
'Write',
|
|
150
|
+
'Bash(rm:*)', // Interdire rm
|
|
151
|
+
'Bash(sudo:*)', // Interdire sudo
|
|
152
|
+
],
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
#### `canUseTool`
|
|
157
|
+
|
|
158
|
+
Type: `(tool: ToolInfo) => Promise<boolean | { allowed: boolean, input?: any }>`
|
|
159
|
+
Default: Non défini
|
|
160
|
+
|
|
161
|
+
Callback invoqué avant chaque utilisation d'outil. Permet un contrôle dynamique.
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
const model = claudeCode('sonnet', {
|
|
165
|
+
streamingInput: 'always', // Requis pour canUseTool
|
|
166
|
+
canUseTool: async (tool) => {
|
|
167
|
+
console.log(`🔧 Demande d'utilisation: ${tool.name}`);
|
|
168
|
+
|
|
169
|
+
// Bloquer certains outils
|
|
170
|
+
if (tool.name === 'Bash' && tool.input.command.includes('rm')) {
|
|
171
|
+
console.log('❌ Commande rm refusée');
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Autoriser
|
|
176
|
+
return true;
|
|
177
|
+
|
|
178
|
+
// Ou modifier l'input
|
|
179
|
+
// return {
|
|
180
|
+
// allowed: true,
|
|
181
|
+
// input: { ...tool.input, modified: true }
|
|
182
|
+
// };
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Hooks et callbacks
|
|
188
|
+
|
|
189
|
+
#### `hooks`
|
|
190
|
+
|
|
191
|
+
Type: `Record<string, Array<{ matcher?: string, hooks: Array<(...args: unknown[]) => Promise<unknown>> }>>`
|
|
192
|
+
Default: Non défini
|
|
193
|
+
|
|
194
|
+
Hooks de lifecycle pour intercepter les événements.
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
const model = claudeCode('sonnet', {
|
|
198
|
+
hooks: {
|
|
199
|
+
PreToolUse: [{
|
|
200
|
+
matcher: 'Bash',
|
|
201
|
+
hooks: [
|
|
202
|
+
async (toolName, input) => {
|
|
203
|
+
console.log(`⚡ Avant exécution de ${toolName}`);
|
|
204
|
+
console.log('Input:', input);
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
}],
|
|
208
|
+
PostToolUse: [{
|
|
209
|
+
hooks: [
|
|
210
|
+
async (toolName, input, result) => {
|
|
211
|
+
console.log(`✅ Après exécution de ${toolName}`);
|
|
212
|
+
console.log('Résultat:', result);
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
}],
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
#### `onStreamStart`
|
|
221
|
+
|
|
222
|
+
Type: `(injector: MessageInjector) => void`
|
|
223
|
+
Default: Non défini
|
|
224
|
+
|
|
225
|
+
Callback invoqué au démarrage du streaming. Reçoit un `MessageInjector` pour l'injection de messages mid-session.
|
|
226
|
+
|
|
227
|
+
```typescript
|
|
228
|
+
let injector: MessageInjector | null = null;
|
|
229
|
+
|
|
230
|
+
const model = claudeCode('sonnet', {
|
|
231
|
+
streamingInput: 'always',
|
|
232
|
+
onStreamStart: (inj) => {
|
|
233
|
+
injector = inj;
|
|
234
|
+
console.log('📡 Streaming démarré');
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
// Plus tard, injecter un message
|
|
239
|
+
injector?.inject('STOP! Change de direction.');
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
#### `onQueryCreated`
|
|
243
|
+
|
|
244
|
+
Type: `(query: Query) => void`
|
|
245
|
+
Default: Non défini
|
|
246
|
+
|
|
247
|
+
Callback invoqué à la création de la Query. Utile pour stocker la référence.
|
|
248
|
+
|
|
249
|
+
```typescript
|
|
250
|
+
const queries = new Map();
|
|
251
|
+
|
|
252
|
+
const model = claudeCode('sonnet', {
|
|
253
|
+
onQueryCreated: (query) => {
|
|
254
|
+
queries.set('session-123', query);
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Permissions et sécurité
|
|
260
|
+
|
|
261
|
+
#### `permissionMode`
|
|
262
|
+
|
|
263
|
+
Type: `'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'delegate' | 'dontAsk'`
|
|
264
|
+
Default: `'default'`
|
|
265
|
+
|
|
266
|
+
Mode de permission pour l'exécution des outils.
|
|
267
|
+
|
|
268
|
+
- `'default'` - Demande permission pour actions sensibles
|
|
269
|
+
- `'acceptEdits'` - Accepte automatiquement les modifications
|
|
270
|
+
- `'bypassPermissions'` - Contourne toutes les permissions (dangereux)
|
|
271
|
+
- `'plan'` - Mode planification sans exécution
|
|
272
|
+
- `'delegate'` - Délègue les décisions
|
|
273
|
+
- `'dontAsk'` - N'affiche pas de prompts
|
|
274
|
+
|
|
275
|
+
```typescript
|
|
276
|
+
const model = claudeCode('sonnet', {
|
|
277
|
+
permissionMode: 'acceptEdits',
|
|
278
|
+
});
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
#### `allowDangerouslySkipPermissions`
|
|
282
|
+
|
|
283
|
+
Type: `boolean`
|
|
284
|
+
Default: `false`
|
|
285
|
+
|
|
286
|
+
Autoriser le contournement des permissions (utilisé avec `permissionMode: 'bypassPermissions'`).
|
|
287
|
+
|
|
288
|
+
<Note type="danger">
|
|
289
|
+
**Danger** : N'utilisez ceci que dans des environnements contrôlés et isolés.
|
|
290
|
+
</Note>
|
|
291
|
+
|
|
292
|
+
```typescript
|
|
293
|
+
const model = claudeCode('sonnet', {
|
|
294
|
+
permissionMode: 'bypassPermissions',
|
|
295
|
+
allowDangerouslySkipPermissions: true, // Requis
|
|
296
|
+
});
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Sessions et état
|
|
300
|
+
|
|
301
|
+
#### `sessionId`
|
|
302
|
+
|
|
303
|
+
Type: `string`
|
|
304
|
+
Default: Généré automatiquement
|
|
305
|
+
|
|
306
|
+
Identifiant de session personnalisé pour tracking et corrélation.
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
const model = claudeCode('sonnet', {
|
|
310
|
+
sessionId: 'user-123-conversation-456',
|
|
311
|
+
});
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
#### `resume`
|
|
315
|
+
|
|
316
|
+
Type: `string`
|
|
317
|
+
Default: Non défini
|
|
318
|
+
|
|
319
|
+
Reprendre une session existante par son ID.
|
|
320
|
+
|
|
321
|
+
```typescript
|
|
322
|
+
const model = claudeCode('sonnet', {
|
|
323
|
+
resume: 'session-abc-123',
|
|
324
|
+
});
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
#### `resumeSessionAt`
|
|
328
|
+
|
|
329
|
+
Type: `string` (UUID)
|
|
330
|
+
Default: Non défini
|
|
331
|
+
|
|
332
|
+
Reprendre à un message spécifique dans une session.
|
|
333
|
+
|
|
334
|
+
```typescript
|
|
335
|
+
const model = claudeCode('sonnet', {
|
|
336
|
+
resume: 'session-abc-123',
|
|
337
|
+
resumeSessionAt: 'msg-uuid-456',
|
|
338
|
+
});
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
#### `persistSession`
|
|
342
|
+
|
|
343
|
+
Type: `boolean`
|
|
344
|
+
Default: `true`
|
|
345
|
+
|
|
346
|
+
Persister la session sur disque dans `~/.claude/projects/`.
|
|
347
|
+
|
|
348
|
+
```typescript
|
|
349
|
+
const model = claudeCode('sonnet', {
|
|
350
|
+
persistSession: false, // Session éphémère
|
|
351
|
+
});
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
#### `forkSession`
|
|
355
|
+
|
|
356
|
+
Type: `boolean`
|
|
357
|
+
Default: `false`
|
|
358
|
+
|
|
359
|
+
Lors d'une reprise, créer une nouvelle session au lieu de continuer l'originale.
|
|
360
|
+
|
|
361
|
+
```typescript
|
|
362
|
+
const model = claudeCode('sonnet', {
|
|
363
|
+
resume: 'session-abc',
|
|
364
|
+
forkSession: true, // Créer une branche
|
|
365
|
+
});
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Skills et settings
|
|
369
|
+
|
|
370
|
+
#### `settingSources`
|
|
371
|
+
|
|
372
|
+
Type: `Array<'user' | 'project' | 'local'>`
|
|
373
|
+
Default: Non défini
|
|
374
|
+
|
|
375
|
+
Sources de settings à charger (CLAUDE.md, settings.json, etc.).
|
|
376
|
+
|
|
377
|
+
**Requis pour Skills.**
|
|
378
|
+
|
|
379
|
+
```typescript
|
|
380
|
+
const model = claudeCode('sonnet', {
|
|
381
|
+
settingSources: ['user', 'project'],
|
|
382
|
+
allowedTools: ['Skill', 'Read', 'Write'], // 'Skill' requis
|
|
383
|
+
});
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Sources:**
|
|
387
|
+
- `'user'` - `~/.claude/` (settings globaux)
|
|
388
|
+
- `'project'` - `./.claude/` (settings du projet)
|
|
389
|
+
- `'local'` - Settings locaux
|
|
390
|
+
|
|
391
|
+
### Streaming et input
|
|
392
|
+
|
|
393
|
+
#### `streamingInput`
|
|
394
|
+
|
|
395
|
+
Type: `'auto' | 'always' | 'off'`
|
|
396
|
+
Default: `'auto'`
|
|
397
|
+
|
|
398
|
+
Contrôle du mode streaming input.
|
|
399
|
+
|
|
400
|
+
- `'auto'` - Active si `canUseTool` est défini
|
|
401
|
+
- `'always'` - Toujours activer (requis pour images et injection)
|
|
402
|
+
- `'off'` - Désactiver
|
|
403
|
+
|
|
404
|
+
```typescript
|
|
405
|
+
const model = claudeCode('sonnet', {
|
|
406
|
+
streamingInput: 'always',
|
|
407
|
+
});
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### Logging et debugging
|
|
411
|
+
|
|
412
|
+
#### `verbose`
|
|
413
|
+
|
|
414
|
+
Type: `boolean`
|
|
415
|
+
Default: `false`
|
|
416
|
+
|
|
417
|
+
Activer les logs détaillés (debug et info).
|
|
418
|
+
|
|
419
|
+
```typescript
|
|
420
|
+
const model = claudeCode('sonnet', {
|
|
421
|
+
verbose: true,
|
|
422
|
+
});
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
#### `logger`
|
|
426
|
+
|
|
427
|
+
Type: `Logger | false`
|
|
428
|
+
Default: `console`
|
|
429
|
+
|
|
430
|
+
Logger personnalisé ou désactivation complète des logs.
|
|
431
|
+
|
|
432
|
+
```typescript
|
|
433
|
+
import type { Logger } from '@boostecom/provider';
|
|
434
|
+
|
|
435
|
+
// Logger personnalisé
|
|
436
|
+
const customLogger: Logger = {
|
|
437
|
+
debug: (msg) => myLogger.debug(msg),
|
|
438
|
+
info: (msg) => myLogger.info(msg),
|
|
439
|
+
warn: (msg) => myLogger.warn(msg),
|
|
440
|
+
error: (msg) => myLogger.error(msg),
|
|
441
|
+
};
|
|
442
|
+
|
|
443
|
+
const model = claudeCode('sonnet', {
|
|
444
|
+
verbose: true,
|
|
445
|
+
logger: customLogger,
|
|
446
|
+
});
|
|
447
|
+
|
|
448
|
+
// Désactiver les logs
|
|
449
|
+
const silentModel = claudeCode('sonnet', {
|
|
450
|
+
logger: false,
|
|
451
|
+
});
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
#### `debug`
|
|
455
|
+
|
|
456
|
+
Type: `boolean`
|
|
457
|
+
Default: `false`
|
|
458
|
+
|
|
459
|
+
Activer les logs de debug programmatiques du SDK.
|
|
460
|
+
|
|
461
|
+
```typescript
|
|
462
|
+
const model = claudeCode('sonnet', {
|
|
463
|
+
debug: true,
|
|
464
|
+
});
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
#### `debugFile`
|
|
468
|
+
|
|
469
|
+
Type: `string`
|
|
470
|
+
Default: Non défini
|
|
471
|
+
|
|
472
|
+
Fichier pour les logs de debug du SDK.
|
|
473
|
+
|
|
474
|
+
```typescript
|
|
475
|
+
const model = claudeCode('sonnet', {
|
|
476
|
+
debug: true,
|
|
477
|
+
debugFile: '/tmp/claude-debug.log',
|
|
478
|
+
});
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
### Fonctionnalités avancées
|
|
482
|
+
|
|
483
|
+
#### `betas`
|
|
484
|
+
|
|
485
|
+
Type: `SdkBeta[]`
|
|
486
|
+
Default: Non défini
|
|
487
|
+
|
|
488
|
+
Activer des fonctionnalités beta du SDK.
|
|
489
|
+
|
|
490
|
+
```typescript
|
|
491
|
+
const model = claudeCode('opus', {
|
|
492
|
+
betas: ['context-1m-2025-08-07'],
|
|
493
|
+
});
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
#### `sandbox`
|
|
497
|
+
|
|
498
|
+
Type: `SandboxSettings`
|
|
499
|
+
Default: Non défini
|
|
500
|
+
|
|
501
|
+
Configuration du sandbox.
|
|
502
|
+
|
|
503
|
+
```typescript
|
|
504
|
+
const model = claudeCode('sonnet', {
|
|
505
|
+
sandbox: { enabled: true },
|
|
506
|
+
});
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
#### `plugins`
|
|
510
|
+
|
|
511
|
+
Type: `SdkPluginConfig[]`
|
|
512
|
+
Default: Non défini
|
|
513
|
+
|
|
514
|
+
Charger des plugins personnalisés depuis des chemins locaux.
|
|
515
|
+
|
|
516
|
+
```typescript
|
|
517
|
+
const model = claudeCode('sonnet', {
|
|
518
|
+
plugins: [
|
|
519
|
+
{ path: '/chemin/vers/plugin' },
|
|
520
|
+
],
|
|
521
|
+
});
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
#### `maxBudgetUsd`
|
|
525
|
+
|
|
526
|
+
Type: `number`
|
|
527
|
+
Default: Non défini
|
|
528
|
+
|
|
529
|
+
Budget maximum en USD pour la requête.
|
|
530
|
+
|
|
531
|
+
```typescript
|
|
532
|
+
const model = claudeCode('opus', {
|
|
533
|
+
maxBudgetUsd: 1.0, // Max 1 USD
|
|
534
|
+
});
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
#### `mcpServers`
|
|
538
|
+
|
|
539
|
+
Type: `Record<string, McpServerConfig>`
|
|
540
|
+
Default: Non défini
|
|
541
|
+
|
|
542
|
+
Configuration des serveurs MCP (Model Context Protocol).
|
|
543
|
+
|
|
544
|
+
```typescript
|
|
545
|
+
const model = claudeCode('sonnet', {
|
|
546
|
+
mcpServers: {
|
|
547
|
+
'mon-serveur': {
|
|
548
|
+
command: 'node',
|
|
549
|
+
args: ['/chemin/vers/serveur.js'],
|
|
550
|
+
},
|
|
551
|
+
},
|
|
552
|
+
});
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
#### `agents`
|
|
556
|
+
|
|
557
|
+
Type: `Record<string, AgentDefinition>`
|
|
558
|
+
Default: Non défini
|
|
559
|
+
|
|
560
|
+
Définition de sous-agents programmatiques.
|
|
561
|
+
|
|
562
|
+
```typescript
|
|
563
|
+
const model = claudeCode('sonnet', {
|
|
564
|
+
agents: {
|
|
565
|
+
'code-reviewer': {
|
|
566
|
+
description: 'Revoit le code et suggère des améliorations',
|
|
567
|
+
prompt: 'Tu es un expert en revue de code. Sois constructif.',
|
|
568
|
+
model: 'opus',
|
|
569
|
+
tools: ['Read', 'LS'],
|
|
570
|
+
},
|
|
571
|
+
},
|
|
572
|
+
});
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
#### `spawnClaudeCodeProcess`
|
|
576
|
+
|
|
577
|
+
Type: `(options: SpawnOptions) => SpawnedProcess`
|
|
578
|
+
Default: Utilise `child_process.spawn`
|
|
579
|
+
|
|
580
|
+
Fonction personnalisée pour spawner le processus Claude Code. Utile pour VMs, conteneurs, etc.
|
|
581
|
+
|
|
582
|
+
```typescript
|
|
583
|
+
const model = claudeCode('sonnet', {
|
|
584
|
+
spawnClaudeCodeProcess: (options) => {
|
|
585
|
+
// Implémentation personnalisée
|
|
586
|
+
return customSpawn(options);
|
|
587
|
+
},
|
|
588
|
+
});
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
#### `maxToolResultSize`
|
|
592
|
+
|
|
593
|
+
Type: `number`
|
|
594
|
+
Default: `10000`
|
|
595
|
+
|
|
596
|
+
Taille maximale (en caractères) des résultats d'outils dans le stream client. Les résultats trop longs sont tronqués.
|
|
597
|
+
|
|
598
|
+
```typescript
|
|
599
|
+
const model = claudeCode('sonnet', {
|
|
600
|
+
maxToolResultSize: 50000, // 50k caractères max
|
|
601
|
+
});
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
#### `sdkOptions`
|
|
605
|
+
|
|
606
|
+
Type: `Partial<Options>`
|
|
607
|
+
Default: Non défini
|
|
608
|
+
|
|
609
|
+
Escape hatch pour les options non exposées de l'Agent SDK. Surcharge les settings explicites.
|
|
610
|
+
|
|
611
|
+
<Note type="warning">
|
|
612
|
+
Les champs gérés par le provider (`model`, `abortController`, `prompt`, `outputFormat`) sont ignorés.
|
|
613
|
+
</Note>
|
|
614
|
+
|
|
615
|
+
```typescript
|
|
616
|
+
const model = claudeCode('sonnet', {
|
|
617
|
+
sdkOptions: {
|
|
618
|
+
maxBudgetUsd: 2,
|
|
619
|
+
// Autres options SDK non exposées
|
|
620
|
+
},
|
|
621
|
+
});
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
### Options système
|
|
625
|
+
|
|
626
|
+
#### `pathToClaudeCodeExecutable`
|
|
627
|
+
|
|
628
|
+
Type: `string`
|
|
629
|
+
Default: `'claude'` (cherche dans PATH)
|
|
630
|
+
|
|
631
|
+
Chemin personnalisé vers l'exécutable Claude Code.
|
|
632
|
+
|
|
633
|
+
```typescript
|
|
634
|
+
const model = claudeCode('sonnet', {
|
|
635
|
+
pathToClaudeCodeExecutable: '/custom/path/to/claude',
|
|
636
|
+
});
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
#### `executable`
|
|
640
|
+
|
|
641
|
+
Type: `'node' | 'bun' | 'deno'`
|
|
642
|
+
Default: `'node'` (ou `'bun'` si Bun détecté)
|
|
643
|
+
|
|
644
|
+
Runtime JavaScript à utiliser.
|
|
645
|
+
|
|
646
|
+
```typescript
|
|
647
|
+
const model = claudeCode('sonnet', {
|
|
648
|
+
executable: 'bun',
|
|
649
|
+
});
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
#### `executableArgs`
|
|
653
|
+
|
|
654
|
+
Type: `string[]`
|
|
655
|
+
Default: Non défini
|
|
656
|
+
|
|
657
|
+
Arguments supplémentaires pour le runtime.
|
|
658
|
+
|
|
659
|
+
```typescript
|
|
660
|
+
const model = claudeCode('sonnet', {
|
|
661
|
+
executable: 'node',
|
|
662
|
+
executableArgs: ['--max-old-space-size=4096'],
|
|
663
|
+
});
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
#### `env`
|
|
667
|
+
|
|
668
|
+
Type: `Record<string, string | undefined>`
|
|
669
|
+
Default: Non défini
|
|
670
|
+
|
|
671
|
+
Variables d'environnement personnalisées.
|
|
672
|
+
|
|
673
|
+
```typescript
|
|
674
|
+
const model = claudeCode('sonnet', {
|
|
675
|
+
env: {
|
|
676
|
+
NODE_ENV: 'production',
|
|
677
|
+
CUSTOM_VAR: 'valeur',
|
|
678
|
+
},
|
|
679
|
+
});
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
## Types exportés
|
|
683
|
+
|
|
684
|
+
### `Logger`
|
|
685
|
+
|
|
686
|
+
Interface pour les loggers personnalisés.
|
|
687
|
+
|
|
688
|
+
```typescript
|
|
689
|
+
interface Logger {
|
|
690
|
+
debug: (message: string) => void;
|
|
691
|
+
info: (message: string) => void;
|
|
692
|
+
warn: (message: string) => void;
|
|
693
|
+
error: (message: string) => void;
|
|
694
|
+
}
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
### `MessageInjector`
|
|
698
|
+
|
|
699
|
+
Interface pour l'injection de messages mid-session.
|
|
700
|
+
|
|
701
|
+
```typescript
|
|
702
|
+
interface MessageInjector {
|
|
703
|
+
inject(content: string, onResult?: (delivered: boolean) => void): void;
|
|
704
|
+
close(): void;
|
|
705
|
+
}
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
### `StreamingInputMode`
|
|
709
|
+
|
|
710
|
+
Type pour le mode streaming input.
|
|
711
|
+
|
|
712
|
+
```typescript
|
|
713
|
+
type StreamingInputMode = 'auto' | 'always' | 'off';
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
## Valeurs de retour
|
|
717
|
+
|
|
718
|
+
### Métadonnées provider
|
|
719
|
+
|
|
720
|
+
Toutes les fonctions AI SDK retournent des métadonnées dans `providerMetadata['claude-code']` :
|
|
721
|
+
|
|
722
|
+
```typescript
|
|
723
|
+
const result = await generateText({
|
|
724
|
+
model: claudeCode('sonnet'),
|
|
725
|
+
prompt: 'Test',
|
|
726
|
+
});
|
|
727
|
+
|
|
728
|
+
console.log(result.providerMetadata['claude-code']);
|
|
729
|
+
// {
|
|
730
|
+
// cost: 0.0015, // Coût estimé en USD
|
|
731
|
+
// duration: 2300, // Durée en ms
|
|
732
|
+
// sessionId: 'abc-123', // ID de session
|
|
733
|
+
// rawUsage: {...}, // Usage brut du SDK
|
|
734
|
+
// }
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
### Usage tokens
|
|
738
|
+
|
|
739
|
+
```typescript
|
|
740
|
+
const result = await generateText({
|
|
741
|
+
model: claudeCode('sonnet'),
|
|
742
|
+
prompt: 'Test',
|
|
743
|
+
});
|
|
744
|
+
|
|
745
|
+
console.log(result.usage);
|
|
746
|
+
// {
|
|
747
|
+
// promptTokens: 10,
|
|
748
|
+
// completionTokens: 20,
|
|
749
|
+
// totalTokens: 30
|
|
750
|
+
// }
|
|
751
|
+
```
|
|
752
|
+
|
|
753
|
+
## Prochaines étapes
|
|
754
|
+
|
|
755
|
+
- [Guide d'utilisation](/docs/guide) - Patterns et exemples pratiques
|
|
756
|
+
- [Exemples](/docs/examples) - Cas d'usage réels
|
|
757
|
+
- [Skills](/docs/skills) - Créer des compétences personnalisées
|