hermes-agent/scripts
ethernet 3f867b2ca9 feat(lints): require an age-gated .npmrc beside every package-lock.json
npm reads the project's own .npmrc, $HOME, and the global config. It
does not walk up parent directories (npm/npm#11437 is still open), so
the root .npmrc gates the root install and nothing else. Two nested
projects were resolving with no supply-chain quarantine at all:
scripts/whatsapp-bridge and plugins/platforms/photon/sidecar. Both now
carry their own gate, and `npm ci` in each returns its lockfile
byte-identical.

A project is a directory holding both package-lock.json and
package.json -- the pair npm resolves against. A lockfile with no
manifest beside it is a vendored artifact; nix/ keeps one for a
hash-pinned fetch that never consults npm config.

The required floor is read from the root .npmrc instead of hardcoded,
so the standard is raised in one place. A nested project may be
stricter, never weaker.
2026-08-14 09:04:06 -04:00
..
ci ci: generalize js-autofix into the project autofix bot 2026-08-14 08:33:55 -04:00
desktop-update fix(update): manual-result protocol so gated outcomes reach the user 2026-08-11 11:07:17 -05:00
lib fix(install): restore installs — engines floor no shipping toolchain can meet 2026-08-01 22:56:52 -05:00
lints feat(lints): require an age-gated .npmrc beside every package-lock.json 2026-08-14 09:04:06 -04:00
observability
…
sandbox feat(dev-sandbox): support fake installer / fake main / git clones 2026-08-04 17:36:26 -04:00
tests test(install): exercise 8.3 normalization by running install.ps1, not by parsing it 2026-08-04 15:34:32 -06:00
toolperf_abeval feat(scripts): reproducible core-toolset A/B eval harness (toolperf_abeval) 2026-08-05 13:43:30 -07:00
whatsapp-bridge feat(lints): require an age-gated .npmrc beside every package-lock.json 2026-08-14 09:04:06 -04:00
LIVETEST_README.md
…
add_contributor.py
…
analyze_livetest.py
…
audit_pr_attribution.py feat(ci): auto-fixable contributor attribution — audit_pr_attribution.py + gate points at it 2026-08-02 15:26:59 -07:00
benchmark_browser_eval.py
…
build_model_catalog.py
…
build_skills_index.py fix(skills-hub): include owner in ClawHub source URLs and add retry on 429 (#51236) 2026-07-31 22:33:11 -07:00
capture-cage-terminal.sh
…
check-windows-footguns.py add project-wide lint registry + runner 2026-08-14 08:33:54 -04:00
check_subprocess_stdin.py
…
contributor_audit.py chore: release v0.20.0 (2026.8.3) 2026-08-03 09:57:23 -07:00
desktop-update.ps1 feat(update): shim UI + event channel for the Windows hand-off 2026-08-11 11:07:17 -05:00
dev-sandbox.sh feat(dev-sandbox): support fake installer / fake main / git clones 2026-08-04 17:36:26 -04:00
discord-voice-doctor.py
…
docker_config_migrate.py refactor: config auto-migration support floor at v12 + deprecated shim retirement 2026-07-29 16:44:31 -07:00
docker_rebootstrap_nous_session.py
…
generate_conformance_vectors.py feat(conformance): vector generator — native renderers as executable spec (#71666) 2026-07-26 16:52:25 +10:00
hermes-gateway
…
install.cmd
…
install.ps1 fix(install): Windows setup no longer hangs forever on Node.js dependencies (#85529) 2026-08-13 13:38:20 -05:00
install.sh fix(install): a failed Node dependency install now fails the install instead of printing success (#85537) 2026-08-13 18:39:54 +00:00
install_psutil_android.py
…
iso-certify.py
…
keystroke_diagnostic.py
…
kill_modal.sh
…
lint_diff.py
…
micro_compaction_report.py feat(agent): report context occupancy, not just tokens saved 2026-07-31 17:44:19 +05:30
profile-tui.py
…
release.py chore: map kweiner contributor email 2026-08-08 14:06:30 +05:30
run_tests.sh fix(tests): forward HERMES_TEST_* knobs through the hermetic runner 2026-08-05 19:46:43 -04:00
run_tests_parallel.py ci: add macos and windows test lanes for the os-marked tests 2026-08-09 22:09:49 -04:00
sample_and_compress.py
…
smoke_nemo_relay_shared_metrics.py Merge updated client resource metrics into active-install metrics 2026-08-04 15:10:41 -07:00
tool_search_livetest.py bench: Unreal-scale live benchmark — Epic's real 830 UE 5.8 schemas replayed (Opus 4.8) 2026-07-26 08:26:09 -07:00
tool_search_livetest2.py fix(lint): encode remaining write_text calls in the tool_search livetest harness 2026-07-26 11:54:03 -07:00
tool_search_livetest_ue.py fix(lint): explicit encoding on probe-file open in UE harness (PLW1514 + windows-footguns) 2026-07-26 08:26:09 -07:00
tool_search_livetest_ue_disc.py bench: discovery-bound suite — paraphrase/absence/survey tasks isolate the listing's structural advantage 2026-07-26 08:26:09 -07:00
tool_search_livetest_ue_hard.py bench: adversarial 830-tool gauntlet — confusion clusters, type-aware error mocks, strict scoring 2026-07-26 08:26:09 -07:00