@agentunion/fastaun 0.5.27 → 0.5.28

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 (57) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/_packed_docs/CHANGELOG.md +36 -0
  3. package/_packed_docs/INDEX.md +17 -2
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +12 -9
  5. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +2 -2
  6. package/_packed_docs/sdk/INDEX.md +5 -3
  7. package/dist/agent-md-changes.d.ts +42 -0
  8. package/dist/agent-md-changes.js +339 -0
  9. package/dist/agent-md-changes.js.map +1 -0
  10. package/dist/agent-md-schema.d.ts +1 -0
  11. package/dist/agent-md-schema.js +30 -13
  12. package/dist/agent-md-schema.js.map +1 -1
  13. package/dist/agent-md.d.ts +11 -0
  14. package/dist/agent-md.js +86 -15
  15. package/dist/agent-md.js.map +1 -1
  16. package/dist/aid-store.d.ts +11 -0
  17. package/dist/aid-store.js +102 -21
  18. package/dist/aid-store.js.map +1 -1
  19. package/dist/auth.d.ts +10 -0
  20. package/dist/auth.js +44 -4
  21. package/dist/auth.js.map +1 -1
  22. package/dist/client/control-messages.d.ts +31 -0
  23. package/dist/client/control-messages.js +474 -0
  24. package/dist/client/control-messages.js.map +1 -0
  25. package/dist/client/delivery.js +10 -2
  26. package/dist/client/delivery.js.map +1 -1
  27. package/dist/client/lifecycle.js +10 -0
  28. package/dist/client/lifecycle.js.map +1 -1
  29. package/dist/client/rpc-pipeline.js +76 -13
  30. package/dist/client/rpc-pipeline.js.map +1 -1
  31. package/dist/client/v2-e2ee.d.ts +3 -0
  32. package/dist/client/v2-e2ee.js +5 -0
  33. package/dist/client/v2-e2ee.js.map +1 -1
  34. package/dist/client.d.ts +26 -0
  35. package/dist/client.js +267 -7
  36. package/dist/client.js.map +1 -1
  37. package/dist/discovery.d.ts +3 -0
  38. package/dist/discovery.js +52 -2
  39. package/dist/discovery.js.map +1 -1
  40. package/dist/events.js +14 -1
  41. package/dist/events.js.map +1 -1
  42. package/dist/risk-control.d.ts +68 -0
  43. package/dist/risk-control.js +344 -0
  44. package/dist/risk-control.js.map +1 -0
  45. package/dist/storage/lowlevel.d.ts +1 -0
  46. package/dist/storage/lowlevel.js +2 -2
  47. package/dist/storage/lowlevel.js.map +1 -1
  48. package/dist/tools/cross-sdk-agent.d.ts +1 -1
  49. package/dist/transport.d.ts +21 -1
  50. package/dist/transport.js +199 -20
  51. package/dist/transport.js.map +1 -1
  52. package/dist/version.d.ts +1 -1
  53. package/dist/version.js +1 -1
  54. package/package.json +1 -1
  55. package/_packed_docs/cli//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241CLI/345/274/200/345/217/221/344/270/216/344/275/277/347/224/250/346/214/207/345/215/227.md +0 -869
  56. package/_packed_docs/sdk/0.5.27-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +0 -408
  57. package/_packed_docs/sdk/0.5.27-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +0 -410
