open-index/open-npm huggingface dataset:
npm package: @frankma4529/pi-ai-brain-agent-sdk
Description: Pi AI Brain 数据库 Agent SDK（PostgreSQL/MySQL，安全/自愈/缓存/Schema 扫描，6 个工具）
Latest version: 0.1.0

# Pi AI Brain Agent SDK (MVP)

独立的数据库 Agent SDK，复用 Pi AI Brain 后端的核心能力：连接池管理、SQL 安全/预处理/自愈、Schema 扫描与缓存、6 个数据库工具（PostgreSQL/MySQL）。

## 安装

```bash
npm install @frankma4529/pi-ai-brain-agent-sdk
# 由使用方提供数据库驱动
npm install pg mysql2 ioredis
```

## 快速开始

```ts
import { PiAgentSDK } from '@frankma4529/pi-ai-brain-agent-sdk';

const sdk = new PiAgentSDK({
  security: { allowWrite: false, allowedSchemas: ['public'] },
  cache: { fallbackToMemory: true }, // 可传入 redisClient
});

await sdk.dataSources.register({
  id: 'ds1',
  name: 'Demo PG',
  type: 'postgres',
  tenantId: 't1',
  connectionString: 'postgresql://user:pass@localhost:5432/db',
  configJson: { schemas: ['public'] },
  testConnection: true,
});

const result = await sdk.tools.execute(
  'execute_sql',
  { datasource_id: 'ds1', sql: 'SELECT 1 as num' },
  { tenantId: 't1' },
);
console.log(result.data?.rows);
```

## 核心能力
- 连接池管理：Pg/MySQL 动态池，空闲/过期清理。
- SQL 安全与自愈：只读/DDL 限制、危险关键字校验，方言预处理+自愈。
- Schema 扫描与缓存：信息模式扫描，Redis/内存缓存，快照持久化接口。
- 工具层：execute_sql、list_tables、search_tables、get_table_schema、analyze_table、analyze_schema。
- 默认实现：内存 DataSource/Schema Store、Console 审计、内存指标、Env KeyManager（ENCRYPTION_KEY >= 32 字符）。

## 目录结构
- `src/sdk.ts`：SDK 入口。
- `src/core/*`：连接池、缓存、Schema、SQL 安全、预处理、自愈。
- `src/tools/database-tool-provider.ts`：6 个工具。
- `src/stores/*`：内存持久化默认实现。
- `src/monitoring/*`：审计与指标默认实现。

## 注意
- 需要 `ENCRYPTION_KEY` 环境变量（>=32 字符）或自定义 `keyManager`。
- Redis 可选，未配置时自动降级到内存缓存。
- 当前版本不包含 MSSQL、Prisma 适配器、MCP 适配器（计划版本）。
# pi-ai-brain-agent-sdk
npm package: @frankrecalde/es-css-lint-config
Description: Drupal eslint meta package
Latest version: 0.0.5

[![Publish Package to npmjs](https://github.com/frankrecalde/es-css-lint-config/actions/workflows/npm-publish-package.yml/badge.svg)](https://github.com/frankrecalde/es-css-lint-config/actions/workflows/npm-publish-package.yml)

# JS and CSS lint configuration
JS and CSS lint configuration for projects

## Usage

`npm i --save-dev @frankrecalde/es-css-lint-config`

`.eslintrc`

```json
{
  "extends": ["@frankrecalde/es-css-lint-config/drupal"],
  "root": true
}
```

`.stylelintrc`

```json
{
  "extends": ["@frankrecalde/es-css-lint-config/style"]
}
```

`.prettierrc.js`

```js
module.exports = {
  ...require("@frankrecalde/es-css-lint-config/prettier"),
};
```

or

`package.json`

```json
{
  "devDependencies": {
    "@frankrecalde/es-css-lint-config": "^0.0.1"
  },
  "eslintConfig": {
    "extends": ["@frankrecalde/es-css-lint-config/drupal"],
    "root": true
  },
  "stylelint": { "extends": ["@frankrecalde/es-css-lint-config/style"] },
  "prettier": "@frankrecalde/es-css-lint-config/prettier"
}
```

## Vscode

### Recommended addons

- EsLint
- Prettier - Code formatter
- Stylelint

### Recommended settings

```json
  "[javascript]": {
    "editor.formatOnSave": false,
    "editor.formatOnType": false,
    "editor.formatOnPaste": false,
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true
    },
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[scss]": {
    "editor.formatOnSave": true,
    "editor.formatOnType": false,
    "editor.formatOnPaste": false,
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.codeActionsOnSave": {
      "source.fixAll.stylelint": true
    }
  },
  "[vue]": {
    "editor.formatOnSave": true,
    "editor.formatOnType": false,
    "editor.formatOnPaste": false,
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true,
      "source.fixAll.stylelint": true
    },
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "javascript.format.insertSpaceBeforeFunctionParenthesis": false,
```