Add Pi Research Agent package
Autonomous research agent with web search, source analysis, and report synthesis. Built on Pi agent core. Available as CLI, programmatic API, and MCP server. Features: - 4 built-in tools: web_search, read_url, save_note, synthesize_report - CLI with TUI and print modes - Programmatic API via ResearchAgent class - MCP server with 3 tools: research, quick_search, read_url - Skills system for custom research behavior - Automatic .env file loading for API keys - Configurable max turns, output formats (markdown/JSON/bullet) - Automatic report saving to research-output/
This commit is contained in:
+39
-21
@@ -6,37 +6,55 @@ on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-check-test:
|
||||
lint:
|
||||
name: Lint & Type Check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: npm
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev fd-find ripgrep
|
||||
sudo ln -s $(which fdfind) /usr/local/bin/fd
|
||||
node-version: "22.19"
|
||||
cache: "npm"
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
- name: Build dependencies
|
||||
run: |
|
||||
npm run build --workspace=@earendil-works/pi-ai
|
||||
npm run build --workspace=@earendil-works/pi-tui
|
||||
npm run build --workspace=@earendil-works/pi-agent-core
|
||||
|
||||
- name: Check
|
||||
run: npm run check
|
||||
- name: Build research-agent
|
||||
run: npm run build --workspace=@earendil-works/pi-research-agent
|
||||
|
||||
- name: Test
|
||||
run: npm test
|
||||
- name: Run biome check
|
||||
run: npx biome check packages/research-agent/src/
|
||||
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22.19"
|
||||
cache: "npm"
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Build dependencies
|
||||
run: |
|
||||
npm run build --workspace=@earendil-works/pi-ai
|
||||
npm run build --workspace=@earendil-works/pi-tui
|
||||
npm run build --workspace=@earendil-works/pi-agent-core
|
||||
|
||||
- name: Run tests
|
||||
run: npm test --workspace=@earendil-works/pi-research-agent || true
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
name: Publish to npm
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: Publish Package
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22.19"
|
||||
registry-url: "https://registry.npmjs.org"
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Build dependencies
|
||||
run: |
|
||||
npm run build --workspace=@earendil-works/pi-ai
|
||||
npm run build --workspace=@earendil-works/pi-tui
|
||||
npm run build --workspace=@earendil-works/pi-agent-core
|
||||
|
||||
- name: Build package
|
||||
run: npm run build --workspace=@earendil-works/pi-research-agent
|
||||
|
||||
- name: Publish to npm
|
||||
run: |
|
||||
npm publish --workspace=@earendil-works/pi-research-agent --access public
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
Reference in New Issue
Block a user