package/dist/auth.js CHANGED
@@ -551,6 +551,26 @@ export class AuthFlow {
551
551
  // 调用方注入的内存私钥(由 AUNClient.loadIdentity 传入,不走 tokenStore 解密)
552
552
  _memIdentity = null;
553
553
  _identityPkiContext = '';
554
+ _requestAdmission = null;
555
+ _riskCapabilityEnabled = null;
556
+ _httpHandler = null;
557
+ setRequestAdmission(admission) { this._requestAdmission = admission; }
558
+ setRiskSupport(enabled) { this._riskCapabilityEnabled = enabled; }
559
+ setHttpHandler(handler) { this._httpHandler = handler; }
560
+ async _fetchRiskText(url) {
561
+ if (!this._httpHandler)
562
+ return _fetchText(url, this._verifySsl, this._net);
563
+ const response = await this._fetchOwnershipPki(url);
564
+ if (response.status < 200 || response.status >= 300)
565
+ throw new AuthError(`HTTP ${response.status} from ${url}`);
566
+ return response.body;
567
+ }
568
+ async _fetchRiskJson(url) {
569
+ const result = JSON.parse(await this._fetchRiskText(url));
570
+ if (!isJsonObject(result))
571
+ throw new ValidationError(`invalid JSON response from ${url}`);
572
+ return result;
573
+ }
554
574
  constructor(opts) {
555
575
  this._logger = opts.logger ?? _noopLogger;
556
576
  this._tokenStore = opts.tokenStore;
@@ -1215,6 +1235,16 @@ export class AuthFlow {
1215
1235
  }
1216
1236
  }
1217
1237
  async _fetchOwnershipPki(url) {
1238
+ if (!this._httpHandler)
1239
+ return this._fetchOwnershipPkiDirect(url);
1240
+ const perform = async () => {
1241
+ const result = await this._fetchOwnershipPkiDirect(url);
1242
+ return new Response([204, 205, 304].includes(result.status) ? null : result.body, { status: result.status, headers: result.headers });
1243
+ };
1244
+ const response = await this._httpHandler(url, { method: 'GET' }, perform);
1245
+ return { status: response.status, headers: Object.fromEntries(response.headers), body: await response.text() };
1246
+ }
1247
+ async _fetchOwnershipPkiDirect(url) {
1218
1248
  const fetch = (target, originalHost) => new Promise((resolve, reject) => {
1219
1249
  const parsed = new URL(target);
1220
1250
  const module = parsed.protocol === 'https:' ? https : http;
@@ -1279,6 +1309,15 @@ export class AuthFlow {
1279
1309
  * 流程:连接 → 接收 challenge → 发送请求 → 接收响应 → 关闭。
1280
1310
  */
1281
1311
  async _shortRpc(gatewayUrl, method, params) {
1312
+ const release = this._requestAdmission?.(`rpc:${method}`);
1313
+ try {
1314
+ return await this._shortRpcAdmitted(gatewayUrl, method, params);
1315
+ }
1316
+ finally {
1317
+ release?.();
1318
+ }
1319
+ }
1320
+ async _shortRpcAdmitted(gatewayUrl, method, params) {
1282
1321
  this._logger.debug(`_shortRpc enter: method=${method}, gateway=${gatewayUrl}`);
1283
1322
  if (this._connectionFactory === null) {
1284
1323
  const call = shortRpcViaNetworkActor(gatewayUrl, method, params);
@@ -1523,6 +1562,7 @@ export class AuthFlow {
1523
1562
  agent_md_validation_v1: true,
1524
1563
  p2p_peer_pull_v1: true,
1525
1564
  gateway_migrate_v1: true,
1565
+ ...(this._requestAdmission && this._verifySsl && this._riskCapabilityEnabled?.() ? { risk_test_v1: true } : {}),
1526
1566
  };
1527
1567
  const request = {
1528
1568
  nonce,
@@ -1766,7 +1806,7 @@ export class AuthFlow {
1766
1806
  const response = fresh ? await this._fetchOwnershipPki(url) : undefined;
1767
1807
  if (response && response.status !== 200)
1768
1808
  throw new AuthError('service event certificate chain is unavailable');
1769
- const text = response ? response.body : await _fetchText(url, this._verifySsl, this._net);
1809
+ const text = response ? response.body : await this._fetchRiskText(url);
1770
1810
  return _splitPemBundle(text);
1771
1811
  }
1772
1812
  /**
@@ -1821,7 +1861,7 @@ export class AuthFlow {
1821
1861
  */
1822
1862
  async _fetchGatewayCrl(gatewayUrl, _issuerCert, fresh = false) {
1823
1863
  const url = _gatewayHttpUrl(gatewayUrl, '/pki/crl.json');
1824
- const payload = fresh ? await this._fetchFreshPkiJson(url) : await _fetchJson(url, this._verifySsl, this._net);
1864
+ const payload = fresh ? await this._fetchFreshPkiJson(url) : await this._fetchRiskJson(url);
1825
1865
  const crlPem = String(payload.crl_pem || '');
1826
1866
  if (!crlPem) {
1827
1867
  throw new AuthError('gateway CRL endpoint returned no signed CRL');
@@ -2012,7 +2052,7 @@ export class AuthFlow {
2012
2052
  async _fetchGatewayOcspStatus(gatewayUrl, authCert, issuerCert, strictCurrent = false) {
2013
2053
  const serialHex = _certSerialHex(authCert);
2014
2054
  const url = _gatewayHttpUrl(gatewayUrl, `/pki/ocsp/${serialHex}`);
2015
- const payload = strictCurrent ? await this._fetchFreshPkiJson(url) : await _fetchJson(url, this._verifySsl, this._net);
2055
+ const payload = strictCurrent ? await this._fetchFreshPkiJson(url) : await this._fetchRiskJson(url);
2016
2056
  const status = String(payload.status || '');
2017
2057
  const ocspB64 = String(payload.ocsp_response || '');
2018
2058
  if (strictCurrent) {
@@ -2369,7 +2409,7 @@ export class AuthFlow {
2369
2409
  async _downloadRegisteredCert(gatewayUrl, aid) {
2370
2410
  const certUrl = _gatewayHttpUrl(gatewayUrl, `/pki/cert/${aid}`);
2371
2411
  try {
2372
- const certPem = await _fetchText(certUrl, this._verifySsl);
2412
+ const certPem = await this._fetchRiskText(certUrl);
2373
2413
  if (!certPem || !certPem.includes('BEGIN CERTIFICATE')) {
2374
2414
  return null;
2375
2415
  }