@ijfw/install 1.1.0
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 +107 -0
- package/LICENSE +21 -0
- package/README.md +53 -0
- package/dist/ijfw.js +1316 -0
- package/dist/install.js +279 -0
- package/dist/uninstall.js +259 -0
- package/package.json +58 -0
- package/src/install.ps1 +277 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Changelog -- @ijfw/install
|
|
2
|
+
|
|
3
|
+
## [1.1.0] -- 2026-04-19
|
|
4
|
+
|
|
5
|
+
Public launch. One install, every AI coding agent, zero config.
|
|
6
|
+
|
|
7
|
+
### Cross-platform install verified
|
|
8
|
+
|
|
9
|
+
- macOS (Homebrew node)
|
|
10
|
+
- Linux (apt node) on a fresh hostkey VM
|
|
11
|
+
- Windows (Git Bash with Git for Windows)
|
|
12
|
+
|
|
13
|
+
### Unified `ijfw` CLI
|
|
14
|
+
|
|
15
|
+
One dispatcher, one source of truth:
|
|
16
|
+
|
|
17
|
+
- `ijfw install` -- install or re-install IJFW into every detected agent
|
|
18
|
+
- `ijfw uninstall` (alias `ijfw off`) -- revert, preserving memory by default
|
|
19
|
+
- `ijfw preflight` -- 11-gate quality pipeline, blocking + advisory
|
|
20
|
+
- `ijfw dashboard start|stop|status` -- local dashboard, zero deps
|
|
21
|
+
- `ijfw doctor` -- CLI and API-key reachability with literal fix commands
|
|
22
|
+
- `ijfw status` -- hero line, recent activity, cache savings
|
|
23
|
+
- `ijfw update` -- pull latest, reinstall merge-safely
|
|
24
|
+
- `ijfw cross audit|research|critique|project-audit` -- multi-AI adversarial review
|
|
25
|
+
- `ijfw import claude-mem [--all]` -- absorb existing claude-mem memory, per-project routing
|
|
26
|
+
- `ijfw receipt last` -- shareable, redacted block from the last Trident run
|
|
27
|
+
|
|
28
|
+
### Installer hardening
|
|
29
|
+
|
|
30
|
+
- Plugin cache invalidation on every install (fixes stale `.mcp.json`)
|
|
31
|
+
- Plugin source + `mcp-server` sibling-link auto-creation (POSIX) or copy (Windows)
|
|
32
|
+
- `server.js` falls back to HOME when CWD is unwritable -- no stderr spam during MCP handshake
|
|
33
|
+
- `.mcp.json` patched with absolute node + server.js paths at install time
|
|
34
|
+
- `install.ps1` invokes the same `install.sh` via bash.exe -- one code path, three platforms
|
|
35
|
+
- Post-install verification gates: plugin manifest, sibling link, MCP handshake, settings.json registration, CLI wiring. Exits non-zero if any gate fails.
|
|
36
|
+
|
|
37
|
+
### claude-mem migration
|
|
38
|
+
|
|
39
|
+
- `ijfw import claude-mem --all` auto-discovers projects from claude-mem's `project` column, matches to on-disk locations via `~/.claude/projects` and common dev parents, routes each project's entries into its own `.ijfw/memory/`.
|
|
40
|
+
- Schema introspection (PRAGMA table_info) tolerates claude-mem version drift.
|
|
41
|
+
- Idempotent -- safe to rerun.
|
|
42
|
+
|
|
43
|
+
### Publish
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cd installer && npm publish --access public
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## [1.1.0-rc.1] -- 2026-04-16 (pre-1.0 internal release candidate, superseded by 1.0.0)
|
|
52
|
+
|
|
53
|
+
Release candidate. Soak 24h before stable 1.1.0.
|
|
54
|
+
|
|
55
|
+
### New verbs on the `ijfw` binary
|
|
56
|
+
|
|
57
|
+
- `ijfw preflight` -- 11-gate blocking quality pipeline. Replaces ad-hoc manual checks before publish.
|
|
58
|
+
- `ijfw dashboard start|stop|status` -- local SSE dashboard on 127.0.0.1:37891, zero deps, single-file HTML client.
|
|
59
|
+
|
|
60
|
+
### Preflight highlights
|
|
61
|
+
|
|
62
|
+
- Gates: shellcheck, oxlint, eslint-security, PSScriptAnalyzer (CI Windows only), publint, gitleaks, audit-ci, knip, license-check, pack-smoke, upgrade-smoke.
|
|
63
|
+
- Blocking gates exit 1 on fail. Advisory gates warn only. Missing tools skip gracefully with install hint.
|
|
64
|
+
- `prepublishOnly` now runs preflight: no tag can publish with a blocking gate open.
|
|
65
|
+
|
|
66
|
+
### Dashboard highlights
|
|
67
|
+
|
|
68
|
+
- Observation ledger at `~/.ijfw/observations.jsonl` fed by PostToolUse hooks on Claude, Codex, and Gemini.
|
|
69
|
+
- SSE live feed delivers new observations within ~150ms of ledger append.
|
|
70
|
+
- Localhost-only (127.0.0.1); non-loopback requests receive 403.
|
|
71
|
+
- Zero runtime dependencies. `npm ls --production`: 0 entries.
|
|
72
|
+
|
|
73
|
+
### Unified cockpit: costs + savings + memory (Waves H + I)
|
|
74
|
+
|
|
75
|
+
- Hero bar shows live Today / 7d spend and a savings bubble (cache, memory, terse, trident savings totals).
|
|
76
|
+
- New endpoints: `/api/cost/today`, `/api/cost/period`, `/api/cost/history`, `/api/memory`, `/api/memory/search`, `/api/memory/recall-stats`. All localhost-guarded.
|
|
77
|
+
- Memory rail lists all `.ijfw/memory/` files with recall count badges and full-text BM25 search.
|
|
78
|
+
- Path traversal fix on `/api/memory/file`: uses `resolve()` before prefix check.
|
|
79
|
+
- Credit: cost tracking adapted from CodeBurn (AgentSeal, MIT) and ccusage (ryoppippi, MIT).
|
|
80
|
+
|
|
81
|
+
### Tests
|
|
82
|
+
|
|
83
|
+
- 392 passing. Cost and memory module tests included in the mcp-server suite.
|
|
84
|
+
|
|
85
|
+
Full project changelog at <https://github.com/TheRealSeanDonahoe/ijfw/blob/main/CHANGELOG.md>.
|
|
86
|
+
|
|
87
|
+
## [1.0.0] -- 2026-04-17
|
|
88
|
+
|
|
89
|
+
First stable release. One-command installer configures IJFW across six AI
|
|
90
|
+
coding agents (Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Copilot).
|
|
91
|
+
|
|
92
|
+
### Highlights
|
|
93
|
+
|
|
94
|
+
- Cross-platform: bash installer for macOS/Linux/WSL, PowerShell installer
|
|
95
|
+
for Windows (PS 5.1+, uses Git Bash under the hood -- no WSL required).
|
|
96
|
+
- Merge-safe: backs up existing platform configs before modifying, never
|
|
97
|
+
clobbers user MCP servers or model preferences.
|
|
98
|
+
- Pre-staging: configures every supported platform even if only a subset
|
|
99
|
+
is installed; the rest auto-activate the moment they are installed.
|
|
100
|
+
- Graceful fallbacks: state-machine JSONC parser for the Claude settings
|
|
101
|
+
merge; on parse failure, backs up the file and prints the manual
|
|
102
|
+
`/plugin marketplace add` + `/plugin install ijfw` commands.
|
|
103
|
+
- Polished output: ANSI-colored boxed banner, Live-now / Standing-by
|
|
104
|
+
summary, full-log redirection to `~/.ijfw/install.log`.
|
|
105
|
+
- Zero runtime dependencies; 4 KB tarball.
|
|
106
|
+
|
|
107
|
+
Full project changelog at <https://github.com/TheRealSeanDonahoe/ijfw/blob/main/CHANGELOG.md>.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Sean Donahoe
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @ijfw/install
|
|
2
|
+
|
|
3
|
+
One-command installer for [IJFW](https://github.com/TheRealSeanDonahoe/ijfw) -- the AI
|
|
4
|
+
efficiency layer for Claude Code, Codex, Gemini, Cursor, Windsurf, Copilot.
|
|
5
|
+
|
|
6
|
+
## Install
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install -g @ijfw/install
|
|
10
|
+
ijfw demo
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
IJFW configures every agent on your machine. The options below let you customize the install location, branch, or skip specific steps -- all are optional.
|
|
14
|
+
|
|
15
|
+
### Options
|
|
16
|
+
|
|
17
|
+
| Flag | Default | Notes |
|
|
18
|
+
|------|---------|-------|
|
|
19
|
+
| `--dir <path>` | `$IJFW_HOME` or `~/.ijfw` | Install location |
|
|
20
|
+
| `--branch <name>` | latest released tag | Git branch or tag |
|
|
21
|
+
| `--no-marketplace` | off | Skip settings.json edits |
|
|
22
|
+
| `--yes` | off | Non-interactive |
|
|
23
|
+
|
|
24
|
+
### Uninstall
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx @ijfw/install uninstall # preserves ~/.ijfw/memory/
|
|
28
|
+
npx @ijfw/install uninstall --purge # removes memory too
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Memory is preserved across re-runs by default.
|
|
32
|
+
|
|
33
|
+
## Preflight
|
|
34
|
+
|
|
35
|
+
Requires `node >=18`, `git`, `bash`. On native Windows use the PowerShell
|
|
36
|
+
installer (PS 5.1+), which shells Git Bash under the hood -- no WSL required:
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
iwr https://raw.githubusercontent.com/TheRealSeanDonahoe/ijfw/main/installer/src/install.ps1 -OutFile install.ps1
|
|
40
|
+
.\install.ps1 -Dir $env:USERPROFILE\.ijfw
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Build (contributors)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cd installer
|
|
47
|
+
npm install
|
|
48
|
+
npm run build # outputs dist/install.js + dist/uninstall.js
|
|
49
|
+
npm test
|
|
50
|
+
npm run pack:check
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Tarball target: **<100 KB**.
|