Update app and tooling
This commit is contained in:
parent
3046531bdd
commit
e620ec7349
4950 changed files with 2975120 additions and 10 deletions
123
node_modules/@vercel/detect-agent/README.md
generated
vendored
Normal file
123
node_modules/@vercel/detect-agent/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
# @vercel/detect-agent
|
||||
|
||||
A lightweight utility for detecting if code is being executed by an AI agent or automated development environment.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
npm install @vercel/detect-agent
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```typescript
|
||||
import { determineAgent } from '@vercel/detect-agent';
|
||||
|
||||
const { isAgent, agent } = await determineAgent();
|
||||
|
||||
if (isAgent) {
|
||||
console.log(`Running in ${agent.name} environment`);
|
||||
// Adapt behavior for AI agent context
|
||||
}
|
||||
```
|
||||
|
||||
## Supported Agents
|
||||
|
||||
This package can detect the following AI agents and development environments:
|
||||
|
||||
- **Custom agents** via `AI_AGENT` environment variable
|
||||
- **Cursor** (cursor editor and cursor-cli)
|
||||
- **Claude Code** (Anthropic's Claude)
|
||||
- **Devin** (Cognition Labs)
|
||||
- **Gemini CLI** (Google)
|
||||
- **Codex** (OpenAI)
|
||||
- **Replit** (online IDE)
|
||||
|
||||
## The AI_AGENT Standard
|
||||
|
||||
We're promoting `AI_AGENT` as a universal environment variable standard for AI development tools. This allows any tool or library to easily detect when it's running in an AI-driven environment.
|
||||
|
||||
### For AI Tool Developers
|
||||
|
||||
Set the `AI_AGENT` environment variable to identify your tool:
|
||||
|
||||
```bash
|
||||
export AI_AGENT="your-tool-name"
|
||||
# or
|
||||
AI_AGENT="your-tool-name" your-command
|
||||
```
|
||||
|
||||
### Recommended Naming Convention
|
||||
|
||||
- Use lowercase with hyphens for multi-word names
|
||||
- Include version information if needed, separated by an `@` symbol
|
||||
- Examples: `claude-code`, `cursor-cli`, `devin@1`, `custom-agent@2.0`
|
||||
|
||||
## Use Cases
|
||||
|
||||
### Adaptive Behavior
|
||||
|
||||
```typescript
|
||||
import { determineAgent } from '@vercel/detect-agent';
|
||||
|
||||
async function setupEnvironment() {
|
||||
const { isAgent, agent } = await determineAgent();
|
||||
|
||||
if (isAgent) {
|
||||
// Running in AI environment - adjust behavior
|
||||
process.env.LOG_LEVEL = 'verbose';
|
||||
console.log(`🤖 Detected AI agent: ${agent.name}`);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Telemetry and Analytics
|
||||
|
||||
```typescript
|
||||
import { determineAgent } from '@vercel/detect-agent';
|
||||
|
||||
async function trackUsage(event: string) {
|
||||
const result = await determineAgent();
|
||||
|
||||
analytics.track(event, {
|
||||
agent: result.isAgent ? result.agent.name : 'human',
|
||||
timestamp: Date.now(),
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
### Feature Toggles
|
||||
|
||||
```typescript
|
||||
import { determineAgent } from '@vercel/detect-agent';
|
||||
|
||||
async function shouldEnableFeature(feature: string) {
|
||||
const result = await determineAgent();
|
||||
|
||||
// Enable experimental features for AI agents
|
||||
if (result.isAgent && feature === 'experimental-ai-mode') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions! Please see our [contributing guidelines](../../CONTRIBUTING.md).
|
||||
|
||||
### Adding New Agent Support
|
||||
|
||||
To add support for a new AI agent:
|
||||
|
||||
1. Add detection logic to `src/index.ts`
|
||||
2. Add comprehensive test cases in `test/unit/determine-agent.test.ts`
|
||||
3. Update this README with the new agent information
|
||||
4. Follow the existing priority order pattern
|
||||
|
||||
## Links
|
||||
|
||||
- [GitHub Repository](https://github.com/vercel/vercel/tree/main/packages/detect-agent)
|
||||
- [npm Package](https://www.npmjs.com/package/@vercel/detect-agent)
|
||||
- [Vercel Documentation](https://vercel.com/docs)
|
||||
Loading…
Add table
Add a link
Reference in a new issue