ultimate-pi 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pi/PACKAGING.md +35 -0
- package/.pi/prompts/harness-setup.md +48 -10
- package/.pi/{settings.json → settings.example.json} +1 -1
- package/CHANGELOG.md +9 -0
- package/package.json +35 -6
- package/.pi/harness/browser.json +0 -5
- package/.pi/harness/debates/README.md +0 -9
- package/.pi/harness/incidents/README.md +0 -6
- package/.pi/harness/release-readiness-report.md +0 -128
- package/.pi/harness/router/README.md +0 -35
- package/.pi/harness/router/apply-router-proposal.mjs +0 -153
- package/.pi/harness/router/proposals/canary-proposal.json +0 -96
- package/.pi/harness/router/propose-router-tuning.mjs +0 -149
- package/.pi/harness/runs/019e272f-3eef-7107-9712-ce281de55707-1778773891854/events.jsonl +0 -2
- package/.pi/harness/runs/019e272f-3eef-7107-9712-ce281de55707-1778773891854/trace.json +0 -17
- package/.pi/harness/runs/019e272f-3eef-7107-9712-ce281de55707-1778773912057/events.jsonl +0 -2
- package/.pi/harness/runs/019e272f-3eef-7107-9712-ce281de55707-1778773912057/trace.json +0 -17
- package/.pi/harness/runs/019e2732-8651-74e5-9f5d-4d06c3105f25-1778774086096/events.jsonl +0 -6
- package/.pi/harness/runs/019e2732-8651-74e5-9f5d-4d06c3105f25-1778774086096/trace.json +0 -42
- package/.pi/harness/runs/019e2732-8651-74e5-9f5d-4d06c3105f25-1778774136101/events.jsonl +0 -1
- package/.pi/harness/runs/019e2758-b332-771b-ad6f-54d0d8478768-1778776600591/events.jsonl +0 -2
- package/.pi/harness/runs/019e2758-b332-771b-ad6f-54d0d8478768-1778776600591/trace.json +0 -17
- package/.pi/harness/runs/README.md +0 -6
- package/.pi/harness/runs/budget-events.jsonl +0 -4
- package/.pi/harness/runs/canary-candidate-router.json +0 -72
- package/.pi/harness/runs/canary-evidence.json +0 -9
- package/.pi/harness/runs/index.jsonl +0 -4
- package/.pi/model-router.json +0 -95
- package/.pi/npm/.gitignore +0 -2
- package/.pi/prompts/release.md +0 -225
- package/firecrawl/.env +0 -53
package/.pi/prompts/release.md
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Release a new version — bump version, generate changelog, tag, and push to trigger GitHub Actions CI/CD publish.
|
|
3
|
-
argument-hint: "[patch|minor|major] [--dry-run]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# release — Version Bump + Changelog + Tag + Push
|
|
7
|
-
|
|
8
|
-
Releases a new version by bumping `package.json`, generating a `CHANGELOG.md` entry from commits since the last tag, committing, tagging, and pushing the tag. The push triggers `.github/workflows/publish-github-packages.yml` and `.github/workflows/publish-npm.yml`.
|
|
9
|
-
|
|
10
|
-
## Step 0 — Parse arguments
|
|
11
|
-
|
|
12
|
-
Read `$ARGUMENTS`. First positional arg is the bump type:
|
|
13
|
-
|
|
14
|
-
| Arg | Semver | When |
|
|
15
|
-
|-----|--------|------|
|
|
16
|
-
| `patch` | 0.1.X → 0.1.(X+1) | Bug fixes, small changes, chores |
|
|
17
|
-
| `minor` | 0.X.0 → 0.(X+1).0 | New features, dep additions |
|
|
18
|
-
| `major` | X.0.0 → (X+1).0.0 | Breaking changes |
|
|
19
|
-
|
|
20
|
-
If no bump type given: scan commits since last tag for conventional commit prefixes to infer:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "")..HEAD --format="%s" 2>/dev/null
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Inference rules:
|
|
27
|
-
- Any `feat!:` or `BREAKING CHANGE` → **major**
|
|
28
|
-
- Any `feat:` → **minor**
|
|
29
|
-
- Everything else (`fix:`, `chore:`, `docs:`, `refactor:`, etc.) → **patch**
|
|
30
|
-
|
|
31
|
-
If no commits since last tag, warn: "No commits since last tag. Nothing to release." and stop.
|
|
32
|
-
|
|
33
|
-
Present the inferred bump type to user. If they passed one explicitly, use that. If `--dry-run`, show what would happen without making changes.
|
|
34
|
-
|
|
35
|
-
## Step 1 — Read current version
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
node -e "console.log(require('./package.json').version)"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Store as `$CURRENT_VERSION`.
|
|
42
|
-
|
|
43
|
-
Compute `$NEW_VERSION`:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Pseudo-code — use node for precision
|
|
47
|
-
NEW_VERSION=$(node -e "
|
|
48
|
-
const [maj,min,pat] = '$CURRENT_VERSION'.split('.').map(Number);
|
|
49
|
-
const bump = '$BUMP_TYPE';
|
|
50
|
-
if (bump === 'major') console.log((maj+1)+'.0.0');
|
|
51
|
-
else if (bump === 'minor') console.log(maj+'.'+(min+1)+'.0');
|
|
52
|
-
else console.log(maj+'.'+min+'.'+(pat+1));
|
|
53
|
-
")
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Step 2 — Pre-flight checks
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
# Must be in a git repo
|
|
60
|
-
git rev-parse --is-inside-work-tree || { echo "Not a git repo. Abort."; exit 1; }
|
|
61
|
-
|
|
62
|
-
# Must have a remote
|
|
63
|
-
git remote -v | grep -q origin || { echo "No origin remote. Abort."; exit 1; }
|
|
64
|
-
|
|
65
|
-
# Must be on a clean working tree
|
|
66
|
-
git diff --quiet && git diff --cached --quiet || { echo "Working tree is dirty. Commit or stash changes first."; exit 1; }
|
|
67
|
-
|
|
68
|
-
# Must be on a branch that can push (not detached HEAD)
|
|
69
|
-
git symbolic-ref -q HEAD || { echo "Detached HEAD. Switch to a branch first."; exit 1; }
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Step 3 — Generate changelog
|
|
73
|
-
|
|
74
|
-
Gather commits since last tag:
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
|
78
|
-
if [ -z "$LAST_TAG" ]; then
|
|
79
|
-
COMMITS=$(git log --oneline --no-merges HEAD)
|
|
80
|
-
else
|
|
81
|
-
COMMITS=$(git log --oneline --no-merges ${LAST_TAG}..HEAD)
|
|
82
|
-
fi
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Parse conventional commit prefixes to group:
|
|
86
|
-
|
|
87
|
-
| Prefix | Changelog Section |
|
|
88
|
-
|--------|-------------------|
|
|
89
|
-
| `feat!:` | ⚠️ Breaking Changes |
|
|
90
|
-
| `feat:` | ✨ Features |
|
|
91
|
-
| `fix:` | 🐛 Fixes |
|
|
92
|
-
| `perf:` | ⚡ Performance |
|
|
93
|
-
| `refactor:` | ♻️ Refactoring |
|
|
94
|
-
| `docs:` | 📖 Documentation |
|
|
95
|
-
| `style:` | 🎨 Style |
|
|
96
|
-
| `test:` | ✅ Tests |
|
|
97
|
-
| `chore:` | 🔧 Chores |
|
|
98
|
-
| `ci:` | 🔄 CI/CD |
|
|
99
|
-
| `build:` | 📦 Build |
|
|
100
|
-
| everything else | 🔧 Chores |
|
|
101
|
-
|
|
102
|
-
Generate the changelog entry:
|
|
103
|
-
|
|
104
|
-
```markdown
|
|
105
|
-
## [v$NEW_VERSION] — $(date +%Y-%m-%d)
|
|
106
|
-
|
|
107
|
-
### $SECTION_NAME
|
|
108
|
-
|
|
109
|
-
- $commit_message (no prefix, just the description)
|
|
110
|
-
|
|
111
|
-
...
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
If `CHANGELOG.md` exists, prepend the new entry after the `# Changelog` heading. If not, create it:
|
|
115
|
-
|
|
116
|
-
```markdown
|
|
117
|
-
# Changelog
|
|
118
|
-
|
|
119
|
-
All notable changes to this project are documented in this file.
|
|
120
|
-
|
|
121
|
-
## [v$NEW_VERSION] — $(date +%Y-%m-%d)
|
|
122
|
-
|
|
123
|
-
### $SECTION
|
|
124
|
-
|
|
125
|
-
- $entry
|
|
126
|
-
|
|
127
|
-
...
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Step 4 — Bump version in package.json
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npm pkg set version="$NEW_VERSION"
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Verify:
|
|
137
|
-
```bash
|
|
138
|
-
node -e "const v = require('./package.json').version; console.log(v === '$NEW_VERSION' ? '✓ version bumped to $NEW_VERSION' : '✗ version mismatch')"
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Step 5 — Dry run check
|
|
142
|
-
|
|
143
|
-
If `--dry-run` flag: print summary and stop. Do NOT commit, tag, or push.
|
|
144
|
-
|
|
145
|
-
```
|
|
146
|
-
DRY RUN — no changes made.
|
|
147
|
-
Version: $CURRENT_VERSION → $NEW_VERSION
|
|
148
|
-
Bump: $BUMP_TYPE
|
|
149
|
-
Commits since $LAST_TAG: $COMMIT_COUNT
|
|
150
|
-
Files that would change:
|
|
151
|
-
- package.json (version)
|
|
152
|
-
- CHANGELOG.md (new entry)
|
|
153
|
-
Tag that would be created: v$NEW_VERSION
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## Step 6 — Commit version bump + changelog
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
git add package.json CHANGELOG.md
|
|
160
|
-
|
|
161
|
-
git commit -m "chore(release): bump to v$NEW_VERSION" -m "- Bump version in package.json
|
|
162
|
-
- Add changelog entry for v$NEW_VERSION
|
|
163
|
-
|
|
164
|
-
Commits included:
|
|
165
|
-
$(echo "$COMMITS" | sed 's/^/- /')" -m "Co-authored-by: pi-mono <261679550+pi-mono@users.noreply.github.com>"
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Use the co-author from `.pi/auto-commit.json` if available, otherwise use the default pi-mono co-author.
|
|
169
|
-
|
|
170
|
-
## Step 7 — Create and push tag
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
git tag -a "v$NEW_VERSION" -m "Release v$NEW_VERSION — $BUMP_TYPE bump
|
|
174
|
-
|
|
175
|
-
$(echo "$COMMITS" | sed 's/^/- /')"
|
|
176
|
-
|
|
177
|
-
git push origin "v$NEW_VERSION"
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**Important**: Push only the tag, not the branch. The workflows trigger on `v*` tag push.
|
|
181
|
-
- `publish-github-packages.yml` → publishes `@aryaniyaps/ultimate-pi` to GitHub Packages
|
|
182
|
-
- `publish-npm.yml` → publishes `ultimate-pi` to npm registry
|
|
183
|
-
|
|
184
|
-
Optionally also push the commit if user wants the branch updated:
|
|
185
|
-
```bash
|
|
186
|
-
git push origin $(git branch --show-current)
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
Ask user: "Push the version-bump commit to the current branch too? [Y/n]"
|
|
190
|
-
|
|
191
|
-
## Step 8 — Report
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
✓ Released v$NEW_VERSION ($BUMP_TYPE)
|
|
195
|
-
Tag: v$NEW_VERSION — pushed to origin
|
|
196
|
-
Workflows triggered:
|
|
197
|
-
- .github/workflows/publish-github-packages.yml
|
|
198
|
-
- .github/workflows/publish-npm.yml
|
|
199
|
-
Commit: $(git rev-parse --short HEAD)
|
|
200
|
-
Changelog: CHANGELOG.md updated
|
|
201
|
-
Monitor: https://github.com/aryaniyaps/ultimate-pi/actions
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Guard Rails
|
|
205
|
-
|
|
206
|
-
- **Clean tree required**: Block if uncommitted changes exist.
|
|
207
|
-
- **No duplicate tags**: Block if `v$NEW_VERSION` tag already exists locally or on remote.
|
|
208
|
-
- **No empty releases**: Block if no commits since last tag.
|
|
209
|
-
- **Valid semver only**: Block if current version doesn't parse as `X.Y.Z`.
|
|
210
|
-
- **Dry run safe**: `--dry-run` prints planned changes without modifying anything.
|
|
211
|
-
- **Manual workflow dispatch**: If workflows support `workflow_dispatch`, user can re-trigger manually from GitHub Actions UI if push fails.
|
|
212
|
-
- **Co-author idempotent**: Falls back to default pi-mono if `.pi/auto-commit.json` is missing.
|
|
213
|
-
|
|
214
|
-
## Error Handling
|
|
215
|
-
|
|
216
|
-
| Error | Action |
|
|
217
|
-
|-------|--------|
|
|
218
|
-
| No commits since last tag | Report, suggest making changes first. Stop. |
|
|
219
|
-
| Dirty working tree | Report dirty files. Suggest `git stash` or commit. Stop. |
|
|
220
|
-
| Tag already exists | Report conflict. User must delete old tag or bump differently. Stop. |
|
|
221
|
-
| No origin remote | Report. Suggest `git remote add origin <url>`. Stop. |
|
|
222
|
-
| Detached HEAD | Report. Suggest `git checkout main`. Stop. |
|
|
223
|
-
| Invalid semver | Report current version string. Stop. |
|
|
224
|
-
| npm pkg set fails | Check Node.js and npm version. Report error. Stop. |
|
|
225
|
-
| git push fails | Check auth. Report error. Suggest manual push. |
|
package/firecrawl/.env
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# ===== Required ENVS ======
|
|
2
|
-
PORT=3002
|
|
3
|
-
HOST=0.0.0.0
|
|
4
|
-
USE_DB_AUTHENTICATION=false
|
|
5
|
-
|
|
6
|
-
# ===== Optional ENVS ======
|
|
7
|
-
# No OpenAI key - skipping AI features for now
|
|
8
|
-
# OPENAI_API_KEY=
|
|
9
|
-
|
|
10
|
-
# Experimental: Use Ollama
|
|
11
|
-
# OLLAMA_BASE_URL=http://localhost:11434/api
|
|
12
|
-
# MODEL_NAME=deepseek-r1:7b
|
|
13
|
-
# MODEL_EMBEDDING_NAME=nomic-embed-text
|
|
14
|
-
|
|
15
|
-
# Experimental: Use any OpenAI-compatible API
|
|
16
|
-
# OPENAI_BASE_URL=https://example.com/v1
|
|
17
|
-
# OPENAI_API_KEY=
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## === Proxy ===
|
|
21
|
-
# PROXY_SERVER can be a full URL (e.g. http://0.1.2.3:1234) or just an IP and port combo (e.g. 0.1.2.3:1234)
|
|
22
|
-
# Do not uncomment PROXY_USERNAME and PROXY_PASSWORD if your proxy is unauthenticated
|
|
23
|
-
# PROXY_SERVER=
|
|
24
|
-
# PROXY_USERNAME=
|
|
25
|
-
# PROXY_PASSWORD=
|
|
26
|
-
|
|
27
|
-
## === /search API ===
|
|
28
|
-
# SearXNG instance running alongside Firecrawl in docker-compose
|
|
29
|
-
SEARXNG_ENDPOINT=http://searxng:8080
|
|
30
|
-
# You can also customize the engines and categories parameters, but the defaults should also work just fine.
|
|
31
|
-
# SEARXNG_ENGINES=
|
|
32
|
-
# SEARXNG_CATEGORIES=
|
|
33
|
-
|
|
34
|
-
# Supabase not configured (self-hosted doesn't support it yet)
|
|
35
|
-
# SUPABASE_ANON_TOKEN=
|
|
36
|
-
# SUPABASE_URL=
|
|
37
|
-
# SUPABASE_SERVICE_TOKEN=
|
|
38
|
-
|
|
39
|
-
# Set if you'd like to send posthog events like job logs
|
|
40
|
-
POSTHOG_API_KEY="phc_O0BBrJ4z9O9h0aoydmZSS1oOPY5ARKKcILbybCL9DWs"
|
|
41
|
-
POSTHOG_HOST="https://us.i.posthog.com"
|
|
42
|
-
|
|
43
|
-
# Change this for security in production
|
|
44
|
-
BULL_AUTH_KEY=CHANGEME
|
|
45
|
-
|
|
46
|
-
# PostgreSQL
|
|
47
|
-
POSTGRES_USER=postgres
|
|
48
|
-
POSTGRES_PASSWORD=postgres
|
|
49
|
-
POSTGRES_DB=postgres
|
|
50
|
-
|
|
51
|
-
# Auto-configured by docker-compose
|
|
52
|
-
# REDIS_URL=redis://redis:6379
|
|
53
|
-
# PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/scrape
|