@entelligentsia/forgecli 0.9.0 → 0.9.2
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/CHANGELOG.md +22 -0
- package/README.md +165 -2
- package/dist/bin/update-cli.js +1 -1
- package/dist/bin/update-cli.js.map +1 -1
- package/dist/extensions/forgecli/forge-update-command.d.ts +3 -1
- package/dist/extensions/forgecli/forge-update-command.js +48 -18
- package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.9.2] — 2026-05-19
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **`forge update` version detection** — the command previously queried
|
|
14
|
+
the Entelligentsia/forge-cli GitHub releases endpoint for the latest
|
|
15
|
+
version, which had stalled at `v0.1.0`. It now probes the npm
|
|
16
|
+
`dist-tags.latest` field (the same authoritative source the startup
|
|
17
|
+
update-check banner already used correctly). The changelog body is
|
|
18
|
+
still fetched from the tag-specific GitHub release URL; if no release
|
|
19
|
+
exists for the tag, the notes section is shown as empty rather than
|
|
20
|
+
failing the upgrade.
|
|
21
|
+
- **`forge update` error message** — corrected two user-facing strings
|
|
22
|
+
that blamed a GitHub outage when the npm registry probe fails.
|
|
23
|
+
|
|
24
|
+
## [0.9.1] — 2026-05-18
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- **README: Model setup documentation** — new section walks users through
|
|
28
|
+
the three-knob tier setup (Heavy / Standard / Light) with screen-by-screen
|
|
29
|
+
examples, scope toggle, verification, advanced overrides, and
|
|
30
|
+
non-interactive CLI alternatives.
|
|
31
|
+
|
|
10
32
|
## [0.9.0] — 2026-05-18
|
|
11
33
|
|
|
12
34
|
### Added
|
package/README.md
CHANGED
|
@@ -95,11 +95,172 @@ CHAIN /forge:plan plan
|
|
|
95
95
|
ASK /forge:health KB freshness + store integrity
|
|
96
96
|
/forge:status Sprint + task status
|
|
97
97
|
/forge:ask <q> Ask the Tomoshibi concierge
|
|
98
|
-
/forge:config
|
|
98
|
+
/forge:config Set up AI models for your workflow
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
→ [Full reference](docs/cli-reference.md) · [Non-interactive mode](docs/non-interactive.md) · [Hook safety net](docs/hook-safety-net.md) · [Custom tools](docs/custom-tools.md) · [Publishing](docs/publishing.md)
|
|
102
102
|
|
|
103
|
+
## Model setup
|
|
104
|
+
|
|
105
|
+
Forge routes each step of your pipeline — plan, review, implement, validate, approve, writeback, commit — to a **specific AI model** via a persona. Out of the box, every step inherits whatever model pi is currently running. The `/forge:config` screen lets you assign models in about 30 seconds.
|
|
106
|
+
|
|
107
|
+
### The three-knob setup
|
|
108
|
+
|
|
109
|
+
Forge groups its nine personas into three workload tiers:
|
|
110
|
+
|
|
111
|
+
| Tier | Personas | What this model does |
|
|
112
|
+
|------|----------|---------------------|
|
|
113
|
+
| **Heavy** | 🗻 architect · 🌿 supervisor | Review, sign-off, gates |
|
|
114
|
+
| **Standard** | 🌱 engineer · 🐛 bug-fixer · 🍵 qa-engineer · 📋 product-manager | Planning, implementation, validation |
|
|
115
|
+
| **Light** | 🍃 collator · 📚 librarian · 🌊 orchestrator | Writeback, indexing, task flow |
|
|
116
|
+
|
|
117
|
+
Pick one model per tier and you're done — all nine personas are configured.
|
|
118
|
+
|
|
119
|
+
### Step by step
|
|
120
|
+
|
|
121
|
+
**1. Open the config screen**
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
/forge:config
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
You'll see three tier rows — Heavy, Standard, Light — each showing "not set":
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
forge config
|
|
131
|
+
────────────────────────────────────────────────────────────
|
|
132
|
+
Active right now
|
|
133
|
+
────────────────
|
|
134
|
+
Heavy not set — falls back to pi current (ollama:qwen2.5:0.5b)
|
|
135
|
+
Standard not set — falls back to pi current (ollama:qwen2.5:0.5b)
|
|
136
|
+
Light not set — falls back to pi current (ollama:qwen2.5:0.5b)
|
|
137
|
+
Scope ▸ project ( ~/src/hello ) global
|
|
138
|
+
|
|
139
|
+
Choose models for your AI workflow
|
|
140
|
+
──────────────────────────────────
|
|
141
|
+
▸ Heavy (review, sign-off) not set
|
|
142
|
+
Standard (planning, implementation) not set
|
|
143
|
+
Light (writeback, indexing) not set
|
|
144
|
+
|
|
145
|
+
Show what runs at each step
|
|
146
|
+
Advanced — per-persona / per-step overrides
|
|
147
|
+
|
|
148
|
+
enter pick model tab toggle scope q quit
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**2. Pick a model for each tier**
|
|
152
|
+
|
|
153
|
+
Press `enter` on Heavy (or press `1`), pick a provider, then a model:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
forge config › Heavy › pick provider
|
|
157
|
+
────────────────────────────────────
|
|
158
|
+
This will run for: 🗻 architect, 🌿 supervisor
|
|
159
|
+
|
|
160
|
+
▸ anthropic ✓ authenticated 12 models
|
|
161
|
+
ollama ✓ authenticated 24 models
|
|
162
|
+
openai ✓ authenticated 18 models
|
|
163
|
+
|
|
164
|
+
↑↓ select enter advance esc back
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
forge config › Heavy › pick model (provider: anthropic)
|
|
169
|
+
──────────────────────────────────────────────────────────
|
|
170
|
+
This will run for: 🗻 architect, 🌿 supervisor
|
|
171
|
+
|
|
172
|
+
▸ claude-opus-4-5-20250514
|
|
173
|
+
claude-sonnet-4-20250514
|
|
174
|
+
claude-haiku-4-20250514
|
|
175
|
+
|
|
176
|
+
↑↓ select enter save esc back
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Pressing `enter` on a model commits it immediately — both personas in that tier are now configured. Repeat for Standard and Light.
|
|
180
|
+
|
|
181
|
+
**3. Done**
|
|
182
|
+
|
|
183
|
+
After all three tiers are set, the landing screen shows your assignments:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
Active right now
|
|
187
|
+
────────────────
|
|
188
|
+
Heavy anthropic:claude-opus-4-5-20250514 (project)
|
|
189
|
+
Standard anthropic:claude-sonnet-4-20250514 (project)
|
|
190
|
+
Light ollama:qwen2.5:0.5b (project)
|
|
191
|
+
Scope project ▸ global
|
|
192
|
+
|
|
193
|
+
Choose models for your AI workflow
|
|
194
|
+
──────────────────────────────────
|
|
195
|
+
▸ Heavy (review, sign-off) anthropic:claude-opus-4-5-20250514
|
|
196
|
+
Standard (planning, implementation) anthropic:claude-sonnet-4-20250514
|
|
197
|
+
Light (writeback, indexing) ollama:qwen2.5:0.5b
|
|
198
|
+
|
|
199
|
+
Show what runs at each step
|
|
200
|
+
Advanced — per-persona / per-step overrides
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
No separate save step — each tier pick writes through instantly.
|
|
204
|
+
|
|
205
|
+
### Scope: project vs global
|
|
206
|
+
|
|
207
|
+
Press `tab` to toggle scope before picking a tier:
|
|
208
|
+
|
|
209
|
+
- **project** — writes to `.pi/forge-cli/config.json` in the current project. Different projects can use different models.
|
|
210
|
+
- **global** — writes to `~/.pi/agent/forge-cli/config.json`. Applies to every project that doesn't have a project-level override.
|
|
211
|
+
|
|
212
|
+
### Verify your setup
|
|
213
|
+
|
|
214
|
+
Select **"Show what runs at each step"** (or press `s`) to see which model runs each pipeline step:
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
forge config › current setup
|
|
218
|
+
────────────────────────────
|
|
219
|
+
Step Persona Model Source
|
|
220
|
+
───── ───────── ────── ──────
|
|
221
|
+
plan 🌱 engineer anthropic:claude-sonnet… Standard tier (project)
|
|
222
|
+
review-plan 🌿 supervisor anthropic:claude-opus-… Heavy tier (project)
|
|
223
|
+
implement 🌱 engineer anthropic:claude-sonnet… Standard tier (project)
|
|
224
|
+
review-code 🌿 supervisor anthropic:claude-opus-… Heavy tier (project)
|
|
225
|
+
validate 🍵 qa-engineer anthropic:claude-sonnet… Standard tier (project)
|
|
226
|
+
approve 🗻 architect anthropic:claude-opus-… Heavy tier (project)
|
|
227
|
+
writeback 🍃 collator ollama:qwen2.5:0.5b Light tier (project)
|
|
228
|
+
commit 🌱 engineer anthropic:claude-sonnet… Standard tier (project)
|
|
229
|
+
|
|
230
|
+
How models get picked
|
|
231
|
+
─────────────────────
|
|
232
|
+
Each step's persona looks for an override at four levels (most specific wins):
|
|
233
|
+
1. A model set just for this step (Step override)
|
|
234
|
+
2. A model set just for this persona (Per-persona override)
|
|
235
|
+
3. The tier baseline you set above (Heavy / Standard / Light)
|
|
236
|
+
4. Whatever model pi is currently running on (falls back automatically)
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Advanced overrides
|
|
240
|
+
|
|
241
|
+
Select **"Advanced"** (or press `a`) for fine-grained control:
|
|
242
|
+
|
|
243
|
+
- **Override one persona's model** — change the model for a single persona without affecting the rest of its tier.
|
|
244
|
+
- **Override one step's model** — change the model for a single pipeline step (e.g. always use a specific model for the commit step).
|
|
245
|
+
- **Edit raw persona-models entries** — direct editor for the full persona list.
|
|
246
|
+
|
|
247
|
+
Most users never need these — the three tier knobs cover the 80% path.
|
|
248
|
+
|
|
249
|
+
### Non-interactive model setup
|
|
250
|
+
|
|
251
|
+
Use the CLI directly (no TUI required):
|
|
252
|
+
|
|
253
|
+
```sh
|
|
254
|
+
# Print the resolved routing table
|
|
255
|
+
forge config show --resolved
|
|
256
|
+
|
|
257
|
+
# Per-phase dispatch trace (no LLM call)
|
|
258
|
+
forge config dispatch
|
|
259
|
+
|
|
260
|
+
# Validate all resolved models are authenticated
|
|
261
|
+
forge config show --strict-models
|
|
262
|
+
```
|
|
263
|
+
|
|
103
264
|
## Where to go next
|
|
104
265
|
|
|
105
266
|
- **[docs/](docs/)** — CLI flags, non-interactive mode, hook dispatcher, custom tools, publishing
|
|
@@ -110,6 +271,7 @@ ASK /forge:health KB freshness + store integrity
|
|
|
110
271
|
|
|
111
272
|
| Up next | Status |
|
|
112
273
|
|----------------------------------------------------|---------------------|
|
|
274
|
+
| Per-persona model routing + tiered config TUI | Shipped (0.9.0) |
|
|
113
275
|
| 4ge brand wordmark in CLI banner + 3 themes | Shipped (0.7.7) |
|
|
114
276
|
| Slim README + docs/ split | Shipped (0.7.7) |
|
|
115
277
|
| Subagent audience relaxed to advisory | Shipped (0.7.6) |
|
|
@@ -147,6 +309,7 @@ MIT © Entelligentsia
|
|
|
147
309
|
Shipped: 0.2.0 · 0.2.1 · 0.3.0 · 0.4.0 ·
|
|
148
310
|
0.5.0 · 0.5.1 · 0.5.2 · 0.5.3 · 0.5.4 · 0.5.5 · 0.5.6 · 0.5.7 ·
|
|
149
311
|
0.6.1 · 0.6.2 · 0.6.3 · 0.6.4 · 0.6.5 · 0.6.6 ·
|
|
150
|
-
0.7.0 · 0.7.1 · 0.7.2 · 0.7.3 · 0.7.4 · 0.7.5 · 0.7.6 · 0.7.7
|
|
312
|
+
0.7.0 · 0.7.1 · 0.7.2 · 0.7.3 · 0.7.4 · 0.7.5 · 0.7.6 · 0.7.7 ·
|
|
313
|
+
0.8.0 · 0.8.1 · 0.8.2 · 0.8.3 · 0.8.4 · 0.9.0
|
|
151
314
|
-->
|
|
152
315
|
|
package/dist/bin/update-cli.js
CHANGED
|
@@ -80,7 +80,7 @@ export async function runUpdate(args, opts) {
|
|
|
80
80
|
? { version: versionSpec.startsWith("v") ? versionSpec.slice(1) : versionSpec, body: "", tag: versionSpec }
|
|
81
81
|
: await fetchChangelog(fetchImpl);
|
|
82
82
|
if (!release) {
|
|
83
|
-
process.stderr.write("forge update: could not reach
|
|
83
|
+
process.stderr.write("forge update: could not reach the npm registry to check for updates.\n" +
|
|
84
84
|
`Check your network and retry, or upgrade manually: npm i -g ${PKG_NAME}@latest\n`);
|
|
85
85
|
return 1;
|
|
86
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-cli.js","sourceRoot":"","sources":["../../src/bin/update-cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"update-cli.js","sourceRoot":"","sources":["../../src/bin/update-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
declare function changelogTagUrl(version: string): string;
|
|
2
3
|
export type InstallMethod = "global" | "npx" | "local-dev" | "unknown";
|
|
3
4
|
export interface DetectInstallOptions {
|
|
4
5
|
pkgRoot: string;
|
|
@@ -60,7 +61,8 @@ export declare const __test__: {
|
|
|
60
61
|
writeDriftCache: typeof writeDriftCache;
|
|
61
62
|
defaultCacheDir: typeof defaultCacheDir;
|
|
62
63
|
PKG_NAME: string;
|
|
63
|
-
|
|
64
|
+
NPM_DIST_TAGS_URL: string;
|
|
65
|
+
changelogTagUrl: typeof changelogTagUrl;
|
|
64
66
|
UPGRADE_TIMEOUT_MS: number;
|
|
65
67
|
NPM_ROOT_TIMEOUT_MS: number;
|
|
66
68
|
PROBE_TIMEOUT_MS: number;
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
// execFile (argv array — no shell). On the next session_start after upgrade,
|
|
7
7
|
// detect bundled-forge version drift and emit a one-shot project-migrations
|
|
8
8
|
// prompt (Q7 detect+prompt; never auto-applies).
|
|
9
|
+
//
|
|
10
|
+
// Version detection uses the npm registry (authoritative); GitHub releases are
|
|
11
|
+
// used only for the changelog body via a tag-specific URL.
|
|
9
12
|
import { execFile } from "node:child_process";
|
|
10
13
|
import { promises as fs } from "node:fs";
|
|
11
14
|
import * as os from "node:os";
|
|
@@ -13,7 +16,10 @@ import * as path from "node:path";
|
|
|
13
16
|
import { promisify } from "node:util";
|
|
14
17
|
const execFileAsync = promisify(execFile);
|
|
15
18
|
const PKG_NAME = "@entelligentsia/forgecli";
|
|
16
|
-
const
|
|
19
|
+
const NPM_DIST_TAGS_URL = "https://registry.npmjs.org/@entelligentsia/forgecli";
|
|
20
|
+
function changelogTagUrl(version) {
|
|
21
|
+
return `https://api.github.com/repos/Entelligentsia/forge-cli/releases/tags/v${version}`;
|
|
22
|
+
}
|
|
17
23
|
const PROBE_TIMEOUT_MS = 5000;
|
|
18
24
|
const UPGRADE_TIMEOUT_MS = 120_000;
|
|
19
25
|
const NPM_ROOT_TIMEOUT_MS = 5000;
|
|
@@ -42,29 +48,52 @@ export async function getNpmGlobalRoot(runner) {
|
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
export async function fetchChangelog(fetchImpl) {
|
|
45
|
-
|
|
46
|
-
const
|
|
51
|
+
// Step 1: get latest version from npm (authoritative — GitHub releases may lag).
|
|
52
|
+
const npmCtl = new AbortController();
|
|
53
|
+
const npmTimer = setTimeout(() => npmCtl.abort(), PROBE_TIMEOUT_MS);
|
|
54
|
+
let npmVersion = null;
|
|
47
55
|
try {
|
|
48
|
-
const res = await fetchImpl(
|
|
49
|
-
signal:
|
|
50
|
-
headers: { Accept: "application/
|
|
56
|
+
const res = await fetchImpl(NPM_DIST_TAGS_URL, {
|
|
57
|
+
signal: npmCtl.signal,
|
|
58
|
+
headers: { Accept: "application/json" },
|
|
51
59
|
});
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const tag = body.tag_name;
|
|
58
|
-
const version = tag.startsWith("v") ? tag.slice(1) : tag;
|
|
59
|
-
const text = typeof body.body === "string" ? body.body : "";
|
|
60
|
-
return { tag, version, body: text };
|
|
60
|
+
if (res.ok) {
|
|
61
|
+
const body = (await res.json());
|
|
62
|
+
const tag = body["dist-tags"]?.latest;
|
|
63
|
+
npmVersion = typeof tag === "string" ? tag : null;
|
|
64
|
+
}
|
|
61
65
|
}
|
|
62
66
|
catch {
|
|
67
|
+
// fall through to null return
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
clearTimeout(npmTimer);
|
|
71
|
+
}
|
|
72
|
+
if (!npmVersion)
|
|
63
73
|
return null;
|
|
74
|
+
const version = npmVersion.startsWith("v") ? npmVersion.slice(1) : npmVersion;
|
|
75
|
+
// Step 2: fetch changelog body from the tag-specific GitHub release (optional).
|
|
76
|
+
const ghCtl = new AbortController();
|
|
77
|
+
const ghTimer = setTimeout(() => ghCtl.abort(), PROBE_TIMEOUT_MS);
|
|
78
|
+
let releaseBody = "";
|
|
79
|
+
try {
|
|
80
|
+
const res = await fetchImpl(changelogTagUrl(version), {
|
|
81
|
+
signal: ghCtl.signal,
|
|
82
|
+
headers: { Accept: "application/vnd.github+json" },
|
|
83
|
+
});
|
|
84
|
+
if (res.ok) {
|
|
85
|
+
const json = (await res.json());
|
|
86
|
+
if (typeof json.body === "string")
|
|
87
|
+
releaseBody = json.body;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// changelog body is optional — proceed with empty
|
|
64
92
|
}
|
|
65
93
|
finally {
|
|
66
|
-
clearTimeout(
|
|
94
|
+
clearTimeout(ghTimer);
|
|
67
95
|
}
|
|
96
|
+
return { tag: `v${version}`, version, body: releaseBody };
|
|
68
97
|
}
|
|
69
98
|
function parseTriple(v) {
|
|
70
99
|
const cleaned = v.startsWith("v") ? v.slice(1) : v;
|
|
@@ -197,7 +226,7 @@ export function registerForgeUpdateCommand(pi, opts) {
|
|
|
197
226
|
const release = await fetchChangelog(fetchImpl);
|
|
198
227
|
ctx.ui.setStatus("forge:update", undefined);
|
|
199
228
|
if (!release) {
|
|
200
|
-
ctx.ui.notify("forge:update — could not reach
|
|
229
|
+
ctx.ui.notify("forge:update — could not reach the npm registry to check for updates. " +
|
|
201
230
|
`Check your network and retry, or upgrade manually: npm i -g ${PKG_NAME}@latest`, "error");
|
|
202
231
|
return;
|
|
203
232
|
}
|
|
@@ -236,7 +265,8 @@ export const __test__ = {
|
|
|
236
265
|
writeDriftCache,
|
|
237
266
|
defaultCacheDir,
|
|
238
267
|
PKG_NAME,
|
|
239
|
-
|
|
268
|
+
NPM_DIST_TAGS_URL,
|
|
269
|
+
changelogTagUrl,
|
|
240
270
|
UPGRADE_TIMEOUT_MS,
|
|
241
271
|
NPM_ROOT_TIMEOUT_MS,
|
|
242
272
|
PROBE_TIMEOUT_MS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-update-command.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,iDAAiD;
|
|
1
|
+
{"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-update-command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entelligentsia/forgecli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Forge SDLC ported onto @earendil-works/pi-coding-agent — production launcher with three bin aliases (forge/forgecli/4ge). Bundles a curated fork of pi-coding-agent vendored under earendil-works names.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Entelligentsia",
|