Aayush Kapoor
90d · built 2026-09-30
Performance
What Aayush Kapoor shipped in the selected window, measured in ETV, and how it compares with the 90 days before it.
Effective capacity
+1.1engineers
delivers like 2.1 (2.1x pre-AI)
Output (ETV)
22.0ETV
−34.8% vs 33.7 prior
Features share
37.0%
+7.6 pp vs prior window
Fixes share
17.5%
+2.5 pp vs prior window
Work mix
37% Features5.4% Maintenance34.7% Tests5.3% Docs17.5% Fixes
71 commits over 90 days, ending 2026-09-30.
Where this dev ranks
Percentile against the global top-100 leaderboard (all-time totals).
- By commits
- Top 76 %
- By Features share
- Top 63 %
Daily performance
Daily ETV, stacked by Features, Maintenance, Tests, Docs and Fixes.
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 10 by ETV in the last 90 days.
- 3.9ETVfeat: add first-party Code Mode package (#18091) ## Background works towards https://github.com/vercel/ai/issues/18071 the idea is to unify the different provider implementations of programmatic tool calling / code-mode. ## Summary add a new `@ai-sdk/code-mode` package that will export the necessary controls for executing the tools in that format ## End-to-End Verification - ran the example `examples/ai-functions/src/generate-text/code-mode/code-mode.ts` - ran the example `examples/ai-functions/src/stream-text/code-mode/code-mode.ts` - ran the example `http://localhost:3000/chat/code-mode` ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [ ] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review) ## Future Work - api syntax will change - docs need to be added - tool approval mechanism needs to work - workflow boundary concerns ## Related Issues towards #18071 fixes #18141github.com-vercel-ai · 29d7b679 · 2026-07-30
- 1.4ETVfeat(code-mode): add signed interruption continuations and nested tool replay (#18292) ## Background #18143 Code mode can call multiple nested tools in one sandbox execution. We needed a way to pause at a sensitive tool, wait for approval and later continue without repeating tools that already executed ## Summary added signed, expiring continuations that let code-mode pause for nested tool approval and resume through deterministic replay without repeating completed tool calls. ## End-to-End Verification na ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [ ] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review) ## Future Work wire it with ai core approvals flow ## Related Issues towards #18143github.com-vercel-ai · 8b7f8050 · 2026-08-03
- 0.9ETVfix: Bedrock Claude Opus structured output fails after multi-step tool calls (#17222) ## Background Bedrock Claude Opus 4.7/4.8 could return malformed structured output after verbose multi-step tool calls, causing AI_NoObjectGeneratedError. ## Summary For Opus 4.7/4.8 tool workflows, the provider now injects the JSON schema into the prompt instead of using an unreliable synthetic response tool, avoids unsupported native structured output fields, and extracts the complete JSON object from generated text. ## Testing Updated the existing Bedrock chat language model tests to verify schema instruction injection, exclusion of the synthetic response tool, and normalization of fenced or trailing structured output. ## End-to-end Validation - `pnpm tsx -e ...` verbose six-page Opus 4.8 batch: completed six tool rounds and all 12 tool results, then returned schema-valid output after a 96,123-input-token final step. ## Related Issues Fixes #16662 Co-authored-by: igalmazor <218749803+igalmazor@users.noreply.github.com>github.com-vercel-ai · b0e9d241 · 2026-07-14
- 0.8ETVfeat(mcp): add mcp 2026 streamable HTTP support (#19029) ## Background MCP 2026-07-28 removes protocol-level HTTP sessions and requires request metadata to be mirrored into headers. These changes let `@ai-sdk/mcp` communicate with modern servers while preserving compatibility with initialization-based servers. Reference: https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http ## Summary - Added Streamable HTTP behavior - Added required HTTP headers: `Mcp-Method` `Mcp-Name` ## End-to-End Verification verified by running the example in `examples/mcp/src/http-2026/client.ts` ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [ ] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review) ## Related Issues towards #19005github.com-vercel-ai · 0c60a40c · 2026-08-18
- 0.7ETVfeat(openai): add OpenAI Responses programmatic tool calling (#17790) ## Background OpenAI Responses models can use hosted JavaScript programs to coordinate client-owned functions, requiring provider support for tool configuration, nested caller correlation, result replay, and stored or stateless continuation. ## Summary Adds openai.tools.programmaticToolCalling(), OpenAIToolOptions allowedCallers and outputSchema settings, request serialization, program and program_output protocol handling, streaming support, nested caller correlation, deferred results, and correct metadata-preserving continuation for generateText and streamText. ## Testing The pull request covers hosted-tool serialization, caller modes, output schemas, response and stream conversion, caller round-tripping, deferred results, stored and stateless replay, public types, and providerMetadata item references. Focused Node and Edge tests passed, and full repository tests and type checks completed successfully. ## End-to-end Validation - The OpenAI gpt-5.6 generateText example completed successfully in this iteration. - The complete pull request has also been live-validated for generateText and streamText with stored and `store: false` programmatic tool loops. - verified by running `http://localhost:3000/chat/openai-programmatic-tool-calling` ## Documentation Adds OpenAI provider documentation for setup, caller modes, output schemas, function-tool scope, continuation behavior, and security guidance, plus a generateText example and a patch changeset. ## Related Issues Fixes #17767 Co-authored-by: aayush-kapoor <83492835+aayush-kapoor@users.noreply.github.com>github.com-vercel-ai · 1f6dd3a8 · 2026-07-23
- 0.7ETVfix(ai): prevent generateText from accepting responses that violate required tool choices (#19872) ## Background https://github.com/vercel/ai/issues/8992 the factory started a fix for v6 in https://github.com/vercel/ai/pull/19806 so this is basically a port of the change to v7. Before: - generateText forwarded toolChoice to the provider. - If the provider ignored 'required' and returned text, SDK accepted it successfully. - A specifically requested tool could also be ignored without an error ## Summary after the fix: - Parsed tool calls are checked against the effective toolChoice, including prepareStep overrides. - Missing/wrong calls throw `ToolChoiceViolationError` ## End-to-End Verification na ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [x] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review) ## Related Issues fixes #8992 closes #17834 --------- Co-authored-by: ai-sdk-factory <308175966+ai-sdk-factory@users.noreply.github.com> Co-authored-by: CIVITAS-John <12299703+CIVITAS-John@users.noreply.github.com> Co-authored-by: ai-sdk-factory[bot] <305873210+ai-sdk-factory[bot]@users.noreply.github.com>github.com-vercel-ai · 8b6b756a · 2026-08-31
- 0.7ETVfeat(ai): add native tool search tool (#20856) ## Background Tool search tool is a strong way to save context space and not bloat tool cache with all the tools loading in the first message. It was previously only available via provider defined tools. It should now work with any tool and any model. ## Summary - expose a new tool `toolSearch` from the `ai` repo - prepare the tool so that it only works with `toolDiscovery: 'conversation'` ## End-to-End Verification verified by running the example `examples/ai-functions/src/generate-text/code-mode/tool-search.ts` ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [x] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review)github.com-vercel-ai · c4e76dee · 2026-09-16
- 0.6ETVfeat(code-mode): add mid conversation tool discovery/updates for code-mode (#20467) ## Background there was a need to update tool definitions in code mode in subsequent turns without breaking cache. this was made possible by the boundary added by code mode execution (where-in the model doesn't see the normal tools defined and just sees the code mode tool) ## Summary code mode now takes in a config option `toolDiscovery` (which can be either `'conversation`' or `'description`') - if `conversation`, any future tool updates in the next step are passed as a user message injected in the conversation - which doesn't break the tool cache ## End-to-End Verification verified by running the example `examples/ai-functions/src/generate-text/code-mode/dynamic-mcp-tools.ts` ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [x] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review)github.com-vercel-ai · 91c2128a · 2026-09-16
- 0.6ETVfeat: add experimental_toolCaller routing to generateText for code mode (#18219) ## Background https://github.com/vercel/ai/issues/18142 Previously, code mode required passing tools directly into `createCodeModeTool` but we wanted one shared tools object and explicit control over who can call each tool ## Summary - Added `experimental_codeModeTool()` for late binding. - Added `generateText({ experimental_toolCallers })` ```ts import { experimental_codeModeTool as codeModeTool } from '@ai-sdk/code-mode'; const tools = { code_mode: codeModeTool({ executionPolicy: { timeoutMs: 30_000, memoryLimitBytes: 64 * 1024 * 1024, }, }), getInventory, getDemand, }; const result = await generateText({ model: 'moonshotai/kimi-k3', tools, experimental_toolCallers: ({ code_mode }) => ({ getInventory: [code_mode], getDemand: [code_mode], }), stopWhen: isStepCount(20), prompt: 'compare inventory and demand for product sku_123.', }); ``` ## End-to-End Verification ran the example `examples/ai-functions/src/generate-text/code-mode/code-mode.ts` ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [ ] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review) ## Related Issues fixes #18142github.com-vercel-ai · b192878a · 2026-07-30
- 0.5ETVfeat(code-mode): use run package for code-mode execution (#18832) ## Background the inner workings of the code mode tool can now be abstracted by the `run` package, which allows for the quickJS sandbox execution and the layer to execute agent generated code in the sandbox ## Summary - the inner orchestration to run code mode is now handled by the `run` package - mapping added to convert AI SDK tools to `hostFunctions` ## End-to-End Verification verified by running `http://localhost:3000/chat/code-mode` ## Checklist - [x] All commits are signed (PRs with unsigned commits cannot be merged) - [x] Tests have been added / updated (for bug fixes / features) - [ ] Documentation has been added / updated (for bug fixes / features) - [x] A _patch_ changeset for relevant packages has been added (for bug fixes / features - run `pnpm changeset` in the project root) - [x] I have reviewed this pull request (self-review) ## Future Work - [ ] attach tool approvals to the `run` mechanismgithub.com-vercel-ai · 04387499 · 2026-08-13