jorgex-stack 1.9.7 → 1.9.9

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.
Files changed (3) hide show
  1. package/README.md +11 -11
  2. package/dist/cli.js +15 -13
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -106,21 +106,21 @@ Programmatic mode does **not** provide:
106
106
 
107
107
  ### Pi runtime
108
108
 
109
- Pi combines the frozen **snapshot v2** package with a Stack-owned shared projection. The published Stack `1.9.5` recognizes the exact package **`jorgex-pi@0.8.3`**. The Stack `1.9.6` candidate prepares adoption of the published package **`jorgex-pi@0.8.4`**, but `1.9.6` is not published yet.
109
+ Pi combines the frozen **snapshot v2** package with a Stack-owned shared projection. The published Stack `1.9.7` recognizes the exact package **`jorgex-pi@0.8.4`**. Pi `0.8.5` is published independently; this checkout keeps the Stack `1.9.7` baseline with the Pi `0.8.5` candidate pin. On merge, Stack is expected to auto-bump to `1.9.8` and publish without waiting 24 hours.
110
110
 
111
- The current published command set uses Stack `1.9.5` with Pi `0.8.3`:
111
+ The current published command set uses Stack `1.9.7` with Pi `0.8.4`:
112
112
 
113
113
  ```bash
114
- pnpm dlx jorgex-stack@1.9.5 install --agents pi
115
- pnpm dlx jorgex-stack@1.9.5 doctor --agents pi
116
- pnpm dlx jorgex-stack@1.9.5 models --agents pi
117
- pnpm dlx jorgex-stack@1.9.5 sync --agents pi
118
- pnpm dlx jorgex-stack@1.9.5 uninstall --agents pi
114
+ pnpm dlx jorgex-stack@1.9.7 install --agents pi
115
+ pnpm dlx jorgex-stack@1.9.7 doctor --agents pi
116
+ pnpm dlx jorgex-stack@1.9.7 models --agents pi
117
+ pnpm dlx jorgex-stack@1.9.7 sync --agents pi
118
+ pnpm dlx jorgex-stack@1.9.7 uninstall --agents pi
119
119
  ```
120
120
 
121
- Stack downloads the frozen registry tarball, verifies its exact size plus SHA-256/SHA-512, backs up Pi's `settings.json`, and only then asks Pi to install that local file. The historical `0.8.0` tarball was `89128340` bytes; the exact current artifact and integrity values are authoritative in `src/lib/pi-runtime.ts`. Pi's own package-manager invocation is the narrow runtime exception to the repository's pnpm-only rule; the Stack lifecycle never launches npm directly. After the package is healthy, Stack projects the shared resources into Pi: marked `jorgex:system-prompt` and `jorgex:engram-protocol` sections in `~/.pi/agent/AGENTS.md`, canonical skills under `~/.agents/skills`, and `~/.pi/agent/prompts/lean-audit.md`. When the managed Playwright preference is active, the projection also adds or removes the marked `jorgex:browser` section dynamically. The Pi-only `install --agents pi --playwright` flow installs and persists that Playwright capability just like the other harnesses. Chrome DevTools MCP and Context7 remain outside the Pi scope. The published `1.9.5` entry remains `{ "source": "npm:jorgex-pi@0.8.3", "skills": [], "prompts": [] }`; the `1.9.6` candidate changes that entry to `{ "source": "npm:jorgex-pi@0.8.4", "skills": [], "prompts": [] }`. Its code already recognizes the 0.8.4 receipt, while published-channel commands must wait for Stack 1.9.6 to be published. Filters are applied only after this projection exists, so the package does not duplicate shared resources. Package ownership is recorded separately in `~/.jorgex-stack/pi-receipt.json`; projection ownership is recorded in `~/.jorgex-stack/pi-projection-receipt.json`. Both receipts are scope-bound and fail closed for manual, duplicate, divergent, partial, corrupt, copied-to-another-scope, or unknown-history state.
121
+ Stack downloads the frozen registry tarball, verifies its exact size plus SHA-256/SHA-512, backs up Pi's `settings.json`, and only then asks Pi to install that local file. The historical `0.8.0` tarball was `89128340` bytes; the exact current artifact and integrity values are authoritative in `src/lib/pi-runtime.ts`. Pi's own package-manager invocation is the narrow runtime exception to the repository's pnpm-only rule; the Stack lifecycle never launches npm directly. After the package is healthy, Stack projects the shared resources into Pi: marked `jorgex:system-prompt` and `jorgex:engram-protocol` sections in `~/.pi/agent/AGENTS.md`, canonical skills under `~/.agents/skills`, and `~/.pi/agent/prompts/lean-audit.md`. When the managed Playwright preference is active, the projection also adds or removes the marked `jorgex:browser` section dynamically. The Pi-only `install --agents pi --playwright` flow installs and persists that Playwright capability just like the other harnesses. Chrome DevTools MCP and Context7 remain outside the Pi scope. The published `1.9.7` entry is `{ "source": "npm:jorgex-pi@0.8.4", "skills": [], "prompts": [] }`; the checkout's `0.8.5` entry is a candidate only. Filters are applied only after this projection exists, so the package does not duplicate shared resources. Package ownership is recorded separately in `~/.jorgex-stack/pi-receipt.json`; projection ownership is recorded in `~/.jorgex-stack/pi-projection-receipt.json`. Both receipts are scope-bound and fail closed for manual, duplicate, divergent, partial, corrupt, copied-to-another-scope, or unknown-history state.
122
122
 
