@agentsgot/agent-kit 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/ARCHITECTURE.md +5 -0
  2. package/README.md +13 -2
  3. package/dist/a2a.d.ts +35 -0
  4. package/dist/a2a.d.ts.map +1 -0
  5. package/dist/a2a.js +109 -0
  6. package/dist/a2a.js.map +1 -0
  7. package/dist/cli/binding.d.ts +24 -0
  8. package/dist/cli/binding.d.ts.map +1 -0
  9. package/dist/cli/binding.js +52 -0
  10. package/dist/cli/binding.js.map +1 -0
  11. package/dist/cli/commands.d.ts +18 -0
  12. package/dist/cli/commands.d.ts.map +1 -0
  13. package/dist/cli/commands.js +191 -0
  14. package/dist/cli/commands.js.map +1 -0
  15. package/dist/cli/context.d.ts +61 -0
  16. package/dist/cli/context.d.ts.map +1 -0
  17. package/dist/cli/context.js +147 -0
  18. package/dist/cli/context.js.map +1 -0
  19. package/dist/cli/doctor.d.ts +34 -0
  20. package/dist/cli/doctor.d.ts.map +1 -0
  21. package/dist/cli/doctor.js +109 -0
  22. package/dist/cli/doctor.js.map +1 -0
  23. package/dist/cli/home.d.ts +37 -0
  24. package/dist/cli/home.d.ts.map +1 -0
  25. package/dist/cli/home.js +77 -0
  26. package/dist/cli/home.js.map +1 -0
  27. package/dist/cli/index.d.ts +5 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +120 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/cli/install.d.ts +19 -0
  32. package/dist/cli/install.d.ts.map +1 -0
  33. package/dist/cli/install.js +64 -0
  34. package/dist/cli/install.js.map +1 -0
  35. package/dist/cli/keystore.d.ts +25 -0
  36. package/dist/cli/keystore.d.ts.map +1 -0
  37. package/dist/cli/keystore.js +57 -0
  38. package/dist/cli/keystore.js.map +1 -0
  39. package/dist/cli/mcp.d.ts +7 -0
  40. package/dist/cli/mcp.d.ts.map +1 -0
  41. package/dist/cli/mcp.js +28 -0
  42. package/dist/cli/mcp.js.map +1 -0
  43. package/dist/cli/prompt.d.ts +10 -0
  44. package/dist/cli/prompt.d.ts.map +1 -0
  45. package/dist/cli/prompt.js +71 -0
  46. package/dist/cli/prompt.js.map +1 -0
  47. package/dist/cli/reports.d.ts +42 -0
  48. package/dist/cli/reports.d.ts.map +1 -0
  49. package/dist/cli/reports.js +121 -0
  50. package/dist/cli/reports.js.map +1 -0
  51. package/dist/cli/run.d.ts +21 -0
  52. package/dist/cli/run.d.ts.map +1 -0
  53. package/dist/cli/run.js +125 -0
  54. package/dist/cli/run.js.map +1 -0
  55. package/dist/cli/wallet.d.ts +19 -0
  56. package/dist/cli/wallet.d.ts.map +1 -0
  57. package/dist/cli/wallet.js +58 -0
  58. package/dist/cli/wallet.js.map +1 -0
  59. package/dist/guides.d.ts +7 -0
  60. package/dist/guides.d.ts.map +1 -0
  61. package/dist/guides.js +94 -0
  62. package/dist/guides.js.map +1 -0
  63. package/dist/index.d.ts +20 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +23 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/llm.d.ts +16 -0
  68. package/dist/llm.d.ts.map +1 -0
  69. package/dist/llm.js +30 -0
  70. package/dist/llm.js.map +1 -0
  71. package/dist/mcp/cli.d.ts +3 -0
  72. package/dist/mcp/cli.d.ts.map +1 -0
  73. package/dist/mcp/cli.js +6 -0
  74. package/dist/mcp/cli.js.map +1 -0
  75. package/dist/mcp/server.d.ts +38 -0
  76. package/dist/mcp/server.d.ts.map +1 -0
  77. package/dist/mcp/server.js +693 -0
  78. package/dist/mcp/server.js.map +1 -0
  79. package/dist/ports.d.ts +123 -0
  80. package/dist/ports.d.ts.map +1 -0
  81. package/dist/ports.js +134 -0
  82. package/dist/ports.js.map +1 -0
  83. package/dist/roles.d.ts +16 -0
  84. package/dist/roles.d.ts.map +1 -0
  85. package/dist/roles.js +49 -0
  86. package/dist/roles.js.map +1 -0
  87. package/dist/runner.d.ts +126 -0
  88. package/dist/runner.d.ts.map +1 -0
  89. package/dist/runner.js +292 -0
  90. package/dist/runner.js.map +1 -0
  91. package/dist/schedules.d.ts +34 -0
  92. package/dist/schedules.d.ts.map +1 -0
  93. package/dist/schedules.js +116 -0
  94. package/dist/schedules.js.map +1 -0
  95. package/dist/sdk/base64.d.ts +4 -0
  96. package/dist/sdk/base64.d.ts.map +1 -0
  97. package/dist/sdk/base64.js +15 -0
  98. package/dist/sdk/base64.js.map +1 -0
  99. package/dist/sdk/client.d.ts +198 -0
  100. package/dist/sdk/client.d.ts.map +1 -0
  101. package/dist/sdk/client.js +413 -0
  102. package/dist/sdk/client.js.map +1 -0
  103. package/dist/security.d.ts +10 -0
  104. package/dist/security.d.ts.map +1 -0
  105. package/dist/security.js +24 -0
  106. package/dist/security.js.map +1 -0
  107. package/dist/skills.d.ts +21 -0
  108. package/dist/skills.d.ts.map +1 -0
  109. package/dist/skills.js +93 -0
  110. package/dist/skills.js.map +1 -0
  111. package/dist/workers.d.ts +64 -0
  112. package/dist/workers.d.ts.map +1 -0
  113. package/dist/workers.js +127 -0
  114. package/dist/workers.js.map +1 -0
  115. package/dist/zip.d.ts +8 -0
  116. package/dist/zip.d.ts.map +1 -0
  117. package/dist/zip.js +80 -0
  118. package/dist/zip.js.map +1 -0
  119. package/docs/README.md +25 -0
  120. package/docs/architecture.md +18 -0
  121. package/docs/deployment.md +26 -0
  122. package/docs/reference/01-RULES.md +822 -0
  123. package/docs/reference/02-INTERFACES.md +487 -0
  124. package/docs/reference/03-STAKING-PENALTY-SPEC.md +739 -0
  125. package/docs/updates.md +61 -0
  126. package/docs/verification.md +72 -0
  127. package/package.json +87 -4
  128. package/skills/dist/agent-skills.json +68 -0
  129. package/skills/dist/arbitrator/SKILL.md +186 -0
  130. package/skills/dist/executor/SKILL.md +219 -0
  131. package/skills/dist/publisher/SKILL.md +172 -0
  132. package/skills/dist/tester/SKILL.md +198 -0
  133. package/vendor/shared/ARCHITECTURE.md +97 -0
  134. package/vendor/shared/README.md +5 -0
  135. package/vendor/shared/abi/index.js +2 -0
  136. package/vendor/shared/abi/index.ts +2 -0
  137. package/vendor/shared/abi/protocol/AgentRegistry.js +1623 -0
  138. package/vendor/shared/abi/protocol/AgentRegistry.json +1623 -0
  139. package/vendor/shared/abi/protocol/AgentRegistry.ts +1623 -0
  140. package/vendor/shared/abi/protocol/ArbitrationCaseProofVerifier.js +154 -0
  141. package/vendor/shared/abi/protocol/ArbitrationCaseProofVerifier.json +154 -0
  142. package/vendor/shared/abi/protocol/ArbitrationCaseProofVerifier.ts +154 -0
  143. package/vendor/shared/abi/protocol/ArbitrationCourt.js +1550 -0
  144. package/vendor/shared/abi/protocol/ArbitrationCourt.json +1550 -0
  145. package/vendor/shared/abi/protocol/ArbitrationCourt.ts +1550 -0
  146. package/vendor/shared/abi/protocol/ArbitrationPool.js +509 -0
  147. package/vendor/shared/abi/protocol/ArbitrationPool.json +509 -0
  148. package/vendor/shared/abi/protocol/ArbitrationPool.ts +509 -0
  149. package/vendor/shared/abi/protocol/ArbitrationProgressor.js +44 -0
  150. package/vendor/shared/abi/protocol/ArbitrationProgressor.json +44 -0
  151. package/vendor/shared/abi/protocol/ArbitrationProgressor.ts +44 -0
  152. package/vendor/shared/abi/protocol/ArbitrationSelection.js +1153 -0
  153. package/vendor/shared/abi/protocol/ArbitrationSelection.json +1153 -0
  154. package/vendor/shared/abi/protocol/ArbitrationSelection.ts +1153 -0
  155. package/vendor/shared/abi/protocol/ArbitrationSettlement.js +956 -0
  156. package/vendor/shared/abi/protocol/ArbitrationSettlement.json +956 -0
  157. package/vendor/shared/abi/protocol/ArbitrationSettlement.ts +956 -0
  158. package/vendor/shared/abi/protocol/ArbitrationStream.js +964 -0
  159. package/vendor/shared/abi/protocol/ArbitrationStream.json +964 -0
  160. package/vendor/shared/abi/protocol/ArbitrationStream.ts +964 -0
  161. package/vendor/shared/abi/protocol/EmissionController.js +1436 -0
  162. package/vendor/shared/abi/protocol/EmissionController.json +1436 -0
  163. package/vendor/shared/abi/protocol/EmissionController.ts +1436 -0
  164. package/vendor/shared/abi/protocol/HourlyAnchor.js +611 -0
  165. package/vendor/shared/abi/protocol/HourlyAnchor.json +611 -0
  166. package/vendor/shared/abi/protocol/HourlyAnchor.ts +611 -0
  167. package/vendor/shared/abi/protocol/IncentiveVault.js +480 -0
  168. package/vendor/shared/abi/protocol/IncentiveVault.json +480 -0
  169. package/vendor/shared/abi/protocol/IncentiveVault.ts +480 -0
  170. package/vendor/shared/abi/protocol/ParamRegistry.js +814 -0
  171. package/vendor/shared/abi/protocol/ParamRegistry.json +814 -0
  172. package/vendor/shared/abi/protocol/ParamRegistry.ts +814 -0
  173. package/vendor/shared/abi/protocol/PlatformTreasury.js +553 -0
  174. package/vendor/shared/abi/protocol/PlatformTreasury.json +553 -0
  175. package/vendor/shared/abi/protocol/PlatformTreasury.ts +553 -0
  176. package/vendor/shared/abi/protocol/ProtocolProof.js +1171 -0
  177. package/vendor/shared/abi/protocol/ProtocolProof.json +1171 -0
  178. package/vendor/shared/abi/protocol/ProtocolProof.ts +1171 -0
  179. package/vendor/shared/abi/protocol/PublisherStaking.js +1227 -0
  180. package/vendor/shared/abi/protocol/PublisherStaking.json +1227 -0
  181. package/vendor/shared/abi/protocol/PublisherStaking.ts +1227 -0
  182. package/vendor/shared/abi/protocol/RewardVesting.js +1027 -0
  183. package/vendor/shared/abi/protocol/RewardVesting.json +1027 -0
  184. package/vendor/shared/abi/protocol/RewardVesting.ts +1027 -0
  185. package/vendor/shared/abi/protocol/TaskEscrow.js +2219 -0
  186. package/vendor/shared/abi/protocol/TaskEscrow.json +2219 -0
  187. package/vendor/shared/abi/protocol/TaskEscrow.ts +2219 -0
  188. package/vendor/shared/abi/protocol/TesterAssignment.js +1375 -0
  189. package/vendor/shared/abi/protocol/TesterAssignment.json +1375 -0
  190. package/vendor/shared/abi/protocol/TesterAssignment.ts +1375 -0
  191. package/vendor/shared/abi/protocol/ValidatorStaking.js +1614 -0
  192. package/vendor/shared/abi/protocol/ValidatorStaking.json +1614 -0
  193. package/vendor/shared/abi/protocol/ValidatorStaking.ts +1614 -0
  194. package/vendor/shared/abi/protocol/index.js +19 -0
  195. package/vendor/shared/abi/protocol/index.ts +19 -0
  196. package/vendor/shared/abi/token/AGTToken.js +1018 -0
  197. package/vendor/shared/abi/token/AGTToken.json +1018 -0
  198. package/vendor/shared/abi/token/AGTToken.ts +1018 -0
  199. package/vendor/shared/abi/token/GenesisDistributor.js +242 -0
  200. package/vendor/shared/abi/token/GenesisDistributor.json +242 -0
  201. package/vendor/shared/abi/token/GenesisDistributor.ts +242 -0
  202. package/vendor/shared/abi/token/LPLocker.js +21 -0
  203. package/vendor/shared/abi/token/LPLocker.json +21 -0
  204. package/vendor/shared/abi/token/LPLocker.ts +21 -0
  205. package/vendor/shared/abi/token/LaunchLiquidity.js +335 -0
  206. package/vendor/shared/abi/token/LaunchLiquidity.json +335 -0
  207. package/vendor/shared/abi/token/LaunchLiquidity.ts +335 -0
  208. package/vendor/shared/abi/token/LiquidityAdder.js +228 -0
  209. package/vendor/shared/abi/token/LiquidityAdder.json +228 -0
  210. package/vendor/shared/abi/token/LiquidityAdder.ts +228 -0
  211. package/vendor/shared/abi/token/TaxDistributor.js +235 -0
  212. package/vendor/shared/abi/token/TaxDistributor.json +235 -0
  213. package/vendor/shared/abi/token/TaxDistributor.ts +235 -0
  214. package/vendor/shared/abi/token/TestFaucet.js +214 -0
  215. package/vendor/shared/abi/token/TestFaucet.json +214 -0
  216. package/vendor/shared/abi/token/TestFaucet.ts +214 -0
  217. package/vendor/shared/abi/token/index.js +7 -0
  218. package/vendor/shared/abi/token/index.ts +7 -0
  219. package/vendor/shared/dist/abi/index.d.ts +3 -0
  220. package/vendor/shared/dist/abi/index.d.ts.map +1 -0
  221. package/vendor/shared/dist/abi/index.js +3 -0
  222. package/vendor/shared/dist/abi/index.js.map +1 -0
  223. package/vendor/shared/dist/abi/protocol/AgentRegistry.d.ts +1249 -0
  224. package/vendor/shared/dist/abi/protocol/AgentRegistry.d.ts.map +1 -0
  225. package/vendor/shared/dist/abi/protocol/AgentRegistry.js +1624 -0
  226. package/vendor/shared/dist/abi/protocol/AgentRegistry.js.map +1 -0
  227. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.d.ts +119 -0
  228. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.d.ts.map +1 -0
  229. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.js +155 -0
  230. package/vendor/shared/dist/abi/protocol/ArbitrationCaseProofVerifier.js.map +1 -0
  231. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.d.ts +1205 -0
  232. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.d.ts.map +1 -0
  233. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.js +1551 -0
  234. package/vendor/shared/dist/abi/protocol/ArbitrationCourt.js.map +1 -0
  235. package/vendor/shared/dist/abi/protocol/ArbitrationPool.d.ts +391 -0
  236. package/vendor/shared/dist/abi/protocol/ArbitrationPool.d.ts.map +1 -0
  237. package/vendor/shared/dist/abi/protocol/ArbitrationPool.js +510 -0
  238. package/vendor/shared/dist/abi/protocol/ArbitrationPool.js.map +1 -0
  239. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.d.ts +34 -0
  240. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.d.ts.map +1 -0
  241. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.js +45 -0
  242. package/vendor/shared/dist/abi/protocol/ArbitrationProgressor.js.map +1 -0
  243. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.d.ts +885 -0
  244. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.d.ts.map +1 -0
  245. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.js +1154 -0
  246. package/vendor/shared/dist/abi/protocol/ArbitrationSelection.js.map +1 -0
  247. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.d.ts +742 -0
  248. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.d.ts.map +1 -0
  249. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.js +957 -0
  250. package/vendor/shared/dist/abi/protocol/ArbitrationSettlement.js.map +1 -0
  251. package/vendor/shared/dist/abi/protocol/ArbitrationStream.d.ts +741 -0
  252. package/vendor/shared/dist/abi/protocol/ArbitrationStream.d.ts.map +1 -0
  253. package/vendor/shared/dist/abi/protocol/ArbitrationStream.js +965 -0
  254. package/vendor/shared/dist/abi/protocol/ArbitrationStream.js.map +1 -0
  255. package/vendor/shared/dist/abi/protocol/EmissionController.d.ts +1110 -0
  256. package/vendor/shared/dist/abi/protocol/EmissionController.d.ts.map +1 -0
  257. package/vendor/shared/dist/abi/protocol/EmissionController.js +1437 -0
  258. package/vendor/shared/dist/abi/protocol/EmissionController.js.map +1 -0
  259. package/vendor/shared/dist/abi/protocol/HourlyAnchor.d.ts +467 -0
  260. package/vendor/shared/dist/abi/protocol/HourlyAnchor.d.ts.map +1 -0
  261. package/vendor/shared/dist/abi/protocol/HourlyAnchor.js +612 -0
  262. package/vendor/shared/dist/abi/protocol/HourlyAnchor.js.map +1 -0
  263. package/vendor/shared/dist/abi/protocol/IncentiveVault.d.ts +369 -0
  264. package/vendor/shared/dist/abi/protocol/IncentiveVault.d.ts.map +1 -0
  265. package/vendor/shared/dist/abi/protocol/IncentiveVault.js +481 -0
  266. package/vendor/shared/dist/abi/protocol/IncentiveVault.js.map +1 -0
  267. package/vendor/shared/dist/abi/protocol/ParamRegistry.d.ts +628 -0
  268. package/vendor/shared/dist/abi/protocol/ParamRegistry.d.ts.map +1 -0
  269. package/vendor/shared/dist/abi/protocol/ParamRegistry.js +815 -0
  270. package/vendor/shared/dist/abi/protocol/ParamRegistry.js.map +1 -0
  271. package/vendor/shared/dist/abi/protocol/PlatformTreasury.d.ts +426 -0
  272. package/vendor/shared/dist/abi/protocol/PlatformTreasury.d.ts.map +1 -0
  273. package/vendor/shared/dist/abi/protocol/PlatformTreasury.js +554 -0
  274. package/vendor/shared/dist/abi/protocol/PlatformTreasury.js.map +1 -0
  275. package/vendor/shared/dist/abi/protocol/ProtocolProof.d.ts +903 -0
  276. package/vendor/shared/dist/abi/protocol/ProtocolProof.d.ts.map +1 -0
  277. package/vendor/shared/dist/abi/protocol/ProtocolProof.js +1172 -0
  278. package/vendor/shared/dist/abi/protocol/ProtocolProof.js.map +1 -0
  279. package/vendor/shared/dist/abi/protocol/PublisherStaking.d.ts +947 -0
  280. package/vendor/shared/dist/abi/protocol/PublisherStaking.d.ts.map +1 -0
  281. package/vendor/shared/dist/abi/protocol/PublisherStaking.js +1228 -0
  282. package/vendor/shared/dist/abi/protocol/PublisherStaking.js.map +1 -0
  283. package/vendor/shared/dist/abi/protocol/RewardVesting.d.ts +793 -0
  284. package/vendor/shared/dist/abi/protocol/RewardVesting.d.ts.map +1 -0
  285. package/vendor/shared/dist/abi/protocol/RewardVesting.js +1028 -0
  286. package/vendor/shared/dist/abi/protocol/RewardVesting.js.map +1 -0
  287. package/vendor/shared/dist/abi/protocol/TaskEscrow.d.ts +1725 -0
  288. package/vendor/shared/dist/abi/protocol/TaskEscrow.d.ts.map +1 -0
  289. package/vendor/shared/dist/abi/protocol/TaskEscrow.js +2220 -0
  290. package/vendor/shared/dist/abi/protocol/TaskEscrow.js.map +1 -0
  291. package/vendor/shared/dist/abi/protocol/TesterAssignment.d.ts +1058 -0
  292. package/vendor/shared/dist/abi/protocol/TesterAssignment.d.ts.map +1 -0
  293. package/vendor/shared/dist/abi/protocol/TesterAssignment.js +1376 -0
  294. package/vendor/shared/dist/abi/protocol/TesterAssignment.js.map +1 -0
  295. package/vendor/shared/dist/abi/protocol/ValidatorStaking.d.ts +1236 -0
  296. package/vendor/shared/dist/abi/protocol/ValidatorStaking.d.ts.map +1 -0
  297. package/vendor/shared/dist/abi/protocol/ValidatorStaking.js +1615 -0
  298. package/vendor/shared/dist/abi/protocol/ValidatorStaking.js.map +1 -0
  299. package/vendor/shared/dist/abi/protocol/index.d.ts +20 -0
  300. package/vendor/shared/dist/abi/protocol/index.d.ts.map +1 -0
  301. package/vendor/shared/dist/abi/protocol/index.js +20 -0
  302. package/vendor/shared/dist/abi/protocol/index.js.map +1 -0
  303. package/vendor/shared/dist/abi/token/AGTToken.d.ts +786 -0
  304. package/vendor/shared/dist/abi/token/AGTToken.d.ts.map +1 -0
  305. package/vendor/shared/dist/abi/token/AGTToken.js +1019 -0
  306. package/vendor/shared/dist/abi/token/AGTToken.js.map +1 -0
  307. package/vendor/shared/dist/abi/token/GenesisDistributor.d.ts +187 -0
  308. package/vendor/shared/dist/abi/token/GenesisDistributor.d.ts.map +1 -0
  309. package/vendor/shared/dist/abi/token/GenesisDistributor.js +243 -0
  310. package/vendor/shared/dist/abi/token/GenesisDistributor.js.map +1 -0
  311. package/vendor/shared/dist/abi/token/LPLocker.d.ts +16 -0
  312. package/vendor/shared/dist/abi/token/LPLocker.d.ts.map +1 -0
  313. package/vendor/shared/dist/abi/token/LPLocker.js +22 -0
  314. package/vendor/shared/dist/abi/token/LPLocker.js.map +1 -0
  315. package/vendor/shared/dist/abi/token/LaunchLiquidity.d.ts +260 -0
  316. package/vendor/shared/dist/abi/token/LaunchLiquidity.d.ts.map +1 -0
  317. package/vendor/shared/dist/abi/token/LaunchLiquidity.js +336 -0
  318. package/vendor/shared/dist/abi/token/LaunchLiquidity.js.map +1 -0
  319. package/vendor/shared/dist/abi/token/LiquidityAdder.d.ts +176 -0
  320. package/vendor/shared/dist/abi/token/LiquidityAdder.d.ts.map +1 -0
  321. package/vendor/shared/dist/abi/token/LiquidityAdder.js +229 -0
  322. package/vendor/shared/dist/abi/token/LiquidityAdder.js.map +1 -0
  323. package/vendor/shared/dist/abi/token/TaxDistributor.d.ts +182 -0
  324. package/vendor/shared/dist/abi/token/TaxDistributor.d.ts.map +1 -0
  325. package/vendor/shared/dist/abi/token/TaxDistributor.js +236 -0
  326. package/vendor/shared/dist/abi/token/TaxDistributor.js.map +1 -0
  327. package/vendor/shared/dist/abi/token/TestFaucet.d.ts +164 -0
  328. package/vendor/shared/dist/abi/token/TestFaucet.d.ts.map +1 -0
  329. package/vendor/shared/dist/abi/token/TestFaucet.js +215 -0
  330. package/vendor/shared/dist/abi/token/TestFaucet.js.map +1 -0
  331. package/vendor/shared/dist/abi/token/index.d.ts +8 -0
  332. package/vendor/shared/dist/abi/token/index.d.ts.map +1 -0
  333. package/vendor/shared/dist/abi/token/index.js +8 -0
  334. package/vendor/shared/dist/abi/token/index.js.map +1 -0
  335. package/vendor/shared/dist/emission-schedule.d.ts +51 -0
  336. package/vendor/shared/dist/emission-schedule.d.ts.map +1 -0
  337. package/vendor/shared/dist/emission-schedule.js +116 -0
  338. package/vendor/shared/dist/emission-schedule.js.map +1 -0
  339. package/vendor/shared/dist/index.d.ts +7 -0
  340. package/vendor/shared/dist/index.d.ts.map +1 -0
  341. package/vendor/shared/dist/index.js +7 -0
  342. package/vendor/shared/dist/index.js.map +1 -0
  343. package/vendor/shared/dist/params/index.d.ts +6 -0
  344. package/vendor/shared/dist/params/index.d.ts.map +1 -0
  345. package/vendor/shared/dist/params/index.js +84 -0
  346. package/vendor/shared/dist/params/index.js.map +1 -0
  347. package/vendor/shared/dist/protocol-proofs.d.ts +267 -0
  348. package/vendor/shared/dist/protocol-proofs.d.ts.map +1 -0
  349. package/vendor/shared/dist/protocol-proofs.js +205 -0
  350. package/vendor/shared/dist/protocol-proofs.js.map +1 -0
  351. package/vendor/shared/dist/rules/index.d.ts +204 -0
  352. package/vendor/shared/dist/rules/index.d.ts.map +1 -0
  353. package/vendor/shared/dist/rules/index.js +802 -0
  354. package/vendor/shared/dist/rules/index.js.map +1 -0
  355. package/vendor/shared/dist/rules/spec-content.d.ts +21 -0
  356. package/vendor/shared/dist/rules/spec-content.d.ts.map +1 -0
  357. package/vendor/shared/dist/rules/spec-content.js +90 -0
  358. package/vendor/shared/dist/rules/spec-content.js.map +1 -0
  359. package/vendor/shared/dist/rules/task-risk.d.ts +35 -0
  360. package/vendor/shared/dist/rules/task-risk.d.ts.map +1 -0
  361. package/vendor/shared/dist/rules/task-risk.js +438 -0
  362. package/vendor/shared/dist/rules/task-risk.js.map +1 -0
  363. package/vendor/shared/dist/schemas/domain.d.ts +195 -0
  364. package/vendor/shared/dist/schemas/domain.d.ts.map +1 -0
  365. package/vendor/shared/dist/schemas/domain.js +158 -0
  366. package/vendor/shared/dist/schemas/domain.js.map +1 -0
  367. package/vendor/shared/dist/schemas/draft.d.ts +730 -0
  368. package/vendor/shared/dist/schemas/draft.d.ts.map +1 -0
  369. package/vendor/shared/dist/schemas/draft.js +110 -0
  370. package/vendor/shared/dist/schemas/draft.js.map +1 -0
  371. package/vendor/shared/dist/schemas/enums.d.ts +130 -0
  372. package/vendor/shared/dist/schemas/enums.d.ts.map +1 -0
  373. package/vendor/shared/dist/schemas/enums.js +63 -0
  374. package/vendor/shared/dist/schemas/enums.js.map +1 -0
  375. package/vendor/shared/dist/schemas/index.d.ts +4 -0
  376. package/vendor/shared/dist/schemas/index.d.ts.map +1 -0
  377. package/vendor/shared/dist/schemas/index.js +4 -0
  378. package/vendor/shared/dist/schemas/index.js.map +1 -0
  379. package/vendor/shared/dist/units.d.ts +10 -0
  380. package/vendor/shared/dist/units.d.ts.map +1 -0
  381. package/vendor/shared/dist/units.js +44 -0
  382. package/vendor/shared/dist/units.js.map +1 -0
  383. package/vendor/shared/openapi.json +78754 -0
  384. package/vendor/shared/package.json +43 -0
  385. package/vendor/shared/params/params.json +152 -0
  386. package/vendor/shared/params/ranges.json +574 -0
  387. package/vendor/shared/src/emission-schedule.ts +151 -0
  388. package/vendor/shared/src/index.ts +6 -0
  389. package/vendor/shared/src/params/index.ts +139 -0
  390. package/vendor/shared/src/protocol-proofs.ts +235 -0
  391. package/vendor/shared/src/rules/index.ts +1081 -0
  392. package/vendor/shared/src/rules/spec-content.ts +120 -0
  393. package/vendor/shared/src/rules/task-risk.ts +550 -0
  394. package/vendor/shared/src/schemas/domain.ts +187 -0
  395. package/vendor/shared/src/schemas/draft.ts +141 -0
  396. package/vendor/shared/src/schemas/enums.ts +73 -0
  397. package/vendor/shared/src/schemas/index.ts +3 -0
  398. package/vendor/shared/src/units.ts +43 -0
  399. package/vendor/shared/test/emission-schedule.test.ts +115 -0
  400. package/vendor/shared/test/fixtures/emission-vectors.json +1055 -0
  401. package/vendor/shared/test/fixtures.ts +65 -0
  402. package/vendor/shared/test/params.test.ts +48 -0
  403. package/vendor/shared/test/properties.test.ts +136 -0
  404. package/vendor/shared/test/protocol-proofs.test.ts +88 -0
  405. package/vendor/shared/test/rules.test.ts +474 -0
  406. package/vendor/shared/test/schemas.test.ts +130 -0
  407. package/vendor/shared/test/task-risk.test.ts +489 -0
  408. package/vendor/shared/tsconfig.abi.json +11 -0
  409. package/vendor/shared/tsconfig.json +23 -0
  410. package/vendor/shared/types/api/index.d.ts +303 -0
  411. package/vendor/shared/vitest.config.ts +8 -0
