pnpm-lock.yaml. Gepubliceerde OpenClaw-npm-pakketten gebruiken npm-shrinkwrap.json, npm’s publiceerbare vergrendelingsbestand voor afhankelijkheden, zodat pakketinstallaties de tijdens de release beoordeelde afhankelijkheidsgraaf gebruiken.
Waarom dit belangrijk is
Shrinkwrap is een ontvangstbewijs voor de afhankelijkheidsboom die met een npm-pakket wordt geleverd: het vertelt npm welke exacte transitieve versies moeten worden geïnstalleerd.
Voor OpenClaw-releases betekent dit:
- het gepubliceerde pakket vraagt npm niet om tijdens de installatie een nieuwe afhankelijkheidsgraaf te bedenken;
- wijzigingen in afhankelijkheden zijn controleerbaar omdat ze in een diff van het vergrendelingsbestand terechtkomen;
- releasevalidatie test dezelfde graaf die gebruikers zullen installeren;
- verrassingen met pakketgrootte of native afhankelijkheden komen vóór publicatie aan het licht.
openclaw security audit, pakketprovenance of installatierooktests.
OpenClaw is een Gateway, Plugin-host, modelrouter en agentruntime, dus een standaardinstallatie beïnvloedt de opstarttijd, het schijfgebruik, downloads van native pakketten en de blootstelling aan risico’s in de toeleveringsketen. Shrinkwrap geeft releasebeoordeling een stabiele grens: reviewers zien bewegingen in transitieve afhankelijkheden, validators wijzen onverwachte afwijkingen in het vergrendelingsbestand af en Plugin-pakketten bevatten hun eigen vergrendelde afhankelijkheidsgraaf in plaats van op het hoofdpakket te vertrouwen.
Genereren en controleren
Het npm-hoofdpakketopenclaw, npm-Plugin-pakketten van OpenClaw (bijvoorbeeld @openclaw/discord) en publiceerbare workspace-pakketten zoals @openclaw/ai bevatten bij publicatie npm-shrinkwrap.json. Workspace-afhankelijkheden worden uit de hoofd-shrinkwrap weggelaten omdat ze naast het hoofdpakket worden gepubliceerd; elk publiceerbaar workspace-pakket legt in plaats daarvan zijn eigen transitieve boom vast. Geschikte Plugin-pakketten kunnen ook worden gepubliceerd met expliciete bundledDependencies, waarbij hun runtime-afhankelijkheidsbestanden in de Plugin-tarball worden opgenomen in plaats van uitsluitend op resolutie tijdens de installatie te vertrouwen.
pnpm-lock.yaml aanwezig zijn. Zo blijft de beoordelingsgrens voor de ouderdom van pnpm-afhankelijkheden, overrides en patches intact.
Behandel het volgende als beveiligingsgevoelig:
pnpm-lock.yamlnpm-shrinkwrap.json- afhankelijkheidspayloads van gebundelde Plugins
- elke diff van
package-lock.json
package-lock.json af voor gepubliceerde pakketten. Het npm-publicatiepad voor Plugins controleert de Plugin-lokale shrinkwrap, installeert pakketlokale gebundelde afhankelijkheden en maakt of publiceert vervolgens het pakket.