open-index/open-npm huggingface dataset:
npm package: @oflow-ai/core
Description: Core library for oFlow CLI - AI providers, tools, and utilities
Author: oFlow Team
Latest version: 0.2.8

# @oflow-ai/core

Core library for oFlow CLI. Provides AI providers, tools, and utilities.

## Installation

```bash
npm install @oflow-ai/core
```

## Features

- **Multi-provider AI support**: OpenAI, DeepSeek, Qwen, GLM, Baichuan, Yi, Moonshot, SiliconFlow
- **Tool system**: File operations, shell commands, web search, and more
- **Conversation management**: Message history and context handling
- **MCP integration**: Model Context Protocol server support
- **Skill system**: Extensible skill packages
- **Sub-agents**: Specialized agents for different tasks
- **Sandbox execution**: Docker/Podman isolation

## Usage

```typescript
import { createAIProvider, Conversation, getConfigManager } from '@oflow-ai/core';

// Configure authentication
const configManager = getConfigManager();
configManager.setAuth({
  provider: 'deepseek',
  apiKey: 'your-api-key',
  model: 'deepseek-chat'
});

// Create AI provider
const provider = createAIProvider(configManager.getAuth()!);

// Start conversation
const conversation = new Conversation({
  provider,
  workingDirectory: process.cwd(),
  onContent: (content) => console.log(content)
});

await conversation.sendMessage('Hello!');
```

## Supported Providers

| Provider | Auth Type | Models |
|----------|-----------|--------|
| openai | API Key | gpt-4o, gpt-4-turbo, o1-preview, etc. |
| deepseek | API Key | deepseek-chat, deepseek-reasoner |
| qwen | API Key | qwen-turbo, qwen-plus, qwen-max |
| zhipu | API Key | glm-5, glm-4.7, glm-4.6, glm-4.5 |
| baichuan | API Key | Baichuan4, Baichuan3-Turbo |
| yi | API Key | yi-lightning, yi-large |
| moonshot | API Key | moonshot-v1-8k, moonshot-v1-32k |
| siliconflow | API Key | Multiple open-source models |
| custom | API Key + Base URL | Any OpenAI-compatible API |

## Tools

Available tools:
- `read_file` - Read file contents
- `write_file` - Write to files
- `list_directory` - List directory contents
- `glob` - Find files by pattern
- `search_file_content` - Search within files
- `run_shell_command` - Execute shell commands
- `web_search` - Search the web
- `web_fetch` - Fetch web content
- `replace` - Replace text in files
- `image_read` - Analyze images
- `pdf_extract` - Extract PDF content
- `ask_user_question` - Interactive user prompts
- `task` - Launch sub-agents
- `save_memory` - Store long-term memories

## License

MIT
npm package: @oflow-ai/oflow-cli
Description: oFlow CLI - AI-powered terminal assistant for developers
Author: oFlow Team
Latest version: 0.2.8

# oFlow CLI

AI-powered CLI assistant for developers. Supports multiple AI providers including OpenAI and Chinese open-source models.

## Installation

### Mac/Linux/Ubuntu

```bash
npm i -g @oflow-ai/oflow-cli
```

### Windows

1. Restart your terminal (CMD or PowerShell)
2. Run:
```bash
npm install -g @oflow-ai/oflow-cli
```

## Quick Start

```bash
# Start oFlow CLI
oflow

# Configure authentication
oflow auth

# List available models
oflow models
```

## Supported AI Providers

### OpenAI
- gpt-4o
- gpt-4o-mini
- gpt-4-turbo
- o1-preview
- o1-mini

### Chinese Open-Source Models

| Provider | Models | Features |
|----------|--------|----------|
| DeepSeek | deepseek-chat, deepseek-reasoner | Reasoning with thinking process |
| Qwen (通义千问) | qwen-turbo/plus/max/long | Chinese optimized |
| GLM (智谱) | glm-5, glm-4.7, glm-4.6, glm-4.5 | Coding/Agent SOTA |
| Baichuan (百川) | Baichuan4, Baichuan3-Turbo | Chinese optimized |
| Yi (零一万物) | yi-lightning/large/medium | Cost-effective |
| Moonshot (月之暗面) | moonshot-v1-8k/32k/128k | Long context |
| SiliconFlow | Multiple open-source models | One-stop API |

## CLI Options

```bash
oflow [options] [command] [prompt]

Options:
  -V, --version          output the version number
  -m, --model <model>    Specify the AI model to use
  -d, --directory <dir>  Working directory
  --yolo                 Run in yolo mode (auto-approve all operations)
  --thinking             Show AI thinking/reasoning process
  --no-thinking          Hide AI thinking/reasoning process
  -h, --help             display help for command

Commands:
  auth [options]         Configure authentication
  config [options]       View or edit configuration
  models                 List available AI models
```

## Slash Commands

Inside the interactive CLI:

| Command | Description |
|---------|-------------|
| `/help` | Show help message |
| `/exit` | Exit CLI |
| `/clear` | Clear conversation history |
| `/init` | Analyze current project |
| `/model [name]` | Show or set current model |
| `/config` | Show configuration |
| `/thinking` | Toggle thinking process display |
| `/tools` | List available tools |
| `/agents` | List available sub-agents |
| `/history` | Show conversation history |
| `/commit` | Generate commit message |
| `/review` | Review recent code changes |

## Features

- **Multi-provider support**: OpenAI, DeepSeek, Qwen, GLM, and more
- **Tool calling**: File operations, shell commands, web search
- **Thinking process**: View AI reasoning for supported models (DeepSeek Reasoner)
- **Sub-agents**: Specialized agents for different tasks
- **MCP integration**: Extend with Model Context Protocol servers
- **Skill system**: Installable skill packages
- **Sandbox mode**: Isolated execution with Docker/Podman

## Configuration

Configuration is stored in:
- macOS/Linux: `~/.config/oflow-nodejs/config.json`
- Windows: `%APPDATA%\oflow-nodejs\config.json`

## Requirements

- Node.js 18.0.0 or higher
- npm 9.0.0 or higher

## License

MIT
npm package: @ofm/ajax
Description: wapper for axio and mock
Author: wangtao0101
Latest version: 1.1.3

# ajax

```
import { initAjax, ajax } from '../src/index';
import mock from '../src/mock';

describe('test ajax', () => {
    test('initAjax', async () => {
        const baseURL = 'https://some-domain.com/api';
        initAjax({
            baseURL,
        });
        mock.onGet('/login').reply(200, { isSuccess: true });
        const response = await ajax.get('/login');
        expect(response.config.baseURL).toBe(baseURL);
        expect(response.data).toEqual({ isSuccess: true });
    });
});
```