123
- Historically, the published Pi 0.8.0 direct-package snapshot added `work-audit`: the snapshot grew from **17 to 18 skill trees** (96 to 97 files), and the active runtime allowlist grew from **16 to 17 skills**. `playwright-cli` remains in the snapshot but inactive because browser automation is a separate opt-in integration. The published 0.8.3 package preserves that work-audit introduction.
123
+ Historically, the published Pi 0.8.0 direct-package snapshot added `work-audit`: the snapshot grew from **17 to 18 skill trees** (96 to 97 files), and the active runtime allowlist grew from **16 to 17 skills**. The Pi 0.8.5 candidate records 18 skill trees and 98 files; reference F2-A is included while the private F1 skills remain preserved. `playwright-cli` remains in the snapshot but inactive because browser automation is a separate opt-in integration.
124
124
 
125
125
  The historical published artifact has two separate provenance anchors. The local size/SHA-256/SHA-512 checks bind the downloaded bytes to Stack's accepted artifact; they are checks within that checkout, not independent trust roots. npm's external provenance/attestation is outside Stack runtime verification, and `provenance.commit` is informative unless that external attestation is independently verified.
126
126
 
@@ -132,9 +132,9 @@ The package owns Pi's native primary-model projection: `openai-codex/gpt-5.6-sol
132
132
 
133
133
  Engram remains mandatory and user-owned. An existing binary is preserved. Interactive install may offer the native `brew`/`go`/release channel with explicit confirmation; `--yes` and non-TTY installs fail with a remedy when Engram is absent. The database and memories are never updated or deleted, and uninstall never deletes the Engram binary. Under `--target-dir`, Stack accepts only `<target>/bin/engram`, isolates Pi/Home/XDG/AppData/temp/npm-cache paths inside the target, and never consults the host Engram or Pi configuration.
134
134
 
135
- The published Stack `1.9.5` recognizes the exact Pi receipt `npm:jorgex-pi@0.8.3`. The Stack `1.9.6` candidate code already recognizes `npm:jorgex-pi@0.8.4`; consuming that pairing through the published channel waits until Stack `1.9.6` is published. Use exact versions, never `latest`, and never edit receipts or hashes or delete `HOME`, Engram, or another runtime's projection to force trust. The transition and rollback commands are in [docs/references/pi-runtime.md](docs/references/pi-runtime.md).
135
+ The published Stack `1.9.7` recognizes the exact Pi receipt `npm:jorgex-pi@0.8.4`. Use exact versions, never `latest`, and never edit receipts or hashes or delete `HOME`, Engram, or another runtime's projection to force trust. The transition and rollback commands are in [docs/references/pi-runtime.md](docs/references/pi-runtime.md).
136
136
 
137
- Stack 1.9.5 → Pi 0.8.3 is the current published pairing. Stack 1.9.6 → Pi 0.8.4 is only a candidate until Stack 1.9.6 is published. The 24-hour managed-consumption maturity rule applies only to real installation or consumption of the new Pi package; development, PR validation, merge and Stack publication may proceed immediately. Installing it on a real user scope before the maturity window requires Jorge's explicit exception.
137
+ The 24-hour managed-consumption maturity rule applies only to real installation or consumption of the new Pi package; development, PR validation, merge and Stack publication may proceed immediately. Installing it on a real user scope before the maturity window requires Jorge's explicit exception.
138
138
 
139
139
  `update --agents pi` only runs the Pi package lifecycle; it does not enter the global Stack updater. `update --check --agents pi` is a read-only Pi doctor. Uninstall runs package cleanup, backs up Pi's settings before removal, removes only the exact receipt-owned package after verifying absence, and preserves all companion/user state. Full behavior, failure states and troubleshooting are in [docs/references/pi-runtime.md](docs/references/pi-runtime.md).
140
140
 
package/dist/cli.js CHANGED
@@ -190,13 +190,14 @@ function modelMapFile() {
190
190
  return path3.join(dataDir(), "model-map.json");
191
191
  }
