Skip to content

Commit 1d52623

Browse files
committed
chore: initial commit 🤖📦
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
0 parents  commit 1d52623

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+12772
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"packages": {
3+
".": {
4+
"package-name": "@trogonstack/aipm",
5+
"release-type": "node",
6+
"changelog-path": "CHANGELOG.md",
7+
"bump-minor-pre-major": true,
8+
"bump-patch-for-minor-pre-major": true,
9+
"extra-files": ["package.json"],
10+
"changelog-sections": [
11+
{ "type": "feat", "section": "Features", "hidden": false },
12+
{ "type": "fix", "section": "Bug Fixes", "hidden": false },
13+
{ "type": "refactor", "section": "Code Refactoring", "hidden": false },
14+
{ "type": "chore", "section": "Miscellaneous", "hidden": true },
15+
{ "type": "revert", "section": "Reverts", "hidden": false }
16+
]
17+
}
18+
},
19+
"release-search-depth": 10,
20+
"draft": false,
21+
"prerelease": false,
22+
"include-component-in-tag": false
23+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.0"
3+
}

‎.github/workflows/ci.yml‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main, develop]
8+
9+
jobs:
10+
lint-and-test:
11+
name: Lint and Test
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Setup Bun
17+
uses: oven-sh/setup-bun@v2
18+
with:
19+
bun-version: latest
20+
21+
- name: Install dependencies
22+
run: bun install --frozen-lockfile
23+
24+
- name: Format check
25+
run: bun run format:check
26+
27+
- name: Type check
28+
run: bun run typecheck
29+
30+
- name: Run tests with coverage
31+
run: bun run test:coverage
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: PR Title Check
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- edited
8+
- synchronize
9+
10+
jobs:
11+
check-title:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: straw-hat-team/github-actions-workflows/semantic-pull-request@master
15+
with:
16+
types: |
17+
feat
18+
fix
19+
refactor
20+
chore
21+
revert
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
attestations: write
12+
13+
jobs:
14+
release-please:
15+
runs-on: ubuntu-latest
16+
outputs:
17+
release_created: ${{ steps.release.outputs.release_created }}
18+
tag_name: ${{ steps.release.outputs.tag_name }}
19+
steps:
20+
- uses: googleapis/release-please-action@v4
21+
id: release
22+
with:
23+
token: ${{ secrets.GH_PAT_RELEASE_PLEASE_ACTION }}
24+
release-type: node
25+
config-file: .github/release-please-config.json
26+
manifest-file: .github/release-please-manifest.json
27+
28+
build-and-upload:
29+
needs: release-please
30+
if: ${{ needs.release-please.outputs.release_created }}
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v4
34+
35+
- uses: oven-sh/setup-bun@v2
36+
37+
- name: Install dependencies
38+
run: bun install
39+
40+
- name: Build all platforms
41+
run: bun run build:all
42+
43+
- name: Generate artifact attestations
44+
uses: actions/attest-build-provenance@v2
45+
with:
46+
subject-path: dist/*
47+
48+
- name: Generate SBOM
49+
uses: anchore/sbom-action@v0
50+
with:
51+
path: ./
52+
artifact-name: sbom-spdx.json
53+
output-file: ./sbom-spdx.json
54+
55+
- name: Attest SBOM
56+
uses: actions/attest-sbom@v2
57+
with:
58+
subject-path: 'dist/*'
59+
sbom-path: './sbom-spdx.json'
60+
61+
- name: Upload release artifacts
62+
uses: softprops/action-gh-release@v1
63+
with:
64+
tag_name: ${{ needs.release-please.outputs.tag_name }}
65+
files: |
66+
dist/*
67+
sbom-spdx.json

‎.gitignore‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# dependencies (bun install)
2+
node_modules
3+
4+
# output
5+
out
6+
dist
7+
*.tgz
8+
9+
# bun build artifacts
10+
*.bun-build
11+
12+
# code coverage
13+
coverage
14+
*.lcov
15+
16+
# logs
17+
logs
18+
_.log
19+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
20+
21+
# dotenv environment variable files
22+
.env
23+
.env.development.local
24+
.env.test.local
25+
.env.production.local
26+
.env.local
27+
28+
# caches
29+
.eslintcache
30+
.cache
31+
*.tsbuildinfo
32+
33+
# IntelliJ based IDEs
34+
.idea
35+
36+
# Finder (MacOS) folder config
37+
.DS_Store
38+
.cursor/plugins.local.json

‎.prettierignore‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Dependencies
2+
node_modules
3+
bun.lockb
4+
5+
# Build output
6+
dist
7+
coverage
8+
9+
# Cache
10+
.turbo
11+
.cache
12+
13+
# Logs
14+
*.log
15+
16+
# OS
17+
.DS_Store
18+
19+
# IDE
20+
.vscode
21+
.idea
22+
23+
# Internal docs
24+
.trogonai
25+
.specstory

‎CHANGELOG.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [0.1.0] - 2025-11-01
11+
12+
Initial release of aipm - Universal plugin manager for AI coding assistants.

‎CLAUDE.md‎

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
alwaysApply: true
3+
---
4+
5+
Default to using Bun instead of Node.js.
6+
7+
- Use `bun <file>` instead of `node <file>` or `ts-node <file>`
8+
- Use `bun test` instead of `jest` or `vitest`
9+
- Use `bun build <file.html|file.ts|file.css>` instead of `webpack` or `esbuild`
10+
- Use `bun install` instead of `npm install` or `yarn install` or `pnpm install`
11+
- Use `bun run <script>` instead of `npm run <script>` or `yarn run <script>` or `pnpm run <script>`
12+
- Bun automatically loads .env, so don't use dotenv.
13+
14+
## APIs
15+
16+
- `Bun.serve()` supports WebSockets, HTTPS, and routes. Don't use `express`.
17+
- `bun:sqlite` for SQLite. Don't use `better-sqlite3`.
18+
- `Bun.redis` for Redis. Don't use `ioredis`.
19+
- `Bun.sql` for Postgres. Don't use `pg` or `postgres.js`.
20+
- `WebSocket` is built-in. Don't use `ws`.
21+
- Prefer `Bun.file` over `node:fs`'s readFile/writeFile
22+
- Bun.$`ls` instead of execa.
23+
24+
## Testing
25+
26+
Use `bun test` to run tests.
27+
28+
```ts#index.test.ts
29+
import { test, expect } from "bun:test";
30+
31+
test("hello world", () => {
32+
expect(1).toBe(1);
33+
});
34+
```
35+
36+
## Frontend
37+
38+
Use HTML imports with `Bun.serve()`. Don't use `vite`. HTML imports fully support React, CSS, Tailwind.
39+
40+
Server:
41+
42+
```ts#index.ts
43+
import index from "./index.html"
44+
45+
Bun.serve({
46+
routes: {
47+
"/": index,
48+
"/api/users/:id": {
49+
GET: (req) => {
50+
return new Response(JSON.stringify({ id: req.params.id }));
51+
},
52+
},
53+
},
54+
// optional websocket support
55+
websocket: {
56+
open: (ws) => {
57+
ws.send("Hello, world!");
58+
},
59+
message: (ws, message) => {
60+
ws.send(message);
61+
},
62+
close: (ws) => {
63+
// handle close
64+
}
65+
},
66+
development: {
67+
hmr: true,
68+
console: true,
69+
}
70+
})
71+
```
72+
73+
HTML files can import .tsx, .jsx or .js files directly and Bun's bundler will transpile & bundle automatically. `<link>` tags can point to stylesheets and Bun's CSS bundler will bundle.
74+
75+
```html#index.html
76+
<html>
77+
<body>
78+
<h1>Hello, world!</h1>
79+
<script type="module" src="./frontend.tsx"></script>
80+
</body>
81+
</html>
82+
```
83+
84+
With the following `frontend.tsx`:
85+
86+
```tsx#frontend.tsx
87+
import React from "react";
88+
89+
// import .css files directly and it works
90+
import './index.css';
91+
92+
import { createRoot } from "react-dom/client";
93+
94+
const root = createRoot(document.body);
95+
96+
export default function Frontend() {
97+
return <h1>Hello, world!</h1>;
98+
}
99+
100+
root.render(<Frontend />);
101+
```
102+
103+
Then, run index.ts
104+
105+
```sh
106+
bun --hot ./index.ts
107+
```
108+
109+
For more information, read the Bun API docs in `node_modules/bun-types/docs/**.md`.

0 commit comments

Comments
 (0)