open-agents-ai 0.184.24 → 0.184.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +52 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5602,7 +5602,22 @@ async function handleCmd(cmd) {
|
|
|
5602
5602
|
timestamp: Date.now(),
|
|
5603
5603
|
};
|
|
5604
5604
|
_natsConn.publish('nexus.sponsors.announce', _natsCodec.encode(JSON.stringify(sponsorData)));
|
|
5605
|
+
// Store for periodic re-announcement (every capacity tick, ~60s)
|
|
5606
|
+
globalThis._activeSponsorData = sponsorData;
|
|
5605
5607
|
dlog('sponsor_announce: published to nexus.sponsors.announce');
|
|
5608
|
+
|
|
5609
|
+
// Persist to KV-backed sponsor directory (openagents.nexus worker)
|
|
5610
|
+
try {
|
|
5611
|
+
var kvResp = await fetch('https://openagents.nexus/api/v1/sponsors', {
|
|
5612
|
+
method: 'POST',
|
|
5613
|
+
headers: { 'Content-Type': 'application/json' },
|
|
5614
|
+
body: JSON.stringify(sponsorData),
|
|
5615
|
+
});
|
|
5616
|
+
var kvResult = await kvResp.json();
|
|
5617
|
+
dlog('sponsor_announce: KV persist ' + (kvResult.persisted ? 'OK' : 'skipped: ' + kvResult.reason));
|
|
5618
|
+
} catch (kvErr) {
|
|
5619
|
+
dlog('sponsor_announce: KV persist failed: ' + (kvErr.message || kvErr));
|
|
5620
|
+
}
|
|
5606
5621
|
// Also join the sponsors room and send as room message for persistence
|
|
5607
5622
|
if (!rooms.has('sponsors')) {
|
|
5608
5623
|
try {
|
|
@@ -5622,14 +5637,32 @@ async function handleCmd(cmd) {
|
|
|
5622
5637
|
break;
|
|
5623
5638
|
}
|
|
5624
5639
|
case 'sponsor_discover': {
|
|
5625
|
-
// Subscribe to nexus.sponsors.announce for a short window and collect announcements
|
|
5626
|
-
if (!_natsConn || !_natsCodec) {
|
|
5627
|
-
writeResp(id, { ok: false, output: 'NATS not connected', sponsors: [] });
|
|
5628
|
-
return;
|
|
5629
|
-
}
|
|
5630
5640
|
var foundSponsors = [];
|
|
5631
5641
|
var discoverTimeout = parseInt(args.timeout_ms || '5000', 10);
|
|
5632
5642
|
|
|
5643
|
+
// \u2500\u2500 Source 1: KV-backed persistent directory (MOST RELIABLE) \u2500\u2500
|
|
5644
|
+
// Query the openagents.nexus worker for persisted sponsor listings
|
|
5645
|
+
try {
|
|
5646
|
+
var kvResp = await fetch('https://openagents.nexus/api/v1/sponsors', { signal: AbortSignal.timeout(5000) });
|
|
5647
|
+
if (kvResp.ok) {
|
|
5648
|
+
var kvData = await kvResp.json();
|
|
5649
|
+
var kvSponsors = kvData.sponsors || [];
|
|
5650
|
+
for (var ki = 0; ki < kvSponsors.length; ki++) {
|
|
5651
|
+
var kvSp = kvSponsors[ki];
|
|
5652
|
+
if (kvSp.status === 'active') {
|
|
5653
|
+
kvSp.type = 'sponsor.announce'; // normalize
|
|
5654
|
+
foundSponsors.push(kvSp);
|
|
5655
|
+
}
|
|
5656
|
+
}
|
|
5657
|
+
dlog('sponsor_discover: KV directory returned ' + kvSponsors.length + ' sponsor(s)');
|
|
5658
|
+
}
|
|
5659
|
+
} catch (kvErr) {
|
|
5660
|
+
dlog('sponsor_discover: KV fetch failed: ' + (kvErr.message || kvErr));
|
|
5661
|
+
}
|
|
5662
|
+
|
|
5663
|
+
// \u2500\u2500 Source 2: NATS live announcements (if connected) \u2500\u2500
|
|
5664
|
+
if (_natsConn && _natsCodec) {
|
|
5665
|
+
|
|
5633
5666
|
// Also check sponsors room inbox for cached messages
|
|
5634
5667
|
var sponsorInbox = join(inboxDir, 'sponsors');
|
|
5635
5668
|
try {
|
|
@@ -5679,6 +5712,8 @@ async function handleCmd(cmd) {
|
|
|
5679
5712
|
dlog('sponsor_discover: NATS sub error: ' + (subErr.message || subErr));
|
|
5680
5713
|
}
|
|
5681
5714
|
|
|
5715
|
+
} // end if (_natsConn && _natsCodec)
|
|
5716
|
+
|
|
5682
5717
|
// Deduplicate by peerId
|
|
5683
5718
|
var seen = {};
|
|
5684
5719
|
var unique = [];
|
|
@@ -7892,6 +7927,18 @@ process.on('unhandledRejection', (reason) => {
|
|
|
7892
7927
|
};
|
|
7893
7928
|
_natsConn.publish('nexus.agents.capacity', _natsCodec.encode(JSON.stringify(announcement)));
|
|
7894
7929
|
|
|
7930
|
+
// Re-announce sponsorship periodically so consumers can discover us
|
|
7931
|
+
// (NATS pub/sub is ephemeral \u2014 consumers only see messages while subscribed)
|
|
7932
|
+
if (globalThis._activeSponsorData && _natsConn) {
|
|
7933
|
+
var _spData = globalThis._activeSponsorData;
|
|
7934
|
+
_spData.timestamp = Date.now(); // refresh timestamp
|
|
7935
|
+
_natsConn.publish('nexus.sponsors.announce', _natsCodec.encode(JSON.stringify(_spData)));
|
|
7936
|
+
// Also re-send to sponsors room
|
|
7937
|
+
if (rooms.has('sponsors')) {
|
|
7938
|
+
try { rooms.get('sponsors').send(JSON.stringify(_spData), { format: 'application/json' }); } catch {}
|
|
7939
|
+
}
|
|
7940
|
+
}
|
|
7941
|
+
|
|
7895
7942
|
// Also publish enriched discovery announcement so the dashboard sees
|
|
7896
7943
|
// IPFS/memory/identity/emotional state in sidebar cards (WO-VIS1 fields)
|
|
7897
7944
|
try {
|
package/package.json
CHANGED