@agentunion/fastaun 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/CHANGELOG.md +38 -0
- package/_packed_docs/CHANGELOG.md +38 -0
- package/_packed_docs/INDEX.md +46 -22
- package/_packed_docs/KITE_DOCS_GUIDE.md +16 -12
- package/_packed_docs/design/AUNClient/346/213/206/345/210/206/351/207/215/346/236/204/346/211/247/350/241/214/346/226/271/346/241/210.md +859 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +5 -3
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +5 -5
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +4 -2
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +1 -1
- package/dist/agent-md.d.ts +1 -1
- package/dist/agent-md.js +12 -5
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +6 -1
- package/dist/aid-store.js +93 -14
- package/dist/aid-store.js.map +1 -1
- package/dist/aid.d.ts +1 -0
- package/dist/aid.js +8 -3
- package/dist/aid.js.map +1 -1
- package/dist/cert-utils.d.ts +5 -1
- package/dist/cert-utils.js +47 -9
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +50 -0
- package/dist/client/delivery.js +1147 -0
- package/dist/client/delivery.js.map +1 -0
- package/dist/client/group-state.d.ts +31 -0
- package/dist/client/group-state.js +853 -0
- package/dist/client/group-state.js.map +1 -0
- package/dist/client/identity.d.ts +7 -0
- package/dist/client/identity.js +35 -0
- package/dist/client/identity.js.map +1 -0
- package/dist/client/lifecycle.d.ts +9 -0
- package/dist/client/lifecycle.js +226 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/client/peers.d.ts +10 -0
- package/dist/client/peers.js +42 -0
- package/dist/client/peers.js.map +1 -0
- package/dist/client/rpc-pipeline.d.ts +36 -0
- package/dist/client/rpc-pipeline.js +461 -0
- package/dist/client/rpc-pipeline.js.map +1 -0
- package/dist/client/runtime.d.ts +5 -0
- package/dist/client/runtime.js +7 -0
- package/dist/client/runtime.js.map +1 -0
- package/dist/client/v2-e2ee.d.ts +109 -0
- package/dist/client/v2-e2ee.js +1640 -0
- package/dist/client/v2-e2ee.js.map +1 -0
- package/dist/client.d.ts +21 -57
- package/dist/client.js +303 -3859
- package/dist/client.js.map +1 -1
- package/dist/config.js +9 -8
- package/dist/config.js.map +1 -1
- package/dist/discovery.js +56 -6
- package/dist/discovery.js.map +1 -1
- package/dist/keystore/aid-db.d.ts +2 -0
- package/dist/keystore/aid-db.js +12 -2
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/tools/cross-sdk-agent.js +2 -2
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/dist/aid.d.ts
CHANGED
package/dist/aid.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { X509Certificate } from 'node:crypto';
|
|
6
6
|
import * as codes from './error-codes.js';
|
|
7
|
-
import { buildAgentMdSignatureBlock, certCommonName, certFingerprint as _certFingerprint, extractAgentMdAid, normalizeAgentMdPayload, parseAgentMdTailSignature, publicKeyDerB64, signBytes, verifySignatureWithCert, } from './cert-utils.js';
|
|
7
|
+
import { buildAgentMdSignatureBlock, certMatchesFingerprint, certCommonName, certFingerprint as _certFingerprint, extractAgentMdAid, normalizeAgentMdPayload, parseAgentMdTailSignature, publicKeyFingerprint, publicKeyMatchesFingerprint, publicKeyDerB64, signBytes, verifySignatureWithCert, } from './cert-utils.js';
|
|
8
8
|
import { resultErr, resultOk } from './result.js';
|
|
9
9
|
export class AID {
|
|
10
10
|
aid;
|
|
@@ -93,7 +93,7 @@ export class AID {
|
|
|
93
93
|
try {
|
|
94
94
|
const payload = normalizeAgentMdPayload(content);
|
|
95
95
|
const sig = signBytes(this.privateKeyPem, Buffer.from(payload, 'utf-8'));
|
|
96
|
-
const block = buildAgentMdSignatureBlock(this.certFingerprint, Math.trunc(Date.now() / 1000), sig.toString('base64'));
|
|
96
|
+
const block = buildAgentMdSignatureBlock(this.certFingerprint, Math.trunc(Date.now() / 1000), sig.toString('base64'), publicKeyFingerprint(this.certPem));
|
|
97
97
|
return resultOk({ signed: payload + block });
|
|
98
98
|
}
|
|
99
99
|
catch (exc) {
|
|
@@ -116,9 +116,13 @@ export class AID {
|
|
|
116
116
|
if (payloadAid && payloadAid !== this.aid) {
|
|
117
117
|
return resultOk({ status: 'invalid', payload, aid: payloadAid, reason: 'aid mismatch' });
|
|
118
118
|
}
|
|
119
|
-
if (
|
|
119
|
+
if (!certMatchesFingerprint(this.certPem, fields.cert_fingerprint)) {
|
|
120
120
|
return resultOk({ status: 'invalid', payload, aid: this.aid, reason: 'certificate fingerprint mismatch' });
|
|
121
121
|
}
|
|
122
|
+
const publicKeyFp = String(fields.public_key_fingerprint ?? '').trim();
|
|
123
|
+
if (publicKeyFp && !publicKeyMatchesFingerprint(this.certPem, publicKeyFp)) {
|
|
124
|
+
return resultOk({ status: 'invalid', payload, aid: this.aid, reason: 'public key fingerprint mismatch' });
|
|
125
|
+
}
|
|
122
126
|
const sigBuf = Buffer.from(fields.signature, 'base64');
|
|
123
127
|
const valid = verifySignatureWithCert(this.certPem, sigBuf, Buffer.from(payload, 'utf-8'));
|
|
124
128
|
if (!valid) {
|
|
@@ -136,6 +140,7 @@ export class AID {
|
|
|
136
140
|
payload,
|
|
137
141
|
aid: this.aid,
|
|
138
142
|
cert_fingerprint: fields.cert_fingerprint,
|
|
143
|
+
public_key_fingerprint: publicKeyFp,
|
|
139
144
|
timestamp: Number(fields.timestamp),
|
|
140
145
|
});
|
|
141
146
|
}
|
package/dist/aid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aid.js","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,eAAe,IAAI,gBAAgB,EACnC,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,SAAS,EACT,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"aid.js","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"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"}
|
package/dist/cert-utils.d.ts
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* 从 namespaces/auth.ts 提取的纯函数,供 AID/AIDStore 使用。
|
|
4
4
|
*/
|
|
5
5
|
import { certificateSha256Fingerprint } from './crypto.js';
|
|
6
|
+
export declare function normalizeFingerprintHex(value: string | null | undefined): string;
|
|
7
|
+
export declare function publicKeyFingerprint(certPem: string): string;
|
|
8
|
+
export declare function certMatchesFingerprint(certPem: string, fingerprint: string | null | undefined): boolean;
|
|
9
|
+
export declare function publicKeyMatchesFingerprint(certPem: string, fingerprint: string | null | undefined): boolean;
|
|
6
10
|
/** 解析 agent.md 尾部签名块 */
|
|
7
11
|
export declare function parseAgentMdTailSignature(content: string): {
|
|
8
12
|
payload: string;
|
|
@@ -14,7 +18,7 @@ export declare function extractAgentMdAid(payload: string): string;
|
|
|
14
18
|
/** 规范化 agent.md payload(去除签名块,确保末尾换行) */
|
|
15
19
|
export declare function normalizeAgentMdPayload(content: string): string;
|
|
16
20
|
/** 构造 agent.md 签名块 */
|
|
17
|
-
export declare function buildAgentMdSignatureBlock(certFingerprint: string, timestamp: number, signatureB64: string): string;
|
|
21
|
+
export declare function buildAgentMdSignatureBlock(certFingerprint: string, timestamp: number, signatureB64: string, publicKeyFp?: string): string;
|
|
18
22
|
/** 使用私钥签名(ECDSA P-256 SHA-256,DER 编码输出) */
|
|
19
23
|
export declare function signBytes(privateKeyPem: string, payload: Buffer): Buffer;
|
|
20
24
|
/** 使用证书公钥验签 */
|
package/dist/cert-utils.js
CHANGED
|
@@ -2,11 +2,45 @@
|
|
|
2
2
|
* 证书与签名工具函数 — 对齐 Python SDK _cert_utils.py
|
|
3
3
|
* 从 namespaces/auth.ts 提取的纯函数,供 AID/AIDStore 使用。
|
|
4
4
|
*/
|
|
5
|
-
import { createSign, createVerify, X509Certificate } from 'node:crypto';
|
|
5
|
+
import { createSign, createVerify, X509Certificate, createHash } from 'node:crypto';
|
|
6
6
|
import { certificateSha256Fingerprint } from './crypto.js';
|
|
7
7
|
const AGENT_MD_SIGNATURE_MARKER = '<!-- AUN-SIGNATURE';
|
|
8
8
|
const AGENT_MD_SIGNATURE_RE = /^<!-- AUN-SIGNATURE\r?\n(?<body>[\s\S]*?)\r?\n-->\s*$/;
|
|
9
|
-
const
|
|
9
|
+
const FINGERPRINT_HEX_RE = /^[0-9a-f]+$/;
|
|
10
|
+
export function normalizeFingerprintHex(value) {
|
|
11
|
+
let text = String(value ?? '').trim().toLowerCase();
|
|
12
|
+
if (text.startsWith('sha256:'))
|
|
13
|
+
text = text.slice('sha256:'.length);
|
|
14
|
+
text = text.replace(/:/g, '');
|
|
15
|
+
if (![16, 64].includes(text.length) || !FINGERPRINT_HEX_RE.test(text))
|
|
16
|
+
return '';
|
|
17
|
+
return text;
|
|
18
|
+
}
|
|
19
|
+
export function publicKeyFingerprint(certPem) {
|
|
20
|
+
const cert = new X509Certificate(certPem);
|
|
21
|
+
const spkiDer = cert.publicKey.export({ type: 'spki', format: 'der' });
|
|
22
|
+
return `sha256:${createHash('sha256').update(spkiDer).digest('hex')}`;
|
|
23
|
+
}
|
|
24
|
+
export function certMatchesFingerprint(certPem, fingerprint) {
|
|
25
|
+
const expected = normalizeFingerprintHex(fingerprint);
|
|
26
|
+
if (!expected)
|
|
27
|
+
return false;
|
|
28
|
+
const cert = new X509Certificate(certPem);
|
|
29
|
+
const derHex = cert.fingerprint256.replace(/:/g, '').toLowerCase();
|
|
30
|
+
const spkiHex = publicKeyFingerprint(certPem).slice('sha256:'.length);
|
|
31
|
+
if (expected.length === 16)
|
|
32
|
+
return derHex.slice(0, 16) === expected || spkiHex.slice(0, 16) === expected;
|
|
33
|
+
return derHex === expected || spkiHex === expected;
|
|
34
|
+
}
|
|
35
|
+
export function publicKeyMatchesFingerprint(certPem, fingerprint) {
|
|
36
|
+
const expected = normalizeFingerprintHex(fingerprint);
|
|
37
|
+
if (!expected)
|
|
38
|
+
return false;
|
|
39
|
+
const spkiHex = publicKeyFingerprint(certPem).slice('sha256:'.length);
|
|
40
|
+
if (expected.length === 16)
|
|
41
|
+
return spkiHex.slice(0, 16) === expected;
|
|
42
|
+
return spkiHex === expected;
|
|
43
|
+
}
|
|
10
44
|
/** 解析 agent.md 尾部签名块 */
|
|
11
45
|
export function parseAgentMdTailSignature(content) {
|
|
12
46
|
const idx = content.lastIndexOf(AGENT_MD_SIGNATURE_MARKER);
|
|
@@ -36,9 +70,12 @@ export function parseAgentMdTailSignature(content) {
|
|
|
36
70
|
return { payload: content.slice(0, idx), fields: null, parseError: `signature block missing ${req}` };
|
|
37
71
|
}
|
|
38
72
|
}
|
|
39
|
-
if (!
|
|
73
|
+
if (!normalizeFingerprintHex(fields.cert_fingerprint)) {
|
|
40
74
|
return { payload: content.slice(0, idx), fields: null, parseError: 'invalid cert_fingerprint' };
|
|
41
75
|
}
|
|
76
|
+
if (fields.public_key_fingerprint && !normalizeFingerprintHex(fields.public_key_fingerprint)) {
|
|
77
|
+
return { payload: content.slice(0, idx), fields: null, parseError: 'invalid public_key_fingerprint' };
|
|
78
|
+
}
|
|
42
79
|
if (!Number.isFinite(Number(fields.timestamp))) {
|
|
43
80
|
return { payload: content.slice(0, idx), fields: null, parseError: 'invalid timestamp' };
|
|
44
81
|
}
|
|
@@ -71,14 +108,15 @@ export function normalizeAgentMdPayload(content) {
|
|
|
71
108
|
return payload;
|
|
72
109
|
}
|
|
73
110
|
/** 构造 agent.md 签名块 */
|
|
74
|
-
export function buildAgentMdSignatureBlock(certFingerprint, timestamp, signatureB64) {
|
|
75
|
-
|
|
111
|
+
export function buildAgentMdSignatureBlock(certFingerprint, timestamp, signatureB64, publicKeyFp = '') {
|
|
112
|
+
const lines = [
|
|
76
113
|
'<!-- AUN-SIGNATURE',
|
|
77
114
|
`cert_fingerprint: ${certFingerprint}`,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
115
|
+
];
|
|
116
|
+
if (publicKeyFp)
|
|
117
|
+
lines.push(`public_key_fingerprint: ${publicKeyFp}`);
|
|
118
|
+
lines.push(`timestamp: ${Math.trunc(timestamp)}`, `signature: ${signatureB64}`, '-->');
|
|
119
|
+
return lines.join('\n');
|
|
82
120
|
}
|
|
83
121
|
/** 使用私钥签名(ECDSA P-256 SHA-256,DER 编码输出) */
|
|
84
122
|
export function signBytes(privateKeyPem, payload) {
|
package/dist/cert-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-utils.js","sourceRoot":"","sources":["../src/cert-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"cert-utils.js","sourceRoot":"","sources":["../src/cert-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { EventPayload } from '../events.js';
|
|
2
|
+
import { type JsonObject, type Message, type RpcParams } from '../types.js';
|
|
3
|
+
import type { ClientRuntime } from './runtime.js';
|
|
4
|
+
export declare class MessageDeliveryEngine {
|
|
5
|
+
private readonly runtime;
|
|
6
|
+
constructor(runtime: ClientRuntime);
|
|
7
|
+
prunePushedSeqs(ns: string): void;
|
|
8
|
+
markPublishedSeq(ns: string, seq: number): void;
|
|
9
|
+
enqueueOrderedMessage(ns: string, event: string, seq: number, payload: EventPayload): void;
|
|
10
|
+
isInstanceScopedMessageEvent(event: string): boolean;
|
|
11
|
+
attachCurrentInstanceContext(payload: EventPayload): EventPayload;
|
|
12
|
+
normalizePublishedMessagePayload(event: string, payload: EventPayload): EventPayload;
|
|
13
|
+
stripInternalSenderDeviceFields(payload: EventPayload): EventPayload;
|
|
14
|
+
recallEventFromMessage(message: EventPayload): JsonObject | null;
|
|
15
|
+
p2pAppEventForMessage(message: EventPayload): {
|
|
16
|
+
event: string;
|
|
17
|
+
payload: EventPayload;
|
|
18
|
+
};
|
|
19
|
+
publishAppEvent(event: string, payload: EventPayload, source?: string): void | Promise<void>;
|
|
20
|
+
messagePayloadForDebug(message: unknown): unknown;
|
|
21
|
+
messageEnvelopeFieldsForDebug(message: unknown): Record<string, unknown>;
|
|
22
|
+
logMessageDebug(stage: string, source: string, event: string, message: unknown, opts?: {
|
|
23
|
+
payloadOverride?: unknown;
|
|
24
|
+
extra?: Record<string, unknown>;
|
|
25
|
+
}): void;
|
|
26
|
+
logAppMessagePublish(event: string, payload: unknown, source: string): void;
|
|
27
|
+
messageTargetsCurrentInstance(message: EventPayload): boolean;
|
|
28
|
+
onRawMessageReceived(data: EventPayload): Promise<void>;
|
|
29
|
+
processAndPublishMessage(data: EventPayload): Promise<void>;
|
|
30
|
+
onRawGroupMessageCreated(data: EventPayload): Promise<void>;
|
|
31
|
+
processAndPublishGroupMessage(data: EventPayload): Promise<void>;
|
|
32
|
+
autoPullGroupMessages(notification: Message): Promise<void>;
|
|
33
|
+
fillP2pGap(): Promise<void>;
|
|
34
|
+
fillGroupGap(groupId: string): Promise<void>;
|
|
35
|
+
fillGroupEventGap(groupId: string): Promise<void>;
|
|
36
|
+
handleGroupChangedEventSeq(data: JsonObject, groupId: string): void;
|
|
37
|
+
onV2PushNotification(data: EventPayload): Promise<void>;
|
|
38
|
+
enqueueOnlineUnreadHint(data: JsonObject): void;
|
|
39
|
+
drainOnlineUnreadHints(): Promise<void>;
|
|
40
|
+
onRawGroupV2MessageCreated(data: EventPayload): Promise<void>;
|
|
41
|
+
restoreSeqTrackerState(): void;
|
|
42
|
+
migrateSeqStateGroupIds(state: Record<string, number>): Record<string, number>;
|
|
43
|
+
saveSeqTrackerState(): void;
|
|
44
|
+
persistRepairedSeq(ns: string): void;
|
|
45
|
+
clampAckSeq(method: string, field: string, ns: string, seq: number): number;
|
|
46
|
+
clampAckParams(method: string, params: RpcParams): RpcParams;
|
|
47
|
+
drainOrderedMessages(ns: string, beforeSeq?: number, pullResponse?: boolean): Promise<void>;
|
|
48
|
+
publishOrderedMessage(event: string, ns: string, seq: unknown, payload: EventPayload): Promise<boolean>;
|
|
49
|
+
publishPulledMessage(event: string, ns: string, seq: unknown, payload: EventPayload): Promise<boolean>;
|
|
50
|
+
}
|