@world2agent/notify-hub
v0.1.0
Published
Notify SensorHub that a W2A sensor package was just published. Runs as a postpublish lifecycle script.
Readme
@world2agent/notify-hub
Tells SensorHub that a World2Agent sensor package was just published. Designed to run as a postpublish lifecycle script so authors never have to manually submit.
Usage
In your sensor package's package.json:
{
"scripts": {
"postpublish": "npx -y @world2agent/notify-hub || true"
}
}That's it. After npm publish succeeds, the script POSTs {package_name, version} to https://world2agent.ai/api/v1/sensors/notify. SensorHub fetches the actual metadata from npm itself — this client never reads credentials, never reads the tarball, only package.json.
The trailing || true is load-bearing: a hub outage must never turn a successful npm publish into a failed CI step.
What you'll see
[w2a-notify] listed: @your/[email protected] → https://world2agent.ai/hub/sensor-fooMeans SensorHub fetched the package, validated the w2a-sensor keyword, and listed it. If npm propagation hasn't caught up yet, you'll see:
[w2a-notify] queued: @your/[email protected] (id=01K...) (verifying via npm; up to 24h)The hub retries the npm lookup with backoff for up to 24h. You can poll the listing's status:
curl https://world2agent.ai/api/v1/sensors/notify/<submission_id>Requirements
The package must declare the w2a-sensor keyword in package.json:
{ "keywords": ["world2agent", "w2a", "w2a-sensor", "sensor", "agent", "<source-type>"] }The first five keywords above are mandatory for SensorHub discovery — see the authoring guide.
Environment variables
| Var | Default | Purpose |
| :-- | :-- | :-- |
| W2A_NOTIFY_URL | https://world2agent.ai/api/v1/sensors/notify | Override the hub endpoint (e2e tests, self-hosted hubs). |
| W2A_NOTIFY_SOURCE | postpublish-hook | Tag the submission entry point. Other valid values: manual-cli, ci. |
Exit code
Always 0. The CLI is fail-soft by design: anything that goes wrong becomes a stderr warning, never a non-zero exit.
License
Apache-2.0 © MachinePulse Pte. Ltd.
