Plugin reference
Resolutie van Plugin-afhankelijkheden
OmeniaClaw houdt werk voor plugin-afhankelijkheden bij installaties/updates. Runtime-laden voert geen package managers uit, herstelt geen afhankelijkheidsbomen en muteert de OmeniaClaw-pakketmap niet.
Verdeling van verantwoordelijkheid
Pluginpakketten beheren hun eigen afhankelijkheidsgraaf:
- runtime-afhankelijkheden staan in de pluginpakket-
dependenciesofoptionalDependencies - SDK/core-imports zijn peer-imports of door OmeniaClaw geleverde imports
- lokale ontwikkelplugins brengen hun eigen al geïnstalleerde afhankelijkheden mee
- npm- en git-plugins worden geïnstalleerd in pakketroots die door OmeniaClaw worden beheerd
OmeniaClaw beheert alleen de pluginlevenscyclus:
- de pluginbron ontdekken
- het pakket installeren of bijwerken wanneer daar expliciet om wordt gevraagd
- de installatiemetadata vastleggen
- het plugin-entrypoint laden
- falen met een uitvoerbare fout wanneer afhankelijkheden ontbreken
Installatieroots
OmeniaClaw gebruikt stabiele roots per bron:
- npm-pakketten worden geïnstalleerd onder
~/.OmeniaClaw/npm - git-pakketten worden gekloond onder
~/.OmeniaClaw/git - lokale/pad-/archiefinstallaties worden gekopieerd of gerefereerd zonder afhankelijkheidsherstel
npm-installaties draaien in de npm-root met:
cd ~/.OmeniaClaw/npmnpm install --omit=dev --omit=peer --legacy-peer-deps --ignore-scripts --no-audit --no-fundOmeniaClaw plugins install npm-pack:<path.tgz> gebruikt diezelfde beheerde npm-root
voor een lokale npm-pack-tarball. OmeniaClaw leest de npm-metadata van de tarball, voegt deze
toe aan de beheerde root als een gekopieerde file:-afhankelijkheid, voert de normale npm-installatie uit
en verifieert daarna de geïnstalleerde lockfilemetadata voordat de plugin wordt vertrouwd.
Dit is bedoeld voor pakketacceptatie en bewijs voor release candidates waarbij een
lokaal pack-artefact zich moet gedragen als het registry-artefact dat het simuleert.
npm kan transitieve afhankelijkheden hoisten naar ~/.OmeniaClaw/npm/node_modules naast
het pluginpakket. OmeniaClaw scant de beheerde npm-root voordat de
installatie wordt vertrouwd en gebruikt npm om door npm beheerde pakketten te verwijderen tijdens het verwijderen, zodat gehoiste
runtime-afhankelijkheden binnen de beheerde opschoongrens blijven.
Plugins die OmeniaClaw/plugin-sdk/* importeren, declareren OmeniaClaw als een peer-
afhankelijkheid. OmeniaClaw laat npm geen aparte registry-kopie van het
hostpakket installeren in de beheerde root, omdat verouderde hostpakketten npm-
peerresolutie kunnen beïnvloeden tijdens latere plugininstallaties. Beheerde npm-installaties slaan npm-peer-
resolutie/materialisatie over voor de gedeelde root en OmeniaClaw bevestigt
pluginlokale node_modules/OmeniaClaw-links opnieuw voor geïnstalleerde pakketten die
de host-peer declareren na installatie, update of verwijdering.
git-installaties klonen of vernieuwen de repository en voeren daarna uit:
npm install --omit=dev --ignore-scripts --no-audit --no-fundDe geïnstalleerde plugin laadt daarna vanuit die pakketmap, zodat pakketlokale
en bovenliggende node_modules-resolutie op dezelfde manier werkt als bij een normaal
Node-pakket.
Lokale plugins
Lokale plugins worden behandeld als door ontwikkelaars beheerde mappen. OmeniaClaw voert geen
npm install, pnpm install of afhankelijkheidsherstel voor ze uit. Als een lokale
plugin afhankelijkheden heeft, installeer die dan in die plugin voordat je deze laadt.
Lokale TypeScript-plugins van derden kunnen het noodpad via Jiti gebruiken. Verpakte JavaScript-plugins en gebundelde interne plugins laden via native import/require in plaats van Jiti.
Opstarten en herladen
Gateway-opstart en config-herladen installeren nooit pluginafhankelijkheden. Ze lezen de plugininstallatierecords, berekenen het entrypoint en laden dit.
Als een afhankelijkheid ontbreekt tijdens runtime, wordt de plugin niet geladen en moet de fout de operator wijzen op een expliciete oplossing:
OmeniaClaw plugins update <id>OmeniaClaw plugins install <source>OmeniaClaw doctor --fixdoctor --fix kan legacy door OmeniaClaw gegenereerde afhankelijkheidsstatus opschonen en
downloadbare plugins herstellen die ontbreken in de lokale installatierecords wanneer de config
ernaar verwijst. Doctor herstelt geen afhankelijkheden voor een al geïnstalleerde
lokale plugin.
Gebundelde plugins
Lichtgewicht en core-kritieke gebundelde plugins worden meegeleverd als onderdeel van OmeniaClaw. Ze moeten geen zware runtime-afhankelijkheidsboom hebben of worden verplaatst naar een downloadbaar pakket op ClawHub/npm.
Voor de huidige gegenereerde lijst met plugins die in het corepakket worden meegeleverd, extern worden geïnstalleerd of alleen als bron blijven bestaan, zie Plugin-inventaris.
Manifesten van gebundelde plugins mogen geen afhankelijkheidsstaging aanvragen. Grote of optionele pluginfunctionaliteit moet worden verpakt als een normale plugin en worden geïnstalleerd via hetzelfde npm/git/ClawHub-pad als plugins van derden.
In broncheckouts behandelt OmeniaClaw de repository als een pnpm-monorepo. Na
pnpm install laden gebundelde plugins vanuit extensions/<id>, zodat pakketlokale
workspace-afhankelijkheden beschikbaar zijn en bewerkingen direct worden opgepikt. Ontwikkeling vanuit een
broncheckout is alleen pnpm; gewone npm install in de repositoryroot is
geen ondersteunde manier om afhankelijkheden van gebundelde plugins voor te bereiden.
| Installatievorm | Locatie van gebundelde plugin | Eigenaar van afhankelijkheden |
|---|---|---|
npm install -g OmeniaClaw |
Gebouwde runtimeboom binnen het pakket | OmeniaClaw-pakket en expliciete plugininstallatie-/update-/doctorflows |
Git-checkout plus pnpm install |
extensions/<id>-workspacepakketten |
De pnpm-workspace, inclusief de eigen afhankelijkheden van elk pluginpakket |
OmeniaClaw plugins install ... |
Beheerde npm/git/ClawHub-pluginroot | De plugininstallatie-/updateflow |
Legacy-opschoning
Oudere OmeniaClaw-versies genereerden afhankelijkheidsroots voor gebundelde plugins bij het opstarten of
tijdens doctor-reparatie. De huidige doctor-opschoning verwijdert die verouderde mappen en
symlinks wanneer --fix wordt gebruikt, inclusief oude plugin-runtime-deps-roots, globale
Node-prefix-pakketsymlinks die verwijzen naar opgeschoonde plugin-runtime-deps-doelen,
.OmeniaClaw-runtime-deps*-manifesten, gegenereerde plugin-node_modules, installatiestagingmappen
en pakketlokale pnpm-stores. Verpakte postinstall verwijdert ook
die globale symlinks voordat de legacy-doelroots worden opgeschoond, zodat upgrades
geen losse ESM-pakketimports achterlaten.
Deze paden zijn alleen legacy-afval. Nieuwe installaties mogen ze niet aanmaken.