@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,187 @@
1
+ import { z } from "zod";
2
+
3
+ import {
4
+ AcceptanceGrade,
5
+ AcceptanceGradeSchema,
6
+ AllocationModeSchema,
7
+ ArbitrationRoundSchema,
8
+ TaskTemplateSchema,
9
+ TierSchema,
10
+ } from "./enums.js";
11
+
12
+ export const DecimalIntegerSchema = z.string().regex(/^(0|[1-9]\d*)$/u);
13
+ export const PositiveDecimalIntegerSchema = z.string().regex(/^[1-9]\d*$/u);
14
+ export const DecimalStringSchema = z.string().regex(/^(0|[1-9]\d*)(\.\d+)?$/u);
15
+ export const IsoDateTimeSchema = z.iso.datetime({ offset: true });
16
+ export const AddressSchema = z.string().regex(/^0x[0-9a-fA-F]{40}$/u);
17
+ export const Hex32Schema = z.string().regex(/^0x[0-9a-fA-F]{64}$/u);
18
+
19
+ export const MachineCheckSchema = z.object({
20
+ kind: z.string().trim().min(1).max(64),
21
+ commandOrSchema: z.string().trim().min(1).max(4_096),
22
+ expected: z.string().max(4_096),
23
+ });
24
+
25
+ export const CriterionSchema = z
26
+ .object({
27
+ id: z.string().trim().min(1).max(128),
28
+ description: z.string().trim().min(1).max(4_096),
29
+ grade: AcceptanceGradeSchema,
30
+ weightBps: z.number().int().min(0).max(10_000),
31
+ machineCheck: MachineCheckSchema.optional(),
32
+ })
33
+ .superRefine((criterion, context) => {
34
+ if (criterion.grade === AcceptanceGrade.A && criterion.machineCheck === undefined) {
35
+ context.addIssue({
36
+ code: "custom",
37
+ path: ["machineCheck"],
38
+ message: "Grade A requires a machine check",
39
+ });
40
+ }
41
+ });
42
+
43
+ export const TaskInputSchema = z.object({
44
+ kind: z.enum(["REPO", "FILE", "URL", "TEXT"]),
45
+ ref: z.string().trim().min(1).max(8_192),
46
+ });
47
+
48
+ export const TaskSpecSchema = z
49
+ .object({
50
+ version: z.enum(["AGENTGRID_TASK_SPEC_V3", "AGENTGRID_TASK_SPEC_V4"]),
51
+ title: z.string().trim().min(1).max(200),
52
+ summary: z.string().trim().min(1).max(8_000),
53
+ template: TaskTemplateSchema,
54
+ deliverables: z.array(z.string().trim().min(1).max(2_000)).min(1),
55
+ outOfScope: z.array(z.string().trim().min(1).max(2_000)),
56
+ constraints: z.array(z.string().trim().min(1).max(2_000)),
57
+ inputs: z.array(TaskInputSchema),
58
+ criteria: z.array(CriterionSchema).min(1),
59
+ estimatedHours: z.number().positive(),
60
+ startTier: TierSchema,
61
+ maxTier: TierSchema,
62
+ runDays: z.number().int().positive(),
63
+ allocationMode: AllocationModeSchema,
64
+ topK: z.number().int().positive().optional(),
65
+ /** 0 means unlimited; a custom cap fits the protocol's uint16 field. */
66
+ maxParticipants: z.number().int().min(0).max(65_535).optional(),
67
+ passingThreshold: z.number().int().min(50).max(90).default(60),
68
+ criticReportHash: Hex32Schema.optional(),
69
+ })
70
+ .superRefine((specification, context) => {
71
+ if (
72
+ new Set(specification.criteria.map(({ id }) => id)).size !== specification.criteria.length
73
+ ) {
74
+ context.addIssue({
75
+ code: "custom",
76
+ path: ["criteria"],
77
+ message: "Criterion IDs must be unique",
78
+ });
79
+ }
80
+ if (specification.criteria.reduce((sum, item) => sum + item.weightBps, 0) !== 10_000) {
81
+ context.addIssue({
82
+ code: "custom",
83
+ path: ["criteria"],
84
+ message: "Criterion weights must total 10000 bps",
85
+ });
86
+ }
87
+ if (specification.allocationMode === "TOP_K" && specification.topK === undefined) {
88
+ context.addIssue({
89
+ code: "custom",
90
+ path: ["topK"],
91
+ message: "TopK allocation requires topK",
92
+ });
93
+ }
94
+ if (specification.version === "AGENTGRID_TASK_SPEC_V4") {
95
+ if (specification.allocationMode !== "PRO_RATA") {
96
+ context.addIssue({
97
+ code: "custom",
98
+ path: ["allocationMode"],
99
+ message: "V4 tasks use proportional allocation",
100
+ });
101
+ }
102
+ if (specification.topK !== undefined) {
103
+ context.addIssue({
104
+ code: "custom",
105
+ path: ["topK"],
106
+ message: "V4 tasks do not use Top K",
107
+ });
108
+ }
109
+ if (specification.maxParticipants === undefined) {
110
+ context.addIssue({
111
+ code: "custom",
112
+ path: ["maxParticipants"],
113
+ message: "V4 tasks require a participant limit",
114
+ });
115
+ }
116
+ }
117
+ });
118
+
119
+ export const RuleCheckResultSchema = z.object({
120
+ id: z.string().min(1),
121
+ level: z.enum(["ok", "warn", "block"]),
122
+ message: z.string().min(1),
123
+ fields: z.array(z.string()).default([]),
124
+ params: z.record(z.string(), z.string()).optional(),
125
+ });
126
+
127
+ export const DisputeSchema = z.object({
128
+ id: z.string().min(1),
129
+ taskId: z.string().min(1),
130
+ trigger: z.enum(["REJECTION", "TEST_CONTESTED", "MAINTENANCE_DEFECT"]),
131
+ round: ArbitrationRoundSchema,
132
+ panelSize: z.union([z.literal(3), z.literal(5), z.literal(9), z.literal(11), z.literal(21)]),
133
+ criterionIds: z.array(z.string().min(1)).min(1),
134
+ phase: z.enum(["DRAWING", "CONFIRM", "COMMIT", "REVEAL", "TALLIED", "EXECUTED"]),
135
+ caseFee: DecimalIntegerSchema,
136
+ lockPerJuror: DecimalIntegerSchema,
137
+ outcome: z
138
+ .object({
139
+ perCriterion: z.record(z.string(), z.boolean()),
140
+ result: z.enum(["PUBLISHER_WINS", "EXECUTOR_WINS", "PARTIAL"]),
141
+ })
142
+ .optional(),
143
+ });
144
+
145
+ export const VoteSchema = z.object({
146
+ disputeId: z.string().min(1),
147
+ jurorId: z.string().min(1),
148
+ commitHash: Hex32Schema,
149
+ revealed: z.record(z.string(), z.boolean()).optional(),
150
+ reasonHash: Hex32Schema.optional(),
151
+ });
152
+
153
+ export const VestingTrancheSchema = z.object({
154
+ taskId: z.string().min(1),
155
+ beneficiary: AddressSchema,
156
+ kind: z.enum(["DEDUCTION", "EMISSION"]),
157
+ amount: PositiveDecimalIntegerSchema,
158
+ releaseAt: IsoDateTimeSchema,
159
+ status: z.enum(["LOCKED", "CLAIMABLE", "CLAIMED", "CLAWED_BACK"]),
160
+ });
161
+
162
+ /** Economic model v3 daily emission snapshot (§4.7). */
163
+ export const EmissionDaySchema = z.object({
164
+ epoch: z.number().int().nonnegative(),
165
+ treasuryBalance: DecimalIntegerSchema,
166
+ dailyEmission: DecimalIntegerSchema,
167
+ platformAmount: DecimalIntegerSchema,
168
+ executorAmount: DecimalIntegerSchema,
169
+ testerAmount: DecimalIntegerSchema,
170
+ arbitratorAmount: DecimalIntegerSchema,
171
+ burnedAmount: DecimalIntegerSchema.default("0"),
172
+ /** Optional Merkle root binding accrued exec/test leaves for the epoch. */
173
+ allocationRoot: Hex32Schema.optional(),
174
+ totalTaskWeight: DecimalIntegerSchema.optional(),
175
+ activeTaskCount: z.number().int().nonnegative().optional(),
176
+ computedAt: IsoDateTimeSchema,
177
+ });
178
+
179
+ export type MachineCheck = z.infer<typeof MachineCheckSchema>;
180
+ export type Criterion = z.infer<typeof CriterionSchema>;
181
+ export type TaskInput = z.infer<typeof TaskInputSchema>;
182
+ export type TaskSpec = z.infer<typeof TaskSpecSchema>;
183
+ export type RuleCheckResult = z.infer<typeof RuleCheckResultSchema>;
184
+ export type Dispute = z.infer<typeof DisputeSchema>;
185
+ export type Vote = z.infer<typeof VoteSchema>;
186
+ export type VestingTranche = z.infer<typeof VestingTrancheSchema>;
187
+ export type EmissionDay = z.infer<typeof EmissionDaySchema>;
@@ -0,0 +1,141 @@
1
+ import { z } from "zod";
2
+ import {
3
+ AddressSchema,
4
+ CriterionSchema,
5
+ DecimalIntegerSchema,
6
+ IsoDateTimeSchema,
7
+ TaskInputSchema,
8
+ type TaskSpec,
9
+ TaskSpecSchema,
10
+ } from "./domain.js";
11
+ import { AllocationModeSchema, TaskTemplateSchema, TierSchema } from "./enums.js";
12
+
13
+ export const DraftFieldSourceSchema = z.enum(["user", "ai", "rule"]);
14
+ export const DraftFieldConfirmationSchema = z.enum(["unconfirmed", "confirmed", "suggested"]);
15
+
16
+ export function draftFieldSchema<T extends z.ZodType>(valueSchema: T) {
17
+ return z.object({
18
+ value: valueSchema.nullable(),
19
+ source: DraftFieldSourceSchema,
20
+ confirmation: DraftFieldConfirmationSchema,
21
+ updatedAt: IsoDateTimeSchema,
22
+ });
23
+ }
24
+
25
+ export const DraftCriterionSchema = draftFieldSchema(CriterionSchema);
26
+
27
+ const RuleCostSchema = z.object({
28
+ reserve: DecimalIntegerSchema,
29
+ dailyFee: DecimalIntegerSchema,
30
+ });
31
+
32
+ export const TaskDraftFieldsSchema = z.object({
33
+ title: draftFieldSchema(z.string().trim().min(1).max(200)),
34
+ summary: draftFieldSchema(z.string().trim().min(1).max(8_000)),
35
+ template: draftFieldSchema(TaskTemplateSchema),
36
+ deliverables: draftFieldSchema(z.array(z.string().trim().min(1).max(2_000)).min(1)),
37
+ outOfScope: draftFieldSchema(z.array(z.string().trim().min(1).max(2_000))),
38
+ constraints: draftFieldSchema(z.array(z.string().trim().min(1).max(2_000))),
39
+ inputs: draftFieldSchema(z.array(TaskInputSchema)),
40
+ criteria: draftFieldSchema(z.array(DraftCriterionSchema).min(1)),
41
+ estimatedHours: draftFieldSchema(z.number().positive()),
42
+ startTier: draftFieldSchema(TierSchema),
43
+ maxTier: draftFieldSchema(TierSchema),
44
+ runDays: draftFieldSchema(z.number().int().positive()),
45
+ allocationMode: draftFieldSchema(AllocationModeSchema),
46
+ topK: draftFieldSchema(z.number().int().positive()),
47
+ /** 0 means unlimited; a custom cap fits the protocol's uint16 field. */
48
+ maxParticipants: draftFieldSchema(z.number().int().min(0).max(65_535)),
49
+ passingThreshold: draftFieldSchema(z.number().int().min(50).max(90)),
50
+ minimumTier: draftFieldSchema(TierSchema),
51
+ cost: draftFieldSchema(RuleCostSchema),
52
+ });
53
+
54
+ export const DraftSuggestionSchema = z.object({
55
+ field: z.string().min(1),
56
+ value: z.unknown(),
57
+ createdAt: IsoDateTimeSchema,
58
+ });
59
+
60
+ export const TaskDraftSchema = z.object({
61
+ id: z.string().min(1),
62
+ sessionId: z.string().min(1),
63
+ publisher: AddressSchema,
64
+ version: z.number().int().nonnegative(),
65
+ fields: TaskDraftFieldsSchema,
66
+ summarizedUpToMessageId: z.string().nullable(),
67
+ lastSummarizedAt: IsoDateTimeSchema.nullable(),
68
+ pendingSuggestions: z.array(DraftSuggestionSchema),
69
+ status: z.enum(["EDITING", "FROZEN", "PUBLISHED", "EXPIRED"]),
70
+ });
71
+
72
+ export type DraftField<T> = {
73
+ value: T | null;
74
+ source: z.infer<typeof DraftFieldSourceSchema>;
75
+ confirmation: z.infer<typeof DraftFieldConfirmationSchema>;
76
+ updatedAt: string;
77
+ };
78
+ export type DraftCriterion = z.infer<typeof DraftCriterionSchema>;
79
+ export type TaskDraftFields = z.infer<typeof TaskDraftFieldsSchema>;
80
+ export type TaskDraft = z.infer<typeof TaskDraftSchema>;
81
+ export type DraftSuggestion = z.infer<typeof DraftSuggestionSchema>;
82
+
83
+ const editableFields = [
84
+ "title",
85
+ "summary",
86
+ "template",
87
+ "deliverables",
88
+ "outOfScope",
89
+ "constraints",
90
+ "inputs",
91
+ "criteria",
92
+ "estimatedHours",
93
+ "startTier",
94
+ "maxTier",
95
+ "runDays",
96
+ "maxParticipants",
97
+ "passingThreshold",
98
+ ] as const;
99
+
100
+ export function finalizeDraft(input: TaskDraft): TaskSpec {
101
+ const draft = TaskDraftSchema.parse(input);
102
+ const missing: string[] = editableFields.filter((name) => {
103
+ const field = draft.fields[name];
104
+ return field.value === null || field.confirmation !== "confirmed";
105
+ });
106
+ for (const name of ["minimumTier", "cost", "allocationMode"] as const) {
107
+ const field = draft.fields[name];
108
+ if (field.value === null || field.source !== "rule") missing.push(name);
109
+ }
110
+ const draftCriteria = draft.fields.criteria.value;
111
+ if (
112
+ draftCriteria?.some(
113
+ (criterion) => criterion.value === null || criterion.confirmation !== "confirmed",
114
+ ) === true
115
+ ) {
116
+ missing.push("criteria");
117
+ }
118
+ if (missing.length > 0) {
119
+ throw new Error(`Draft fields are incomplete or unconfirmed: ${missing.join(", ")}`);
120
+ }
121
+
122
+ const fields = draft.fields;
123
+ return TaskSpecSchema.parse({
124
+ version: "AGENTGRID_TASK_SPEC_V4",
125
+ title: fields.title.value,
126
+ summary: fields.summary.value,
127
+ template: fields.template.value,
128
+ deliverables: fields.deliverables.value,
129
+ outOfScope: fields.outOfScope.value,
130
+ constraints: fields.constraints.value,
131
+ inputs: fields.inputs.value,
132
+ criteria: fields.criteria.value?.map((criterion) => criterion.value),
133
+ estimatedHours: fields.estimatedHours.value,
134
+ startTier: fields.startTier.value,
135
+ maxTier: fields.maxTier.value,
136
+ runDays: fields.runDays.value,
137
+ allocationMode: fields.allocationMode.value,
138
+ maxParticipants: fields.maxParticipants.value,
139
+ passingThreshold: fields.passingThreshold.value,
140
+ });
141
+ }
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+
3
+ export const Role = {
4
+ Publisher: "PUBLISHER",
5
+ Executor: "EXECUTOR",
6
+ Tester: "TESTER",
7
+ Reviewer: "REVIEWER",
8
+ Arbitrator: "ARBITRATOR",
9
+ } as const;
10
+ export const Tier = {
11
+ T1: "T1",
12
+ T2: "T2",
13
+ T3: "T3",
14
+ T4: "T4",
15
+ T5: "T5",
16
+ } as const;
17
+ export const AcceptanceGrade = { A: "A", B: "B", C: "C" } as const;
18
+ export const AllocationMode = {
19
+ WinnerTakesAll: "WINNER_TAKES_ALL",
20
+ TopK: "TOP_K",
21
+ ProRata: "PRO_RATA",
22
+ } as const;
23
+ export const TaskTemplate = {
24
+ CodeFix: "CODE_FIX",
25
+ DataProcessing: "DATA_PROCESSING",
26
+ Translation: "TRANSLATION",
27
+ Research: "RESEARCH",
28
+ Custom: "CUSTOM",
29
+ } as const;
30
+ export const TaskStatus = {
31
+ Published: "PUBLISHED",
32
+ Running: "RUNNING",
33
+ Grace: "GRACE",
34
+ Closed: "CLOSED",
35
+ Testing: "TESTING",
36
+ Reviewing: "REVIEWING",
37
+ ResultPosted: "RESULT_POSTED",
38
+ Accepted: "ACCEPTED",
39
+ Disputed: "DISPUTED",
40
+ Appealed: "APPEALED",
41
+ Maintenance: "MAINTENANCE",
42
+ Completed: "COMPLETED",
43
+ Cancelled: "CANCELLED",
44
+ Expired: "EXPIRED",
45
+ NoSubmission: "NO_SUBMISSION",
46
+ Insufficient: "INSUFFICIENT",
47
+ Failed: "FAILED",
48
+ } as const;
49
+ export const ValidatorStatus = {
50
+ Active: "ACTIVE",
51
+ Grace: "GRACE",
52
+ Inactive: "INACTIVE",
53
+ CoolingDown: "COOLING_DOWN",
54
+ } as const;
55
+ export const ArbitrationRound = { First: "FIRST", Final: "FINAL" } as const;
56
+
57
+ export const RoleSchema = z.enum(Role);
58
+ export const TierSchema = z.enum(Tier);
59
+ export const AcceptanceGradeSchema = z.enum(AcceptanceGrade);
60
+ export const AllocationModeSchema = z.enum(AllocationMode);
61
+ export const TaskTemplateSchema = z.enum(TaskTemplate);
62
+ export const TaskStatusSchema = z.enum(TaskStatus);
63
+ export const ValidatorStatusSchema = z.enum(ValidatorStatus);
64
+ export const ArbitrationRoundSchema = z.enum(ArbitrationRound);
65
+
66
+ export type Role = z.infer<typeof RoleSchema>;
67
+ export type Tier = z.infer<typeof TierSchema>;
68
+ export type AcceptanceGrade = z.infer<typeof AcceptanceGradeSchema>;
69
+ export type AllocationMode = z.infer<typeof AllocationModeSchema>;
70
+ export type TaskTemplate = z.infer<typeof TaskTemplateSchema>;
71
+ export type TaskStatus = z.infer<typeof TaskStatusSchema>;
72
+ export type ValidatorStatus = z.infer<typeof ValidatorStatusSchema>;
73
+ export type ArbitrationRound = z.infer<typeof ArbitrationRoundSchema>;
@@ -0,0 +1,3 @@
1
+ export * from "./domain.js";
2
+ export * from "./draft.js";
3
+ export * from "./enums.js";
@@ -0,0 +1,43 @@
1
+ /** 01-RULES §0.3: 1 AGT = 10^18 wei. Rule parameters are human AGT; contracts, HTTP and storage use wei. */
2
+ export const AGT_DECIMALS = 18;
3
+ export const WEI_PER_AGT = 10n ** 18n;
4
+
5
+ const AGT_DECIMAL = /^(0|[1-9]\d*)(\.\d{1,18})?$/u;
6
+
7
+ /** Parses a non-negative AGT decimal string (`"0.6"`, `"10"`) into wei without floating point. */
8
+ export function parseAgtToWei(value: string): bigint {
9
+ const text = value.trim();
10
+ if (!AGT_DECIMAL.test(text)) throw new RangeError(`invalid AGT amount: ${value}`);
11
+ const [whole = "0", fraction = ""] = text.split(".");
12
+ return BigInt(whole) * WEI_PER_AGT + BigInt(fraction.padEnd(AGT_DECIMALS, "0"));
13
+ }
14
+
15
+ /** Converts a fixed AGT rule parameter from params.json (for example `0.5`) into wei, exactly once. */
16
+ export function agtToWei(value: number): bigint {
17
+ if (!Number.isFinite(value) || value < 0) throw new RangeError(`invalid AGT amount: ${value}`);
18
+ return parseAgtToWei(plainDecimal(String(value)));
19
+ }
20
+
21
+ /** Expands the shortest round-trip form (`"1e-7"`, `"2e+21"`) into plain decimal digits. */
22
+ function plainDecimal(text: string): string {
23
+ const match = /^(\d+)(?:\.(\d+))?e([+-]\d+)$/u.exec(text);
24
+ if (!match) return text;
25
+ const [, whole = "", fraction = "", exponentText = "0"] = match;
26
+ const digits = whole + fraction;
27
+ const point = whole.length + Number(exponentText);
28
+ if (point <= 0) return `0.${"0".repeat(-point)}${digits}`;
29
+ if (point >= digits.length) return digits + "0".repeat(point - digits.length);
30
+ return `${digits.slice(0, point)}.${digits.slice(point)}`;
31
+ }
32
+
33
+ /** Formats wei as a plain AGT decimal without unit or grouping (`600000000000000000n` → `"0.6"`). */
34
+ export function formatWeiAsAgt(wei: bigint): string {
35
+ const negative = wei < 0n;
36
+ const absolute = negative ? -wei : wei;
37
+ const whole = absolute / WEI_PER_AGT;
38
+ const fraction = (absolute % WEI_PER_AGT)
39
+ .toString()
40
+ .padStart(AGT_DECIMALS, "0")
41
+ .replace(/0+$/u, "");
42
+ return `${negative ? "-" : ""}${whole}${fraction ? `.${fraction}` : ""}`;
43
+ }
@@ -0,0 +1,115 @@
1
+ import { describe, expect, it } from "vitest";
2
+
3
+ import {
4
+ BPS,
5
+ HOUR,
6
+ WAD,
7
+ arbitrationEmitted,
8
+ buildSchedule,
9
+ cumulativeReleased,
10
+ cumulativeShares,
11
+ firstHour,
12
+ hourShares,
13
+ pow2Neg,
14
+ powWad,
15
+ } from "../src/emission-schedule.js";
16
+
17
+ const B0 = 800_000_000n * WAD;
18
+ const HALF_LIFE = 913n;
19
+
20
+ function sampleSchedule(startTime = 1_700_000_000n) {
21
+ return buildSchedule({
22
+ startTime,
23
+ initialBalance: B0,
24
+ halfLifeDays: HALF_LIFE,
25
+ platformBps: 1000n,
26
+ execBps: 6500n,
27
+ testBps: 1500n,
28
+ });
29
+ }
30
+
31
+ describe("emission-schedule", () => {
32
+ it("pow2Neg is in (0, WAD)", () => {
33
+ const q = pow2Neg(HALF_LIFE * 24n);
34
+ expect(q).toBeGreaterThan(0n);
35
+ expect(q).toBeLessThan(WAD);
36
+ });
37
+
38
+ it("powWad(q,0)=WAD and decreases with k", () => {
39
+ const q = pow2Neg(HALF_LIFE * 24n);
40
+ expect(powWad(q, 0n)).toBe(WAD);
41
+ expect(powWad(q, 1n)).toBe(q);
42
+ expect(powWad(q, 2n)).toBeLessThan(q);
43
+ });
44
+
45
+ it("R(t0)=0 and R grows after activation", () => {
46
+ const s = sampleSchedule();
47
+ expect(cumulativeReleased(s, s.startTime)).toBe(0n);
48
+ expect(cumulativeReleased(s, s.startTime + 1n)).toBeGreaterThan(0n);
49
+ expect(cumulativeReleased(s, s.startTime + HOUR)).toBeGreaterThan(
50
+ cumulativeReleased(s, s.startTime + 1n),
51
+ );
52
+ });
53
+
54
+ it("activation hour is partial", () => {
55
+ const s = sampleSchedule(1_700_000_000n + 1800n);
56
+ const h = firstHour(s);
57
+ const shares = hourShares(s, h);
58
+ const fullNext = hourShares(s, h + 1n);
59
+ expect(shares.emission).toBeGreaterThan(0n);
60
+ expect(shares.emission).toBeLessThan(fullNext.emission);
61
+ });
62
+
63
+ it("telescopes: sum of hour shares equals cumulative delta", () => {
64
+ const s = sampleSchedule();
65
+ const from = firstHour(s);
66
+ const to = from + 47n;
67
+ let sum = 0n;
68
+ let plat = 0n;
69
+ let exec = 0n;
70
+ let test = 0n;
71
+ let arb = 0n;
72
+ for (let h = from; h <= to; h++) {
73
+ const sh = hourShares(s, h);
74
+ sum += sh.emission;
75
+ plat += sh.platform;
76
+ exec += sh.exec;
77
+ test += sh.test;
78
+ arb += sh.arb;
79
+ }
80
+ const end = (to + 1n) * HOUR;
81
+ const c = cumulativeShares(s, end);
82
+ expect(sum).toBe(c.released);
83
+ expect(plat).toBe(c.platform);
84
+ expect(exec).toBe(c.exec);
85
+ expect(test).toBe(c.test);
86
+ expect(arb).toBe(c.arb);
87
+ expect(plat + exec + test + arb).toBe(sum);
88
+ });
89
+
90
+ it("never exceeds B0 and approaches it over long horizons", () => {
91
+ const s = sampleSchedule();
92
+ const fiftyYears = s.startTime + 50n * 365n * 24n * HOUR;
93
+ const r = cumulativeReleased(s, fiftyYears);
94
+ expect(r).toBeLessThanOrEqual(B0);
95
+ expect(r).toBeGreaterThan((B0 * 95n) / 100n);
96
+ });
97
+
98
+ it("arbitrationEmitted matches cumulative arb delta", () => {
99
+ const s = sampleSchedule();
100
+ const t1 = s.startTime + 1000n;
101
+ const t2 = s.startTime + 10_000n;
102
+ expect(arbitrationEmitted(s, t1, t2)).toBe(
103
+ cumulativeShares(s, t2).arb - cumulativeShares(s, t1).arb,
104
+ );
105
+ });
106
+
107
+ it("bps shares use floor and arb is remainder", () => {
108
+ const s = sampleSchedule();
109
+ const c = cumulativeShares(s, s.startTime + HOUR);
110
+ expect(c.platform).toBe((c.released * 1000n) / BPS);
111
+ expect(c.exec).toBe((c.released * 6500n) / BPS);
112
+ expect(c.test).toBe((c.released * 1500n) / BPS);
113
+ expect(c.arb).toBe(c.released - c.platform - c.exec - c.test);
114
+ });
115
+ });