@nurix/etna 0.16.0 → 0.17.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/data/harness-index.json +1 -1
- package/data/harnesses/code/CLAUDE.md +5 -8
- package/data/harnesses/code/agents/change-review.md +13 -14
- package/data/harnesses/code/agents/harness-manager.md +14 -26
- package/data/harnesses/code/agents/maintenance.md +10 -18
- package/data/harnesses/code/harness.json +3 -3
- package/data/harnesses/code/hooks/hooks.json +2 -2
- package/data/harnesses/code/hooks/lib/{redact.js → redact.mjs} +2 -4
- package/data/harnesses/{code-fable/hooks/prompt-recall.js → code/hooks/prompt-recall.mjs} +5 -7
- package/data/harnesses/{code-fable/hooks/session-reflect.js → code/hooks/session-reflect.mjs} +9 -7
- package/data/harnesses/code/rules/general.md +23 -40
- package/data/harnesses/code/rules/nomenclature.md +0 -4
- package/data/harnesses/code/rules/typescript.md +19 -0
- package/data/harnesses/code/skills/boundary/SKILL.md +53 -239
- package/data/harnesses/code/skills/brainstorm/harvest.md +2 -2
- package/data/harnesses/code/skills/documentation/SKILL.md +2 -4
- package/data/harnesses/code/skills/documentation/references/templates.md +12 -89
- package/data/harnesses/code-fable/CLAUDE.md +5 -8
- package/data/harnesses/code-fable/agents/change-review.md +13 -14
- package/data/harnesses/code-fable/agents/harness-manager.md +14 -26
- package/data/harnesses/code-fable/agents/maintenance.md +10 -18
- package/data/harnesses/code-fable/harness.json +3 -3
- package/data/harnesses/code-fable/hooks/hooks.json +2 -2
- package/data/harnesses/code-fable/hooks/lib/{redact.js → redact.mjs} +2 -4
- package/data/harnesses/{code/hooks/prompt-recall.js → code-fable/hooks/prompt-recall.mjs} +5 -7
- package/data/harnesses/{code/hooks/session-reflect.js → code-fable/hooks/session-reflect.mjs} +9 -7
- package/data/harnesses/code-fable/rules/general.md +23 -40
- package/data/harnesses/code-fable/rules/nomenclature.md +0 -4
- package/data/harnesses/code-fable/rules/typescript.md +19 -0
- package/data/harnesses/code-fable/skills/boundary/SKILL.md +53 -239
- package/data/harnesses/code-fable/skills/brainstorm/harvest.md +2 -2
- package/data/harnesses/code-fable/skills/documentation/SKILL.md +2 -4
- package/data/harnesses/code-fable/skills/documentation/references/templates.md +12 -89
- package/data/harnesses/discover/harness.json +1 -1
- package/data/harnesses/discover/rules/evaluation.md +13 -1
- package/data/harnesses/discover/rules/ingestion.md +15 -0
- package/data/harnesses/discover/rules/tradecraft.md +13 -0
- package/package.json +1 -1
|
@@ -478,6 +478,19 @@ Inferences from `localStorage` / `sessionStorage` / cookie / IndexedDB **key nam
|
|
|
478
478
|
| **Opaque session cookie** (HttpOnly, same-origin, auto-attached) | No `Authorization` header anywhere on the SPA; the cookie auto-attaches because all API is same-origin. **The negative finding is the tell.** | No |
|
|
479
479
|
| **Firebase ID token in IndexedDB** | `firebaseLocalStorageDb` → `stsTokenManager.accessToken`; Firebase Modular SDK v9+ store; short-lived (3600 s) + auto-refreshed. Confirm the Bearer model with one Firestore REST `GET documents/users/{uid}`. | Partially (IDB is JS-reachable, but token is short-lived + refreshed) |
|
|
480
480
|
|
|
481
|
+
> **Same-origin replay — mine an opaque-session-cookie API without ever reading the cookie.** When the
|
|
482
|
+
> taxonomy lands on **opaque session cookie** above (no `Authorization`, no JS-readable token, no CSRF
|
|
483
|
+
> meta — a server-session app: Symfony/PHP, Rails, Django, classic ASP.NET), the *absence* in JS storage
|
|
484
|
+
> **is** the positive fingerprint, not a dead end. Mine it with **in-page `fetch(path, {credentials:'same-origin'})`
|
|
485
|
+
> replay from the app origin**: the browser auto-attaches the httpOnly cookie, so once the in-page tap has
|
|
486
|
+
> revealed an endpoint you replay it for verbatim read bodies (and, Pass-2-gated, write bodies) **without
|
|
487
|
+
> ever reading, returning, or writing the cookie value** — the secret never reaches the harness, which is
|
|
488
|
+
> what keeps this inside the §7 ethics line. You do **not** need raw CDP `Network` for this case (it would
|
|
489
|
+
> only add the literal `Cookie`/request headers, which you'd redact anyway); the in-page fetch/XHR tap +
|
|
490
|
+
> same-origin replay is the complete tool. Reach for raw CDP only to reconstruct exact request headers for
|
|
491
|
+
> an *out-of-browser* reproducer, or for non-`fetch` transports (WS frames). (Origin tag: Akeneo — httpOnly
|
|
492
|
+
> `BAPID` Symfony session, 54-path internal API mined entirely by same-origin replay.)
|
|
493
|
+
|
|
481
494
|
**Key claims to look for in the JWT payload** (decode *structure* only — redact `sub`/`email`/`session_id`/`provider_id`, never log the signature):
|
|
482
495
|
|
|
483
496
|
| Claim | What it tells you |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nurix/etna",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Bootstrap a project with a Nurix harness — copies the harness's CLAUDE.md, skills, agents, rules, and hooks directly into the project from a bundled payload (no marketplace fetch, no network).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|