Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 0 additions & 68 deletions .github/workflows/cd.yml

This file was deleted.

60 changes: 60 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Release

on:
workflow_dispatch:
inputs:
release_type:
description: Release bump type
required: true
type: choice
options:
- patch
- minor
- major
default: patch
first_release:
description: Use --first-release for initial npm publish
required: true
type: boolean
default: false

permissions:
contents: write

jobs:
release:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
cache: "pnpm"

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Configure git author
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
RELEASE_TYPE: ${{ inputs.release_type }}
FIRST_RELEASE: ${{ inputs.first_release }}
run: pnpm run release:ci
27 changes: 27 additions & 0 deletions .release-it.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"git": {
"commitMessage": "chore(release): v${version}",
"tagName": "v${version}",
"requireCleanWorkingDir": true,
"requireUpstream": true,
"addUntrackedFiles": true,
"commit": true,
"tag": true,
"push": true
},
"github": {
"release": true
},
"npm": {
"publish": true
},
"plugins": {
"@release-it/conventional-changelog": {
"preset": "conventionalcommits",
"infile": "CHANGELOG.md"
}
},
"hooks": {
"before:init": "pnpm run check"
}
}
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Changelog

24 changes: 17 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,23 @@ Requires Node.js `>=22`.

- **Unified manager UI**
- Local extensions (`~/.pi/agent/extensions`, `.pi/extensions`) and installed packages in one list
- Scope indicators (global/project), status indicators, update badges
- Grouped sections for local extensions vs installed packages
- Compact rows with selected-item details below the list, so large extension sets stay scannable
- Built-in search and filter shortcuts for large extension sets
- Scope indicators (global/project), status indicators, update badges, and package sizes when known
- **Package extension configuration panel**
- Configure individual extension entrypoints inside an installed package (`c` on package row)
- Works with manifest-declared entrypoints and conventional `extensions/` package layouts
- Persists to package filters in `settings.json` (no manual JSON editing)
- **Safe staged local extension toggles**
- Toggle with `Space/Enter`, apply with `S`
- Toggle with `Space`, apply with `S`
- Unsaved-change guard when leaving (save/discard/stay)
- **Package management**
- Install, update, remove from UI and command line
- Quick actions (`A`, `u`, `X`) and bulk update (`U`)
- **Remote discovery and install**
- npm search/browse with pagination
- npm search/browse with pagination, inline browse search, and keyboard page navigation
- Path- and git-like queries are handled explicitly instead of surfacing unrelated npm results
- Install by source (`npm:`, `git:`, `https://`, `ssh://`, `git@...`, local path)
- Supports direct GitHub `.ts` installs and standalone local install for self-contained packages
- Long-running discovery/detail screens now show dedicated loading UI, and cancellable reads can be aborted with `Esc`
Expand Down Expand Up @@ -66,20 +70,26 @@ Open the manager:
| Key | Action |
| ------------- | ----------------------------------------------------- |
| `↑↓` | Navigate |
| `Space/Enter` | Toggle local extension on/off |
| `PageUp/Down` | Jump through longer lists |
| `Home/End` | Jump to top or bottom |
| `Space` | Toggle selected local extension on/off |
| `S` | Save local extension changes |
| `Enter` / `A` | Actions on selected package (configure/update/remove) |
| `Enter` / `A` | Actions on selected item |
| `/` / `Ctrl+F`| Search visible items |
| `Tab` / `Shift+Tab` | Cycle filters |
| `1-5` | Filters: All / Local / Packages / Updates / Disabled |
| `c` | Configure selected package extensions |
| `u` | Update selected package directly |
| `V` | View full details for selected item |
| `X` | Remove selected item (package/local extension) |
| `i` | Quick install by source |
| `f` | Quick search |
| `f` | Remote package search |
| `U` | Update all packages |
| `t` | Auto-update wizard |
| `P` / `M` | Quick actions palette |
| `R` | Browse remote packages |
| `?` / `H` | Help |
| `Esc` | Exit |
| `Esc` | Clear search or exit |

### Commands

Expand Down
8 changes: 8 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@
"smoke-test": "node --import=tsx ./scripts/smoke-test.mjs",
"test": "node --import=tsx --test ./test/*.test.ts",
"check": "tsc --noEmit -p tsconfig.json && node --import=tsx ./scripts/smoke-test.mjs && node --import=tsx --test ./test/*.test.ts && pnpm run lint && pnpm run format:check",
"release": "release-it",
"release:patch": "release-it patch",
"release:minor": "release-it minor",
"release:major": "release-it major",
"release:first": "release-it --first-release",
"release:ci": "node --import=tsx ./scripts/release-ci.ts",
"prepublishOnly": "pnpm run check",
"prepare": "husky"
},
Expand All @@ -45,8 +51,10 @@
"@biomejs/biome": "^2.4.9",
"@mariozechner/pi-coding-agent": "^0.63.1",
"@mariozechner/pi-tui": "^0.63.1",
"@release-it/conventional-changelog": "^10.0.5",
"@types/node": "^22.19.10",
"husky": "^9.1.7",
"release-it": "^19.2.4",
"tsx": "^4.21.0",
"typescript": "^5.9.3"
},
Expand Down
Loading
Loading