@agirails/sdk 2.0.1-beta → 2.0.2
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/LICENSE +190 -0
- package/README.md +116 -108
- package/bin/actp +10 -0
- package/dist/ACTPClient.d.ts +456 -33
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +477 -93
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/AgentRegistry.json +782 -0
- package/dist/abi/EscrowVault.json +106 -38
- package/dist/abi/IdentityRegistry.json +316 -0
- package/dist/adapters/BaseAdapter.d.ts +231 -0
- package/dist/adapters/BaseAdapter.d.ts.map +1 -0
- package/dist/adapters/BaseAdapter.js +393 -0
- package/dist/adapters/BaseAdapter.js.map +1 -0
- package/dist/adapters/BeginnerAdapter.d.ts +152 -0
- package/dist/adapters/BeginnerAdapter.d.ts.map +1 -0
- package/dist/adapters/BeginnerAdapter.js +168 -0
- package/dist/adapters/BeginnerAdapter.js.map +1 -0
- package/dist/adapters/IntermediateAdapter.d.ts +211 -0
- package/dist/adapters/IntermediateAdapter.d.ts.map +1 -0
- package/dist/adapters/IntermediateAdapter.js +260 -0
- package/dist/adapters/IntermediateAdapter.js.map +1 -0
- package/dist/adapters/index.d.ts +15 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +26 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/builders/DeliveryProofBuilder.d.ts +60 -1
- package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
- package/dist/builders/DeliveryProofBuilder.js +81 -5
- package/dist/builders/DeliveryProofBuilder.js.map +1 -1
- package/dist/builders/QuoteBuilder.d.ts +101 -0
- package/dist/builders/QuoteBuilder.d.ts.map +1 -1
- package/dist/builders/QuoteBuilder.js +120 -3
- package/dist/builders/QuoteBuilder.js.map +1 -1
- package/dist/builders/index.d.ts +4 -0
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/builders/index.js +4 -0
- package/dist/builders/index.js.map +1 -1
- package/dist/cli/commands/balance.d.ts +13 -0
- package/dist/cli/commands/balance.d.ts.map +1 -0
- package/dist/cli/commands/balance.js +89 -0
- package/dist/cli/commands/balance.js.map +1 -0
- package/dist/cli/commands/batch.d.ts +24 -0
- package/dist/cli/commands/batch.d.ts.map +1 -0
- package/dist/cli/commands/batch.js +424 -0
- package/dist/cli/commands/batch.js.map +1 -0
- package/dist/cli/commands/config.d.ts +13 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +192 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +143 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mint.d.ts +13 -0
- package/dist/cli/commands/mint.d.ts.map +1 -0
- package/dist/cli/commands/mint.js +91 -0
- package/dist/cli/commands/mint.js.map +1 -0
- package/dist/cli/commands/pay.d.ts +18 -0
- package/dist/cli/commands/pay.d.ts.map +1 -0
- package/dist/cli/commands/pay.js +87 -0
- package/dist/cli/commands/pay.js.map +1 -0
- package/dist/cli/commands/simulate.d.ts +32 -0
- package/dist/cli/commands/simulate.d.ts.map +1 -0
- package/dist/cli/commands/simulate.js +290 -0
- package/dist/cli/commands/simulate.js.map +1 -0
- package/dist/cli/commands/time.d.ts +29 -0
- package/dist/cli/commands/time.d.ts.map +1 -0
- package/dist/cli/commands/time.js +252 -0
- package/dist/cli/commands/time.js.map +1 -0
- package/dist/cli/commands/tx.d.ts +16 -0
- package/dist/cli/commands/tx.d.ts.map +1 -0
- package/dist/cli/commands/tx.js +379 -0
- package/dist/cli/commands/tx.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +20 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +160 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +104 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/client.d.ts +70 -0
- package/dist/cli/utils/client.d.ts.map +1 -0
- package/dist/cli/utils/client.js +240 -0
- package/dist/cli/utils/client.js.map +1 -0
- package/dist/cli/utils/config.d.ts +91 -0
- package/dist/cli/utils/config.d.ts.map +1 -0
- package/dist/cli/utils/config.js +240 -0
- package/dist/cli/utils/config.js.map +1 -0
- package/dist/cli/utils/output.d.ts +174 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +380 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/config/networks.d.ts +28 -0
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +60 -12
- package/dist/config/networks.js.map +1 -1
- package/dist/errors/index.d.ts +165 -2
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +260 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +61 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -36
- package/dist/index.js.map +1 -1
- package/dist/level0/Provider.d.ts +106 -0
- package/dist/level0/Provider.d.ts.map +1 -0
- package/dist/level0/Provider.js +10 -0
- package/dist/level0/Provider.js.map +1 -0
- package/dist/level0/ServiceDirectory.d.ts +74 -0
- package/dist/level0/ServiceDirectory.d.ts.map +1 -0
- package/dist/level0/ServiceDirectory.js +122 -0
- package/dist/level0/ServiceDirectory.js.map +1 -0
- package/dist/level0/index.d.ts +10 -0
- package/dist/level0/index.d.ts.map +1 -0
- package/dist/level0/index.js +15 -0
- package/dist/level0/index.js.map +1 -0
- package/dist/level0/provide.d.ts +51 -0
- package/dist/level0/provide.d.ts.map +1 -0
- package/dist/level0/provide.js +113 -0
- package/dist/level0/provide.js.map +1 -0
- package/dist/level0/request.d.ts +53 -0
- package/dist/level0/request.d.ts.map +1 -0
- package/dist/level0/request.js +462 -0
- package/dist/level0/request.js.map +1 -0
- package/dist/level1/Agent.d.ts +472 -0
- package/dist/level1/Agent.d.ts.map +1 -0
- package/dist/level1/Agent.js +1091 -0
- package/dist/level1/Agent.js.map +1 -0
- package/dist/level1/index.d.ts +10 -0
- package/dist/level1/index.d.ts.map +1 -0
- package/dist/level1/index.js +30 -0
- package/dist/level1/index.js.map +1 -0
- package/dist/level1/pricing/PriceCalculator.d.ts +62 -0
- package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -0
- package/dist/level1/pricing/PriceCalculator.js +237 -0
- package/dist/level1/pricing/PriceCalculator.js.map +1 -0
- package/dist/level1/pricing/PricingStrategy.d.ts +179 -0
- package/dist/level1/pricing/PricingStrategy.d.ts.map +1 -0
- package/dist/level1/pricing/PricingStrategy.js +11 -0
- package/dist/level1/pricing/PricingStrategy.js.map +1 -0
- package/dist/level1/types/Job.d.ts +166 -0
- package/dist/level1/types/Job.d.ts.map +1 -0
- package/dist/level1/types/Job.js +11 -0
- package/dist/level1/types/Job.js.map +1 -0
- package/dist/level1/types/Options.d.ts +258 -0
- package/dist/level1/types/Options.d.ts.map +1 -0
- package/dist/level1/types/Options.js +8 -0
- package/dist/level1/types/Options.js.map +1 -0
- package/dist/level1/types/index.d.ts +8 -0
- package/dist/level1/types/index.d.ts.map +1 -0
- package/dist/level1/types/index.js +8 -0
- package/dist/level1/types/index.js.map +1 -0
- package/dist/protocol/ACTPKernel.d.ts +229 -2
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +367 -33
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/AgentRegistry.d.ts +177 -0
- package/dist/protocol/AgentRegistry.d.ts.map +1 -0
- package/dist/protocol/AgentRegistry.js +449 -0
- package/dist/protocol/AgentRegistry.js.map +1 -0
- package/dist/protocol/DIDManager.d.ts +289 -0
- package/dist/protocol/DIDManager.d.ts.map +1 -0
- package/dist/protocol/DIDManager.js +481 -0
- package/dist/protocol/DIDManager.js.map +1 -0
- package/dist/protocol/DIDResolver.d.ts +236 -0
- package/dist/protocol/DIDResolver.d.ts.map +1 -0
- package/dist/protocol/DIDResolver.js +495 -0
- package/dist/protocol/DIDResolver.js.map +1 -0
- package/dist/protocol/EASHelper.d.ts +57 -2
- package/dist/protocol/EASHelper.d.ts.map +1 -1
- package/dist/protocol/EASHelper.js +230 -37
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/EscrowVault.d.ts +93 -2
- package/dist/protocol/EscrowVault.d.ts.map +1 -1
- package/dist/protocol/EscrowVault.js +122 -33
- package/dist/protocol/EscrowVault.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +45 -1
- package/dist/protocol/EventMonitor.d.ts.map +1 -1
- package/dist/protocol/EventMonitor.js +64 -8
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts +116 -2
- package/dist/protocol/MessageSigner.d.ts.map +1 -1
- package/dist/protocol/MessageSigner.js +215 -9
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts +93 -0
- package/dist/protocol/ProofGenerator.d.ts.map +1 -1
- package/dist/protocol/ProofGenerator.js +194 -9
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/protocol/QuoteBuilder.d.ts +8 -0
- package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
- package/dist/protocol/QuoteBuilder.js +8 -0
- package/dist/protocol/QuoteBuilder.js.map +1 -1
- package/dist/runtime/BlockchainRuntime.d.ts +360 -0
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -0
- package/dist/runtime/BlockchainRuntime.js +767 -0
- package/dist/runtime/BlockchainRuntime.js.map +1 -0
- package/dist/runtime/IACTPRuntime.d.ts +271 -0
- package/dist/runtime/IACTPRuntime.d.ts.map +1 -0
- package/dist/runtime/IACTPRuntime.js +15 -0
- package/dist/runtime/IACTPRuntime.js.map +1 -0
- package/dist/runtime/MockRuntime.d.ts +445 -0
- package/dist/runtime/MockRuntime.d.ts.map +1 -0
- package/dist/runtime/MockRuntime.js +1065 -0
- package/dist/runtime/MockRuntime.js.map +1 -0
- package/dist/runtime/MockStateManager.d.ts +233 -0
- package/dist/runtime/MockStateManager.d.ts.map +1 -0
- package/dist/runtime/MockStateManager.js +533 -0
- package/dist/runtime/MockStateManager.js.map +1 -0
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +42 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/types/MockState.d.ts +167 -0
- package/dist/runtime/types/MockState.d.ts.map +1 -0
- package/dist/runtime/types/MockState.js +43 -0
- package/dist/runtime/types/MockState.js.map +1 -0
- package/dist/types/agent.d.ts +76 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +8 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/did.d.ts +192 -0
- package/dist/types/did.d.ts.map +1 -0
- package/dist/types/did.js +38 -0
- package/dist/types/did.js.map +1 -0
- package/dist/types/eip712.d.ts +34 -0
- package/dist/types/eip712.d.ts.map +1 -1
- package/dist/types/eip712.js +31 -5
- package/dist/types/eip712.js.map +1 -1
- package/dist/types/escrow.d.ts +17 -10
- package/dist/types/escrow.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/message.d.ts +32 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +4 -0
- package/dist/types/message.js.map +1 -1
- package/dist/types/state.d.ts +28 -0
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/state.js +37 -6
- package/dist/types/state.js.map +1 -1
- package/dist/types/transaction.d.ts +17 -0
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts +125 -0
- package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -0
- package/dist/utils/ErrorRecoveryGuide.js +579 -0
- package/dist/utils/ErrorRecoveryGuide.js.map +1 -0
- package/dist/utils/Helpers.d.ts +453 -0
- package/dist/utils/Helpers.d.ts.map +1 -0
- package/dist/utils/Helpers.js +623 -0
- package/dist/utils/Helpers.js.map +1 -0
- package/dist/utils/IPFSClient.d.ts +113 -0
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +128 -7
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/Logger.d.ts +195 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +382 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/NonceManager.d.ts +234 -1
- package/dist/utils/NonceManager.d.ts.map +1 -1
- package/dist/utils/NonceManager.js +372 -7
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/RateLimiter.d.ts +253 -0
- package/dist/utils/RateLimiter.d.ts.map +1 -0
- package/dist/utils/RateLimiter.js +424 -0
- package/dist/utils/RateLimiter.js.map +1 -0
- package/dist/utils/ReceivedNonceTracker.d.ts +175 -0
- package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
- package/dist/utils/ReceivedNonceTracker.js +261 -5
- package/dist/utils/ReceivedNonceTracker.js.map +1 -1
- package/dist/utils/SDKLifecycle.d.ts +156 -0
- package/dist/utils/SDKLifecycle.d.ts.map +1 -0
- package/dist/utils/SDKLifecycle.js +347 -0
- package/dist/utils/SDKLifecycle.js.map +1 -0
- package/dist/utils/SecureNonce.d.ts +57 -0
- package/dist/utils/SecureNonce.d.ts.map +1 -0
- package/dist/utils/SecureNonce.js +80 -0
- package/dist/utils/SecureNonce.js.map +1 -0
- package/dist/utils/Semaphore.d.ts +123 -0
- package/dist/utils/Semaphore.d.ts.map +1 -0
- package/dist/utils/Semaphore.js +247 -0
- package/dist/utils/Semaphore.js.map +1 -0
- package/dist/utils/UsedAttestationTracker.d.ts +167 -0
- package/dist/utils/UsedAttestationTracker.d.ts.map +1 -0
- package/dist/utils/UsedAttestationTracker.js +309 -0
- package/dist/utils/UsedAttestationTracker.js.map +1 -0
- package/dist/utils/canonicalJson.d.ts +22 -0
- package/dist/utils/canonicalJson.d.ts.map +1 -1
- package/dist/utils/canonicalJson.js +26 -3
- package/dist/utils/canonicalJson.js.map +1 -1
- package/dist/utils/computeTypeHash.d.ts +14 -0
- package/dist/utils/computeTypeHash.d.ts.map +1 -1
- package/dist/utils/computeTypeHash.js +19 -2
- package/dist/utils/computeTypeHash.js.map +1 -1
- package/dist/utils/fsSafe.d.ts +14 -0
- package/dist/utils/fsSafe.d.ts.map +1 -0
- package/dist/utils/fsSafe.js +89 -0
- package/dist/utils/fsSafe.js.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +51 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/security.d.ts +147 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +391 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/utils/validation.d.ts +40 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +184 -7
- package/dist/utils/validation.js.map +1 -1
- package/package.json +54 -37
- package/src/ACTPClient.ts +692 -178
- package/src/abi/AgentRegistry.json +782 -0
- package/src/abi/EscrowVault.json +106 -38
- package/src/abi/IdentityRegistry.json +316 -0
- package/src/adapters/BaseAdapter.ts +473 -0
- package/src/adapters/BeginnerAdapter.ts +232 -0
- package/src/adapters/IntermediateAdapter.ts +316 -0
- package/src/adapters/index.ts +25 -0
- package/src/builders/DeliveryProofBuilder.ts +3 -2
- package/src/cli/commands/balance.ts +110 -0
- package/src/cli/commands/batch.ts +487 -0
- package/src/cli/commands/config.ts +231 -0
- package/src/cli/commands/init.ts +161 -0
- package/src/cli/commands/mint.ts +116 -0
- package/src/cli/commands/pay.ts +113 -0
- package/src/cli/commands/simulate.ts +345 -0
- package/src/cli/commands/time.ts +303 -0
- package/src/cli/commands/tx.ts +448 -0
- package/src/cli/commands/watch.ts +211 -0
- package/src/cli/index.ts +116 -0
- package/src/cli/utils/client.ts +249 -0
- package/src/cli/utils/config.ts +282 -0
- package/src/cli/utils/output.ts +465 -0
- package/src/config/networks.ts +32 -9
- package/src/errors/index.ts +298 -1
- package/src/index.ts +207 -71
- package/src/level0/Provider.ts +117 -0
- package/src/level0/ServiceDirectory.ts +131 -0
- package/src/level0/index.ts +10 -0
- package/src/level0/provide.ts +131 -0
- package/src/level0/request.ts +494 -0
- package/src/level1/Agent.ts +1432 -0
- package/src/level1/index.ts +10 -0
- package/src/level1/pricing/PriceCalculator.ts +255 -0
- package/src/level1/pricing/PricingStrategy.ts +198 -0
- package/src/level1/types/Job.ts +179 -0
- package/src/level1/types/Options.ts +291 -0
- package/src/level1/types/index.ts +8 -0
- package/src/protocol/ACTPKernel.ts +175 -23
- package/src/protocol/AgentRegistry.ts +559 -0
- package/src/protocol/DIDManager.ts +629 -0
- package/src/protocol/DIDResolver.ts +554 -0
- package/src/protocol/EASHelper.ts +230 -46
- package/src/protocol/EscrowVault.ts +68 -50
- package/src/protocol/EventMonitor.ts +44 -15
- package/src/protocol/MessageSigner.ts +193 -13
- package/src/protocol/ProofGenerator.ts +223 -4
- package/src/runtime/BlockchainRuntime.ts +993 -0
- package/src/runtime/IACTPRuntime.ts +284 -0
- package/src/runtime/MockRuntime.ts +1244 -0
- package/src/runtime/MockStateManager.ts +576 -0
- package/src/runtime/index.ts +25 -0
- package/src/runtime/types/MockState.ts +227 -0
- package/src/types/agent.ts +79 -0
- package/src/types/did.ts +223 -0
- package/src/types/escrow.ts +12 -11
- package/src/types/index.ts +5 -1
- package/src/types/state.ts +12 -3
- package/src/types/transaction.ts +4 -1
- package/src/utils/ErrorRecoveryGuide.ts +675 -0
- package/src/utils/Helpers.ts +688 -0
- package/src/utils/IPFSClient.ts +122 -5
- package/src/utils/Logger.ts +484 -0
- package/src/utils/NonceManager.ts +305 -8
- package/src/utils/RateLimiter.ts +534 -0
- package/src/utils/ReceivedNonceTracker.ts +170 -0
- package/src/utils/SDKLifecycle.ts +416 -0
- package/src/utils/SecureNonce.ts +78 -0
- package/src/utils/Semaphore.ts +276 -0
- package/src/utils/UsedAttestationTracker.ts +387 -0
- package/src/utils/fsSafe.ts +75 -0
- package/src/utils/index.ts +80 -0
- package/src/utils/security.ts +418 -0
- package/src/utils/validation.ts +164 -0
- package/src/__tests__/ProofGenerator.test.ts +0 -124
- package/src/__tests__/QuoteBuilder.test.ts +0 -516
- package/src/__tests__/StateMachine.test.ts +0 -82
- package/src/__tests__/builders/DeliveryProofBuilder.test.ts +0 -581
- package/src/__tests__/integration/ACTPClient.test.ts +0 -263
- package/src/__tests__/integration.test.ts +0 -289
- package/src/__tests__/protocol/EASHelper.test.ts +0 -472
- package/src/__tests__/protocol/EventMonitor.test.ts +0 -382
- package/src/__tests__/security/ACTPKernel.security.test.ts +0 -1167
- package/src/__tests__/security/EscrowVault.security.test.ts +0 -570
- package/src/__tests__/security/MessageSigner.security.test.ts +0 -286
- package/src/__tests__/security/NonceReplay.security.test.ts +0 -501
- package/src/__tests__/security/validation.security.test.ts +0 -376
- package/src/__tests__/utils/IPFSClient.test.ts +0 -262
- package/src/__tests__/utils/NonceManager.test.ts +0 -205
- package/src/__tests__/utils/canonicalJson.test.ts +0 -153
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent - Standard API for AI agents
|
|
3
|
+
*
|
|
4
|
+
* Provides agent-level abstractions: lifecycle, service provision,
|
|
5
|
+
* job handling, events, and statistics.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/// <reference types="node" />
|
|
10
|
+
import { EventEmitter } from 'events';
|
|
11
|
+
import { ACTPClient } from '../ACTPClient';
|
|
12
|
+
import { Job, JobHandler } from './types/Job';
|
|
13
|
+
import { RequestOptions, RequestResult, NetworkOption } from './types/Options';
|
|
14
|
+
import { PricingStrategy } from './pricing/PricingStrategy';
|
|
15
|
+
/**
|
|
16
|
+
* Agent lifecycle states
|
|
17
|
+
*/
|
|
18
|
+
export type AgentStatus = 'idle' | 'starting' | 'running' | 'paused' | 'stopping' | 'stopped';
|
|
19
|
+
/**
|
|
20
|
+
* Service filter configuration
|
|
21
|
+
*/
|
|
22
|
+
export interface ServiceFilter {
|
|
23
|
+
/**
|
|
24
|
+
* Minimum budget in USDC (e.g., 5.00 for $5)
|
|
25
|
+
*/
|
|
26
|
+
minBudget?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Maximum budget in USDC (e.g., 100.00 for $100)
|
|
29
|
+
*/
|
|
30
|
+
maxBudget?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Custom filter function
|
|
33
|
+
*/
|
|
34
|
+
custom?: (job: Job) => boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Service configuration
|
|
38
|
+
*/
|
|
39
|
+
export interface ServiceConfig {
|
|
40
|
+
/**
|
|
41
|
+
* Service name (e.g., 'translation', 'echo')
|
|
42
|
+
*/
|
|
43
|
+
name: string;
|
|
44
|
+
/**
|
|
45
|
+
* Human-readable description
|
|
46
|
+
*/
|
|
47
|
+
description?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Pricing strategy (cost + margin model)
|
|
50
|
+
*/
|
|
51
|
+
pricing?: PricingStrategy;
|
|
52
|
+
/**
|
|
53
|
+
* Service capabilities/tags
|
|
54
|
+
*/
|
|
55
|
+
capabilities?: string[];
|
|
56
|
+
/**
|
|
57
|
+
* Job filter (function or filter config)
|
|
58
|
+
*/
|
|
59
|
+
filter?: ServiceFilter | ((job: Job) => boolean);
|
|
60
|
+
/**
|
|
61
|
+
* Timeout per job (milliseconds)
|
|
62
|
+
*/
|
|
63
|
+
timeout?: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Agent configuration
|
|
67
|
+
*/
|
|
68
|
+
export interface AgentConfig {
|
|
69
|
+
/**
|
|
70
|
+
* Agent name
|
|
71
|
+
*/
|
|
72
|
+
name: string;
|
|
73
|
+
/**
|
|
74
|
+
* Agent description
|
|
75
|
+
*/
|
|
76
|
+
description?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Wallet configuration
|
|
79
|
+
*/
|
|
80
|
+
wallet?: 'auto' | 'connect' | string | {
|
|
81
|
+
privateKey: string;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Network
|
|
85
|
+
*/
|
|
86
|
+
network?: NetworkOption;
|
|
87
|
+
/**
|
|
88
|
+
* RPC URL for blockchain connection (required for testnet/mainnet)
|
|
89
|
+
*
|
|
90
|
+
* If not provided, defaults to public RPC from network config:
|
|
91
|
+
* - testnet: https://sepolia.base.org
|
|
92
|
+
* - mainnet: https://mainnet.base.org
|
|
93
|
+
*
|
|
94
|
+
* For production, consider using a dedicated RPC provider (Alchemy, Infura, etc.)
|
|
95
|
+
* for better reliability and rate limits.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* rpcUrl: 'https://base-sepolia.g.alchemy.com/v2/YOUR_API_KEY'
|
|
99
|
+
*/
|
|
100
|
+
rpcUrl?: string;
|
|
101
|
+
/**
|
|
102
|
+
* State directory (mock mode only)
|
|
103
|
+
*/
|
|
104
|
+
stateDirectory?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Behavior configuration
|
|
107
|
+
*/
|
|
108
|
+
behavior?: {
|
|
109
|
+
/**
|
|
110
|
+
* Auto-accept jobs
|
|
111
|
+
*/
|
|
112
|
+
autoAccept?: boolean | ((job: Job) => boolean | Promise<boolean>);
|
|
113
|
+
/**
|
|
114
|
+
* Max concurrent jobs
|
|
115
|
+
*/
|
|
116
|
+
concurrency?: number;
|
|
117
|
+
/**
|
|
118
|
+
* Retry configuration
|
|
119
|
+
*/
|
|
120
|
+
retry?: {
|
|
121
|
+
attempts?: number;
|
|
122
|
+
delay?: number;
|
|
123
|
+
backoff?: 'linear' | 'exponential';
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Persistence configuration
|
|
128
|
+
*/
|
|
129
|
+
persistence?: {
|
|
130
|
+
enabled?: boolean;
|
|
131
|
+
path?: string;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Logging configuration
|
|
135
|
+
*/
|
|
136
|
+
logging?: {
|
|
137
|
+
level?: 'debug' | 'info' | 'warn' | 'error';
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Agent statistics
|
|
142
|
+
*/
|
|
143
|
+
export interface AgentStats {
|
|
144
|
+
jobsReceived: number;
|
|
145
|
+
jobsCompleted: number;
|
|
146
|
+
jobsFailed: number;
|
|
147
|
+
totalEarned: number;
|
|
148
|
+
totalSpent: number;
|
|
149
|
+
averageJobTime: number;
|
|
150
|
+
successRate: number;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Agent balance information
|
|
154
|
+
*/
|
|
155
|
+
export interface AgentBalance {
|
|
156
|
+
eth: string;
|
|
157
|
+
usdc: string;
|
|
158
|
+
locked: string;
|
|
159
|
+
pending: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Agent class - Standard API
|
|
163
|
+
*
|
|
164
|
+
* Represents an autonomous AI agent that can provide services,
|
|
165
|
+
* request services from other agents, and manage its lifecycle.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const agent = new Agent({ name: 'Translator', network: 'mock' });
|
|
170
|
+
*
|
|
171
|
+
* agent.provide('translation', async (job, ctx) => {
|
|
172
|
+
* ctx.progress(50, 'Translating...');
|
|
173
|
+
* return { translated: translate(job.input.text) };
|
|
174
|
+
* });
|
|
175
|
+
*
|
|
176
|
+
* agent.on('payment:received', (amount) => {
|
|
177
|
+
* console.log(`Earned ${amount} USDC!`);
|
|
178
|
+
* });
|
|
179
|
+
*
|
|
180
|
+
* await agent.start();
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export declare class Agent extends EventEmitter {
|
|
184
|
+
/**
|
|
185
|
+
* Agent name
|
|
186
|
+
*/
|
|
187
|
+
readonly name: string;
|
|
188
|
+
/**
|
|
189
|
+
* Agent description
|
|
190
|
+
*/
|
|
191
|
+
readonly description?: string;
|
|
192
|
+
/**
|
|
193
|
+
* Network the agent operates on
|
|
194
|
+
*/
|
|
195
|
+
readonly network: NetworkOption;
|
|
196
|
+
/**
|
|
197
|
+
* Current agent status
|
|
198
|
+
*/
|
|
199
|
+
private _status;
|
|
200
|
+
/**
|
|
201
|
+
* ACTP Client instance
|
|
202
|
+
*/
|
|
203
|
+
private _client?;
|
|
204
|
+
/**
|
|
205
|
+
* Registered services
|
|
206
|
+
*/
|
|
207
|
+
private services;
|
|
208
|
+
/**
|
|
209
|
+
* Active jobs
|
|
210
|
+
*
|
|
211
|
+
* SECURITY FIX (C-2): Changed from Map to LRUCache to prevent unbounded growth
|
|
212
|
+
* Maximum 1000 active jobs with LRU eviction
|
|
213
|
+
*/
|
|
214
|
+
private activeJobs;
|
|
215
|
+
/**
|
|
216
|
+
* Processed job IDs (for deduplication)
|
|
217
|
+
*
|
|
218
|
+
* SECURITY FIX (C-1): Track jobs we've attempted to process
|
|
219
|
+
* This prevents race conditions where the same job is processed multiple times
|
|
220
|
+
* before the state transition completes
|
|
221
|
+
*/
|
|
222
|
+
private processedJobs;
|
|
223
|
+
/**
|
|
224
|
+
* Processing locks (for atomic locking)
|
|
225
|
+
*
|
|
226
|
+
* SECURITY FIX (C-1): Mutex for job processing.
|
|
227
|
+
* When we see a job, we IMMEDIATELY add to this set (atomic in single-threaded JS).
|
|
228
|
+
* This prevents race conditions where two poll cycles both pass the processedJobs.has()
|
|
229
|
+
* check before either calls processedJobs.set().
|
|
230
|
+
*/
|
|
231
|
+
private processingLocks;
|
|
232
|
+
/**
|
|
233
|
+
* Concurrency semaphore
|
|
234
|
+
*
|
|
235
|
+
* SECURITY FIX (MEDIUM-4): Limits concurrent job execution to prevent
|
|
236
|
+
* resource exhaustion (memory/CPU DoS). Uses behavior.concurrency setting.
|
|
237
|
+
*/
|
|
238
|
+
private concurrencySemaphore;
|
|
239
|
+
/**
|
|
240
|
+
* Statistics
|
|
241
|
+
*/
|
|
242
|
+
private _stats;
|
|
243
|
+
/**
|
|
244
|
+
* Cached balance (updated periodically during polling)
|
|
245
|
+
*/
|
|
246
|
+
private _balance;
|
|
247
|
+
/**
|
|
248
|
+
* Configuration
|
|
249
|
+
*/
|
|
250
|
+
private config;
|
|
251
|
+
/**
|
|
252
|
+
* Polling interval ID (for job polling)
|
|
253
|
+
*/
|
|
254
|
+
private pollingIntervalId?;
|
|
255
|
+
/**
|
|
256
|
+
* Logger instance
|
|
257
|
+
*/
|
|
258
|
+
private logger;
|
|
259
|
+
/**
|
|
260
|
+
* Creates a new Agent instance
|
|
261
|
+
*
|
|
262
|
+
* @param config - Agent configuration
|
|
263
|
+
*/
|
|
264
|
+
constructor(config: AgentConfig);
|
|
265
|
+
/**
|
|
266
|
+
* Start the agent
|
|
267
|
+
*
|
|
268
|
+
* Initializes ACTP client and begins polling for jobs.
|
|
269
|
+
*
|
|
270
|
+
* @throws {AgentLifecycleError} If agent is not in idle or stopped state
|
|
271
|
+
*/
|
|
272
|
+
start(): Promise<void>;
|
|
273
|
+
/**
|
|
274
|
+
* Stop the agent
|
|
275
|
+
*
|
|
276
|
+
* Stops polling and waits for active jobs to complete.
|
|
277
|
+
*/
|
|
278
|
+
stop(): Promise<void>;
|
|
279
|
+
/**
|
|
280
|
+
* Pause the agent
|
|
281
|
+
*
|
|
282
|
+
* Stops accepting new jobs but keeps active jobs running.
|
|
283
|
+
*/
|
|
284
|
+
pause(): void;
|
|
285
|
+
/**
|
|
286
|
+
* Resume the agent
|
|
287
|
+
*
|
|
288
|
+
* Resumes accepting new jobs after being paused.
|
|
289
|
+
*/
|
|
290
|
+
resume(): void;
|
|
291
|
+
/**
|
|
292
|
+
* Restart the agent
|
|
293
|
+
*/
|
|
294
|
+
restart(): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* Register a service handler
|
|
297
|
+
*
|
|
298
|
+
* @param serviceOrConfig - Service name or full configuration
|
|
299
|
+
* @param handler - Job handler function
|
|
300
|
+
* @param options - Optional pricing/filter configuration
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* ```typescript
|
|
304
|
+
* // Simple
|
|
305
|
+
* agent.provide('echo', async (job) => job.input);
|
|
306
|
+
*
|
|
307
|
+
* // With pricing
|
|
308
|
+
* agent.provide({
|
|
309
|
+
* name: 'translation',
|
|
310
|
+
* pricing: {
|
|
311
|
+
* cost: { base: 0.5, perUnit: { unit: 'word', rate: 0.005 } },
|
|
312
|
+
* margin: 0.40
|
|
313
|
+
* }
|
|
314
|
+
* }, async (job, ctx) => {
|
|
315
|
+
* // ... translation logic
|
|
316
|
+
* });
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
provide(serviceOrConfig: string | ServiceConfig, handler: JobHandler, options?: Partial<ServiceConfig>): this;
|
|
320
|
+
/**
|
|
321
|
+
* Request a service from another agent
|
|
322
|
+
*
|
|
323
|
+
* @param service - Service name
|
|
324
|
+
* @param options - Request options
|
|
325
|
+
* @returns Promise resolving to result
|
|
326
|
+
*/
|
|
327
|
+
request(service: string, options: Omit<RequestOptions, 'network'>): Promise<RequestResult>;
|
|
328
|
+
/**
|
|
329
|
+
* Current agent status
|
|
330
|
+
*/
|
|
331
|
+
get status(): AgentStatus;
|
|
332
|
+
/**
|
|
333
|
+
* Agent's Ethereum address
|
|
334
|
+
*/
|
|
335
|
+
get address(): string;
|
|
336
|
+
/**
|
|
337
|
+
* Registered service names
|
|
338
|
+
*/
|
|
339
|
+
get serviceNames(): string[];
|
|
340
|
+
/**
|
|
341
|
+
* Active jobs
|
|
342
|
+
*
|
|
343
|
+
* SECURITY FIX (N-2): Now uses LRUCache.values() iterator.
|
|
344
|
+
* Returns a snapshot of currently active jobs.
|
|
345
|
+
*/
|
|
346
|
+
get jobs(): Job[];
|
|
347
|
+
/**
|
|
348
|
+
* Statistics
|
|
349
|
+
*/
|
|
350
|
+
get stats(): AgentStats;
|
|
351
|
+
/**
|
|
352
|
+
* Get agent balance
|
|
353
|
+
*
|
|
354
|
+
* Returns current USDC balance plus locked/pending amounts from active transactions.
|
|
355
|
+
* Note: This is an async operation wrapped in a sync getter for convenience.
|
|
356
|
+
* For real-time balance, use getBalanceAsync() instead.
|
|
357
|
+
*/
|
|
358
|
+
get balance(): AgentBalance;
|
|
359
|
+
/**
|
|
360
|
+
* Get agent balance asynchronously (real-time)
|
|
361
|
+
*
|
|
362
|
+
* @returns Promise resolving to current balance
|
|
363
|
+
*/
|
|
364
|
+
getBalanceAsync(): Promise<AgentBalance>;
|
|
365
|
+
/**
|
|
366
|
+
* ACTP Client reference (for advanced usage)
|
|
367
|
+
*/
|
|
368
|
+
get client(): ACTPClient | undefined;
|
|
369
|
+
/**
|
|
370
|
+
* Start polling for new jobs
|
|
371
|
+
*/
|
|
372
|
+
private startPolling;
|
|
373
|
+
/**
|
|
374
|
+
* Stop polling
|
|
375
|
+
*/
|
|
376
|
+
private stopPolling;
|
|
377
|
+
/**
|
|
378
|
+
* Poll for new jobs
|
|
379
|
+
*
|
|
380
|
+
* SECURITY FIXES:
|
|
381
|
+
* - C-1: Race condition prevention using processedJobs deduplication
|
|
382
|
+
* - C-2: Memory leak prevention using LRUCache
|
|
383
|
+
* - H-1: DoS prevention by filtering transactions before loading all
|
|
384
|
+
* - H-4: Authorization checks for state transitions
|
|
385
|
+
*
|
|
386
|
+
* Queries runtime for transactions where this agent is the provider
|
|
387
|
+
* and the transaction is in INITIATED state (awaiting acceptance).
|
|
388
|
+
* For each pending transaction, creates a Job object and invokes
|
|
389
|
+
* the appropriate service handler.
|
|
390
|
+
*/
|
|
391
|
+
private pollForJobs;
|
|
392
|
+
/**
|
|
393
|
+
* Find service handler for a transaction
|
|
394
|
+
*
|
|
395
|
+
* SECURITY FIX (MEDIUM): Use exact field matching instead of substring search
|
|
396
|
+
* to prevent service routing spoofing attacks.
|
|
397
|
+
*
|
|
398
|
+
* Supports multiple formats (in priority order):
|
|
399
|
+
* 1. JSON: {"service":"name","input":...} - new structured format
|
|
400
|
+
* 2. Legacy: "service:name;input:..." - backward compatibility
|
|
401
|
+
* 3. Plain string exact match - simple service name
|
|
402
|
+
* 4. bytes32 hash - on-chain only (requires off-chain lookup)
|
|
403
|
+
*/
|
|
404
|
+
private findServiceHandler;
|
|
405
|
+
/**
|
|
406
|
+
* Check if job should be auto-accepted
|
|
407
|
+
*
|
|
408
|
+
* SECURITY FIX (MVP): Added pricing strategy evaluation
|
|
409
|
+
* - Checks service-level filters (budget constraints)
|
|
410
|
+
* - Evaluates pricing strategy if configured
|
|
411
|
+
* - Only accepts jobs that meet pricing requirements
|
|
412
|
+
*/
|
|
413
|
+
private shouldAutoAccept;
|
|
414
|
+
/**
|
|
415
|
+
* Create Job object from MockTransaction
|
|
416
|
+
*/
|
|
417
|
+
private createJobFromTransaction;
|
|
418
|
+
/**
|
|
419
|
+
* Extract service name from transaction
|
|
420
|
+
*
|
|
421
|
+
* Supports multiple formats:
|
|
422
|
+
* 1. JSON: {"service":"name","input":...}
|
|
423
|
+
* 2. Legacy: "service:name;input:..."
|
|
424
|
+
* 3. Plain string (service name directly)
|
|
425
|
+
*/
|
|
426
|
+
private extractServiceName;
|
|
427
|
+
/**
|
|
428
|
+
* Extract job input from transaction
|
|
429
|
+
*
|
|
430
|
+
* Supports multiple formats:
|
|
431
|
+
* 1. JSON: {"service":"name","input":{...}}
|
|
432
|
+
* 2. Legacy: "service:name;input:JSON"
|
|
433
|
+
*/
|
|
434
|
+
private extractJobInput;
|
|
435
|
+
/**
|
|
436
|
+
* Extract metadata from transaction
|
|
437
|
+
*/
|
|
438
|
+
private extractMetadata;
|
|
439
|
+
/**
|
|
440
|
+
* Convert amount string to number (USDC has 6 decimals)
|
|
441
|
+
*/
|
|
442
|
+
private convertAmountToNumber;
|
|
443
|
+
/**
|
|
444
|
+
* Process a job by invoking the handler
|
|
445
|
+
*
|
|
446
|
+
* SECURITY FIX (C-2): Always cleanup activeJobs on completion/failure
|
|
447
|
+
* SECURITY FIX (MEDIUM-4): Uses semaphore to limit concurrent execution
|
|
448
|
+
*/
|
|
449
|
+
private processJob;
|
|
450
|
+
/**
|
|
451
|
+
* Create JobContext for handler execution
|
|
452
|
+
*/
|
|
453
|
+
private createJobContext;
|
|
454
|
+
/**
|
|
455
|
+
* Wait for active jobs to complete
|
|
456
|
+
*/
|
|
457
|
+
private waitForActiveJobs;
|
|
458
|
+
/**
|
|
459
|
+
* Generate address based on wallet configuration
|
|
460
|
+
*
|
|
461
|
+
* SECURITY FIX (HIGH): For testnet/mainnet, MUST derive from private key.
|
|
462
|
+
* For mock mode, can use deterministic address for convenience.
|
|
463
|
+
*/
|
|
464
|
+
private generateAddress;
|
|
465
|
+
/**
|
|
466
|
+
* Get private key from configuration
|
|
467
|
+
*
|
|
468
|
+
* SECURITY FIX (HIGH): Validate private key format before use
|
|
469
|
+
*/
|
|
470
|
+
private getPrivateKey;
|
|
471
|
+
}
|
|
472
|
+
//# sourceMappingURL=Agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/level1/Agent.ts"],"names":[],"mappings":"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"}
|