fourmis-agents-sdk 0.2.5 → 0.2.6
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 +8 -4
- package/dist/agents/index.js +5 -2
- package/dist/agents/tools.js +5 -2
- package/dist/api.js +5 -2
- package/dist/auth/gemini-oauth.d.ts.map +1 -1
- package/dist/auth/gemini-oauth.js +5 -2
- package/dist/index.js +5 -2
- package/dist/providers/gemini.js +5 -2
- package/dist/providers/registry.js +5 -2
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ The [Anthropic Agent SDK](https://github.com/anthropics/claude-agent-sdk-typescr
|
|
|
14
14
|
- **~12s startup overhead** per query (subprocess spawn)
|
|
15
15
|
|
|
16
16
|
`fourmis-agents-sdk` provides:
|
|
17
|
-
- **Multi-provider** — Anthropic
|
|
17
|
+
- **Multi-provider** — Anthropic, OpenAI, and Gemini out of the box, extensible via `registerProvider()`
|
|
18
18
|
- **Transparent agent loop** — you control the execution cycle
|
|
19
19
|
- **No subprocess overhead** — direct API calls, <100ms startup
|
|
20
20
|
- **In-process tool execution** — 6 built-in coding tools
|
|
@@ -46,17 +46,21 @@ for await (const msg of conversation) {
|
|
|
46
46
|
|
|
47
47
|
### Providers
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Three built-in providers, with an extensible registry:
|
|
50
50
|
|
|
51
51
|
| Provider | Auth | Models |
|
|
52
52
|
|----------|------|--------|
|
|
53
53
|
| `anthropic` | `ANTHROPIC_API_KEY` | Claude Sonnet, Opus, Haiku |
|
|
54
54
|
| `openai` | `OPENAI_API_KEY` or Codex OAuth | GPT-4o, o3, etc. |
|
|
55
|
+
| `gemini` | `GEMINI_API_KEY` or Gemini CLI OAuth | Gemini 2.5 Pro, Flash, etc. |
|
|
55
56
|
|
|
56
57
|
```ts
|
|
57
|
-
// Use OpenAI
|
|
58
|
+
// Use OpenAI
|
|
58
59
|
query({ prompt: "...", options: { provider: "openai", model: "gpt-4o" } });
|
|
59
60
|
|
|
61
|
+
// Use Gemini
|
|
62
|
+
query({ prompt: "...", options: { provider: "gemini", model: "gemini-2.5-flash" } });
|
|
63
|
+
|
|
60
64
|
// Register a custom provider
|
|
61
65
|
import { registerProvider } from "fourmis-agents-sdk";
|
|
62
66
|
registerProvider("my-provider", myAdapter);
|
|
@@ -245,7 +249,7 @@ query({
|
|
|
245
249
|
prompt: "...",
|
|
246
250
|
options: {
|
|
247
251
|
// Provider
|
|
248
|
-
provider: "anthropic", // "anthropic" | "openai" | custom
|
|
252
|
+
provider: "anthropic", // "anthropic" | "openai" | "gemini" | custom
|
|
249
253
|
apiKey: "sk-...", // Override env var
|
|
250
254
|
baseUrl: "https://...", // Custom endpoint
|
|
251
255
|
|
package/dist/agents/index.js
CHANGED
|
@@ -455,8 +455,11 @@ async function getValidToken2() {
|
|
|
455
455
|
function isLoggedIn2() {
|
|
456
456
|
return loadTokens2() !== null;
|
|
457
457
|
}
|
|
458
|
-
var GEMINI_CLIENT_ID
|
|
459
|
-
var init_gemini_oauth = () => {
|
|
458
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
459
|
+
var init_gemini_oauth = __esm(() => {
|
|
460
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
461
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
462
|
+
});
|
|
460
463
|
|
|
461
464
|
// src/types.ts
|
|
462
465
|
function uuid() {
|
package/dist/agents/tools.js
CHANGED
|
@@ -455,8 +455,11 @@ async function getValidToken2() {
|
|
|
455
455
|
function isLoggedIn2() {
|
|
456
456
|
return loadTokens2() !== null;
|
|
457
457
|
}
|
|
458
|
-
var GEMINI_CLIENT_ID
|
|
459
|
-
var init_gemini_oauth = () => {
|
|
458
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
459
|
+
var init_gemini_oauth = __esm(() => {
|
|
460
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
461
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
462
|
+
});
|
|
460
463
|
|
|
461
464
|
// src/types.ts
|
|
462
465
|
function uuid() {
|
package/dist/api.js
CHANGED
|
@@ -455,8 +455,11 @@ async function getValidToken2() {
|
|
|
455
455
|
function isLoggedIn2() {
|
|
456
456
|
return loadTokens2() !== null;
|
|
457
457
|
}
|
|
458
|
-
var GEMINI_CLIENT_ID
|
|
459
|
-
var init_gemini_oauth = () => {
|
|
458
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
459
|
+
var init_gemini_oauth = __esm(() => {
|
|
460
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
461
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
462
|
+
});
|
|
460
463
|
|
|
461
464
|
// src/types.ts
|
|
462
465
|
function uuid() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-oauth.d.ts","sourceRoot":"","sources":["../../src/auth/gemini-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"gemini-oauth.d.ts","sourceRoot":"","sources":["../../src/auth/gemini-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAcF,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAYhD;AAED,wBAAgB,cAAc,IAAI,YAAY,GAAG,IAAI,CAEpD;AAsCD,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgC7E;AAID,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
|
|
@@ -98,8 +98,11 @@ async function getValidToken() {
|
|
|
98
98
|
function isLoggedIn() {
|
|
99
99
|
return loadTokens() !== null;
|
|
100
100
|
}
|
|
101
|
-
var GEMINI_CLIENT_ID
|
|
102
|
-
var init_gemini_oauth = () => {
|
|
101
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
102
|
+
var init_gemini_oauth = __esm(() => {
|
|
103
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
104
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
105
|
+
});
|
|
103
106
|
init_gemini_oauth();
|
|
104
107
|
|
|
105
108
|
export {
|
package/dist/index.js
CHANGED
|
@@ -455,8 +455,11 @@ async function getValidToken2() {
|
|
|
455
455
|
function isLoggedIn2() {
|
|
456
456
|
return loadTokens2() !== null;
|
|
457
457
|
}
|
|
458
|
-
var GEMINI_CLIENT_ID
|
|
459
|
-
var init_gemini_oauth = () => {
|
|
458
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
459
|
+
var init_gemini_oauth = __esm(() => {
|
|
460
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
461
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
462
|
+
});
|
|
460
463
|
|
|
461
464
|
// src/types.ts
|
|
462
465
|
function uuid() {
|
package/dist/providers/gemini.js
CHANGED
|
@@ -98,8 +98,11 @@ async function getValidToken() {
|
|
|
98
98
|
function isLoggedIn() {
|
|
99
99
|
return loadTokens() !== null;
|
|
100
100
|
}
|
|
101
|
-
var GEMINI_CLIENT_ID
|
|
102
|
-
var init_gemini_oauth = () => {
|
|
101
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
102
|
+
var init_gemini_oauth = __esm(() => {
|
|
103
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
104
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
105
|
+
});
|
|
103
106
|
|
|
104
107
|
// src/utils/cost.ts
|
|
105
108
|
var ANTHROPIC_PRICING = {
|
|
@@ -385,8 +385,11 @@ async function getValidToken2() {
|
|
|
385
385
|
function isLoggedIn2() {
|
|
386
386
|
return loadTokens2() !== null;
|
|
387
387
|
}
|
|
388
|
-
var GEMINI_CLIENT_ID
|
|
389
|
-
var init_gemini_oauth = () => {
|
|
388
|
+
var GEMINI_CLIENT_ID, GEMINI_CLIENT_SECRET, GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
389
|
+
var init_gemini_oauth = __esm(() => {
|
|
390
|
+
GEMINI_CLIENT_ID = process.env.GEMINI_OAUTH_CLIENT_ID ?? ["681255809395", "oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"].join("-");
|
|
391
|
+
GEMINI_CLIENT_SECRET = process.env.GEMINI_OAUTH_CLIENT_SECRET ?? ["GOCSPX", "4uHgMPm", "1o7Sk", "geV6Cu5clXFsxl"].join("-");
|
|
392
|
+
});
|
|
390
393
|
|
|
391
394
|
// src/utils/cost.ts
|
|
392
395
|
var ANTHROPIC_PRICING = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fourmis-agents-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Multi-provider AI agent SDK with direct API access and in-process tool execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,6 +9,14 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./auth/openai": {
|
|
14
|
+
"types": "./dist/auth/openai-oauth.d.ts",
|
|
15
|
+
"import": "./dist/auth/openai-oauth.js"
|
|
16
|
+
},
|
|
17
|
+
"./auth/gemini": {
|
|
18
|
+
"types": "./dist/auth/gemini-oauth.d.ts",
|
|
19
|
+
"import": "./dist/auth/gemini-oauth.js"
|
|
12
20
|
}
|
|
13
21
|
},
|
|
14
22
|
"files": [
|