@rookdaemon/agora 0.1.2 → 0.1.5
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/README.md +265 -1
- package/dist/cli.js +481 -36
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +44 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/message/envelope.d.ts +1 -1
- package/dist/message/envelope.d.ts.map +1 -1
- package/dist/message/envelope.js.map +1 -1
- package/dist/message/types/paper-discovery.d.ts +28 -0
- package/dist/message/types/paper-discovery.d.ts.map +1 -0
- package/dist/message/types/paper-discovery.js +2 -0
- package/dist/message/types/paper-discovery.js.map +1 -0
- package/dist/peer/client.d.ts +50 -0
- package/dist/peer/client.d.ts.map +1 -0
- package/dist/peer/client.js +138 -0
- package/dist/peer/client.js.map +1 -0
- package/dist/peer/manager.d.ts +65 -0
- package/dist/peer/manager.d.ts.map +1 -0
- package/dist/peer/manager.js +153 -0
- package/dist/peer/manager.js.map +1 -0
- package/dist/peer/server.d.ts +65 -0
- package/dist/peer/server.d.ts.map +1 -0
- package/dist/peer/server.js +154 -0
- package/dist/peer/server.js.map +1 -0
- package/dist/relay/client.d.ts +112 -0
- package/dist/relay/client.d.ts.map +1 -0
- package/dist/relay/client.js +281 -0
- package/dist/relay/client.js.map +1 -0
- package/dist/relay/server.d.ts +60 -0
- package/dist/relay/server.d.ts.map +1 -0
- package/dist/relay/server.js +266 -0
- package/dist/relay/server.js.map +1 -0
- package/dist/relay/types.d.ts +35 -0
- package/dist/relay/types.d.ts.map +1 -0
- package/dist/relay/types.js +2 -0
- package/dist/relay/types.js.map +1 -0
- package/dist/transport/peer-config.d.ts +3 -2
- package/dist/transport/peer-config.d.ts.map +1 -1
- package/dist/transport/peer-config.js.map +1 -1
- package/dist/transport/relay.d.ts +23 -0
- package/dist/transport/relay.d.ts.map +1 -0
- package/dist/transport/relay.js +85 -0
- package/dist/transport/relay.js.map +1 -0
- package/package.json +1 -38
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/relay/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-config.d.ts","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"peer-config.d.ts","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAGzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAc3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-config.js","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"peer-config.js","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgBzD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAsB;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,iDAAiD;IACjD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAmB;QAC7B,QAAQ;QACR,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type MessageType } from '../message/envelope.js';
|
|
2
|
+
import type { RelayClient } from '../relay/client.js';
|
|
3
|
+
export interface RelayTransportConfig {
|
|
4
|
+
/** This agent's keypair */
|
|
5
|
+
identity: {
|
|
6
|
+
publicKey: string;
|
|
7
|
+
privateKey: string;
|
|
8
|
+
};
|
|
9
|
+
/** Relay server WebSocket URL (e.g., wss://agora-relay.lbsa71.net) */
|
|
10
|
+
relayUrl: string;
|
|
11
|
+
/** Optional persistent relay client (if provided, will use it instead of connect-per-message) */
|
|
12
|
+
relayClient?: RelayClient;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Send a signed envelope to a peer via relay server.
|
|
16
|
+
* If a persistent relayClient is provided in the config, uses that.
|
|
17
|
+
* Otherwise, connects to relay, registers, sends message, and disconnects.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sendViaRelay(config: RelayTransportConfig, peerPublicKey: string, type: MessageType, payload: unknown, inReplyTo?: string): Promise<{
|
|
20
|
+
ok: boolean;
|
|
21
|
+
error?: string;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/transport/relay.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiG1C"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import WebSocket from 'ws';
|
|
2
|
+
import { createEnvelope } from '../message/envelope.js';
|
|
3
|
+
/**
|
|
4
|
+
* Send a signed envelope to a peer via relay server.
|
|
5
|
+
* If a persistent relayClient is provided in the config, uses that.
|
|
6
|
+
* Otherwise, connects to relay, registers, sends message, and disconnects.
|
|
7
|
+
*/
|
|
8
|
+
export async function sendViaRelay(config, peerPublicKey, type, payload, inReplyTo) {
|
|
9
|
+
// If a persistent relay client is available, use it
|
|
10
|
+
if (config.relayClient && config.relayClient.connected()) {
|
|
11
|
+
const envelope = createEnvelope(type, config.identity.publicKey, config.identity.privateKey, payload, inReplyTo);
|
|
12
|
+
return config.relayClient.send(peerPublicKey, envelope);
|
|
13
|
+
}
|
|
14
|
+
// Otherwise, fall back to connect-per-message
|
|
15
|
+
return new Promise((resolve) => {
|
|
16
|
+
const ws = new WebSocket(config.relayUrl);
|
|
17
|
+
let registered = false;
|
|
18
|
+
let messageSent = false;
|
|
19
|
+
let resolved = false;
|
|
20
|
+
// Helper to resolve once
|
|
21
|
+
const resolveOnce = (result) => {
|
|
22
|
+
if (!resolved) {
|
|
23
|
+
resolved = true;
|
|
24
|
+
clearTimeout(timeout);
|
|
25
|
+
resolve(result);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
// Set timeout for the entire operation
|
|
29
|
+
const timeout = setTimeout(() => {
|
|
30
|
+
if (!messageSent) {
|
|
31
|
+
ws.close();
|
|
32
|
+
resolveOnce({ ok: false, error: 'Relay connection timeout' });
|
|
33
|
+
}
|
|
34
|
+
}, 10000); // 10 second timeout
|
|
35
|
+
ws.on('open', () => {
|
|
36
|
+
// Send register message
|
|
37
|
+
const registerMsg = {
|
|
38
|
+
type: 'register',
|
|
39
|
+
publicKey: config.identity.publicKey,
|
|
40
|
+
};
|
|
41
|
+
ws.send(JSON.stringify(registerMsg));
|
|
42
|
+
});
|
|
43
|
+
ws.on('message', (data) => {
|
|
44
|
+
try {
|
|
45
|
+
const msg = JSON.parse(data.toString());
|
|
46
|
+
if (msg.type === 'registered' && !registered) {
|
|
47
|
+
registered = true;
|
|
48
|
+
// Create and sign the envelope
|
|
49
|
+
const envelope = createEnvelope(type, config.identity.publicKey, config.identity.privateKey, payload, inReplyTo);
|
|
50
|
+
// Send message via relay
|
|
51
|
+
const relayMsg = {
|
|
52
|
+
type: 'message',
|
|
53
|
+
to: peerPublicKey,
|
|
54
|
+
envelope,
|
|
55
|
+
};
|
|
56
|
+
ws.send(JSON.stringify(relayMsg));
|
|
57
|
+
messageSent = true;
|
|
58
|
+
// Close connection after sending
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
ws.close();
|
|
61
|
+
resolveOnce({ ok: true });
|
|
62
|
+
}, 100); // Small delay to ensure message is sent
|
|
63
|
+
}
|
|
64
|
+
else if (msg.type === 'error') {
|
|
65
|
+
ws.close();
|
|
66
|
+
resolveOnce({ ok: false, error: msg.message || 'Relay server error' });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
ws.close();
|
|
71
|
+
resolveOnce({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
ws.on('error', (err) => {
|
|
75
|
+
ws.close();
|
|
76
|
+
resolveOnce({ ok: false, error: err.message });
|
|
77
|
+
});
|
|
78
|
+
ws.on('close', () => {
|
|
79
|
+
if (!messageSent) {
|
|
80
|
+
resolveOnce({ ok: false, error: 'Connection closed before message sent' });
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/transport/relay.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,38 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@rookdaemon/agora",
|
|
3
|
-
"version": "0.1.2",
|
|
4
|
-
"description": "A coordination network for AI agents",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"bin": {
|
|
9
|
-
"agora": "./dist/cli.js"
|
|
10
|
-
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"build": "tsc",
|
|
13
|
-
"test": "node --import tsx --test test/*.test.ts",
|
|
14
|
-
"lint": "eslint src test --ext .ts",
|
|
15
|
-
"prepublishOnly": "npm run lint && npm run build && npm test"
|
|
16
|
-
},
|
|
17
|
-
"files": [
|
|
18
|
-
"dist",
|
|
19
|
-
"README.md",
|
|
20
|
-
"LICENSE"
|
|
21
|
-
],
|
|
22
|
-
"keywords": [
|
|
23
|
-
"agent",
|
|
24
|
-
"coordination",
|
|
25
|
-
"distributed",
|
|
26
|
-
"p2p"
|
|
27
|
-
],
|
|
28
|
-
"author": "",
|
|
29
|
-
"license": "MIT",
|
|
30
|
-
"devDependencies": {
|
|
31
|
-
"@types/node": "^25.1.0",
|
|
32
|
-
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
33
|
-
"@typescript-eslint/parser": "^8.54.0",
|
|
34
|
-
"eslint": "^9.39.2",
|
|
35
|
-
"tsx": "^4.21.0",
|
|
36
|
-
"typescript": "^5.9.3"
|
|
37
|
-
}
|
|
38
|
-
}
|
|
1
|
+
{"name":"@rookdaemon/agora","version":"0.1.5","description":"A coordination network for AI agents","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"agora":"./dist/cli.js"},"scripts":{"build":"tsc","test":"node --import tsx --test test/*.test.ts","lint":"eslint src test --ext .ts","prepublishOnly":"npm run lint && npm run build && npm test"},"files":["dist","README.md","LICENSE"],"keywords":["agent","coordination","distributed","p2p"],"author":"","license":"MIT","devDependencies":{"@types/node":"^25.1.0","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^8.54.0","@typescript-eslint/parser":"^8.54.0","eslint":"^9.39.2","tsx":"^4.21.0","typescript":"^5.9.3"},"dependencies":{"ws":"^8.19.0"}}
|