oceanbus 0.3.3 → 0.3.4
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/agent/identity.d.ts +2 -2
- package/dist/agent/identity.d.ts.map +1 -1
- package/dist/agent/identity.js +1 -1
- package/dist/agent/identity.js.map +1 -1
- package/dist/crypto/pow.d.ts +2 -2
- package/dist/crypto/pow.d.ts.map +1 -1
- package/dist/crypto/pow.js +17 -18
- package/dist/crypto/pow.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/identity.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '../client/http-client';
|
|
2
|
-
import type { RegistrationData, OpenIDData, AgentState } from '../types/agent';
|
|
2
|
+
import type { RegistrationData, OpenIDData, AgentState, ApiKeyData } from '../types/agent';
|
|
3
3
|
export declare class AgentIdentityManager {
|
|
4
4
|
private http;
|
|
5
5
|
private apiKey;
|
|
@@ -17,7 +17,7 @@ export declare class AgentIdentityManager {
|
|
|
17
17
|
ensureRegistered(): Promise<AgentState>;
|
|
18
18
|
toState(): AgentState;
|
|
19
19
|
fromState(state: AgentState): void;
|
|
20
|
-
trackExtraKey(key:
|
|
20
|
+
trackExtraKey(key: ApiKeyData): void;
|
|
21
21
|
private ensureAuth;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQ3F,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,WAAW,CAAuB;gBAE9B,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAM/D,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlD,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA4BrC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAO7B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5B,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAQ7C,OAAO,IAAI,UAAU;IAWrB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOlC,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAIpC,OAAO,CAAC,UAAU;CAKnB"}
|
package/dist/agent/identity.js
CHANGED
|
@@ -36,7 +36,7 @@ class AgentIdentityManager {
|
|
|
36
36
|
const challengeData = res.data?.challenge;
|
|
37
37
|
if (challengeData?.nonce) {
|
|
38
38
|
const { nonce, difficulty } = challengeData;
|
|
39
|
-
const actualDifficulty = difficulty ??
|
|
39
|
+
const actualDifficulty = difficulty ?? 20;
|
|
40
40
|
console.warn(`[oceanbus] Computing proof of work (difficulty=${actualDifficulty})...`);
|
|
41
41
|
const startedAt = Date.now();
|
|
42
42
|
const { solution } = (0, pow_1.computeHashcash)(nonce, actualDifficulty);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":";;;AAEA,6CAAiD;AACjD,uCAAgD;AAMhD,MAAa,oBAAoB;IACvB,IAAI,CAAa;IACjB,MAAM,CAAgB;IACtB,OAAO,CAAgB;IACvB,SAAS,
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":";;;AAEA,6CAAiD;AACjD,uCAAgD;AAMhD,MAAa,oBAAoB;IACvB,IAAI,CAAa;IACjB,MAAM,CAAgB;IACtB,OAAO,CAAgB;IACvB,SAAS,GAAiB,EAAE,CAAC;IAC7B,WAAW,GAAkB,IAAI,CAAC;IAE1C,YAAY,IAAgB,EAAE,MAAe,EAAE,OAAgB;QAC7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,OAAgB;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,0BAA0B;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,6DAA6D;QAC7D,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAE7F,8CAA8C;QAC9C,MAAM,aAAa,GAAI,GAAG,CAAC,IAA0B,EAAE,SAAS,CAAC;QACjE,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;YAC5C,MAAM,gBAAgB,GAAG,UAAU,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,kDAAkD,gBAAgB,MAAM,CAAC,CAAC;YACvF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,qBAAe,EAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1F,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,kBAAkB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAwB,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,sBAAa,CAAC,yDAAyD,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,sBAAa,CAAC,gCAAgC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI,CAAC,SAAS;SAC3B,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,GAAe;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAa,CAAC,uEAAuE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;CACF;AA3GD,oDA2GC"}
|
package/dist/crypto/pow.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Compute Hashcash-style Proof of Work.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* `difficulty` is in BITS — the number of leading zero bits required in the SHA-256 hash.
|
|
4
|
+
* A hex character covers 4 bits, so difficulty=20 translates to 5 leading hex zeros.
|
|
5
5
|
*/
|
|
6
6
|
export declare function computeHashcash(challenge: string, difficulty?: number): {
|
|
7
7
|
solution: string;
|
package/dist/crypto/pow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pow.d.ts","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pow.d.ts","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAA+B,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAmBlI;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAA+B,GAAG,OAAO,CAIxH"}
|
package/dist/crypto/pow.js
CHANGED
|
@@ -36,41 +36,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.computeHashcash = computeHashcash;
|
|
37
37
|
exports.verifyHashcash = verifyHashcash;
|
|
38
38
|
const crypto = __importStar(require("crypto"));
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
// Server sends difficulty in BITS (not hex characters).
|
|
40
|
+
// Convert to hex chars: each hex char = 4 bits, round up.
|
|
41
|
+
const bitsToHex = (bits) => Math.ceil(bits / 4);
|
|
42
|
+
const DEFAULT_BIT_DIFFICULTY = 20; // 5 hex zeros ≈ 1s on modern CPU
|
|
43
|
+
const MAX_BIT_DIFFICULTY = 80; // 20 hex zeros ≈ ~60s; sanity cap
|
|
41
44
|
/**
|
|
42
45
|
* Compute Hashcash-style Proof of Work.
|
|
43
|
-
*
|
|
44
|
-
*
|
|
46
|
+
* `difficulty` is in BITS — the number of leading zero bits required in the SHA-256 hash.
|
|
47
|
+
* A hex character covers 4 bits, so difficulty=20 translates to 5 leading hex zeros.
|
|
45
48
|
*/
|
|
46
|
-
function computeHashcash(challenge, difficulty =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
throw new Error(`POW difficulty ${difficulty} exceeds SHA-256 output length (64 hex chars)`);
|
|
49
|
+
function computeHashcash(challenge, difficulty = DEFAULT_BIT_DIFFICULTY) {
|
|
50
|
+
if (difficulty > 256) {
|
|
51
|
+
throw new Error(`POW difficulty ${difficulty} exceeds SHA-256 output length (256 bits)`);
|
|
50
52
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
throw new Error(`POW difficulty ${difficulty} is too high (max 20). Try again later.`);
|
|
53
|
+
if (difficulty > MAX_BIT_DIFFICULTY) {
|
|
54
|
+
throw new Error(`POW difficulty ${difficulty} bits is too high (max ${MAX_BIT_DIFFICULTY}). Try again later.`);
|
|
54
55
|
}
|
|
55
|
-
const
|
|
56
|
+
const hexChars = bitsToHex(difficulty);
|
|
57
|
+
const prefix = '0'.repeat(hexChars);
|
|
56
58
|
let solution = 0;
|
|
57
59
|
let hash = '';
|
|
58
|
-
while (
|
|
60
|
+
while (true) {
|
|
59
61
|
hash = crypto.createHash('sha256').update(challenge + solution).digest('hex');
|
|
60
62
|
if (hash.startsWith(prefix))
|
|
61
63
|
break;
|
|
62
64
|
solution++;
|
|
63
65
|
}
|
|
64
|
-
if (solution >= MAX_ITERATIONS) {
|
|
65
|
-
throw new Error(`POW failed to converge within ${MAX_ITERATIONS} iterations (difficulty=${difficulty})`);
|
|
66
|
-
}
|
|
67
66
|
return { solution: String(solution), hash };
|
|
68
67
|
}
|
|
69
68
|
/**
|
|
70
69
|
* Verify a Hashcash solution.
|
|
71
70
|
*/
|
|
72
|
-
function verifyHashcash(challenge, solution, difficulty =
|
|
73
|
-
const prefix = '0'.repeat(difficulty);
|
|
71
|
+
function verifyHashcash(challenge, solution, difficulty = DEFAULT_BIT_DIFFICULTY) {
|
|
72
|
+
const prefix = '0'.repeat(bitsToHex(difficulty));
|
|
74
73
|
const hash = crypto.createHash('sha256').update(challenge + solution).digest('hex');
|
|
75
74
|
return hash.startsWith(prefix);
|
|
76
75
|
}
|
package/dist/crypto/pow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pow.js","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pow.js","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,0CAmBC;AAKD,wCAIC;AA1CD,+CAAiC;AAEjC,wDAAwD;AACxD,0DAA0D;AAC1D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAExD,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAI,iCAAiC;AACvE,MAAM,kBAAkB,GAAG,EAAE,CAAC,CAAQ,kCAAkC;AAExE;;;;GAIG;AACH,SAAgB,eAAe,CAAC,SAAiB,EAAE,aAAqB,sBAAsB;IAC5F,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,2CAA2C,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,UAAU,GAAG,kBAAkB,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,0BAA0B,kBAAkB,qBAAqB,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM;QACnC,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,aAAqB,sBAAsB;IAC7G,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
|