@ijfw/install 1.2.10 → 1.3.1

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/docs/GUIDE.md CHANGED
@@ -172,7 +172,7 @@ Run `/team setup` in Claude Code, or `ijfw team` from the shell, to see your cur
172
172
  |------|-------|--------------|
173
173
  | Hot | Plain markdown in `.ijfw/memory/` | Always on. Instant reads. Git friendly. |
174
174
  | Warm | BM25 ranked search | Always on. Scales to around 10,000 entries per project. |
175
- | Cold | Optional semantic vectors | Only if you install `@xenova/transformers`. Off by default. |
175
+ | Cold | Optional semantic vectors | Off by default. Requires a user-installed embedding provider. |
176
176
 
177
177
  Every session also ends with an optional "dream cycle". Run `/consolidate` or "run a dream cycle" to have IJFW sweep the day's memory: promote observed patterns into your knowledge base, prune stale entries, reconcile contradictions, optionally lift winners into global memory so every future project benefits. Memory that grows sharper over time instead of heavier.
178
178
 
@@ -359,9 +359,9 @@ IJFW configures six AI coding agents with native affordances on each, plus a uni
359
359
 
360
360
  | Platform | What ships |
361
361
  |----------|------------|
362
- | Claude Code | Native plugin via marketplace, MCP auto-registered, 9 hooks, 20 on-demand skills, 21 slash commands |
363
- | Codex CLI | Native plugin (`.codex-plugin/plugin.json`), 20 skills, 9 hooks, MCP registered, marketplace-ready |
364
- | Gemini CLI | Native extension (`gemini-extension.json`), 20 skills, 11 hook events, 21 TOML slash commands, policy engine, BeforeModel injection, checkpointing |
362
+ | Claude Code | Native plugin via marketplace, MCP auto-registered, 6 hook events / 12 scripts, 22 on-demand skills, 22 slash commands |
363
+ | Codex CLI | Native plugin (`.codex-plugin/plugin.json`), 19 skills, 5 hook events, MCP registered, marketplace-ready |
364
+ | Gemini CLI | Native extension (`gemini-extension.json`), 19 skills, 11 hook events, 19 TOML slash commands, policy engine, BeforeModel injection, checkpointing |
365
365
  | Cursor | `.cursor/mcp.json` plus `.cursor/rules/ijfw.mdc`. Dashboard view-only. |
366
366
  | Windsurf | `~/.codeium/windsurf/mcp_config.json` plus `.windsurfrules`. Dashboard view-only. |
367
367
  | Copilot (VS Code) | `.vscode/mcp.json` plus `.github/copilot-instructions.md`. Dashboard view-only. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ijfw/install",
3
- "version": "1.2.10",
3
+ "version": "1.3.1",
4
4
  "description": "One-command installer for IJFW -- the AI efficiency layer. One install, every AI coding agent, zero config.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -55,7 +55,6 @@
55
55
  "url": "git+https://gitlab.com/therealseandonahoe/ijfw.git"
56
56
  },
57
57
  "publishConfig": {
58
- "access": "public",
59
- "provenance": true
58
+ "access": "public"
60
59
  }
61
60
  }
package/src/install.ps1 CHANGED
@@ -50,8 +50,8 @@ function Invoke-Preflight {
50
50
  if (-not $node -or ([int]($node -replace 'v(\d+)\..*','$1') -lt 18)) {
51
51
  $issues += "Node 18+ unlocks IJFW (found $node). Grab it from https://nodejs.org and we'll pick up where you left off."
52
52
  }
53
- if (-not (Test-Command git)) { $issues += "Install Git for Windows (https://git-scm.com) and rerun -- it bundles everything we need." }
54
- if (-not (Resolve-GitBash)) { $issues += "IJFW needs Git Bash (ships with Git for Windows). Install Git for Windows and rerun -- takes 60 seconds." }
53
+ if (-not (Test-Command git)) { $issues += "IJFW needs git (used to clone the source repo). Install: winget install --id Git.Git -e --source winget" }
54
+ # Bash is no longer required (v1.3.0 -- installer is Node-native).
55
55
  return $issues
56
56
  }
57
57
 
@@ -136,25 +136,18 @@ function Invoke-CloneOrPull($target, $branch) {
136
136
  }
137
137
 
138
138
  function Invoke-InstallScript($target) {
139
- $script = Join-Path $target "scripts\install.sh"
140
- if (-not (Test-Path $script)) { throw "The installer script is not at $script yet. Run the full install from a fresh clone." }
141
- $gitBash = Resolve-GitBash
142
- if (-not $gitBash) { throw "IJFW needs Git Bash to complete setup. Install Git for Windows (includes bash.exe) and rerun." }
143
- # Propagate IJFW_HOME into the bash sub-call so a custom -Dir target lands
144
- # platform configs / sentinels under the user's chosen tree instead of the
145
- # default ~/.ijfw. Without this, .\install.ps1 -Dir D:\custom would scribble
146
- # MCP entries into the user's real ~/.codex / ~/.gemini / ~/.claude pointing
147
- # at the scratch dir.
139
+ # v1.3.0: hand off to the Node-native installer (installer/src/install.js).
140
+ # No more bash dependency. Identical code path on every platform.
141
+ $entry = Join-Path $target "installer\src\install.js"
142
+ if (-not (Test-Path $entry)) { throw "The installer entry is not at $entry. Run the full install from a fresh clone." }
148
143
  $priorIjfwHome = $env:IJFW_HOME
149
144
  $env:IJFW_HOME = $target
150
145
  Push-Location $target
151
146
  try {
152
147
  $env:IJFW_NONINTERACTIVE = if ($env:CI -or $Yes) { "1" } else { "" }
153
- # Let the PS wrapper own the final closer so Merge-Marketplace output
154
- # lands above it. Bash skips its "Full log" line when this is set.
155
148
  $env:IJFW_SKIP_CLOSER = "1"
156
- & $gitBash "./scripts/install.sh"
157
- if ($LASTEXITCODE -ne 0) { throw "scripts/install.sh exited $LASTEXITCODE." }
149
+ & node $entry
150
+ if ($LASTEXITCODE -ne 0) { throw "Node installer exited $LASTEXITCODE." }
158
151
  } finally {
159
152
  Pop-Location
160
153
  Remove-Item Env:\IJFW_SKIP_CLOSER -ErrorAction SilentlyContinue