oceanbus 0.4.6 → 0.4.8
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 +45 -103
- package/dist/agent/identity.d.ts +2 -0
- package/dist/agent/identity.d.ts.map +1 -1
- package/dist/agent/identity.js +10 -1
- package/dist/agent/identity.js.map +1 -1
- package/dist/cli/commands/add.d.ts +3 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +55 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/contacts.d.ts +3 -0
- package/dist/cli/commands/contacts.d.ts.map +1 -0
- package/dist/cli/commands/contacts.js +30 -0
- package/dist/cli/commands/contacts.js.map +1 -0
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +14 -3
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +6 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/contacts.d.ts +12 -0
- package/dist/cli/contacts.d.ts.map +1 -0
- package/dist/cli/contacts.js +64 -0
- package/dist/cli/contacts.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/client/http-client.d.ts +1 -0
- package/dist/client/http-client.d.ts.map +1 -1
- package/dist/client/http-client.js +9 -20
- package/dist/client/http-client.js.map +1 -1
- package/dist/client/retry.js +2 -2
- package/dist/client/retry.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -4
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/crypto/index.d.ts +1 -0
- package/dist/crypto/index.d.ts.map +1 -1
- package/dist/crypto/index.js +5 -1
- package/dist/crypto/index.js.map +1 -1
- package/dist/crypto/sha256.d.ts +15 -0
- package/dist/crypto/sha256.d.ts.map +1 -0
- package/dist/crypto/sha256.js +33 -0
- package/dist/crypto/sha256.js.map +1 -0
- package/dist/index.d.ts +40 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -10
- package/dist/index.js.map +1 -1
- package/dist/l1/base-client.d.ts +5 -0
- package/dist/l1/base-client.d.ts.map +1 -1
- package/dist/l1/base-client.js +18 -0
- package/dist/l1/base-client.js.map +1 -1
- package/dist/l1/reputation.d.ts +42 -2
- package/dist/l1/reputation.d.ts.map +1 -1
- package/dist/l1/reputation.js +78 -1
- package/dist/l1/reputation.js.map +1 -1
- package/dist/l1/yellow-pages.d.ts +13 -1
- package/dist/l1/yellow-pages.d.ts.map +1 -1
- package/dist/l1/yellow-pages.js +36 -5
- package/dist/l1/yellow-pages.js.map +1 -1
- package/dist/messaging/blocklist.d.ts.map +1 -1
- package/dist/messaging/blocklist.js +12 -3
- package/dist/messaging/blocklist.js.map +1 -1
- package/dist/messaging/idgen.js +2 -2
- package/dist/messaging/idgen.js.map +1 -1
- package/dist/roster/index.d.ts.map +1 -1
- package/dist/roster/index.js +3 -0
- package/dist/roster/index.js.map +1 -1
- package/dist/types/agent.d.ts +1 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/l1.d.ts +188 -0
- package/dist/types/l1.d.ts.map +1 -1
- package/dist/types/l1.js +2 -0
- package/dist/types/l1.js.map +1 -1
- package/dist/types/roster.d.ts +3 -0
- package/dist/types/roster.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;AAcA,wBAoBC;AAlCD,kDAA0B;AAC1B,2CAAwC;AACxC,kDAAsD;AACtD,8CAAkD;AAClD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,4CAAgD;AAChD,8CAAkD;AAClD,gDAAmD;AACnD,sDAAyD;AACzD,wCAA4C;AAC5C,kDAAsD;AAEtD,SAAgB,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI;IAClD,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAC;SACjB,UAAU,CAAC,UAAU,CAAC;SACtB,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CAAC,0BAAe,CAAC;SACxB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,kBAAW,CAAC;SACpB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,oBAAY,CAAC;SACrB,OAAO,CAAC,gBAAU,CAAC;SACnB,OAAO,CAAC,0BAAe,CAAC;SACxB,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,uBAAa,CAAC;SACtB,OAAO,CAAC,6BAAgB,CAAC;SACzB,aAAa,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAC5C,IAAI,EAAE;SACN,OAAO,EAAE;SACT,MAAM,EAAE;SACR,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -12,6 +12,7 @@ export declare class HttpClient {
|
|
|
12
12
|
retryPolicy: RetryPolicy;
|
|
13
13
|
constructor(baseUrl: string, config: HttpConfig);
|
|
14
14
|
private url;
|
|
15
|
+
private static readonly METHOD_MAP;
|
|
15
16
|
private req;
|
|
16
17
|
private checkDeprecated;
|
|
17
18
|
request<T = unknown>(method: HttpMethod, path: string, body?: unknown, opts?: RequestOptions): Promise<ApiResponse<T>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AActC,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,WAAW,EAAE,WAAW,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAM/C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AActC,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,WAAW,EAAE,WAAW,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAM/C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAMhC;IAEF,OAAO,CAAC,GAAG;IAsBX,OAAO,CAAC,eAAe;IAUjB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA+CpB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIlF,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAInG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIlG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAGzF"}
|
|
@@ -60,27 +60,16 @@ class HttpClient {
|
|
|
60
60
|
url(path) {
|
|
61
61
|
return `${this.baseUrl}${path}`;
|
|
62
62
|
}
|
|
63
|
+
static METHOD_MAP = {
|
|
64
|
+
get: (url) => request.get(url),
|
|
65
|
+
post: (url) => request.post(url),
|
|
66
|
+
put: (url) => request.put(url),
|
|
67
|
+
delete: (url) => request.del(url),
|
|
68
|
+
patch: (url) => request.patch(url),
|
|
69
|
+
};
|
|
63
70
|
req(method, path, opts = {}) {
|
|
64
|
-
|
|
65
|
-
let r;
|
|
66
|
-
switch (method) {
|
|
67
|
-
case 'get':
|
|
68
|
-
r = request.get(this.url(path));
|
|
69
|
-
break;
|
|
70
|
-
case 'post':
|
|
71
|
-
r = request.post(this.url(path));
|
|
72
|
-
break;
|
|
73
|
-
case 'put':
|
|
74
|
-
r = request.put(this.url(path));
|
|
75
|
-
break;
|
|
76
|
-
case 'delete':
|
|
77
|
-
r = request.delete(this.url(path));
|
|
78
|
-
break;
|
|
79
|
-
case 'patch':
|
|
80
|
-
r = request.patch(this.url(path));
|
|
81
|
-
break;
|
|
82
|
-
default: throw new Error(`unsupported HTTP method: ${method}`);
|
|
83
|
-
}
|
|
71
|
+
const builder = HttpClient.METHOD_MAP[method];
|
|
72
|
+
let r = builder(this.url(path));
|
|
84
73
|
r = r.timeout(this.timeout).ok(() => true);
|
|
85
74
|
// Send SDK version so server can detect outdated clients
|
|
86
75
|
r = r.set('X-OceanBus-SDK-Version', SDK_VERSION);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAGtC,qCAAkD;AAClD,mCAAsC;AAEtC,qDAAqD;AACrD,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IACxB,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAiB,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,6BAA6B;AAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAS9B,MAAa,UAAU;IACb,OAAO,CAAS;IAChB,OAAO,CAAS;IACxB,WAAW,CAAc;IAEzB,YAAY,OAAe,EAAE,MAAkB;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEO,GAAG,CAAC,IAAY;QACtB,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAEO,
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/client/retry.js
CHANGED
|
@@ -33,13 +33,13 @@ class RetryPolicy {
|
|
|
33
33
|
}
|
|
34
34
|
async execute(fn) {
|
|
35
35
|
let lastError;
|
|
36
|
-
for (let attempt = 0; attempt
|
|
36
|
+
for (let attempt = 0; attempt < this.config.maxAttempts; attempt++) {
|
|
37
37
|
try {
|
|
38
38
|
return await fn();
|
|
39
39
|
}
|
|
40
40
|
catch (err) {
|
|
41
41
|
lastError = err;
|
|
42
|
-
if (attempt === this.config.maxAttempts || !this.shouldRetry(err)) {
|
|
42
|
+
if (attempt === this.config.maxAttempts - 1 || !this.shouldRetry(err)) {
|
|
43
43
|
throw err;
|
|
44
44
|
}
|
|
45
45
|
const delay = this.nextDelay(attempt);
|
package/dist/client/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/client/retry.ts"],"names":[],"mappings":";;;AAEA,8DAA8D;AAC9D,yEAAyE;AACzE,MAAa,WAAW;IACd,MAAM,CAAsB;IAEpC,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAuF;QACjG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,0BAA0B;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QAE/C,+EAA+E;QAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;QAC1E,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzD,mBAAmB;QACnB,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1F,qEAAqE;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/D,MAAM,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,mBAAmB;QACnB,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/client/retry.ts"],"names":[],"mappings":";;;AAEA,8DAA8D;AAC9D,yEAAyE;AACzE,MAAa,WAAW;IACd,MAAM,CAAsB;IAEpC,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAuF;QACjG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,0BAA0B;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QAE/C,+EAA+E;QAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;QAC1E,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzD,mBAAmB;QACnB,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1F,qEAAqE;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/D,MAAM,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,mBAAmB;QACnB,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAY,CAAC;gBACzB,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAkC,CAAC,EAAE,CAAC;oBACrG,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;CACF;AAlDD,kCAkDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,QAAQ,EAAE,cAqCtB,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -22,10 +22,8 @@ exports.DEFAULTS = {
|
|
|
22
22
|
cursorPersistence: true,
|
|
23
23
|
},
|
|
24
24
|
l1: {
|
|
25
|
-
ypOpenids: [
|
|
26
|
-
|
|
27
|
-
],
|
|
28
|
-
repOpenid: 'msGHHPgQlQMNNjBmiuvDpwzFrRqPrjm7NjIRFfNILbPA31LfKvUFkYqUHGklEmUjtP0o-_kkPmSB3hs-',
|
|
25
|
+
ypOpenids: [],
|
|
26
|
+
repOpenid: '',
|
|
29
27
|
trustedCAs: [],
|
|
30
28
|
requestTimeoutMs: 30000,
|
|
31
29
|
requestPollIntervalMs: 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAmB;IACtC,OAAO,EAAE,mCAAmC;IAE5C,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS,EAAE,sDAAsD;KAC5E;IAED,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,GAAG;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;SACd;KACF;IAED,OAAO,EAAE;QACP,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,GAAG;QACpB,iBAAiB,EAAE,IAAI;KACxB;IAED,EAAE,EAAE;QACF,SAAS,EAAE
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAmB;IACtC,OAAO,EAAE,mCAAmC;IAE5C,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS,EAAE,sDAAsD;KAC5E;IAED,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,GAAG;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;SACd;KACF;IAED,OAAO,EAAE;QACP,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,GAAG;QACpB,iBAAiB,EAAE,IAAI;KACxB;IAED,EAAE,EAAE;QACF,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,gBAAgB,EAAE,KAAK;QACvB,qBAAqB,EAAE,IAAI;QAC3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,uCAAuC;KAC5E;IAED,WAAW,EAAE;QACX,OAAO,EAAE,KAAK;KACf;CAEF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA2DrE,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,cAAc,CAcxE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
|
package/dist/config/loader.js
CHANGED
|
@@ -55,7 +55,10 @@ function envConfig() {
|
|
|
55
55
|
if (pollInterval !== undefined)
|
|
56
56
|
result.mailbox = { pollIntervalMs: pollInterval };
|
|
57
57
|
if (process.env.OCEANBUS_YP_OPENIDS) {
|
|
58
|
-
result.l1 = { ypOpenids: process.env.OCEANBUS_YP_OPENIDS.split(',') };
|
|
58
|
+
result.l1 = { ypOpenids: process.env.OCEANBUS_YP_OPENIDS.split(',').map(s => s.trim()).filter(Boolean) };
|
|
59
|
+
}
|
|
60
|
+
if (process.env.OCEANBUS_REP_OPENID) {
|
|
61
|
+
result.l1 = { ...result.l1, repOpenid: process.env.OCEANBUS_REP_OPENID.trim() };
|
|
59
62
|
}
|
|
60
63
|
if (process.env.OCEANBUS_API_KEY) {
|
|
61
64
|
result.identity = { agent_id: process.env.OCEANBUS_AGENT_ID || '', api_key: process.env.OCEANBUS_API_KEY };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { generateKeypair, sign, verify, bufferToHex, hexToBuffer, keypairToHex, hexToKeypair, keypairToBase64url, base64urlToKeypair, } from './ed25519';
|
|
2
2
|
export { canonicalize } from './canonical-json';
|
|
3
3
|
export { computeHashcash, verifyHashcash } from './pow';
|
|
4
|
+
export { computeCardHash, verifyCardHash, isValidCardHash } from './sha256';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,IAAI,EACJ,MAAM,EACN,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,IAAI,EACJ,MAAM,EACN,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/crypto/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.verifyHashcash = exports.computeHashcash = exports.canonicalize = exports.base64urlToKeypair = exports.keypairToBase64url = exports.hexToKeypair = exports.keypairToHex = exports.hexToBuffer = exports.bufferToHex = exports.verify = exports.sign = exports.generateKeypair = void 0;
|
|
3
|
+
exports.isValidCardHash = exports.verifyCardHash = exports.computeCardHash = exports.verifyHashcash = exports.computeHashcash = exports.canonicalize = exports.base64urlToKeypair = exports.keypairToBase64url = exports.hexToKeypair = exports.keypairToHex = exports.hexToBuffer = exports.bufferToHex = exports.verify = exports.sign = exports.generateKeypair = void 0;
|
|
4
4
|
var ed25519_1 = require("./ed25519");
|
|
5
5
|
Object.defineProperty(exports, "generateKeypair", { enumerable: true, get: function () { return ed25519_1.generateKeypair; } });
|
|
6
6
|
Object.defineProperty(exports, "sign", { enumerable: true, get: function () { return ed25519_1.sign; } });
|
|
@@ -16,4 +16,8 @@ Object.defineProperty(exports, "canonicalize", { enumerable: true, get: function
|
|
|
16
16
|
var pow_1 = require("./pow");
|
|
17
17
|
Object.defineProperty(exports, "computeHashcash", { enumerable: true, get: function () { return pow_1.computeHashcash; } });
|
|
18
18
|
Object.defineProperty(exports, "verifyHashcash", { enumerable: true, get: function () { return pow_1.verifyHashcash; } });
|
|
19
|
+
var sha256_1 = require("./sha256");
|
|
20
|
+
Object.defineProperty(exports, "computeCardHash", { enumerable: true, get: function () { return sha256_1.computeCardHash; } });
|
|
21
|
+
Object.defineProperty(exports, "verifyCardHash", { enumerable: true, get: function () { return sha256_1.verifyCardHash; } });
|
|
22
|
+
Object.defineProperty(exports, "isValidCardHash", { enumerable: true, get: function () { return sha256_1.isValidCardHash; } });
|
|
19
23
|
//# sourceMappingURL=index.js.map
|
package/dist/crypto/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":";;;AAAA,qCAUmB;AATjB,0GAAA,eAAe,OAAA;AACf,+FAAA,IAAI,OAAA;AACJ,iGAAA,MAAM,OAAA;AACN,sGAAA,WAAW,OAAA;AACX,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,6GAAA,kBAAkB,OAAA;AAGpB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,6BAAwD;AAA/C,sGAAA,eAAe,OAAA;AAAE,qGAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":";;;AAAA,qCAUmB;AATjB,0GAAA,eAAe,OAAA;AACf,+FAAA,IAAI,OAAA;AACJ,iGAAA,MAAM,OAAA;AACN,sGAAA,WAAW,OAAA;AACX,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,6GAAA,kBAAkB,OAAA;AAGpB,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,6BAAwD;AAA/C,sGAAA,eAAe,OAAA;AAAE,qGAAA,cAAc,OAAA;AACxC,mCAA4E;AAAnE,yGAAA,eAAe,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,yGAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the SHA-256 based card hash for an AgentCard.
|
|
3
|
+
* Uses canonical JSON serialization for deterministic output.
|
|
4
|
+
* Format: "sha256:{64 lowercase hex chars}"
|
|
5
|
+
*/
|
|
6
|
+
export declare function computeCardHash(agentCard: Record<string, unknown>): string;
|
|
7
|
+
/**
|
|
8
|
+
* Verify that an AgentCard matches an expected card hash.
|
|
9
|
+
*/
|
|
10
|
+
export declare function verifyCardHash(agentCard: Record<string, unknown>, expectedHash: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Validate card_hash format: must be "sha256:{64 lowercase hex chars}".
|
|
13
|
+
*/
|
|
14
|
+
export declare function isValidCardHash(hash: unknown): hash is string;
|
|
15
|
+
//# sourceMappingURL=sha256.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sha256.d.ts","sourceRoot":"","sources":["../../src/crypto/sha256.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAO1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,YAAY,EAAE,MAAM,GACnB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAE7D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeCardHash = computeCardHash;
|
|
4
|
+
exports.verifyCardHash = verifyCardHash;
|
|
5
|
+
exports.isValidCardHash = isValidCardHash;
|
|
6
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
7
|
+
const canonical_json_1 = require("./canonical-json");
|
|
8
|
+
/**
|
|
9
|
+
* Compute the SHA-256 based card hash for an AgentCard.
|
|
10
|
+
* Uses canonical JSON serialization for deterministic output.
|
|
11
|
+
* Format: "sha256:{64 lowercase hex chars}"
|
|
12
|
+
*/
|
|
13
|
+
function computeCardHash(agentCard) {
|
|
14
|
+
const canonical = (0, canonical_json_1.canonicalize)(agentCard);
|
|
15
|
+
const hashBytes = (0, sha256_1.sha256)(canonical);
|
|
16
|
+
const hex = Array.from(hashBytes)
|
|
17
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
18
|
+
.join('');
|
|
19
|
+
return `sha256:${hex}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Verify that an AgentCard matches an expected card hash.
|
|
23
|
+
*/
|
|
24
|
+
function verifyCardHash(agentCard, expectedHash) {
|
|
25
|
+
return computeCardHash(agentCard) === expectedHash;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate card_hash format: must be "sha256:{64 lowercase hex chars}".
|
|
29
|
+
*/
|
|
30
|
+
function isValidCardHash(hash) {
|
|
31
|
+
return typeof hash === 'string' && /^sha256:[a-f0-9]{64}$/.test(hash);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=sha256.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sha256.js","sourceRoot":"","sources":["../../src/crypto/sha256.ts"],"names":[],"mappings":";;AAQA,0CAOC;AAKD,wCAKC;AAKD,0CAEC;AAhCD,iDAA8C;AAC9C,qDAAgD;AAEhD;;;;GAIG;AACH,SAAgB,eAAe,CAAC,SAAkC;IAChE,MAAM,SAAS,GAAG,IAAA,6BAAY,EAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,SAAkC,EAClC,YAAoB;IAEpB,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAa;IAC3C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { Message } from './types/messaging';
|
|
|
11
11
|
import type { ListenOptions, SendOptions } from './types/messaging';
|
|
12
12
|
import { RosterService } from './roster/index';
|
|
13
13
|
import type { Ed25519KeyPair, Certificate, CertVerifyResult, TrustAnchor } from './types/crypto';
|
|
14
|
+
import type { AgentCard, AgentCardHandler } from './types/l1';
|
|
14
15
|
import { YellowPagesClient } from './l1/yellow-pages';
|
|
15
16
|
import type { PayloadSigner } from './l1/yellow-pages';
|
|
16
17
|
import { CAClient } from './l1/ca';
|
|
@@ -28,6 +29,7 @@ export declare class OceanBus {
|
|
|
28
29
|
private keyStore;
|
|
29
30
|
private cursor;
|
|
30
31
|
private l1Dispatcher;
|
|
32
|
+
private agentCardHandler;
|
|
31
33
|
crypto: {
|
|
32
34
|
generateKeypair: () => Promise<Ed25519KeyPair>;
|
|
33
35
|
sign: (keypair: Ed25519KeyPair, payload: Record<string, unknown>) => Promise<string>;
|
|
@@ -71,6 +73,21 @@ export declare class OceanBus {
|
|
|
71
73
|
api_key: string;
|
|
72
74
|
}>;
|
|
73
75
|
revokeApiKey(keyId: string): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Register a handler that auto-responds to AgentCard requests.
|
|
78
|
+
* Other agents can then call ob.getAgentCard(yourOpenid) to retrieve your AgentCard.
|
|
79
|
+
*/
|
|
80
|
+
serveAgentCard(handler: AgentCardHandler): void;
|
|
81
|
+
/**
|
|
82
|
+
* Request another agent's full AgentCard via direct OceanBus message.
|
|
83
|
+
* The target agent must have registered a handler via serveAgentCard().
|
|
84
|
+
*/
|
|
85
|
+
getAgentCard(targetOpenid: string): Promise<AgentCard>;
|
|
86
|
+
/**
|
|
87
|
+
* Local-only AgentCard verification — pure SHA-256 comparison.
|
|
88
|
+
* No network call.
|
|
89
|
+
*/
|
|
90
|
+
verifyCardLocal(card: AgentCard, expectedHash: string): boolean;
|
|
74
91
|
/**
|
|
75
92
|
* One-step publish to Yellow Pages.
|
|
76
93
|
* Handles key generation, signing, identity, and heartbeat internally.
|
|
@@ -78,12 +95,20 @@ export declare class OceanBus {
|
|
|
78
95
|
* @example
|
|
79
96
|
* await ob.publish({
|
|
80
97
|
* tags: ['insurance', 'health', 'Beijing'],
|
|
81
|
-
* description: '小王 — 10年健康险专家,免费咨询'
|
|
98
|
+
* description: '小王 — 10年健康险专家,免费咨询',
|
|
99
|
+
* summary: '10年健康险专家,免费咨询',
|
|
100
|
+
* card: myAgentCard, // SDK auto-computes card_hash
|
|
101
|
+
* a2a_compatible: true,
|
|
82
102
|
* });
|
|
83
103
|
*/
|
|
84
104
|
publish(options: {
|
|
85
105
|
tags: string[];
|
|
86
106
|
description: string;
|
|
107
|
+
summary?: string;
|
|
108
|
+
card?: AgentCard;
|
|
109
|
+
card_hash?: string;
|
|
110
|
+
a2a_compatible?: boolean;
|
|
111
|
+
a2a_endpoint?: string;
|
|
87
112
|
autoHeartbeat?: boolean;
|
|
88
113
|
}): Promise<{
|
|
89
114
|
code: number;
|
|
@@ -97,6 +122,19 @@ export declare class OceanBus {
|
|
|
97
122
|
unpublish(): Promise<{
|
|
98
123
|
code: number;
|
|
99
124
|
}>;
|
|
125
|
+
/**
|
|
126
|
+
* Record a verifiable fact about an agent (trade, report, or service).
|
|
127
|
+
* Requires setIdentity on the reputation client.
|
|
128
|
+
*/
|
|
129
|
+
recordReputationFact(params: {
|
|
130
|
+
subjectOpenid: string;
|
|
131
|
+
factType: 'trade' | 'report' | 'service';
|
|
132
|
+
factSubtype: string;
|
|
133
|
+
factData?: Record<string, unknown>;
|
|
134
|
+
proof?: Record<string, unknown>;
|
|
135
|
+
}): Promise<{
|
|
136
|
+
code: number;
|
|
137
|
+
}>;
|
|
100
138
|
send(toOpenid: string, content: string, opts?: SendOptions): Promise<void>;
|
|
101
139
|
sendJson(toOpenid: string, data: object, opts?: SendOptions): Promise<void>;
|
|
102
140
|
sync(sinceSeq?: number, limit?: number): Promise<Message[]>;
|
|
@@ -116,4 +154,5 @@ export * from './types';
|
|
|
116
154
|
export * from './client/errors';
|
|
117
155
|
export { RosterService } from './roster/index';
|
|
118
156
|
export { RosterStore } from './roster/store';
|
|
157
|
+
export { computeCardHash, verifyCardHash, isValidCardHash } from './crypto/sha256';
|
|
119
158
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.RosterStore = exports.RosterService = exports.OceanBus = void 0;
|
|
17
|
+
exports.isValidCardHash = exports.verifyCardHash = exports.computeCardHash = exports.RosterStore = exports.RosterService = exports.OceanBus = void 0;
|
|
18
18
|
exports.createOceanBus = createOceanBus;
|
|
19
19
|
const http_client_1 = require("./client/http-client");
|
|
20
20
|
const store_1 = require("./agent/store");
|
|
@@ -31,6 +31,7 @@ const index_1 = require("./roster/index");
|
|
|
31
31
|
// Crypto
|
|
32
32
|
const ed25519_1 = require("./crypto/ed25519");
|
|
33
33
|
const canonical_json_1 = require("./crypto/canonical-json");
|
|
34
|
+
const sha256_1 = require("./crypto/sha256");
|
|
34
35
|
// L1
|
|
35
36
|
const dispatcher_1 = require("./l1/dispatcher");
|
|
36
37
|
const yellow_pages_1 = require("./l1/yellow-pages");
|
|
@@ -51,6 +52,7 @@ class OceanBus {
|
|
|
51
52
|
keyStore;
|
|
52
53
|
cursor;
|
|
53
54
|
l1Dispatcher = null;
|
|
55
|
+
agentCardHandler = null;
|
|
54
56
|
// Crypto
|
|
55
57
|
crypto;
|
|
56
58
|
// L1
|
|
@@ -128,31 +130,35 @@ class OceanBus {
|
|
|
128
130
|
await ob.cursor.load();
|
|
129
131
|
// Set up shared L1 dispatcher — one polling engine for all L1 requests
|
|
130
132
|
ob.l1Dispatcher = new dispatcher_1.L1Dispatcher(ob.mailbox, config.l1.requestTimeoutMs, config.l1.requestPollIntervalMs);
|
|
131
|
-
//
|
|
133
|
+
// L1 clients — initialized lazily when OpenIDs are configured
|
|
132
134
|
const ypOpenid = config.l1.ypOpenids[0];
|
|
133
|
-
if (!ypOpenid) {
|
|
134
|
-
throw new errors_1.OceanBusError('Yellow Pages OpenID is not configured. Set config.l1.ypOpenids to the YP agent OpenID.');
|
|
135
|
-
}
|
|
136
|
-
// Initialize L1 clients
|
|
137
135
|
const transport = {
|
|
138
136
|
send: (to, content, cid) => ob.messaging.send(to, content, cid),
|
|
139
137
|
sendJson: (to, data, cid) => ob.messaging.sendJson(to, data, cid),
|
|
140
138
|
};
|
|
141
139
|
ob.l1 = {
|
|
142
|
-
yellowPages: new yellow_pages_1.YellowPagesClient(transport, ypOpenid, ob.l1Dispatcher, config.l1.requestTimeoutMs, config.l1.heartbeatIntervalMs),
|
|
140
|
+
yellowPages: new yellow_pages_1.YellowPagesClient(transport, ypOpenid || '', ob.l1Dispatcher, config.l1.requestTimeoutMs, config.l1.heartbeatIntervalMs),
|
|
143
141
|
ca: new ca_1.CAClient(transport, config.l1.trustedCAs[0]?.ca_openid || '', config.l1.trustedCAs, ob.l1Dispatcher, config.l1.requestTimeoutMs),
|
|
144
|
-
reputation: new reputation_1.ReputationClient(transport, config.l1.repOpenid, ob.l1Dispatcher, config.l1.requestTimeoutMs),
|
|
142
|
+
reputation: new reputation_1.ReputationClient(transport, config.l1.repOpenid || '', ob.l1Dispatcher, config.l1.requestTimeoutMs),
|
|
145
143
|
};
|
|
146
144
|
return ob;
|
|
147
145
|
}
|
|
148
146
|
// Identity convenience methods
|
|
149
147
|
async register() {
|
|
150
148
|
const data = await this.identity.register();
|
|
149
|
+
// Fetch and persist OpenID immediately
|
|
150
|
+
try {
|
|
151
|
+
await this.identity.whoami();
|
|
152
|
+
}
|
|
153
|
+
catch { }
|
|
151
154
|
await this.keyStore.save(this.identity.toState());
|
|
152
155
|
return data;
|
|
153
156
|
}
|
|
154
157
|
async whoami() {
|
|
155
158
|
const data = await this.identity.whoami();
|
|
159
|
+
// Persist newly fetched OpenID
|
|
160
|
+
if (data.my_openid)
|
|
161
|
+
await this.keyStore.save(this.identity.toState());
|
|
156
162
|
return { agent_id: this.identity.getAgentId(), openid: data.my_openid };
|
|
157
163
|
}
|
|
158
164
|
async getOpenId() {
|
|
@@ -172,6 +178,47 @@ class OceanBus {
|
|
|
172
178
|
async revokeApiKey(keyId) {
|
|
173
179
|
return this.keys.revokeApiKey(keyId);
|
|
174
180
|
}
|
|
181
|
+
// AgentCard
|
|
182
|
+
/**
|
|
183
|
+
* Register a handler that auto-responds to AgentCard requests.
|
|
184
|
+
* Other agents can then call ob.getAgentCard(yourOpenid) to retrieve your AgentCard.
|
|
185
|
+
*/
|
|
186
|
+
serveAgentCard(handler) {
|
|
187
|
+
this.agentCardHandler = handler;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Request another agent's full AgentCard via direct OceanBus message.
|
|
191
|
+
* The target agent must have registered a handler via serveAgentCard().
|
|
192
|
+
*/
|
|
193
|
+
async getAgentCard(targetOpenid) {
|
|
194
|
+
if (!this.l1Dispatcher)
|
|
195
|
+
throw new errors_1.OceanBusError('Not ready — start listening first');
|
|
196
|
+
const requestId = `ac_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
197
|
+
const responsePromise = this.l1Dispatcher.register(requestId, 30000);
|
|
198
|
+
try {
|
|
199
|
+
await this.messaging.sendJson(targetOpenid, {
|
|
200
|
+
action: 'get_agent_card',
|
|
201
|
+
request_id: requestId,
|
|
202
|
+
requester_openid: await this.getOpenId(),
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
catch (e) {
|
|
206
|
+
this.l1Dispatcher.cancel(requestId);
|
|
207
|
+
throw e;
|
|
208
|
+
}
|
|
209
|
+
const response = await responsePromise;
|
|
210
|
+
if (response.code !== 0) {
|
|
211
|
+
throw new errors_1.OceanBusError(`AgentCard request failed: ${response.msg || 'unknown error'}`);
|
|
212
|
+
}
|
|
213
|
+
return response.data.card;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Local-only AgentCard verification — pure SHA-256 comparison.
|
|
217
|
+
* No network call.
|
|
218
|
+
*/
|
|
219
|
+
verifyCardLocal(card, expectedHash) {
|
|
220
|
+
return (0, sha256_1.verifyCardHash)(card, expectedHash);
|
|
221
|
+
}
|
|
175
222
|
// Yellow Pages convenience methods
|
|
176
223
|
/**
|
|
177
224
|
* One-step publish to Yellow Pages.
|
|
@@ -180,14 +227,30 @@ class OceanBus {
|
|
|
180
227
|
* @example
|
|
181
228
|
* await ob.publish({
|
|
182
229
|
* tags: ['insurance', 'health', 'Beijing'],
|
|
183
|
-
* description: '小王 — 10年健康险专家,免费咨询'
|
|
230
|
+
* description: '小王 — 10年健康险专家,免费咨询',
|
|
231
|
+
* summary: '10年健康险专家,免费咨询',
|
|
232
|
+
* card: myAgentCard, // SDK auto-computes card_hash
|
|
233
|
+
* a2a_compatible: true,
|
|
184
234
|
* });
|
|
185
235
|
*/
|
|
186
236
|
async publish(options) {
|
|
187
237
|
const key = await this.createServiceKey();
|
|
188
238
|
const openid = await this.getOpenId();
|
|
189
239
|
this.l1.yellowPages.setIdentity(openid, key.signer, key.publicKey);
|
|
190
|
-
|
|
240
|
+
// Auto-compute card_hash from card if provided
|
|
241
|
+
let cardHash = options.card_hash;
|
|
242
|
+
if (!cardHash && options.card) {
|
|
243
|
+
cardHash = (0, sha256_1.computeCardHash)(options.card);
|
|
244
|
+
}
|
|
245
|
+
return this.l1.yellowPages.publish({
|
|
246
|
+
tags: options.tags,
|
|
247
|
+
description: options.description,
|
|
248
|
+
summary: options.summary,
|
|
249
|
+
card_hash: cardHash,
|
|
250
|
+
a2a_compatible: options.a2a_compatible,
|
|
251
|
+
a2a_endpoint: options.a2a_endpoint,
|
|
252
|
+
autoHeartbeat: options.autoHeartbeat,
|
|
253
|
+
});
|
|
191
254
|
}
|
|
192
255
|
/**
|
|
193
256
|
* One-step unpublish from Yellow Pages.
|
|
@@ -196,6 +259,14 @@ class OceanBus {
|
|
|
196
259
|
async unpublish() {
|
|
197
260
|
return this.l1.yellowPages.unpublish();
|
|
198
261
|
}
|
|
262
|
+
// Reputation convenience methods
|
|
263
|
+
/**
|
|
264
|
+
* Record a verifiable fact about an agent (trade, report, or service).
|
|
265
|
+
* Requires setIdentity on the reputation client.
|
|
266
|
+
*/
|
|
267
|
+
async recordReputationFact(params) {
|
|
268
|
+
return this.l1.reputation.recordFact(params);
|
|
269
|
+
}
|
|
199
270
|
// Messaging convenience methods
|
|
200
271
|
async send(toOpenid, content, opts) {
|
|
201
272
|
return this.messaging.send(toOpenid, content, opts?.clientMsgId);
|
|
@@ -213,6 +284,32 @@ class OceanBus {
|
|
|
213
284
|
// Let L1Dispatcher share the unified poller instead of spinning up its own
|
|
214
285
|
this.l1Dispatcher?.setUseExternalPoller(true);
|
|
215
286
|
this.poller = new poller_1.AutoPollEngine(this.mailbox, async (msg) => {
|
|
287
|
+
// Route 0: AgentCard requests — auto-respond if handler registered
|
|
288
|
+
if (this.agentCardHandler && msg.content) {
|
|
289
|
+
try {
|
|
290
|
+
const parsed = JSON.parse(msg.content);
|
|
291
|
+
if (parsed.action === 'get_agent_card' && parsed.request_id) {
|
|
292
|
+
try {
|
|
293
|
+
const card = await this.agentCardHandler(parsed.requester_openid || msg.from_openid);
|
|
294
|
+
const cardHash = (0, sha256_1.computeCardHash)(card);
|
|
295
|
+
await this.messaging.sendJson(msg.from_openid, {
|
|
296
|
+
request_id: parsed.request_id,
|
|
297
|
+
code: 0,
|
|
298
|
+
data: { card, card_hash: cardHash },
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
catch (e) {
|
|
302
|
+
await this.messaging.sendJson(msg.from_openid, {
|
|
303
|
+
request_id: parsed.request_id,
|
|
304
|
+
code: -1,
|
|
305
|
+
msg: `AgentCard handler error: ${e.message}`,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
return; // consumed
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch { /* not JSON or not a card request — fall through */ }
|
|
312
|
+
}
|
|
216
313
|
// Route 1: L1 request/response matching (dispatcher consumes the message)
|
|
217
314
|
if (this.l1Dispatcher && this.l1Dispatcher.tryDispatch(msg))
|
|
218
315
|
return;
|
|
@@ -295,4 +392,9 @@ var index_2 = require("./roster/index");
|
|
|
295
392
|
Object.defineProperty(exports, "RosterService", { enumerable: true, get: function () { return index_2.RosterService; } });
|
|
296
393
|
var store_2 = require("./roster/store");
|
|
297
394
|
Object.defineProperty(exports, "RosterStore", { enumerable: true, get: function () { return store_2.RosterStore; } });
|
|
395
|
+
// Re-export AgentCard utilities
|
|
396
|
+
var sha256_2 = require("./crypto/sha256");
|
|
397
|
+
Object.defineProperty(exports, "computeCardHash", { enumerable: true, get: function () { return sha256_2.computeCardHash; } });
|
|
398
|
+
Object.defineProperty(exports, "verifyCardHash", { enumerable: true, get: function () { return sha256_2.verifyCardHash; } });
|
|
399
|
+
Object.defineProperty(exports, "isValidCardHash", { enumerable: true, get: function () { return sha256_2.isValidCardHash; } });
|
|
298
400
|
//# sourceMappingURL=index.js.map
|