@agentunion/fastaun 0.4.5 → 0.4.7

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/_packed_docs/CHANGELOG.md +39 -0
  3. package/_packed_docs/INDEX.md +2 -2
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +1 -1
  5. package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +73 -84
  6. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +15 -14
  7. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +2 -2
  8. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +22 -5
  9. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +44 -26
  10. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +5 -5
  11. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +63 -35
  12. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
  13. package/_packed_docs/sdk/09-message-rpc-manual.md +6 -6
  14. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +6 -4
  15. package/_packed_docs/sdk/INDEX.md +2 -2
  16. package/_packed_docs/sdk/README.md +3 -3
  17. package/dist/agent-md.d.ts +101 -0
  18. package/dist/agent-md.js +778 -0
  19. package/dist/agent-md.js.map +1 -0
  20. package/dist/aid-store.d.ts +12 -39
  21. package/dist/aid-store.js +114 -138
  22. package/dist/aid-store.js.map +1 -1
  23. package/dist/auth.js +1 -1
  24. package/dist/auth.js.map +1 -1
  25. package/dist/client.d.ts +1 -62
  26. package/dist/client.js +138 -826
  27. package/dist/client.js.map +1 -1
  28. package/dist/crypto.d.ts +1 -1
  29. package/dist/crypto.js +1 -1
  30. package/dist/index.d.ts +3 -2
  31. package/dist/index.js +2 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/keystore/aid-db.d.ts +2 -0
  34. package/dist/keystore/aid-db.js +12 -2
  35. package/dist/keystore/aid-db.js.map +1 -1
  36. package/dist/keystore/index.d.ts +6 -2
  37. package/dist/keystore/local-identity-store.d.ts +70 -0
  38. package/dist/keystore/local-identity-store.js +525 -0
  39. package/dist/keystore/local-identity-store.js.map +1 -0
  40. package/dist/keystore/local-token-store.d.ts +68 -0
  41. package/dist/keystore/local-token-store.js +368 -0
  42. package/dist/keystore/local-token-store.js.map +1 -0
  43. package/dist/register-flow.d.ts +12 -4
  44. package/dist/register-flow.js +70 -3
  45. package/dist/register-flow.js.map +1 -1
  46. package/dist/version.d.ts +1 -1
  47. package/dist/version.js +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { AID } from './aid.js';
6
6
  import { type Result } from './result.js';
