pnpm-lock.yaml. I pacchetti npm OpenClaw pubblicati utilizzano npm-shrinkwrap.json, il lockfile delle dipendenze pubblicabile di npm, così le installazioni dei pacchetti usano il grafo delle dipendenze verificato durante il rilascio.
Perché è importante
Lo shrinkwrap è una ricevuta dell’albero delle dipendenze distribuito con un pacchetto npm: indica a npm quali versioni transitive esatte installare.
Per i rilasci di OpenClaw ciò significa che:
- il pacchetto pubblicato non chiede a npm di creare un nuovo grafo delle dipendenze al momento dell’installazione;
- le modifiche alle dipendenze sono verificabili perché vengono incluse nella differenza di un lockfile;
- la convalida del rilascio verifica lo stesso grafo che gli utenti installeranno;
- eventuali sorprese relative alle dimensioni del pacchetto o alle dipendenze native emergono prima della pubblicazione.
openclaw security audit, la provenienza dei pacchetti o gli smoke test di installazione.
OpenClaw è un Gateway, un host di Plugin, un router di modelli e un runtime per agenti, quindi un’installazione predefinita influisce sul tempo di avvio, sull’utilizzo del disco, sui download dei pacchetti nativi e sull’esposizione alla catena di approvvigionamento. Lo shrinkwrap offre alla revisione del rilascio un confine stabile: i revisori vedono gli spostamenti delle dipendenze transitive, i validatori rifiutano variazioni impreviste del lockfile e i pacchetti Plugin includono il proprio grafo delle dipendenze bloccato anziché dipendere dal pacchetto radice.
Generazione e verifica
Il pacchetto npm radiceopenclaw, i pacchetti Plugin npm di proprietà di OpenClaw (ad esempio @openclaw/discord) e i pacchetti pubblicabili dell’area di lavoro, come @openclaw/ai, includono npm-shrinkwrap.json quando vengono pubblicati. Le dipendenze dell’area di lavoro sono omesse dallo shrinkwrap radice perché vengono pubblicate insieme al pacchetto radice; ogni pacchetto pubblicabile dell’area di lavoro blocca invece il proprio albero transitivo. Anche i pacchetti Plugin idonei possono essere pubblicati con bundledDependencies esplicite, includendo i file delle dipendenze di runtime nel tarball del Plugin anziché affidarsi esclusivamente alla risoluzione in fase di installazione.
pnpm-lock.yaml. Ciò mantiene inalterato il confine di revisione relativo all’età delle dipendenze pnpm, agli override e alle patch.
Considerare i seguenti elementi sensibili dal punto di vista della sicurezza:
pnpm-lock.yamlnpm-shrinkwrap.json- payload delle dipendenze dei Plugin incluse
- qualsiasi differenza di
package-lock.json
package-lock.json per i pacchetti pubblicati. Il flusso di pubblicazione npm dei Plugin verifica lo shrinkwrap locale del Plugin, installa le dipendenze incluse locali del pacchetto, quindi crea il pacchetto o lo pubblica.