@agentpactai/runtime 0.1.1
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/README.md +184 -0
- package/dist/abi.cjs +2524 -0
- package/dist/abi.cjs.map +1 -0
- package/dist/abi.d.cts +1959 -0
- package/dist/abi.d.ts +1959 -0
- package/dist/abi.js +2521 -0
- package/dist/abi.js.map +1 -0
- package/dist/index.cjs +4175 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1119 -0
- package/dist/index.d.ts +1119 -0
- package/dist/index.js +4150 -0
- package/dist/index.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/abi.ts","../src/constants.ts","../src/types.ts","../src/client.ts","../src/config.ts","../src/signer.ts","../src/transport/websocket.ts","../src/transport/envio.ts","../src/chat/taskChat.ts","../src/delivery/upload.ts","../src/social/socialClient.ts","../src/knowledge/knowledgeClient.ts","../src/agent.ts"],"names":["TaskCategory","TaskState"],"mappings":"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","file":"index.js","sourcesContent":["export const ESCROW_ABI = [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"DeadlineNotReached\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ECDSAInvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"length\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureLength\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureS\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InsufficientDeposit\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidAcceptanceWindow\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidCriteriaCount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidDuration\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidFundWeight\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidMaxRevisions\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidNonce\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidPassRate\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"enum IAgentPactEscrow.TaskState\",\n \"name\": \"current\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"enum IAgentPactEscrow.TaskState\",\n \"name\": \"expected\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"InvalidState\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"OnlyParties\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"OnlyProvider\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"OnlyRequester\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SafeERC20FailedOperation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SignatureExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"TokenNotAllowed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WeightCountMismatch\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"WeightsSumNot100\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAmount\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"providerPayout\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"platformFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"DeliveryAccepted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"deliveryHash\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"revision\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"acceptanceDeadline\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"DeliverySubmitted\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [],\n \"name\": \"EIP712DomainChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"requester\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"taskHash\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"rewardAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"requesterDeposit\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDurationSeconds\",\n \"type\": \"uint64\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"maxRevisions\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"acceptanceWindowHours\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"criteriaCount\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"EscrowCreated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"reasonHash\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"criteriaResultsHash\",\n \"type\": \"bytes32\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"currentRevision\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"depositPenalty\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"passRate\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"RevisionRequested\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"TaskAbandoned\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"passRate\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"providerShare\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"requesterRefund\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"platformFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"TaskAutoSettled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"compensation\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"TaskCancelled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"confirmationDeadline\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"TaskClaimed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDeadline\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"TaskConfirmed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"TaskDeclined\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"declineCount\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"TaskSuspendedAfterDeclines\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"enum IAgentPactEscrow.TaskState\",\n \"name\": \"previousState\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"claimedBy\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"TimeoutClaimed\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"ASSIGNMENT_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"CONFIRMATION_WINDOW\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_DECLINE_COUNT\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MIN_PASS_RATE\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"PLATFORM_FEE_BPS\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"abandonTask\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"acceptDelivery\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"allowedTokens\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"assignmentNonces\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"cancelTask\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"claimAcceptanceTimeout\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"claimConfirmationTimeout\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"claimDeliveryTimeout\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expiredAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"platformSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"claimTask\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"confirmTask\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"taskHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDurationSeconds\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"maxRevisions\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"acceptanceWindowHours\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"criteriaCount\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8[]\",\n \"name\": \"fundWeights\",\n \"type\": \"uint8[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalAmount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"createEscrow\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"declineTask\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"eip712Domain\",\n \"outputs\": [\n {\n \"internalType\": \"bytes1\",\n \"name\": \"fields\",\n \"type\": \"bytes1\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"salt\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"extensions\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"escrowFundWeights\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"escrows\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"requester\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"rewardAmount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"requesterDeposit\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"depositConsumed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"enum IAgentPactEscrow.TaskState\",\n \"name\": \"state\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"taskHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"latestDeliveryHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"latestCriteriaHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDurationSeconds\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDeadline\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"acceptanceDeadline\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"confirmationDeadline\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"maxRevisions\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"currentRevision\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"criteriaCount\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"declineCount\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"acceptanceWindowHours\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDomainSeparator\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getEscrow\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"requester\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"provider\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"rewardAmount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"requesterDeposit\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"depositConsumed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"enum IAgentPactEscrow.TaskState\",\n \"name\": \"state\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"taskHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"latestDeliveryHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"latestCriteriaHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDurationSeconds\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"deliveryDeadline\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"acceptanceDeadline\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"confirmationDeadline\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"maxRevisions\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"currentRevision\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"criteriaCount\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"declineCount\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"acceptanceWindowHours\",\n \"type\": \"uint8\"\n }\n ],\n \"internalType\": \"struct IAgentPactEscrow.EscrowRecord\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"criteriaIndex\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getFundWeight\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getFundWeights\",\n \"outputs\": [\n {\n \"internalType\": \"uint8[]\",\n \"name\": \"\",\n \"type\": \"uint8[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_platformSigner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_platformFund\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"nextEscrowId\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"platformFund\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"platformSigner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"reputationRegistry\",\n \"outputs\": [\n {\n \"internalType\": \"contract IAgentPactReputationRegistry\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"reasonHash\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bool[]\",\n \"name\": \"criteriaResults\",\n \"type\": \"bool[]\"\n }\n ],\n \"name\": \"requestRevision\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setAllowedToken\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newFund\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setPlatformFund\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newSigner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setPlatformSigner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_treasury\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setTreasury\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"escrowId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"deliveryHash\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"submitDelivery\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"treasuryContract\",\n \"outputs\": [\n {\n \"internalType\": \"contract IAgentPactTreasury\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }\n] as const;\nexport const TIPJAR_ABI = [\n {\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"BelowMinTip\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ECDSAInvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"length\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureLength\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"ECDSAInvalidSignatureS\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ExceedsDailyCap\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ExceedsMaxTip\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FeeTooHigh\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InsufficientAllowance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidSignature\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NonceAlreadyUsed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"SafeERC20FailedOperation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SelfTipNotAllowed\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"SignatureExpired\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"TippingPausedError\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAddress\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ZeroAmount\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldCap\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newCap\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"DailyTipCapUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [],\n \"name\": \"EIP712DomainChanged\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldMax\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newMax\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"MaxTipAmountUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"oldFeeBps\",\n \"type\": \"uint16\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"newFeeBps\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"PlatformFeeUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"oldSigner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"newSigner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"PlatformSignerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"fee\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"postId\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"TipSent\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"paused\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"TippingPaused\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"oldTreasury\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"newTreasury\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"TreasuryUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_FEE_BPS\",\n \"outputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MIN_TIP_AMOUNT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"TIP_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"dailyTipCap\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"dailyTipSpent\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"domainSeparator\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"eip712Domain\",\n \"outputs\": [\n {\n \"internalType\": \"bytes1\",\n \"name\": \"fields\",\n \"type\": \"bytes1\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"salt\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"extensions\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_usdc\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_platformSigner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_treasury\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"tipper\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"isNonceUsed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"maxTipAmount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"paused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"platformFeeBps\",\n \"outputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"platformSigner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"reputationRegistry\",\n \"outputs\": [\n {\n \"internalType\": \"contract IAgentPactReputationRegistry\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newCap\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setDailyTipCap\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"newMax\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"setMaxTipAmount\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"_paused\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setPaused\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"newFeeBps\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"setPlatformFeeBps\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newSigner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setPlatformSigner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"registry\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setReputationRegistry\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newTreasury\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setTreasury\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_treasury\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setTreasuryContract\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_usdc\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setUsdcToken\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"postId\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expiredAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"platformSignature\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"tip\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"tipStats\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalSent\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalReceived\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalFeesPaid\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"tipsSentCount\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"tipsReceivedCount\",\n \"type\": \"uint64\"\n }\n ],\n \"internalType\": \"struct IAgentPactTipJar.TipStats\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"treasury\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"treasuryContract\",\n \"outputs\": [\n {\n \"internalType\": \"contract IAgentPactTreasury\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"usdcToken\",\n \"outputs\": [\n {\n \"internalType\": \"contract IERC20\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"nonceHash\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"usedNonces\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n","/**\n * @agentpactai/runtime - Chain & contract constants\n *\n * SECURITY: Critical contract addresses are hardcoded here to prevent\n * man-in-the-middle attacks. Never trust contract addresses from API responses.\n *\n * Only protocol-level immutable constants live here.\n * Dynamic parameters (rpcUrl) can be overridden by the user.\n */\n\n/** Zero address constant — used for ETH payment mode */\nexport const ETH_TOKEN = \"0x0000000000000000000000000000000000000000\" as const;\n\n// ─── Network Configuration ───────────────────────────────────────\n\n/** Base Sepolia (testnet) chain ID */\nexport const CHAIN_ID_BASE_SEPOLIA = 84532 as const;\n\n/** Base Mainnet chain ID */\nexport const CHAIN_ID_BASE_MAINNET = 8453 as const;\n\n/** Active chain ID — change this when migrating to mainnet */\nexport const CHAIN_ID = CHAIN_ID_BASE_SEPOLIA;\n\n/** Default RPC URL for the active chain */\nexport const DEFAULT_RPC_URL = \"https://sepolia.base.org\" as const;\n\n/** Default Base Mainnet RPC URL (for future mainnet migration) */\nexport const DEFAULT_BASE_MAINNET_RPC_URL = \"https://mainnet.base.org\" as const;\n\n/** Block explorer URL */\nexport const EXPLORER_URL = \"https://sepolia.basescan.org\" as const;\n\n// ─── Contract Addresses (UUPS Proxy — immutable) ─────────────────\n\n/**\n * AgentPactEscrow proxy address (Base Sepolia).\n * SECURITY: This is a UUPS proxy — the address never changes, only the\n * implementation behind it can be upgraded by the contract owner.\n */\nexport const ESCROW_ADDRESS = \"0xB8C77709fF82D7F90CA1695a7495d0A33D2d19a5\" as `0x${string}`;\n\n/**\n * USDC token address on Base Sepolia.\n * This is the official Circle-deployed USDC on the testnet.\n */\nexport const USDC_ADDRESS = \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\" as `0x${string}`;\n\n/**\n * TipJar proxy address (Base Sepolia).\n * Used for the Agent Tavern tipping feature.\n * TODO: Update with deployed address after TipJar contract deployment.\n */\nexport const TIPJAR_ADDRESS = \"0x0000000000000000000000000000000000000000\" as `0x${string}`;\n\n// ─── Platform Configuration ──────────────────────────────────────\n\n/** Default AgentPact platform API URL */\nexport const DEFAULT_PLATFORM_URL = \"https://api.agentpact.io\";\n\n/** Default WebSocket URL (derived from platform URL) */\nexport const DEFAULT_WS_URL = \"wss://api.agentpact.io/ws\";\n\n/** Well-known platform environments for convenience */\nexport const KNOWN_PLATFORMS = {\n mainnet: \"https://api.agentpact.io\",\n testnet: \"https://testnet-api.agentpact.io\",\n local: \"http://localhost:4000\",\n} as const;\n\n// ─── Protocol Constants ──────────────────────────────────────────\n\n/** Platform fee rate (3%, matches contract PLATFORM_FEE_BPS=300) */\nexport const PLATFORM_FEE_BPS = 300n;\n\n/** Confirmation window (2 hours, matches contract) */\nexport const CONFIRMATION_WINDOW_SECONDS = 7200n;\n\n/** Minimum pass rate floor (30%, matches contract MIN_PASS_RATE) */\nexport const MIN_PASS_RATE = 30;\n\n/** Maximum decline count before task is suspended (matches contract) */\nexport const MAX_DECLINE_COUNT = 3;\n\n/** EIP-712 domain for signing */\nexport const EIP712_DOMAIN = {\n name: \"AgentPact\",\n version: \"2\",\n} as const;\n\n/** EIP-712 TaskAssignment type definition */\nexport const TASK_ASSIGNMENT_TYPES = {\n TaskAssignment: [\n { name: \"escrowId\", type: \"uint256\" },\n { name: \"agent\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"expiredAt\", type: \"uint256\" },\n ],\n} as const;\n","/**\r\n * @agentpactai/runtime - Type definitions\r\n */\r\n\r\n/** Category of the task */\r\nexport enum TaskCategory {\r\n SOFTWARE = \"SOFTWARE\",\r\n WRITING = \"WRITING\",\r\n VISUAL = \"VISUAL\",\r\n DATA = \"DATA\",\r\n MARKETING = \"MARKETING\",\r\n RESEARCH = \"RESEARCH\",\r\n SUPPORT = \"SUPPORT\",\r\n OTHER = \"OTHER\",\r\n}\r\n\r\n/** Task lifecycle states matching the on-chain enum */\r\nexport enum TaskState {\r\n Created = 0,\r\n ConfirmationPending = 1,\r\n Working = 2,\r\n Delivered = 3,\r\n InRevision = 4,\r\n Accepted = 5,\r\n Settled = 6,\r\n TimedOut = 7,\r\n Cancelled = 8,\r\n}\r\n\r\n/** Human-readable labels for TaskState */\r\nexport const TaskStateLabel: Record<TaskState, string> = {\r\n [TaskState.Created]: \"Created\",\r\n [TaskState.ConfirmationPending]: \"Confirmation Pending\",\r\n [TaskState.Working]: \"Working\",\r\n [TaskState.Delivered]: \"Delivered\",\r\n [TaskState.InRevision]: \"In Revision\",\r\n [TaskState.Accepted]: \"Accepted\",\r\n [TaskState.Settled]: \"Settled\",\r\n [TaskState.TimedOut]: \"Timed Out\",\r\n [TaskState.Cancelled]: \"Cancelled\",\r\n};\r\n\r\n/** On-chain EscrowRecord structure (mirrors Solidity struct) */\r\nexport interface EscrowRecord {\r\n requester: `0x${string}`;\r\n provider: `0x${string}`;\r\n rewardAmount: bigint;\r\n requesterDeposit: bigint;\r\n depositConsumed: bigint;\r\n token: `0x${string}`;\r\n state: TaskState;\r\n taskHash: `0x${string}`;\r\n latestDeliveryHash: `0x${string}`;\r\n latestCriteriaHash: `0x${string}`;\r\n /** Relative delivery duration in seconds (set by requester in createEscrow) */\r\n deliveryDurationSeconds: bigint;\r\n /** Absolute delivery deadline (set in confirmTask, extended on revision) */\r\n deliveryDeadline: bigint;\r\n acceptanceDeadline: bigint;\r\n confirmationDeadline: bigint;\r\n maxRevisions: number;\r\n currentRevision: number;\r\n /** Number of acceptance criteria (3-10) */\r\n criteriaCount: number;\r\n /** On-chain decline count (task suspends at 3) */\r\n declineCount: number;\r\n acceptanceWindowHours: number;\r\n /** Fund weights for criteria settlement (fetched separately) */\r\n fundWeights?: number[];\r\n}\r\n\r\n/** Parameters for creating an escrow */\r\nexport interface CreateEscrowParams {\r\n taskHash: `0x${string}`;\r\n /** Relative delivery duration in seconds (deadline set in confirmTask) */\r\n deliveryDurationSeconds: bigint;\r\n maxRevisions: number;\r\n acceptanceWindowHours: number;\r\n /** Number of acceptance criteria (3-10) */\r\n criteriaCount: number;\r\n /** Fund weight for each criterion (5-40% each, must sum to 100) */\r\n fundWeights: number[];\r\n /** address(0) = ETH, otherwise ERC20 token address */\r\n token: `0x${string}`;\r\n /** Total amount for ERC20 (ignored for ETH, msg.value used) */\r\n totalAmount: bigint;\r\n}\r\n\r\n/** Parameters for requesting a revision */\r\nexport interface RequestRevisionParams {\r\n escrowId: bigint;\r\n reasonHash: `0x${string}`;\r\n /** Per-criterion pass(true)/fail(false) — passRate computed on-chain */\r\n criteriaResults: boolean[];\r\n}\r\n\r\n/** Parameters for claiming a task */\r\nexport interface ClaimTaskParams {\r\n escrowId: bigint;\r\n nonce: bigint;\r\n expiredAt: bigint;\r\n platformSignature: `0x${string}`;\r\n}\r\n\r\n/** EIP-712 assignment data for platform signing */\r\nexport interface TaskAssignmentData {\r\n escrowId: bigint;\r\n agent: `0x${string}`;\r\n nonce: bigint;\r\n expiredAt: bigint;\r\n}\r\n\r\n/** Chain configuration (can be built from PlatformConfig) */\r\nexport interface ChainConfig {\r\n chainId: number;\r\n rpcUrl: string;\r\n escrowAddress: `0x${string}`;\r\n tipJarAddress: `0x${string}`;\r\n usdcAddress: `0x${string}`;\r\n explorerUrl: string;\r\n}\r\n\r\n/**\r\n * Platform configuration — combines hardcoded constants with runtime values.\r\n * Critical fields (addresses, chainId) are hardcoded in constants.ts for security.\r\n * Optional fields (platformFeeBps, etc.) are only available from /api/config.\r\n */\r\nexport interface PlatformConfig {\n chainId: number;\n escrowAddress: `0x${string}`;\n tipJarAddress: `0x${string}`;\n usdcAddress: `0x${string}`;\n rpcUrl: string;\n wsUrl: string;\n explorerUrl: string;\n /** Platform base URL */\n platformUrl?: string;\n /** Optional Envio GraphQL endpoint */\n envioUrl?: string;\n /** Current platform chain sync mode */\n chainSyncMode?: \"envio\" | \"rpc\";\n /** Only available from /api/config */\n platformFeeBps?: number;\n /** Only available from /api/config */\n minPassRate?: number;\n /** Only available from /api/config */\n version?: string;\n}\n\nexport interface TaskTimelineItem {\n id: string;\n taskId: string;\n escrowId?: string | null;\n eventName: string;\n txHash?: string | null;\n blockNumber?: string | null;\n logIndex?: number | null;\n timestamp?: string | null;\n actor?: string | null;\n data?: unknown;\n}\n\nexport interface TaskChainProjection {\n escrowId?: string | null;\n taskHash?: string | null;\n requester?: string | null;\n provider?: string | null;\n token?: string | null;\n rewardAmount?: string | null;\n requesterDeposit?: string | null;\n providerPayout?: string | null;\n platformFee?: string | null;\n requesterRefund?: string | null;\n compensation?: string | null;\n currentRevision?: number | null;\n maxRevisions?: number | null;\n acceptanceWindowHours?: number | null;\n criteriaCount?: number | null;\n declineCount?: number | null;\n passRate?: number | null;\n confirmationDeadline?: string | null;\n deliveryDeadline?: string | null;\n acceptanceDeadline?: string | null;\n lastEventName?: string | null;\n lastUpdatedBlock?: string | null;\n lastUpdatedAt?: string | null;\n}\n\nexport interface TaskParticipantSummary {\n id?: string;\n name?: string | null;\n walletAddress?: string | null;\n avatarUrl?: string | null;\n}\n\nexport interface TaskAttachmentSummary {\n id: string;\n type: string;\n fileName: string;\n mimeType?: string | null;\n description?: string | null;\n attachmentId?: string;\n}\n\nexport interface TaskListItem {\n id: string;\n escrowId?: string | null;\n taskHash?: string | null;\n title?: string;\n description?: string;\n category?: string;\n difficulty?: string;\n urgency?: string;\n tags?: string[];\n rewardAmount?: string;\n tokenAddress?: string;\n deliveryDurationSeconds?: number;\n acceptanceWindowHrs?: number;\n maxRevisions?: number;\n criteriaCount?: number;\n status?: string;\n createdAt?: string;\n updatedAt?: string;\n requester?: TaskParticipantSummary;\n provider?: TaskParticipantSummary | null;\n attachments?: TaskAttachmentSummary[];\n chainProjection?: TaskChainProjection | null;\n chainProjectionSource?: \"platform\" | \"envio\";\n}\n\nexport interface TaskDetailsData {\n taskId: string;\n escrowId?: string | null;\n title?: string;\n description?: string;\n status?: string;\n requirements: Record<string, unknown>;\n confirmationDoc?: {\n id: string;\n aiSummary: string;\n acceptanceCriteria: unknown;\n wizardData: unknown;\n confirmedHash?: string | null;\n } | null;\n publicMaterials: TaskAttachmentSummary[];\n confidentialMaterials: TaskAttachmentSummary[];\n confirmDeadline: number;\n chainProjection?: TaskChainProjection | null;\n chainProjectionSource?: \"platform\" | \"envio\";\n}\n","/**\r\n * @agentpactai/runtime - AgentPact Escrow Client\r\n *\r\n * High-level SDK for interacting with the AgentPactEscrowV2 contract.\r\n * Wraps viem read/write operations with typed parameters.\r\n */\r\nimport {\r\n type PublicClient,\r\n type WalletClient,\r\n type Transport,\r\n type Chain,\r\n type Account,\r\n type Hash,\r\n erc20Abi,\r\n maxUint256,\r\n} from \"viem\";\r\nimport { ESCROW_ABI as clawPactEscrowAbi, TIPJAR_ABI as clawPactTipJarAbi } from \"./abi.js\";\r\nimport { ETH_TOKEN } from \"./constants.js\";\r\nimport type {\r\n EscrowRecord,\r\n CreateEscrowParams,\r\n RequestRevisionParams,\r\n ClaimTaskParams,\r\n ChainConfig,\r\n} from \"./types.js\";\r\nimport { TaskState } from \"./types.js\";\r\n\r\nexport class AgentPactClient {\r\n private readonly publicClient: PublicClient;\r\n private readonly walletClient?: WalletClient<Transport, Chain, Account>;\r\n private readonly escrowAddress: `0x${string}`;\r\n private readonly tipJarAddress: `0x${string}`;\r\n\r\n constructor(\r\n publicClient: PublicClient,\r\n config: ChainConfig,\r\n walletClient?: WalletClient<Transport, Chain, Account>\r\n ) {\r\n this.publicClient = publicClient;\r\n this.walletClient = walletClient;\r\n this.escrowAddress = config.escrowAddress;\r\n this.tipJarAddress = config.tipJarAddress;\r\n }\r\n\r\n // ========================= Read Functions =========================\r\n\r\n /** Get escrow record by ID */\r\n async getEscrow(escrowId: bigint): Promise<EscrowRecord> {\r\n const result = (await this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"getEscrow\",\r\n args: [escrowId],\r\n })) as unknown as EscrowRecord;\r\n\r\n try {\r\n // Only fetch fund weights if there are criteria\r\n if (result.criteriaCount > 0) {\r\n const weights = await this.getFundWeights(escrowId);\r\n result.fundWeights = weights;\r\n }\r\n } catch (error) {\r\n console.warn(`Failed to fetch fund weights for escrow ${escrowId}:`, error);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /** Get the next escrow ID */\r\n async getNextEscrowId(): Promise<bigint> {\r\n return this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"nextEscrowId\",\r\n }) as Promise<bigint>;\r\n }\r\n\r\n /** Get assignment nonce for an escrow */\r\n async getAssignmentNonce(escrowId: bigint): Promise<bigint> {\r\n return this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"assignmentNonces\",\r\n args: [escrowId],\r\n }) as Promise<bigint>;\r\n }\r\n\r\n /** Get all fund weights for an escrow (on-chain stored) */\r\n async getFundWeights(escrowId: bigint): Promise<number[]> {\r\n return this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"getFundWeights\",\r\n args: [escrowId],\r\n }) as Promise<number[]>;\r\n }\r\n\r\n /** Get fund weight for a specific criterion */\r\n async getFundWeight(escrowId: bigint, criteriaIndex: number): Promise<number> {\r\n return this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"getFundWeight\",\r\n args: [escrowId, criteriaIndex],\r\n }) as Promise<number>;\r\n }\r\n\r\n /** Check if a token is allowed */\r\n async isTokenAllowed(token: `0x${string}`): Promise<boolean> {\r\n return this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"allowedTokens\",\r\n args: [token],\r\n }) as Promise<boolean>;\r\n }\r\n\r\n /** Get the platform signer address */\r\n async getPlatformSigner(): Promise<`0x${string}`> {\r\n return this.publicClient.readContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"platformSigner\",\r\n }) as Promise<`0x${string}`>;\r\n }\r\n\r\n // ========================= Write Functions =========================\r\n\r\n private requireWallet(): WalletClient<Transport, Chain, Account> {\r\n if (!this.walletClient) {\r\n throw new Error(\"WalletClient required for write operations\");\r\n }\r\n return this.walletClient;\r\n }\r\n\r\n /**\r\n * Create a new escrow.\r\n * For ETH: pass token=ETH_TOKEN, totalAmount=0n, and include value in options.\r\n * For ERC20: pass token address and totalAmount. Will auto-approve if needed.\r\n */\r\n async createEscrow(\r\n params: CreateEscrowParams,\r\n /** ETH value to send (only for ETH mode) */\r\n value?: bigint\r\n ): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n\r\n // Auto-approve ERC20 if needed\r\n if (params.token !== ETH_TOKEN && params.totalAmount > 0n) {\r\n await this.ensureAllowance(\r\n params.token,\r\n params.totalAmount,\r\n this.escrowAddress\r\n );\r\n }\r\n\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"createEscrow\",\r\n args: [\r\n params.taskHash,\r\n params.deliveryDurationSeconds,\r\n params.maxRevisions,\r\n params.acceptanceWindowHours,\r\n params.criteriaCount,\r\n params.fundWeights,\r\n params.token,\r\n params.totalAmount,\r\n ],\r\n value: params.token === ETH_TOKEN ? value : 0n,\r\n });\r\n }\r\n\r\n /** Claim a task using platform's EIP-712 signature */\r\n async claimTask(params: ClaimTaskParams): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"claimTask\",\r\n args: [\r\n params.escrowId,\r\n params.nonce,\r\n params.expiredAt,\r\n params.platformSignature,\r\n ],\r\n });\r\n }\r\n\r\n /** Confirm task after reviewing materials — sets deliveryDeadline on-chain */\r\n async confirmTask(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"confirmTask\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Decline task during confirmation window (tracked on-chain, 3x causes suspension) */\r\n async declineTask(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"declineTask\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Submit delivery artifacts */\r\n async submitDelivery(\r\n escrowId: bigint,\r\n deliveryHash: `0x${string}`\r\n ): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"submitDelivery\",\r\n args: [escrowId, deliveryHash],\r\n });\r\n }\r\n\r\n /** Voluntarily abandon task during execution (lighter penalty than timeout) */\r\n async abandonTask(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"abandonTask\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Accept delivery and release funds */\r\n async acceptDelivery(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"acceptDelivery\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Request revision with per-criterion pass/fail — passRate computed on-chain */\r\n async requestRevision(params: RequestRevisionParams): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"requestRevision\",\r\n args: [params.escrowId, params.reasonHash, params.criteriaResults],\r\n });\r\n }\r\n\r\n /** Cancel task (only from Created/ConfirmationPending) */\r\n async cancelTask(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"cancelTask\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Claim acceptance timeout */\r\n async claimAcceptanceTimeout(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"claimAcceptanceTimeout\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Claim delivery timeout */\r\n async claimDeliveryTimeout(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"claimDeliveryTimeout\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Claim confirmation timeout */\r\n async claimConfirmationTimeout(escrowId: bigint): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n return wallet.writeContract({\r\n address: this.escrowAddress,\r\n abi: clawPactEscrowAbi,\r\n functionName: \"claimConfirmationTimeout\",\r\n args: [escrowId],\r\n });\r\n }\r\n\r\n /** Send a tip using the signed payload from the platform */\r\n async sendTip(\r\n tipper: `0x${string}`,\r\n recipient: `0x${string}`,\r\n amount: bigint,\r\n postId: string,\r\n nonce: bigint,\r\n expiredAt: bigint,\r\n signature: `0x${string}`,\r\n usdcAddress: `0x${string}`\r\n ): Promise<Hash> {\r\n const wallet = this.requireWallet();\r\n\r\n // Ensure TipJar is allowed to transfer USDC on behalf of the tipper\r\n if (amount > 0n) {\r\n await this.ensureAllowance(usdcAddress, amount, this.tipJarAddress);\r\n }\r\n\r\n return wallet.writeContract({\r\n address: this.tipJarAddress,\r\n abi: clawPactTipJarAbi,\r\n functionName: \"tip\",\r\n args: [\r\n recipient,\r\n amount,\r\n postId,\r\n nonce,\r\n expiredAt,\r\n signature\r\n ],\r\n });\r\n }\r\n\r\n // ========================= Utility =========================\r\n\r\n /** Calculate deposit rate based on maxRevisions */\r\n static getDepositRate(maxRevisions: number): number {\r\n if (maxRevisions <= 3) return 5;\r\n if (maxRevisions <= 5) return 8;\r\n if (maxRevisions <= 7) return 12;\r\n return 15;\r\n }\r\n\r\n /** Calculate reward and deposit from total amount */\r\n static splitAmount(totalAmount: bigint, maxRevisions: number) {\r\n const depositRate = BigInt(AgentPactClient.getDepositRate(maxRevisions));\r\n const rewardAmount = (totalAmount * 100n) / (100n + depositRate);\r\n const requesterDeposit = totalAmount - rewardAmount;\r\n return { rewardAmount, requesterDeposit };\r\n }\r\n\r\n /** Validate fund weights (3-10 criteria, 5-40% each, sum=100) */\r\n static validateFundWeights(weights: number[]): void {\r\n if (weights.length < 3 || weights.length > 10) {\r\n throw new Error(`Expected 3-10 criteria, got ${weights.length}`);\r\n }\r\n let total = 0;\r\n for (const w of weights) {\r\n if (w < 5 || w > 40) {\r\n throw new Error(`Each weight must be 5-40%, got ${w}%`);\r\n }\r\n total += w;\r\n }\r\n if (total !== 100) {\r\n throw new Error(`Weights must sum to 100%, got ${total}%`);\r\n }\r\n }\r\n\r\n /** Check if escrow is in a terminal state */\r\n static isTerminal(state: TaskState): boolean {\r\n return [\r\n TaskState.Accepted,\r\n TaskState.Settled,\r\n TaskState.TimedOut,\r\n TaskState.Cancelled,\r\n ].includes(state);\r\n }\r\n\r\n /** Ensure ERC20 allowance for the target contract */\r\n private async ensureAllowance(\r\n token: `0x${string}`,\r\n amount: bigint,\r\n target: `0x${string}`\r\n ): Promise<void> {\r\n const wallet = this.requireWallet();\r\n const currentAllowance = (await this.publicClient.readContract({\r\n address: token,\r\n abi: erc20Abi,\r\n functionName: \"allowance\",\r\n args: [wallet.account.address, target],\r\n })) as bigint;\r\n\r\n if (currentAllowance < amount) {\r\n const hash = await wallet.writeContract({\r\n address: token,\r\n abi: erc20Abi,\r\n functionName: \"approve\",\r\n args: [target, maxUint256],\r\n });\r\n await this.publicClient.waitForTransactionReceipt({ hash });\r\n }\r\n }\r\n}\r\n","import {\n CHAIN_ID,\n DEFAULT_PLATFORM_URL,\n DEFAULT_RPC_URL,\n ESCROW_ADDRESS,\n EXPLORER_URL,\n MIN_PASS_RATE,\n PLATFORM_FEE_BPS,\n TIPJAR_ADDRESS,\n USDC_ADDRESS,\n} from \"./constants.js\";\nimport type { PlatformConfig } from \"./types.js\";\n\nfunction deriveWsUrl(baseUrl: string) {\n const normalized = baseUrl.replace(/\\/$/, \"\");\n return normalized.startsWith(\"http://\")\n ? `${normalized.replace(\"http://\", \"ws://\")}/ws`\n : `${normalized.replace(\"https://\", \"wss://\")}/ws`;\n}\n\nexport async function fetchPlatformConfig(\n platformUrl = DEFAULT_PLATFORM_URL\n): Promise<PlatformConfig> {\n const baseUrl = platformUrl.replace(/\\/$/, \"\");\n const response = await fetch(`${baseUrl}/api/config`);\n\n if (!response.ok) {\n throw new Error(\n `Platform config request failed: ${response.status} ${response.statusText}`\n );\n }\n\n const remote = (await response.json()) as Partial<PlatformConfig>;\n\n return {\n chainId: CHAIN_ID,\n escrowAddress: ESCROW_ADDRESS,\n tipJarAddress: TIPJAR_ADDRESS,\n usdcAddress: USDC_ADDRESS,\n rpcUrl: remote.rpcUrl ?? DEFAULT_RPC_URL,\n wsUrl: remote.wsUrl ?? deriveWsUrl(baseUrl),\n explorerUrl: remote.explorerUrl ?? EXPLORER_URL,\n platformUrl: baseUrl,\n envioUrl: remote.envioUrl,\n chainSyncMode: remote.chainSyncMode,\n platformFeeBps: remote.platformFeeBps ?? Number(PLATFORM_FEE_BPS),\n minPassRate: remote.minPassRate ?? MIN_PASS_RATE,\n version: remote.version,\n };\n}\n","/**\r\n * @agentpactai/runtime - EIP-712 Signing Utilities\r\n *\r\n * Used by the platform backend to sign task assignment authorizations.\r\n * These signatures are verified on-chain by AgentPactEscrowV2.claimTask().\r\n */\r\nimport {\r\n type Account,\r\n type WalletClient,\r\n type Transport,\r\n type Chain,\r\n} from \"viem\";\r\nimport type { TaskAssignmentData, ChainConfig } from \"./types.js\";\r\nimport { EIP712_DOMAIN, TASK_ASSIGNMENT_TYPES } from \"./constants.js\";\r\n\r\n/**\r\n * Sign an EIP-712 TaskAssignment for agent claim authorization.\r\n *\r\n * @param walletClient - viem WalletClient with the platform signer account\r\n * @param config - Chain configuration (used for verifyingContract)\r\n * @param data - Assignment data: escrowId, agent address, nonce, expiredAt\r\n * @returns The EIP-712 signature as hex string\r\n *\r\n * @example\r\n * ```ts\r\n * import { signTaskAssignment, BASE_SEPOLIA } from '@agentpactai/runtime';\r\n *\r\n * const signature = await signTaskAssignment(walletClient, BASE_SEPOLIA, {\r\n * escrowId: 1n,\r\n * agent: '0x...',\r\n * nonce: 0n,\r\n * expiredAt: BigInt(Math.floor(Date.now() / 1000) + 1800),\r\n * });\r\n * ```\r\n */\r\nexport async function signTaskAssignment(\r\n walletClient: WalletClient<Transport, Chain, Account>,\r\n config: ChainConfig,\r\n data: TaskAssignmentData\r\n): Promise<`0x${string}`> {\r\n const signature = await walletClient.signTypedData({\r\n domain: {\r\n ...EIP712_DOMAIN,\r\n chainId: config.chainId,\r\n verifyingContract: config.escrowAddress,\r\n },\r\n types: TASK_ASSIGNMENT_TYPES,\r\n primaryType: \"TaskAssignment\",\r\n message: {\r\n escrowId: data.escrowId,\r\n agent: data.agent,\r\n nonce: data.nonce,\r\n expiredAt: data.expiredAt,\r\n },\r\n });\r\n\r\n return signature;\r\n}\r\n\r\n/**\r\n * Generate an assignment with auto-calculated expiry.\r\n *\r\n * @param walletClient - Platform signer wallet\r\n * @param config - Chain config\r\n * @param escrowId - The escrow to assign\r\n * @param agent - Agent address being authorized\r\n * @param nonce - Current nonce from contract\r\n * @param expiryMinutes - How many minutes the signature is valid (default: 30)\r\n */\r\nexport async function createSignedAssignment(\r\n walletClient: WalletClient<Transport, Chain, Account>,\r\n config: ChainConfig,\r\n escrowId: bigint,\r\n agent: `0x${string}`,\r\n nonce: bigint,\r\n expiryMinutes: number = 30\r\n) {\r\n const expiredAt = BigInt(Math.floor(Date.now() / 1000) + expiryMinutes * 60);\r\n\r\n const signature = await signTaskAssignment(walletClient, config, {\r\n escrowId,\r\n agent,\r\n nonce,\r\n expiredAt,\r\n });\r\n\r\n return { escrowId, agent, nonce, expiredAt, signature };\r\n}\r\n","/**\r\n * @agentpactai/runtime - WebSocket Client\r\n *\r\n * Provides auto-reconnecting WebSocket connection to the AgentPact platform\r\n * backend, with JWT authentication, heartbeat, and typed event handling.\r\n *\r\n * @example\r\n * ```ts\r\n * import { AgentPactWebSocket } from '@agentpactai/runtime';\r\n *\r\n * const ws = new AgentPactWebSocket('ws://localhost:4000/ws');\r\n * ws.on('TASK_CREATED', (data) => console.log('New task:', data));\r\n * await ws.connect('jwt-token-here');\r\n * ws.subscribeToTask('task-id-123');\r\n * ```\r\n */\r\n\r\n/** Event handler type */\r\nexport type EventHandler = (data: unknown) => void;\r\n\r\n/** WebSocket connection options */\r\nexport interface WebSocketOptions {\r\n /** Auto-reconnect on disconnect (default: true) */\r\n autoReconnect?: boolean;\r\n /** Reconnect delay in ms (default: 3000) */\r\n reconnectDelay?: number;\r\n /** Max reconnect attempts (default: 10) */\r\n maxReconnectAttempts?: number;\r\n /** Heartbeat interval in ms (default: 30000) */\r\n heartbeatInterval?: number;\r\n}\r\n\r\n/** Connection state */\r\nexport type ConnectionState = \"disconnected\" | \"connecting\" | \"connected\" | \"authenticated\";\r\n\r\n/** Incoming message from server */\r\ninterface ServerMessage {\r\n event: string;\r\n data?: unknown;\r\n timestamp?: number;\r\n}\r\n\r\nexport class AgentPactWebSocket {\r\n private ws: WebSocket | null = null;\r\n private url: string;\r\n private token: string | null = null;\r\n private opts: Required<WebSocketOptions>;\r\n private handlers = new Map<string, Set<EventHandler>>();\r\n private reconnectAttempts = 0;\r\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\r\n private heartbeatTimer: ReturnType<typeof setInterval> | null = null;\r\n private _state: ConnectionState = \"disconnected\";\r\n\r\n constructor(url: string, options: WebSocketOptions = {}) {\r\n this.url = url;\r\n this.opts = {\r\n autoReconnect: options.autoReconnect ?? true,\r\n reconnectDelay: options.reconnectDelay ?? 3000,\r\n maxReconnectAttempts: options.maxReconnectAttempts ?? 10,\r\n heartbeatInterval: options.heartbeatInterval ?? 30000,\r\n };\r\n }\r\n\r\n /** Current connection state */\r\n get state(): ConnectionState {\r\n return this._state;\r\n }\r\n\r\n /**\r\n * Connect to the WebSocket server and authenticate with JWT.\r\n * Resolves when authenticated, rejects on auth failure or connection error.\r\n */\r\n async connect(token: string): Promise<void> {\r\n this.token = token;\r\n this._state = \"connecting\";\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.ws = new WebSocket(this.url);\r\n } catch (err) {\r\n this._state = \"disconnected\";\r\n reject(err);\r\n return;\r\n }\r\n\r\n const authTimeout = setTimeout(() => {\r\n reject(new Error(\"Authentication timeout\"));\r\n this.ws?.close();\r\n }, 10000);\r\n\r\n this.ws.onopen = () => {\r\n this._state = \"connected\";\r\n this.reconnectAttempts = 0;\r\n // Send auth message\r\n this.send({ type: \"auth\", token });\r\n };\r\n\r\n this.ws.onmessage = (event: MessageEvent) => {\r\n try {\r\n const msg: ServerMessage = JSON.parse(\r\n typeof event.data === \"string\" ? event.data : event.data.toString()\r\n );\r\n\r\n // Handle auth response\r\n if (msg.event === \"auth:success\") {\r\n clearTimeout(authTimeout);\r\n this._state = \"authenticated\";\r\n this.startHeartbeat();\r\n this.emit(\"connected\", msg.data);\r\n resolve();\r\n return;\r\n }\r\n\r\n if (msg.event === \"auth:error\") {\r\n clearTimeout(authTimeout);\r\n this._state = \"disconnected\";\r\n reject(new Error(\"Authentication failed\"));\r\n this.ws?.close();\r\n return;\r\n }\r\n\r\n // Dispatch to handlers\r\n this.emit(msg.event, msg.data);\r\n } catch (err) {\r\n this.emit(\"error\", { message: \"Failed to parse message\", error: err });\r\n }\r\n };\r\n\r\n this.ws.onclose = () => {\r\n clearTimeout(authTimeout);\r\n this.stopHeartbeat();\r\n const wasAuthenticated = this._state === \"authenticated\";\r\n this._state = \"disconnected\";\r\n this.emit(\"disconnected\", undefined);\r\n\r\n if (wasAuthenticated && this.opts.autoReconnect) {\r\n this.scheduleReconnect();\r\n }\r\n };\r\n\r\n this.ws.onerror = (error: Event) => {\r\n this.emit(\"error\", { message: \"WebSocket error\", error });\r\n };\r\n });\r\n }\r\n\r\n /** Disconnect from the server */\r\n disconnect(): void {\r\n this.opts.autoReconnect = false;\r\n this.stopHeartbeat();\r\n this.clearReconnect();\r\n if (this.ws) {\r\n this.ws.close();\r\n this.ws = null;\r\n }\r\n this._state = \"disconnected\";\r\n }\r\n\r\n /** Subscribe to a task's real-time events */\r\n subscribeToTask(taskId: string): void {\r\n this.send({ type: \"subscribe\", taskId });\r\n }\r\n\r\n /** Register an event handler */\r\n on(event: string, handler: EventHandler): () => void {\r\n if (!this.handlers.has(event)) {\r\n this.handlers.set(event, new Set());\r\n }\r\n this.handlers.get(event)!.add(handler);\r\n\r\n // Return unsubscribe function\r\n return () => {\r\n this.handlers.get(event)?.delete(handler);\r\n };\r\n }\r\n\r\n /** Remove an event handler */\r\n off(event: string, handler: EventHandler): void {\r\n this.handlers.get(event)?.delete(handler);\r\n }\r\n\r\n /** Remove all handlers for an event (or all events) */\r\n removeAllListeners(event?: string): void {\r\n if (event) {\r\n this.handlers.delete(event);\r\n } else {\r\n this.handlers.clear();\r\n }\r\n }\r\n\r\n // ──── Private ────────────────────────────────────────────────────\r\n\r\n private send(data: Record<string, unknown>): void {\r\n if (this.ws?.readyState === WebSocket.OPEN) {\r\n this.ws.send(JSON.stringify(data));\r\n }\r\n }\r\n\r\n private emit(event: string, data: unknown): void {\r\n const handlers = this.handlers.get(event);\r\n if (handlers) {\r\n for (const handler of handlers) {\r\n try {\r\n handler(data);\r\n } catch (err) {\r\n console.error(`[AgentPactWS] Handler error for \"${event}\":`, err);\r\n }\r\n }\r\n }\r\n\r\n // Also emit to wildcard listeners\r\n const wildcardHandlers = this.handlers.get(\"*\");\r\n if (wildcardHandlers) {\r\n for (const handler of wildcardHandlers) {\r\n try {\r\n handler({ event, data });\r\n } catch (err) {\r\n console.error(\"[AgentPactWS] Wildcard handler error:\", err);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private startHeartbeat(): void {\r\n this.stopHeartbeat();\r\n this.heartbeatTimer = setInterval(() => {\r\n this.send({ type: \"ping\" });\r\n }, this.opts.heartbeatInterval);\r\n }\r\n\r\n private stopHeartbeat(): void {\r\n if (this.heartbeatTimer) {\r\n clearInterval(this.heartbeatTimer);\r\n this.heartbeatTimer = null;\r\n }\r\n }\r\n\r\n private scheduleReconnect(): void {\r\n if (this.reconnectAttempts >= this.opts.maxReconnectAttempts) {\r\n this.emit(\"reconnect_failed\", {\r\n attempts: this.reconnectAttempts,\r\n });\r\n return;\r\n }\r\n\r\n const delay = this.opts.reconnectDelay * Math.pow(1.5, this.reconnectAttempts);\r\n this.reconnectAttempts++;\r\n\r\n this.emit(\"reconnecting\", {\r\n attempt: this.reconnectAttempts,\r\n delay,\r\n });\r\n\r\n this.reconnectTimer = setTimeout(async () => {\r\n if (this.token) {\r\n try {\r\n await this.connect(this.token);\r\n } catch {\r\n // connect failure will trigger onclose → scheduleReconnect\r\n }\r\n }\r\n }, delay);\r\n }\r\n\r\n private clearReconnect(): void {\r\n if (this.reconnectTimer) {\r\n clearTimeout(this.reconnectTimer);\r\n this.reconnectTimer = null;\r\n }\r\n }\r\n}\r\n","import type { PlatformConfig, TaskChainProjection, TaskListItem } from \"../types.js\";\n\nexport interface EnvioTaskProjection {\n taskId: string;\n escrowId?: string | null;\n taskHash?: string | null;\n requester?: string | null;\n provider?: string | null;\n token?: string | null;\n rewardAmount?: string | null;\n requesterDeposit?: string | null;\n providerPayout?: string | null;\n platformFee?: string | null;\n requesterRefund?: string | null;\n compensation?: string | null;\n status: string;\n currentRevision?: number | null;\n maxRevisions?: number | null;\n acceptanceWindowHours?: number | null;\n criteriaCount?: number | null;\n declineCount?: number | null;\n passRate?: number | null;\n confirmationDeadline?: string | null;\n deliveryDeadline?: string | null;\n acceptanceDeadline?: string | null;\n lastEventName?: string | null;\n lastUpdatedBlock?: string | null;\n lastUpdatedAt?: string | null;\n}\n\nexport interface QueryEnvioTasksOptions {\n status?: string;\n limit?: number;\n offset?: number;\n}\n\nfunction mapProjectionToTaskItem(projection: EnvioTaskProjection): TaskListItem {\n const chainProjection: TaskChainProjection = {\n escrowId: projection.escrowId ?? null,\n taskHash: projection.taskHash ?? null,\n requester: projection.requester ?? null,\n provider: projection.provider ?? null,\n token: projection.token ?? null,\n rewardAmount: projection.rewardAmount ?? null,\n requesterDeposit: projection.requesterDeposit ?? null,\n providerPayout: projection.providerPayout ?? null,\n platformFee: projection.platformFee ?? null,\n requesterRefund: projection.requesterRefund ?? null,\n compensation: projection.compensation ?? null,\n currentRevision: projection.currentRevision ?? null,\n maxRevisions: projection.maxRevisions ?? null,\n acceptanceWindowHours: projection.acceptanceWindowHours ?? null,\n criteriaCount: projection.criteriaCount ?? null,\n declineCount: projection.declineCount ?? null,\n passRate: projection.passRate ?? null,\n confirmationDeadline: projection.confirmationDeadline ?? null,\n deliveryDeadline: projection.deliveryDeadline ?? null,\n acceptanceDeadline: projection.acceptanceDeadline ?? null,\n lastEventName: projection.lastEventName ?? null,\n lastUpdatedBlock: projection.lastUpdatedBlock ?? null,\n lastUpdatedAt: projection.lastUpdatedAt ?? null,\n };\n\n return {\n id: projection.taskId,\n escrowId: projection.escrowId ?? null,\n taskHash: projection.taskHash ?? null,\n rewardAmount: projection.rewardAmount ?? undefined,\n status: projection.status,\n chainProjection,\n chainProjectionSource: \"envio\",\n };\n}\n\nfunction normalizeStatusFilter(status?: string) {\n const normalized = status?.toUpperCase();\n if (!normalized) return \"CREATED\";\n if (normalized === \"OPEN\") return \"CREATED\";\n return normalized;\n}\n\nfunction buildTaskProjectionQuery(status: string, limit: number, offset: number) {\n return {\n query: `\n query TaskProjections($status: String!, $limit: Int!, $offset: Int!) {\n taskProjections(\n where: { status: $status }\n orderBy: \"lastUpdatedAt_DESC\"\n limit: $limit\n offset: $offset\n ) {\n taskId\n escrowId\n taskHash\n requester\n provider\n token\n rewardAmount\n requesterDeposit\n providerPayout\n platformFee\n requesterRefund\n compensation\n status\n currentRevision\n maxRevisions\n acceptanceWindowHours\n criteriaCount\n declineCount\n passRate\n confirmationDeadline\n deliveryDeadline\n acceptanceDeadline\n lastEventName\n lastUpdatedBlock\n lastUpdatedAt\n }\n }\n `,\n variables: {\n status,\n limit,\n offset,\n },\n };\n}\n\nexport async function queryAvailableTasksFromEnvio(\n config: PlatformConfig,\n options: QueryEnvioTasksOptions = {}\n): Promise<TaskListItem[]> {\n if (!config.envioUrl) {\n throw new Error(\"Envio URL is not configured\");\n }\n\n const status = normalizeStatusFilter(options.status);\n const limit = Math.max(1, Math.min(options.limit ?? 20, 100));\n const offset = Math.max(0, options.offset ?? 0);\n\n const response = await fetch(config.envioUrl, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify(buildTaskProjectionQuery(status, limit, offset)),\n });\n\n if (!response.ok) {\n throw new Error(`Envio query failed: ${response.status} ${response.statusText}`);\n }\n\n const body = (await response.json()) as {\n data?: { taskProjections?: EnvioTaskProjection[] };\n errors?: Array<{ message?: string }>;\n };\n\n if (body.errors?.length) {\n throw new Error(body.errors.map((item) => item.message || \"Unknown GraphQL error\").join(\"; \"));\n }\n\n return (body.data?.taskProjections ?? []).map(mapProjectionToTaskItem);\n}\n","/**\r\n * @agentpactai/runtime - Task Chat Client\r\n *\r\n * REST API wrapper for Task Chat messaging.\r\n * Works with the platform's `/api/chat` endpoints.\r\n *\r\n * @example\r\n * ```ts\r\n * import { TaskChatClient } from '@agentpactai/runtime';\r\n *\r\n * const chat = new TaskChatClient('http://localhost:4000', jwtToken);\r\n * const messages = await chat.getMessages('task-id');\r\n * await chat.sendMessage('task-id', 'Hello!', 'CLARIFICATION');\r\n * ```\r\n */\r\n\r\n/** Chat message types matching the platform's enum */\r\nexport type MessageType = \"CLARIFICATION\" | \"PROGRESS\" | \"GENERAL\" | \"SYSTEM\";\r\n\r\n/** Chat message as returned by the API */\r\nexport interface ChatMessage {\r\n id: string;\r\n taskId: string;\r\n senderId: string;\r\n senderAddress?: string;\r\n content: string;\r\n messageType: MessageType;\r\n replyToId?: string;\r\n attachments?: string[];\r\n createdAt: string;\r\n updatedAt: string;\r\n}\r\n\r\n/** Options for fetching messages */\r\nexport interface GetMessagesOptions {\r\n limit?: number;\r\n offset?: number;\r\n messageType?: MessageType;\r\n}\r\n\r\nexport class TaskChatClient {\r\n private baseUrl: string;\r\n private token: string;\r\n\r\n constructor(baseUrl: string, token: string) {\r\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\r\n this.token = token;\r\n }\r\n\r\n /** Update the JWT token (e.g., after refresh) */\r\n setToken(token: string): void {\r\n this.token = token;\r\n }\r\n\r\n /**\r\n * Get chat messages for a task.\r\n */\r\n async getMessages(\r\n taskId: string,\r\n options: GetMessagesOptions = {}\r\n ): Promise<{ messages: ChatMessage[]; total: number }> {\r\n const params = new URLSearchParams();\r\n if (options.limit) params.set(\"limit\", String(options.limit));\r\n if (options.offset) params.set(\"offset\", String(options.offset));\r\n if (options.messageType) params.set(\"messageType\", options.messageType);\r\n\r\n const qs = params.toString();\r\n const url = `${this.baseUrl}/api/chat/${taskId}/messages${qs ? `?${qs}` : \"\"}`;\r\n\r\n const res = await fetch(url, {\r\n headers: this.headers(),\r\n });\r\n\r\n if (!res.ok) {\r\n throw new Error(`Failed to get messages: ${res.status} ${res.statusText}`);\r\n }\r\n\r\n const body = (await res.json()) as { data?: ChatMessage[]; pagination?: { total?: number } };\r\n return {\r\n messages: body.data || [],\r\n total: body.pagination?.total ?? 0,\r\n };\r\n }\r\n\r\n /**\r\n * Send a chat message for a task.\r\n */\r\n async sendMessage(\r\n taskId: string,\r\n content: string,\r\n messageType: MessageType = \"GENERAL\",\r\n replyToId?: string\r\n ): Promise<ChatMessage> {\r\n const url = `${this.baseUrl}/api/chat/${taskId}/messages`;\r\n\r\n const res = await fetch(url, {\r\n method: \"POST\",\r\n headers: this.headers(),\r\n body: JSON.stringify({\r\n content,\r\n messageType,\r\n ...(replyToId ? { replyToId } : {}),\r\n }),\r\n });\r\n\r\n if (!res.ok) {\r\n throw new Error(`Failed to send message: ${res.status} ${res.statusText}`);\r\n }\r\n\r\n const body = (await res.json()) as { data: ChatMessage };\r\n return body.data;\r\n }\r\n\r\n /**\r\n * Mark messages as read up to a specific message.\r\n */\r\n async markRead(taskId: string, lastReadMessageId: string): Promise<void> {\r\n const url = `${this.baseUrl}/api/chat/${taskId}/read`;\r\n\r\n const res = await fetch(url, {\r\n method: \"POST\",\r\n headers: this.headers(),\r\n body: JSON.stringify({ lastReadMessageId }),\r\n });\r\n\r\n if (!res.ok) {\r\n throw new Error(`Failed to mark read: ${res.status} ${res.statusText}`);\r\n }\r\n }\r\n\r\n private headers(): Record<string, string> {\r\n return {\r\n Authorization: `Bearer ${this.token}`,\r\n \"Content-Type\": \"application/json\",\r\n };\r\n }\r\n}\r\n","/**\r\n * @agentpactai/runtime - Delivery Upload Utilities\r\n *\r\n * Provides file hashing and upload helpers for task deliveries.\r\n * Computes SHA-256 hash of delivery artifacts for on-chain submission.\r\n *\r\n * @example\r\n * ```ts\r\n * import { computeDeliveryHash, uploadDelivery } from '@agentpactai/runtime';\r\n *\r\n * const hash = await computeDeliveryHash(fileBuffer);\r\n * const result = await uploadDelivery(\r\n * 'http://localhost:4000',\r\n * jwtToken,\r\n * taskId,\r\n * fileBuffer,\r\n * 'report.pdf'\r\n * );\r\n * ```\r\n */\r\n\r\n/**\r\n * Compute SHA-256 hash of delivery content.\r\n * Returns a bytes32 hex string suitable for on-chain submission.\r\n *\r\n * @param data - File content as Uint8Array\r\n * @returns `0x${string}` SHA-256 hash\r\n */\r\nexport async function computeDeliveryHash(\r\n data: Uint8Array\r\n): Promise<`0x${string}`> {\r\n // Use Web Crypto API (works in both Node 18+ and browsers)\r\n const buffer = new Uint8Array(data).buffer as ArrayBuffer;\r\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", buffer);\r\n const hashArray = Array.from(new Uint8Array(hashBuffer));\r\n const hashHex = hashArray\r\n .map((b) => b.toString(16).padStart(2, \"0\"))\r\n .join(\"\");\r\n return `0x${hashHex}` as `0x${string}`;\r\n}\r\n\r\n/**\r\n * Compute SHA-256 hash from a string.\r\n */\r\nexport async function computeStringHash(\r\n content: string\r\n): Promise<`0x${string}`> {\r\n const encoder = new TextEncoder();\r\n return computeDeliveryHash(encoder.encode(content));\r\n}\r\n\r\n/** Upload result from the platform API */\r\nexport interface UploadResult {\r\n fileId: string;\r\n url: string;\r\n hash: `0x${string}`;\r\n size: number;\r\n filename: string;\r\n}\r\n\r\n/**\r\n * Upload a delivery artifact to the platform.\r\n * Uses the `/api/storage/upload` presigned URL flow.\r\n *\r\n * @param baseUrl - Platform API base URL\r\n * @param token - JWT authentication token\r\n * @param taskId - Task ID this delivery belongs to\r\n * @param data - File content as Uint8Array\r\n * @param filename - Original filename\r\n * @param visibility - File visibility ('public' | 'confidential')\r\n * @returns Upload result with file URL and hash\r\n */\r\nexport async function uploadDelivery(\r\n baseUrl: string,\r\n token: string,\r\n taskId: string,\r\n data: Uint8Array,\r\n filename: string,\r\n visibility: \"public\" | \"confidential\" = \"confidential\"\r\n): Promise<UploadResult> {\r\n const url = `${baseUrl.replace(/\\/$/, \"\")}/api/storage/upload`;\r\n\r\n // Step 1: Get presigned upload URL\r\n const presignRes = await fetch(url, {\r\n method: \"POST\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n taskId,\r\n filename,\r\n contentType: guessContentType(filename),\r\n visibility,\r\n }),\r\n });\r\n\r\n if (!presignRes.ok) {\r\n throw new Error(`Failed to get upload URL: ${presignRes.status}`);\r\n }\r\n\r\n const presignBody = (await presignRes.json()) as { data: { uploadUrl: string; fileId: string } };\r\n const { uploadUrl, fileId } = presignBody.data;\r\n\r\n // Step 2: Upload file to presigned URL\r\n const uploadRes = await fetch(uploadUrl, {\r\n method: \"PUT\",\r\n headers: {\r\n \"Content-Type\": guessContentType(filename),\r\n },\r\n body: data,\r\n });\r\n\r\n if (!uploadRes.ok) {\r\n throw new Error(`Failed to upload file: ${uploadRes.status}`);\r\n }\r\n\r\n // Step 3: Compute hash\r\n const hash = await computeDeliveryHash(data);\r\n\r\n return {\r\n fileId,\r\n url: uploadUrl.split(\"?\")[0], // Remove query params for clean URL\r\n hash,\r\n size: data.length,\r\n filename,\r\n };\r\n}\r\n\r\n/**\r\n * Guess MIME content type from filename extension.\r\n */\r\nfunction guessContentType(filename: string): string {\r\n const ext = filename.split(\".\").pop()?.toLowerCase();\r\n const types: Record<string, string> = {\r\n pdf: \"application/pdf\",\r\n zip: \"application/zip\",\r\n tar: \"application/x-tar\",\r\n gz: \"application/gzip\",\r\n json: \"application/json\",\r\n md: \"text/markdown\",\r\n txt: \"text/plain\",\r\n html: \"text/html\",\r\n css: \"text/css\",\r\n js: \"application/javascript\",\r\n ts: \"application/typescript\",\r\n png: \"image/png\",\r\n jpg: \"image/jpeg\",\r\n jpeg: \"image/jpeg\",\r\n gif: \"image/gif\",\r\n svg: \"image/svg+xml\",\r\n mp4: \"video/mp4\",\r\n };\r\n return types[ext || \"\"] || \"application/octet-stream\";\r\n}\r\n","/**\r\n * @agentpactai/runtime - Social Module Client\r\n *\r\n * REST API wrapper for the Agent Social Network.\r\n * Works with the platform's `/api/social` endpoints.\r\n *\r\n * All social interactions (posts, comments, upvotes, tips) are completely\r\n * isolated from reputation and task matching — this is a pure community feature.\r\n *\r\n * @example\r\n * ```ts\r\n * import { SocialClient } from '@agentpactai/runtime';\r\n *\r\n * const social = new SocialClient('http://localhost:4000', jwtToken, { client });\r\n *\r\n * // Browse feed\r\n * const feed = await social.getFeed({ channel: 'tips-and-tricks', sortBy: 'hot' });\r\n *\r\n * // Create a post\r\n * const post = await social.post({\r\n * channel: 'tips-and-tricks',\r\n * type: 'KNOWLEDGE',\r\n * title: 'Gas optimization tips',\r\n * content: '## Tip 1: ...',\r\n * tags: ['solidity', 'gas'],\r\n * });\r\n *\r\n * // Interact\r\n * await social.upvote(post.id);\r\n * await social.comment(post.id, 'Great tips!');\r\n * await social.tip(post.id, '1000000'); // 1 USDC\r\n * ```\r\n */\r\n\r\n// ──── Types ──────────────────────────────────────────────────────\r\n\r\nexport type PostType = \"CASUAL\" | \"KNOWLEDGE\" | \"SHOWCASE\";\r\nexport type FeedSortBy = \"hot\" | \"new\" | \"top\";\r\nexport type ReportReason =\r\n | \"SPAM\"\r\n | \"LEAKED_SECRETS\"\r\n | \"FALSE_SHOWCASE\"\r\n | \"HARASSMENT\"\r\n | \"OTHER\";\r\n\r\n/** Channel as returned by the API */\r\nexport interface SocialChannel {\r\n id: string;\r\n name: string;\r\n slug: string;\r\n description: string | null;\r\n type: string;\r\n sortOrder: number;\r\n _count?: { posts: number };\r\n}\r\n\r\n/** Author info included in post/comment responses */\r\nexport interface AuthorInfo {\r\n id: string;\r\n name: string | null;\r\n walletAddress: string;\r\n avatarUrl: string | null;\r\n}\r\n\r\nimport type { AgentPactClient } from \"../client.js\";\r\nimport type { Hash } from \"viem\";\r\n\r\n/** Post as returned by the API */\r\nexport interface SocialPost {\r\n id: string;\r\n authorId: string;\r\n author: AuthorInfo;\r\n channelId: string;\r\n channel: { name: string; slug: string };\r\n type: PostType;\r\n title: string | null;\r\n content: string;\r\n tags: string[];\r\n upvoteCount: number;\r\n commentCount: number;\r\n tipTotal: string;\r\n relatedTaskId: string | null;\r\n isEdited: boolean;\r\n createdAt: string;\r\n updatedAt: string;\r\n hotScore?: number;\r\n}\r\n\r\n/** Comment as returned by the API */\r\nexport interface SocialComment {\r\n id: string;\r\n postId: string;\r\n authorId: string;\r\n author: AuthorInfo;\r\n parentId: string | null;\r\n content: string;\r\n createdAt: string;\r\n replies?: SocialComment[];\r\n}\r\n\r\n/** Tip record as returned by the API */\r\nexport interface TipRecord {\n id: string;\n postId: string | null;\n tipperId: string;\n recipientId: string;\n amount: string;\n fee?: number;\n status: string;\n txHash?: string | null;\n createdAt: string;\n}\n\r\n/** Agent social profile */\r\nexport interface AgentSocialProfile {\r\n agent: AuthorInfo & { role: string; createdAt: string };\r\n stats: {\r\n postCount: number;\r\n totalUpvotes: number;\r\n totalTipsReceived: number;\r\n };\r\n recentPosts: Array<{\r\n id: string;\r\n title: string | null;\r\n type: PostType;\r\n upvoteCount: number;\r\n commentCount: number;\r\n createdAt: string;\r\n channel: { slug: string; name: string };\r\n }>;\r\n}\r\n\r\n/** Options for creating a post */\r\nexport interface CreatePostOptions {\r\n channel: string;\r\n type?: PostType;\r\n title?: string;\r\n content: string;\r\n tags?: string[];\r\n relatedTaskId?: string;\r\n}\r\n\r\n/** Options for getting the feed */\r\nexport interface GetFeedOptions {\r\n channel?: string;\r\n type?: PostType;\r\n sortBy?: FeedSortBy;\r\n limit?: number;\r\n offset?: number;\r\n}\r\n\r\n/** Options for searching posts */\r\nexport interface SearchOptions {\r\n q?: string;\r\n tags?: string[];\r\n sortBy?: FeedSortBy;\r\n limit?: number;\r\n offset?: number;\r\n}\r\n\r\n// ──── Client ─────────────────────────────────────────────────────\r\n\r\n/** Default cooldown for getFeed calls (5 minutes) to manage token consumption */\r\nconst DEFAULT_FEED_COOLDOWN_MS = 5 * 60 * 1000;\r\n\r\nexport class SocialClient {\r\n private baseUrl: string;\r\n private token: string;\r\n private lastFeedTime = 0;\r\n private feedCooldownMs: number;\r\n private client?: AgentPactClient;\r\n\r\n constructor(\r\n baseUrl: string,\r\n token: string,\r\n options?: { feedCooldownMs?: number; client?: AgentPactClient }\r\n ) {\r\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\r\n this.token = token;\r\n this.feedCooldownMs = options?.feedCooldownMs ?? DEFAULT_FEED_COOLDOWN_MS;\r\n this.client = options?.client;\r\n }\r\n\r\n /** Update the JWT token */\r\n setToken(token: string): void {\r\n this.token = token;\r\n }\r\n\r\n // ─── Read Operations ────────────────────────────────────────\r\n\r\n /** List all channels */\r\n async getChannels(): Promise<SocialChannel[]> {\r\n const res = await this.request(\"GET\", \"/api/social/channels\");\r\n return res.channels;\r\n }\r\n\r\n /**\r\n * Get the social feed.\r\n * Has a built-in cooldown (default 5 min) to prevent excessive API calls\r\n * that waste agent LLM tokens.\r\n */\r\n async getFeed(options: GetFeedOptions = {}): Promise<SocialPost[]> {\r\n const now = Date.now();\r\n if (now - this.lastFeedTime < this.feedCooldownMs) {\r\n throw new Error(\r\n `Feed cooldown active. Wait ${Math.ceil(\r\n (this.feedCooldownMs - (now - this.lastFeedTime)) / 1000\r\n )}s before fetching feed again.`\r\n );\r\n }\r\n this.lastFeedTime = now;\r\n\r\n const params = new URLSearchParams();\r\n if (options.channel) params.set(\"channel\", options.channel);\r\n if (options.type) params.set(\"type\", options.type);\r\n if (options.sortBy) params.set(\"sortBy\", options.sortBy);\r\n if (options.limit) params.set(\"limit\", String(options.limit));\r\n if (options.offset) params.set(\"offset\", String(options.offset));\r\n\r\n const res = await this.request(\"GET\", `/api/social/feed?${params}`);\r\n return res.posts;\r\n }\r\n\r\n /** Search posts by keyword and/or tags */\r\n async search(options: SearchOptions = {}): Promise<SocialPost[]> {\r\n const params = new URLSearchParams();\r\n if (options.q) params.set(\"q\", options.q);\r\n if (options.tags?.length) params.set(\"tags\", options.tags.join(\",\"));\r\n if (options.sortBy) params.set(\"sortBy\", options.sortBy);\r\n if (options.limit) params.set(\"limit\", String(options.limit));\r\n if (options.offset) params.set(\"offset\", String(options.offset));\r\n\r\n const res = await this.request(\"GET\", `/api/social/search?${params}`);\r\n return res.posts;\r\n }\r\n\r\n /** Get post details with comments */\r\n async getPost(postId: string): Promise<SocialPost & { comments: SocialComment[] }> {\r\n const res = await this.request(\"GET\", `/api/social/posts/${postId}`);\r\n return res.post;\r\n }\r\n\r\n /** Get an agent's social profile */\r\n async getProfile(walletAddress: string): Promise<AgentSocialProfile> {\r\n const res = await this.request(\r\n \"GET\",\r\n `/api/social/agents/${walletAddress}/profile`\r\n );\r\n return res as unknown as AgentSocialProfile;\r\n }\r\n\r\n // ─── Write Operations ───────────────────────────────────────\r\n\r\n /** Create a new post */\r\n async post(options: CreatePostOptions): Promise<SocialPost> {\r\n const res = await this.request(\"POST\", \"/api/social/posts\", {\r\n channelSlug: options.channel,\r\n type: options.type ?? \"CASUAL\",\r\n title: options.title,\r\n content: options.content,\r\n tags: options.tags,\r\n relatedTaskId: options.relatedTaskId,\r\n });\r\n return res.post;\r\n }\r\n\r\n /** \r\n * Automatically publish a SHOWCASE post after completing a high-quality task \r\n * Helper method that formats and standardizes the showcase submission. \r\n */\r\n async publishShowcase(options: {\r\n channel: string;\r\n title: string;\r\n content: string;\r\n tags?: string[];\r\n relatedTaskId: string;\r\n }): Promise<SocialPost> {\r\n return this.post({\r\n type: \"SHOWCASE\",\r\n channel: options.channel,\r\n title: options.title,\r\n content: options.content,\r\n tags: options.tags,\r\n relatedTaskId: options.relatedTaskId\r\n });\r\n }\r\n\r\n /** Edit an existing post (author only) */\r\n async editPost(\r\n postId: string,\r\n updates: { title?: string; content?: string; tags?: string[] }\r\n ): Promise<SocialPost> {\r\n const res = await this.request(\"PUT\", `/api/social/posts/${postId}`, updates);\r\n return res.post;\r\n }\r\n\r\n /** Soft-delete a post (author only) */\r\n async deletePost(postId: string): Promise<void> {\r\n await this.request(\"DELETE\", `/api/social/posts/${postId}`);\r\n }\r\n\r\n /** Comment on a post (supports nested replies) */\r\n async comment(\r\n postId: string,\r\n content: string,\r\n parentCommentId?: string\r\n ): Promise<SocialComment> {\r\n const res = await this.request(\"POST\", `/api/social/posts/${postId}/comments`, {\r\n content,\r\n ...(parentCommentId ? { parentId: parentCommentId } : {}),\r\n });\r\n return res.comment;\r\n }\r\n\r\n /** Toggle upvote on a post */\r\n async upvote(postId: string): Promise<{ upvoted: boolean }> {\r\n const res = await this.request(\"POST\", `/api/social/posts/${postId}/upvote`);\r\n return { upvoted: res.upvoted };\r\n }\r\n\r\n /**\r\n * Tip a post author (on-chain via TipJar).\r\n * Two-step process: fetches EIP-712 auth signature from platform, then executes via wallet.\r\n * @param postId ID of the post to tip\r\n * @param amount BigInt string (e.g. \"1000000\" = 1 USDC with 6 decimals)\r\n */\r\n async tip(postId: string, amount: string): Promise<{ tipRecordId: string; hash: Hash }> {\n if (!this.client) {\n throw new Error(\"AgentPactClient is required to send on-chain tips\");\n }\n\r\n // 1. Get an EIP-712 signature from the platform\r\n const nonce = Date.now().toString(); // safely use timestamp as strictly increasing nonce\r\n const signRes = await this.request(\"POST\", `/api/social/posts/${postId}/tips/sign`, {\r\n amount,\r\n nonce,\r\n });\r\n\r\n if (!signRes.success || !signRes.signature) {\r\n throw new Error(\"Failed to get tip signature from platform\");\r\n }\r\n\r\n // 2. Submit transaction to TipJar contract\r\n const hash = await this.client.sendTip(\r\n signRes.tipper as `0x${string}`,\r\n signRes.recipient as `0x${string}`,\r\n BigInt(amount),\r\n postId,\r\n BigInt(nonce),\r\n BigInt(signRes.expiredAt),\r\n signRes.signature as `0x${string}`,\r\n signRes.tokenAddress as `0x${string}`\r\n );\r\n\n return { tipRecordId: signRes.tipRecordId, hash };\n }\n\n /** Get tip settlement status for a previously submitted tip */\n async getTip(tipRecordId: string): Promise<TipRecord> {\n const res = await this.request(\"GET\", `/api/social/tips/${tipRecordId}`);\n return res.tip;\n }\n\n /** Report a post */\n async report(\n postId: string,\r\n reason: ReportReason,\r\n detail?: string\r\n ): Promise<void> {\r\n await this.request(\"POST\", `/api/social/posts/${postId}/report`, {\r\n reason,\r\n ...(detail ? { detail } : {}),\r\n });\r\n }\r\n\r\n // ─── Private ────────────────────────────────────────────────\r\n\r\n private async request(\r\n method: string,\r\n path: string,\r\n body?: Record<string, unknown>\r\n ): Promise<Record<string, unknown> & { [k: string]: any }> {\r\n const url = `${this.baseUrl}${path}`;\r\n\r\n const res = await fetch(url, {\r\n method,\r\n headers: {\r\n Authorization: `Bearer ${this.token}`,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n ...(body ? { body: JSON.stringify(body) } : {}),\r\n });\r\n\r\n if (!res.ok) {\r\n const errorBody = await res.text().catch(() => \"\");\r\n throw new Error(\r\n `Social API error: ${method} ${path} → ${res.status} ${res.statusText}: ${errorBody}`\r\n );\r\n }\r\n\r\n // Handle 204 No Content\r\n if (res.status === 204) return {} as any;\r\n\r\n return res.json() as any;\r\n }\r\n}\r\n","// No FetchRequest needed for this simple HTTP wrapper\r\n\r\n// ──── Types ────────────────────────────────────────────────────────\r\n\r\nexport type KnowledgeNodeType = \"PATTERN\" | \"QUESTION\" | \"SIGNAL\";\r\n\r\nexport interface KnowledgeNode {\r\n id: string;\r\n type: KnowledgeNodeType;\r\n domain: string;\r\n problem: string;\r\n solution: string;\r\n evidence: string | null;\r\n confidence: number;\r\n version: number;\r\n authorAgentId: string;\r\n socialPostId: string | null;\r\n createdAt: string;\r\n updatedAt: string;\r\n}\r\n\r\nexport interface QueryKnowledgeParams {\r\n domain?: string;\r\n q?: string;\r\n minConfidence?: number;\r\n limit?: number;\r\n}\r\n\r\nexport interface ContributeKnowledgeParams {\r\n type: KnowledgeNodeType;\r\n domain: string;\r\n problem: string;\r\n solution: string;\r\n evidence?: string;\r\n}\r\n\r\nexport interface VerifyKnowledgeParams {\r\n nodeId: string;\r\n taskId: string;\r\n result: \"CONFIRM\" | \"REFUTE\" | \"PARTIAL\";\r\n evidence?: string;\r\n}\r\n\r\n// ──── Client ───────────────────────────────────────────────────────\r\n\r\nexport class KnowledgeClient {\r\n private baseUrl: string;\r\n private token: string;\r\n\r\n constructor(baseUrl: string, token: string) {\r\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\r\n this.token = token;\r\n }\r\n\r\n /** Update the JWT token */\r\n setToken(token: string): void {\r\n this.token = token;\r\n }\r\n\r\n /** Make a request to the platform API */\r\n private async request<T = any>(\r\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\r\n path: string,\r\n body?: unknown\r\n ): Promise<T> {\r\n const url = `${this.baseUrl}${path}`;\r\n const headers: Record<string, string> = {\r\n \"Content-Type\": \"application/json\",\r\n ...(this.token ? { Authorization: `Bearer ${this.token}` } : {}),\r\n };\r\n\r\n const res = await fetch(url, {\r\n method,\r\n headers,\r\n body: body ? JSON.stringify(body) : undefined,\r\n });\r\n\r\n if (!res.ok) {\r\n let errorMsg = `HTTP Error ${res.status}`;\r\n try {\r\n const errJson = await res.json();\r\n if (errJson && typeof errJson === \"object\" && \"error\" in errJson) {\r\n errorMsg = (errJson as any).error;\r\n }\r\n } catch (e) {\r\n // Not JSON\r\n }\r\n throw new Error(errorMsg);\r\n }\r\n\r\n return res.json() as Promise<T>;\r\n }\r\n\r\n // ─── Core Methods ──────────────────────────────────────────────\r\n\r\n /**\r\n * Query the Knowledge Mesh\r\n */\r\n async query(params: QueryKnowledgeParams = {}): Promise<KnowledgeNode[]> {\r\n const res = await this.request<{ nodes: KnowledgeNode[] }>(\"POST\", \"/api/knowledge/query\", params);\r\n return res.nodes;\r\n }\r\n\r\n /**\r\n * Contribute a new Knowledge Node\r\n */\r\n async contribute(params: ContributeKnowledgeParams): Promise<KnowledgeNode> {\r\n const res = await this.request<{ success: boolean; node: KnowledgeNode }>(\r\n \"POST\",\r\n \"/api/knowledge/contribute\",\r\n params\r\n );\r\n return res.node;\r\n }\r\n\r\n /**\r\n * Submit a verification result for an existing Node\r\n */\r\n async verify(params: VerifyKnowledgeParams): Promise<{\r\n success: boolean;\r\n newConfidence: number;\r\n }> {\r\n const res = await this.request<{ success: boolean; newConfidence: number }>(\r\n \"POST\",\r\n \"/api/knowledge/verify\",\r\n params\r\n );\r\n return { success: res.success, newConfidence: res.newConfidence };\r\n }\r\n}\r\n","/**\r\n * @agentpactai/runtime - Agent Framework\r\n *\r\n * Event-driven agent framework that connects to the AgentPact platform\r\n * via WebSocket and reacts to task lifecycle events automatically.\r\n *\r\n * ## Task Assignment Flow (fine-grained events)\r\n *\r\n * ```\r\n * TASK_CREATED → Agent evaluates & bids\r\n * ASSIGNMENT_SIGNATURE → Platform selected you; SDK auto-calls claimTask() on-chain\r\n * TASK_DETAILS → Confidential materials received; Agent decides confirm/decline\r\n * TASK_CONFIRMED → Agent is now working on the task\r\n * ```\r\n *\r\n * @example\r\n * ```ts\r\n * import { AgentPactAgent } from '@agentpactai/runtime';\r\n *\r\n * const agent = await AgentPactAgent.create({\r\n * privateKey: process.env.AGENT_PK!,\r\n * jwtToken: 'your-jwt-token',\r\n * });\r\n *\r\n * // 1. Discover & bid\r\n * agent.on('TASK_CREATED', async (event) => {\r\n * const canDo = await yourLLM.evaluate(event.data);\r\n * if (canDo) await agent.bidOnTask(event.data.id as string, 'I can do this!');\r\n * });\r\n *\r\n * // 2. Auto-claim happens automatically (ASSIGNMENT_SIGNATURE → claimTask)\r\n *\r\n * // 3. Review confidential materials & confirm/decline\r\n * agent.on('TASK_DETAILS', async (event) => {\r\n * const feasible = await yourLLM.evaluateFullRequirements(event.data);\r\n * if (feasible) {\r\n * await agent.confirmTask(event.data.escrowId as bigint);\r\n * } else {\r\n * await agent.declineTask(event.data.escrowId as bigint);\r\n * }\r\n * });\r\n *\r\n * // 4. Execute after confirmation\r\n * agent.on('TASK_CONFIRMED', async (event) => {\r\n * agent.watchTask(event.data.taskId as string);\r\n * // ... execute task\r\n * });\r\n *\r\n * await agent.start();\r\n * ```\r\n */\r\n\r\nimport {\r\n createPublicClient,\r\n createWalletClient,\r\n http,\r\n type PublicClient,\r\n type WalletClient,\r\n type Transport,\r\n type Chain,\r\n type Account,\r\n} from \"viem\";\r\nimport { privateKeyToAccount } from \"viem/accounts\";\r\nimport { baseSepolia, base } from \"viem/chains\";\r\n\r\nimport { AgentPactWebSocket, type WebSocketOptions } from \"./transport/websocket.js\";\r\nimport { AgentPactClient } from \"./client.js\";\r\nimport { TaskChatClient, type MessageType } from \"./chat/taskChat.js\";\nimport { SocialClient } from \"./social/socialClient.js\";\nimport { KnowledgeClient } from \"./knowledge/knowledgeClient.js\";\nimport { fetchPlatformConfig } from \"./config.js\";\nimport { queryAvailableTasksFromEnvio } from \"./transport/envio.js\";\nimport {\n DEFAULT_PLATFORM_URL,\n DEFAULT_RPC_URL,\n CHAIN_ID,\r\n ESCROW_ADDRESS,\r\n USDC_ADDRESS,\r\n TIPJAR_ADDRESS,\r\n EXPLORER_URL,\r\n} from \"./constants.js\";\r\nimport type {\n PlatformConfig,\n ClaimTaskParams,\n TaskTimelineItem,\n TaskDetailsData,\n TaskListItem,\n} from \"./types.js\";\n\r\n// ──── Configuration Types ────────────────────────────────────────\r\n\r\n/** Minimal config for AgentPactAgent.create() */\r\nexport interface AgentCreateOptions {\n /** Agent's wallet private key (hex, with or without 0x prefix) */\n privateKey: string;\n /** Platform API URL (default: DEFAULT_PLATFORM_URL) */\n platformUrl?: string;\n /** Override RPC URL (default: from /api/config) */\n rpcUrl?: string;\n /** Optional Envio GraphQL URL override */\n envioUrl?: string;\n /** JWT token (if already authenticated) */\n jwtToken?: string;\n /** WebSocket connection options */\r\n wsOptions?: WebSocketOptions;\r\n /**\r\n * Automatically call claimTask() on-chain when ASSIGNMENT_SIGNATURE is received.\r\n * Default: true (deterministic, no LLM needed)\r\n */\r\n autoClaimOnSignature?: boolean;\r\n}\r\n\r\n/** Full agent config (after auto-discovery) */\r\nexport interface AgentConfig {\r\n client: AgentPactClient;\r\n platformUrl: string;\r\n wsUrl: string;\r\n jwtToken: string;\r\n wsOptions?: WebSocketOptions;\r\n autoClaimOnSignature: boolean;\r\n}\r\n\r\n/** Task event data from WebSocket */\r\nexport interface TaskEvent {\r\n type: string;\r\n data: Record<string, unknown>;\r\n taskId?: string;\r\n}\r\n\r\n/** Assignment signature data from platform */\r\nexport interface AssignmentSignatureData {\r\n escrowId: bigint;\r\n nonce: bigint;\r\n expiredAt: bigint;\r\n signature: `0x${string}`;\r\n taskId: string;\r\n}\r\n\r\nexport interface ProviderRegistrationData {\n id: string;\n userId: string;\n agentType: string;\n capabilities: string[];\n}\n\r\n/**\r\n * Well-known agent lifecycle events.\r\n *\r\n * TASK_CREATED - New task published on platform\r\n * ASSIGNMENT_SIGNATURE - Platform selected this agent; EIP-712 signature delivered\r\n * TASK_DETAILS - Confidential materials sent after on-chain claim\r\n * TASK_CONFIRMED - Agent confirmed the task, now in Working state\r\n * TASK_DECLINED - Agent declined after reviewing confidential materials\r\n * REVISION_REQUESTED - Requester requested revision with criteria results\r\n * TASK_ACCEPTED - Requester accepted delivery, funds released\r\n * TASK_DELIVERED - Delivery submitted (hash on-chain)\r\n * TASK_SETTLED - Auto-settlement triggered at revision limit\r\n * TASK_ABANDONED - Agent voluntarily abandoned the task\r\n * TASK_SUSPENDED - Task suspended after 3 declines\r\n * CHAT_MESSAGE - New chat message received\r\n */\r\nexport type AgentEventType =\r\n | \"TASK_CREATED\"\r\n | \"ASSIGNMENT_SIGNATURE\"\r\n | \"TASK_DETAILS\"\r\n | \"TASK_CONFIRMED\"\r\n | \"TASK_DECLINED\"\r\n | \"REVISION_REQUESTED\"\r\n | \"TASK_ACCEPTED\"\r\n | \"TASK_DELIVERED\"\r\n | \"TASK_SETTLED\"\r\n | \"TASK_ABANDONED\"\r\n | \"TASK_SUSPENDED\"\r\n | \"CHAT_MESSAGE\"\r\n | \"connected\"\r\n | \"disconnected\"\r\n | \"reconnecting\"\r\n | string;\r\n\r\n// ──── Agent Class ────────────────────────────────────────────────\r\n\r\nexport class AgentPactAgent {\n readonly client: AgentPactClient;\r\n readonly chat: TaskChatClient;\r\n readonly social: SocialClient;\r\n readonly knowledge: KnowledgeClient;\r\n readonly platformConfig: PlatformConfig;\r\n private ws: AgentPactWebSocket;\r\n private platformUrl: string;\r\n private jwtToken: string;\r\n private autoClaimOnSignature: boolean;\r\n private handlers = new Map<string, Set<(data: TaskEvent) => void | Promise<void>>>();\r\n private subscribedTasks = new Set<string>();\r\n private _running = false;\r\n\r\n private constructor(\r\n config: AgentConfig,\r\n platformConfig: PlatformConfig\r\n ) {\r\n this.client = config.client;\r\n this.platformUrl = config.platformUrl.replace(/\\/$/, \"\");\r\n this.jwtToken = config.jwtToken;\r\n this.ws = new AgentPactWebSocket(config.wsUrl, config.wsOptions);\r\n this.chat = new TaskChatClient(this.platformUrl, this.jwtToken);\r\n this.social = new SocialClient(this.platformUrl, this.jwtToken, { client: this.client });\r\n this.knowledge = new KnowledgeClient(this.platformUrl, this.jwtToken);\r\n this.platformConfig = platformConfig;\r\n this.autoClaimOnSignature = config.autoClaimOnSignature;\r\n }\r\n\r\n /**\r\n * Create an agent with hardcoded chain configuration.\r\n * Only `privateKey` is required — contract addresses and chain config\r\n * are hardcoded for security (never trust server-provided addresses).\r\n *\r\n * RPC URL can be customized via `rpcUrl` option.\r\n */\r\n static async create(options: AgentCreateOptions): Promise<AgentPactAgent> {\n const baseUrl = options.platformUrl ?? DEFAULT_PLATFORM_URL;\n const discoveredConfig = await fetchPlatformConfig(baseUrl).catch(() => null);\n\n // Step 1: Resolve RPC URL (user override > platform config > hardcoded default)\n const rpcUrl = options.rpcUrl ?? discoveredConfig?.rpcUrl ?? DEFAULT_RPC_URL;\n\n // Step 2: Resolve WebSocket URL (platform config > derived URL)\n const wsUrl =\n discoveredConfig?.wsUrl ??\n (baseUrl.startsWith(\"http://\")\n ? baseUrl.replace(\"http://\", \"ws://\") + \"/ws\"\n : baseUrl.replace(\"https://\", \"wss://\") + \"/ws\");\n\r\n // Step 3: Create viem clients\r\n const pk = options.privateKey.startsWith(\"0x\")\r\n ? options.privateKey as `0x${string}`\r\n : `0x${options.privateKey}` as `0x${string}`;\r\n\r\n const account = privateKeyToAccount(pk);\r\n const viemChain = (CHAIN_ID as number) === 8453 ? base : baseSepolia;\r\n\r\n const publicClient = createPublicClient({\r\n chain: viemChain,\r\n transport: http(rpcUrl),\r\n });\r\n\r\n const walletClient = createWalletClient({\r\n account,\r\n chain: viemChain,\r\n transport: http(rpcUrl),\r\n });\r\n\r\n // Step 4: Build chain config from hardcoded constants (SECURITY)\r\n const chainConfig = {\r\n chainId: CHAIN_ID,\r\n rpcUrl,\r\n escrowAddress: ESCROW_ADDRESS,\r\n tipJarAddress: TIPJAR_ADDRESS,\r\n usdcAddress: USDC_ADDRESS,\r\n explorerUrl: EXPLORER_URL,\r\n };\r\n\r\n const client = new AgentPactClient(\r\n publicClient as PublicClient,\r\n chainConfig,\r\n walletClient as WalletClient<Transport, Chain, Account>\r\n );\r\n\r\n // Step 5: Build platform config object (critical addresses remain hardcoded)\n const platformConfig: PlatformConfig = {\n chainId: CHAIN_ID,\n escrowAddress: ESCROW_ADDRESS,\n tipJarAddress: TIPJAR_ADDRESS,\n usdcAddress: USDC_ADDRESS,\n rpcUrl,\n wsUrl,\n explorerUrl: EXPLORER_URL,\n platformUrl: baseUrl,\n envioUrl: options.envioUrl ?? discoveredConfig?.envioUrl,\n chainSyncMode: discoveredConfig?.chainSyncMode,\n platformFeeBps: discoveredConfig?.platformFeeBps,\n minPassRate: discoveredConfig?.minPassRate,\n version: discoveredConfig?.version,\n };\n\r\n // Step 6: Authenticate (auto SIWE login if no JWT provided)\r\n let jwtToken = options.jwtToken ?? \"\";\r\n if (!jwtToken) {\r\n jwtToken = await AgentPactAgent.autoSiweLogin(\r\n baseUrl,\r\n account.address,\r\n walletClient as WalletClient<Transport, Chain, Account>\r\n );\r\n }\r\n\r\n return new AgentPactAgent(\r\n {\r\n client,\r\n platformUrl: baseUrl,\r\n wsUrl,\r\n jwtToken,\r\n wsOptions: options.wsOptions,\r\n autoClaimOnSignature: options.autoClaimOnSignature ?? true,\r\n },\r\n platformConfig\r\n );\r\n }\r\n\r\n /**\r\n * Perform automatic SIWE login to obtain a JWT token.\r\n *\r\n * Flow:\r\n * 1. GET /api/auth/nonce?address=0x... → { nonce }\r\n * 2. Construct EIP-4361 SIWE message with nonce\r\n * 3. Sign message with wallet private key\r\n * 4. POST /api/auth/verify { message, signature } → { token }\r\n */\r\n private static async autoSiweLogin(\r\n platformUrl: string,\r\n address: string,\r\n walletClient: WalletClient<Transport, Chain, Account>\r\n ): Promise<string> {\r\n const baseUrl = platformUrl.replace(/\\/$/, \"\");\r\n\r\n // Step 1: Get nonce\r\n const nonceRes = await fetch(`${baseUrl}/api/auth/nonce?address=${address}`);\r\n if (!nonceRes.ok) {\r\n throw new Error(\r\n `SIWE nonce request failed: ${nonceRes.status} ${nonceRes.statusText}`\r\n );\r\n }\r\n const { nonce } = (await nonceRes.json()) as { nonce: string };\r\n\r\n // Step 2: Construct SIWE message (EIP-4361 format)\r\n const domain = new URL(baseUrl).host;\r\n const uri = baseUrl;\r\n const issuedAt = new Date().toISOString();\r\n const siweMessage = [\r\n `${domain} wants you to sign in with your Ethereum account:`,\r\n address,\r\n \"\",\r\n \"Sign in to AgentPact\",\r\n \"\",\r\n `URI: ${uri}`,\r\n `Version: 1`,\r\n `Chain ID: ${walletClient.chain?.id ?? 8453}`,\r\n `Nonce: ${nonce}`,\r\n `Issued At: ${issuedAt}`,\r\n ].join(\"\\n\");\r\n\r\n // Step 3: Sign with wallet\r\n const signature = await walletClient.signMessage({\r\n message: siweMessage,\r\n });\r\n\r\n // Step 4: Verify and get JWT\r\n const verifyRes = await fetch(`${baseUrl}/api/auth/verify`, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ message: siweMessage, signature }),\r\n });\r\n\r\n if (!verifyRes.ok) {\r\n throw new Error(\r\n `SIWE verification failed: ${verifyRes.status} ${verifyRes.statusText}`\r\n );\r\n }\r\n\r\n const { token } = (await verifyRes.json()) as { token: string };\r\n return token;\r\n }\r\n\r\n /** Whether the agent is currently running */\r\n get running(): boolean {\r\n return this._running;\r\n }\r\n\r\n /**\r\n * Start the agent: connect WebSocket, authenticate, begin event loop.\r\n */\r\n async start(): Promise<void> {\r\n if (this._running) return;\r\n\r\n // Set up WebSocket event forwarding\r\n this.ws.on(\"*\", (raw) => {\r\n const { event, data } = raw as { event: string; data: unknown };\r\n const taskEvent: TaskEvent = {\r\n type: event,\r\n data: (data as Record<string, unknown>) || {},\r\n };\r\n\r\n // ── Built-in deterministic handlers ──\r\n this.handleBuiltInEvent(event, taskEvent);\r\n\r\n // ── User-registered handlers ──\r\n this.dispatch(event, taskEvent);\r\n });\r\n\r\n await this.ws.connect(this.jwtToken);\r\n this._running = true;\r\n\r\n // Re-subscribe to any tracked tasks\r\n for (const taskId of this.subscribedTasks) {\r\n this.ws.subscribeToTask(taskId);\r\n }\r\n }\r\n\r\n /** Stop the agent */\r\n stop(): void {\r\n this._running = false;\r\n this.ws.disconnect();\r\n }\r\n\r\n /** Register an event handler */\r\n on(event: AgentEventType, handler: (data: TaskEvent) => void | Promise<void>): () => void {\r\n if (!this.handlers.has(event)) {\r\n this.handlers.set(event, new Set());\r\n }\r\n this.handlers.get(event)!.add(handler);\r\n return () => { this.handlers.get(event)?.delete(handler); };\r\n }\r\n\r\n /** Watch a specific task for real-time updates */\r\n watchTask(taskId: string): void {\r\n this.subscribedTasks.add(taskId);\r\n if (this._running) {\r\n this.ws.subscribeToTask(taskId);\r\n }\r\n }\r\n\r\n /** Stop watching a task */\r\n unwatchTask(taskId: string): void {\r\n this.subscribedTasks.delete(taskId);\r\n }\r\n\r\n // ──── Task Lifecycle Methods ─────────────────────────────────────\r\n\r\n /**\r\n * Confirm a task after reviewing confidential materials.\r\n * Calls confirmTask() on-chain → state becomes Working.\r\n */\r\n async confirmTask(escrowId: bigint): Promise<string> {\r\n const txHash = await this.client.confirmTask(escrowId);\r\n console.log(`[Agent] Task confirmed on-chain: ${txHash}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Decline a task after reviewing confidential materials.\r\n * Calls declineTask() on-chain → state returns to Created for next agent.\r\n */\r\n async declineTask(escrowId: bigint): Promise<string> {\r\n const txHash = await this.client.declineTask(escrowId);\r\n console.log(`[Agent] Task declined on-chain: ${txHash}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Submit delivery materials when task is finished.\r\n * Calls submitDelivery() on-chain → state becomes Delivered.\r\n */\r\n async submitDelivery(escrowId: bigint, deliveryHash: string): Promise<string> {\r\n const formattedHash = deliveryHash.startsWith('0x') ? deliveryHash as `0x${string}` : `0x${deliveryHash}` as `0x${string}`;\r\n const txHash = await this.client.submitDelivery(escrowId, formattedHash);\r\n console.log(`[Agent] Delivery submitted on-chain: ${txHash} for escrow: ${escrowId}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Voluntarily abandon a task during Working or InRevision.\r\n * Lighter credit penalty than delivery timeout. Task returns to Created for re-matching.\r\n */\r\n async abandonTask(escrowId: bigint): Promise<string> {\r\n const txHash = await this.client.abandonTask(escrowId);\r\n console.log(`[Agent] Task abandoned on-chain: ${txHash}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Report execution progress to the platform.\r\n * This is a platform API call (not on-chain) for visibility.\r\n *\r\n * @param taskId - Task ID\r\n * @param percent - Progress percentage (0-100)\r\n * @param description - Human-readable progress description\r\n */\r\n async reportProgress(\r\n taskId: string,\r\n percent: number,\r\n description: string\r\n ): Promise<void> {\r\n const res = await fetch(\r\n `${this.platformUrl}/api/tasks/${taskId}/progress`,\r\n {\r\n method: \"POST\",\r\n headers: this.headers(),\r\n body: JSON.stringify({ percent: Math.max(0, Math.min(100, percent)), description }),\r\n }\r\n );\r\n if (!res.ok) throw new Error(`Failed to report progress: ${res.status}`);\r\n console.log(`[Agent] Progress reported: ${percent}% — ${description}`);\r\n }\r\n\r\n /**\r\n * Claim acceptance timeout — when requester doesn't review within the window.\r\n * Agent gets full reward. Only callable by requester or provider.\r\n */\r\n async claimAcceptanceTimeout(escrowId: bigint): Promise<string> {\r\n const txHash = await this.client.claimAcceptanceTimeout(escrowId);\r\n console.log(`[Agent] Acceptance timeout claimed: ${txHash}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Claim delivery timeout — when provider doesn't deliver on time.\r\n * Requester gets full refund. Only callable by requester or provider.\r\n */\r\n async claimDeliveryTimeout(escrowId: bigint): Promise<string> {\r\n const txHash = await this.client.claimDeliveryTimeout(escrowId);\r\n console.log(`[Agent] Delivery timeout claimed: ${txHash}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Claim confirmation timeout — when provider doesn't confirm/decline within 2h.\r\n * Task returns to Created for re-matching. Only callable by requester or provider.\r\n */\r\n async claimConfirmationTimeout(escrowId: bigint): Promise<string> {\r\n const txHash = await this.client.claimConfirmationTimeout(escrowId);\r\n console.log(`[Agent] Confirmation timeout claimed: ${txHash}`);\r\n return txHash;\r\n }\r\n\r\n /**\r\n * Fetch revision details including structured criteriaResults.\r\n * Use after receiving a REVISION_REQUESTED event to understand what failed.\r\n *\r\n * @param taskId - Task ID\r\n * @param revision - Revision number (1-based)\r\n */\r\n async getRevisionDetails(taskId: string, revision?: number): Promise<unknown> {\n const params = revision ? `?revision=${revision}` : \"\";\n const res = await fetch(\n `${this.platformUrl}/api/revisions/${taskId}${params}`,\n { headers: this.headers() }\n );\n if (!res.ok) throw new Error(`Failed to fetch revision details: ${res.status}`);\n const body = (await res.json()) as { data?: unknown; revisions?: unknown[] };\n return body.data ?? body.revisions ?? body;\n }\n\n /**\n * Fetch task timeline.\n * Platform will prefer Envio projections and fall back to local task logs when needed.\n */\n async getTaskTimeline(taskId: string): Promise<TaskTimelineItem[]> {\n const res = await fetch(\n `${this.platformUrl}/api/tasks/${taskId}/timeline`,\n { headers: this.headers() }\n );\n\n if (!res.ok) throw new Error(`Failed to fetch task timeline: ${res.status}`);\n const body = (await res.json()) as { data?: TaskTimelineItem[] };\n return body.data ?? [];\n }\n\n /**\n * Fetch full task details including confidential materials.\n * Only available after claimTask() has been called on-chain.\n */\n async fetchTaskDetails(taskId: string): Promise<TaskDetailsData> {\r\n const res = await fetch(\r\n `${this.platformUrl}/api/tasks/${taskId}/details`,\r\n { headers: this.headers() }\r\n );\n\n if (!res.ok) throw new Error(`Failed to fetch task details: ${res.status}`);\n const body = (await res.json()) as { data?: TaskDetailsData };\n return (body.data ?? body) as TaskDetailsData;\n }\n\n async registerProvider(\n agentType: string = \"openclaw-agent\",\n capabilities: string[] = [\"general\"]\n ): Promise<ProviderRegistrationData> {\n const res = await fetch(`${this.platformUrl}/api/providers`, {\n method: \"POST\",\n headers: this.headers(),\n body: JSON.stringify({ agentType, capabilities }),\n });\n\n if (!res.ok) throw new Error(`Failed to register provider: ${res.status}`);\n const body = (await res.json()) as { profile?: ProviderRegistrationData; data?: ProviderRegistrationData };\n return (body.profile ?? body.data)!;\n }\n\n async ensureProviderProfile(\n agentType: string = \"openclaw-agent\",\n capabilities: string[] = [\"general\"]\n ): Promise<ProviderRegistrationData | null> {\n const meRes = await fetch(`${this.platformUrl}/api/auth/me`, {\n headers: this.headers(),\n });\n if (!meRes.ok) {\n throw new Error(`Failed to fetch current profile: ${meRes.status}`);\n }\n\n const meBody = (await meRes.json()) as { user?: { providerProfile?: ProviderRegistrationData | null } };\n if (meBody.user?.providerProfile) {\n return meBody.user.providerProfile;\n }\n\n return this.registerProvider(agentType, capabilities);\n }\n\r\n // ──── Convenience Methods ────────────────────────────────────────\r\n\r\n async getAvailableTasks(options: {\n limit?: number;\n offset?: number;\n status?: string;\n } = {}): Promise<TaskListItem[]> {\n const params = new URLSearchParams();\r\n params.set(\"limit\", String(options.limit ?? 20));\r\n params.set(\"offset\", String(options.offset ?? 0));\r\n if (options.status) params.set(\"status\", options.status);\r\n\r\n const fetchFromPlatform = async () => {\n const res = await fetch(\n `${this.platformUrl}/api/tasks?${params}`,\n { headers: this.headers() }\n );\n\n if (!res.ok) throw new Error(`Failed to fetch tasks: ${res.status}`);\n const body = (await res.json()) as { data?: TaskListItem[]; tasks?: TaskListItem[] };\n return body.data || body.tasks || [];\n };\n\n try {\n return await fetchFromPlatform();\n } catch (platformError) {\n if (!this.platformConfig.envioUrl) {\n throw platformError;\n }\n\n return queryAvailableTasksFromEnvio(this.platformConfig, options);\n }\n }\n\r\n async bidOnTask(taskId: string, message?: string): Promise<unknown> {\r\n const res = await fetch(\r\n `${this.platformUrl}/api/matching/bid`,\r\n {\r\n method: \"POST\",\r\n headers: this.headers(),\r\n body: JSON.stringify({ taskId, message }),\r\n }\r\n );\r\n\r\n if (!res.ok) throw new Error(`Failed to bid: ${res.status}`);\n const body = (await res.json()) as { data?: unknown; task?: unknown };\n return body.data ?? body.task ?? body;\n }\n\r\n async sendMessage(\r\n taskId: string,\r\n content: string,\r\n type: MessageType = \"GENERAL\"\r\n ): Promise<unknown> {\r\n return this.chat.sendMessage(taskId, content, type);\r\n }\r\n\r\n // ──── Built-in Deterministic Handlers ────────────────────────────\r\n\r\n /**\r\n * Handle events that require deterministic (non-LLM) processing.\r\n * These run BEFORE user-registered handlers.\r\n */\r\n private handleBuiltInEvent(event: string, taskEvent: TaskEvent): void {\r\n switch (event) {\r\n case \"ASSIGNMENT_SIGNATURE\":\r\n if (this.autoClaimOnSignature) {\r\n this.handleAssignmentSignature(taskEvent);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Auto-claim task on-chain when platform delivers EIP-712 signature.\r\n * This is deterministic — no LLM involved, just contract call.\r\n */\r\n private handleAssignmentSignature(event: TaskEvent): void {\r\n const data = event.data;\r\n\r\n const claimParams: ClaimTaskParams = {\r\n escrowId: BigInt(data.escrowId as string | number),\r\n nonce: BigInt(data.nonce as string | number),\r\n expiredAt: BigInt(data.expiredAt as string | number),\r\n platformSignature: data.signature as `0x${string}`,\r\n };\r\n\r\n console.log(`[Agent] Assignment signature received for escrow ${claimParams.escrowId}`);\r\n console.log(`[Agent] Auto-claiming task on-chain...`);\r\n\r\n // Fire-and-forget: claimTask on-chain, then notify via TASK_CLAIMED event\r\n this.client\r\n .claimTask(claimParams)\r\n .then((txHash: any) => {\r\n console.log(`[Agent] claimTask() tx: ${txHash}`);\r\n console.log(`[Agent] Task claimed. Waiting for confidential materials (TASK_DETAILS)...`);\r\n\r\n // Dispatch internal event so user can track claim success\r\n this.dispatch(\"TASK_CLAIMED\", {\r\n type: \"TASK_CLAIMED\",\r\n data: {\r\n escrowId: claimParams.escrowId,\r\n txHash,\r\n taskId: data.taskId,\r\n },\r\n });\r\n })\r\n .catch((err: any) => {\r\n console.error(`[Agent] claimTask() failed:`, err);\r\n this.dispatch(\"CLAIM_FAILED\", {\r\n type: \"CLAIM_FAILED\",\r\n data: {\r\n escrowId: claimParams.escrowId,\r\n error: err instanceof Error ? err.message : String(err),\r\n taskId: data.taskId,\r\n },\r\n });\r\n });\r\n }\r\n\r\n // ──── Private ────────────────────────────────────────────────────\r\n\r\n private dispatch(event: string, data: TaskEvent): void {\r\n const handlers = this.handlers.get(event);\r\n if (handlers) {\r\n for (const handler of handlers) {\r\n try {\r\n const result = handler(data);\r\n if (result instanceof Promise) {\r\n result.catch((err) => {\r\n console.error(`[Agent] Async handler error for \"${event}\":`, err);\r\n });\r\n }\r\n } catch (err) {\r\n console.error(`[Agent] Handler error for \"${event}\":`, err);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private headers(): Record<string, string> {\r\n return {\r\n Authorization: `Bearer ${this.jwtToken}`,\r\n \"Content-Type\": \"application/json\",\r\n };\r\n }\r\n}\r\n"]}
|