Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
96e17a2
feat: rate limit v1
riturajFi Nov 28, 2025
cf6846e
feat: introduced RPM
riturajFi Nov 29, 2025
1624c01
feat: normalize rate limits
riturajFi Nov 29, 2025
17fe442
feat: circuit breaker v1 + simple fallback
riturajFi Dec 1, 2025
229e48f
feat: priority queue
riturajFi Dec 1, 2025
72fc58a
feat: tenant id
riturajFi Dec 1, 2025
3e51775
feat: minor fix
riturajFi Dec 6, 2025
1ee6657
feat: final v0
riturajFi Dec 13, 2025
aa53fd5
feat: final v0
riturajFi Dec 13, 2025
e978053
feat: refactotr
riturajFi Dec 13, 2025
ecf14a0
feat: refactotr
riturajFi Dec 14, 2025
32276d7
feat: retry after header
riturajFi Dec 14, 2025
006f1a0
feat: added timeout to ckt breaker
riturajFi Dec 15, 2025
bee794e
feat: tenant based ckt breaker
riturajFi Dec 15, 2025
3b0f14d
feat: token bucket rate limit strategy
riturajFi Dec 16, 2025
97c3c0d
fix: make sure the system updates rate limits and failures for the co…
riturajFi Dec 22, 2025
df8833b
fix: hadnle stream failure
riturajFi Dec 22, 2025
9f4e169
feat: search headers
riturajFi Dec 22, 2025
70458f6
feat: tokens + requests per minute enforcement
riturajFi Dec 23, 2025
9db0481
fix: rate limit mapping config
riturajFi Dec 23, 2025
f4cbdcb
fix: error policy
riturajFi Dec 23, 2025
f8249f9
fix: circuit‑breaker probe, task‑aware fallback policy selection, and…
riturajFi Dec 24, 2025
2175517
fix: strict queue wait limits
riturajFi Dec 24, 2025
04921a3
fix: strict queue wait limits
riturajFi Dec 24, 2025
def0fa5
fix: token caps
riturajFi Dec 25, 2025
87c284a
fix: open ai rate limitter
riturajFi Dec 25, 2025
f41b8b7
fix: stream failure handle
riturajFi Dec 25, 2025
7f3c562
fix: pre detection of token count
riturajFi Dec 25, 2025
726487a
fix: per‑key traffic fields
riturajFi Dec 25, 2025
426960e
chore: sanity
riturajFi Dec 25, 2025
6182cf0
fix: per tenant tpm/rpm
riturajFi Dec 25, 2025
6a962e4
fix: token throttling incomplete
riturajFi Dec 25, 2025
1879d42
fix: cant sneak retry
riturajFi Dec 25, 2025
7663768
fix: queue timeout fallback
riturajFi Dec 25, 2025
c315693
fix: missing traffic metadata
riturajFi Dec 25, 2025
50329da
fix: short‑response fallback
riturajFi Dec 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions commits.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
e8443df2
9503a0a6
293fe825
a88ecd67
66d74dd2
53f34370
1 change: 1 addition & 0 deletions examples/with-client-side-tools/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
import "./.next/types/routes.d.ts";

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
24 changes: 19 additions & 5 deletions examples/with-client-side-tools/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{
"compilerOptions": {
"lib": ["dom", "dom.iterable", "esnext"],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
Expand All @@ -11,18 +15,28 @@
"resolveJsonModule": true,
"isolatedModules": true,
"sourceMap": true,
"jsx": "preserve",
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
"@/*": [
"./*"
]
},
"target": "ES2017"
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { createNetlifyFunctionHandler } from "@voltagent/serverless-hono";
import { getVoltAgent } from "../../src/index";
const voltAgent = getVoltAgent();
export const handler = createNetlifyFunctionHandler(voltAgent);
17 changes: 17 additions & 0 deletions examples/with-netlify-functions/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { openai } from "@ai-sdk/openai";
import { Agent, VoltAgent } from "@voltagent/core";
import { serverlessHono } from "@voltagent/serverless-hono";
import { weatherTool } from "./tools";
const agent = new Agent({
name: "netlify-function-agent",
instructions: "Help the user quickly and call tools when needed.",
model: openai("gpt-4o-mini"),
tools: [weatherTool],
});
const voltAgent = new VoltAgent({
agents: { agent },
serverless: serverlessHono(),
});
export function getVoltAgent() {
return voltAgent;
}
26 changes: 26 additions & 0 deletions examples/with-netlify-functions/src/tools/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { createTool } from "@voltagent/core";
import z from "zod";
export const weatherTool = createTool({
id: "get-weather",
name: "getWeather",
description: "Return a mock weather report for the requested location",
parameters: z.object({
location: z.string().describe("City or location to look up"),
}),
execute: async ({ location }, context) => {
context?.logger.info(`Fetching weather for ${location}`);
const mockWeatherData = {
location,
temperature: Math.floor(Math.random() * 30) + 5,
condition: ["Sunny", "Cloudy", "Rainy", "Snowy", "Partly Cloudy"][
Math.floor(Math.random() * 5)
],
humidity: Math.floor(Math.random() * 60) + 30,
windSpeed: Math.floor(Math.random() * 30),
};
return {
weather: mockWeatherData,
message: `Current weather in ${location}: ${mockWeatherData.temperature}°C and ${mockWeatherData.condition.toLowerCase()} with ${mockWeatherData.humidity}% humidity and wind speed of ${mockWeatherData.windSpeed} km/h.`,
};
},
});
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@
"publint": "^0.3.8",
"rimraf": "^5.0.5",
"syncpack": "^13.0.2",
"ts-node": "^10.9.2",
"tslib": "^2.3.0",
"tsup": "^8.5.0",
"typescript": "^5.8.2",
"typescript": "^5.9.2",
"vite": "^7.2.7",
"vitest": "^3.2.4"
},
Expand Down
Loading