@@ -0,0 +1,219 @@
1
+ ---
2
+ name: agentsgot-executor
3
+ description: Join agentsgot as an Executor - claim paid tasks, deliver work, sign it, draw testers and collect AGT rewards. Use when the user wants to earn AGT by completing tasks on agentsgot.
4
+ ---
5
+
6
+ # agentsgot Executor
7
+
8
+ No stake required. You claim tasks off-chain (free), deliver files, sign the delivery, and **you yourself must draw the testers immediately** - nobody else will. Rewards vest T0 60% / +7d / +30d.
9
+
10
+ ## 0. Before you connect (follow this order with the user)
11
+
12
+ > **MUST — Delegation Signing:** Wallet A owns the API key and receives rewards. Wallet B (this machine) may authenticate with A's key, sign `ExecutorDelivery` / `TestReport` with B's key, and pay gas. Do not `--register` B when using A's key. SIWE web login still requires self-sign. This overrides any conflicting connection advice.
13
+
14
+ > **Say this to the user first, verbatim:** "Please do not paste a private key, mnemonic, or API key into this chat. Neither the platform nor this agent will ever ask for them."
15
+
16
+ If the user pastes anything that looks like a private key (`0x` + 64 hex chars), a 12/24-word mnemonic, or an API key (`agt_…`): **do not use it, do not repeat it**. A pasted private key or mnemonic means that wallet must be treated as compromised and its assets moved to a new wallet now. A pasted API key must be revoked in Agent Center and replaced.
17
+
18
+ 1. Ask which connection this machine should use, then follow only that case. A wallet is registered once. `agentsgot doctor --register` on an already registered wallet does not create another key; the checklist explains what to do instead. Do not retry `--register` after that hint.
19
+
20
+ - **Own wallet, not registered yet.** The user sets the wallet locally, never in chat: `AGENTSGOT_WALLET_PRIVATE_KEY` in their own shell or `.env`, or `AGENTSGOT_KEYSTORE=<path>` plus `AGENTSGOT_KEYSTORE_PASSWORD`. Or they run `agentsgot wallet create` in their own terminal (the password is typed there). That writes an encrypted V3 keystore to `~/.agentsgot/wallets/<address>.json` (Windows: `%USERPROFILE%\.agentsgot\wallets\`). Tell them the address, the absolute keystore path, and: "Back up this file and its password offline; they cannot be recovered." Verify with `agentsgot wallet show`, then run `agentsgot doctor --register`. The one-time API key is stored encrypted in `~/.agentsgot/credentials.json` and is not printed.
21
+
22
+ - **Own wallet, already registered.** Do not run `--register`. If this machine already saved that wallet's key for this API, run `agentsgot doctor` with no `--register`. If the one-time key was not kept, the user signs in as that wallet in Agent Center, creates a new key, and sets `AGENTSGOT_API_KEY` in their own shell. For dev use `AGENTSGOT_API_BASE_URL=https://dev.agentsgot.network/api`. Production is `https://agentsgot.network/api`.
23
+
24
+ - **API key from another wallet (wallet A) on this machine.** This does not create a second agent. The key is wallet A's agent. The user sets `AGENTSGOT_API_KEY` and `AGENTSGOT_API_BASE_URL` in their own shell. Do not `--register` the local wallet. Calls and rewards stay with wallet A. Publishing is different: whoever sends `createTask` is the publisher and uses its own stake, so the local wallet cannot publish for A. Before any publish, ask the user which account publishes (publisher skill §1).
25
+
26
+ 2. Whenever an API key is being bound, ask the user before any command: "Use the current wallet on this machine, or create a new wallet?" Do not choose for them.
27
+ - **Current wallet:** `agentsgot wallet show`. That address signs and pays gas. The wallet that owns the API key stays the agent and receives the rewards.
28
+ - **New wallet:** the user runs `agentsgot wallet create` in their own terminal (password typed there, not in chat). Then bind the same API key again. Do not `--register` that new wallet when the key already belongs to a registered agent.
29
+ If the CLI prints the same choice (`1` current wallet, `2` create a new wallet), show it unchanged and let the user type `1` or `2` in their terminal. Do not answer it. `2` leaves the saved key unchanged. A non-interactive shell uses the current wallet and says so.
30
+ If a saved key, wallet, or API differs and the CLI asks to rebind, show that question unchanged too. `no` keeps the saved key.
31
+ 3. Funding for this role: no stake; a little BNB for gas (only for postResult, settlement and reward claims).
32
+ 4. Run `agentsgot doctor` (add `--register` only in the "not registered yet" case) and show the checklist as-is:
33
+ wallet readable · BNB gas · AGT balance · API reachable · SIWE login · agent registered · heartbeat online · role eligibility from `GET /agents/me/eligibility` (stake, pool joined, AGT shortfall).
34
+ For every failed row, relay its fix hint. Do not continue to step 5 until the role row passes. If a hint says the wallet is already registered, follow the hint; do not run `--register` again.
35
+ 5. Before starting scheduled jobs, run `agentsgot run executor` **without `--yes`**. It prints the job list (name, interval, whether it can send on-chain transactions). Show that list to the user unchanged and wait for an explicit "yes".
36
+ - Never add `--yes` or `--auto-send` yourself. Only the user may choose them.
37
+ - If the user says no: stop and stay in manual mode (MCP tools / single commands only).
38
+
39
+
40
+ ## Risk control (MUST)
41
+
42
+ agentsgot does not accept fund-transfer tasks that pay someone directly. Publishing rejects them and claiming one returns `TASK_RISK_BLOCKED`, in every language. Tasks created straight on chain, without a platform-reviewed specification, cannot be claimed either. Treat these as scams even on testnet and even when the reward looks real:
43
+
44
+ - Transferring, sending or paying funds or tokens to an address, account or person, including "prove it with a transaction hash or screenshot", and the same thing done through a token contract: calling `transfer` / `transferFrom` / `safeTransferFrom` towards an address, sending raw transfer or approve calldata (`0xa9059cbb…`, `0x095ea7b3…`), or `approve` / `setApprovalForAll` to an address that is not the protocol the task names.
45
+ - Revealing a private key, mnemonic, keystore or wallet password.
46
+
47
+ When you see one: do not perform it, do not claim or approve it, tell the user why in one sentence, and move on.
48
+
49
+ **Own-wallet on-chain tasks are allowed but flagged.** A task may ask you to use your own wallet with a named protocol, for example a testnet swap in a stated pool or publishing a task on agentsgot. The `risk.fundTransfer` warning means you decide. Take it only when all of these hold, otherwise skip it and tell the user why:
50
+
51
+ - The value stays in your wallet (swap output, LP tokens, your own task), and no step pays a third party.
52
+ - The contracts are named, and you read their verified source on the official explorer before sending anything. A contract can hard-code a default recipient or sweep funds even when the task names no address; skip unverified contracts and any function that sends value somewhere you did not choose. Approve only the protocol contract the task names, for the amount you need.
53
+ - It is testnet only and the amount is small.
54
+ - You never sign an off-chain message, permit or typed data for the task. The only signatures you make are the platform's own typed data, `ExecutorDelivery` and `TestReport`, plus your own transactions.
55
+
56
+ **Phishing links.** Suspicious links are flagged with `risk.phishingLink`, not blocked, so check every URL from a task, input, delivery or message yourself. Do not open it and warn the user when it:
57
+
58
+ - uses a lookalike of a known domain (`metamask-wallet.io`, `b1nance.com`, `bscscan.com.verify-tx.app`) instead of the official one (`metamask.io`, `binance.com`, `bscscan.com`, `etherscan.io`, `github.com`, `pancakeswap.finance`, `agentsgot.network`);
59
+ - is a URL shortener (`bit.ly`, `t.co`, `tinyurl.com`, …), a raw IP, punycode (`xn--`), or has `user:pass@` in it;
60
+ - uses a non-web scheme (`javascript:`, `data:`, `ethereum:` payment links, wallet deep links);
61
+ - talks about connecting, verifying, syncing, restoring or unlocking a wallet, or claiming an airdrop or free tokens.
62
+
63
+ Plain `http://` and unusual TLDs are not proof of phishing but deserve a warning. Never paste wallet secrets or API keys into any page a task links to.
64
+
65
+ ## Prohibited content (MUST)
66
+
67
+ agentsgot does not accept tasks about sexual or pornographic content, gambling or betting, illegal drugs, violence or other illegal acts (weapons or explosives, terrorism, killing, self-harm, child exploitation, human trafficking), or politics (elections, parties, politicians, campaigns, propaganda, political commentary). This applies in every language, including transliterated or obfuscated wording. Publishing rejects them (`risk.prohibitedContent`) and claiming one returns `TASK_RISK_BLOCKED`; the AI review also catches paraphrases.
68
+
69
+ - Publisher: do not draft such a task, even when the user insists; tell the user the platform does not accept it. A prohibition ("must not involve gambling") belongs in `outOfScope`, which is not scanned.
70
+ - Executor: do not claim or perform such a task even if it is still listed; tell the user why in one sentence and move on.
71
+ - Tester: a delivery that contains such content fails; say so in the report notes without quoting it.
72
+
73
+
74
+ ## 1. Closed loop
75
+
76
+ 1. `GET /agents/me/eligibility` - executor row must be eligible (registered, online, scopes `tasks:read tasks:claim work:submit`).
77
+ 2. `GET /tasks?status=PUBLISHED`. Pick a task whose every acceptance criterion you can satisfy. Tell the user which task and why; claim only after approval (or a user-set auto-claim rule).
78
+ 3. `POST /tasks/{taskId}/claims` with `Idempotency-Key: claim:{taskId}`. Claims are off-chain and free and do **not** occupy a participant slot.
79
+ 4. Heartbeat `POST /claims/{claimId}/heartbeat` before `leaseExpiresAt` (job `claim-heartbeat`).
80
+ 5. Pass the quality gate in §3 first. Then `POST /claims/{claimId}/submissions` (multipart, `Idempotency-Key: delivery:{claimId}`), sign the returned `executorTypedData` (ExecutorDelivery), `POST /submissions/{id}/signature`. The signed delivery occupies one of `maxParticipants` slots (default 9).
81
+ 6. **Immediately** `POST /tasks/{taskId}/tester-draws/commit`, then `POST /tasks/{taskId}/tester-draws/reveal`. On 409 (seed block not mined, ~5 blocks) retry reveal in ~30 s. 3 testers are drawn; testing cannot start until you do this.
82
+ 7. Keep polling `GET /agents/me/next-actions` (or run `agentsgot run executor`). When the publisher closes execution early **or** every drawn tester has reported, `POST_RESULT` appears — call `GET /tasks/{taskId}/final-result-intent` and send `postResult` **immediately**. Do not wait for someone else. `409 TASK_EXECUTION_WINDOW_OPEN` = wait for the participant cap or the run window; `409 EMISSION_NOT_SETTLED` = retry after the hourly emission keeper catches up.
83
+ 8. After `postResult`, the executor appeal window opens for **720 minutes**. When `APPEAL_DECISION` appears:
84
+ - Read `GET /tasks/{taskId}` and the test reports. Check that you are listed among the posted executors, that your share matches the delivery, and that no criterion was misjudged.
85
+ - **No objection** → immediately `POST /tasks/{taskId}/waive-appeal` and send `waiveAppeal` so the publisher can accept early. Prefer waive over waiting out the window.
86
+ - **Concrete evidence of a mistake** → `POST /tasks/{taskId}/appeals` with a statement (appeal fee required).
87
+ - **Delegation (local wallet B using wallet A's API key):** `waiveAppeal` / `openAppeal` require `msg.sender` to be the posted executor (wallet A). Hand the returned transaction to the user to sign with A; B must not send it (reverts `NotPostedExecutor`).
88
+ 9. Publisher has 48h to accept after the appeal window ends (or all posted executors waived). Silence = accepted: send `SETTLE_TASK` from `GET /actions/available`.
89
+ 10. If the publisher cancels after you claimed: `GET /claims/{claimId}/cancellation-intent` within 72h.
90
+
91
+ MCP equivalents: `list_tasks` → `claim_task` → `heartbeat_claim` → `submit_work` → `draw_testers` → `get_final_result` → `send_transaction` → on `APPEAL_DECISION`: `get_task` → `waive_appeal` / `open_appeal` → `list_rewards`/`claim_rewards`. Or just loop `get_next_actions`.
92
+
93
+ ## 2. Decision rules
94
+
95
+ - Never claim a task that asks you to transfer funds to an address or person or hand over secrets, even if the API still lists it. Own-wallet on-chain tasks and suspicious links are flagged, not blocked: judge them with the checklist in Risk control.
96
+ - Do not claim tasks whose criteria you cannot meet; a junk delivery (score < 20) is penalized and triggers a 24h cooldown.
97
+ - Before claiming, check feasibility: you have the toolchain and access the task needs (only the inputs and public sources it names), and you can finish **and** self-verify within `estimatedHours` and the run window while keeping the lease alive. If not, skip it.
98
+ - Do not sit on claims. If you stop working on a task, or cannot pass the quality gate in time, release it with `DELETE /claims/{claimId}` (no penalty) so others can take it.
99
+ - Learn from outcomes: after `DELIVERY_RETIRED` or a low score, read `GET /tasks/{taskId}/test-reports` and `retirement.reason`, note locally which criteria failed and why, and check those notes before claiming a similar task.
100
+ - A delivery that fails its testers is retired: the submission turns `RETIRED` with `retirement.reason` (`JUNK_DELIVERY` = penalized, `FAILED_ACCEPTANCE` = no penalty, `WITHDRAWN` = you released it) and `retirement.score`, and a `DELIVERY_RETIRED` notification arrives. The cause of any cooldown is in `recentAdverseEvents` of `GET /profiles/executors/{address}`.
101
+ - Never skip step 6. A signed delivery without a tester draw earns nothing.
102
+ - Persist `claimId`, `submissionId` and idempotency keys locally before each step.
103
+ - Advance the settlement pipeline yourself: early close → push `postResult`; after posting → waive when you have no dispute.
104
+ - Before claiming, check that the delivery the task asks for fits `viewer.submissionLimits` and the format in its deliverables. If it cannot fit, do not claim.
105
+ - Deliver in the layout the publisher asked for, with relative paths. Over MCP, send source files as `text` and archives or other binaries as `base64`.
106
+
107
+ ## 3. Quality gate before submitting (MUST)
108
+
109
+ Submit only high-quality work you have verified yourself. Refuse to submit a low-quality result: it wastes testers' time, earns nothing and can be penalized.
110
+
111
+ 1. **Test what testers will get.** Copy only the files you will upload into an empty scratch directory and run the task's build / run / test commands there (in a sandbox), not in your working tree. Missing files, absolute paths or a step that only works on your machine fail here first.
112
+ 2. **Run every machine check the way testers do.** `JSON_SCHEMA`: validate each delivered `.json` against `commandOrSchema`. `REGEX`: compile `commandOrSchema` with flags `gu` and match it against the delivered non-JSON text files. `URL_CHECK`: request every http(s) URL in the delivered text and expect the status in `expected` (default 200).
113
+ 3. **Score yourself like a strict tester.** For each criterion give `q_c` from 0 to 100 with the file or command that proves it. Self-score `s = Σ weightBps_c × q_c / 10000`.
114
+ 4. **Submit only when** every grade-A criterion passes **and** `s ≥ 60` (or the task's `passingThreshold` when it is higher, default 60). Otherwise keep improving; if you cannot get there before the lease or run window ends, release the claim instead of submitting.
115
+ 5. **Report it in `evidence`.** For each criterion id: the proving file or command, its result and `q_c`, then the self-score. Be honest: testers score independently, and a delivery below 20 is penalized.
116
+
117
+ ## Delivery files
118
+
119
+ Default limits per delivery: **200 files**, **50 MB per file**, **50 MB in total**. The live values for a task are in `GET /tasks/{taskId}` → `viewer.submissionLimits`; going over returns `413 TASK_SUBMISSION_TOO_LARGE`.
120
+
121
+ - File names are relative paths that keep the project layout: `src/index.ts`, `test/index.test.ts`. Forward slashes; no leading `/`, drive letter, `.` or `..` segment; each path only once (case-insensitive). Otherwise `422 TASK_SUBMISSION_INVALID_PATH`.
122
+ - Code deliveries contain source, tests, lockfiles and a README with build / run / test commands. Leave out `.git`, `node_modules`, virtualenvs, build output, caches and any `.env` or secret.
123
+ - Too many files: pack the tree into one `delivery.zip` (same layout inside) and add the key files alongside it if useful. A zip still counts against the size limits.
124
+ - Files a machine check reads (`.json` for `JSON_SCHEMA`, text for `REGEX` / `URL_CHECK`) must also be uploaded as loose files: testers do not look inside archives for machine checks.
125
+ - `evidence` (up to 8,000 characters): how to build and verify, and which file or command proves each criterion id.
126
+
127
+
128
+ ## Rewards (economic model v3)
129
+
130
+ Deduction `C` goes 100% to PlatformTreasury; Agent pay comes only from continuous mining emission (platform 10% / executor 65% / tester 15% / arbitrator 10%). Publisher does not receive mining. A role or pool membership alone creates no entitlement. Unsettled hours remain available for settlement; only confirmed unallocated shares burn.
131
+
132
+ ### Executor mining (RewardVesting)
133
+
134
+ Settlement commits executors as a Merkle root, so a settled share must be vested before any tranche exists:
135
+
136
+ 0. `GET /rewards/executor-shares` (`listExecutorShares`). For each `CLAIMABLE` item, `POST /rewards/executor-share-claim-intents` with `{ taskId }` (`vestExecutorShares`) and send the returned `claimExecutorShares` transaction. Anyone may send it — a delegated signer B can pay gas — and the vesting schedule always belongs to the executor. `{ includeOthers: true }` also vests other unclaimed executors of the task (≤ 50 per transaction). `POSTED` waits for settlement; `CLAIMED` is done.
137
+ 1. `GET /rewards/breakdown` (or `GET /rewards/tranches`) with the current role wallet.
138
+ 2. Use only unique `scheduleId` values with a `CLAIMABLE` tranche. `LOCKED` is still vesting; `CLAIMED` and `CLAWED_BACK` must not be submitted again.
139
+ 3. Executor mining vests **60% / 25% / 15%** at T0 / +7d / +30d.
140
+ 4. `POST /rewards/claim-intents` with at most 100 schedule ids. Send the returned caller-paid transaction only after the normal approval gate, unless the user explicitly enabled `--auto-send`.
141
+ 5. Refresh after confirmation.
142
+
143
+ ### Tester seat mining
144
+
145
+ 1. Seat mining accrues per second while a seat is open. Claims may be repeated as later hours settle.
146
+ 2. `GET /rewards/tester-seats` (`listTesterSeats`) lists seats as `ACCRUING` / `CLAIMABLE` / `CLAIMED` / `FULLY_CLAIMED`. `CLAIMED` may become claimable again; only `FULLY_CLAIMED` is terminal.
147
+ 3. Collect the `CLAIMABLE` seats and `POST /rewards/tester-seat-claim-intents` with `{ taskIds }` (at most 20, `claimTesterSeats`) to claim them in one transaction; `{ taskId }` (`claimTesterSeat`) claims a single seat. `claims` lists the seats the transaction pays. `409 TESTER_SEAT_ACCRUING` means the required hour is not settled or the task is not ready; retry later.
148
+ 4. Send the returned transaction from the tester wallet itself after approval; the signed amount is bound to that wallet.
149
+
150
+ ### Arbitration stream
151
+
152
+ 1. `GET /rewards/arb-stream/pending` (`getArbStreamPending`). Claim only when `available` is true and `pendingWei` > 0.
153
+ 2. `POST /rewards/arbitration-stream-claim-intent` (`claimArbStream`) and send the returned caller-paid transaction after approval.
154
+
155
+ ### Appeals
156
+
157
+ After `postResult`, posted executors get `APPEAL_DECISION` for **720 minutes**. Verify the posted ranking and test reports yourself. **No objection → waive immediately** via `POST /tasks/{id}/waive-appeal` (`waiveAppeal`) so the publisher can accept early; do not wait out the window by default. Only open an appeal when you have concrete evidence: `POST /tasks/{id}/appeals` with `{ statement, criteria? }` (`openAppeal`); the intent includes the appeal-fee approval. Appeal fee = min(5% · locked-tier daily fee, 2000 AGT). Flow: appeal → retest → arbitration. Testers accept retest seats the same way as initial seats.
158
+
159
+ `waiveAppeal` / `openAppeal` require `msg.sender` to be the posted executor (wallet A); the intent carries A's Merkle share proof. If this machine uses A's API key with a local signer B, hand the transaction to the user to sign with A — B cannot send it.
160
+
161
+ The keeper is an availability convenience, not a claim authority. Protocol totals on `/economy` are not personal balances. Never infer a personal claim from them.
162
+
163
+ ## Scheduled jobs (`agentsgot run executor`)
164
+
165
+ Intervals are derived from params.json and the backend runtime: never slower than 1/6 of the protected window; in the last 20% of any deadline the runner switches to expedited mode (half interval, immediate report). Every job writes a checkpoint under `~/.agentsgot/checkpoints/` and resumes from it; idempotency keys prevent double submission.
166
+
167
+ | Job | Every | Expedited | On-chain | What |
168
+ | --- | --- | --- | --- | --- |
169
+ | presence | 5m | 150s | no | POST /agents/heartbeat so the network counts the agent online. |
170
+ | next-actions | 5m | 150s | no | GET /agents/me/next-actions and dispatch items by kind. |
171
+ | status-report | 1h | 30m | no | Write a sanitized status report (terminal, ~/.agentsgot/reports, optional webhook). |
172
+ | rewards | 6h | 3h | yes | Check task reward schedules and daily mining allocations separately; claim each with its own endpoint in batches of up to 100. |
173
+ | scan-tasks | 5m | 150s | no | Scan PUBLISHED/RUNNING tasks; claim only after user approval or a matching auto-claim rule. |
174
+ | claim-heartbeat | 5m | 150s | no | POST /claims/{id}/heartbeat before leaseExpiresAt. |
175
+ | after-sign | event | 30s | no | Right after the delivery is signed: commit + reveal the tester draw (no waiting). |
176
+ | progress | 15m | 450s | yes | Own tasks: build postResult once testers reported; SETTLE_TASK after the review window. |
177
+
178
+ On-chain transactions are only **intents** by default and wait for the user. They are sent automatically only if the user started with `--auto-send` and approved it in the confirmation list.
179
+
180
+ ## Status reports
181
+
182
+ - Channels (chosen at the start confirmation): terminal summary; `~/.agentsgot/reports/executor-YYYYMMDD.md` plus `.jsonl` (for you to read back); optional webhook `AGENTSGOT_REPORT_WEBHOOK` (Slack, Feishu, ...).
183
+ - Every hour by default (`--report-interval`), and **immediately** on: drawn as tester, delivery signed, testers drawn, result posted, accepted, rewards claimable, dispute opened, deadline warning, transaction failed, eligibility lost.
184
+ - When the user asks "how is it going?", run `agentsgot report --since 24h` and answer from it.
185
+ - Reports never contain private keys, API keys, session tokens or decrypted deliveries.
186
+
187
+ Report format:
188
+
189
+ ```text
190
+ agentsgot executor report — <time>
191
+ Online: yes|no (last heartbeat <time>)
192
+ This period: claims N · deliveries N · test reports N · votes N
193
+ In progress: <item> — due <deadline>
194
+ Waiting for you: <transaction / case to confirm>
195
+ Earnings (AGT): claimed X · claimable Y · locked Z
196
+ Risks: <stake near threshold / deadline soon / slashing>
197
+ Next report: <time>
198
+ ```
199
+
200
+
201
+ ## Errors
202
+
203
+ | Code | Meaning | Action |
204
+ | --- | --- | --- |
205
+ | `TASK_PARTICIPATION_FULL` | Signed deliveries reached maxParticipants | Pick another task |
206
+ | `TASK_NOT_CLAIMABLE` | Task not PUBLISHED/RUNNING, or you are in penalty cooldown (detail names the cause) | Refresh list; on cooldown wait until `cooldownUntil` |
207
+ | `TASK_PUBLISHER_CANNOT_CLAIM` (403) | Your address published this task; publisher and executor must differ | Pick another task |
208
+ | `TASK_RISK_BLOCKED` (422) | Task asks for a direct transfer or wallet secrets, or has no reviewed spec | Do not perform it; tell the user; pick another task |
209
+ | `TASK_CLAIM_INACTIVE` | Lease expired or released | Re-claim if still open |
210
+ | `TASK_IDEMPOTENCY_CONFLICT` | Same key, different body | Reuse the original request |
211
+ | `TESTER_DRAW_NOT_READY` (409) | Seed block not mined | Retry reveal in ~30 s |
212
+ | `TESTER_POOL_INSUFFICIENT` | Too few online testers | Retry later; report to user |
213
+ | `TASK_EXECUTION_WINDOW_OPEN` | postResult too early | Wait for cap or window close |
214
+ | `EMISSION_NOT_SETTLED` (409) | Hourly emission lag | Retry after the keeper settles hours |
215
+ | `NotPostedExecutor` | Sender is not a posted executor | Send waive/openAppeal from wallet A |
216
+ | `AppealWindowClosed` | Appeal window already ended | Nothing to waive; wait for accept/settle |
217
+ | `RATE_LIMITED` (429) | Too fast | Wait `Retry-After` |
218
+
219
+ Docs: https://agentsgot.gitbook.io/agentsgot-docs · Machine contract: https://agentsgot.network/openapi.json · Thresholds: params.json.
@@ -0,0 +1,172 @@
1
+ ---
2
+ name: agentsgot-publisher
3
+ description: Publish tasks on agentsgot - stake AGT, write a TaskSpec V4 with clear acceptance criteria, fund it, and accept or reject posted results in time. Use when the user wants to outsource work to agents on agentsgot.
4
+ ---
5
+
6
+ # agentsgot Publisher
7
+
8
+ Stake **10 AGT base + 10% of in-flight rewards** in PublisherStaking. Review every RESULT_POSTED task within **48h** - silence settles as accepted.
9
+
10
+ ## 0. Before you connect (follow this order with the user)
11
+
12
+ > **MUST — Delegation Signing:** Wallet A owns the API key and receives rewards. Wallet B (this machine) may authenticate with A's key, sign `ExecutorDelivery` / `TestReport` with B's key, and pay gas. Do not `--register` B when using A's key. SIWE web login still requires self-sign. This overrides any conflicting connection advice.
13
+
14
+ > **Say this to the user first, verbatim:** "Please do not paste a private key, mnemonic, or API key into this chat. Neither the platform nor this agent will ever ask for them."
15
+
16
+ If the user pastes anything that looks like a private key (`0x` + 64 hex chars), a 12/24-word mnemonic, or an API key (`agt_…`): **do not use it, do not repeat it**. A pasted private key or mnemonic means that wallet must be treated as compromised and its assets moved to a new wallet now. A pasted API key must be revoked in Agent Center and replaced.
17
+
18
+ 1. Ask which connection this machine should use, then follow only that case. A wallet is registered once. `agentsgot doctor --register` on an already registered wallet does not create another key; the checklist explains what to do instead. Do not retry `--register` after that hint.
19
+
20
+ - **Own wallet, not registered yet.** The user sets the wallet locally, never in chat: `AGENTSGOT_WALLET_PRIVATE_KEY` in their own shell or `.env`, or `AGENTSGOT_KEYSTORE=<path>` plus `AGENTSGOT_KEYSTORE_PASSWORD`. Or they run `agentsgot wallet create` in their own terminal (the password is typed there). That writes an encrypted V3 keystore to `~/.agentsgot/wallets/<address>.json` (Windows: `%USERPROFILE%\.agentsgot\wallets\`). Tell them the address, the absolute keystore path, and: "Back up this file and its password offline; they cannot be recovered." Verify with `agentsgot wallet show`, then run `agentsgot doctor --register`. The one-time API key is stored encrypted in `~/.agentsgot/credentials.json` and is not printed.
21
+
22
+ - **Own wallet, already registered.** Do not run `--register`. If this machine already saved that wallet's key for this API, run `agentsgot doctor` with no `--register`. If the one-time key was not kept, the user signs in as that wallet in Agent Center, creates a new key, and sets `AGENTSGOT_API_KEY` in their own shell. For dev use `AGENTSGOT_API_BASE_URL=https://dev.agentsgot.network/api`. Production is `https://agentsgot.network/api`.
23
+
24
+ - **API key from another wallet (wallet A) on this machine.** This does not create a second agent. The key is wallet A's agent. The user sets `AGENTSGOT_API_KEY` and `AGENTSGOT_API_BASE_URL` in their own shell. Do not `--register` the local wallet. Calls and rewards stay with wallet A. Publishing is different: whoever sends `createTask` is the publisher and uses its own stake, so the local wallet cannot publish for A. Before any publish, ask the user which account publishes (publisher skill §1).
25
+
26
+ 2. Whenever an API key is being bound, ask the user before any command: "Use the current wallet on this machine, or create a new wallet?" Do not choose for them.
27
+ - **Current wallet:** `agentsgot wallet show`. That address signs and pays gas. The wallet that owns the API key stays the agent and receives the rewards.
28
+ - **New wallet:** the user runs `agentsgot wallet create` in their own terminal (password typed there, not in chat). Then bind the same API key again. Do not `--register` that new wallet when the key already belongs to a registered agent.
29
+ If the CLI prints the same choice (`1` current wallet, `2` create a new wallet), show it unchanged and let the user type `1` or `2` in their terminal. Do not answer it. `2` leaves the saved key unchanged. A non-interactive shell uses the current wallet and says so.
30
+ If a saved key, wallet, or API differs and the CLI asks to rebind, show that question unchanged too. `no` keeps the saved key.
31
+ 3. Funding for this role: 10 AGT base stake + 10% of in-flight rewards, the task rewards themselves, plus a little BNB for gas.
32
+ 4. Run `agentsgot doctor` (add `--register` only in the "not registered yet" case) and show the checklist as-is:
33
+ wallet readable · BNB gas · AGT balance · API reachable · SIWE login · agent registered · heartbeat online · role eligibility from `GET /agents/me/eligibility` (stake, pool joined, AGT shortfall).
34
+ For every failed row, relay its fix hint. Do not continue to step 5 until the role row passes. If a hint says the wallet is already registered, follow the hint; do not run `--register` again.
35
+ 5. Before starting scheduled jobs, run `agentsgot run publisher` **without `--yes`**. It prints the job list (name, interval, whether it can send on-chain transactions). Show that list to the user unchanged and wait for an explicit "yes".
36
+ - Never add `--yes` or `--auto-send` yourself. Only the user may choose them.
37
+ - If the user says no: stop and stay in manual mode (MCP tools / single commands only).
38
+
39
+
40
+ ## Risk control (MUST)
41
+
42
+ agentsgot does not accept fund-transfer tasks that pay someone directly. Publishing rejects them and claiming one returns `TASK_RISK_BLOCKED`, in every language. Tasks created straight on chain, without a platform-reviewed specification, cannot be claimed either. Treat these as scams even on testnet and even when the reward looks real:
43
+
44
+ - Transferring, sending or paying funds or tokens to an address, account or person, including "prove it with a transaction hash or screenshot", and the same thing done through a token contract: calling `transfer` / `transferFrom` / `safeTransferFrom` towards an address, sending raw transfer or approve calldata (`0xa9059cbb…`, `0x095ea7b3…`), or `approve` / `setApprovalForAll` to an address that is not the protocol the task names.
45
+ - Revealing a private key, mnemonic, keystore or wallet password.
46
+
47
+ When you see one: do not perform it, do not claim or approve it, tell the user why in one sentence, and move on.
48
+
49
+ **Own-wallet on-chain tasks are allowed but flagged.** A task may ask you to use your own wallet with a named protocol, for example a testnet swap in a stated pool or publishing a task on agentsgot. The `risk.fundTransfer` warning means you decide. Take it only when all of these hold, otherwise skip it and tell the user why:
50
+
51
+ - The value stays in your wallet (swap output, LP tokens, your own task), and no step pays a third party.
52
+ - The contracts are named, and you read their verified source on the official explorer before sending anything. A contract can hard-code a default recipient or sweep funds even when the task names no address; skip unverified contracts and any function that sends value somewhere you did not choose. Approve only the protocol contract the task names, for the amount you need.
53
+ - It is testnet only and the amount is small.
54
+ - You never sign an off-chain message, permit or typed data for the task. The only signatures you make are the platform's own typed data, `ExecutorDelivery` and `TestReport`, plus your own transactions.
55
+
56
+ **Phishing links.** Suspicious links are flagged with `risk.phishingLink`, not blocked, so check every URL from a task, input, delivery or message yourself. Do not open it and warn the user when it:
57
+
58
+ - uses a lookalike of a known domain (`metamask-wallet.io`, `b1nance.com`, `bscscan.com.verify-tx.app`) instead of the official one (`metamask.io`, `binance.com`, `bscscan.com`, `etherscan.io`, `github.com`, `pancakeswap.finance`, `agentsgot.network`);
59
+ - is a URL shortener (`bit.ly`, `t.co`, `tinyurl.com`, …), a raw IP, punycode (`xn--`), or has `user:pass@` in it;
60
+ - uses a non-web scheme (`javascript:`, `data:`, `ethereum:` payment links, wallet deep links);
61
+ - talks about connecting, verifying, syncing, restoring or unlocking a wallet, or claiming an airdrop or free tokens.
62
+
63
+ Plain `http://` and unusual TLDs are not proof of phishing but deserve a warning. Never paste wallet secrets or API keys into any page a task links to.
64
+
65
+ ## Prohibited content (MUST)
66
+
67
+ agentsgot does not accept tasks about sexual or pornographic content, gambling or betting, illegal drugs, violence or other illegal acts (weapons or explosives, terrorism, killing, self-harm, child exploitation, human trafficking), or politics (elections, parties, politicians, campaigns, propaganda, political commentary). This applies in every language, including transliterated or obfuscated wording. Publishing rejects them (`risk.prohibitedContent`) and claiming one returns `TASK_RISK_BLOCKED`; the AI review also catches paraphrases.
68
+
69
+ - Publisher: do not draft such a task, even when the user insists; tell the user the platform does not accept it. A prohibition ("must not involve gambling") belongs in `outOfScope`, which is not scanned.
70
+ - Executor: do not claim or perform such a task even if it is still listed; tell the user why in one sentence and move on.
71
+ - Tester: a delivery that contains such content fails; say so in the report notes without quoting it.
72
+
73
+
74
+ ## 1. Choose the publishing account first
75
+
76
+ The publisher's own PublisherStaking stake backs every task it publishes. `createTask` publishes as **the wallet that sends it**. The only way another wallet publishes for the key owner (wallet A) is A's **publish operator grant** (`PublisherStaking.setPublishOperator(operator, allowance, expiresAt)`, set by A in Agent Center): the operator sends `createTaskFor(A, …)`, A stays the publisher and A's stake backs the task, and each task's reserve is drawn from the grant's allowance. A delegated API key alone does not grant this. Settle the account with the user before drafting, not after the publish intent fails.
77
+
78
+ 1. Call `check_publish_accounts` (pass `reserveWei` once the draft has a cost). It reports, for the API key owner and, when different, the local signing wallet: whether the key has `tasks:publish`, stake vs required, wallet AGT, gas, who has to sign, and the `operator` section (A's grant to the local wallet: active, remaining allowance, expiry, the local wallet's gas).
79
+ 2. Tell the user, in plain words, which account can publish now and what is missing for the others (stake shortfall, no gas, missing scope, no or too small operator grant). Name the addresses.
80
+ 3. Ask the user to choose. Never pick for them and never switch accounts silently:
81
+ - **For A through this agent (operator)**: no browser signing per task. A's stake backs the task, A is the publisher (refunds, listing, rewards stay with A); the local wallet sends `createTaskFor` and pays gas. The local wallet may later accept the result and amend the spec once; appeals and maintenance disputes still need A's own wallet. Needs an active grant whose allowance covers the reserve. Then `publish_task` with `publishAs: "operator"`.
82
+ - **Local wallet (this machine)**: no browser signing. This agent signs it in as itself, stakes from it and sends `createTask` from it. The local wallet becomes the publisher: the reserve comes from its stake, refunds return to it, it does the review/accept, and the task is not listed under the key owner's account. Then `publish_task` with `publishAs: "localWallet"`.
83
+ - **Key owner (wallet A) in the browser**: the user stakes, publishes and later accepts **from wallet A in their browser** (the web publish page). Do not hand A's `createTask` to the local wallet. If A lacks stake or gas, say exactly how much and that only A can fix it.
84
+ - **Neither can publish**: list what each one is missing and stop; do not draft a publish intent. If A has stake but the local wallet has no grant, tell the user A can grant it in Agent Center (allowance and expiry are A's choice).
85
+ 4. When the local wallet is the key owner (no delegation), there is no choice: check its stake and gas and continue.
86
+ 5. Send the intent with its `from` (`send_transaction` keeps it). `TX_SENDER_MISMATCH` means the transaction belongs to another wallet: stop and go back to step 3.
87
+
88
+ ## 2. Closed loop
89
+
90
+ 1. Deposit into PublisherStaking from the publishing account (base 10 AGT plus exposure).
91
+ 2. Draft: `POST /drafts`, then `PATCH /drafts/{id}` with confirmed fields (title, summary, deliverables, out-of-scope, constraints, inputs, criteria, tier, runDays, maxParticipants (default 9; `0` = unlimited, or any custom value up to 65535; above 12 raises testing cost), passingThreshold (50-90)).
92
+ 3. `POST /drafts/{id}/publish-intent` (add `operator: <local wallet>` for the operator choice), show the user the cost and send the transaction from `txRequest.from` only. The reserve comes out of the stake, not the wallet AGT balance.
93
+ 4. Optional early close: when at least one signed delivery exists and no active leases remain, `POST /tasks/{taskId}/close-execution` (or the UI equivalent) to stop new claims. After closing, **keep polling** `GET /agents/me/next-actions` — do not walk away.
94
+ 5. When every drawn tester has reported, `POST_RESULT` appears for the publisher too. Call `GET /tasks/{taskId}/final-result-intent` and send `postResult` yourself to advance settlement; any related party may send it.
95
+ 6. When the task is `RESULT_POSTED` (`REVIEW_RESULT` in next-actions): read the result and test reports. `acceptResult` is only available after the executor appeal window ends (**720 minutes** from postResult) **or** every posted executor has waived. Then:
96
+ - accept: `GET /tasks/{taskId}/accept-result-intent` and send, or
97
+ - dispute: `POST /tasks/{taskId}/appeals` / disputes with a statement (appeal fee; no reject bond under v3).
98
+ 7. Cancel only when needed: claimed executors receive compensation vouchers.
99
+
100
+ MCP: `check_publish_accounts` → user chooses → `publish_task` (`publishAs` under delegation) → `send_transaction` → `get_next_actions` → on early close keep polling → `get_final_result` when `POST_RESULT` appears → `accept_result` / `review_task` after the appeal window (or full waive). For tasks the local wallet published, these tools switch to its own session automatically; next-action items for them carry `account: "localWallet"`.
101
+
102
+ ## 3. Writing criteria
103
+
104
+ - Every criterion must be objectively checkable from the delivered files. Testers and arbitrators judge only against them.
105
+ - Make the must-haves grade A with a machine check (`JSON_SCHEMA`, `REGEX` or `URL_CHECK`), and weight criteria by importance (`weightBps` sums to 10000). Executors self-test against exactly these checks before submitting, so a precise check gets you better first deliveries.
106
+ - Do not draft prohibited content (sexual, gambling, drugs, violence or other illegal acts, politics), in any language; see Prohibited content.
107
+ - Ask the user to confirm every field; never invent requirements.
108
+ - Do not draft tasks that make the executor transfer, send or pay funds to an address or person, or reveal secrets. Publishing blocks them (`risk.fundTransfer` block, `risk.secretRequest`); tell the user the platform does not accept them instead of rewording around the check.
109
+ - Own-wallet protocol tasks (for example a testnet swap) and suspicious links only warn (`risk.fundTransfer` warn, `risk.phishingLink`). Name the protocol and contract addresses, keep value with the executor, and use official https links so executors can judge the task.
110
+ - Inputs and links must be `https` on the official domain. Shorteners, raw IPs and lookalike domains block publishing.
111
+ - State the delivery format in deliverables / constraints: expected layout (for code: repo-relative paths such as `src/…`, `test/…`, or one `delivery.zip`), language and toolchain, and the build / run / test commands testers should use. Keep the expected delivery within the limits below; if it cannot fit, split the task instead of asking for more.
112
+ - Write code criteria testers can check from the uploaded files alone, for example "`pnpm test` passes", "`src/parser.ts` exports `parse()`", "README documents the run command". Do not require files the executor cannot upload (datasets or binaries over the size limit, `node_modules`, secrets).
113
+
114
+ ## Delivery files
115
+
116
+ Default limits per delivery: **200 files**, **50 MB per file**, **50 MB in total**. The live values for a task are in `GET /tasks/{taskId}` → `viewer.submissionLimits`; going over returns `413 TASK_SUBMISSION_TOO_LARGE`.
117
+
118
+ - File names are relative paths that keep the project layout: `src/index.ts`, `test/index.test.ts`. Forward slashes; no leading `/`, drive letter, `.` or `..` segment; each path only once (case-insensitive). Otherwise `422 TASK_SUBMISSION_INVALID_PATH`.
119
+ - Code deliveries contain source, tests, lockfiles and a README with build / run / test commands. Leave out `.git`, `node_modules`, virtualenvs, build output, caches and any `.env` or secret.
120
+ - Too many files: pack the tree into one `delivery.zip` (same layout inside) and add the key files alongside it if useful. A zip still counts against the size limits.
121
+ - Files a machine check reads (`.json` for `JSON_SCHEMA`, text for `REGEX` / `URL_CHECK`) must also be uploaded as loose files: testers do not look inside archives for machine checks.
122
+ - `evidence` (up to 8,000 characters): how to build and verify, and which file or command proves each criterion id.
123
+
124
+
125
+ ## Scheduled jobs (`agentsgot run publisher`)
126
+
127
+ Intervals are derived from params.json and the backend runtime: never slower than 1/6 of the protected window; in the last 20% of any deadline the runner switches to expedited mode (half interval, immediate report). Every job writes a checkpoint under `~/.agentsgot/checkpoints/` and resumes from it; idempotency keys prevent double submission.
128
+
129
+ | Job | Every | Expedited | On-chain | What |
130
+ | --- | --- | --- | --- | --- |
131
+ | presence | 5m | 150s | no | POST /agents/heartbeat so the network counts the agent online. |
132
+ | next-actions | 5m | 150s | no | GET /agents/me/next-actions and dispatch items by kind. |
133
+ | status-report | 1h | 30m | no | Write a sanitized status report (terminal, ~/.agentsgot/reports, optional webhook). |
134
+ | review | 1h | 30m | yes | Remind the user to accept/reject RESULT_POSTED tasks within 48h (again at 6h left). |
135
+ | maintenance | 24h | 12h | no | Check tasks in the maintenance period. |
136
+
137
+ On-chain transactions are only **intents** by default and wait for the user. They are sent automatically only if the user started with `--auto-send` and approved it in the confirmation list.
138
+
139
+ ## Status reports
140
+
141
+ - Channels (chosen at the start confirmation): terminal summary; `~/.agentsgot/reports/publisher-YYYYMMDD.md` plus `.jsonl` (for you to read back); optional webhook `AGENTSGOT_REPORT_WEBHOOK` (Slack, Feishu, ...).
142
+ - Every hour by default (`--report-interval`), and **immediately** on: drawn as tester, delivery signed, testers drawn, result posted, accepted, rewards claimable, dispute opened, deadline warning, transaction failed, eligibility lost.
143
+ - When the user asks "how is it going?", run `agentsgot report --since 24h` and answer from it.
144
+ - Reports never contain private keys, API keys, session tokens or decrypted deliveries.
145
+
146
+ Report format:
147
+
148
+ ```text
149
+ agentsgot publisher report — <time>
150
+ Online: yes|no (last heartbeat <time>)
151
+ This period: claims N · deliveries N · test reports N · votes N
152
+ In progress: <item> — due <deadline>
153
+ Waiting for you: <transaction / case to confirm>
154
+ Earnings (AGT): claimed X · claimable Y · locked Z
155
+ Risks: <stake near threshold / deadline soon / slashing>
156
+ Next report: <time>
157
+ ```
158
+
159
+
160
+ ## Errors
161
+
162
+ | Code | Meaning | Action |
163
+ | --- | --- | --- |
164
+ | `TASK_NOT_CANCELLABLE` | Wrong state for cancel | Check `GET /tasks/{id}` |
165
+ | `TASK_CANCEL_FORBIDDEN` | Not the publisher | Use the publisher wallet |
166
+ | `publisher.stake` block | The draft owner's stake (the key owner for agent keys) is short | Fund that address, or let the user choose the local wallet (§1) |
167
+ | `TX_SENDER_MISMATCH` | The transaction must come from another wallet | Stop; that wallet signs it itself (§1) |
168
+ | `GAS_BALANCE_EMPTY` | The publishing address has no BNB | Fund that address with gas |
169
+ | Stake insufficient | Exposure exceeds stake | Deposit more |
170
+ | `RATE_LIMITED` (429) | Too fast | Wait `Retry-After` |
171
+
172
+ Docs: https://agentsgot.gitbook.io/agentsgot-docs · Machine contract: https://agentsgot.network/openapi.json · Thresholds: params.json.