192
192
  function loadModelMap() {
193
- const raw = readTextIfExists(modelMapFile());
193
+ const file = modelMapFile();
194
+ const raw = readTextIfExists(file);
194
195
  if (raw === null) return DEFAULT_MODEL_MAP;
195
196
  let fromDisk;
196
197
  try {
197
198
  fromDisk = JSON.parse(raw);
198
199
  } catch {
199
- return DEFAULT_MODEL_MAP;
200
+ throw new Error(`El mapa de modelos ${file} contiene JSON inv\xE1lido. Corrige el JSON o restaura una copia antes de continuar.`);
200
201
  }
201
202
  const merged = { ...fromDisk };
202
203
  for (const id of Object.keys(DEFAULT_MODEL_MAP)) {
@@ -2573,14 +2574,15 @@ async function runInstall(opts) {
2573
2574
  targetDir: opts.targetDir !== void 0 || opts.playwrightToolConsent.targetDir
2574
2575
  });
2575
2576
  const projectPlaywrightPrompt = opts.dryRun && toolPlan?.persistEnabledOnSuccess === true;
2576
- const modelMap = loadModelMap();
2577
- if (useManifest) ensureModelMapFile();
2577
+ const hasFileRuntimes = opts.runtimes.length > 0;
2578
+ const modelMap = hasFileRuntimes ? loadModelMap() : {};
2579
+ if (hasFileRuntimes && useManifest) ensureModelMapFile();
2578
2580
  p.log.info(engramBin ? `Engram detectado: ${engramBin} (se respeta, D7)` : "Engram NO detectado.");
2579
- const current = useManifest ? collectAllCurrentTargets(modePreference) : { targets: /* @__PURE__ */ new Set(), complete: false, warnings: [] };
2580
- const canOrphan = useManifest && current.complete;
2581
+ const current = hasFileRuntimes && useManifest ? collectAllCurrentTargets(modePreference) : { targets: /* @__PURE__ */ new Set(), complete: false, warnings: [] };
2582
+ const canOrphan = hasFileRuntimes && useManifest && current.complete;
2581
2583
  const canonicalMcp = loadCanonicalMcp(stackDir);
2582
2584
  const canonicalHooks = loadCanonicalHooks(stackDir);
2583
- if (useManifest && (!current.complete || current.warnings.length > 0)) {
2585
+ if (hasFileRuntimes && useManifest && (!current.complete || current.warnings.length > 0)) {
2584
2586
  p.log.warn("Limpieza de hu\xE9rfanos deshabilitada: no se pudo construir el plan completo de todos los runtimes.");
2585
2587
  for (const warning of current.warnings) p.log.warn(warning);
2586
2588
  }
@@ -5142,16 +5144,16 @@ import { createHash } from "crypto";
5142
5144
  var PI_RUNTIME_CANDIDATE = {
5143
5145
  package: {
5144
5146
  name: "jorgex-pi",
5145
- version: "0.8.4",
5146
- source: "npm:jorgex-pi@0.8.4"
5147
+ version: "0.8.5",
5148
+ source: "npm:jorgex-pi@0.8.5"
5147
5149
  },
5148
5150
  provenance: {
5149
- commit: "2b5cf37d9bfdb0c574e66712000ecc432eca8a69"
5151
+ commit: "57cb15413c1dda408251ff80ff9d5658b7e91793"
5150
5152
  },
5151
5153
  tarball: {
5152
- bytes: 89133070,
5153
- sha256: "e30cbc0595bfbaa35b37f97096b77d46749315e3cf6ab13f830fe84432798b10",
5154
- sha512: "39255e7ccf7aad2cbe1069e2dbeb3335dc59f28ad1f0f32b677889e39e167e5fd39b546da9f448c33fad4581f0b4a8f1dda95a2f1b1bce010cc031b188ffc292"
5154
+ bytes: 89133857,
5155
+ sha256: "ea7ce0fa88c324d15756fbb1f7e222d2d87156de8a17cede8f3f317ad0d90c7e",
5156
+ sha512: "0f6be4e79be3b7add6949b0d3d913a79acb0dd338ea0459d500358fec46ddb1925ad2ec926d0fbe899c7e48f0a7cb9681424fc1a0d1ab104e7e25d350478b989"
5155
5157
  },
5156
5158
  pi: {
5157
5159
  testedVersions: ["0.84.2"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jorgex-stack",
3
- "version": "1.9.7",
3
+ "version": "1.9.9",
4
4
  "description": "Harness multi-agente portable: instala la config JorgeX (agentes, skills, hooks, Engram, MCPs) en Claude Code, Codex CLI, OpenCode y Pi",
5
5
  "type": "module",
6
6
  "license": "MIT",