7
+ import { type AgentMdCheckResult, type AgentMdDownloadResult } from './agent-md.js';
7
8
  export interface AIDInfo {
8
9
  aid: string;
9
10
  certNotAfter: Date;
@@ -17,46 +18,15 @@ export interface ResolveOpts {
17
18
  }
18
19
  export type ResolveResult = {
19
20
  aid: AID;
20
- agent_md?: {
21
- content: string;
22
- verification: {
23
- status: string;
24
- reason?: string;
25
- };
26
- cert_pem: string;
27
- };
21
+ agent_md?: DownloadAgentMdResult;
28
22
  source: {
29
23
  cert_from_cache: boolean;
30
24
  agent_md_fetched: boolean;
31
25
  };
32
26
  };
33
- export type FetchAgentMdResult = {
34
- aid: string;
35
- content: string;
36
- verification: {
37
- status: string;
38
- reason?: string;
39
- };
40
- cert_pem: string;
41
- etag: string;
42
- last_modified: string;
43
- };
44
- export type HeadAgentMdResult = {
45
- aid: string;
46
- found: boolean;
47
- etag: string;
48
- last_modified: string;
49
- content_length: number;
50
- };
51
- export type CheckAgentMdResult = {
52
- aid: string;
53
- local_found: boolean;
54
- remote_found: boolean;
55
- local_etag: string;
56
- remote_etag: string;
57
- needs_update: boolean;
58
- ttl_days: number;
59
- };
27
+ export type DownloadAgentMdResult = AgentMdDownloadResult;
28
+ export type CheckAgentMdResult = AgentMdCheckResult;
29
+ export type UploadAgentMdResult = Record<string, unknown>;
60
30
  export type DiagnoseResult = {
61
31
  aid: string;
62
32
  status: string;
@@ -89,16 +59,17 @@ export declare class AIDStore {
89
59
  readonly deviceId: string;
90
60
  readonly slotId: string;
91
61
  private _keystore;
92
- private _auth;
62
+ private _tokenStore;
93
63
  private _registerFlow;
94
64
  private _discovery;
95
65
  private _net;
96
66
  private _log;
67
+ private _crypto;
97
68
  private _verifySsl;
98
69
  private _rootCaPath;
99
70
  private _debug;
100
71
  private _gatewayCache;
101
- private _agentMdCache;
72
+ private _agentMdManager;
102
73
  constructor(opts: {
103
74
  aunPath: string;
104
75
  encryptionSeed: string;
@@ -121,9 +92,11 @@ export declare class AIDStore {
121
92
  exists: boolean;
122
93
  }>>;
123
94
  resolve(aid: string, opts?: ResolveOpts): Promise<Result<ResolveResult>>;
124
- fetchAgentMd(aid: string, timeoutMs?: number): Promise<Result<FetchAgentMdResult>>;
125
- headAgentMd(aid: string): Promise<Result<HeadAgentMdResult>>;
95
+ downloadAgentMd(aid: string, timeoutMs?: number): Promise<Result<DownloadAgentMdResult>>;
126
96
  checkAgentMd(aid: string, ttlDays?: number): Promise<Result<CheckAgentMdResult>>;
97
+ private _authIdentityFromAid;
98
+ private _uploadAgentMdToken;
99
+ uploadAgentMd(aid: string, content?: string | null): Promise<Result<UploadAgentMdResult>>;
127
100
  diagnose(aid: string): Promise<Result<DiagnoseResult>>;
128
101
  renewCert(aid: string): Promise<Result<RenewCertResult>>;
129
102
  rekey(aid: string): Promise<Result<RekeyResult>>;
package/dist/aid-store.js CHANGED
@@ -11,20 +11,31 @@ import { AID } from './aid.js';
11
11
  import * as codes from './error-codes.js';
12
12
  import { certCommonName, certTimeError, signBytes, verifySignatureWithCert } from './cert-utils.js';
13
13
  import { resultErr, resultOk } from './result.js';
14
- import { FileKeyStore } from './keystore/file.js';
14
+ import { LocalIdentityStore } from './keystore/local-identity-store.js';
15
15
  import { CryptoProvider } from './crypto.js';
16
- import { AuthFlow } from './auth.js';
17
16
  import { RegisterFlow } from './register-flow.js';
18
17
  import { GatewayDiscovery } from './discovery.js';
19
18
  import { DnsResilientNet } from './net.js';
20
19
  import { AUNLogger } from './logger.js';
21
20
  import { getDeviceId, normalizeInstanceId, normalizeSlotId } from './config.js';
22
- import { IdentityConflictError, ValidationError } from './errors.js';
21
+ import { IdentityConflictError, NotFoundError, ValidationError } from './errors.js';
22
+ import { AgentMdManager } from './agent-md.js';
23
+ import { LocalTokenStore } from './keystore/local-token-store.js';
24
+ import { AuthFlow } from './auth.js';
23
25
  function resultError(r) {
24
26
  if (r.ok)
25
27
  return null;
26
28
  return r.error;
27
29
  }
30
+ function agentMdFailure(exc) {
31
+ if (exc instanceof ValidationError) {
32
+ return resultErr(codes.INVALID_AID_FORMAT, exc.message, exc);
33
+ }
34
+ if (exc instanceof NotFoundError || String(exc).includes('AGENTMD_NOT_FOUND')) {
35
+ return resultErr(codes.AGENTMD_NOT_FOUND, exc instanceof Error ? exc.message : String(exc), exc);
36
+ }
37
+ return resultErr(codes.NETWORK_ERROR, exc instanceof Error ? exc.message : String(exc), exc);
38
+ }
28
39
  /** 发起 HTTP HEAD 请求,返回 [status, headers] */
29
40
  function httpHead(url, verifySsl, timeoutMs = 5000) {
30
41
  return new Promise((resolve, reject) => {
@@ -49,60 +60,28 @@ function httpHead(url, verifySsl, timeoutMs = 5000) {
49
60
  req.end();
50
61
  });
51
62
  }
52
- /** 发起 HTTP GET 请求,返回 [text, headers, status] */
53
- function httpGetText(url, verifySsl, headers, timeoutMs = 30000) {
54
- return new Promise((resolve, reject) => {
55
- const parsed = new URL(url);
56
- const mod = parsed.protocol === 'https:' ? https : http;
57
- const opts = { timeout: timeoutMs, headers };
58
- if (!verifySsl)
59
- opts.rejectUnauthorized = false;
60
- const req = mod.get(url, opts, (res) => {
61
- const chunks = [];
62
- res.on('data', (c) => chunks.push(c));
63
- res.on('end', () => {
64
- const respHeaders = {};
65
- for (const [k, v] of Object.entries(res.headers)) {
66
- if (typeof v === 'string')
67
- respHeaders[k] = v;
68
- else if (Array.isArray(v))
69
- respHeaders[k] = v[0] ?? '';
70
- }
71
- resolve([Buffer.concat(chunks).toString('utf-8'), respHeaders, res.statusCode ?? 0]);
72
- });
73
- res.on('error', reject);
74
- });
75
- req.on('error', reject);
76
- req.on('timeout', () => { req.destroy(); reject(new Error(`timeout GET ${url}`)); });
77
- });
78
- }
79
63
  function pkiCertUrl(gatewayUrl, aid) {
80
64
  const parsed = new URL(gatewayUrl);
81
65
  const scheme = parsed.protocol === 'wss:' ? 'https:' : 'http:';
82
66
  return `${scheme}//${parsed.host}/pki/cert/${encodeURIComponent(aid)}`;
83
67
  }
84
- function agentMdUrl(aid, gatewayUrl) {
85
- const raw = String(gatewayUrl ?? '').trim().toLowerCase();
86
- const scheme = raw.startsWith('ws://') ? 'http' : 'https';
87
- const host = String(aid ?? '').trim();
88
- return `${scheme}://${host}/agent.md`;
89
- }
90
68
  export class AIDStore {
91
69
  aunPath;
92
70
  _encryptionSeed;
93
71
  deviceId;
94
72
  slotId;
95
73
  _keystore;
96
- _auth;
74
+ _tokenStore;
97
75
  _registerFlow;
98
76
  _discovery;
99
77
  _net;
100
78
  _log;
79
+ _crypto;
101
80
  _verifySsl;
102
81
  _rootCaPath;
103
82
  _debug;
104
83
  _gatewayCache = new Map();
105
- _agentMdCache = new Map();
84
+ _agentMdManager;
106
85
  constructor(opts) {
107
86
  this.aunPath = String(opts.aunPath ?? join(homedir(), '.aun'));
108
87
  this._encryptionSeed = String(opts.encryptionSeed ?? '');
@@ -113,32 +92,46 @@ export class AIDStore {
113
92
  this._debug = opts.debug ?? false;
114
93
  this._log = new AUNLogger({ debug: this._debug, aunPath: this.aunPath });
115
94
  this._log.bindDeviceId(this.deviceId);
116
- this._keystore = new FileKeyStore(this.aunPath, {
95
+ this._keystore = new LocalIdentityStore(this.aunPath, {
96
+ encryptionSeed: this._encryptionSeed || undefined,
97
+ logger: this._log.for('aun_core.keystore'),
98
+ });
99
+ this._tokenStore = new LocalTokenStore(this.aunPath, {
117
100
  encryptionSeed: this._encryptionSeed || undefined,
118
101
  logger: this._log.for('aun_core.keystore'),
119
102
  });
120
103
  this._net = new DnsResilientNet({ verifySsl: this._verifySsl, logger: this._log.for('aun_core.net') });
121
104
  this._discovery = new GatewayDiscovery({ verifySsl: this._verifySsl, logger: this._log.for('aun_core.discovery'), net: this._net });
105
+ this._crypto = new CryptoProvider();
122
106
  this._registerFlow = new RegisterFlow({
123
107
  keystore: this._keystore,
124
- crypto: new CryptoProvider(),
108
+ crypto: this._crypto,
125
109
  verifySsl: this._verifySsl,
126
110
  logger: this._log.for('aun_core.register'),
127
111
  net: this._net,
128
112
  });
129
- this._auth = new AuthFlow({
130
- tokenStore: this._keystore,
131
- crypto: new CryptoProvider(),
132
- deviceId: this.deviceId,
133
- slotId: this.slotId,
134
- rootCaPath: opts.rootCaPath ?? null,
113
+ this._agentMdManager = new AgentMdManager({
114
+ aunPath: this.aunPath,
135
115
  verifySsl: this._verifySsl,
136
- logger: this._log.for('aun_core.auth'),
137
- net: this._net,
116
+ logger: this._log.for('aun_core.agent_md'),
117
+ aidValidator: (target) => this._registerFlow.validateAidName(target),
118
+ gatewayResolver: (target) => this._resolveGateway(target),
119
+ peerResolver: async (target) => {
120
+ const loaded = this.load(target);
121
+ if (loaded.ok && loaded.data)
122
+ return loaded.data.aid;
123
+ const resolved = await this.resolve(target, { skipAgentMd: true });
124
+ if (!resolved.ok || !resolved.data) {
125
+ const err = resultError(resolved);
126
+ throw new Error(err?.message ?? `certificate not found for aid: ${target}`);
127
+ }
128
+ return resolved.data.aid;
129
+ },
138
130
  });
139
131
  }
140
132
  close() {
141
133
  this._keystore.close();
134
+ this._tokenStore.close();
142
135
  const net = this._net;
143
136
  if (typeof net.close === 'function')
144
137
  net.close();
@@ -254,6 +247,7 @@ export class AIDStore {
254
247
  const target = String(aid ?? '').trim();
255
248
  this._log.for('aun_core.aid_store').debug(`register enter: aid=${target || '-'}`);
256
249
  try {
250
+ this._registerFlow.validateAidName(target);
257
251
  const gatewayUrl = await this._resolveGateway(target);
258
252
  const result = await this._registerFlow.registerAid(gatewayUrl, target);
259
253
  if (result.cert) {
@@ -283,6 +277,7 @@ export class AIDStore {
283
277
  async exists(aid) {
284
278
  const target = String(aid ?? '').trim();
285
279
  try {
280
+ this._registerFlow.validateAidName(target);
286
281
  const gatewayUrl = await this._resolveGateway(target);
287
282
  const url = pkiCertUrl(gatewayUrl, target);
288
283
  const [status] = await httpHead(url, this._verifySsl, 5000);
@@ -301,6 +296,7 @@ export class AIDStore {
301
296
  const forceRefresh = !!(opts?.forceRefresh);
302
297
  const skipAgentMd = !!(opts?.skipAgentMd);
303
298
  try {
299
+ this._registerFlow.validateAidName(target);
304
300
  let peer;
305
301
  let certFromCache = false;
306
302
  const loaded = this.load(target);
@@ -310,7 +306,7 @@ export class AIDStore {
310
306
  }
311
307
  else {
312
308
  const gatewayUrl = await this._resolveGateway(target);
313
- const certPem = await this._auth.fetchPeerCert(gatewayUrl, target);
309
+ const certPem = await this._registerFlow.fetchPeerCert(gatewayUrl, target);
314
310
  if (!certPem)
315
311
  return resultErr(codes.CERT_NOT_FOUND, `certificate not found for aid: ${target}`);
316
312
  this._keystore.saveCert(target, certPem);
@@ -322,7 +318,7 @@ export class AIDStore {
322
318
  const source = { cert_from_cache: certFromCache, agent_md_fetched: false };
323
319
  if (skipAgentMd)
324
320
  return resultOk({ aid: peer, source });
325
- const agentMd = await this.fetchAgentMd(target, opts?.timeout ?? 10000);
321
+ const agentMd = await this.downloadAgentMd(target, opts?.timeout ?? 10000);
326
322
  if (!agentMd.ok)
327
323
  return agentMd;
328
324
  source.agent_md_fetched = true;
@@ -332,99 +328,77 @@ export class AIDStore {
332
328
  return resultErr(codes.NETWORK_ERROR, String(exc), exc);
333
329
  }
334
330
  }
335
- async fetchAgentMd(aid, timeoutMs = 30000) {
336
- const target = String(aid ?? '').trim();
331
+ async downloadAgentMd(aid, timeoutMs = 30000) {
337
332
  try {
338
- const gatewayUrl = await this._resolveGateway(target);
339
- const url = agentMdUrl(target, gatewayUrl);
340
- const cached = (this._agentMdCache.get(target) ?? {});
341
- const reqHeaders = { Accept: 'text/markdown' };
342
- if (cached.etag)
343
- reqHeaders['If-None-Match'] = cached.etag;
344
- if (cached.last_modified)
345
- reqHeaders['If-Modified-Since'] = cached.last_modified;
346
- let [content, respHeaders, status] = await httpGetText(url, this._verifySsl, reqHeaders, timeoutMs);
347
- if (status === 304 && cached.content) {
348
- content = String(cached.content);
349
- }
350
- else if (status === 404) {
351
- return resultErr(codes.AGENTMD_NOT_FOUND, `agent.md not found for aid: ${target}`);
352
- }
353
- else if (status < 200 || status >= 300) {
354
- return resultErr(codes.NETWORK_ERROR, `download agent.md failed: HTTP ${status}`);
355
- }
356
- // 加载对端证书用于验签
357
- let peer;
358
- const loaded = this.load(target);
359
- if (loaded.ok && loaded.data) {
360
- peer = loaded.data.aid;
361
- }
362
- else {
363
- const resolved = await this.resolve(target, { skipAgentMd: true });
364
- if (!resolved.ok || !resolved.data)
365
- return resolved;
366
- peer = resolved.data.aid;
367
- }
368
- const verified = peer.verifyAgentMd(content);
369
- if (!verified.ok || !verified.data)
370
- return verified;
371
- const sig = verified.data;
372
- const statusText = sig.status ?? 'invalid';
373
- const verification = { status: statusText };
374
- if (sig.reason)
375
- verification.reason = sig.reason;
376
- const etag = String(respHeaders['etag'] ?? respHeaders['ETag'] ?? '').trim();
377
- const lastModified = String(respHeaders['last-modified'] ?? respHeaders['Last-Modified'] ?? '').trim();
378
- this._agentMdCache.set(target, { content, etag, last_modified: lastModified, updated_at: String(Date.now()) });
379
- return resultOk({ aid: target, content, verification, cert_pem: peer.certPem, etag, last_modified: lastModified });
333
+ return resultOk(await this._agentMdManager.download(aid, timeoutMs));
380
334
  }
381
335
  catch (exc) {
382
- return resultErr(codes.NETWORK_ERROR, String(exc), exc);
336
+ return agentMdFailure(exc);
383
337
  }
384
338
  }
385
- async headAgentMd(aid) {
386
- const target = String(aid ?? '').trim();
339
+ async checkAgentMd(aid, ttlDays = 1) {
387
340
  try {
388
- const gatewayUrl = await this._resolveGateway(target);
389
- const url = agentMdUrl(target, gatewayUrl);
390
- const [status, headers] = await httpHead(url, this._verifySsl, 15000);
391
- if (status === 404)
392
- return resultErr(codes.AGENTMD_NOT_FOUND, `agent.md not found for aid: ${target}`);
393
- if (status < 200 || status >= 300)
394
- return resultErr(codes.NETWORK_ERROR, `head agent.md failed: HTTP ${status}`);
395
- const etag = String(headers['etag'] ?? headers['ETag'] ?? '').trim();
396
- const lastModified = String(headers['last-modified'] ?? headers['Last-Modified'] ?? '').trim();
397
- const contentLength = parseInt(String(headers['content-length'] ?? '0'), 10) || 0;
398
- const cached = (this._agentMdCache.get(target) ?? {});
399
- this._agentMdCache.set(target, { ...cached, etag, last_modified: lastModified, remote_checked_at: Date.now() });
400
- return resultOk({ aid: target, found: true, etag, last_modified: lastModified, content_length: contentLength });
341
+ return resultOk(await this._agentMdManager.check(aid, ttlDays));
401
342
  }
402
343
  catch (exc) {
403
- return resultErr(codes.NETWORK_ERROR, String(exc), exc);
344
+ return agentMdFailure(exc);
404
345
  }
405
346
  }
406
- async checkAgentMd(aid, ttlDays = 1) {
347
+ _authIdentityFromAid(aid) {
348
+ return {
349
+ aid: aid.aid,
350
+ private_key_pem: aid.privateKeyPem,
351
+ public_key_der_b64: aid.publicKey,
352
+ cert: aid.certPem,
353
+ };
354
+ }
355
+ async _uploadAgentMdToken(aid, gatewayUrl) {
356
+ const auth = new AuthFlow({
357
+ tokenStore: this._tokenStore,
358
+ crypto: this._crypto,
359
+ aid: aid.aid,
360
+ deviceId: this.deviceId,
361
+ slotId: this.slotId,
362
+ rootCaPath: this._rootCaPath,
363
+ verifySsl: this._verifySsl,
364
+ logger: this._log.for('aun_core.auth'),
365
+ net: this._net,
366
+ });
367
+ auth.setIdentity(this._authIdentityFromAid(aid));
368
+ const result = await auth.authenticate(gatewayUrl, { aid: aid.aid });
369
+ const token = String(result.access_token ?? result.token ?? result.kite_token ?? '').trim();
370
+ if (!token)
371
+ throw new Error('authenticate did not return access_token');
372
+ return token;
373
+ }
374
+ async uploadAgentMd(aid, content) {
407
375
  const target = String(aid ?? '').trim();
408
- const cached = (this._agentMdCache.get(target) ?? {});
409
- const head = await this.headAgentMd(target);
410
- let remote;
411
- if (!head.ok || !head.data) {
412
- if (resultError(head)?.code === codes.AGENTMD_NOT_FOUND) {
413
- remote = { aid: target, found: false, etag: '', last_modified: '', content_length: 0, status: 404 };
376
+ try {
377
+ this._registerFlow.validateAidName(target);
378
+ const loaded = this.load(target);
379
+ if (!loaded.ok || !loaded.data) {
380
+ const err = resultError(loaded);
381
+ return resultErr(err?.code ?? codes.CERT_NOT_FOUND, err?.message ?? `certificate not found for aid: ${target}`);
414
382
  }
415
- else {
416
- return head;
383
+ const current = loaded.data.aid;
384
+ if (!current.isPrivateKeyValid() || !current.privateKeyPem) {
385
+ return resultErr(codes.PRIVATE_KEY_NOT_VALID, `uploadAgentMd requires local AID with a valid private key: ${target}`);
417
386
  }
387
+ const manager = new AgentMdManager({
388
+ aunPath: this.aunPath,
389
+ verifySsl: this._verifySsl,
390
+ logger: this._log.for('aun_core.agent_md'),
391
+ ownerAidGetter: () => target,
392
+ currentAidGetter: () => current,
393
+ gatewayResolver: (value) => this._resolveGateway(value),
394
+ accessTokenResolver: (_value, gatewayUrl) => this._uploadAgentMdToken(current, gatewayUrl),
395
+ aidValidator: (value) => this._registerFlow.validateAidName(value),
396
+ });
397
+ return resultOk(await manager.upload(content));
398
+ }
399
+ catch (exc) {
400
+ return agentMdFailure(exc);
418
401
  }
419
- else {
420
- remote = head.data;
421
- }
422
- const localEtag = String(cached.etag ?? '').trim();
423
- const localFound = !!(cached.content);
424
- const remoteFound = !!(remote.found);
425
- const remoteEtag = String(remote.etag ?? '').trim();
426
- const needsUpdate = remoteFound && (!localFound || (!!remoteEtag && remoteEtag !== localEtag));
427
- return resultOk({ aid: target, local_found: localFound, remote_found: remoteFound, local_etag: localEtag, remote_etag: remoteEtag, needs_update: needsUpdate, ttl_days: ttlDays });
428
402
  }
429
403
  async diagnose(aid) {
430
404
  const target = String(aid ?? '').trim();
@@ -477,18 +451,19 @@ export class AIDStore {
477
451
  return resultErr(codes.PRIVATE_KEY_REQUIRED, `private key required for aid: ${target}`);
478
452
  }
479
453
  try {
454
+ this._registerFlow.validateAidName(target);
480
455
  const gatewayUrl = await this._resolveGateway(target);
481
- // 通过 AuthFlow 短连接 RPC 完成续签
482
456
  const aidObj = loaded.data.aid;
483
- const clientNonce = new CryptoProvider().newClientNonce();
484
- const phase1 = await this._auth._shortRpc(gatewayUrl, 'auth.aid_login1', {
457
+ const clientNonce = this._registerFlow.newClientNonce();
458
+ const phase1 = await this._registerFlow.shortRpc(gatewayUrl, 'auth.aid_login1', {
485
459
  aid: target, cert: aidObj.certPem, client_nonce: clientNonce,
486
460
  });
461
+ await this._registerFlow.verifyPhase1Response(gatewayUrl, phase1, clientNonce);
487
462
  const signResult = aidObj.sign(String(phase1.nonce));
488
463
  if (!signResult.ok || !signResult.data) {
489
464
  return resultErr(codes.CERT_RENEWAL_FAILED, resultError(signResult)?.message ?? 'sign failed');
490
465
  }
491
- const response = await this._auth._shortRpc(gatewayUrl, 'auth.renew_cert', {
466
+ const response = await this._registerFlow.shortRpc(gatewayUrl, 'auth.renew_cert', {
492
467
  aid: target, request_id: String(phase1.request_id), nonce: String(phase1.nonce), signature: signResult.data.signature,
493
468
  });
494
469
  const certPem = String(response.cert ?? response.cert_pem ?? '').trim();
@@ -512,20 +487,21 @@ export class AIDStore {
512
487
  return resultErr(codes.PRIVATE_KEY_REQUIRED, `private key required for aid: ${target}`);
513
488
  }
514
489
  try {
490
+ this._registerFlow.validateAidName(target);
515
491
  const oldAid = loaded.data.aid;
516
- const crypto = new CryptoProvider();
517
- const newIdentity = crypto.generateIdentity();
492
+ const newIdentity = this._registerFlow.generateIdentity();
518
493
  const gatewayUrl = await this._resolveGateway(target);
519
- const clientNonce = crypto.newClientNonce();
520
- const phase1 = await this._auth._shortRpc(gatewayUrl, 'auth.aid_login1', {
494
+ const clientNonce = this._registerFlow.newClientNonce();
495
+ const phase1 = await this._registerFlow.shortRpc(gatewayUrl, 'auth.aid_login1', {
521
496
  aid: target, cert: oldAid.certPem, client_nonce: clientNonce,
522
497
  });
498
+ await this._registerFlow.verifyPhase1Response(gatewayUrl, phase1, clientNonce);
523
499
  const signPayload = Buffer.from(`${phase1.nonce}${newIdentity.public_key_der_b64}`, 'utf-8');
524
500
  const signResult = oldAid.sign(signPayload);
525
501
  if (!signResult.ok || !signResult.data) {
526
502
  return resultErr(codes.REKEY_FAILED, resultError(signResult)?.message ?? 'sign failed');
527
503
  }
528
- const response = await this._auth._shortRpc(gatewayUrl, 'auth.rekey', {
504
+ const response = await this._registerFlow.shortRpc(gatewayUrl, 'auth.rekey', {
529
505
  aid: target, request_id: String(phase1.request_id), nonce: String(phase1.nonce),
530
506
  new_public_key: newIdentity.public_key_der_b64, signature: signResult.data.signature,
531
507
  });