@hasna/connectors 0.2.6 → 0.2.8
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/bin/index.js +3 -3
- package/bin/mcp.js +19 -19
- package/connectors/connect-anthropic/AGENTS.md +22 -0
- package/connectors/connect-anthropic/CLAUDE.md +29 -0
- package/connectors/connect-anthropic/README.md +22 -3
- package/connectors/connect-anthropic/src/types/index.ts +46 -2
- package/connectors/connect-aws/CLAUDE.md +16 -0
- package/connectors/connect-brandsight/CLAUDE.md +5 -0
- package/connectors/connect-cloudflare/CLAUDE.md +21 -0
- package/connectors/connect-discord/CLAUDE.md +19 -0
- package/connectors/connect-docker/CLAUDE.md +8 -0
- package/connectors/connect-e2b/CLAUDE.md +21 -0
- package/connectors/connect-elevenlabs/CLAUDE.md +24 -0
- package/connectors/connect-exa/CLAUDE.md +35 -0
- package/connectors/connect-figma/CLAUDE.md +34 -0
- package/connectors/connect-firecrawl/CLAUDE.md +27 -0
- package/connectors/connect-github/CLAUDE.md +32 -2
- package/connectors/connect-gmail/CLAUDE.md +22 -0
- package/connectors/connect-google/CLAUDE.md +11 -0
- package/connectors/connect-googlecalendar/CLAUDE.md +9 -0
- package/connectors/connect-googlecloud/CLAUDE.md +12 -0
- package/connectors/connect-googlecontacts/CLAUDE.md +7 -0
- package/connectors/connect-googledocs/CLAUDE.md +7 -0
- package/connectors/connect-googledrive/CLAUDE.md +5 -0
- package/connectors/connect-googlegemini/CLAUDE.md +18 -0
- package/connectors/connect-googlegemini/src/types/index.ts +10 -3
- package/connectors/connect-googlemaps/CLAUDE.md +15 -0
- package/connectors/connect-googlesheets/CLAUDE.md +10 -0
- package/connectors/connect-googletasks/CLAUDE.md +6 -0
- package/connectors/connect-hedra/CLAUDE.md +15 -0
- package/connectors/connect-heygen/CLAUDE.md +14 -0
- package/connectors/connect-huggingface/CLAUDE.md +20 -0
- package/connectors/connect-icons8/CLAUDE.md +6 -0
- package/connectors/connect-maropost/CLAUDE.md +6 -0
- package/connectors/connect-mercury/CLAUDE.md +14 -0
- package/connectors/connect-meta/CLAUDE.md +16 -0
- package/connectors/connect-midjourney/CLAUDE.md +7 -0
- package/connectors/connect-mistral/CLAUDE.md +20 -0
- package/connectors/connect-mistral/src/types/index.ts +42 -7
- package/connectors/connect-mixpanel/CLAUDE.md +11 -0
- package/connectors/connect-notion/CLAUDE.md +30 -0
- package/connectors/connect-openai/AGENTS.md +15 -0
- package/connectors/connect-openai/CLAUDE.md +23 -0
- package/connectors/connect-openai/src/types/index.ts +36 -14
- package/connectors/connect-openweathermap/CLAUDE.md +8 -0
- package/connectors/connect-pandadoc/CLAUDE.md +18 -0
- package/connectors/connect-quo/CLAUDE.md +5 -0
- package/connectors/connect-reddit/CLAUDE.md +20 -0
- package/connectors/connect-reducto/CLAUDE.md +16 -0
- package/connectors/connect-resend/CLAUDE.md +21 -0
- package/connectors/connect-revolut/CLAUDE.md +17 -0
- package/connectors/connect-sedo/CLAUDE.md +6 -0
- package/connectors/connect-sentry/CLAUDE.md +11 -0
- package/connectors/connect-shadcn/CLAUDE.md +42 -0
- package/connectors/connect-shopify/CLAUDE.md +18 -0
- package/connectors/connect-snap/CLAUDE.md +6 -0
- package/connectors/connect-stabilityai/CLAUDE.md +13 -0
- package/connectors/connect-stripe/CLAUDE.md +19 -0
- package/connectors/connect-stripeatlas/CLAUDE.md +7 -0
- package/connectors/connect-substack/CLAUDE.md +6 -0
- package/connectors/connect-tiktok/CLAUDE.md +25 -0
- package/connectors/connect-tinker/CLAUDE.md +6 -0
- package/connectors/connect-twilio/CLAUDE.md +9 -0
- package/connectors/connect-uspto/CLAUDE.md +8 -0
- package/connectors/connect-webflow/CLAUDE.md +19 -0
- package/connectors/connect-wix/CLAUDE.md +20 -0
- package/connectors/connect-x/CLAUDE.md +15 -0
- package/connectors/connect-xads/CLAUDE.md +10 -0
- package/connectors/connect-xai/CLAUDE.md +15 -0
- package/connectors/connect-xai/src/types/index.ts +20 -4
- package/connectors/connect-youtube/CLAUDE.md +28 -0
- package/connectors/connect-zoom/CLAUDE.md +15 -0
- package/package.json +1 -1
package/bin/index.js
CHANGED
|
@@ -6583,7 +6583,7 @@ var PRESETS = {
|
|
|
6583
6583
|
commerce: { description: "Commerce and finance", connectors: ["stripe", "shopify", "revolut", "mercury", "pandadoc"] }
|
|
6584
6584
|
};
|
|
6585
6585
|
var program2 = new Command;
|
|
6586
|
-
program2.name("connectors").description("Install API connectors for your project").version("0.2.
|
|
6586
|
+
program2.name("connectors").description("Install API connectors for your project").version("0.2.8");
|
|
6587
6587
|
program2.command("interactive", { isDefault: true }).alias("i").description("Interactive connector browser").action(() => {
|
|
6588
6588
|
if (!isTTY) {
|
|
6589
6589
|
console.log(`Non-interactive environment detected. Use a subcommand:
|
|
@@ -7746,7 +7746,7 @@ program2.command("import").argument("<file>", "JSON backup file to import (use -
|
|
|
7746
7746
|
}
|
|
7747
7747
|
});
|
|
7748
7748
|
program2.command("upgrade").alias("self-update").option("--check", "Only check for updates, don't install", false).option("--json", "Output as JSON", false).description("Check for updates and upgrade to the latest version").action(async (options) => {
|
|
7749
|
-
const currentVersion = "0.2.
|
|
7749
|
+
const currentVersion = "0.2.8";
|
|
7750
7750
|
try {
|
|
7751
7751
|
const res = await fetch("https://registry.npmjs.org/@hasna/connectors/latest");
|
|
7752
7752
|
if (!res.ok)
|
|
@@ -7962,7 +7962,7 @@ Available presets:
|
|
|
7962
7962
|
program2.command("whoami").option("--json", "Output as JSON", false).description("Show current setup: config dir, installed connectors, auth status").action((options) => {
|
|
7963
7963
|
const configDir = join5(homedir3(), ".connectors");
|
|
7964
7964
|
const installed = getInstalledConnectors();
|
|
7965
|
-
const version = "0.2.
|
|
7965
|
+
const version = "0.2.8";
|
|
7966
7966
|
let configured = 0;
|
|
7967
7967
|
let unconfigured = 0;
|
|
7968
7968
|
const connectorDetails = [];
|
package/bin/mcp.js
CHANGED
|
@@ -20275,13 +20275,13 @@ function guessKeyField(name) {
|
|
|
20275
20275
|
loadConnectorVersions();
|
|
20276
20276
|
var server = new McpServer({
|
|
20277
20277
|
name: "connectors",
|
|
20278
|
-
version: "0.2.
|
|
20278
|
+
version: "0.2.8"
|
|
20279
20279
|
});
|
|
20280
20280
|
server.registerTool("search_connectors", {
|
|
20281
20281
|
title: "Search Connectors",
|
|
20282
|
-
description: "Search
|
|
20282
|
+
description: "Search connectors by name, keyword, or description.",
|
|
20283
20283
|
inputSchema: {
|
|
20284
|
-
query: exports_external.string().describe("Search query
|
|
20284
|
+
query: exports_external.string().describe("Search query")
|
|
20285
20285
|
}
|
|
20286
20286
|
}, async ({ query }) => {
|
|
20287
20287
|
const results = searchConnectors(query);
|
|
@@ -20302,9 +20302,9 @@ server.registerTool("search_connectors", {
|
|
|
20302
20302
|
});
|
|
20303
20303
|
server.registerTool("list_connectors", {
|
|
20304
20304
|
title: "List Connectors",
|
|
20305
|
-
description: "List
|
|
20305
|
+
description: "List connectors, optionally filtered by category.",
|
|
20306
20306
|
inputSchema: {
|
|
20307
|
-
category: exports_external.string().optional().describe("Filter by category.
|
|
20307
|
+
category: exports_external.string().optional().describe("Filter by category (e.g. 'AI & ML', 'Developer Tools')")
|
|
20308
20308
|
}
|
|
20309
20309
|
}, async ({ category }) => {
|
|
20310
20310
|
let connectors = CONNECTORS;
|
|
@@ -20340,9 +20340,9 @@ server.registerTool("list_connectors", {
|
|
|
20340
20340
|
});
|
|
20341
20341
|
server.registerTool("connector_docs", {
|
|
20342
20342
|
title: "Connector Documentation",
|
|
20343
|
-
description: "Get
|
|
20343
|
+
description: "Get auth, env vars, CLI commands, and API docs for a connector.",
|
|
20344
20344
|
inputSchema: {
|
|
20345
|
-
name: exports_external.string().describe("Connector name
|
|
20345
|
+
name: exports_external.string().describe("Connector name")
|
|
20346
20346
|
}
|
|
20347
20347
|
}, async ({ name }) => {
|
|
20348
20348
|
const meta = getConnector(name);
|
|
@@ -20381,10 +20381,10 @@ server.registerTool("connector_docs", {
|
|
|
20381
20381
|
});
|
|
20382
20382
|
server.registerTool("install_connector", {
|
|
20383
20383
|
title: "Install Connector",
|
|
20384
|
-
description: "Install
|
|
20384
|
+
description: "Install connectors into .connectors/ with auto-generated index.ts.",
|
|
20385
20385
|
inputSchema: {
|
|
20386
|
-
names: exports_external.array(exports_external.string()).describe("Connector names to install
|
|
20387
|
-
overwrite: exports_external.boolean().optional().describe("Overwrite if already installed
|
|
20386
|
+
names: exports_external.array(exports_external.string()).describe("Connector names to install"),
|
|
20387
|
+
overwrite: exports_external.boolean().optional().describe("Overwrite if already installed")
|
|
20388
20388
|
}
|
|
20389
20389
|
}, async ({ names, overwrite }) => {
|
|
20390
20390
|
const results = names.map((name) => installConnector(name, { overwrite: overwrite ?? false }));
|
|
@@ -20422,7 +20422,7 @@ server.registerTool("remove_connector", {
|
|
|
20422
20422
|
});
|
|
20423
20423
|
server.registerTool("list_installed", {
|
|
20424
20424
|
title: "List Installed Connectors",
|
|
20425
|
-
description: "List connectors
|
|
20425
|
+
description: "List connectors installed in .connectors/.",
|
|
20426
20426
|
inputSchema: {}
|
|
20427
20427
|
}, async () => {
|
|
20428
20428
|
const installed = getInstalledConnectors();
|
|
@@ -20437,7 +20437,7 @@ server.registerTool("list_installed", {
|
|
|
20437
20437
|
});
|
|
20438
20438
|
server.registerTool("connector_info", {
|
|
20439
20439
|
title: "Connector Info",
|
|
20440
|
-
description: "Get
|
|
20440
|
+
description: "Get connector metadata: version, category, tags, installed status.",
|
|
20441
20441
|
inputSchema: {
|
|
20442
20442
|
name: exports_external.string().describe("Connector name")
|
|
20443
20443
|
}
|
|
@@ -20462,9 +20462,9 @@ server.registerTool("connector_info", {
|
|
|
20462
20462
|
});
|
|
20463
20463
|
server.registerTool("connector_auth_status", {
|
|
20464
20464
|
title: "Connector Auth Status",
|
|
20465
|
-
description: "Check
|
|
20465
|
+
description: "Check auth status: type (oauth/apikey/bearer), configured, token expiry, env vars.",
|
|
20466
20466
|
inputSchema: {
|
|
20467
|
-
name: exports_external.string().describe("Connector name
|
|
20467
|
+
name: exports_external.string().describe("Connector name")
|
|
20468
20468
|
}
|
|
20469
20469
|
}, async ({ name }) => {
|
|
20470
20470
|
const meta = getConnector(name);
|
|
@@ -20490,11 +20490,11 @@ server.registerTool("connector_auth_status", {
|
|
|
20490
20490
|
});
|
|
20491
20491
|
server.registerTool("configure_auth", {
|
|
20492
20492
|
title: "Configure Auth",
|
|
20493
|
-
description: "Save an API key or bearer token for a connector.
|
|
20493
|
+
description: "Save an API key or bearer token for a connector.",
|
|
20494
20494
|
inputSchema: {
|
|
20495
|
-
name: exports_external.string().describe("Connector name
|
|
20496
|
-
key: exports_external.string().describe("
|
|
20497
|
-
field: exports_external.string().optional().describe("
|
|
20495
|
+
name: exports_external.string().describe("Connector name"),
|
|
20496
|
+
key: exports_external.string().describe("API key or bearer token"),
|
|
20497
|
+
field: exports_external.string().optional().describe("Field name (default: 'apiKey')")
|
|
20498
20498
|
}
|
|
20499
20499
|
}, async ({ name, key, field }) => {
|
|
20500
20500
|
try {
|
|
@@ -20521,7 +20521,7 @@ server.registerTool("configure_auth", {
|
|
|
20521
20521
|
});
|
|
20522
20522
|
server.registerTool("list_categories", {
|
|
20523
20523
|
title: "List Categories",
|
|
20524
|
-
description: "List
|
|
20524
|
+
description: "List connector categories with counts.",
|
|
20525
20525
|
inputSchema: {}
|
|
20526
20526
|
}, async () => {
|
|
20527
20527
|
const categoryCounts = CATEGORIES.map((category) => ({
|
|
@@ -47,6 +47,28 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Models (2026)
|
|
51
|
+
|
|
52
|
+
| Model ID | Description |
|
|
53
|
+
|----------|-------------|
|
|
54
|
+
| `claude-opus-4-6` | Most intelligent (default for complex tasks), 200K ctx, 128K output |
|
|
55
|
+
| `claude-sonnet-4-6` | Best balance — **use this as default** |
|
|
56
|
+
| `claude-opus-4-20250514` | Claude 4 Opus (2025) |
|
|
57
|
+
| `claude-sonnet-4-20250514` | Claude 4 Sonnet (2025) |
|
|
58
|
+
| `claude-3-5-haiku-20241022` | Fast, cheap |
|
|
59
|
+
|
|
60
|
+
Default: `claude-sonnet-4-6`
|
|
61
|
+
|
|
62
|
+
## Adaptive Thinking
|
|
63
|
+
|
|
64
|
+
On `claude-opus-4-6` and `claude-sonnet-4-6`, use:
|
|
65
|
+
```typescript
|
|
66
|
+
thinking: { type: 'adaptive' } // Claude decides when to think
|
|
67
|
+
thinking: { type: 'adaptive', effort: 'low' } // less thinking
|
|
68
|
+
thinking: { type: 'adaptive', effort: 'high' } // most thinking (default)
|
|
69
|
+
```
|
|
70
|
+
Deprecated on 4.6: `thinking: { type: 'enabled', budget_tokens: N }`
|
|
71
|
+
|
|
50
72
|
## Authentication
|
|
51
73
|
|
|
52
74
|
Bearer Token authentication. Credentials can be set via:
|
|
@@ -47,6 +47,35 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Models (2026)
|
|
51
|
+
|
|
52
|
+
| Model ID | Description |
|
|
53
|
+
|----------|-------------|
|
|
54
|
+
| `claude-opus-4-6` | Most intelligent, 200K context (1M beta), 128K max output, adaptive thinking |
|
|
55
|
+
| `claude-sonnet-4-6` | Best speed/intelligence balance, 200K context (1M beta), 64K max output |
|
|
56
|
+
| `claude-opus-4-20250514` | Claude 4 Opus (2025) |
|
|
57
|
+
| `claude-sonnet-4-20250514` | Claude 4 Sonnet (2025) |
|
|
58
|
+
| `claude-3-5-haiku-20241022` | Fast and cost-effective |
|
|
59
|
+
| `claude-3-5-sonnet-20241022` | Claude 3.5 Sonnet |
|
|
60
|
+
|
|
61
|
+
Default model: `claude-sonnet-4-6`
|
|
62
|
+
|
|
63
|
+
## Adaptive Thinking (claude-opus-4-6 / claude-sonnet-4-6)
|
|
64
|
+
|
|
65
|
+
Use adaptive thinking to let Claude decide when and how much to think:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
const response = await client.messages.create({
|
|
69
|
+
model: 'claude-opus-4-6',
|
|
70
|
+
max_tokens: 16000,
|
|
71
|
+
thinking: { type: 'adaptive' }, // default effort: high
|
|
72
|
+
thinking: { type: 'adaptive', effort: 'low' }, // less thinking for simple problems
|
|
73
|
+
messages: [{ role: 'user', content: '...' }],
|
|
74
|
+
});
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Note: `thinking: {type: "enabled", budget_tokens: N}` is deprecated on 4.6 models. Use adaptive thinking instead.
|
|
78
|
+
|
|
50
79
|
## Authentication
|
|
51
80
|
|
|
52
81
|
Bearer Token authentication. Credentials can be set via:
|
|
@@ -56,6 +56,18 @@ connect-anthropic -p personal <command>
|
|
|
56
56
|
connect-anthropic profile list
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
## Models (2026)
|
|
60
|
+
|
|
61
|
+
| Model ID | Context | Description |
|
|
62
|
+
|----------|---------|-------------|
|
|
63
|
+
| `claude-opus-4-6` | 200K (1M beta) | Most intelligent, adaptive thinking |
|
|
64
|
+
| `claude-sonnet-4-6` | 200K (1M beta) | Best speed/intelligence balance |
|
|
65
|
+
| `claude-opus-4-20250514` | 200K | Claude 4 Opus |
|
|
66
|
+
| `claude-sonnet-4-20250514` | 200K | Claude 4 Sonnet |
|
|
67
|
+
| `claude-3-5-haiku-20241022` | 200K | Fast, cost-effective |
|
|
68
|
+
|
|
69
|
+
Default: `claude-sonnet-4-6`
|
|
70
|
+
|
|
59
71
|
## Library Usage
|
|
60
72
|
|
|
61
73
|
```typescript
|
|
@@ -63,8 +75,15 @@ import { Anthropic } from '@hasna/connect-anthropic';
|
|
|
63
75
|
|
|
64
76
|
const client = new Anthropic({ apiKey: 'YOUR_API_KEY' });
|
|
65
77
|
|
|
66
|
-
//
|
|
67
|
-
|
|
78
|
+
// Basic chat
|
|
79
|
+
const response = await client.chat('Explain quantum computing');
|
|
80
|
+
|
|
81
|
+
// With adaptive thinking (claude-opus-4-6 / claude-sonnet-4-6)
|
|
82
|
+
const response = await client.chat('Solve this hard problem', {
|
|
83
|
+
model: 'claude-opus-4-6',
|
|
84
|
+
thinking: { type: 'adaptive' },
|
|
85
|
+
maxTokens: 16000,
|
|
86
|
+
});
|
|
68
87
|
```
|
|
69
88
|
|
|
70
89
|
## Environment Variables
|
|
@@ -103,4 +122,4 @@ bun run typecheck
|
|
|
103
122
|
|
|
104
123
|
## License
|
|
105
124
|
|
|
106
|
-
|
|
125
|
+
Apache-2.0
|
|
@@ -14,25 +14,37 @@ export interface AnthropicConfig {
|
|
|
14
14
|
// ============================================
|
|
15
15
|
|
|
16
16
|
export type AnthropicModel =
|
|
17
|
+
// Claude 4.6 (latest, 2026)
|
|
18
|
+
| 'claude-opus-4-6'
|
|
19
|
+
| 'claude-sonnet-4-6'
|
|
20
|
+
// Claude 4 (2025)
|
|
17
21
|
| 'claude-opus-4-20250514'
|
|
18
22
|
| 'claude-sonnet-4-20250514'
|
|
23
|
+
// Claude 3.5
|
|
19
24
|
| 'claude-3-5-haiku-20241022'
|
|
20
25
|
| 'claude-3-5-sonnet-20241022'
|
|
26
|
+
// Claude 3 (legacy)
|
|
21
27
|
| 'claude-3-opus-20240229'
|
|
22
28
|
| 'claude-3-sonnet-20240229'
|
|
23
29
|
| 'claude-3-haiku-20240307';
|
|
24
30
|
|
|
25
31
|
export const ANTHROPIC_MODELS: AnthropicModel[] = [
|
|
32
|
+
// Claude 4.6 (latest, 2026)
|
|
33
|
+
'claude-opus-4-6',
|
|
34
|
+
'claude-sonnet-4-6',
|
|
35
|
+
// Claude 4 (2025)
|
|
26
36
|
'claude-opus-4-20250514',
|
|
27
37
|
'claude-sonnet-4-20250514',
|
|
38
|
+
// Claude 3.5
|
|
28
39
|
'claude-3-5-haiku-20241022',
|
|
29
40
|
'claude-3-5-sonnet-20241022',
|
|
41
|
+
// Claude 3 (legacy)
|
|
30
42
|
'claude-3-opus-20240229',
|
|
31
43
|
'claude-3-sonnet-20240229',
|
|
32
44
|
'claude-3-haiku-20240307',
|
|
33
45
|
];
|
|
34
46
|
|
|
35
|
-
export const DEFAULT_MODEL: AnthropicModel = 'claude-sonnet-4-
|
|
47
|
+
export const DEFAULT_MODEL: AnthropicModel = 'claude-sonnet-4-6';
|
|
36
48
|
|
|
37
49
|
// ============================================
|
|
38
50
|
// Messages API
|
|
@@ -71,6 +83,7 @@ export interface MessagesRequest {
|
|
|
71
83
|
top_k?: number;
|
|
72
84
|
stop_sequences?: string[];
|
|
73
85
|
stream?: boolean;
|
|
86
|
+
thinking?: ThinkingConfig;
|
|
74
87
|
metadata?: {
|
|
75
88
|
user_id?: string;
|
|
76
89
|
};
|
|
@@ -81,6 +94,16 @@ export interface TextBlock {
|
|
|
81
94
|
text: string;
|
|
82
95
|
}
|
|
83
96
|
|
|
97
|
+
export interface ThinkingBlock {
|
|
98
|
+
type: 'thinking';
|
|
99
|
+
thinking: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface RedactedThinkingBlock {
|
|
103
|
+
type: 'redacted_thinking';
|
|
104
|
+
data: string;
|
|
105
|
+
}
|
|
106
|
+
|
|
84
107
|
export interface ToolUseBlock {
|
|
85
108
|
type: 'tool_use';
|
|
86
109
|
id: string;
|
|
@@ -88,7 +111,27 @@ export interface ToolUseBlock {
|
|
|
88
111
|
input: Record<string, unknown>;
|
|
89
112
|
}
|
|
90
113
|
|
|
91
|
-
export type ResponseContentBlock = TextBlock | ToolUseBlock;
|
|
114
|
+
export type ResponseContentBlock = TextBlock | ThinkingBlock | RedactedThinkingBlock | ToolUseBlock;
|
|
115
|
+
|
|
116
|
+
// ============================================
|
|
117
|
+
// Thinking (Extended / Adaptive)
|
|
118
|
+
// ============================================
|
|
119
|
+
|
|
120
|
+
export type ThinkingEffort = 'low' | 'medium' | 'high';
|
|
121
|
+
|
|
122
|
+
/** Adaptive thinking (recommended for claude-opus-4-6 and claude-sonnet-4-6) */
|
|
123
|
+
export interface AdaptiveThinking {
|
|
124
|
+
type: 'adaptive';
|
|
125
|
+
effort?: ThinkingEffort;
|
|
126
|
+
budget_tokens?: number;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Disabled thinking */
|
|
130
|
+
export interface DisabledThinking {
|
|
131
|
+
type: 'disabled';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export type ThinkingConfig = AdaptiveThinking | DisabledThinking;
|
|
92
135
|
|
|
93
136
|
export interface MessagesResponse {
|
|
94
137
|
id: string;
|
|
@@ -168,6 +211,7 @@ export interface ChatOptions {
|
|
|
168
211
|
topK?: number;
|
|
169
212
|
stopSequences?: string[];
|
|
170
213
|
systemPrompt?: string;
|
|
214
|
+
thinking?: ThinkingConfig;
|
|
171
215
|
}
|
|
172
216
|
|
|
173
217
|
// ============================================
|
|
@@ -47,6 +47,22 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Auth Updates (2025-2026)
|
|
51
|
+
|
|
52
|
+
### Amazon Bedrock API Keys (GA Jul 2025, GovCloud Jan 2026)
|
|
53
|
+
Bedrock now supports direct API keys for authentication — no IAM principal setup required:
|
|
54
|
+
- Short-term keys: valid for console session or up to 12 hours
|
|
55
|
+
- Long-term keys: custom validity, managed from IAM console
|
|
56
|
+
- Generate from Bedrock console or AWS SDK
|
|
57
|
+
|
|
58
|
+
### IAM Role Creation in Service Workflows (Mar 2026)
|
|
59
|
+
IAM roles can now be created and customized inline within service workflows (no tab-switching). Available for EC2, Lambda, EKS, ECS, Glue, CloudFormation, DMS, Systems Manager, Secrets Manager, RDS, IoT Core. US East (N. Virginia) region first.
|
|
60
|
+
|
|
61
|
+
### Best Practice: Use IAM Roles, Not Access Keys
|
|
62
|
+
- Prefer IAM roles with temporary credentials over long-term access keys
|
|
63
|
+
- Use `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` + `AWS_REGION` for programmatic access
|
|
64
|
+
- Or use IAM Instance Roles / ECS Task Roles for zero-key auth in cloud environments
|
|
65
|
+
|
|
50
66
|
## Authentication
|
|
51
67
|
|
|
52
68
|
API Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,11 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Notes (2026)
|
|
51
|
+
|
|
52
|
+
Brandsight provides brand monitoring and analytics APIs. Check https://brandsight.com/docs for current API reference.
|
|
53
|
+
Auth: API key via header or query parameter.
|
|
54
|
+
|
|
50
55
|
## Authentication
|
|
51
56
|
|
|
52
57
|
SSO Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,27 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Updates (2025-2026)
|
|
51
|
+
|
|
52
|
+
### New Workers REST API (Beta, Sep 2025)
|
|
53
|
+
New resource-oriented REST API with cleaner separation:
|
|
54
|
+
- `POST /workers/beta/workers` — create Worker (no code needed)
|
|
55
|
+
- `POST /workers/beta/workers/{id}/versions` — upload code as version
|
|
56
|
+
- `POST /scripts/{name}/deployments` — deploy a version
|
|
57
|
+
|
|
58
|
+
Workers and Versions use new `/workers/` beta endpoints; Deployments remain on `/scripts/` endpoint.
|
|
59
|
+
|
|
60
|
+
### Workers AI — New Capabilities (2026)
|
|
61
|
+
- **Markdown Conversion** (`env.AI.toMarkdown()`): PDF, HTML, images with `conversionOptions` (CSS selectors, language)
|
|
62
|
+
- **Real-time Transcription**: 10 languages via Deepgram Nova-3 on Workers AI in RealtimeKit
|
|
63
|
+
- REST: `POST /accounts/{id}/ai/tomarkdown`
|
|
64
|
+
|
|
65
|
+
### Browser Rendering — Rate Limit Increase (Mar 2026)
|
|
66
|
+
Workers Paid plans: 3 req/s → **10 req/s** (600/min). Endpoints: `/links`, `/json`, `/scrape`, `/snapshot`, `/markdown`, `/pdf`, `/screenshot`, `/content`
|
|
67
|
+
|
|
68
|
+
### Sandboxes — Real-time File Watching (Mar 2026)
|
|
69
|
+
`sandbox.watch(path, options)` — SSE stream backed by inotify. Events: `create`, `modify`, `delete`, `move`.
|
|
70
|
+
|
|
50
71
|
## Authentication
|
|
51
72
|
|
|
52
73
|
API Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,25 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Updates (2025-2026)
|
|
51
|
+
|
|
52
|
+
### Current API Version: v10 (unchanged)
|
|
53
|
+
|
|
54
|
+
### New in Oct 2025 (Developer Newsletter)
|
|
55
|
+
- **Bot profiles per server**: Bots can now set unique profiles per server
|
|
56
|
+
- **New UI components**: Label and TextDisplay components in modals; all select menus now work in modals
|
|
57
|
+
- **New Social SDK webhooks**: `LOBBY_MESSAGE_*` and `GAME_DIRECT_MESSAGE_*` events for moderation
|
|
58
|
+
- **Server-side Provisional Account API**: New endpoint for creating provisional accounts in games
|
|
59
|
+
- **Rate limit**: New rate limit when requesting all guild members via gateway
|
|
60
|
+
|
|
61
|
+
### Deprecations (Oct 2025)
|
|
62
|
+
- Non-E2EE voice calls being phased out
|
|
63
|
+
- Deprecated voice and video transport modes — update implementations
|
|
64
|
+
|
|
65
|
+
### Bug Fixes (Mar 2026)
|
|
66
|
+
- Escaped mentions `\@everyone` no longer trigger mentions — backend now properly respects escape characters
|
|
67
|
+
- Desktop app p50 TTI reduced by 11.8% via API payload ordering optimization
|
|
68
|
+
|
|
50
69
|
## Authentication
|
|
51
70
|
|
|
52
71
|
Bearer Token authentication. Credentials can be set via:
|
|
@@ -47,6 +47,14 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Notes (2026)
|
|
51
|
+
|
|
52
|
+
Docker Hub REST API: `https://hub.docker.com/v2/`
|
|
53
|
+
Docker Engine API: `https://unix:///var/run/docker.sock/v1.xx/` (local socket)
|
|
54
|
+
Current Engine API version: v1.47+ (Docker Engine 27+)
|
|
55
|
+
|
|
56
|
+
Auth: Docker Hub uses JWT tokens (POST /users/login). Docker Engine uses unix socket or TCP.
|
|
57
|
+
|
|
50
58
|
## Authentication
|
|
51
59
|
|
|
52
60
|
API Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,27 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Updates (2024-2025)
|
|
51
|
+
|
|
52
|
+
### SDKs
|
|
53
|
+
- Python: `e2b` or `e2b-code-interpreter`
|
|
54
|
+
- JavaScript/TypeScript: `@e2b/code-interpreter`
|
|
55
|
+
|
|
56
|
+
### Sandbox Lifecycle
|
|
57
|
+
- Start: ~150ms spin-up time
|
|
58
|
+
- Pause/resume: data persistence across sessions
|
|
59
|
+
- `download_url`/`downloadUrl` method on sandbox
|
|
60
|
+
- Env vars configurable on `sandbox.create()`
|
|
61
|
+
|
|
62
|
+
### Desktop Sandbox (Dec 2024)
|
|
63
|
+
Virtual desktop for LLM computer use. Isolated VMs with full desktop environment.
|
|
64
|
+
|
|
65
|
+
### Interactive Charts (Oct 2024)
|
|
66
|
+
Automatic chart detection from Matplotlib code via `runCode()`/`run_code()`. Returns chart data to client for custom rendering.
|
|
67
|
+
|
|
68
|
+
### Multi-language Support
|
|
69
|
+
Python, JavaScript/TypeScript, and other languages via code interpreter.
|
|
70
|
+
|
|
50
71
|
## Authentication
|
|
51
72
|
|
|
52
73
|
API Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,30 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## Models (2026)
|
|
51
|
+
|
|
52
|
+
| Model | Description |
|
|
53
|
+
|-------|-------------|
|
|
54
|
+
| `eleven_v3` | **Eleven v3** — GA since Feb 2026. Most expressive TTS. Audio tags, multi-speaker dialogue, 70+ languages. 68% error reduction on numbers/symbols. |
|
|
55
|
+
| `eleven_multilingual_v2` | Multilingual v2 — stable, recommended for real-time/conversational use |
|
|
56
|
+
| `eleven_turbo_v2_5` | Turbo v2.5 — lowest latency, real-time |
|
|
57
|
+
| `eleven_flash_v2_5` | Flash v2.5 — fastest, lowest cost |
|
|
58
|
+
|
|
59
|
+
### Eleven v3 Features (GA Feb 2026)
|
|
60
|
+
- **Audio tags**: `[excited]`, `[whispers]`, `[sighs]`, `[laughs]` inline in text
|
|
61
|
+
- **Multi-speaker dialogue**: New `POST /v1/text-to-dialogue` endpoint
|
|
62
|
+
- **70+ languages** with improved accuracy (99% error reduction for phone numbers, chemical formulas)
|
|
63
|
+
- Requires more prompt engineering than v2 — not recommended for real-time/low-latency use cases
|
|
64
|
+
|
|
65
|
+
### Text to Dialogue API (new endpoint)
|
|
66
|
+
```json
|
|
67
|
+
POST /v1/text-to-dialogue
|
|
68
|
+
[
|
|
69
|
+
{"speaker_id": "voice-id-1", "text": "[cheerfully] Hello there!"},
|
|
70
|
+
{"speaker_id": "voice-id-2", "text": "Hey, how are you?"}
|
|
71
|
+
]
|
|
72
|
+
```
|
|
73
|
+
|
|
50
74
|
## Authentication
|
|
51
75
|
|
|
52
76
|
API Key (Header) authentication. Credentials can be set via:
|
|
@@ -47,6 +47,41 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Updates (2025-2026)
|
|
51
|
+
|
|
52
|
+
### Company Search (Jan 2026)
|
|
53
|
+
New fine-tuned retrieval model with entity matching for company queries. Use `type="auto"` + `category="company"`.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
curl -X POST https://api.exa.ai/search \
|
|
57
|
+
-H "x-api-key: $EXA_API_KEY" \
|
|
58
|
+
-d '{"query": "fintech companies in Switzerland", "type": "auto", "category": "company", "numResults": 10}'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Results now include **structured entity data** (`entities[]`) with:
|
|
62
|
+
- `name`, `foundedYear`, `description`, `workforce.total`
|
|
63
|
+
- `headquarters` (address, city, country)
|
|
64
|
+
- `financials` (fundingTotal, fundingLatestRound)
|
|
65
|
+
- `webTraffic.total`
|
|
66
|
+
|
|
67
|
+
Supports: semantic queries, composite queries, funding queries, attribute filtering, named lookups.
|
|
68
|
+
|
|
69
|
+
### Endpoints Overview (2026)
|
|
70
|
+
| Endpoint | Description |
|
|
71
|
+
|----------|-------------|
|
|
72
|
+
| `POST /search` | Neural/keyword search (`type`: auto, neural, keyword) |
|
|
73
|
+
| `POST /search` with `type=deep` | Multi-query deep search with structured answers |
|
|
74
|
+
| `POST /findSimilar` | Find pages similar to a given URL |
|
|
75
|
+
| `POST /contents` | Extract text, summaries, highlights from URLs |
|
|
76
|
+
| `POST /answer` | Direct answers with citations |
|
|
77
|
+
| `POST /research` | Async agent-style deep research |
|
|
78
|
+
|
|
79
|
+
### Search Types
|
|
80
|
+
- `neural` — semantic/embedding-based
|
|
81
|
+
- `keyword` — fast keyword matching
|
|
82
|
+
- `auto` — automatically selects best type
|
|
83
|
+
- `deep` — multi-query with structured answers (slower, better for complex queries)
|
|
84
|
+
|
|
50
85
|
## Authentication
|
|
51
86
|
|
|
52
87
|
API Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,40 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Updates (2025-2026)
|
|
51
|
+
|
|
52
|
+
### Variables API — Extended Collections (Nov 2025)
|
|
53
|
+
Extended collections allow variants of existing variable collections with overrides while maintaining a single source of truth.
|
|
54
|
+
|
|
55
|
+
New fields on `VariableCollection`:
|
|
56
|
+
- `isExtension: boolean`
|
|
57
|
+
- `parentVariableCollectionId: string` — only when isExtension is true
|
|
58
|
+
- `rootVariableCollectionId: string`
|
|
59
|
+
- `inheritedVariableIds: string[]`
|
|
60
|
+
- `localVariableIds: string[]`
|
|
61
|
+
- `variableOverrides: Record<variableId, Record<modeId, value>>`
|
|
62
|
+
|
|
63
|
+
New `POST /v1/files/:key/variables` param: `initialModeIdToParentModeIdMapping`
|
|
64
|
+
|
|
65
|
+
### Node Properties (Jan 2026)
|
|
66
|
+
New node properties:
|
|
67
|
+
- `transformModifiers` on TRANSFORM_GROUP nodes
|
|
68
|
+
- `textPathStartData` on TEXT_PATH nodes
|
|
69
|
+
- `variableWidthPoints` — variable width stroke profiles
|
|
70
|
+
- `complexStrokeProperties` — brush and dynamic strokes
|
|
71
|
+
|
|
72
|
+
### Rate Limits (Nov 2025)
|
|
73
|
+
Published rate limits now enforced. Check [rate limits docs](https://developers.figma.com/docs/rest-api/rate-limits) for current values.
|
|
74
|
+
|
|
75
|
+
### Figma MCP Server (beta, Sep 2025)
|
|
76
|
+
Figma now has an official MCP Server in beta for AI agent access to design files.
|
|
77
|
+
|
|
78
|
+
### OAuth App Publishing (Nov 2025)
|
|
79
|
+
All OAuth apps must complete the new publishing flow via the Apps page. PAT generation via docs is temporarily removed — use the Postman workspace for testing.
|
|
80
|
+
|
|
81
|
+
### Discovery API (Jan 2026)
|
|
82
|
+
For Enterprise plans with Governance+: can now retrieve text of user-submitted AI prompts from Figma AI tools.
|
|
83
|
+
|
|
50
84
|
## Authentication
|
|
51
85
|
|
|
52
86
|
API Key authentication. Credentials can be set via:
|
|
@@ -47,6 +47,33 @@ src/
|
|
|
47
47
|
└── index.ts # Library exports
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
+
## API Updates (2025-2026)
|
|
51
|
+
|
|
52
|
+
### Endpoints (v1)
|
|
53
|
+
| Endpoint | Description |
|
|
54
|
+
|----------|-------------|
|
|
55
|
+
| `POST /v1/scrape` | Scrape a single URL |
|
|
56
|
+
| `POST /v1/crawl` | Crawl a website |
|
|
57
|
+
| `POST /v1/map` | Map a website's URLs |
|
|
58
|
+
| `POST /v1/search` | Search the web and scrape results (Jun 2025) |
|
|
59
|
+
| `POST /v1/extract` | Extract structured data (v2: pagination, search, FIRE-1) |
|
|
60
|
+
| `POST /v1/agent` | Agentic data gathering (Dec 2025) |
|
|
61
|
+
| `POST /v1/batch/scrape` | Parallel agent batch processing |
|
|
62
|
+
|
|
63
|
+
### New in 2026
|
|
64
|
+
- **Browser Sandbox** (Feb 2026) — Fully managed isolated browser for agents. Zero config, pre-loaded tools.
|
|
65
|
+
- **PDF Parser v2** (Feb 2026) — 3x faster Rust-based parser. Three auto-adapting modes (clean text, scanned, complex).
|
|
66
|
+
- **Parallel Agents** (Jan 2026) — Batch `/agent` queries in spreadsheet/JSON format with streaming.
|
|
67
|
+
- **Branding Format v2** (Feb 2026) — Improved logo extraction for AI agents.
|
|
68
|
+
- **Spark 1 Pro/Mini models** (Jan 2026) — Flexible model selection for `/agent`. Mini is 60% cheaper.
|
|
69
|
+
- **Claude Code plugin** (Feb 2026) — Official Firecrawl skill for Claude Code.
|
|
70
|
+
|
|
71
|
+
### /extract v2 (Apr 2025)
|
|
72
|
+
Added: pagination, FIRE-1 intelligent interaction, built-in search integration.
|
|
73
|
+
|
|
74
|
+
### FIRE-1 Agent (Apr 2025)
|
|
75
|
+
New AI agent that intelligently navigates and interacts with web pages for complex scraping.
|
|
76
|
+
|
|
50
77
|
## Authentication
|
|
51
78
|
|
|
52
79
|
Bearer Token authentication. Credentials can be set via:
|