Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
17 changes: 4 additions & 13 deletions templates/frontend-vue/.github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ name: 🚀 Release
on:
workflow_dispatch:

env:
NODE_VERSION: 20
PNPM_VERSION: 9

jobs:
release:
name: Release
Expand All @@ -25,16 +21,11 @@ jobs:
- name: Checkout project
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
run_install: true
- name: Install dependencies
run: pnpm install

- name: Build package
run: pnpm build
Expand Down
39 changes: 7 additions & 32 deletions templates/frontend-vue/.github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ concurrency:
group: validate-${{ github.ref_name }}
cancel-in-progress: true

env:
CAIDO_NODE_VERSION: 20
CAIDO_PNPM_VERSION: 9

jobs:
typecheck:
name: 'Typecheck'
Expand All @@ -22,17 +18,10 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.CAIDO_NODE_VERSION }}
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v3.0.0
with:
version: ${{ env.CAIDO_PNPM_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Install dependencies
run: pnpm install
Expand All @@ -48,15 +37,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.CAIDO_NODE_VERSION }}

- name: Setup pnpm
uses: pnpm/action-setup@v4.1.0
with:
version: ${{ env.CAIDO_PNPM_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Install dependencies
run: pnpm install
Expand All @@ -72,15 +54,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.CAIDO_NODE_VERSION }}

- name: Setup pnpm
uses: pnpm/action-setup@v4.1.0
with:
version: ${{ env.CAIDO_PNPM_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Install dependencies
run: pnpm install
Expand Down
1 change: 1 addition & 0 deletions templates/frontend-vue/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules
dist
.DS_Store
mise.local.toml
13 changes: 13 additions & 0 deletions templates/frontend-vue/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,20 @@ This template should be used as a starting point for creating a new plugin with

## Features

- [mise](https://mise.jdx.dev/) to manage the Node.js and pnpm toolchain
- [pnpm](https://pnpm.io/) as package manager
- [TypeScript](https://www.typescriptlang.org/)
- [VueJS](https://vuejs.org/)
- [PrimeVue](https://primevue.org/) for UI components

## Getting Started

The Node.js and pnpm versions are pinned in [`mise.toml`](./mise.toml). Install them once with mise, then build:

```bash
mise install # installs the pinned Node.js and pnpm
pnpm install
pnpm build
```

CI uses the same `mise.toml`, so your local and CI toolchains stay in sync.
3 changes: 3 additions & 0 deletions templates/frontend-vue/mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[tools]
node = '24'
pnpm = '10.20.0'
17 changes: 4 additions & 13 deletions templates/no-frontend/.github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ name: 🚀 Release
on:
workflow_dispatch:

env:
NODE_VERSION: 20
PNPM_VERSION: 9

jobs:
release:
name: Release
Expand All @@ -25,16 +21,11 @@ jobs:
- name: Checkout project
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
run_install: true
- name: Install dependencies
run: pnpm install

- name: Build package
run: pnpm build
Expand Down
39 changes: 7 additions & 32 deletions templates/no-frontend/.github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ concurrency:
group: validate-${{ github.ref_name }}
cancel-in-progress: true

env:
CAIDO_NODE_VERSION: 20
CAIDO_PNPM_VERSION: 9

jobs:
typecheck:
name: 'Typecheck'
Expand All @@ -22,17 +18,10 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.CAIDO_NODE_VERSION }}
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v3.0.0
with:
version: ${{ env.CAIDO_PNPM_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Install dependencies
run: pnpm install
Expand All @@ -48,15 +37,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.CAIDO_NODE_VERSION }}

- name: Setup pnpm
uses: pnpm/action-setup@v4.1.0
with:
version: ${{ env.CAIDO_PNPM_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Install dependencies
run: pnpm install
Expand All @@ -72,15 +54,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.CAIDO_NODE_VERSION }}

- name: Setup pnpm
uses: pnpm/action-setup@v4.1.0
with:
version: ${{ env.CAIDO_PNPM_VERSION }}
- name: Setup mise
uses: jdx/mise-action@v2

- name: Install dependencies
run: pnpm install
Expand Down
1 change: 1 addition & 0 deletions templates/no-frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules
dist
.DS_Store
mise.local.toml
13 changes: 13 additions & 0 deletions templates/no-frontend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,18 @@ This template should be used as a starting point for creating a new plugin with

## Features

- [mise](https://mise.jdx.dev/) to manage the Node.js and pnpm toolchain
- [pnpm](https://pnpm.io/) as package manager
- [TypeScript](https://www.typescriptlang.org/)

## Getting Started

The Node.js and pnpm versions are pinned in [`mise.toml`](./mise.toml). Install them once with mise, then build:

```bash
mise install # installs the pinned Node.js and pnpm
pnpm install
pnpm build
```

CI uses the same `mise.toml`, so your local and CI toolchains stay in sync.
3 changes: 3 additions & 0 deletions templates/no-frontend/mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[tools]
node = '24'
pnpm = '10.20.0'
10 changes: 10 additions & 0 deletions templates/shared/skills/caido-plugin-development/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ Plugins are described by a `caido.config.ts` file that declares each sub-plugin
- Frontend plugins create pages, UI components, and handle user interactions.
- Backend plugins register API endpoints (and can emit events) that the frontend consumes.

## Toolchain (mise)

This plugin pins its Node.js and pnpm versions with [mise](https://mise.jdx.dev/) in `mise.toml` at the repo root. **Use mise** so you build and run with the exact toolchain CI uses — don't rely on a globally-installed Node/pnpm:

- Install the pinned tools once with `mise install`.
- Run package scripts through the mise-managed toolchain. Either activate mise in your shell (so `pnpm ...` resolves to the pinned version) or prefix commands with `mise exec --`, e.g. `mise exec -- pnpm install`, `mise exec -- pnpm build`.
- `mise.toml` is the single source of truth for tool versions — CI reads it too (via `jdx/mise-action`). If a version needs to change, edit `mise.toml`; don't hardcode versions elsewhere.

Package scripts (run with pnpm under the mise toolchain): `build`, `watch`, `typecheck`, `lint`, `knip`.

## Plugin API Contract (the `shared` package)

The contract lives in `shared` and is consumed by both sides. The current SDK builds it from `@caido/sdk-shared`'s `DefinePluginPackageSpec`.
Expand Down
Loading