@elizaos/autonomous 2.0.0-alpha.72 → 2.0.0-alpha.73

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 (1915) hide show
  1. package/package.json +200 -910
  2. package/src/actions/emote.test.ts +41 -0
  3. package/src/actions/emote.ts +110 -0
  4. package/src/actions/restart.ts +101 -0
  5. package/src/actions/send-message.ts +176 -0
  6. package/src/actions/stream-control.ts +439 -0
  7. package/src/actions/switch-stream-source.ts +132 -0
  8. package/src/actions/terminal.ts +186 -0
  9. package/src/api/agent-admin-routes.ts +178 -0
  10. package/src/api/agent-lifecycle-routes.ts +120 -0
  11. package/src/api/agent-model.ts +143 -0
  12. package/src/api/agent-transfer-routes.ts +211 -0
  13. package/src/api/apps-routes.ts +207 -0
  14. package/src/api/auth-routes.ts +90 -0
  15. package/src/api/bsc-trade.ts +736 -0
  16. package/src/api/bug-report-routes.ts +161 -0
  17. package/src/api/character-routes.ts +421 -0
  18. package/src/api/cloud-billing-routes.ts +600 -0
  19. package/src/api/cloud-compat-routes.ts +194 -0
  20. package/src/api/cloud-routes.ts +529 -0
  21. package/src/api/cloud-status-routes.ts +235 -0
  22. package/src/api/compat-utils.ts +154 -0
  23. package/src/api/connector-health.ts +137 -0
  24. package/src/api/coordinator-wiring.ts +182 -0
  25. package/src/api/credit-detection.ts +47 -0
  26. package/src/api/database.ts +1357 -0
  27. package/src/api/diagnostics-routes.ts +389 -0
  28. package/src/api/drop-service.ts +205 -0
  29. package/src/api/early-logs.ts +114 -0
  30. package/src/api/http-helpers.ts +252 -0
  31. package/src/api/index.ts +81 -0
  32. package/src/api/knowledge-routes.ts +1189 -0
  33. package/src/api/knowledge-service-loader.ts +92 -0
  34. package/src/api/memory-bounds.ts +121 -0
  35. package/src/api/memory-routes.ts +349 -0
  36. package/src/api/merkle-tree.ts +239 -0
  37. package/src/api/models-routes.ts +72 -0
  38. package/src/api/nfa-routes.ts +169 -0
  39. package/src/api/nft-verify.ts +188 -0
  40. package/src/api/og-tracker.ts +72 -0
  41. package/src/api/parse-action-block.ts +143 -0
  42. package/src/api/permissions-routes.ts +222 -0
  43. package/src/api/plugin-validation.ts +353 -0
  44. package/src/api/provider-switch-config.ts +456 -0
  45. package/src/api/registry-routes.ts +165 -0
  46. package/src/api/registry-service.ts +292 -0
  47. package/src/api/route-helpers.ts +21 -0
  48. package/src/api/sandbox-routes.ts +1480 -0
  49. package/src/api/server.ts +17706 -0
  50. package/src/api/signal-routes.ts +263 -0
  51. package/src/api/stream-persistence.ts +297 -0
  52. package/src/api/stream-route-state.ts +48 -0
  53. package/src/api/stream-routes.ts +1048 -0
  54. package/src/api/stream-voice-routes.ts +222 -0
  55. package/src/api/streaming-text.ts +129 -0
  56. package/src/api/streaming-types.ts +23 -0
  57. package/src/api/subscription-routes.ts +263 -0
  58. package/src/api/terminal-run-limits.ts +31 -0
  59. package/src/api/training-backend-check.ts +40 -0
  60. package/src/api/training-routes.ts +314 -0
  61. package/src/api/training-service-like.ts +46 -0
  62. package/src/api/trajectory-routes.ts +714 -0
  63. package/src/api/trigger-routes.ts +441 -0
  64. package/src/api/twitter-verify.ts +226 -0
  65. package/src/api/tx-service.ts +193 -0
  66. package/src/api/wallet-dex-prices.ts +206 -0
  67. package/src/api/wallet-evm-balance.ts +990 -0
  68. package/src/api/wallet-routes.ts +505 -0
  69. package/src/api/wallet-rpc.ts +523 -0
  70. package/src/api/wallet-trading-profile.ts +694 -0
  71. package/src/api/wallet.ts +745 -0
  72. package/src/api/whatsapp-routes.ts +280 -0
  73. package/src/api/zip-utils.ts +130 -0
  74. package/src/auth/anthropic.ts +63 -0
  75. package/src/auth/apply-stealth.ts +39 -0
  76. package/src/auth/claude-code-stealth.ts +141 -0
  77. package/src/auth/credentials.ts +226 -0
  78. package/src/auth/index.ts +18 -0
  79. package/src/auth/openai-codex.ts +94 -0
  80. package/src/auth/types.ts +24 -0
  81. package/src/awareness/registry.ts +220 -0
  82. package/src/benchmark-server.ts +1017 -0
  83. package/src/bin.ts +10 -0
  84. package/src/cli/index.ts +50 -0
  85. package/src/cli/parse-duration.ts +43 -0
  86. package/src/cloud/auth.test.ts +370 -0
  87. package/src/cloud/auth.ts +176 -0
  88. package/src/cloud/backup.test.ts +150 -0
  89. package/src/cloud/backup.ts +50 -0
  90. package/src/cloud/base-url.ts +45 -0
  91. package/src/cloud/bridge-client.test.ts +481 -0
  92. package/src/cloud/bridge-client.ts +304 -0
  93. package/src/cloud/cloud-manager.test.ts +223 -0
  94. package/src/cloud/cloud-manager.ts +151 -0
  95. package/src/cloud/cloud-proxy.test.ts +122 -0
  96. package/src/cloud/cloud-proxy.ts +52 -0
  97. package/src/cloud/index.ts +23 -0
  98. package/src/cloud/reconnect.test.ts +178 -0
  99. package/src/cloud/reconnect.ts +108 -0
  100. package/src/cloud/validate-url.test.ts +147 -0
  101. package/src/cloud/validate-url.ts +181 -0
  102. package/src/config/character-schema.ts +44 -0
  103. package/src/config/config.ts +151 -0
  104. package/src/config/env-vars.ts +85 -0
  105. package/src/config/includes.ts +196 -0
  106. package/src/config/object-utils.ts +10 -0
  107. package/src/config/paths.ts +103 -0
  108. package/src/config/plugin-auto-enable.ts +520 -0
  109. package/src/config/schema.ts +1342 -0
  110. package/src/config/telegram-custom-commands.ts +99 -0
  111. package/src/config/types.agent-defaults.ts +342 -0
  112. package/src/config/types.agents.ts +112 -0
  113. package/src/config/types.gateway.ts +243 -0
  114. package/src/config/types.hooks.ts +124 -0
  115. package/src/config/types.messages.ts +201 -0
  116. package/src/config/types.tools.ts +416 -0
  117. package/src/config/zod-schema.agent-runtime.ts +777 -0
  118. package/src/config/zod-schema.core.ts +778 -0
  119. package/src/config/zod-schema.hooks.ts +139 -0
  120. package/src/config/zod-schema.providers-core.ts +1126 -0
  121. package/src/config/zod-schema.session.ts +98 -0
  122. package/src/config/zod-schema.ts +865 -0
  123. package/src/contracts/apps.ts +46 -0
  124. package/src/contracts/awareness.ts +56 -0
  125. package/src/contracts/config.ts +172 -0
  126. package/src/contracts/drop.ts +21 -0
  127. package/src/contracts/onboarding.ts +591 -0
  128. package/src/contracts/permissions.ts +52 -0
  129. package/src/contracts/verification.ts +9 -0
  130. package/src/contracts/wallet.ts +503 -0
  131. package/src/diagnostics/integration-observability.ts +132 -0
  132. package/src/emotes/catalog.ts +655 -0
  133. package/src/external-modules.d.ts +7 -0
  134. package/src/hooks/discovery.test.ts +357 -0
  135. package/src/hooks/discovery.ts +231 -0
  136. package/src/hooks/eligibility.ts +146 -0
  137. package/src/hooks/hooks.test.ts +320 -0
  138. package/src/hooks/index.ts +8 -0
  139. package/src/hooks/loader.test.ts +418 -0
  140. package/src/hooks/loader.ts +256 -0
  141. package/src/hooks/registry.test.ts +168 -0
  142. package/src/hooks/registry.ts +74 -0
  143. package/src/hooks/types.ts +121 -0
  144. package/src/onboarding-presets.ts +1318 -0
  145. package/src/plugins/custom-rtmp/index.ts +40 -0
  146. package/src/providers/admin-trust.ts +76 -0
  147. package/src/providers/session-bridge.ts +143 -0
  148. package/src/providers/session-utils.ts +42 -0
  149. package/src/providers/simple-mode.ts +112 -0
  150. package/src/providers/ui-catalog.ts +135 -0
  151. package/src/providers/workspace-provider.test.ts +111 -0
  152. package/src/providers/workspace-provider.ts +217 -0
  153. package/src/providers/workspace.test.ts +94 -0
  154. package/src/providers/workspace.ts +510 -0
  155. package/src/runtime/agent-event-service.ts +60 -0
  156. package/src/runtime/cloud-onboarding.test.ts +489 -0
  157. package/src/runtime/cloud-onboarding.ts +410 -0
  158. package/src/runtime/core-plugins.ts +53 -0
  159. package/src/runtime/custom-actions.ts +605 -0
  160. package/src/runtime/eliza-plugin.ts +151 -0
  161. package/src/runtime/eliza.ts +5009 -0
  162. package/src/runtime/embedding-presets.ts +73 -0
  163. package/src/runtime/onboarding-names.ts +76 -0
  164. package/src/runtime/release-plugin-policy.ts +118 -0
  165. package/src/runtime/restart.ts +59 -0
  166. package/src/runtime/trajectory-persistence.ts +2605 -0
  167. package/src/runtime/version.ts +6 -0
  168. package/src/security/audit-log.ts +222 -0
  169. package/src/security/network-policy.ts +91 -0
  170. package/src/server/index.ts +2 -0
  171. package/src/services/agent-export.ts +993 -0
  172. package/src/services/app-manager.ts +578 -0
  173. package/src/services/browser-capture.ts +215 -0
  174. package/src/services/coding-agent-context.ts +355 -0
  175. package/src/services/fallback-training-service.ts +196 -0
  176. package/src/services/mcp-marketplace.ts +327 -0
  177. package/src/services/plugin-manager-types.ts +185 -0
  178. package/src/services/privy-wallets.ts +352 -0
  179. package/src/services/registry-client-app-meta.ts +184 -0
  180. package/src/services/registry-client-endpoints.ts +253 -0
  181. package/src/services/registry-client-local.ts +485 -0
  182. package/src/services/registry-client-network.ts +173 -0
  183. package/src/services/registry-client-queries.ts +176 -0
  184. package/src/services/registry-client-types.ts +104 -0
  185. package/src/services/registry-client.ts +366 -0
  186. package/src/services/remote-signing-service.ts +261 -0
  187. package/src/services/sandbox-engine.ts +753 -0
  188. package/src/services/sandbox-manager.ts +503 -0
  189. package/src/services/self-updater.ts +213 -0
  190. package/src/services/signal-pairing.ts +189 -0
  191. package/src/services/signing-policy.ts +230 -0
  192. package/src/services/skill-catalog-client.ts +195 -0
  193. package/src/services/skill-marketplace.ts +909 -0
  194. package/src/services/stream-manager.ts +707 -0
  195. package/src/services/tts-stream-bridge.ts +465 -0
  196. package/src/services/update-checker.ts +163 -0
  197. package/src/services/version-compat.ts +274 -0
  198. package/src/services/whatsapp-pairing.ts +282 -0
  199. package/src/shared/ui-catalog-prompt.ts +1158 -0
  200. package/src/test-support/process-helpers.ts +35 -0
  201. package/src/test-support/route-test-helpers.ts +113 -0
  202. package/src/test-support/test-helpers.ts +304 -0
  203. package/src/triggers/action.ts +342 -0
  204. package/src/triggers/runtime.ts +451 -0
  205. package/src/triggers/scheduling.ts +472 -0
  206. package/src/triggers/types.ts +133 -0
  207. package/src/types/external-modules.d.ts +7 -0
  208. package/src/utils/exec-safety.ts +23 -0
  209. package/src/utils/number-parsing.ts +112 -0
  210. package/src/utils/spoken-text.ts +65 -0
  211. package/src/version-resolver.ts +62 -0
  212. package/test/agent-export.e2e.test.ts +376 -0
  213. package/test/agent-orchestration.e2e.test.ts +1568 -0
  214. package/test/agent-restart-recovery.e2e.test.ts +149 -0
  215. package/test/agent-runtime.e2e.test.ts +1515 -0
  216. package/test/anvil-contracts.e2e.test.ts +533 -0
  217. package/test/anvil-helper.ts +285 -0
  218. package/test/api/agent-admin-routes.test.ts +166 -0
  219. package/test/api/agent-lifecycle-routes.test.ts +173 -0
  220. package/test/api/agent-transfer-routes.test.ts +145 -0
  221. package/test/api/apps-routes.test.ts +138 -0
  222. package/test/api/auth-routes.test.ts +160 -0
  223. package/test/api/bug-report-routes.test.ts +88 -0
  224. package/test/api/knowledge-routes.test.ts +73 -0
  225. package/test/api/lifecycle.test.ts +342 -0
  226. package/test/api/memory-routes.test.ts +74 -0
  227. package/test/api/models-routes.test.ts +114 -0
  228. package/test/api/nfa-routes.test.ts +78 -0
  229. package/test/api/permissions-routes.test.ts +185 -0
  230. package/test/api/registry-routes.test.ts +157 -0
  231. package/test/api/signal-routes.test.ts +113 -0
  232. package/test/api/subscription-routes.test.ts +90 -0
  233. package/test/api/trigger-routes.test.ts +87 -0
  234. package/test/api/wallet-routes.observability.test.ts +193 -0
  235. package/test/api/wallet-routes.test.ts +504 -0
  236. package/test/api-auth-live.e2e.test.ts +519 -0
  237. package/test/api-auth.e2e.test.ts +1039 -0
  238. package/test/api-server.e2e.test.ts +4582 -0
  239. package/test/apps-e2e.e2e.test.ts +1108 -0
  240. package/test/auth-modules.e2e.test.ts +71 -0
  241. package/test/cloud-auth-state.e2e.test.ts +145 -0
  242. package/test/cloud-persistence.e2e.test.ts +260 -0
  243. package/test/cloud-providers.e2e.test.ts +781 -0
  244. package/test/config-hot-reload.e2e.test.ts +131 -0
  245. package/test/contract-deployer.ts +151 -0
  246. package/test/contracts/MockMiladyAgentRegistry.sol +216 -0
  247. package/test/contracts/MockMiladyCollection.sol +195 -0
  248. package/test/contracts/cache/solidity-files-cache.json +1 -0
  249. package/test/contracts/foundry.toml +14 -0
  250. package/test/contracts/lib/openzeppelin-contracts/.changeset/config.json +12 -0
  251. package/test/contracts/lib/openzeppelin-contracts/.codecov.yml +12 -0
  252. package/test/contracts/lib/openzeppelin-contracts/.editorconfig +21 -0
  253. package/test/contracts/lib/openzeppelin-contracts/.eslintrc +20 -0
  254. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  255. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
  256. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  257. package/test/contracts/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
  258. package/test/contracts/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
  259. package/test/contracts/lib/openzeppelin-contracts/.github/actions/setup/action.yml +19 -0
  260. package/test/contracts/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
  261. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
  262. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
  263. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/checks.yml +111 -0
  264. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
  265. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
  266. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +218 -0
  267. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +30 -0
  268. package/test/contracts/lib/openzeppelin-contracts/.gitmodules +7 -0
  269. package/test/contracts/lib/openzeppelin-contracts/.mocharc.js +4 -0
  270. package/test/contracts/lib/openzeppelin-contracts/.prettierrc +14 -0
  271. package/test/contracts/lib/openzeppelin-contracts/.solcover.js +13 -0
  272. package/test/contracts/lib/openzeppelin-contracts/.solhint.json +14 -0
  273. package/test/contracts/lib/openzeppelin-contracts/CHANGELOG.md +743 -0
  274. package/test/contracts/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
  275. package/test/contracts/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
  276. package/test/contracts/lib/openzeppelin-contracts/GUIDELINES.md +117 -0
  277. package/test/contracts/lib/openzeppelin-contracts/LICENSE +22 -0
  278. package/test/contracts/lib/openzeppelin-contracts/README.md +90 -0
  279. package/test/contracts/lib/openzeppelin-contracts/RELEASING.md +47 -0
  280. package/test/contracts/lib/openzeppelin-contracts/SECURITY.md +42 -0
  281. package/test/contracts/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
  282. package/test/contracts/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
  283. package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
  284. package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
  285. package/test/contracts/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
  286. package/test/contracts/lib/openzeppelin-contracts/audits/README.md +16 -0
  287. package/test/contracts/lib/openzeppelin-contracts/certora/Makefile +54 -0
  288. package/test/contracts/lib/openzeppelin-contracts/certora/README.md +60 -0
  289. package/test/contracts/lib/openzeppelin-contracts/certora/diff/token_ERC721_ERC721.sol.patch +14 -0
  290. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +47 -0
  291. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +7 -0
  292. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +59 -0
  293. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
  294. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +17 -0
  295. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +25 -0
  296. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
  297. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +37 -0
  298. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
  299. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
  300. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
  301. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
  302. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +9 -0
  303. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +9 -0
  304. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +19 -0
  305. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +12 -0
  306. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
  307. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
  308. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
  309. package/test/contracts/lib/openzeppelin-contracts/certora/run.js +146 -0
  310. package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +126 -0
  311. package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +500 -0
  312. package/test/contracts/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +366 -0
  313. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20.spec +414 -0
  314. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +48 -0
  315. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
  316. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC721.spec +589 -0
  317. package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +334 -0
  318. package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +247 -0
  319. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
  320. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable.spec +78 -0
  321. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
  322. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
  323. package/test/contracts/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +275 -0
  324. package/test/contracts/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +1 -0
  325. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +7 -0
  326. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  327. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
  328. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
  329. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC3156.spec +5 -0
  330. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
  331. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +20 -0
  332. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
  333. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
  334. package/test/contracts/lib/openzeppelin-contracts/certora/specs.json +86 -0
  335. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +248 -0
  336. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlCrossChain.sol +45 -0
  337. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlDefaultAdminRules.sol +383 -0
  338. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol +64 -0
  339. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +88 -0
  340. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlDefaultAdminRules.sol +172 -0
  341. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol +31 -0
  342. package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol +83 -0
  343. package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +57 -0
  344. package/test/contracts/lib/openzeppelin-contracts/contracts/access/README.adoc +27 -0
  345. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/CrossChainEnabled.sol +54 -0
  346. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +34 -0
  347. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/CrossChainEnabledAMB.sol +49 -0
  348. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/LibAMB.sol +35 -0
  349. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol +44 -0
  350. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol +40 -0
  351. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL1.sol +42 -0
  352. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL2.sol +45 -0
  353. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/errors.sol +7 -0
  354. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol +41 -0
  355. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/LibOptimism.sol +36 -0
  356. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol +72 -0
  357. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/PaymentSplitter.sol +214 -0
  358. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/README.adoc +20 -0
  359. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +145 -0
  360. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol +723 -0
  361. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +313 -0
  362. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/README.adoc +176 -0
  363. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +422 -0
  364. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +333 -0
  365. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +118 -0
  366. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +100 -0
  367. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +105 -0
  368. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalThreshold.sol +23 -0
  369. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +110 -0
  370. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +190 -0
  371. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +166 -0
  372. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +55 -0
  373. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesComp.sol +55 -0
  374. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +121 -0
  375. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol +26 -0
  376. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +56 -0
  377. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +244 -0
  378. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
  379. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
  380. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
  381. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +19 -0
  382. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +80 -0
  383. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +35 -0
  384. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +29 -0
  385. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
  386. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +6 -0
  387. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +6 -0
  388. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +26 -0
  389. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
  390. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
  391. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +21 -0
  392. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
  393. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +25 -0
  394. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
  395. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +29 -0
  396. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +43 -0
  397. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +232 -0
  398. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
  399. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
  400. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +18 -0
  401. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
  402. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
  403. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
  404. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
  405. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
  406. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
  407. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +6 -0
  408. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +6 -0
  409. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +6 -0
  410. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +73 -0
  411. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
  412. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol +8 -0
  413. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +54 -0
  414. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/MinimalForwarder.sol +72 -0
  415. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
  416. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol +8 -0
  417. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +51 -0
  418. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
  419. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +61 -0
  420. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol +18 -0
  421. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
  422. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +57 -0
  423. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
  424. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +26 -0
  425. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
  426. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
  427. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
  428. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
  429. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol +16 -0
  430. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Reentrant.sol +43 -0
  431. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +27 -0
  432. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
  433. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol +16 -0
  434. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
  435. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
  436. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +23 -0
  437. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
  438. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
  439. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol +15 -0
  440. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
  441. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +51 -0
  442. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
  443. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SafeMathMemoryCheck.sol +72 -0
  444. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
  445. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +77 -0
  446. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
  447. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersBlockNumberImpl.sol +39 -0
  448. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersTimestampImpl.sol +39 -0
  449. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +45 -0
  450. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
  451. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/bridges.sol +94 -0
  452. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/receivers.sol +54 -0
  453. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +100 -0
  454. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +88 -0
  455. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +24 -0
  456. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +35 -0
  457. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +31 -0
  458. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompMock.sol +20 -0
  459. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompatibilityBravoMock.sol +100 -0
  460. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +28 -0
  461. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +45 -0
  462. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +60 -0
  463. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +60 -0
  464. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
  465. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +50 -0
  466. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
  467. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +17 -0
  468. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSLegacy.sol +54 -0
  469. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +33 -0
  470. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +47 -0
  471. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
  472. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
  473. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
  474. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
  475. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
  476. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
  477. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20PermitNoRevertMock.sol +36 -0
  478. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
  479. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +262 -0
  480. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
  481. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
  482. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +51 -0
  483. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
  484. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +42 -0
  485. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
  486. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777Mock.sol +13 -0
  487. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777SenderRecipientMock.sol +152 -0
  488. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/VotesTimestamp.sol +40 -0
  489. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor1.sol +79 -0
  490. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor2.sol +85 -0
  491. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor3.sol +94 -0
  492. package/test/contracts/lib/openzeppelin-contracts/contracts/package.json +32 -0
  493. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +88 -0
  494. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +32 -0
  495. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol +157 -0
  496. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +86 -0
  497. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
  498. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +61 -0
  499. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
  500. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +65 -0
  501. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +81 -0
  502. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +191 -0
  503. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +166 -0
  504. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +99 -0
  505. package/test/contracts/lib/openzeppelin-contracts/contracts/security/Pausable.sol +105 -0
  506. package/test/contracts/lib/openzeppelin-contracts/contracts/security/PullPayment.sol +74 -0
  507. package/test/contracts/lib/openzeppelin-contracts/contracts/security/README.adoc +20 -0
  508. package/test/contracts/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol +77 -0
  509. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +497 -0
  510. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +119 -0
  511. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +58 -0
  512. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +49 -0
  513. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +32 -0
  514. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +44 -0
  515. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +64 -0
  516. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +63 -0
  517. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +22 -0
  518. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +114 -0
  519. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md +1 -0
  520. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +36 -0
  521. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol +19 -0
  522. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +365 -0
  523. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +78 -0
  524. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +80 -0
  525. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
  526. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +37 -0
  527. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +109 -0
  528. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +35 -0
  529. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +95 -0
  530. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Snapshot.sol +191 -0
  531. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +290 -0
  532. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20VotesComp.sol +46 -0
  533. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +73 -0
  534. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +256 -0
  535. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +28 -0
  536. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
  537. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +8 -0
  538. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +8 -0
  539. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +30 -0
  540. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +94 -0
  541. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md +1 -0
  542. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +143 -0
  543. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/TokenTimelock.sol +72 -0
  544. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +466 -0
  545. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +132 -0
  546. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +27 -0
  547. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +73 -0
  548. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
  549. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +148 -0
  550. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +159 -0
  551. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +40 -0
  552. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +38 -0
  553. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +74 -0
  554. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +43 -0
  555. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +97 -0
  556. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
  557. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
  558. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +9 -0
  559. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +132 -0
  560. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md +1 -0
  561. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +23 -0
  562. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/ERC777.sol +514 -0
  563. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777.sol +200 -0
  564. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Recipient.sol +35 -0
  565. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Sender.sol +35 -0
  566. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/README.adoc +32 -0
  567. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +30 -0
  568. package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +107 -0
  569. package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
  570. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol +244 -0
  571. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +105 -0
  572. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Base64.sol +101 -0
  573. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol +560 -0
  574. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
  575. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Counters.sol +43 -0
  576. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Create2.sol +75 -0
  577. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +39 -0
  578. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/README.adoc +113 -0
  579. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
  580. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +138 -0
  581. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Strings.sol +85 -0
  582. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Timers.sol +75 -0
  583. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +217 -0
  584. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +142 -0
  585. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +227 -0
  586. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +50 -0
  587. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol +8 -0
  588. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol +25 -0
  589. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol +67 -0
  590. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/RefundEscrow.sol +100 -0
  591. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +29 -0
  592. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +126 -0
  593. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Storage.sol +42 -0
  594. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC1820Implementer.sol +43 -0
  595. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
  596. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Implementer.sol +20 -0
  597. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol +112 -0
  598. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +339 -0
  599. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1136 -0
  600. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol +215 -0
  601. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +43 -0
  602. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedSafeMath.sol +68 -0
  603. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +51 -0
  604. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +170 -0
  605. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +598 -0
  606. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +378 -0
  607. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/amb/IAMB.sol +41 -0
  608. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IArbSys.sol +134 -0
  609. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IBridge.sol +102 -0
  610. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IDelayedMessageProvider.sol +16 -0
  611. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IInbox.sol +152 -0
  612. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IOutbox.sol +117 -0
  613. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
  614. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
  615. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/ICrossDomainMessenger.sol +34 -0
  616. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/LICENSE +22 -0
  617. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol +7 -0
  618. package/test/contracts/lib/openzeppelin-contracts/docs/README.md +16 -0
  619. package/test/contracts/lib/openzeppelin-contracts/docs/antora.yml +6 -0
  620. package/test/contracts/lib/openzeppelin-contracts/docs/config.js +21 -0
  621. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  622. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  623. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  624. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  625. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  626. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  627. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  628. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  629. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  630. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  631. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  632. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
  633. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +219 -0
  634. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crosschain.adoc +210 -0
  635. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
  636. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
  637. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +153 -0
  638. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +113 -0
  639. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +85 -0
  640. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  641. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +90 -0
  642. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc777.adoc +75 -0
  643. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +131 -0
  644. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +237 -0
  645. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +65 -0
  646. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/releases-stability.adoc +85 -0
  647. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +32 -0
  648. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +73 -0
  649. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +190 -0
  650. package/test/contracts/lib/openzeppelin-contracts/docs/templates/contract.hbs +85 -0
  651. package/test/contracts/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
  652. package/test/contracts/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
  653. package/test/contracts/lib/openzeppelin-contracts/docs/templates/properties.js +45 -0
  654. package/test/contracts/lib/openzeppelin-contracts/foundry.toml +3 -0
  655. package/test/contracts/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
  656. package/test/contracts/lib/openzeppelin-contracts/hardhat/env-contract.js +10 -0
  657. package/test/contracts/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
  658. package/test/contracts/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
  659. package/test/contracts/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
  660. package/test/contracts/lib/openzeppelin-contracts/hardhat.config.js +118 -0
  661. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
  662. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +349 -0
  663. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
  664. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
  665. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
  666. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
  667. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
  668. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
  669. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
  670. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +21 -0
  671. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml +41 -0
  672. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +674 -0
  673. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +14 -0
  674. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +4 -0
  675. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
  676. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +15 -0
  677. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +469 -0
  678. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.t.sol +313 -0
  679. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
  680. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +33 -0
  681. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +26 -0
  682. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +376 -0
  683. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +233 -0
  684. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +624 -0
  685. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
  686. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +92 -0
  687. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +179 -0
  688. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
  689. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +327 -0
  690. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
  691. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +189 -0
  692. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +32 -0
  693. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +409 -0
  694. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1533 -0
  695. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1546 -0
  696. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
  697. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
  698. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
  699. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
  700. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
  701. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
  702. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +954 -0
  703. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +160 -0
  704. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +401 -0
  705. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +118 -0
  706. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +197 -0
  707. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +283 -0
  708. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
  709. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +297 -0
  710. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
  711. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
  712. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
  713. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
  714. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
  715. package/test/contracts/lib/openzeppelin-contracts/logo.svg +15 -0
  716. package/test/contracts/lib/openzeppelin-contracts/netlify.toml +3 -0
  717. package/test/contracts/lib/openzeppelin-contracts/package-lock.json +28795 -0
  718. package/test/contracts/lib/openzeppelin-contracts/package.json +96 -0
  719. package/test/contracts/lib/openzeppelin-contracts/remappings.txt +1 -0
  720. package/test/contracts/lib/openzeppelin-contracts/renovate.json +4 -0
  721. package/test/contracts/lib/openzeppelin-contracts/requirements.txt +1 -0
  722. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +19 -0
  723. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
  724. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +40 -0
  725. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
  726. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
  727. package/test/contracts/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
  728. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
  729. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
  730. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +304 -0
  731. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +22 -0
  732. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +256 -0
  733. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +310 -0
  734. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
  735. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +163 -0
  736. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +87 -0
  737. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
  738. package/test/contracts/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
  739. package/test/contracts/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
  740. package/test/contracts/lib/openzeppelin-contracts/scripts/migrate-imports.js +180 -0
  741. package/test/contracts/lib/openzeppelin-contracts/scripts/prepack.sh +12 -0
  742. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh +15 -0
  743. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
  744. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare.sh +10 -0
  745. package/test/contracts/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
  746. package/test/contracts/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
  747. package/test/contracts/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
  748. package/test/contracts/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
  749. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
  750. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +47 -0
  751. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
  752. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
  753. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
  754. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
  755. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  756. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
  757. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
  758. package/test/contracts/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
  759. package/test/contracts/lib/openzeppelin-contracts/scripts/update-docs-branch.js +63 -0
  760. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
  761. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
  762. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
  763. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +44 -0
  764. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +35 -0
  765. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +481 -0
  766. package/test/contracts/lib/openzeppelin-contracts/slither.config.json +5 -0
  767. package/test/contracts/lib/openzeppelin-contracts/test/TESTING.md +3 -0
  768. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +867 -0
  769. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.test.js +12 -0
  770. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlCrossChain.test.js +49 -0
  771. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlDefaultAdminRules.test.js +25 -0
  772. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlEnumerable.test.js +17 -0
  773. package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable.test.js +59 -0
  774. package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +67 -0
  775. package/test/contracts/lib/openzeppelin-contracts/test/crosschain/CrossChainEnabled.test.js +78 -0
  776. package/test/contracts/lib/openzeppelin-contracts/test/finance/PaymentSplitter.test.js +217 -0
  777. package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -0
  778. package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +67 -0
  779. package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.t.sol +55 -0
  780. package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.test.js +782 -0
  781. package/test/contracts/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1254 -0
  782. package/test/contracts/lib/openzeppelin-contracts/test/governance/compatibility/GovernorCompatibilityBravo.test.js +283 -0
  783. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorComp.test.js +88 -0
  784. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +115 -0
  785. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +189 -0
  786. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +352 -0
  787. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +445 -0
  788. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +154 -0
  789. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +173 -0
  790. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/EIP6372.behavior.js +23 -0
  791. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +361 -0
  792. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +71 -0
  793. package/test/contracts/lib/openzeppelin-contracts/test/helpers/chainid.js +10 -0
  794. package/test/contracts/lib/openzeppelin-contracts/test/helpers/create2.js +11 -0
  795. package/test/contracts/lib/openzeppelin-contracts/test/helpers/crosschain.js +61 -0
  796. package/test/contracts/lib/openzeppelin-contracts/test/helpers/customError.js +24 -0
  797. package/test/contracts/lib/openzeppelin-contracts/test/helpers/eip712.js +67 -0
  798. package/test/contracts/lib/openzeppelin-contracts/test/helpers/enums.js +12 -0
  799. package/test/contracts/lib/openzeppelin-contracts/test/helpers/erc1967.js +24 -0
  800. package/test/contracts/lib/openzeppelin-contracts/test/helpers/governance.js +201 -0
  801. package/test/contracts/lib/openzeppelin-contracts/test/helpers/map-values.js +7 -0
  802. package/test/contracts/lib/openzeppelin-contracts/test/helpers/sign.js +63 -0
  803. package/test/contracts/lib/openzeppelin-contracts/test/helpers/time.js +17 -0
  804. package/test/contracts/lib/openzeppelin-contracts/test/helpers/txpool.js +38 -0
  805. package/test/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +175 -0
  806. package/test/contracts/lib/openzeppelin-contracts/test/metatx/MinimalForwarder.test.js +169 -0
  807. package/test/contracts/lib/openzeppelin-contracts/test/migrate-imports.test.js +33 -0
  808. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +136 -0
  809. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.test.js +61 -0
  810. package/test/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +13 -0
  811. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +225 -0
  812. package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +139 -0
  813. package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +44 -0
  814. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +127 -0
  815. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +433 -0
  816. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +17 -0
  817. package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +218 -0
  818. package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +85 -0
  819. package/test/contracts/lib/openzeppelin-contracts/test/security/Pausable.test.js +85 -0
  820. package/test/contracts/lib/openzeppelin-contracts/test/security/PullPayment.test.js +51 -0
  821. package/test/contracts/lib/openzeppelin-contracts/test/security/ReentrancyGuard.test.js +43 -0
  822. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +767 -0
  823. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +235 -0
  824. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +67 -0
  825. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +108 -0
  826. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +107 -0
  827. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +66 -0
  828. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +156 -0
  829. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +64 -0
  830. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +322 -0
  831. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +305 -0
  832. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +106 -0
  833. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +20 -0
  834. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +32 -0
  835. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +23 -0
  836. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +204 -0
  837. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +133 -0
  838. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Snapshot.test.js +207 -0
  839. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +578 -0
  840. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20VotesComp.test.js +543 -0
  841. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +190 -0
  842. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +42 -0
  843. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +1031 -0
  844. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Permit.test.js +103 -0
  845. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +42 -0
  846. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +110 -0
  847. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +350 -0
  848. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/TokenTimelock.test.js +71 -0
  849. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +893 -0
  850. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +15 -0
  851. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +20 -0
  852. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +70 -0
  853. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +122 -0
  854. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +206 -0
  855. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +92 -0
  856. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -0
  857. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +100 -0
  858. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +184 -0
  859. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +283 -0
  860. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +122 -0
  861. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +22 -0
  862. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.behavior.js +597 -0
  863. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.test.js +556 -0
  864. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +49 -0
  865. package/test/contracts/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +157 -0
  866. package/test/contracts/lib/openzeppelin-contracts/test/utils/Address.test.js +361 -0
  867. package/test/contracts/lib/openzeppelin-contracts/test/utils/Arrays.test.js +123 -0
  868. package/test/contracts/lib/openzeppelin-contracts/test/utils/Base64.test.js +43 -0
  869. package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.t.sol +347 -0
  870. package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.test.js +255 -0
  871. package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.behavior.js +42 -0
  872. package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.test.js +17 -0
  873. package/test/contracts/lib/openzeppelin-contracts/test/utils/Counters.test.js +84 -0
  874. package/test/contracts/lib/openzeppelin-contracts/test/utils/Create2.test.js +89 -0
  875. package/test/contracts/lib/openzeppelin-contracts/test/utils/Multicall.test.js +68 -0
  876. package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +55 -0
  877. package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +55 -0
  878. package/test/contracts/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +210 -0
  879. package/test/contracts/lib/openzeppelin-contracts/test/utils/Strings.test.js +150 -0
  880. package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersBlockNumberImpl.test.js +55 -0
  881. package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersTimestamp.test.js +55 -0
  882. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +260 -0
  883. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +103 -0
  884. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +200 -0
  885. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +87 -0
  886. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/ConditionalEscrow.test.js +37 -0
  887. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.behavior.js +90 -0
  888. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js +14 -0
  889. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/RefundEscrow.test.js +143 -0
  890. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -0
  891. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +302 -0
  892. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Storage.test.js +23 -0
  893. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC1820Implementer.test.js +71 -0
  894. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +146 -0
  895. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +217 -0
  896. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.test.js +289 -0
  897. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +152 -0
  898. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeMath.test.js +433 -0
  899. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +95 -0
  900. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedSafeMath.test.js +152 -0
  901. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +145 -0
  902. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +99 -0
  903. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +185 -0
  904. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +154 -0
  905. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +129 -0
  906. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +79 -0
  907. package/test/contracts/out/AccessControl.sol/AccessControl.json +1 -0
  908. package/test/contracts/out/AccessControlCrossChain.sol/AccessControlCrossChain.json +1 -0
  909. package/test/contracts/out/AccessControlCrossChainMock.sol/AccessControlCrossChainMock.json +1 -0
  910. package/test/contracts/out/AccessControlDefaultAdminRules.sol/AccessControlDefaultAdminRules.json +1 -0
  911. package/test/contracts/out/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -0
  912. package/test/contracts/out/Address.sol/Address.json +1 -0
  913. package/test/contracts/out/Arrays.sol/Arrays.json +1 -0
  914. package/test/contracts/out/ArraysMock.sol/AddressArraysMock.json +1 -0
  915. package/test/contracts/out/ArraysMock.sol/Bytes32ArraysMock.json +1 -0
  916. package/test/contracts/out/ArraysMock.sol/Uint256ArraysMock.json +1 -0
  917. package/test/contracts/out/BadBeacon.sol/BadBeaconNoImpl.json +1 -0
  918. package/test/contracts/out/BadBeacon.sol/BadBeaconNotContract.json +1 -0
  919. package/test/contracts/out/Base.sol/CommonBase.json +1 -0
  920. package/test/contracts/out/Base.sol/ScriptBase.json +1 -0
  921. package/test/contracts/out/Base.sol/TestBase.json +1 -0
  922. package/test/contracts/out/Base64.sol/Base64.json +1 -0
  923. package/test/contracts/out/Base64Dirty.sol/Base64Dirty.json +1 -0
  924. package/test/contracts/out/BeaconProxy.sol/BeaconProxy.json +1 -0
  925. package/test/contracts/out/BitMaps.sol/BitMaps.json +1 -0
  926. package/test/contracts/out/CallReceiverMock.sol/CallReceiverMock.json +1 -0
  927. package/test/contracts/out/Checkpoints.sol/Checkpoints.json +1 -0
  928. package/test/contracts/out/Checkpoints.t.sol/CheckpointsHistoryTest.json +1 -0
  929. package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace160Test.json +1 -0
  930. package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace224Test.json +1 -0
  931. package/test/contracts/out/ClashingImplementation.sol/ClashingImplementation.json +1 -0
  932. package/test/contracts/out/Clones.sol/Clones.json +1 -0
  933. package/test/contracts/out/CompTimelock.sol/CompTimelock.json +1 -0
  934. package/test/contracts/out/CompilationScript.sol/CompilationScript.json +1 -0
  935. package/test/contracts/out/CompilationScriptBase.sol/CompilationScriptBase.json +1 -0
  936. package/test/contracts/out/CompilationTest.sol/CompilationTest.json +1 -0
  937. package/test/contracts/out/CompilationTestBase.sol/CompilationTestBase.json +1 -0
  938. package/test/contracts/out/ConditionalEscrow.sol/ConditionalEscrow.json +1 -0
  939. package/test/contracts/out/ConditionalEscrowMock.sol/ConditionalEscrowMock.json +1 -0
  940. package/test/contracts/out/Context.sol/Context.json +1 -0
  941. package/test/contracts/out/ContextMock.sol/ContextMock.json +1 -0
  942. package/test/contracts/out/ContextMock.sol/ContextMockCaller.json +1 -0
  943. package/test/contracts/out/Counters.sol/Counters.json +1 -0
  944. package/test/contracts/out/Create2.sol/Create2.json +1 -0
  945. package/test/contracts/out/CrossChainEnabled.sol/CrossChainEnabled.json +1 -0
  946. package/test/contracts/out/CrossChainEnabledAMB.sol/CrossChainEnabledAMB.json +1 -0
  947. package/test/contracts/out/CrossChainEnabledArbitrumL1.sol/CrossChainEnabledArbitrumL1.json +1 -0
  948. package/test/contracts/out/CrossChainEnabledArbitrumL2.sol/CrossChainEnabledArbitrumL2.json +1 -0
  949. package/test/contracts/out/CrossChainEnabledOptimism.sol/CrossChainEnabledOptimism.json +1 -0
  950. package/test/contracts/out/CrossChainEnabledPolygonChild.sol/CrossChainEnabledPolygonChild.json +1 -0
  951. package/test/contracts/out/DoubleEndedQueue.sol/DoubleEndedQueue.json +1 -0
  952. package/test/contracts/out/DummyImplementation.sol/DummyImplementation.json +1 -0
  953. package/test/contracts/out/DummyImplementation.sol/DummyImplementationV2.json +1 -0
  954. package/test/contracts/out/DummyImplementation.sol/Impl.json +1 -0
  955. package/test/contracts/out/ECDSA.sol/ECDSA.json +1 -0
  956. package/test/contracts/out/EIP712.sol/EIP712.json +1 -0
  957. package/test/contracts/out/EIP712Verifier.sol/EIP712Verifier.json +1 -0
  958. package/test/contracts/out/ERC1155.sol/ERC1155.json +1 -0
  959. package/test/contracts/out/ERC1155Burnable.sol/ERC1155Burnable.json +1 -0
  960. package/test/contracts/out/ERC1155Holder.sol/ERC1155Holder.json +1 -0
  961. package/test/contracts/out/ERC1155Pausable.sol/ERC1155Pausable.json +1 -0
  962. package/test/contracts/out/ERC1155PresetMinterPauser.sol/ERC1155PresetMinterPauser.json +1 -0
  963. package/test/contracts/out/ERC1155Receiver.sol/ERC1155Receiver.json +1 -0
  964. package/test/contracts/out/ERC1155ReceiverMock.sol/ERC1155ReceiverMock.json +1 -0
  965. package/test/contracts/out/ERC1155Supply.sol/ERC1155Supply.json +1 -0
  966. package/test/contracts/out/ERC1155URIStorage.sol/ERC1155URIStorage.json +1 -0
  967. package/test/contracts/out/ERC1271WalletMock.sol/ERC1271MaliciousMock.json +1 -0
  968. package/test/contracts/out/ERC1271WalletMock.sol/ERC1271WalletMock.json +1 -0
  969. package/test/contracts/out/ERC165.sol/ERC165.json +1 -0
  970. package/test/contracts/out/ERC165Checker.sol/ERC165Checker.json +1 -0
  971. package/test/contracts/out/ERC165MaliciousData.sol/ERC165MaliciousData.json +1 -0
  972. package/test/contracts/out/ERC165MissingData.sol/ERC165MissingData.json +1 -0
  973. package/test/contracts/out/ERC165NotSupported.sol/ERC165NotSupported.json +1 -0
  974. package/test/contracts/out/ERC165ReturnBomb.sol/ERC165ReturnBombMock.json +1 -0
  975. package/test/contracts/out/ERC165Storage.sol/ERC165Storage.json +1 -0
  976. package/test/contracts/out/ERC1820Implementer.sol/ERC1820Implementer.json +1 -0
  977. package/test/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json +1 -0
  978. package/test/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -0
  979. package/test/contracts/out/ERC20.sol/ERC20.json +1 -0
  980. package/test/contracts/out/ERC20Burnable.sol/ERC20Burnable.json +1 -0
  981. package/test/contracts/out/ERC20Capped.sol/ERC20Capped.json +1 -0
  982. package/test/contracts/out/ERC20DecimalsMock.sol/ERC20DecimalsMock.json +1 -0
  983. package/test/contracts/out/ERC20ExcessDecimalsMock.sol/ERC20ExcessDecimalsMock.json +1 -0
  984. package/test/contracts/out/ERC20FlashMint.sol/ERC20FlashMint.json +1 -0
  985. package/test/contracts/out/ERC20FlashMintMock.sol/ERC20FlashMintMock.json +1 -0
  986. package/test/contracts/out/ERC20ForceApproveMock.sol/ERC20ForceApproveMock.json +1 -0
  987. package/test/contracts/out/ERC20Mock.sol/ERC20Mock.json +1 -0
  988. package/test/contracts/out/ERC20MulticallMock.sol/ERC20MulticallMock.json +1 -0
  989. package/test/contracts/out/ERC20NoReturnMock.sol/ERC20NoReturnMock.json +1 -0
  990. package/test/contracts/out/ERC20Pausable.sol/ERC20Pausable.json +1 -0
  991. package/test/contracts/out/ERC20Permit.sol/ERC20Permit.json +1 -0
  992. package/test/contracts/out/ERC20PermitNoRevertMock.sol/ERC20PermitNoRevertMock.json +1 -0
  993. package/test/contracts/out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json +1 -0
  994. package/test/contracts/out/ERC20PresetMinterPauser.sol/ERC20PresetMinterPauser.json +1 -0
  995. package/test/contracts/out/ERC20Reentrant.sol/ERC20Reentrant.json +1 -0
  996. package/test/contracts/out/ERC20ReturnFalseMock.sol/ERC20ReturnFalseMock.json +1 -0
  997. package/test/contracts/out/ERC20Snapshot.sol/ERC20Snapshot.json +1 -0
  998. package/test/contracts/out/ERC20Votes.sol/ERC20Votes.json +1 -0
  999. package/test/contracts/out/ERC20VotesComp.sol/ERC20VotesComp.json +1 -0
  1000. package/test/contracts/out/ERC20VotesLegacyMock.sol/ERC20VotesLegacyMock.json +1 -0
  1001. package/test/contracts/out/ERC20Wrapper.sol/ERC20Wrapper.json +1 -0
  1002. package/test/contracts/out/ERC2771Context.sol/ERC2771Context.json +1 -0
  1003. package/test/contracts/out/ERC2771ContextMock.sol/ERC2771ContextMock.json +1 -0
  1004. package/test/contracts/out/ERC2981.sol/ERC2981.json +1 -0
  1005. package/test/contracts/out/ERC3156FlashBorrowerMock.sol/ERC3156FlashBorrowerMock.json +1 -0
  1006. package/test/contracts/out/ERC4626.prop.sol/ERC4626Prop.json +1 -0
  1007. package/test/contracts/out/ERC4626.prop.sol/IERC20.json +1 -0
  1008. package/test/contracts/out/ERC4626.prop.sol/IERC4626.json +1 -0
  1009. package/test/contracts/out/ERC4626.sol/ERC4626.json +1 -0
  1010. package/test/contracts/out/ERC4626.t.sol/ERC4626StdTest.json +1 -0
  1011. package/test/contracts/out/ERC4626.t.sol/ERC4626VaultOffsetMock.json +1 -0
  1012. package/test/contracts/out/ERC4626.test.sol/ERC4626Test.json +1 -0
  1013. package/test/contracts/out/ERC4626.test.sol/IMockERC20.json +1 -0
  1014. package/test/contracts/out/ERC4626Fees.sol/ERC4626Fees.json +1 -0
  1015. package/test/contracts/out/ERC4626Mock.sol/ERC4626Mock.json +1 -0
  1016. package/test/contracts/out/ERC4626OffsetMock.sol/ERC4626OffsetMock.json +1 -0
  1017. package/test/contracts/out/ERC4646FeesMock.sol/ERC4626FeesMock.json +1 -0
  1018. package/test/contracts/out/ERC721.sol/ERC721.json +1 -0
  1019. package/test/contracts/out/ERC721Burnable.sol/ERC721Burnable.json +1 -0
  1020. package/test/contracts/out/ERC721Consecutive.sol/ERC721Consecutive.json +1 -0
  1021. package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTarget.json +1 -0
  1022. package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTest.json +1 -0
  1023. package/test/contracts/out/ERC721ConsecutiveEnumerableMock.sol/ERC721ConsecutiveEnumerableMock.json +1 -0
  1024. package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveMock.json +1 -0
  1025. package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveNoConstructorMintMock.json +1 -0
  1026. package/test/contracts/out/ERC721Enumerable.sol/ERC721Enumerable.json +1 -0
  1027. package/test/contracts/out/ERC721Holder.sol/ERC721Holder.json +1 -0
  1028. package/test/contracts/out/ERC721Pausable.sol/ERC721Pausable.json +1 -0
  1029. package/test/contracts/out/ERC721PresetMinterPauserAutoId.sol/ERC721PresetMinterPauserAutoId.json +1 -0
  1030. package/test/contracts/out/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +1 -0
  1031. package/test/contracts/out/ERC721Royalty.sol/ERC721Royalty.json +1 -0
  1032. package/test/contracts/out/ERC721URIStorage.sol/ERC721URIStorage.json +1 -0
  1033. package/test/contracts/out/ERC721URIStorageMock.sol/ERC721URIStorageMock.json +1 -0
  1034. package/test/contracts/out/ERC721Votes.sol/ERC721Votes.json +1 -0
  1035. package/test/contracts/out/ERC721Wrapper.sol/ERC721Wrapper.json +1 -0
  1036. package/test/contracts/out/ERC777.sol/ERC777.json +1 -0
  1037. package/test/contracts/out/ERC777Mock.sol/ERC777Mock.json +1 -0
  1038. package/test/contracts/out/ERC777PresetFixedSupply.sol/ERC777PresetFixedSupply.json +1 -0
  1039. package/test/contracts/out/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock.json +1 -0
  1040. package/test/contracts/out/EnumerableMap.sol/EnumerableMap.json +1 -0
  1041. package/test/contracts/out/EnumerableSet.sol/EnumerableSet.json +1 -0
  1042. package/test/contracts/out/Escrow.sol/Escrow.json +1 -0
  1043. package/test/contracts/out/EtherReceiverMock.sol/EtherReceiverMock.json +1 -0
  1044. package/test/contracts/out/Governor.sol/Governor.json +1 -0
  1045. package/test/contracts/out/Governor.t.sol/GovernorInternalTest.json +1 -0
  1046. package/test/contracts/out/GovernorCompMock.sol/GovernorCompMock.json +1 -0
  1047. package/test/contracts/out/GovernorCompatibilityBravo.sol/GovernorCompatibilityBravo.json +1 -0
  1048. package/test/contracts/out/GovernorCompatibilityBravoMock.sol/GovernorCompatibilityBravoMock.json +1 -0
  1049. package/test/contracts/out/GovernorCountingSimple.sol/GovernorCountingSimple.json +1 -0
  1050. package/test/contracts/out/GovernorMock.sol/GovernorMock.json +1 -0
  1051. package/test/contracts/out/GovernorPreventLateQuorum.sol/GovernorPreventLateQuorum.json +1 -0
  1052. package/test/contracts/out/GovernorPreventLateQuorumMock.sol/GovernorPreventLateQuorumMock.json +1 -0
  1053. package/test/contracts/out/GovernorProposalThreshold.sol/GovernorProposalThreshold.json +1 -0
  1054. package/test/contracts/out/GovernorSettings.sol/GovernorSettings.json +1 -0
  1055. package/test/contracts/out/GovernorTimelockCompound.sol/GovernorTimelockCompound.json +1 -0
  1056. package/test/contracts/out/GovernorTimelockCompoundMock.sol/GovernorTimelockCompoundMock.json +1 -0
  1057. package/test/contracts/out/GovernorTimelockControl.sol/GovernorTimelockControl.json +1 -0
  1058. package/test/contracts/out/GovernorTimelockControlMock.sol/GovernorTimelockControlMock.json +1 -0
  1059. package/test/contracts/out/GovernorVoteMock.sol/GovernorVoteMocks.json +1 -0
  1060. package/test/contracts/out/GovernorVotes.sol/GovernorVotes.json +1 -0
  1061. package/test/contracts/out/GovernorVotesComp.sol/GovernorVotesComp.json +1 -0
  1062. package/test/contracts/out/GovernorVotesQuorumFraction.sol/GovernorVotesQuorumFraction.json +1 -0
  1063. package/test/contracts/out/GovernorWithParamsMock.sol/GovernorWithParamsMock.json +1 -0
  1064. package/test/contracts/out/IAMB.sol/IAMB.json +1 -0
  1065. package/test/contracts/out/IAccessControl.sol/IAccessControl.json +1 -0
  1066. package/test/contracts/out/IAccessControlDefaultAdminRules.sol/IAccessControlDefaultAdminRules.json +1 -0
  1067. package/test/contracts/out/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -0
  1068. package/test/contracts/out/IArbSys.sol/IArbSys.json +1 -0
  1069. package/test/contracts/out/IBeacon.sol/IBeacon.json +1 -0
  1070. package/test/contracts/out/IBridge.sol/IBridge.json +1 -0
  1071. package/test/contracts/out/ICompoundTimelock.sol/ICompoundTimelock.json +1 -0
  1072. package/test/contracts/out/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -0
  1073. package/test/contracts/out/IDelayedMessageProvider.sol/IDelayedMessageProvider.json +1 -0
  1074. package/test/contracts/out/IERC1155.sol/IERC1155.json +1 -0
  1075. package/test/contracts/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -0
  1076. package/test/contracts/out/IERC1155Receiver.sol/IERC1155Receiver.json +1 -0
  1077. package/test/contracts/out/IERC1271.sol/IERC1271.json +1 -0
  1078. package/test/contracts/out/IERC1363.sol/IERC1363.json +1 -0
  1079. package/test/contracts/out/IERC1363Receiver.sol/IERC1363Receiver.json +1 -0
  1080. package/test/contracts/out/IERC1363Spender.sol/IERC1363Spender.json +1 -0
  1081. package/test/contracts/out/IERC165.sol/IERC165.json +1 -0
  1082. package/test/contracts/out/IERC1820Implementer.sol/IERC1820Implementer.json +1 -0
  1083. package/test/contracts/out/IERC1820Registry.sol/IERC1820Registry.json +1 -0
  1084. package/test/contracts/out/IERC1967.sol/IERC1967.json +1 -0
  1085. package/test/contracts/out/IERC20.sol/IERC20.json +1 -0
  1086. package/test/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +1 -0
  1087. package/test/contracts/out/IERC20Permit.sol/IERC20Permit.json +1 -0
  1088. package/test/contracts/out/IERC2309.sol/IERC2309.json +1 -0
  1089. package/test/contracts/out/IERC2612.sol/IERC2612.json +1 -0
  1090. package/test/contracts/out/IERC2981.sol/IERC2981.json +1 -0
  1091. package/test/contracts/out/IERC3156FlashBorrower.sol/IERC3156FlashBorrower.json +1 -0
  1092. package/test/contracts/out/IERC3156FlashLender.sol/IERC3156FlashLender.json +1 -0
  1093. package/test/contracts/out/IERC4626.sol/IERC4626.json +1 -0
  1094. package/test/contracts/out/IERC4906.sol/IERC4906.json +1 -0
  1095. package/test/contracts/out/IERC5267.sol/IERC5267.json +1 -0
  1096. package/test/contracts/out/IERC5313.sol/IERC5313.json +1 -0
  1097. package/test/contracts/out/IERC5805.sol/IERC5805.json +1 -0
  1098. package/test/contracts/out/IERC6372.sol/IERC6372.json +1 -0
  1099. package/test/contracts/out/IERC721.sol/IERC721.json +1 -0
  1100. package/test/contracts/out/IERC721.sol/IERC721Enumerable.json +1 -0
  1101. package/test/contracts/out/IERC721.sol/IERC721Metadata.json +1 -0
  1102. package/test/contracts/out/IERC721.sol/IERC721TokenReceiver.json +1 -0
  1103. package/test/contracts/out/IERC721Enumerable.sol/IERC721Enumerable.json +1 -0
  1104. package/test/contracts/out/IERC721Metadata.sol/IERC721Metadata.json +1 -0
  1105. package/test/contracts/out/IERC721Receiver.sol/IERC721Receiver.json +1 -0
  1106. package/test/contracts/out/IERC777.sol/IERC777.json +1 -0
  1107. package/test/contracts/out/IERC777Recipient.sol/IERC777Recipient.json +1 -0
  1108. package/test/contracts/out/IERC777Sender.sol/IERC777Sender.json +1 -0
  1109. package/test/contracts/out/IFxMessageProcessor.sol/IFxMessageProcessor.json +1 -0
  1110. package/test/contracts/out/IGovernor.sol/IGovernor.json +1 -0
  1111. package/test/contracts/out/IGovernorCompatibilityBravo.sol/IGovernorCompatibilityBravo.json +1 -0
  1112. package/test/contracts/out/IGovernorTimelock.sol/IGovernorTimelock.json +1 -0
  1113. package/test/contracts/out/IInbox.sol/IInbox.json +1 -0
  1114. package/test/contracts/out/IMulticall3.sol/IMulticall3.json +1 -0
  1115. package/test/contracts/out/IOutbox.sol/IOutbox.json +1 -0
  1116. package/test/contracts/out/IVotes.sol/IVotes.json +1 -0
  1117. package/test/contracts/out/Initializable.sol/Initializable.json +1 -0
  1118. package/test/contracts/out/InitializableMock.sol/ChildConstructorInitializableMock.json +1 -0
  1119. package/test/contracts/out/InitializableMock.sol/ConstructorInitializableMock.json +1 -0
  1120. package/test/contracts/out/InitializableMock.sol/DisableBad1.json +1 -0
  1121. package/test/contracts/out/InitializableMock.sol/DisableBad2.json +1 -0
  1122. package/test/contracts/out/InitializableMock.sol/DisableNew.json +1 -0
  1123. package/test/contracts/out/InitializableMock.sol/DisableOk.json +1 -0
  1124. package/test/contracts/out/InitializableMock.sol/DisableOld.json +1 -0
  1125. package/test/contracts/out/InitializableMock.sol/InitializableMock.json +1 -0
  1126. package/test/contracts/out/InitializableMock.sol/ReinitializerMock.json +1 -0
  1127. package/test/contracts/out/LibAMB.sol/LibAMB.json +1 -0
  1128. package/test/contracts/out/LibArbitrumL1.sol/LibArbitrumL1.json +1 -0
  1129. package/test/contracts/out/LibArbitrumL2.sol/LibArbitrumL2.json +1 -0
  1130. package/test/contracts/out/LibOptimism.sol/LibOptimism.json +1 -0
  1131. package/test/contracts/out/Math.sol/Math.json +1 -0
  1132. package/test/contracts/out/Math.t.sol/MathTest.json +1 -0
  1133. package/test/contracts/out/MerkleProof.sol/MerkleProof.json +1 -0
  1134. package/test/contracts/out/MinimalForwarder.sol/MinimalForwarder.json +1 -0
  1135. package/test/contracts/out/MockMiladyAgentRegistry.sol/MockMiladyAgentRegistry.json +1 -0
  1136. package/test/contracts/out/MockMiladyCollection.sol/MockMiladyCollection.json +1 -0
  1137. package/test/contracts/out/Multicall.sol/Multicall.json +1 -0
  1138. package/test/contracts/out/MulticallTest.sol/MulticallTest.json +1 -0
  1139. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleChild.json +1 -0
  1140. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleFather.json +1 -0
  1141. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleGramps.json +1 -0
  1142. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleHuman.json +1 -0
  1143. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleMother.json +1 -0
  1144. package/test/contracts/out/MyGovernor.sol/MyGovernor.json +1 -0
  1145. package/test/contracts/out/MyGovernor1.sol/MyGovernor1.json +1 -0
  1146. package/test/contracts/out/MyGovernor2.sol/MyGovernor2.json +1 -0
  1147. package/test/contracts/out/MyGovernor3.sol/MyGovernor3.json +1 -0
  1148. package/test/contracts/out/MyToken.sol/MyToken.json +1 -0
  1149. package/test/contracts/out/MyTokenTimestampBased.sol/MyTokenTimestampBased.json +1 -0
  1150. package/test/contracts/out/MyTokenWrapped.sol/MyTokenWrapped.json +1 -0
  1151. package/test/contracts/out/Ownable.sol/Ownable.json +1 -0
  1152. package/test/contracts/out/Ownable2Step.sol/Ownable2Step.json +1 -0
  1153. package/test/contracts/out/Pausable.sol/Pausable.json +1 -0
  1154. package/test/contracts/out/PausableMock.sol/PausableMock.json +1 -0
  1155. package/test/contracts/out/PaymentSplitter.sol/PaymentSplitter.json +1 -0
  1156. package/test/contracts/out/Proxy.sol/Proxy.json +1 -0
  1157. package/test/contracts/out/ProxyAdmin.sol/ProxyAdmin.json +1 -0
  1158. package/test/contracts/out/PullPayment.sol/PullPayment.json +1 -0
  1159. package/test/contracts/out/PullPaymentMock.sol/PullPaymentMock.json +1 -0
  1160. package/test/contracts/out/ReentrancyAttack.sol/ReentrancyAttack.json +1 -0
  1161. package/test/contracts/out/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
  1162. package/test/contracts/out/ReentrancyMock.sol/ReentrancyMock.json +1 -0
  1163. package/test/contracts/out/RefundEscrow.sol/RefundEscrow.json +1 -0
  1164. package/test/contracts/out/RegressionImplementation.sol/Implementation1.json +1 -0
  1165. package/test/contracts/out/RegressionImplementation.sol/Implementation2.json +1 -0
  1166. package/test/contracts/out/RegressionImplementation.sol/Implementation3.json +1 -0
  1167. package/test/contracts/out/RegressionImplementation.sol/Implementation4.json +1 -0
  1168. package/test/contracts/out/SafeCast.sol/SafeCast.json +1 -0
  1169. package/test/contracts/out/SafeERC20.sol/SafeERC20.json +1 -0
  1170. package/test/contracts/out/SafeMath.sol/SafeMath.json +1 -0
  1171. package/test/contracts/out/SafeMathMemoryCheck.sol/SafeMathMemoryCheck.json +1 -0
  1172. package/test/contracts/out/Script.sol/Script.json +1 -0
  1173. package/test/contracts/out/ShortStrings.sol/ShortStrings.json +1 -0
  1174. package/test/contracts/out/ShortStrings.t.sol/ShortStringsTest.json +1 -0
  1175. package/test/contracts/out/SignatureChecker.sol/SignatureChecker.json +1 -0
  1176. package/test/contracts/out/SignedMath.sol/SignedMath.json +1 -0
  1177. package/test/contracts/out/SignedSafeMath.sol/SignedSafeMath.json +1 -0
  1178. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV1.json +1 -0
  1179. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV2.json +1 -0
  1180. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV3.json +1 -0
  1181. package/test/contracts/out/StdAssertions.sol/StdAssertions.json +1 -0
  1182. package/test/contracts/out/StdAssertions.t.sol/StdAssertionsTest.json +1 -0
  1183. package/test/contracts/out/StdAssertions.t.sol/TestMockCall.json +1 -0
  1184. package/test/contracts/out/StdAssertions.t.sol/TestTest.json +1 -0
  1185. package/test/contracts/out/StdChains.sol/StdChains.json +1 -0
  1186. package/test/contracts/out/StdChains.t.sol/StdChainsTest.json +1 -0
  1187. package/test/contracts/out/StdCheats.sol/StdCheats.json +1 -0
  1188. package/test/contracts/out/StdCheats.sol/StdCheatsSafe.json +1 -0
  1189. package/test/contracts/out/StdCheats.t.sol/Bar.json +1 -0
  1190. package/test/contracts/out/StdCheats.t.sol/BarERC1155.json +1 -0
  1191. package/test/contracts/out/StdCheats.t.sol/BarERC721.json +1 -0
  1192. package/test/contracts/out/StdCheats.t.sol/RevertingContract.json +1 -0
  1193. package/test/contracts/out/StdCheats.t.sol/StdCheatsTest.json +1 -0
  1194. package/test/contracts/out/StdError.sol/stdError.json +1 -0
  1195. package/test/contracts/out/StdError.t.sol/ErrorsTest.json +1 -0
  1196. package/test/contracts/out/StdError.t.sol/StdErrorsTest.json +1 -0
  1197. package/test/contracts/out/StdInvariant.sol/StdInvariant.json +1 -0
  1198. package/test/contracts/out/StdJson.sol/stdJson.json +1 -0
  1199. package/test/contracts/out/StdMath.sol/stdMath.json +1 -0
  1200. package/test/contracts/out/StdMath.t.sol/StdMathTest.json +1 -0
  1201. package/test/contracts/out/StdStorage.sol/stdStorage.json +1 -0
  1202. package/test/contracts/out/StdStorage.sol/stdStorageSafe.json +1 -0
  1203. package/test/contracts/out/StdStorage.t.sol/StdStorageTest.json +1 -0
  1204. package/test/contracts/out/StdStorage.t.sol/StorageTest.json +1 -0
  1205. package/test/contracts/out/StdStyle.sol/StdStyle.json +1 -0
  1206. package/test/contracts/out/StdStyle.t.sol/StdStyleTest.json +1 -0
  1207. package/test/contracts/out/StdUtils.sol/StdUtils.json +1 -0
  1208. package/test/contracts/out/StdUtils.t.sol/StdUtilsForkTest.json +1 -0
  1209. package/test/contracts/out/StdUtils.t.sol/StdUtilsMock.json +1 -0
  1210. package/test/contracts/out/StdUtils.t.sol/StdUtilsTest.json +1 -0
  1211. package/test/contracts/out/StorageSlot.sol/StorageSlot.json +1 -0
  1212. package/test/contracts/out/StorageSlotMock.sol/StorageSlotMock.json +1 -0
  1213. package/test/contracts/out/Strings.sol/Strings.json +1 -0
  1214. package/test/contracts/out/TimelockController.sol/TimelockController.json +1 -0
  1215. package/test/contracts/out/TimelockReentrant.sol/TimelockReentrant.json +1 -0
  1216. package/test/contracts/out/Timers.sol/Timers.json +1 -0
  1217. package/test/contracts/out/TimersBlockNumberImpl.sol/TimersBlockNumberImpl.json +1 -0
  1218. package/test/contracts/out/TimersTimestampImpl.sol/TimersTimestampImpl.json +1 -0
  1219. package/test/contracts/out/TokenTimelock.sol/TokenTimelock.json +1 -0
  1220. package/test/contracts/out/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -0
  1221. package/test/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -0
  1222. package/test/contracts/out/UUPSLegacy.sol/UUPSUpgradeableLegacyMock.json +1 -0
  1223. package/test/contracts/out/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -0
  1224. package/test/contracts/out/UUPSUpgradeableMock.sol/NonUpgradeableMock.json +1 -0
  1225. package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableMock.json +1 -0
  1226. package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableUnsafeMock.json +1 -0
  1227. package/test/contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -0
  1228. package/test/contracts/out/VestingWallet.sol/VestingWallet.json +1 -0
  1229. package/test/contracts/out/Vm.sol/Vm.json +1 -0
  1230. package/test/contracts/out/Vm.sol/VmSafe.json +1 -0
  1231. package/test/contracts/out/Votes.sol/Votes.json +1 -0
  1232. package/test/contracts/out/VotesMock.sol/VotesMock.json +1 -0
  1233. package/test/contracts/out/VotesMock.sol/VotesTimestampMock.json +1 -0
  1234. package/test/contracts/out/VotesTimestamp.sol/ERC20VotesCompTimestampMock.json +1 -0
  1235. package/test/contracts/out/VotesTimestamp.sol/ERC20VotesTimestampMock.json +1 -0
  1236. package/test/contracts/out/VotesTimestamp.sol/ERC721VotesTimestampMock.json +1 -0
  1237. package/test/contracts/out/bridges.sol/BaseRelayMock.json +1 -0
  1238. package/test/contracts/out/bridges.sol/BridgeAMBMock.json +1 -0
  1239. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Inbox.json +1 -0
  1240. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Mock.json +1 -0
  1241. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Outbox.json +1 -0
  1242. package/test/contracts/out/bridges.sol/BridgeArbitrumL2Mock.json +1 -0
  1243. package/test/contracts/out/bridges.sol/BridgeOptimismMock.json +1 -0
  1244. package/test/contracts/out/bridges.sol/BridgePolygonChildMock.json +1 -0
  1245. package/test/contracts/out/build-info/2be03bb8eb1ccda1.json +1 -0
  1246. package/test/contracts/out/console.sol/console.json +1 -0
  1247. package/test/contracts/out/console2.sol/console2.json +1 -0
  1248. package/test/contracts/out/demo.sol/DemoTest.json +1 -0
  1249. package/test/contracts/out/demo.sol/DemoTestWithSetUp.json +1 -0
  1250. package/test/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json +1 -0
  1251. package/test/contracts/out/interfaces/IERC1155.sol/IERC1155.json +1 -0
  1252. package/test/contracts/out/interfaces/IERC165.sol/IERC165.json +1 -0
  1253. package/test/contracts/out/interfaces/IERC20.sol/IERC20.json +1 -0
  1254. package/test/contracts/out/interfaces/IERC4626.sol/IERC4626.json +1 -0
  1255. package/test/contracts/out/interfaces/IERC721.sol/IERC721.json +1 -0
  1256. package/test/contracts/out/receivers.sol/CrossChainEnabledAMBMock.json +1 -0
  1257. package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL1Mock.json +1 -0
  1258. package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL2Mock.json +1 -0
  1259. package/test/contracts/out/receivers.sol/CrossChainEnabledOptimismMock.json +1 -0
  1260. package/test/contracts/out/receivers.sol/CrossChainEnabledPolygonChildMock.json +1 -0
  1261. package/test/contracts/out/receivers.sol/Receiver.json +1 -0
  1262. package/test/contracts/out/test.sol/DSTest.json +1 -0
  1263. package/test/contracts/out/test.sol/Test.json +1 -0
  1264. package/test/contracts/out/test.t.sol/DemoTest.json +1 -0
  1265. package/test/database-api.e2e.test.ts +666 -0
  1266. package/test/debug-anvil.ts +44 -0
  1267. package/test/deferred-restart.e2e.test.ts +368 -0
  1268. package/test/diagnostics/integration-observability.test.ts +135 -0
  1269. package/test/discord-connector.e2e.test.ts +463 -0
  1270. package/test/e2e-global-setup.ts +29 -0
  1271. package/test/e2e-validation.e2e.test.ts +1567 -0
  1272. package/test/health-endpoint.e2e.test.ts +95 -0
  1273. package/test/knowledge-e2e-flow.e2e.test.ts +134 -0
  1274. package/test/knowledge-live.e2e.test.ts +405 -0
  1275. package/test/mcp-config.e2e.test.ts +630 -0
  1276. package/test/native-modules.e2e.test.ts +470 -0
  1277. package/test/permissions-api.e2e.test.ts +637 -0
  1278. package/test/plugin-install.e2e.test.ts +645 -0
  1279. package/test/plugin-lifecycle.e2e.test.ts +617 -0
  1280. package/test/plugin-management.e2e.test.ts +311 -0
  1281. package/test/provider-switch.e2e.test.ts +322 -0
  1282. package/test/runtime-debug.e2e.test.ts +90 -0
  1283. package/test/scripts/test-force.ts +139 -0
  1284. package/test/scripts/test-parallel.mjs +192 -0
  1285. package/test/scripts/validate-all-features.sh +557 -0
  1286. package/test/security/audit-log.test.ts +227 -0
  1287. package/test/security/network-policy.test.ts +143 -0
  1288. package/test/services/version-compat.test.ts +117 -0
  1289. package/test/setup.ts +122 -0
  1290. package/test/signal-connector.e2e.test.ts +229 -0
  1291. package/test/skills-marketplace-api.e2e.test.ts +585 -0
  1292. package/test/skills-marketplace-services.e2e.test.ts +518 -0
  1293. package/test/skills-marketplace.e2e.test.ts +268 -0
  1294. package/test/stubs/coding-agent-module.ts +18 -0
  1295. package/test/stubs/electron-module.ts +17 -0
  1296. package/test/stubs/empty-module.mjs +4 -0
  1297. package/test/stubs/pi-ai-module.ts +12 -0
  1298. package/test/subscription-auth.e2e.test.ts +747 -0
  1299. package/test/terminal-execution.e2e.test.ts +134 -0
  1300. package/test/terminal-run-limits.e2e.test.ts +132 -0
  1301. package/test/test-env.ts +156 -0
  1302. package/test/trajectory-collection.e2e.test.ts +800 -0
  1303. package/test/trajectory-database.e2e.test.ts +218 -0
  1304. package/test/trajectory-embedding-filter.e2e.test.ts +317 -0
  1305. package/test/trajectory-restart-carryover.e2e.test.ts +306 -0
  1306. package/test/trigger-execution-flow.e2e.test.ts +132 -0
  1307. package/test/trigger-runtime.e2e.test.ts +247 -0
  1308. package/test/wallet-api.e2e.test.ts +1295 -0
  1309. package/test/wallet-live.e2e.test.ts +428 -0
  1310. package/tsconfig.build.json +18 -0
  1311. package/tsconfig.json +19 -0
  1312. package/vitest.e2e.config.ts +93 -0
  1313. package/packages/autonomous/src/actions/emote.d.ts +0 -14
  1314. package/packages/autonomous/src/actions/emote.d.ts.map +0 -1
  1315. package/packages/autonomous/src/actions/emote.js +0 -91
  1316. package/packages/autonomous/src/actions/restart.d.ts +0 -19
  1317. package/packages/autonomous/src/actions/restart.d.ts.map +0 -1
  1318. package/packages/autonomous/src/actions/restart.js +0 -86
  1319. package/packages/autonomous/src/actions/send-message.d.ts +0 -3
  1320. package/packages/autonomous/src/actions/send-message.d.ts.map +0 -1
  1321. package/packages/autonomous/src/actions/send-message.js +0 -144
  1322. package/packages/autonomous/src/actions/stream-control.d.ts +0 -15
  1323. package/packages/autonomous/src/actions/stream-control.d.ts.map +0 -1
  1324. package/packages/autonomous/src/actions/stream-control.js +0 -357
  1325. package/packages/autonomous/src/actions/switch-stream-source.d.ts +0 -16
  1326. package/packages/autonomous/src/actions/switch-stream-source.d.ts.map +0 -1
  1327. package/packages/autonomous/src/actions/switch-stream-source.js +0 -94
  1328. package/packages/autonomous/src/actions/terminal.d.ts +0 -14
  1329. package/packages/autonomous/src/actions/terminal.d.ts.map +0 -1
  1330. package/packages/autonomous/src/actions/terminal.js +0 -154
  1331. package/packages/autonomous/src/api/agent-admin-routes.d.ts +0 -38
  1332. package/packages/autonomous/src/api/agent-admin-routes.d.ts.map +0 -1
  1333. package/packages/autonomous/src/api/agent-admin-routes.js +0 -93
  1334. package/packages/autonomous/src/api/agent-lifecycle-routes.d.ts +0 -16
  1335. package/packages/autonomous/src/api/agent-lifecycle-routes.d.ts.map +0 -1
  1336. package/packages/autonomous/src/api/agent-lifecycle-routes.js +0 -80
  1337. package/packages/autonomous/src/api/agent-model.d.ts +0 -12
  1338. package/packages/autonomous/src/api/agent-model.d.ts.map +0 -1
  1339. package/packages/autonomous/src/api/agent-model.js +0 -123
  1340. package/packages/autonomous/src/api/agent-transfer-routes.d.ts +0 -16
  1341. package/packages/autonomous/src/api/agent-transfer-routes.d.ts.map +0 -1
  1342. package/packages/autonomous/src/api/agent-transfer-routes.js +0 -124
  1343. package/packages/autonomous/src/api/apps-routes.d.ts +0 -19
  1344. package/packages/autonomous/src/api/apps-routes.d.ts.map +0 -1
  1345. package/packages/autonomous/src/api/apps-routes.js +0 -128
  1346. package/packages/autonomous/src/api/auth-routes.d.ts +0 -11
  1347. package/packages/autonomous/src/api/auth-routes.d.ts.map +0 -1
  1348. package/packages/autonomous/src/api/auth-routes.js +0 -54
  1349. package/packages/autonomous/src/api/bsc-trade.d.ts +0 -34
  1350. package/packages/autonomous/src/api/bsc-trade.d.ts.map +0 -1
  1351. package/packages/autonomous/src/api/bsc-trade.js +0 -567
  1352. package/packages/autonomous/src/api/bug-report-routes.d.ts +0 -7
  1353. package/packages/autonomous/src/api/bug-report-routes.d.ts.map +0 -1
  1354. package/packages/autonomous/src/api/bug-report-routes.js +0 -124
  1355. package/packages/autonomous/src/api/character-routes.d.ts +0 -50
  1356. package/packages/autonomous/src/api/character-routes.d.ts.map +0 -1
  1357. package/packages/autonomous/src/api/character-routes.js +0 -302
  1358. package/packages/autonomous/src/api/cloud-billing-routes.d.ts +0 -14
  1359. package/packages/autonomous/src/api/cloud-billing-routes.d.ts.map +0 -1
  1360. package/packages/autonomous/src/api/cloud-billing-routes.js +0 -400
  1361. package/packages/autonomous/src/api/cloud-compat-routes.d.ts +0 -15
  1362. package/packages/autonomous/src/api/cloud-compat-routes.d.ts.map +0 -1
  1363. package/packages/autonomous/src/api/cloud-compat-routes.js +0 -131
  1364. package/packages/autonomous/src/api/cloud-routes.d.ts +0 -62
  1365. package/packages/autonomous/src/api/cloud-routes.d.ts.map +0 -1
  1366. package/packages/autonomous/src/api/cloud-routes.js +0 -339
  1367. package/packages/autonomous/src/api/cloud-status-routes.d.ts +0 -15
  1368. package/packages/autonomous/src/api/cloud-status-routes.d.ts.map +0 -1
  1369. package/packages/autonomous/src/api/cloud-status-routes.js +0 -165
  1370. package/packages/autonomous/src/api/compat-utils.d.ts +0 -49
  1371. package/packages/autonomous/src/api/compat-utils.d.ts.map +0 -1
  1372. package/packages/autonomous/src/api/compat-utils.js +0 -126
  1373. package/packages/autonomous/src/api/connector-health.d.ts +0 -34
  1374. package/packages/autonomous/src/api/connector-health.d.ts.map +0 -1
  1375. package/packages/autonomous/src/api/connector-health.js +0 -109
  1376. package/packages/autonomous/src/api/coordinator-wiring.d.ts +0 -46
  1377. package/packages/autonomous/src/api/coordinator-wiring.d.ts.map +0 -1
  1378. package/packages/autonomous/src/api/coordinator-wiring.js +0 -101
  1379. package/packages/autonomous/src/api/credit-detection.d.ts +0 -9
  1380. package/packages/autonomous/src/api/credit-detection.d.ts.map +0 -1
  1381. package/packages/autonomous/src/api/credit-detection.js +0 -41
  1382. package/packages/autonomous/src/api/database.d.ts +0 -33
  1383. package/packages/autonomous/src/api/database.d.ts.map +0 -1
  1384. package/packages/autonomous/src/api/database.js +0 -1019
  1385. package/packages/autonomous/src/api/diagnostics-routes.d.ts +0 -46
  1386. package/packages/autonomous/src/api/diagnostics-routes.d.ts.map +0 -1
  1387. package/packages/autonomous/src/api/diagnostics-routes.js +0 -241
  1388. package/packages/autonomous/src/api/drop-service.d.ts +0 -26
  1389. package/packages/autonomous/src/api/drop-service.d.ts.map +0 -1
  1390. package/packages/autonomous/src/api/drop-service.js +0 -134
  1391. package/packages/autonomous/src/api/early-logs.d.ts +0 -29
  1392. package/packages/autonomous/src/api/early-logs.d.ts.map +0 -1
  1393. package/packages/autonomous/src/api/early-logs.js +0 -96
  1394. package/packages/autonomous/src/api/http-helpers.d.ts +0 -50
  1395. package/packages/autonomous/src/api/http-helpers.d.ts.map +0 -1
  1396. package/packages/autonomous/src/api/http-helpers.js +0 -145
  1397. package/packages/autonomous/src/api/index.d.ts +0 -62
  1398. package/packages/autonomous/src/api/index.d.ts.map +0 -1
  1399. package/packages/autonomous/src/api/index.js +0 -60
  1400. package/packages/autonomous/src/api/knowledge-routes.d.ts +0 -23
  1401. package/packages/autonomous/src/api/knowledge-routes.d.ts.map +0 -1
  1402. package/packages/autonomous/src/api/knowledge-routes.js +0 -887
  1403. package/packages/autonomous/src/api/knowledge-service-loader.d.ts +0 -51
  1404. package/packages/autonomous/src/api/knowledge-service-loader.d.ts.map +0 -1
  1405. package/packages/autonomous/src/api/knowledge-service-loader.js +0 -34
  1406. package/packages/autonomous/src/api/memory-bounds.d.ts +0 -51
  1407. package/packages/autonomous/src/api/memory-bounds.d.ts.map +0 -1
  1408. package/packages/autonomous/src/api/memory-bounds.js +0 -81
  1409. package/packages/autonomous/src/api/memory-routes.d.ts +0 -9
  1410. package/packages/autonomous/src/api/memory-routes.d.ts.map +0 -1
  1411. package/packages/autonomous/src/api/memory-routes.js +0 -241
  1412. package/packages/autonomous/src/api/merkle-tree.d.ts +0 -90
  1413. package/packages/autonomous/src/api/merkle-tree.d.ts.map +0 -1
  1414. package/packages/autonomous/src/api/merkle-tree.js +0 -174
  1415. package/packages/autonomous/src/api/models-routes.d.ts +0 -14
  1416. package/packages/autonomous/src/api/models-routes.d.ts.map +0 -1
  1417. package/packages/autonomous/src/api/models-routes.js +0 -37
  1418. package/packages/autonomous/src/api/nfa-routes.d.ts +0 -5
  1419. package/packages/autonomous/src/api/nfa-routes.d.ts.map +0 -1
  1420. package/packages/autonomous/src/api/nfa-routes.js +0 -125
  1421. package/packages/autonomous/src/api/nft-verify.d.ts +0 -35
  1422. package/packages/autonomous/src/api/nft-verify.d.ts.map +0 -1
  1423. package/packages/autonomous/src/api/nft-verify.js +0 -130
  1424. package/packages/autonomous/src/api/og-tracker.d.ts +0 -28
  1425. package/packages/autonomous/src/api/og-tracker.d.ts.map +0 -1
  1426. package/packages/autonomous/src/api/og-tracker.js +0 -60
  1427. package/packages/autonomous/src/api/parse-action-block.d.ts +0 -36
  1428. package/packages/autonomous/src/api/parse-action-block.d.ts.map +0 -1
  1429. package/packages/autonomous/src/api/parse-action-block.js +0 -110
  1430. package/packages/autonomous/src/api/permissions-routes.d.ts +0 -32
  1431. package/packages/autonomous/src/api/permissions-routes.d.ts.map +0 -1
  1432. package/packages/autonomous/src/api/permissions-routes.js +0 -149
  1433. package/packages/autonomous/src/api/plugin-validation.d.ts +0 -86
  1434. package/packages/autonomous/src/api/plugin-validation.d.ts.map +0 -1
  1435. package/packages/autonomous/src/api/plugin-validation.js +0 -259
  1436. package/packages/autonomous/src/api/provider-switch-config.d.ts +0 -37
  1437. package/packages/autonomous/src/api/provider-switch-config.d.ts.map +0 -1
  1438. package/packages/autonomous/src/api/provider-switch-config.js +0 -317
  1439. package/packages/autonomous/src/api/registry-routes.d.ts +0 -26
  1440. package/packages/autonomous/src/api/registry-routes.d.ts.map +0 -1
  1441. package/packages/autonomous/src/api/registry-routes.js +0 -90
  1442. package/packages/autonomous/src/api/registry-service.d.ts +0 -77
  1443. package/packages/autonomous/src/api/registry-service.d.ts.map +0 -1
  1444. package/packages/autonomous/src/api/registry-service.js +0 -190
  1445. package/packages/autonomous/src/api/route-helpers.d.ts +0 -16
  1446. package/packages/autonomous/src/api/route-helpers.d.ts.map +0 -1
  1447. package/packages/autonomous/src/api/route-helpers.js +0 -1
  1448. package/packages/autonomous/src/api/sandbox-routes.d.ts +0 -12
  1449. package/packages/autonomous/src/api/sandbox-routes.d.ts.map +0 -1
  1450. package/packages/autonomous/src/api/sandbox-routes.js +0 -1334
  1451. package/packages/autonomous/src/api/server.d.ts +0 -418
  1452. package/packages/autonomous/src/api/server.d.ts.map +0 -1
  1453. package/packages/autonomous/src/api/server.js +0 -13564
  1454. package/packages/autonomous/src/api/signal-routes.d.ts +0 -39
  1455. package/packages/autonomous/src/api/signal-routes.d.ts.map +0 -1
  1456. package/packages/autonomous/src/api/signal-routes.js +0 -168
  1457. package/packages/autonomous/src/api/stream-persistence.d.ts +0 -64
  1458. package/packages/autonomous/src/api/stream-persistence.d.ts.map +0 -1
  1459. package/packages/autonomous/src/api/stream-persistence.js +0 -231
  1460. package/packages/autonomous/src/api/stream-route-state.d.ts +0 -50
  1461. package/packages/autonomous/src/api/stream-route-state.d.ts.map +0 -1
  1462. package/packages/autonomous/src/api/stream-route-state.js +0 -1
  1463. package/packages/autonomous/src/api/stream-routes.d.ts +0 -45
  1464. package/packages/autonomous/src/api/stream-routes.d.ts.map +0 -1
  1465. package/packages/autonomous/src/api/stream-routes.js +0 -809
  1466. package/packages/autonomous/src/api/stream-voice-routes.d.ts +0 -36
  1467. package/packages/autonomous/src/api/stream-voice-routes.d.ts.map +0 -1
  1468. package/packages/autonomous/src/api/stream-voice-routes.js +0 -133
  1469. package/packages/autonomous/src/api/streaming-text.d.ts +0 -9
  1470. package/packages/autonomous/src/api/streaming-text.d.ts.map +0 -1
  1471. package/packages/autonomous/src/api/streaming-text.js +0 -85
  1472. package/packages/autonomous/src/api/streaming-types.d.ts +0 -30
  1473. package/packages/autonomous/src/api/streaming-types.d.ts.map +0 -1
  1474. package/packages/autonomous/src/api/streaming-types.js +0 -1
  1475. package/packages/autonomous/src/api/subscription-routes.d.ts +0 -20
  1476. package/packages/autonomous/src/api/subscription-routes.d.ts.map +0 -1
  1477. package/packages/autonomous/src/api/subscription-routes.js +0 -191
  1478. package/packages/autonomous/src/api/terminal-run-limits.d.ts +0 -5
  1479. package/packages/autonomous/src/api/terminal-run-limits.d.ts.map +0 -1
  1480. package/packages/autonomous/src/api/terminal-run-limits.js +0 -22
  1481. package/packages/autonomous/src/api/training-backend-check.d.ts +0 -8
  1482. package/packages/autonomous/src/api/training-backend-check.d.ts.map +0 -1
  1483. package/packages/autonomous/src/api/training-backend-check.js +0 -28
  1484. package/packages/autonomous/src/api/training-routes.d.ts +0 -44
  1485. package/packages/autonomous/src/api/training-routes.d.ts.map +0 -1
  1486. package/packages/autonomous/src/api/training-routes.js +0 -195
  1487. package/packages/autonomous/src/api/training-service-like.d.ts +0 -38
  1488. package/packages/autonomous/src/api/training-service-like.d.ts.map +0 -1
  1489. package/packages/autonomous/src/api/training-service-like.js +0 -1
  1490. package/packages/autonomous/src/api/trajectory-routes.d.ts +0 -17
  1491. package/packages/autonomous/src/api/trajectory-routes.d.ts.map +0 -1
  1492. package/packages/autonomous/src/api/trajectory-routes.js +0 -377
  1493. package/packages/autonomous/src/api/trigger-routes.d.ts +0 -72
  1494. package/packages/autonomous/src/api/trigger-routes.d.ts.map +0 -1
  1495. package/packages/autonomous/src/api/trigger-routes.js +0 -268
  1496. package/packages/autonomous/src/api/twitter-verify.d.ts +0 -25
  1497. package/packages/autonomous/src/api/twitter-verify.d.ts.map +0 -1
  1498. package/packages/autonomous/src/api/twitter-verify.js +0 -168
  1499. package/packages/autonomous/src/api/tx-service.d.ts +0 -47
  1500. package/packages/autonomous/src/api/tx-service.d.ts.map +0 -1
  1501. package/packages/autonomous/src/api/tx-service.js +0 -156
  1502. package/packages/autonomous/src/api/wallet-dex-prices.d.ts +0 -43
  1503. package/packages/autonomous/src/api/wallet-dex-prices.d.ts.map +0 -1
  1504. package/packages/autonomous/src/api/wallet-dex-prices.js +0 -149
  1505. package/packages/autonomous/src/api/wallet-evm-balance.d.ts +0 -65
  1506. package/packages/autonomous/src/api/wallet-evm-balance.d.ts.map +0 -1
  1507. package/packages/autonomous/src/api/wallet-evm-balance.js +0 -663
  1508. package/packages/autonomous/src/api/wallet-routes.d.ts +0 -35
  1509. package/packages/autonomous/src/api/wallet-routes.d.ts.map +0 -1
  1510. package/packages/autonomous/src/api/wallet-routes.js +0 -349
  1511. package/packages/autonomous/src/api/wallet-rpc.d.ts +0 -61
  1512. package/packages/autonomous/src/api/wallet-rpc.d.ts.map +0 -1
  1513. package/packages/autonomous/src/api/wallet-rpc.js +0 -367
  1514. package/packages/autonomous/src/api/wallet-trading-profile.d.ts +0 -51
  1515. package/packages/autonomous/src/api/wallet-trading-profile.d.ts.map +0 -1
  1516. package/packages/autonomous/src/api/wallet-trading-profile.js +0 -547
  1517. package/packages/autonomous/src/api/wallet.d.ts +0 -32
  1518. package/packages/autonomous/src/api/wallet.d.ts.map +0 -1
  1519. package/packages/autonomous/src/api/wallet.js +0 -553
  1520. package/packages/autonomous/src/api/whatsapp-routes.d.ts +0 -39
  1521. package/packages/autonomous/src/api/whatsapp-routes.d.ts.map +0 -1
  1522. package/packages/autonomous/src/api/whatsapp-routes.js +0 -182
  1523. package/packages/autonomous/src/api/zip-utils.d.ts +0 -8
  1524. package/packages/autonomous/src/api/zip-utils.d.ts.map +0 -1
  1525. package/packages/autonomous/src/api/zip-utils.js +0 -115
  1526. package/packages/autonomous/src/auth/anthropic.d.ts +0 -25
  1527. package/packages/autonomous/src/auth/anthropic.d.ts.map +0 -1
  1528. package/packages/autonomous/src/auth/anthropic.js +0 -40
  1529. package/packages/autonomous/src/auth/apply-stealth.d.ts +0 -8
  1530. package/packages/autonomous/src/auth/apply-stealth.d.ts.map +0 -1
  1531. package/packages/autonomous/src/auth/apply-stealth.js +0 -35
  1532. package/packages/autonomous/src/auth/claude-code-stealth.d.ts +0 -2
  1533. package/packages/autonomous/src/auth/claude-code-stealth.d.ts.map +0 -1
  1534. package/packages/autonomous/src/auth/claude-code-stealth.js +0 -104
  1535. package/packages/autonomous/src/auth/credentials.d.ts +0 -55
  1536. package/packages/autonomous/src/auth/credentials.d.ts.map +0 -1
  1537. package/packages/autonomous/src/auth/credentials.js +0 -182
  1538. package/packages/autonomous/src/auth/index.d.ts +0 -7
  1539. package/packages/autonomous/src/auth/index.d.ts.map +0 -1
  1540. package/packages/autonomous/src/auth/index.js +0 -3
  1541. package/packages/autonomous/src/auth/openai-codex.d.ts +0 -27
  1542. package/packages/autonomous/src/auth/openai-codex.d.ts.map +0 -1
  1543. package/packages/autonomous/src/auth/openai-codex.js +0 -72
  1544. package/packages/autonomous/src/auth/types.d.ts +0 -18
  1545. package/packages/autonomous/src/auth/types.d.ts.map +0 -1
  1546. package/packages/autonomous/src/auth/types.js +0 -8
  1547. package/packages/autonomous/src/awareness/registry.d.ts +0 -27
  1548. package/packages/autonomous/src/awareness/registry.d.ts.map +0 -1
  1549. package/packages/autonomous/src/awareness/registry.js +0 -161
  1550. package/packages/autonomous/src/benchmark-server.d.ts +0 -2
  1551. package/packages/autonomous/src/benchmark-server.d.ts.map +0 -1
  1552. package/packages/autonomous/src/benchmark-server.js +0 -773
  1553. package/packages/autonomous/src/bin.d.ts +0 -3
  1554. package/packages/autonomous/src/bin.d.ts.map +0 -1
  1555. package/packages/autonomous/src/bin.js +0 -6
  1556. package/packages/autonomous/src/cli/index.d.ts +0 -2
  1557. package/packages/autonomous/src/cli/index.d.ts.map +0 -1
  1558. package/packages/autonomous/src/cli/index.js +0 -40
  1559. package/packages/autonomous/src/cli/parse-duration.d.ts +0 -5
  1560. package/packages/autonomous/src/cli/parse-duration.d.ts.map +0 -1
  1561. package/packages/autonomous/src/cli/parse-duration.js +0 -27
  1562. package/packages/autonomous/src/cloud/auth.d.ts +0 -19
  1563. package/packages/autonomous/src/cloud/auth.d.ts.map +0 -1
  1564. package/packages/autonomous/src/cloud/auth.js +0 -107
  1565. package/packages/autonomous/src/cloud/backup.d.ts +0 -18
  1566. package/packages/autonomous/src/cloud/backup.d.ts.map +0 -1
  1567. package/packages/autonomous/src/cloud/backup.js +0 -42
  1568. package/packages/autonomous/src/cloud/base-url.d.ts +0 -3
  1569. package/packages/autonomous/src/cloud/base-url.d.ts.map +0 -1
  1570. package/packages/autonomous/src/cloud/base-url.js +0 -40
  1571. package/packages/autonomous/src/cloud/bridge-client.d.ts +0 -56
  1572. package/packages/autonomous/src/cloud/bridge-client.d.ts.map +0 -1
  1573. package/packages/autonomous/src/cloud/bridge-client.js +0 -190
  1574. package/packages/autonomous/src/cloud/cloud-manager.d.ts +0 -32
  1575. package/packages/autonomous/src/cloud/cloud-manager.d.ts.map +0 -1
  1576. package/packages/autonomous/src/cloud/cloud-manager.js +0 -119
  1577. package/packages/autonomous/src/cloud/cloud-proxy.d.ts +0 -20
  1578. package/packages/autonomous/src/cloud/cloud-proxy.d.ts.map +0 -1
  1579. package/packages/autonomous/src/cloud/cloud-proxy.js +0 -34
  1580. package/packages/autonomous/src/cloud/index.d.ts +0 -7
  1581. package/packages/autonomous/src/cloud/index.d.ts.map +0 -1
  1582. package/packages/autonomous/src/cloud/index.js +0 -6
  1583. package/packages/autonomous/src/cloud/reconnect.d.ts +0 -26
  1584. package/packages/autonomous/src/cloud/reconnect.d.ts.map +0 -1
  1585. package/packages/autonomous/src/cloud/reconnect.js +0 -86
  1586. package/packages/autonomous/src/cloud/validate-url.d.ts +0 -2
  1587. package/packages/autonomous/src/cloud/validate-url.d.ts.map +0 -1
  1588. package/packages/autonomous/src/cloud/validate-url.js +0 -162
  1589. package/packages/autonomous/src/config/character-schema.d.ts +0 -25
  1590. package/packages/autonomous/src/config/character-schema.d.ts.map +0 -1
  1591. package/packages/autonomous/src/config/character-schema.js +0 -39
  1592. package/packages/autonomous/src/config/config.d.ts +0 -6
  1593. package/packages/autonomous/src/config/config.d.ts.map +0 -1
  1594. package/packages/autonomous/src/config/config.js +0 -118
  1595. package/packages/autonomous/src/config/env-vars.d.ts +0 -3
  1596. package/packages/autonomous/src/config/env-vars.d.ts.map +0 -1
  1597. package/packages/autonomous/src/config/env-vars.js +0 -76
  1598. package/packages/autonomous/src/config/includes.d.ts +0 -26
  1599. package/packages/autonomous/src/config/includes.d.ts.map +0 -1
  1600. package/packages/autonomous/src/config/includes.js +0 -148
  1601. package/packages/autonomous/src/config/index.d.ts +0 -16
  1602. package/packages/autonomous/src/config/index.d.ts.map +0 -1
  1603. package/packages/autonomous/src/config/object-utils.d.ts +0 -2
  1604. package/packages/autonomous/src/config/object-utils.d.ts.map +0 -1
  1605. package/packages/autonomous/src/config/object-utils.js +0 -6
  1606. package/packages/autonomous/src/config/paths.d.ts +0 -13
  1607. package/packages/autonomous/src/config/paths.d.ts.map +0 -1
  1608. package/packages/autonomous/src/config/paths.js +0 -67
  1609. package/packages/autonomous/src/config/plugin-auto-enable.d.ts +0 -16
  1610. package/packages/autonomous/src/config/plugin-auto-enable.d.ts.map +0 -1
  1611. package/packages/autonomous/src/config/plugin-auto-enable.js +0 -384
  1612. package/packages/autonomous/src/config/schema.d.ts +0 -87
  1613. package/packages/autonomous/src/config/schema.d.ts.map +0 -1
  1614. package/packages/autonomous/src/config/schema.js +0 -928
  1615. package/packages/autonomous/src/config/telegram-custom-commands.d.ts +0 -25
  1616. package/packages/autonomous/src/config/telegram-custom-commands.d.ts.map +0 -1
  1617. package/packages/autonomous/src/config/telegram-custom-commands.js +0 -71
  1618. package/packages/autonomous/src/config/types.agent-defaults.d.ts +0 -331
  1619. package/packages/autonomous/src/config/types.agent-defaults.d.ts.map +0 -1
  1620. package/packages/autonomous/src/config/types.agent-defaults.js +0 -1
  1621. package/packages/autonomous/src/config/types.agents.d.ts +0 -110
  1622. package/packages/autonomous/src/config/types.agents.d.ts.map +0 -1
  1623. package/packages/autonomous/src/config/types.agents.js +0 -1
  1624. package/packages/autonomous/src/config/types.d.ts +0 -8
  1625. package/packages/autonomous/src/config/types.d.ts.map +0 -1
  1626. package/packages/autonomous/src/config/types.eliza.d.ts +0 -636
  1627. package/packages/autonomous/src/config/types.eliza.d.ts.map +0 -1
  1628. package/packages/autonomous/src/config/types.eliza.js +0 -1
  1629. package/packages/autonomous/src/config/types.gateway.d.ts +0 -216
  1630. package/packages/autonomous/src/config/types.gateway.d.ts.map +0 -1
  1631. package/packages/autonomous/src/config/types.gateway.js +0 -1
  1632. package/packages/autonomous/src/config/types.hooks.d.ts +0 -107
  1633. package/packages/autonomous/src/config/types.hooks.d.ts.map +0 -1
  1634. package/packages/autonomous/src/config/types.hooks.js +0 -1
  1635. package/packages/autonomous/src/config/types.messages.d.ts +0 -176
  1636. package/packages/autonomous/src/config/types.messages.d.ts.map +0 -1
  1637. package/packages/autonomous/src/config/types.messages.js +0 -1
  1638. package/packages/autonomous/src/config/types.tools.d.ts +0 -400
  1639. package/packages/autonomous/src/config/types.tools.d.ts.map +0 -1
  1640. package/packages/autonomous/src/config/types.tools.js +0 -1
  1641. package/packages/autonomous/src/config/zod-schema.agent-runtime.d.ts +0 -1062
  1642. package/packages/autonomous/src/config/zod-schema.agent-runtime.d.ts.map +0 -1
  1643. package/packages/autonomous/src/config/zod-schema.agent-runtime.js +0 -721
  1644. package/packages/autonomous/src/config/zod-schema.core.d.ts +0 -1021
  1645. package/packages/autonomous/src/config/zod-schema.core.d.ts.map +0 -1
  1646. package/packages/autonomous/src/config/zod-schema.core.js +0 -694
  1647. package/packages/autonomous/src/config/zod-schema.d.ts +0 -4817
  1648. package/packages/autonomous/src/config/zod-schema.d.ts.map +0 -1
  1649. package/packages/autonomous/src/config/zod-schema.hooks.d.ts +0 -88
  1650. package/packages/autonomous/src/config/zod-schema.hooks.d.ts.map +0 -1
  1651. package/packages/autonomous/src/config/zod-schema.hooks.js +0 -133
  1652. package/packages/autonomous/src/config/zod-schema.js +0 -778
  1653. package/packages/autonomous/src/config/zod-schema.providers-core.d.ts +0 -2976
  1654. package/packages/autonomous/src/config/zod-schema.providers-core.d.ts.map +0 -1
  1655. package/packages/autonomous/src/config/zod-schema.providers-core.js +0 -1006
  1656. package/packages/autonomous/src/config/zod-schema.session.d.ts +0 -183
  1657. package/packages/autonomous/src/config/zod-schema.session.d.ts.map +0 -1
  1658. package/packages/autonomous/src/config/zod-schema.session.js +0 -86
  1659. package/packages/autonomous/src/contracts/apps.d.ts +0 -42
  1660. package/packages/autonomous/src/contracts/apps.d.ts.map +0 -1
  1661. package/packages/autonomous/src/contracts/apps.js +0 -4
  1662. package/packages/autonomous/src/contracts/awareness.d.ts +0 -38
  1663. package/packages/autonomous/src/contracts/awareness.d.ts.map +0 -1
  1664. package/packages/autonomous/src/contracts/awareness.js +0 -7
  1665. package/packages/autonomous/src/contracts/config.d.ts +0 -146
  1666. package/packages/autonomous/src/contracts/config.d.ts.map +0 -1
  1667. package/packages/autonomous/src/contracts/config.js +0 -4
  1668. package/packages/autonomous/src/contracts/drop.d.ts +0 -20
  1669. package/packages/autonomous/src/contracts/drop.d.ts.map +0 -1
  1670. package/packages/autonomous/src/contracts/drop.js +0 -4
  1671. package/packages/autonomous/src/contracts/index.d.ts +0 -9
  1672. package/packages/autonomous/src/contracts/index.d.ts.map +0 -1
  1673. package/packages/autonomous/src/contracts/onboarding.d.ts +0 -379
  1674. package/packages/autonomous/src/contracts/onboarding.d.ts.map +0 -1
  1675. package/packages/autonomous/src/contracts/onboarding.js +0 -290
  1676. package/packages/autonomous/src/contracts/permissions.d.ts +0 -35
  1677. package/packages/autonomous/src/contracts/permissions.d.ts.map +0 -1
  1678. package/packages/autonomous/src/contracts/permissions.js +0 -4
  1679. package/packages/autonomous/src/contracts/verification.d.ts +0 -9
  1680. package/packages/autonomous/src/contracts/verification.d.ts.map +0 -1
  1681. package/packages/autonomous/src/contracts/verification.js +0 -4
  1682. package/packages/autonomous/src/contracts/wallet.d.ts +0 -409
  1683. package/packages/autonomous/src/contracts/wallet.d.ts.map +0 -1
  1684. package/packages/autonomous/src/contracts/wallet.js +0 -60
  1685. package/packages/autonomous/src/diagnostics/integration-observability.d.ts +0 -40
  1686. package/packages/autonomous/src/diagnostics/integration-observability.d.ts.map +0 -1
  1687. package/packages/autonomous/src/diagnostics/integration-observability.js +0 -68
  1688. package/packages/autonomous/src/emotes/catalog.d.ts +0 -31
  1689. package/packages/autonomous/src/emotes/catalog.d.ts.map +0 -1
  1690. package/packages/autonomous/src/emotes/catalog.js +0 -618
  1691. package/packages/autonomous/src/hooks/discovery.d.ts +0 -13
  1692. package/packages/autonomous/src/hooks/discovery.d.ts.map +0 -1
  1693. package/packages/autonomous/src/hooks/discovery.js +0 -184
  1694. package/packages/autonomous/src/hooks/eligibility.d.ts +0 -12
  1695. package/packages/autonomous/src/hooks/eligibility.d.ts.map +0 -1
  1696. package/packages/autonomous/src/hooks/eligibility.js +0 -100
  1697. package/packages/autonomous/src/hooks/index.d.ts +0 -3
  1698. package/packages/autonomous/src/hooks/index.d.ts.map +0 -1
  1699. package/packages/autonomous/src/hooks/index.js +0 -2
  1700. package/packages/autonomous/src/hooks/loader.d.ts +0 -34
  1701. package/packages/autonomous/src/hooks/loader.d.ts.map +0 -1
  1702. package/packages/autonomous/src/hooks/loader.js +0 -176
  1703. package/packages/autonomous/src/hooks/registry.d.ts +0 -11
  1704. package/packages/autonomous/src/hooks/registry.d.ts.map +0 -1
  1705. package/packages/autonomous/src/hooks/registry.js +0 -58
  1706. package/packages/autonomous/src/hooks/types.d.ts +0 -104
  1707. package/packages/autonomous/src/hooks/types.d.ts.map +0 -1
  1708. package/packages/autonomous/src/hooks/types.js +0 -8
  1709. package/packages/autonomous/src/index.d.ts +0 -20
  1710. package/packages/autonomous/src/index.d.ts.map +0 -1
  1711. package/packages/autonomous/src/onboarding-presets.d.ts +0 -74
  1712. package/packages/autonomous/src/onboarding-presets.d.ts.map +0 -1
  1713. package/packages/autonomous/src/onboarding-presets.js +0 -1305
  1714. package/packages/autonomous/src/plugins/custom-rtmp/index.d.ts +0 -12
  1715. package/packages/autonomous/src/plugins/custom-rtmp/index.d.ts.map +0 -1
  1716. package/packages/autonomous/src/plugins/custom-rtmp/index.js +0 -26
  1717. package/packages/autonomous/src/providers/admin-trust.d.ts +0 -4
  1718. package/packages/autonomous/src/providers/admin-trust.d.ts.map +0 -1
  1719. package/packages/autonomous/src/providers/admin-trust.js +0 -53
  1720. package/packages/autonomous/src/providers/session-bridge.d.ts +0 -24
  1721. package/packages/autonomous/src/providers/session-bridge.d.ts.map +0 -1
  1722. package/packages/autonomous/src/providers/session-bridge.js +0 -85
  1723. package/packages/autonomous/src/providers/session-utils.d.ts +0 -20
  1724. package/packages/autonomous/src/providers/session-utils.d.ts.map +0 -1
  1725. package/packages/autonomous/src/providers/session-utils.js +0 -33
  1726. package/packages/autonomous/src/providers/simple-mode.d.ts +0 -4
  1727. package/packages/autonomous/src/providers/simple-mode.d.ts.map +0 -1
  1728. package/packages/autonomous/src/providers/simple-mode.js +0 -85
  1729. package/packages/autonomous/src/providers/ui-catalog.d.ts +0 -3
  1730. package/packages/autonomous/src/providers/ui-catalog.d.ts.map +0 -1
  1731. package/packages/autonomous/src/providers/ui-catalog.js +0 -123
  1732. package/packages/autonomous/src/providers/workspace-provider.d.ts +0 -22
  1733. package/packages/autonomous/src/providers/workspace-provider.d.ts.map +0 -1
  1734. package/packages/autonomous/src/providers/workspace-provider.js +0 -167
  1735. package/packages/autonomous/src/providers/workspace.d.ts +0 -54
  1736. package/packages/autonomous/src/providers/workspace.d.ts.map +0 -1
  1737. package/packages/autonomous/src/providers/workspace.js +0 -405
  1738. package/packages/autonomous/src/runtime/agent-event-service.d.ts +0 -35
  1739. package/packages/autonomous/src/runtime/agent-event-service.d.ts.map +0 -1
  1740. package/packages/autonomous/src/runtime/agent-event-service.js +0 -16
  1741. package/packages/autonomous/src/runtime/cloud-onboarding.d.ts +0 -55
  1742. package/packages/autonomous/src/runtime/cloud-onboarding.d.ts.map +0 -1
  1743. package/packages/autonomous/src/runtime/cloud-onboarding.js +0 -279
  1744. package/packages/autonomous/src/runtime/core-plugins.d.ts +0 -14
  1745. package/packages/autonomous/src/runtime/core-plugins.d.ts.map +0 -1
  1746. package/packages/autonomous/src/runtime/core-plugins.js +0 -51
  1747. package/packages/autonomous/src/runtime/custom-actions.d.ts +0 -40
  1748. package/packages/autonomous/src/runtime/custom-actions.d.ts.map +0 -1
  1749. package/packages/autonomous/src/runtime/custom-actions.js +0 -454
  1750. package/packages/autonomous/src/runtime/eliza-plugin.d.ts +0 -16
  1751. package/packages/autonomous/src/runtime/eliza-plugin.d.ts.map +0 -1
  1752. package/packages/autonomous/src/runtime/eliza-plugin.js +0 -108
  1753. package/packages/autonomous/src/runtime/eliza.d.ts +0 -205
  1754. package/packages/autonomous/src/runtime/eliza.d.ts.map +0 -1
  1755. package/packages/autonomous/src/runtime/eliza.js +0 -4006
  1756. package/packages/autonomous/src/runtime/embedding-presets.d.ts +0 -19
  1757. package/packages/autonomous/src/runtime/embedding-presets.d.ts.map +0 -1
  1758. package/packages/autonomous/src/runtime/embedding-presets.js +0 -53
  1759. package/packages/autonomous/src/runtime/index.d.ts +0 -9
  1760. package/packages/autonomous/src/runtime/index.d.ts.map +0 -1
  1761. package/packages/autonomous/src/runtime/onboarding-names.d.ts +0 -11
  1762. package/packages/autonomous/src/runtime/onboarding-names.d.ts.map +0 -1
  1763. package/packages/autonomous/src/runtime/onboarding-names.js +0 -74
  1764. package/packages/autonomous/src/runtime/release-plugin-policy.d.ts +0 -20
  1765. package/packages/autonomous/src/runtime/release-plugin-policy.d.ts.map +0 -1
  1766. package/packages/autonomous/src/runtime/release-plugin-policy.js +0 -87
  1767. package/packages/autonomous/src/runtime/restart.d.ts +0 -45
  1768. package/packages/autonomous/src/runtime/restart.d.ts.map +0 -1
  1769. package/packages/autonomous/src/runtime/restart.js +0 -45
  1770. package/packages/autonomous/src/runtime/trajectory-persistence.d.ts +0 -214
  1771. package/packages/autonomous/src/runtime/trajectory-persistence.d.ts.map +0 -1
  1772. package/packages/autonomous/src/runtime/trajectory-persistence.js +0 -1849
  1773. package/packages/autonomous/src/runtime/version.d.ts +0 -2
  1774. package/packages/autonomous/src/runtime/version.d.ts.map +0 -1
  1775. package/packages/autonomous/src/runtime/version.js +0 -5
  1776. package/packages/autonomous/src/security/audit-log.d.ts +0 -49
  1777. package/packages/autonomous/src/security/audit-log.d.ts.map +0 -1
  1778. package/packages/autonomous/src/security/audit-log.js +0 -161
  1779. package/packages/autonomous/src/security/network-policy.d.ts +0 -6
  1780. package/packages/autonomous/src/security/network-policy.d.ts.map +0 -1
  1781. package/packages/autonomous/src/security/network-policy.js +0 -85
  1782. package/packages/autonomous/src/server/index.d.ts +0 -3
  1783. package/packages/autonomous/src/server/index.d.ts.map +0 -1
  1784. package/packages/autonomous/src/server/index.js +0 -1
  1785. package/packages/autonomous/src/services/agent-export.d.ts +0 -100
  1786. package/packages/autonomous/src/services/agent-export.d.ts.map +0 -1
  1787. package/packages/autonomous/src/services/agent-export.js +0 -729
  1788. package/packages/autonomous/src/services/app-manager.d.ts +0 -34
  1789. package/packages/autonomous/src/services/app-manager.d.ts.map +0 -1
  1790. package/packages/autonomous/src/services/app-manager.js +0 -425
  1791. package/packages/autonomous/src/services/browser-capture.d.ts +0 -39
  1792. package/packages/autonomous/src/services/browser-capture.d.ts.map +0 -1
  1793. package/packages/autonomous/src/services/browser-capture.js +0 -162
  1794. package/packages/autonomous/src/services/coding-agent-context.d.ts +0 -310
  1795. package/packages/autonomous/src/services/coding-agent-context.d.ts.map +0 -1
  1796. package/packages/autonomous/src/services/coding-agent-context.js +0 -281
  1797. package/packages/autonomous/src/services/fallback-training-service.d.ts +0 -78
  1798. package/packages/autonomous/src/services/fallback-training-service.d.ts.map +0 -1
  1799. package/packages/autonomous/src/services/fallback-training-service.js +0 -126
  1800. package/packages/autonomous/src/services/index.d.ts +0 -18
  1801. package/packages/autonomous/src/services/index.d.ts.map +0 -1
  1802. package/packages/autonomous/src/services/mcp-marketplace.d.ts +0 -89
  1803. package/packages/autonomous/src/services/mcp-marketplace.d.ts.map +0 -1
  1804. package/packages/autonomous/src/services/mcp-marketplace.js +0 -200
  1805. package/packages/autonomous/src/services/plugin-manager-types.d.ts +0 -139
  1806. package/packages/autonomous/src/services/plugin-manager-types.d.ts.map +0 -1
  1807. package/packages/autonomous/src/services/plugin-manager-types.js +0 -18
  1808. package/packages/autonomous/src/services/privy-wallets.d.ts +0 -18
  1809. package/packages/autonomous/src/services/privy-wallets.d.ts.map +0 -1
  1810. package/packages/autonomous/src/services/privy-wallets.js +0 -225
  1811. package/packages/autonomous/src/services/registry-client-app-meta.d.ts +0 -6
  1812. package/packages/autonomous/src/services/registry-client-app-meta.d.ts.map +0 -1
  1813. package/packages/autonomous/src/services/registry-client-app-meta.js +0 -147
  1814. package/packages/autonomous/src/services/registry-client-endpoints.d.ts +0 -7
  1815. package/packages/autonomous/src/services/registry-client-endpoints.d.ts.map +0 -1
  1816. package/packages/autonomous/src/services/registry-client-endpoints.js +0 -183
  1817. package/packages/autonomous/src/services/registry-client-local.d.ts +0 -4
  1818. package/packages/autonomous/src/services/registry-client-local.d.ts.map +0 -1
  1819. package/packages/autonomous/src/services/registry-client-local.js +0 -377
  1820. package/packages/autonomous/src/services/registry-client-network.d.ts +0 -9
  1821. package/packages/autonomous/src/services/registry-client-network.d.ts.map +0 -1
  1822. package/packages/autonomous/src/services/registry-client-network.js +0 -109
  1823. package/packages/autonomous/src/services/registry-client-queries.d.ts +0 -15
  1824. package/packages/autonomous/src/services/registry-client-queries.d.ts.map +0 -1
  1825. package/packages/autonomous/src/services/registry-client-queries.js +0 -150
  1826. package/packages/autonomous/src/services/registry-client-types.d.ts +0 -115
  1827. package/packages/autonomous/src/services/registry-client-types.d.ts.map +0 -1
  1828. package/packages/autonomous/src/services/registry-client-types.js +0 -1
  1829. package/packages/autonomous/src/services/registry-client.d.ts +0 -39
  1830. package/packages/autonomous/src/services/registry-client.d.ts.map +0 -1
  1831. package/packages/autonomous/src/services/registry-client.js +0 -249
  1832. package/packages/autonomous/src/services/remote-signing-service.d.ts +0 -58
  1833. package/packages/autonomous/src/services/remote-signing-service.d.ts.map +0 -1
  1834. package/packages/autonomous/src/services/remote-signing-service.js +0 -185
  1835. package/packages/autonomous/src/services/sandbox-engine.d.ts +0 -96
  1836. package/packages/autonomous/src/services/sandbox-engine.d.ts.map +0 -1
  1837. package/packages/autonomous/src/services/sandbox-engine.js +0 -604
  1838. package/packages/autonomous/src/services/sandbox-manager.d.ts +0 -104
  1839. package/packages/autonomous/src/services/sandbox-manager.d.ts.map +0 -1
  1840. package/packages/autonomous/src/services/sandbox-manager.js +0 -353
  1841. package/packages/autonomous/src/services/self-updater.d.ts +0 -21
  1842. package/packages/autonomous/src/services/self-updater.d.ts.map +0 -1
  1843. package/packages/autonomous/src/services/self-updater.js +0 -162
  1844. package/packages/autonomous/src/services/signal-pairing.d.ts +0 -37
  1845. package/packages/autonomous/src/services/signal-pairing.d.ts.map +0 -1
  1846. package/packages/autonomous/src/services/signal-pairing.js +0 -124
  1847. package/packages/autonomous/src/services/signing-policy.d.ts +0 -44
  1848. package/packages/autonomous/src/services/signing-policy.d.ts.map +0 -1
  1849. package/packages/autonomous/src/services/signing-policy.js +0 -165
  1850. package/packages/autonomous/src/services/skill-catalog-client.d.ts +0 -47
  1851. package/packages/autonomous/src/services/skill-catalog-client.d.ts.map +0 -1
  1852. package/packages/autonomous/src/services/skill-catalog-client.js +0 -130
  1853. package/packages/autonomous/src/services/skill-marketplace.d.ts +0 -42
  1854. package/packages/autonomous/src/services/skill-marketplace.d.ts.map +0 -1
  1855. package/packages/autonomous/src/services/skill-marketplace.js +0 -680
  1856. package/packages/autonomous/src/services/stream-manager.d.ts +0 -121
  1857. package/packages/autonomous/src/services/stream-manager.d.ts.map +0 -1
  1858. package/packages/autonomous/src/services/stream-manager.js +0 -604
  1859. package/packages/autonomous/src/services/tts-stream-bridge.d.ts +0 -83
  1860. package/packages/autonomous/src/services/tts-stream-bridge.d.ts.map +0 -1
  1861. package/packages/autonomous/src/services/tts-stream-bridge.js +0 -349
  1862. package/packages/autonomous/src/services/update-checker.d.ts +0 -29
  1863. package/packages/autonomous/src/services/update-checker.d.ts.map +0 -1
  1864. package/packages/autonomous/src/services/update-checker.js +0 -134
  1865. package/packages/autonomous/src/services/version-compat.d.ts +0 -99
  1866. package/packages/autonomous/src/services/version-compat.d.ts.map +0 -1
  1867. package/packages/autonomous/src/services/version-compat.js +0 -195
  1868. package/packages/autonomous/src/services/whatsapp-pairing.d.ts +0 -41
  1869. package/packages/autonomous/src/services/whatsapp-pairing.d.ts.map +0 -1
  1870. package/packages/autonomous/src/services/whatsapp-pairing.js +0 -209
  1871. package/packages/autonomous/src/shared/ui-catalog-prompt.d.ts +0 -52
  1872. package/packages/autonomous/src/shared/ui-catalog-prompt.d.ts.map +0 -1
  1873. package/packages/autonomous/src/shared/ui-catalog-prompt.js +0 -1028
  1874. package/packages/autonomous/src/test-support/process-helpers.d.ts +0 -13
  1875. package/packages/autonomous/src/test-support/process-helpers.d.ts.map +0 -1
  1876. package/packages/autonomous/src/test-support/process-helpers.js +0 -23
  1877. package/packages/autonomous/src/test-support/route-test-helpers.d.ts +0 -37
  1878. package/packages/autonomous/src/test-support/route-test-helpers.d.ts.map +0 -1
  1879. package/packages/autonomous/src/test-support/route-test-helpers.js +0 -54
  1880. package/packages/autonomous/src/test-support/test-helpers.d.ts +0 -77
  1881. package/packages/autonomous/src/test-support/test-helpers.d.ts.map +0 -1
  1882. package/packages/autonomous/src/test-support/test-helpers.js +0 -210
  1883. package/packages/autonomous/src/testing/index.d.ts +0 -4
  1884. package/packages/autonomous/src/testing/index.d.ts.map +0 -1
  1885. package/packages/autonomous/src/triggers/action.d.ts +0 -3
  1886. package/packages/autonomous/src/triggers/action.d.ts.map +0 -1
  1887. package/packages/autonomous/src/triggers/action.js +0 -267
  1888. package/packages/autonomous/src/triggers/runtime.d.ts +0 -24
  1889. package/packages/autonomous/src/triggers/runtime.d.ts.map +0 -1
  1890. package/packages/autonomous/src/triggers/runtime.js +0 -322
  1891. package/packages/autonomous/src/triggers/scheduling.d.ts +0 -70
  1892. package/packages/autonomous/src/triggers/scheduling.d.ts.map +0 -1
  1893. package/packages/autonomous/src/triggers/scheduling.js +0 -355
  1894. package/packages/autonomous/src/triggers/types.d.ts +0 -115
  1895. package/packages/autonomous/src/triggers/types.d.ts.map +0 -1
  1896. package/packages/autonomous/src/triggers/types.js +0 -1
  1897. package/packages/autonomous/src/utils/exec-safety.d.ts +0 -2
  1898. package/packages/autonomous/src/utils/exec-safety.d.ts.map +0 -1
  1899. package/packages/autonomous/src/utils/exec-safety.js +0 -21
  1900. package/packages/autonomous/src/utils/number-parsing.d.ts +0 -26
  1901. package/packages/autonomous/src/utils/number-parsing.d.ts.map +0 -1
  1902. package/packages/autonomous/src/utils/number-parsing.js +0 -52
  1903. package/packages/autonomous/src/utils/spoken-text.d.ts +0 -2
  1904. package/packages/autonomous/src/utils/spoken-text.d.ts.map +0 -1
  1905. package/packages/autonomous/src/utils/spoken-text.js +0 -56
  1906. package/packages/autonomous/src/version-resolver.d.ts +0 -3
  1907. package/packages/autonomous/src/version-resolver.d.ts.map +0 -1
  1908. package/packages/autonomous/src/version-resolver.js +0 -51
  1909. /package/{packages/autonomous/src/config/index.js → src/config/index.ts} +0 -0
  1910. /package/{packages/autonomous/src/config/types.js → src/config/types.ts} +0 -0
  1911. /package/{packages/autonomous/src/contracts/index.js → src/contracts/index.ts} +0 -0
  1912. /package/{packages/autonomous/src/index.js → src/index.ts} +0 -0
  1913. /package/{packages/autonomous/src/runtime/index.js → src/runtime/index.ts} +0 -0
  1914. /package/{packages/autonomous/src/services/index.js → src/services/index.ts} +0 -0
  1915. /package/{packages/autonomous/src/testing/index.js → src/testing/index.ts} +0 -0
@@ -0,0 +1,2605 @@
1
+ import { once } from "node:events";
2
+ import { createWriteStream } from "node:fs";
3
+ import fs from "node:fs/promises";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { createGzip } from "node:zlib";
7
+ import { type IAgentRuntime, ModelType, Service } from "@elizaos/core";
8
+
9
+ type TrajectoryStatus = "active" | "completed" | "error" | "timeout";
10
+
11
+ // ============================================================================
12
+ // Types for the full TrajectoryLoggerApi (compatible with trajectory-routes.ts)
13
+ // ============================================================================
14
+
15
+ interface TrajectoryListOptions {
16
+ limit?: number;
17
+ offset?: number;
18
+ source?: string;
19
+ status?: TrajectoryStatus;
20
+ startDate?: string;
21
+ endDate?: string;
22
+ search?: string;
23
+ scenarioId?: string;
24
+ batchId?: string;
25
+ isTrainingData?: boolean;
26
+ }
27
+
28
+ interface TrajectoryListItem {
29
+ id: string;
30
+ agentId: string;
31
+ source: string;
32
+ status: TrajectoryStatus;
33
+ startTime: number;
34
+ endTime: number | null;
35
+ durationMs: number | null;
36
+ stepCount: number;
37
+ llmCallCount: number;
38
+ providerAccessCount: number;
39
+ totalPromptTokens: number;
40
+ totalCompletionTokens: number;
41
+ createdAt: string;
42
+ metadata?: Record<string, unknown>;
43
+ }
44
+
45
+ interface TrajectoryListResult {
46
+ trajectories: TrajectoryListItem[];
47
+ total: number;
48
+ offset: number;
49
+ limit: number;
50
+ }
51
+
52
+ interface TrajectoryStep {
53
+ stepId?: string;
54
+ timestamp: number;
55
+ llmCalls?: Array<{
56
+ callId?: string;
57
+ timestamp?: number;
58
+ model?: string;
59
+ systemPrompt?: string;
60
+ userPrompt?: string;
61
+ response?: string;
62
+ temperature?: number;
63
+ maxTokens?: number;
64
+ purpose?: string;
65
+ actionType?: string;
66
+ latencyMs?: number;
67
+ promptTokens?: number;
68
+ completionTokens?: number;
69
+ }>;
70
+ providerAccesses?: Array<{
71
+ providerId?: string;
72
+ providerName?: string;
73
+ purpose?: string;
74
+ data?: Record<string, unknown>;
75
+ query?: Record<string, unknown>;
76
+ timestamp?: number;
77
+ }>;
78
+ }
79
+
80
+ interface Trajectory {
81
+ trajectoryId: string;
82
+ agentId: string;
83
+ startTime: number;
84
+ endTime?: number;
85
+ durationMs?: number;
86
+ steps?: TrajectoryStep[];
87
+ metrics?: { finalStatus?: string };
88
+ metadata?: Record<string, unknown>;
89
+ stepsJson?: string;
90
+ }
91
+
92
+ type TrajectoryExportFormat = "json" | "csv" | "art";
93
+
94
+ interface TrajectoryExportOptions {
95
+ format: TrajectoryExportFormat;
96
+ includePrompts?: boolean;
97
+ trajectoryIds?: string[];
98
+ startDate?: string;
99
+ endDate?: string;
100
+ scenarioId?: string;
101
+ batchId?: string;
102
+ }
103
+
104
+ interface TrajectoryExportResult {
105
+ filename: string;
106
+ data: string | Uint8Array;
107
+ mimeType: string;
108
+ }
109
+
110
+ type RuntimeDb = {
111
+ execute: (query: { queryChunks: object[] }) => Promise<unknown>;
112
+ };
113
+
114
+ type TrajectoryLoggerLike = {
115
+ listTrajectories?: unknown;
116
+ getTrajectoryDetail?: unknown;
117
+ isEnabled?: () => boolean;
118
+ setEnabled?: (enabled: boolean) => void;
119
+ logLlmCall?: (params: Record<string, unknown>) => void;
120
+ logProviderAccess?: (params: Record<string, unknown>) => void;
121
+ getLlmCallLogs?: () => readonly unknown[];
122
+ getProviderAccessLogs?: () => readonly unknown[];
123
+ llmCalls?: unknown[];
124
+ providerAccess?: unknown[];
125
+ };
126
+
127
+ type PersistedLlmCall = {
128
+ callId: string;
129
+ timestamp: number;
130
+ model: string;
131
+ systemPrompt: string;
132
+ userPrompt: string;
133
+ response: string;
134
+ temperature: number;
135
+ maxTokens: number;
136
+ purpose: string;
137
+ actionType: string;
138
+ latencyMs: number;
139
+ promptTokens?: number;
140
+ completionTokens?: number;
141
+ };
142
+
143
+ type PersistedProviderAccess = {
144
+ providerId: string;
145
+ providerName: string;
146
+ timestamp: number;
147
+ data: Record<string, unknown>;
148
+ query?: Record<string, unknown>;
149
+ purpose: string;
150
+ };
151
+
152
+ type PersistedStep = {
153
+ stepId: string;
154
+ stepNumber: number;
155
+ timestamp: number;
156
+ llmCalls: PersistedLlmCall[];
157
+ providerAccesses: PersistedProviderAccess[];
158
+ };
159
+
160
+ type PersistedTrajectory = {
161
+ id: string;
162
+ source: string;
163
+ status: TrajectoryStatus;
164
+ startTime: number;
165
+ endTime: number | null;
166
+ steps: PersistedStep[];
167
+ metadata: Record<string, unknown>;
168
+ totalReward: number;
169
+ createdAt: string;
170
+ updatedAt: string;
171
+ };
172
+
173
+ type StartStepOptions = {
174
+ runtime: IAgentRuntime;
175
+ stepId: string;
176
+ source?: string;
177
+ metadata?: Record<string, unknown>;
178
+ };
179
+
180
+ type CompleteStepOptions = {
181
+ runtime: IAgentRuntime;
182
+ stepId: string;
183
+ status?: TrajectoryStatus;
184
+ source?: string;
185
+ metadata?: Record<string, unknown>;
186
+ };
187
+
188
+ const initializedRuntimes = new WeakSet<object>();
189
+ const patchedLoggers = new WeakSet<object>();
190
+
191
+ const stepWriteQueues = new WeakMap<object, Map<string, Promise<void>>>();
192
+ const lastWritePromises = new WeakMap<object, Promise<void>>();
193
+
194
+ let cachedSqlRaw: ((query: string) => { queryChunks: object[] }) | null = null;
195
+
196
+ function asRecord(value: unknown): Record<string, unknown> | null {
197
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null;
198
+ return value as Record<string, unknown>;
199
+ }
200
+
201
+ function toText(value: unknown, fallback = ""): string {
202
+ if (typeof value === "string") return value;
203
+ if (value === undefined || value === null) return fallback;
204
+ return String(value);
205
+ }
206
+
207
+ function toNumber(value: unknown, fallback = 0): number {
208
+ if (typeof value === "number" && Number.isFinite(value)) return value;
209
+ if (typeof value === "string") {
210
+ const parsed = Number(value);
211
+ if (Number.isFinite(parsed)) return parsed;
212
+ }
213
+ return fallback;
214
+ }
215
+
216
+ function toOptionalNumber(value: unknown): number | undefined {
217
+ if (value === null || value === undefined) return undefined;
218
+ const parsed = toNumber(value, Number.NaN);
219
+ return Number.isFinite(parsed) ? parsed : undefined;
220
+ }
221
+
222
+ function toOptionalBoolean(value: unknown): boolean | undefined {
223
+ if (typeof value === "boolean") return value;
224
+ if (typeof value === "number") return value !== 0;
225
+ if (typeof value !== "string") return undefined;
226
+ const normalized = value.trim().toLowerCase();
227
+ if (["1", "true", "yes", "on", "enabled"].includes(normalized)) return true;
228
+ if (["0", "false", "no", "off", "disabled"].includes(normalized))
229
+ return false;
230
+ return undefined;
231
+ }
232
+
233
+ function hasEvaluatorNamed(runtime: IAgentRuntime, name: string): boolean {
234
+ const runtimeLike = runtime as unknown as {
235
+ evaluators?: Array<{ name?: unknown }>;
236
+ };
237
+ const evaluators = runtimeLike.evaluators;
238
+ if (!Array.isArray(evaluators)) return false;
239
+ const target = name.trim().toUpperCase();
240
+ return evaluators.some((evaluator) => {
241
+ const evaluatorName =
242
+ evaluator && typeof evaluator.name === "string"
243
+ ? evaluator.name.trim().toUpperCase()
244
+ : "";
245
+ return evaluatorName === target;
246
+ });
247
+ }
248
+
249
+ /** @internal Exported for testing. */
250
+ export function shouldRunObservationExtraction(
251
+ runtime: IAgentRuntime,
252
+ ): boolean {
253
+ const runtimeAny = runtime as unknown as {
254
+ getSetting?: (key: string) => unknown;
255
+ };
256
+ const explicitSetting = runtimeAny.getSetting?.(
257
+ "TRAJECTORY_OBSERVATION_EXTRACTION",
258
+ );
259
+ const explicitValue = toOptionalBoolean(explicitSetting);
260
+ if (explicitValue !== undefined) return explicitValue;
261
+
262
+ // Reflection/relationship extraction already derives durable facts from chat.
263
+ // Default to off in that mode to avoid duplicated extraction cost.
264
+ if (
265
+ hasEvaluatorNamed(runtime, "REFLECTION") ||
266
+ hasEvaluatorNamed(runtime, "RELATIONSHIP_EXTRACTION")
267
+ ) {
268
+ return false;
269
+ }
270
+ return true;
271
+ }
272
+
273
+ function readRecordValue(
274
+ record: Record<string, unknown>,
275
+ keys: string[],
276
+ ): unknown {
277
+ for (const key of keys) {
278
+ if (key in record) return record[key];
279
+ }
280
+ return undefined;
281
+ }
282
+
283
+ function parseJsonValue(value: unknown): unknown {
284
+ if (typeof value !== "string") return value;
285
+ try {
286
+ return JSON.parse(value);
287
+ } catch {
288
+ return value;
289
+ }
290
+ }
291
+
292
+ // ---------------------------------------------------------------------------
293
+ // Truncation helpers — cap large text fields to reduce storage/context bloat
294
+ // ---------------------------------------------------------------------------
295
+
296
+ const DEFAULT_TRUNCATE_LIMIT = 500;
297
+
298
+ /** @internal Exported for testing. */
299
+ export function truncateField(
300
+ value: string,
301
+ limit = DEFAULT_TRUNCATE_LIMIT,
302
+ ): string {
303
+ if (value.length <= limit * 2) return value;
304
+ const removed = value.length - limit * 2;
305
+ return `${value.slice(0, limit)}\n[...truncated ${removed} chars...]\n${value.slice(-limit)}`;
306
+ }
307
+
308
+ /** @internal Exported for testing. */
309
+ export function truncateRecord(
310
+ obj: Record<string, unknown>,
311
+ limit = DEFAULT_TRUNCATE_LIMIT,
312
+ ): Record<string, unknown> {
313
+ const serialized = JSON.stringify(obj);
314
+ if (serialized.length <= limit * 2) return obj;
315
+ return { _truncated: truncateField(serialized, limit) };
316
+ }
317
+
318
+ // ---------------------------------------------------------------------------
319
+ // Insight extraction — pull key decision markers from LLM responses at write
320
+ // time so the feedback loop can read them from metadata without loading full
321
+ // trajectory details.
322
+ // ---------------------------------------------------------------------------
323
+
324
+ /** @internal Exported for testing. */
325
+ export function extractInsightsFromResponse(
326
+ response: string,
327
+ purpose: string,
328
+ ): string[] {
329
+ const insights: string[] = [];
330
+ const decisionPattern = /DECISION:\s*(.+?)(?:\n|$)/gi;
331
+ let match: RegExpExecArray | null;
332
+ match = decisionPattern.exec(response);
333
+ while (match !== null) {
334
+ insights.push(match[1].trim());
335
+ match = decisionPattern.exec(response);
336
+ }
337
+ const keyDecisionPattern = /"keyDecision"\s*:\s*"([^"]+)"/g;
338
+ match = keyDecisionPattern.exec(response);
339
+ while (match !== null) {
340
+ insights.push(match[1].trim());
341
+ match = keyDecisionPattern.exec(response);
342
+ }
343
+ if (
344
+ (purpose === "turn-complete" || purpose === "coordination") &&
345
+ insights.length === 0
346
+ ) {
347
+ const reasoningMatch = response.match(/"reasoning"\s*:\s*"([^"]{20,200})"/);
348
+ if (reasoningMatch) insights.push(reasoningMatch[1].trim());
349
+ }
350
+ return insights;
351
+ }
352
+
353
+ // ---------------------------------------------------------------------------
354
+ // Chat observation buffer — accumulates recent chat exchanges and flushes
355
+ // to a background LLM call for durable observation extraction.
356
+ // ---------------------------------------------------------------------------
357
+
358
+ interface BufferedExchange {
359
+ userPrompt: string;
360
+ response: string;
361
+ trajectoryId: string;
362
+ timestamp: number;
363
+ }
364
+
365
+ const OBSERVATION_BUFFER_THRESHOLD = 5;
366
+ const OBSERVATION_FLUSH_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes
367
+
368
+ const observationBuffers = new WeakMap<object, BufferedExchange[]>();
369
+ const observationFlushTimers = new WeakMap<
370
+ object,
371
+ ReturnType<typeof setTimeout>
372
+ >();
373
+ const observationFlushInProgress = new WeakMap<object, boolean>();
374
+
375
+ const TRAJECTORY_ARCHIVE_DIRNAME = "trajectory-archive";
376
+
377
+ function getObservationBuffer(runtime: IAgentRuntime): BufferedExchange[] {
378
+ const key = runtime as unknown as object;
379
+ let buffer = observationBuffers.get(key);
380
+ if (!buffer) {
381
+ buffer = [];
382
+ observationBuffers.set(key, buffer);
383
+ }
384
+ return buffer;
385
+ }
386
+
387
+ function resolvePreferredTrajectoryArchiveRoot(): string {
388
+ const explicitWorkspace = process.env.ELIZA_WORKSPACE_DIR?.trim();
389
+ if (explicitWorkspace) return explicitWorkspace;
390
+
391
+ const workspaceRoot = process.env.ELIZA_WORKSPACE_ROOT?.trim();
392
+ if (workspaceRoot) return workspaceRoot;
393
+
394
+ return path.join(os.homedir(), ".eliza", "workspace");
395
+ }
396
+
397
+ async function ensureArchiveDirectory(dir: string): Promise<void> {
398
+ await fs.mkdir(dir, { recursive: true });
399
+ }
400
+
401
+ async function resolveTrajectoryArchiveDirectory(): Promise<string> {
402
+ const preferred = path.join(
403
+ resolvePreferredTrajectoryArchiveRoot(),
404
+ TRAJECTORY_ARCHIVE_DIRNAME,
405
+ );
406
+ try {
407
+ await ensureArchiveDirectory(preferred);
408
+ return preferred;
409
+ } catch {
410
+ const fallback = path.join(
411
+ process.env.TMPDIR || os.tmpdir(),
412
+ "eliza",
413
+ TRAJECTORY_ARCHIVE_DIRNAME,
414
+ );
415
+ await ensureArchiveDirectory(fallback);
416
+ return fallback;
417
+ }
418
+ }
419
+
420
+ /** @internal Exported for testing. */
421
+ export function pushChatExchange(
422
+ runtime: IAgentRuntime,
423
+ exchange: BufferedExchange,
424
+ ): void {
425
+ const buffer = getObservationBuffer(runtime);
426
+ buffer.push(exchange);
427
+
428
+ const key = runtime as unknown as object;
429
+
430
+ // Flush on threshold
431
+ if (buffer.length >= OBSERVATION_BUFFER_THRESHOLD) {
432
+ flushObservationBuffer(runtime).catch(() => {});
433
+ return;
434
+ }
435
+
436
+ // Set/reset flush timer
437
+ const existing = observationFlushTimers.get(key);
438
+ if (existing) clearTimeout(existing);
439
+ observationFlushTimers.set(
440
+ key,
441
+ setTimeout(() => {
442
+ flushObservationBuffer(runtime).catch(() => {});
443
+ }, OBSERVATION_FLUSH_INTERVAL_MS),
444
+ );
445
+ }
446
+
447
+ const OBSERVATION_EXTRACTION_PROMPT = `You are analyzing recent conversation exchanges between a user and an AI assistant.
448
+ Extract any durable observations about the user that would be useful across future sessions.
449
+
450
+ Categories to look for:
451
+ - Preferences (tools, languages, workflows, communication style)
452
+ - Facts (role, location, projects they work on, tech stack)
453
+ - Standing instructions (things they always/never want)
454
+ - Patterns (recurring topics, how they like to work)
455
+
456
+ Return ONLY a JSON array of short observation strings (max 150 chars each).
457
+ If nothing meaningful is found, return an empty array [].
458
+ Do NOT include observations about the conversation itself, only about the user.
459
+
460
+ Recent exchanges:
461
+ `;
462
+
463
+ /** @internal Exported for testing. */
464
+ export async function flushObservationBuffer(
465
+ runtime: IAgentRuntime,
466
+ ): Promise<string[]> {
467
+ const key = runtime as unknown as object;
468
+
469
+ // Prevent concurrent flushes
470
+ if (observationFlushInProgress.get(key)) return [];
471
+ observationFlushInProgress.set(key, true);
472
+
473
+ const buffer = getObservationBuffer(runtime);
474
+ if (buffer.length === 0) {
475
+ observationFlushInProgress.set(key, false);
476
+ return [];
477
+ }
478
+
479
+ // Take the current buffer and reset
480
+ const exchanges = buffer.splice(0, buffer.length);
481
+ const timer = observationFlushTimers.get(key);
482
+ if (timer) clearTimeout(timer);
483
+
484
+ // Build the extraction prompt
485
+ const exchangeText = exchanges
486
+ .map(
487
+ (e, i) =>
488
+ `Exchange ${i + 1}:\nUser: ${e.userPrompt.slice(0, 500)}\nAssistant: ${e.response.slice(0, 500)}`,
489
+ )
490
+ .join("\n\n");
491
+
492
+ const prompt = OBSERVATION_EXTRACTION_PROMPT + exchangeText;
493
+
494
+ const runtimeAny = runtime as unknown as Record<string, unknown>;
495
+ try {
496
+ // Tag the call to prevent recursion — appendLlmCall skips observation
497
+ // extraction when orchestratorCtx is set.
498
+ runtimeAny.__orchestratorTrajectoryCtx = {
499
+ source: "orchestrator",
500
+ decisionType: "observation-extraction",
501
+ };
502
+
503
+ const result = await runtime.useModel(ModelType.TEXT_SMALL, {
504
+ prompt,
505
+ maxTokens: 512,
506
+ temperature: 0,
507
+ });
508
+
509
+ // Parse the JSON response
510
+ const jsonMatch = result.match(/\[[\s\S]*\]/);
511
+ if (!jsonMatch) return [];
512
+
513
+ const parsed = JSON.parse(jsonMatch[0]);
514
+ if (!Array.isArray(parsed)) return [];
515
+
516
+ const observations = parsed
517
+ .filter((s: unknown) => typeof s === "string" && s.length > 0)
518
+ .map((s: string) => s.slice(0, 150)) as string[];
519
+
520
+ if (observations.length === 0) return [];
521
+
522
+ // Write observations to the most recent trajectory in the batch
523
+ const lastExchange = exchanges[exchanges.length - 1];
524
+ const trajectory = await loadTrajectoryById(
525
+ runtime,
526
+ lastExchange.trajectoryId,
527
+ );
528
+ if (trajectory) {
529
+ const meta = (trajectory.metadata ?? {}) as Record<string, unknown>;
530
+ const existing = Array.isArray(meta.observations)
531
+ ? (meta.observations as string[])
532
+ : [];
533
+ meta.observations = [...existing, ...observations].slice(-30);
534
+ trajectory.metadata = meta;
535
+ await saveTrajectory(runtime, trajectory);
536
+ }
537
+
538
+ return observations;
539
+ } catch {
540
+ // Non-critical — observations are best-effort
541
+ return [];
542
+ } finally {
543
+ delete runtimeAny.__orchestratorTrajectoryCtx;
544
+ observationFlushInProgress.set(key, false);
545
+ }
546
+ }
547
+
548
+ function parseMetadata(value: unknown): Record<string, unknown> {
549
+ const parsed = parseJsonValue(value);
550
+ const record = asRecord(parsed);
551
+ return record ?? {};
552
+ }
553
+
554
+ function parseSteps(value: unknown): PersistedStep[] {
555
+ const parsed = parseJsonValue(value);
556
+ if (Array.isArray(parsed)) {
557
+ return parsed as PersistedStep[];
558
+ }
559
+ const record = asRecord(parsed);
560
+ if (!record) return [];
561
+ const nested = parseJsonValue(readRecordValue(record, ["steps"]));
562
+ return Array.isArray(nested) ? (nested as PersistedStep[]) : [];
563
+ }
564
+
565
+ function sqlQuote(value: string): string {
566
+ return `'${value.replace(/'/g, "''")}'`;
567
+ }
568
+
569
+ function sqlNumber(value: number | null | undefined): string {
570
+ if (typeof value !== "number" || !Number.isFinite(value)) return "NULL";
571
+ return String(value);
572
+ }
573
+
574
+ async function getSqlRaw(): Promise<
575
+ (query: string) => { queryChunks: object[] }
576
+ > {
577
+ if (cachedSqlRaw) return cachedSqlRaw;
578
+ const drizzle = (await import("drizzle-orm")) as {
579
+ sql: { raw: (query: string) => { queryChunks: object[] } };
580
+ };
581
+ cachedSqlRaw = drizzle.sql.raw;
582
+ return cachedSqlRaw;
583
+ }
584
+
585
+ function getRuntimeDb(runtime: IAgentRuntime): RuntimeDb | null {
586
+ const runtimeLike = runtime as unknown as {
587
+ adapter?: {
588
+ db?: RuntimeDb;
589
+ };
590
+ databaseAdapter?: {
591
+ db?: RuntimeDb;
592
+ };
593
+ };
594
+ const db = runtimeLike.adapter?.db || runtimeLike.databaseAdapter?.db;
595
+ if (!db || typeof db.execute !== "function") return null;
596
+ return db;
597
+ }
598
+
599
+ function hasRuntimeDb(runtime: IAgentRuntime): boolean {
600
+ return Boolean(getRuntimeDb(runtime));
601
+ }
602
+
603
+ async function executeRawSql(
604
+ runtime: IAgentRuntime,
605
+ sqlText: string,
606
+ ): Promise<unknown> {
607
+ const db = getRuntimeDb(runtime);
608
+ if (!db) {
609
+ throw new Error("runtime database adapter unavailable");
610
+ }
611
+ const raw = await getSqlRaw();
612
+ return db.execute(raw(sqlText));
613
+ }
614
+
615
+ /** @internal Exported for testing. */
616
+ export function extractRows(result: unknown): unknown[] {
617
+ if (Array.isArray(result)) return result;
618
+ const record = asRecord(result);
619
+ if (!record) return [];
620
+ return Array.isArray(record.rows) ? record.rows : [];
621
+ }
622
+
623
+ /** @internal Exported for testing. */
624
+ export async function computeBySource(
625
+ runtime: IAgentRuntime,
626
+ ): Promise<Record<string, number>> {
627
+ try {
628
+ const result = await executeRawSql(
629
+ runtime,
630
+ "SELECT source, count(*) AS cnt FROM trajectories GROUP BY source",
631
+ );
632
+ const rows = extractRows(result);
633
+ const bySource: Record<string, number> = {};
634
+ for (const row of rows) {
635
+ const r = asRecord(row);
636
+ if (!r) continue;
637
+ const src = typeof r.source === "string" ? r.source : "";
638
+ if (src) bySource[src] = toNumber(r.cnt, 0);
639
+ }
640
+ return bySource;
641
+ } catch {
642
+ return {};
643
+ }
644
+ }
645
+
646
+ function warnRuntime(
647
+ runtime: IAgentRuntime,
648
+ message: string,
649
+ err?: unknown,
650
+ ): void {
651
+ const runtimeLike = runtime as unknown as {
652
+ logger?: {
653
+ warn?: (meta: Record<string, unknown>, message: string) => void;
654
+ };
655
+ };
656
+ if (runtimeLike.logger?.warn) {
657
+ runtimeLike.logger.warn(
658
+ { err, src: "eliza", subsystem: "trajectory-db" },
659
+ message,
660
+ );
661
+ }
662
+ }
663
+
664
+ // Module version - changes on each hot reload, ensuring schema checks run
665
+ const SCHEMA_VERSION = Date.now();
666
+ const schemaVersions = new WeakMap<object, number>();
667
+
668
+ async function ensureTrajectoriesTable(
669
+ runtime: IAgentRuntime,
670
+ ): Promise<boolean> {
671
+ const key = runtime as unknown as object;
672
+
673
+ // Only skip if verified with current module version
674
+ if (schemaVersions.get(key) === SCHEMA_VERSION) return true;
675
+
676
+ try {
677
+ // First, check if the table exists and has the correct schema
678
+ // by attempting to select all required columns
679
+ let needsRecreate = false;
680
+ try {
681
+ await executeRawSql(
682
+ runtime,
683
+ `SELECT trajectory_id, metadata, steps_json, archetype FROM trajectories LIMIT 1`,
684
+ );
685
+ } catch {
686
+ // Table doesn't exist or is missing trajectory_id column
687
+ // Try to drop and recreate
688
+ needsRecreate = true;
689
+ console.warn(
690
+ "[trajectory-persistence] Trajectories table missing or has outdated schema, recreating...",
691
+ );
692
+ try {
693
+ await executeRawSql(
694
+ runtime,
695
+ `DROP TABLE IF EXISTS trajectories CASCADE`,
696
+ );
697
+ } catch (dropErr) {
698
+ console.warn(
699
+ "[trajectory-persistence] Could not drop old table:",
700
+ dropErr,
701
+ );
702
+ }
703
+ }
704
+
705
+ await executeRawSql(
706
+ runtime,
707
+ `CREATE TABLE IF NOT EXISTS trajectories (
708
+ id TEXT PRIMARY KEY,
709
+ trajectory_id TEXT,
710
+ agent_id TEXT NOT NULL,
711
+ source TEXT NOT NULL DEFAULT 'runtime',
712
+ status TEXT NOT NULL DEFAULT 'completed',
713
+ start_time BIGINT NOT NULL,
714
+ end_time BIGINT,
715
+ duration_ms BIGINT,
716
+ step_count INTEGER NOT NULL DEFAULT 0,
717
+ llm_call_count INTEGER NOT NULL DEFAULT 0,
718
+ provider_access_count INTEGER NOT NULL DEFAULT 0,
719
+ total_prompt_tokens INTEGER NOT NULL DEFAULT 0,
720
+ total_completion_tokens INTEGER NOT NULL DEFAULT 0,
721
+ total_reward REAL NOT NULL DEFAULT 0,
722
+ steps_json TEXT NOT NULL DEFAULT '[]',
723
+ metadata TEXT NOT NULL DEFAULT '{}',
724
+ created_at TEXT NOT NULL,
725
+ updated_at TEXT NOT NULL,
726
+ episode_length INTEGER,
727
+ ai_judge_reward REAL,
728
+ ai_judge_reasoning TEXT,
729
+ archetype TEXT
730
+ )`,
731
+ );
732
+
733
+ // Archive table — lightweight summary rows that persist after TTL pruning
734
+ // deletes the heavy steps_json data from the main table.
735
+ await executeRawSql(
736
+ runtime,
737
+ `CREATE TABLE IF NOT EXISTS trajectory_archive (
738
+ id TEXT PRIMARY KEY,
739
+ agent_id TEXT NOT NULL,
740
+ source TEXT NOT NULL DEFAULT 'runtime',
741
+ status TEXT NOT NULL DEFAULT 'completed',
742
+ start_time BIGINT NOT NULL,
743
+ end_time BIGINT,
744
+ duration_ms BIGINT,
745
+ step_count INTEGER NOT NULL DEFAULT 0,
746
+ llm_call_count INTEGER NOT NULL DEFAULT 0,
747
+ provider_access_count INTEGER NOT NULL DEFAULT 0,
748
+ total_prompt_tokens INTEGER NOT NULL DEFAULT 0,
749
+ total_completion_tokens INTEGER NOT NULL DEFAULT 0,
750
+ total_reward REAL NOT NULL DEFAULT 0,
751
+ metadata TEXT NOT NULL DEFAULT '{}',
752
+ observations TEXT NOT NULL DEFAULT '[]',
753
+ archive_blob_path TEXT,
754
+ created_at TEXT NOT NULL,
755
+ updated_at TEXT NOT NULL,
756
+ archived_at TEXT NOT NULL
757
+ )`,
758
+ );
759
+
760
+ // Best-effort forward migration for existing archive tables.
761
+ try {
762
+ await executeRawSql(
763
+ runtime,
764
+ `ALTER TABLE trajectory_archive ADD COLUMN archive_blob_path TEXT`,
765
+ );
766
+ } catch {
767
+ // ignore when column already exists
768
+ }
769
+
770
+ // Best-effort forward migration: add scenario_id column + index
771
+ // (referenced by upstream elizaOS core or external plugins).
772
+ try {
773
+ await executeRawSql(
774
+ runtime,
775
+ `ALTER TABLE trajectories ADD COLUMN scenario_id TEXT`,
776
+ );
777
+ } catch {
778
+ // ignore when column already exists
779
+ }
780
+ try {
781
+ await executeRawSql(
782
+ runtime,
783
+ `CREATE INDEX IF NOT EXISTS idx_trajectories_scenario_id ON trajectories(scenario_id)`,
784
+ );
785
+ } catch {
786
+ // ignore if index creation fails
787
+ }
788
+
789
+ if (needsRecreate) {
790
+ console.warn(
791
+ "[trajectory-persistence] Recreated trajectories table with updated schema",
792
+ );
793
+ }
794
+
795
+ schemaVersions.set(key, SCHEMA_VERSION);
796
+ initializedRuntimes.add(key);
797
+ return true;
798
+ } catch (err) {
799
+ console.error(
800
+ "[trajectory-persistence] ensureTrajectoriesTable error:",
801
+ err,
802
+ );
803
+ return false;
804
+ }
805
+ }
806
+
807
+ function normalizeStatus(
808
+ value: unknown,
809
+ fallback: TrajectoryStatus,
810
+ ): TrajectoryStatus {
811
+ const status = toText(value, "").toLowerCase();
812
+ if (
813
+ status === "active" ||
814
+ status === "completed" ||
815
+ status === "error" ||
816
+ status === "timeout"
817
+ ) {
818
+ return status;
819
+ }
820
+ return fallback;
821
+ }
822
+
823
+ function normalizeStepId(value: unknown): string | null {
824
+ const stepId = toText(value, "").trim();
825
+ return stepId.length > 0 ? stepId : null;
826
+ }
827
+
828
+ function normalizeLlmCallPayload(
829
+ args: unknown[],
830
+ ): { stepId: string; params: Record<string, unknown> } | null {
831
+ if (args.length === 0) return null;
832
+ if (typeof args[0] === "string") {
833
+ const stepId = normalizeStepId(args[0]);
834
+ const details = asRecord(args[1]);
835
+ if (!stepId || !details) return null;
836
+ return {
837
+ stepId,
838
+ params: {
839
+ ...details,
840
+ stepId,
841
+ },
842
+ };
843
+ }
844
+
845
+ const params = asRecord(args[0]);
846
+ if (!params) return null;
847
+ const stepId = normalizeStepId(params.stepId);
848
+ if (!stepId) return null;
849
+ if (params.stepId === stepId) {
850
+ return {
851
+ stepId,
852
+ params,
853
+ };
854
+ }
855
+ return {
856
+ stepId,
857
+ params: {
858
+ ...params,
859
+ stepId,
860
+ },
861
+ };
862
+ }
863
+
864
+ function normalizeProviderAccessPayload(
865
+ args: unknown[],
866
+ ): { stepId: string; params: Record<string, unknown> } | null {
867
+ if (args.length === 0) return null;
868
+ if (typeof args[0] === "string") {
869
+ const stepId = normalizeStepId(args[0]);
870
+ const details = asRecord(args[1]);
871
+ if (!stepId || !details) return null;
872
+ return {
873
+ stepId,
874
+ params: {
875
+ ...details,
876
+ stepId,
877
+ },
878
+ };
879
+ }
880
+
881
+ const params = asRecord(args[0]);
882
+ if (!params) return null;
883
+ const stepId = normalizeStepId(params.stepId);
884
+ if (!stepId) return null;
885
+ if (params.stepId === stepId) {
886
+ return {
887
+ stepId,
888
+ params,
889
+ };
890
+ }
891
+ return {
892
+ stepId,
893
+ params: {
894
+ ...params,
895
+ stepId,
896
+ },
897
+ };
898
+ }
899
+
900
+ function isNumericVectorString(value: string): boolean {
901
+ const trimmed = value.trim();
902
+ if (trimmed === "[array]") return true;
903
+ if (!trimmed.startsWith("[") || !trimmed.endsWith("]")) return false;
904
+ const inner = trimmed.slice(1, -1).trim();
905
+ if (!inner) return false;
906
+ const parts = inner
907
+ .split(",")
908
+ .map((part) => part.trim())
909
+ .filter((part) => part.length > 0);
910
+ if (parts.length < 8) return false;
911
+ const sampleSize = Math.min(parts.length, 16);
912
+ for (let i = 0; i < sampleSize; i += 1) {
913
+ const numeric = Number(parts[i]);
914
+ if (!Number.isFinite(numeric)) return false;
915
+ }
916
+ return true;
917
+ }
918
+
919
+ function shouldSuppressNoInputEmbeddingCall(
920
+ params: Record<string, unknown>,
921
+ ): boolean {
922
+ const model = toText(params.model, "").toLowerCase();
923
+ const actionType = toText(params.actionType, "").toLowerCase();
924
+ const purpose = toText(params.purpose, "").toLowerCase();
925
+ const isEmbedding =
926
+ model.includes("embed") ||
927
+ actionType.includes("embed") ||
928
+ purpose.includes("embed");
929
+ if (!isEmbedding) return false;
930
+ const userPrompt = toText(params.userPrompt ?? params.input, "").trim();
931
+ if (userPrompt.length > 0) return false;
932
+ const response = toText(params.response, "");
933
+ if (!response.trim()) return true;
934
+ return isNumericVectorString(response);
935
+ }
936
+
937
+ function isLegacyTrajectoryLogger(logger: TrajectoryLoggerLike): boolean {
938
+ return (
939
+ typeof logger.listTrajectories === "function" &&
940
+ typeof logger.getTrajectoryDetail === "function"
941
+ );
942
+ }
943
+
944
+ async function resolveTrajectoryLogger(
945
+ runtime: IAgentRuntime,
946
+ ): Promise<TrajectoryLoggerLike | null> {
947
+ const runtimeLike = runtime as unknown as {
948
+ getServicesByType?: (serviceType: string) => unknown;
949
+ getService?: (serviceType: string) => unknown;
950
+ };
951
+
952
+ const candidates: TrajectoryLoggerLike[] = [];
953
+ const seen = new Set<unknown>();
954
+ const push = (candidate: unknown): void => {
955
+ if (!candidate || typeof candidate !== "object" || seen.has(candidate))
956
+ return;
957
+ seen.add(candidate);
958
+ candidates.push(candidate as TrajectoryLoggerLike);
959
+ };
960
+
961
+ if (typeof runtimeLike.getServicesByType === "function") {
962
+ const byType = runtimeLike.getServicesByType("trajectory_logger");
963
+ if (Array.isArray(byType)) {
964
+ for (const item of byType) push(item);
965
+ } else {
966
+ push(byType);
967
+ }
968
+ }
969
+ if (typeof runtimeLike.getService === "function") {
970
+ push(runtimeLike.getService("trajectory_logger"));
971
+ }
972
+
973
+ if (candidates.length === 0) return null;
974
+
975
+ let best: TrajectoryLoggerLike | null = null;
976
+ let bestScore = -1;
977
+ for (const candidate of candidates) {
978
+ let score = 0;
979
+ if (isLegacyTrajectoryLogger(candidate)) score += 100;
980
+ if (typeof candidate.logLlmCall === "function") score += 10;
981
+ if (typeof candidate.logProviderAccess === "function") score += 10;
982
+ if (typeof candidate.getLlmCallLogs === "function") score += 2;
983
+ if (typeof candidate.getProviderAccessLogs === "function") score += 2;
984
+ if (score > bestScore) {
985
+ best = candidate;
986
+ bestScore = score;
987
+ }
988
+ }
989
+
990
+ return best;
991
+ }
992
+
993
+ function enqueueStepWrite(
994
+ runtime: IAgentRuntime,
995
+ stepId: string,
996
+ work: () => Promise<void>,
997
+ ): Promise<void> {
998
+ const runtimeKey = runtime as unknown as object;
999
+ let perStep = stepWriteQueues.get(runtimeKey);
1000
+ if (!perStep) {
1001
+ perStep = new Map<string, Promise<void>>();
1002
+ stepWriteQueues.set(runtimeKey, perStep);
1003
+ }
1004
+
1005
+ const previous = perStep.get(stepId) ?? Promise.resolve();
1006
+ const current = previous
1007
+ .catch(() => undefined)
1008
+ .then(work)
1009
+ .catch((err: unknown) => {
1010
+ warnRuntime(
1011
+ runtime,
1012
+ "Failed to write trajectory update to database",
1013
+ err,
1014
+ );
1015
+ })
1016
+ .finally(() => {
1017
+ const latest = perStep?.get(stepId);
1018
+ if (latest === current) {
1019
+ perStep?.delete(stepId);
1020
+ }
1021
+ });
1022
+
1023
+ perStep.set(stepId, current);
1024
+ return current;
1025
+ }
1026
+
1027
+ function createBaseTrajectory(
1028
+ stepId: string,
1029
+ now: number,
1030
+ source?: string,
1031
+ metadata?: Record<string, unknown>,
1032
+ ): PersistedTrajectory {
1033
+ const normalizedSource = source?.trim() || "runtime";
1034
+ const createdAt = new Date(now).toISOString();
1035
+ return {
1036
+ id: stepId,
1037
+ source: normalizedSource,
1038
+ status: "active",
1039
+ startTime: now,
1040
+ endTime: null,
1041
+ steps: [
1042
+ {
1043
+ stepId,
1044
+ stepNumber: 0,
1045
+ timestamp: now,
1046
+ llmCalls: [],
1047
+ providerAccesses: [],
1048
+ },
1049
+ ],
1050
+ metadata: {
1051
+ ...(metadata ?? {}),
1052
+ },
1053
+ totalReward: 0,
1054
+ createdAt,
1055
+ updatedAt: createdAt,
1056
+ };
1057
+ }
1058
+
1059
+ function ensureStep(
1060
+ trajectory: PersistedTrajectory,
1061
+ stepId: string,
1062
+ now: number,
1063
+ ): PersistedStep {
1064
+ let step = trajectory.steps.find((item) => item.stepId === stepId);
1065
+ if (!step) {
1066
+ step = {
1067
+ stepId,
1068
+ stepNumber: trajectory.steps.length,
1069
+ timestamp: now,
1070
+ llmCalls: [],
1071
+ providerAccesses: [],
1072
+ };
1073
+ trajectory.steps.push(step);
1074
+ }
1075
+ return step;
1076
+ }
1077
+
1078
+ function mergeMetadata(
1079
+ existing: Record<string, unknown>,
1080
+ incoming?: Record<string, unknown>,
1081
+ ): Record<string, unknown> {
1082
+ if (!incoming) return existing;
1083
+ const merged: Record<string, unknown> = { ...existing };
1084
+ for (const [key, value] of Object.entries(incoming)) {
1085
+ if (value !== undefined) merged[key] = value;
1086
+ }
1087
+ return merged;
1088
+ }
1089
+
1090
+ function collectTrajectoryTimestamps(
1091
+ trajectory: PersistedTrajectory,
1092
+ ): number[] {
1093
+ const timestamps: number[] = [trajectory.startTime];
1094
+ for (const step of trajectory.steps) {
1095
+ timestamps.push(step.timestamp);
1096
+ for (const call of step.llmCalls) {
1097
+ timestamps.push(call.timestamp);
1098
+ }
1099
+ for (const access of step.providerAccesses) {
1100
+ timestamps.push(access.timestamp);
1101
+ }
1102
+ }
1103
+ return timestamps.filter((value) => Number.isFinite(value));
1104
+ }
1105
+
1106
+ function summarizeTrajectory(trajectory: PersistedTrajectory): {
1107
+ startTime: number;
1108
+ endTime: number;
1109
+ llmCallCount: number;
1110
+ providerAccessCount: number;
1111
+ totalPromptTokens: number;
1112
+ totalCompletionTokens: number;
1113
+ } {
1114
+ const timestamps = collectTrajectoryTimestamps(trajectory);
1115
+ const startTime =
1116
+ timestamps.length > 0 ? Math.min(...timestamps) : Date.now();
1117
+ const endTime = timestamps.length > 0 ? Math.max(...timestamps) : startTime;
1118
+
1119
+ let llmCallCount = 0;
1120
+ let providerAccessCount = 0;
1121
+ let totalPromptTokens = 0;
1122
+ let totalCompletionTokens = 0;
1123
+
1124
+ for (const step of trajectory.steps) {
1125
+ llmCallCount += step.llmCalls.length;
1126
+ providerAccessCount += step.providerAccesses.length;
1127
+ for (const call of step.llmCalls) {
1128
+ totalPromptTokens += call.promptTokens ?? 0;
1129
+ totalCompletionTokens += call.completionTokens ?? 0;
1130
+ }
1131
+ }
1132
+
1133
+ return {
1134
+ startTime,
1135
+ endTime,
1136
+ llmCallCount,
1137
+ providerAccessCount,
1138
+ totalPromptTokens,
1139
+ totalCompletionTokens,
1140
+ };
1141
+ }
1142
+
1143
+ async function loadTrajectoryById(
1144
+ runtime: IAgentRuntime,
1145
+ stepId: string,
1146
+ ): Promise<PersistedTrajectory | null> {
1147
+ const safeId = sqlQuote(stepId);
1148
+ try {
1149
+ const result = await executeRawSql(
1150
+ runtime,
1151
+ `SELECT * FROM trajectories WHERE id = ${safeId} LIMIT 1`,
1152
+ );
1153
+ const rows = extractRows(result);
1154
+ if (rows.length === 0) return null;
1155
+ const row = asRecord(rows[0]);
1156
+ if (!row) return null;
1157
+
1158
+ const startTime = toNumber(
1159
+ readRecordValue(row, ["start_time", "startTime"]),
1160
+ Date.now(),
1161
+ );
1162
+ const endTime =
1163
+ toOptionalNumber(readRecordValue(row, ["end_time", "endTime"])) ?? null;
1164
+ const steps = parseSteps(
1165
+ readRecordValue(row, ["steps_json", "stepsJson", "steps"]),
1166
+ );
1167
+
1168
+ return {
1169
+ id: toText(
1170
+ readRecordValue(row, ["id", "trajectory_id", "trajectoryId"]),
1171
+ stepId,
1172
+ ),
1173
+ source: toText(readRecordValue(row, ["source"]), "runtime"),
1174
+ status: normalizeStatus(readRecordValue(row, ["status"]), "completed"),
1175
+ startTime,
1176
+ endTime,
1177
+ steps,
1178
+ metadata: parseMetadata(readRecordValue(row, ["metadata", "meta"])),
1179
+ totalReward: toNumber(
1180
+ readRecordValue(row, ["total_reward", "totalReward"]),
1181
+ 0,
1182
+ ),
1183
+ createdAt: toText(
1184
+ readRecordValue(row, ["created_at", "createdAt"]),
1185
+ new Date(startTime).toISOString(),
1186
+ ),
1187
+ updatedAt: toText(
1188
+ readRecordValue(row, ["updated_at", "updatedAt"]),
1189
+ new Date(endTime ?? startTime).toISOString(),
1190
+ ),
1191
+ };
1192
+ } catch {
1193
+ return null;
1194
+ }
1195
+ }
1196
+
1197
+ async function saveTrajectory(
1198
+ runtime: IAgentRuntime,
1199
+ trajectory: PersistedTrajectory,
1200
+ ): Promise<boolean> {
1201
+ const summary = summarizeTrajectory(trajectory);
1202
+ const isActive = trajectory.status === "active";
1203
+ const endTime = isActive ? null : (trajectory.endTime ?? summary.endTime);
1204
+ const durationMs =
1205
+ typeof endTime === "number"
1206
+ ? Math.max(0, endTime - summary.startTime)
1207
+ : null;
1208
+ const createdAt =
1209
+ trajectory.createdAt || new Date(summary.startTime).toISOString();
1210
+ const updatedAt =
1211
+ trajectory.updatedAt || new Date(endTime ?? summary.endTime).toISOString();
1212
+
1213
+ const sql = `INSERT INTO trajectories (
1214
+ id,
1215
+ trajectory_id,
1216
+ agent_id,
1217
+ source,
1218
+ status,
1219
+ start_time,
1220
+ end_time,
1221
+ duration_ms,
1222
+ step_count,
1223
+ llm_call_count,
1224
+ provider_access_count,
1225
+ total_prompt_tokens,
1226
+ total_completion_tokens,
1227
+ total_reward,
1228
+ steps_json,
1229
+ metadata,
1230
+ created_at,
1231
+ updated_at,
1232
+ episode_length
1233
+ ) VALUES (
1234
+ ${sqlQuote(trajectory.id)},
1235
+ ${sqlQuote(trajectory.id)},
1236
+ ${sqlQuote(runtime.agentId)},
1237
+ ${sqlQuote(trajectory.source)},
1238
+ ${sqlQuote(trajectory.status)},
1239
+ ${sqlNumber(summary.startTime)},
1240
+ ${sqlNumber(endTime)},
1241
+ ${sqlNumber(durationMs)},
1242
+ ${sqlNumber(trajectory.steps.length)},
1243
+ ${sqlNumber(summary.llmCallCount)},
1244
+ ${sqlNumber(summary.providerAccessCount)},
1245
+ ${sqlNumber(summary.totalPromptTokens)},
1246
+ ${sqlNumber(summary.totalCompletionTokens)},
1247
+ ${sqlNumber(trajectory.totalReward)},
1248
+ ${sqlQuote(JSON.stringify(trajectory.steps))},
1249
+ ${sqlQuote(JSON.stringify(trajectory.metadata))},
1250
+ ${sqlQuote(createdAt)},
1251
+ ${sqlQuote(updatedAt)},
1252
+ ${sqlNumber(trajectory.steps.length)}
1253
+ )
1254
+ ON CONFLICT (id) DO UPDATE SET
1255
+ trajectory_id = EXCLUDED.trajectory_id,
1256
+ agent_id = EXCLUDED.agent_id,
1257
+ source = EXCLUDED.source,
1258
+ status = EXCLUDED.status,
1259
+ start_time = EXCLUDED.start_time,
1260
+ end_time = EXCLUDED.end_time,
1261
+ duration_ms = EXCLUDED.duration_ms,
1262
+ step_count = EXCLUDED.step_count,
1263
+ llm_call_count = EXCLUDED.llm_call_count,
1264
+ provider_access_count = EXCLUDED.provider_access_count,
1265
+ total_prompt_tokens = EXCLUDED.total_prompt_tokens,
1266
+ total_completion_tokens = EXCLUDED.total_completion_tokens,
1267
+ total_reward = EXCLUDED.total_reward,
1268
+ steps_json = EXCLUDED.steps_json,
1269
+ metadata = EXCLUDED.metadata,
1270
+ created_at = EXCLUDED.created_at,
1271
+ updated_at = EXCLUDED.updated_at,
1272
+ episode_length = EXCLUDED.episode_length`;
1273
+
1274
+ try {
1275
+ await executeRawSql(runtime, sql);
1276
+ return true;
1277
+ } catch (err) {
1278
+ console.error("[trajectory-persistence] saveTrajectory error:", err);
1279
+ return false;
1280
+ }
1281
+ }
1282
+
1283
+ /**
1284
+ * Read orchestrator trajectory context from the runtime, if set.
1285
+ * The coding agent orchestrator plugin sets `__orchestratorTrajectoryCtx` on
1286
+ * the runtime around `useModel()` calls so we can tag them here.
1287
+ */
1288
+ /** @internal Exported for testing. */
1289
+ export function readOrchestratorTrajectoryContext(runtime: unknown):
1290
+ | {
1291
+ source: "orchestrator";
1292
+ decisionType: string;
1293
+ sessionId?: string;
1294
+ taskLabel?: string;
1295
+ repo?: string;
1296
+ workdir?: string;
1297
+ originalTask?: string;
1298
+ }
1299
+ | undefined {
1300
+ if (!runtime || typeof runtime !== "object") return undefined;
1301
+ const ctx = (runtime as Record<string, unknown>).__orchestratorTrajectoryCtx;
1302
+ if (!ctx || typeof ctx !== "object") return undefined;
1303
+ const candidate = ctx as Record<string, unknown>;
1304
+ if (
1305
+ candidate.source !== "orchestrator" ||
1306
+ typeof candidate.decisionType !== "string"
1307
+ )
1308
+ return undefined;
1309
+ return candidate as {
1310
+ source: "orchestrator";
1311
+ decisionType: string;
1312
+ sessionId?: string;
1313
+ taskLabel?: string;
1314
+ repo?: string;
1315
+ workdir?: string;
1316
+ originalTask?: string;
1317
+ };
1318
+ }
1319
+
1320
+ async function appendLlmCall(
1321
+ runtime: IAgentRuntime,
1322
+ stepId: string,
1323
+ params: Record<string, unknown>,
1324
+ ): Promise<void> {
1325
+ if (shouldSuppressNoInputEmbeddingCall(params)) return;
1326
+
1327
+ const now = toNumber(params.timestamp, Date.now());
1328
+ const trajectory =
1329
+ (await loadTrajectoryById(runtime, stepId)) ??
1330
+ createBaseTrajectory(stepId, now);
1331
+
1332
+ trajectory.source = trajectory.source || "runtime";
1333
+ trajectory.status =
1334
+ trajectory.status === "active" ? "active" : trajectory.status;
1335
+
1336
+ // Check for orchestrator trajectory context set by the coding agent plugin.
1337
+ // When present, it overrides the generic "action" / "runtime.useModel" defaults
1338
+ // so orchestrator LLM calls are identifiable in the trajectories viewer.
1339
+ const orchestratorCtx = readOrchestratorTrajectoryContext(runtime);
1340
+
1341
+ // Extract insights from the full response and persist them into metadata
1342
+ // so the feedback loop can read summaries without loading full details.
1343
+ const fullResponse = toText(params.response, "");
1344
+ const purpose =
1345
+ orchestratorCtx?.decisionType ?? toText(params.purpose, "action");
1346
+ const insights = extractInsightsFromResponse(fullResponse, purpose);
1347
+
1348
+ const step = ensureStep(trajectory, stepId, now);
1349
+ const call: PersistedLlmCall = {
1350
+ callId: toText(params.callId, `${stepId}-call-${step.llmCalls.length + 1}`),
1351
+ timestamp: now,
1352
+ model: toText(params.model, "unknown"),
1353
+ // Keep full prompts/responses for training data fidelity.
1354
+ systemPrompt: toText(params.systemPrompt, ""),
1355
+ userPrompt: toText(params.userPrompt ?? params.input, ""),
1356
+ response: fullResponse,
1357
+ temperature: toNumber(params.temperature, 0),
1358
+ maxTokens: toNumber(params.maxTokens, 0),
1359
+ purpose,
1360
+ actionType: orchestratorCtx
1361
+ ? "orchestrator.useModel"
1362
+ : toText(params.actionType, "runtime.useModel"),
1363
+ latencyMs: toNumber(params.latencyMs, 0),
1364
+ };
1365
+
1366
+ const promptTokens = toOptionalNumber(params.promptTokens);
1367
+ const completionTokens = toOptionalNumber(params.completionTokens);
1368
+ if (promptTokens !== undefined) call.promptTokens = promptTokens;
1369
+ if (completionTokens !== undefined) call.completionTokens = completionTokens;
1370
+
1371
+ step.llmCalls.push(call);
1372
+ trajectory.startTime = Math.min(trajectory.startTime, now);
1373
+ trajectory.endTime = Math.max(trajectory.endTime ?? now, now);
1374
+ trajectory.updatedAt = new Date(now).toISOString();
1375
+
1376
+ // Store extracted insights in metadata for lightweight querying
1377
+ if (insights.length > 0) {
1378
+ const meta = (trajectory.metadata ?? {}) as Record<string, unknown>;
1379
+ const existing = Array.isArray(meta.insights)
1380
+ ? (meta.insights as string[])
1381
+ : [];
1382
+ meta.insights = [...existing, ...insights].slice(-20);
1383
+ trajectory.metadata = meta;
1384
+ }
1385
+
1386
+ // Buffer chat exchanges for background LLM observation extraction.
1387
+ // The buffer flushes after 5 messages or 10 minutes, whichever comes first.
1388
+ if (
1389
+ !orchestratorCtx &&
1390
+ trajectory.source === "chat" &&
1391
+ shouldRunObservationExtraction(runtime)
1392
+ ) {
1393
+ pushChatExchange(runtime, {
1394
+ userPrompt: toText(params.userPrompt ?? params.input, ""),
1395
+ response: fullResponse,
1396
+ trajectoryId: trajectory.id,
1397
+ timestamp: now,
1398
+ });
1399
+ }
1400
+
1401
+ // Merge orchestrator metadata into trajectory metadata for filtering/display
1402
+ if (orchestratorCtx) {
1403
+ trajectory.source = "orchestrator";
1404
+ const meta = (trajectory.metadata ?? {}) as Record<string, unknown>;
1405
+ meta.orchestrator = {
1406
+ decisionType: orchestratorCtx.decisionType,
1407
+ ...(orchestratorCtx.sessionId && {
1408
+ sessionId: orchestratorCtx.sessionId,
1409
+ }),
1410
+ ...(orchestratorCtx.taskLabel && {
1411
+ taskLabel: orchestratorCtx.taskLabel,
1412
+ }),
1413
+ ...(orchestratorCtx.repo && {
1414
+ repo: orchestratorCtx.repo,
1415
+ }),
1416
+ ...(orchestratorCtx.workdir && {
1417
+ workdir: orchestratorCtx.workdir,
1418
+ }),
1419
+ ...(orchestratorCtx.originalTask && {
1420
+ originalTask: orchestratorCtx.originalTask,
1421
+ }),
1422
+ };
1423
+ trajectory.metadata = meta;
1424
+ }
1425
+
1426
+ await saveTrajectory(runtime, trajectory);
1427
+ }
1428
+
1429
+ async function appendProviderAccess(
1430
+ runtime: IAgentRuntime,
1431
+ stepId: string,
1432
+ params: Record<string, unknown>,
1433
+ ): Promise<void> {
1434
+ const now = toNumber(params.timestamp, Date.now());
1435
+ const trajectory =
1436
+ (await loadTrajectoryById(runtime, stepId)) ??
1437
+ createBaseTrajectory(stepId, now);
1438
+
1439
+ trajectory.source = trajectory.source || "runtime";
1440
+ trajectory.status =
1441
+ trajectory.status === "active" ? "active" : trajectory.status;
1442
+
1443
+ const step = ensureStep(trajectory, stepId, now);
1444
+ const access: PersistedProviderAccess = {
1445
+ providerId: toText(
1446
+ params.providerId,
1447
+ `${stepId}-provider-${step.providerAccesses.length + 1}`,
1448
+ ),
1449
+ providerName: toText(params.providerName, "unknown"),
1450
+ timestamp: now,
1451
+ data: truncateRecord(asRecord(params.data) ?? {}),
1452
+ query: (() => {
1453
+ const queryRecord = asRecord(params.query);
1454
+ return queryRecord ? truncateRecord(queryRecord) : undefined;
1455
+ })(),
1456
+ purpose: toText(params.purpose, "provider"),
1457
+ };
1458
+
1459
+ step.providerAccesses.push(access);
1460
+ trajectory.startTime = Math.min(trajectory.startTime, now);
1461
+ trajectory.endTime = Math.max(trajectory.endTime ?? now, now);
1462
+ trajectory.updatedAt = new Date(now).toISOString();
1463
+
1464
+ await saveTrajectory(runtime, trajectory);
1465
+ }
1466
+
1467
+ export async function installDatabaseTrajectoryLogger(
1468
+ runtime: IAgentRuntime,
1469
+ ): Promise<void> {
1470
+ if (!hasRuntimeDb(runtime)) {
1471
+ console.warn(
1472
+ "[trajectory-persistence] installDatabaseTrajectoryLogger: no database adapter found on runtime",
1473
+ );
1474
+ return;
1475
+ }
1476
+
1477
+ const logger = await resolveTrajectoryLogger(runtime);
1478
+ if (!logger) {
1479
+ console.warn(
1480
+ "[trajectory-persistence] installDatabaseTrajectoryLogger: no logger found to patch",
1481
+ );
1482
+ return;
1483
+ }
1484
+ console.warn(
1485
+ "[trajectory-persistence] installDatabaseTrajectoryLogger: patched logger!",
1486
+ );
1487
+
1488
+ const loggerObject = logger as unknown as object;
1489
+ if (patchedLoggers.has(loggerObject)) return;
1490
+
1491
+ const shouldEnableByDefault = shouldEnableTrajectoryLoggingByDefault();
1492
+ const isEnabled =
1493
+ typeof logger.isEnabled === "function"
1494
+ ? logger.isEnabled()
1495
+ : shouldEnableByDefault;
1496
+ if (
1497
+ typeof logger.setEnabled === "function" &&
1498
+ isEnabled !== shouldEnableByDefault
1499
+ ) {
1500
+ try {
1501
+ logger.setEnabled(shouldEnableByDefault);
1502
+ } catch {
1503
+ // Ignore logger enable failures and continue.
1504
+ }
1505
+ }
1506
+
1507
+ if (Array.isArray(logger.llmCalls)) {
1508
+ logger.llmCalls.splice(0, logger.llmCalls.length);
1509
+ }
1510
+ if (Array.isArray(logger.providerAccess)) {
1511
+ logger.providerAccess.splice(0, logger.providerAccess.length);
1512
+ }
1513
+
1514
+ type VariadicLoggerCall = (...args: unknown[]) => unknown;
1515
+ const originalLogLlmCall =
1516
+ typeof logger.logLlmCall === "function"
1517
+ ? ((logger.logLlmCall as unknown as VariadicLoggerCall).bind(
1518
+ logger,
1519
+ ) as VariadicLoggerCall)
1520
+ : null;
1521
+ const originalLogProviderAccess =
1522
+ typeof logger.logProviderAccess === "function"
1523
+ ? ((logger.logProviderAccess as unknown as VariadicLoggerCall).bind(
1524
+ logger,
1525
+ ) as VariadicLoggerCall)
1526
+ : null;
1527
+
1528
+ logger.logLlmCall = ((...args: unknown[]) => {
1529
+ if (originalLogLlmCall) {
1530
+ try {
1531
+ originalLogLlmCall(...args);
1532
+ } catch (err) {
1533
+ warnRuntime(runtime, "Trajectory logger logLlmCall threw", err);
1534
+ }
1535
+ }
1536
+
1537
+ const normalized = normalizeLlmCallPayload(args);
1538
+ if (!normalized) return;
1539
+
1540
+ const writePromise = enqueueStepWrite(
1541
+ runtime,
1542
+ normalized.stepId,
1543
+ async () => {
1544
+ const tableReady = await ensureTrajectoriesTable(runtime);
1545
+ if (!tableReady) return;
1546
+ await appendLlmCall(runtime, normalized.stepId, normalized.params);
1547
+ },
1548
+ );
1549
+ const runtimeKey = runtime as unknown as object;
1550
+ lastWritePromises.set(runtimeKey, writePromise);
1551
+ }) as unknown as (params: Record<string, unknown>) => void;
1552
+
1553
+ logger.logProviderAccess = ((...args: unknown[]) => {
1554
+ if (originalLogProviderAccess) {
1555
+ try {
1556
+ originalLogProviderAccess(...args);
1557
+ } catch (err) {
1558
+ warnRuntime(runtime, "Trajectory logger logProviderAccess threw", err);
1559
+ }
1560
+ }
1561
+
1562
+ const normalized = normalizeProviderAccessPayload(args);
1563
+ if (!normalized) return;
1564
+
1565
+ const writePromise = enqueueStepWrite(
1566
+ runtime,
1567
+ normalized.stepId,
1568
+ async () => {
1569
+ const tableReady = await ensureTrajectoriesTable(runtime);
1570
+ if (!tableReady) return;
1571
+ await appendProviderAccess(
1572
+ runtime,
1573
+ normalized.stepId,
1574
+ normalized.params,
1575
+ );
1576
+ },
1577
+ );
1578
+ const runtimeKey = runtime as unknown as object;
1579
+ lastWritePromises.set(runtimeKey, writePromise);
1580
+ }) as unknown as (params: Record<string, unknown>) => void;
1581
+
1582
+ logger.getLlmCallLogs = () => [];
1583
+ logger.getProviderAccessLogs = () => [];
1584
+
1585
+ // Add startTrajectory, startStep, endTrajectory methods expected by plugin-trajectory-logger
1586
+ // and query methods for API endpoints
1587
+ const loggerAny = logger as unknown as {
1588
+ startTrajectory?: (
1589
+ stepIdOrAgentId: string,
1590
+ options?: {
1591
+ agentId?: string;
1592
+ roomId?: string;
1593
+ entityId?: string;
1594
+ source?: string;
1595
+ metadata?: Record<string, unknown>;
1596
+ },
1597
+ ) => Promise<string>;
1598
+ startStep?: (trajectoryId: string) => string;
1599
+ endTrajectory?: (
1600
+ stepIdOrTrajectoryId: string,
1601
+ status?: string,
1602
+ ) => Promise<void>;
1603
+ listTrajectories?: (
1604
+ options?: TrajectoryListOptions,
1605
+ ) => Promise<TrajectoryListResult>;
1606
+ getTrajectoryDetail?: (trajectoryId: string) => Promise<Trajectory | null>;
1607
+ getStats?: () => Promise<unknown>;
1608
+ };
1609
+
1610
+ loggerAny.startTrajectory = async (
1611
+ stepIdOrAgentId: string,
1612
+ options?: {
1613
+ agentId?: string;
1614
+ roomId?: string;
1615
+ entityId?: string;
1616
+ source?: string;
1617
+ metadata?: Record<string, unknown>;
1618
+ },
1619
+ ): Promise<string> => {
1620
+ const isLegacySignature = typeof options?.agentId === "string";
1621
+ const stepId = isLegacySignature
1622
+ ? stepIdOrAgentId
1623
+ : `step-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
1624
+
1625
+ const writePromise = enqueueStepWrite(runtime, stepId, async () => {
1626
+ const tableReady = await ensureTrajectoriesTable(runtime);
1627
+ if (!tableReady) return;
1628
+
1629
+ await startTrajectoryStepInDatabase({
1630
+ runtime,
1631
+ stepId,
1632
+ source: options?.source ?? "chat",
1633
+ metadata: options?.metadata,
1634
+ });
1635
+ });
1636
+
1637
+ const runtimeKey = runtime as unknown as object;
1638
+ lastWritePromises.set(runtimeKey, writePromise);
1639
+
1640
+ return stepId;
1641
+ };
1642
+
1643
+ loggerAny.startStep = (_trajectoryId: string): string => {
1644
+ return `step-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
1645
+ };
1646
+
1647
+ loggerAny.endTrajectory = async (
1648
+ stepIdOrTrajectoryId: string,
1649
+ status = "completed",
1650
+ ): Promise<void> => {
1651
+ const writePromise = enqueueStepWrite(
1652
+ runtime,
1653
+ stepIdOrTrajectoryId,
1654
+ async () => {
1655
+ const tableReady = await ensureTrajectoriesTable(runtime);
1656
+ if (!tableReady) return;
1657
+
1658
+ await completeTrajectoryStepInDatabase({
1659
+ runtime,
1660
+ stepId: stepIdOrTrajectoryId,
1661
+ status: status as TrajectoryStatus,
1662
+ });
1663
+ },
1664
+ );
1665
+
1666
+ const runtimeKey = runtime as unknown as object;
1667
+ lastWritePromises.set(runtimeKey, writePromise);
1668
+ };
1669
+
1670
+ // Add query methods for API endpoints
1671
+ loggerAny.listTrajectories = async (
1672
+ options: TrajectoryListOptions = {},
1673
+ ): Promise<TrajectoryListResult> => {
1674
+ if (!hasRuntimeDb(runtime)) {
1675
+ return { trajectories: [], total: 0, offset: 0, limit: 50 };
1676
+ }
1677
+
1678
+ const tableReady = await ensureTrajectoriesTable(runtime);
1679
+ if (!tableReady) {
1680
+ return { trajectories: [], total: 0, offset: 0, limit: 50 };
1681
+ }
1682
+
1683
+ const limit = Math.min(500, Math.max(1, options.limit ?? 50));
1684
+ const offset = Math.max(0, options.offset ?? 0);
1685
+
1686
+ const whereClauses: string[] = [];
1687
+ if (options.source) {
1688
+ whereClauses.push(`source = ${sqlQuote(options.source)}`);
1689
+ }
1690
+ if (options.status) {
1691
+ whereClauses.push(`status = ${sqlQuote(options.status)}`);
1692
+ }
1693
+ if (options.startDate) {
1694
+ const startTime = new Date(options.startDate).getTime();
1695
+ if (Number.isFinite(startTime)) {
1696
+ whereClauses.push(`start_time >= ${startTime}`);
1697
+ }
1698
+ }
1699
+ if (options.endDate) {
1700
+ const endTime = new Date(options.endDate).getTime();
1701
+ if (Number.isFinite(endTime)) {
1702
+ whereClauses.push(`start_time <= ${endTime}`);
1703
+ }
1704
+ }
1705
+ if (options.search) {
1706
+ const searchPattern = `%${options.search.replace(/[%_]/g, "\\$&")}%`;
1707
+ whereClauses.push(`id LIKE ${sqlQuote(searchPattern)}`);
1708
+ }
1709
+
1710
+ const whereClause =
1711
+ whereClauses.length > 0 ? `WHERE ${whereClauses.join(" AND ")}` : "";
1712
+
1713
+ try {
1714
+ const countResult = await executeRawSql(
1715
+ runtime,
1716
+ `SELECT count(*) AS total FROM trajectories ${whereClause}`,
1717
+ );
1718
+ const countRow = asRecord(extractRows(countResult)[0]);
1719
+ const total = toNumber(countRow?.total, 0);
1720
+
1721
+ const result = await executeRawSql(
1722
+ runtime,
1723
+ `SELECT * FROM trajectories ${whereClause} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${offset}`,
1724
+ );
1725
+
1726
+ const rows = extractRows(result);
1727
+ const trajectories: TrajectoryListItem[] = rows
1728
+ .map((row) => {
1729
+ const r = asRecord(row);
1730
+ if (!r) return null;
1731
+ return {
1732
+ id: toText(r.id ?? r.trajectory_id, ""),
1733
+ agentId: toText(r.agent_id, runtime.agentId),
1734
+ source: toText(r.source, "runtime"),
1735
+ status: normalizeStatus(r.status, "completed"),
1736
+ startTime: toNumber(r.start_time, Date.now()),
1737
+ endTime: toOptionalNumber(r.end_time) ?? null,
1738
+ durationMs: toOptionalNumber(r.duration_ms) ?? null,
1739
+ stepCount: toNumber(r.step_count, 0),
1740
+ llmCallCount: toNumber(r.llm_call_count, 0),
1741
+ providerAccessCount: toNumber(r.provider_access_count, 0),
1742
+ totalPromptTokens: toNumber(r.total_prompt_tokens, 0),
1743
+ totalCompletionTokens: toNumber(r.total_completion_tokens, 0),
1744
+ createdAt: toText(
1745
+ r.created_at,
1746
+ new Date(toNumber(r.start_time, Date.now())).toISOString(),
1747
+ ),
1748
+ metadata: parseMetadata(r.metadata),
1749
+ };
1750
+ })
1751
+ .filter(Boolean) as TrajectoryListItem[];
1752
+
1753
+ return { trajectories, total, offset, limit };
1754
+ } catch (err) {
1755
+ console.error("[trajectory-persistence] listTrajectories error:", err);
1756
+ return { trajectories: [], total: 0, offset, limit };
1757
+ }
1758
+ };
1759
+
1760
+ loggerAny.getTrajectoryDetail = async (
1761
+ trajectoryId: string,
1762
+ ): Promise<Trajectory | null> => {
1763
+ if (!hasRuntimeDb(runtime)) return null;
1764
+
1765
+ const tableReady = await ensureTrajectoriesTable(runtime);
1766
+ if (!tableReady) return null;
1767
+
1768
+ const persisted = await loadTrajectoryById(runtime, trajectoryId);
1769
+ if (!persisted) return null;
1770
+
1771
+ return {
1772
+ trajectoryId: persisted.id,
1773
+ agentId: runtime.agentId,
1774
+ startTime: persisted.startTime,
1775
+ endTime: persisted.endTime ?? undefined,
1776
+ durationMs: persisted.endTime
1777
+ ? persisted.endTime - persisted.startTime
1778
+ : undefined,
1779
+ steps: persisted.steps.map((step) => ({
1780
+ stepId: step.stepId,
1781
+ timestamp: step.timestamp,
1782
+ llmCalls: step.llmCalls,
1783
+ providerAccesses: step.providerAccesses,
1784
+ })),
1785
+ metrics: { finalStatus: persisted.status },
1786
+ metadata: persisted.metadata,
1787
+ stepsJson: JSON.stringify(persisted.steps),
1788
+ };
1789
+ };
1790
+
1791
+ loggerAny.getStats = async (): Promise<unknown> => {
1792
+ if (!hasRuntimeDb(runtime)) {
1793
+ return { total: 0, byStatus: {}, bySource: {} };
1794
+ }
1795
+
1796
+ const tableReady = await ensureTrajectoriesTable(runtime);
1797
+ if (!tableReady) {
1798
+ return { total: 0, byStatus: {}, bySource: {} };
1799
+ }
1800
+
1801
+ try {
1802
+ const countResult = await executeRawSql(
1803
+ runtime,
1804
+ "SELECT count(*) AS total FROM trajectories",
1805
+ );
1806
+ const countRow = asRecord(extractRows(countResult)[0]);
1807
+ const total = toNumber(countRow?.total, 0);
1808
+
1809
+ const bySource = await computeBySource(runtime);
1810
+
1811
+ return {
1812
+ total,
1813
+ enabled: true,
1814
+ byStatus: {},
1815
+ bySource,
1816
+ };
1817
+ } catch {
1818
+ return { total: 0, byStatus: {}, bySource: {} };
1819
+ }
1820
+ };
1821
+
1822
+ patchedLoggers.add(loggerObject);
1823
+
1824
+ void ensureTrajectoriesTable(runtime);
1825
+ }
1826
+
1827
+ export async function startTrajectoryStepInDatabase({
1828
+ runtime,
1829
+ stepId,
1830
+ source,
1831
+ metadata,
1832
+ }: StartStepOptions): Promise<boolean> {
1833
+ if (!hasRuntimeDb(runtime)) return false;
1834
+ const normalizedStepId = normalizeStepId(stepId);
1835
+ if (!normalizedStepId) return false;
1836
+
1837
+ const tableReady = await ensureTrajectoriesTable(runtime);
1838
+ if (!tableReady) return false;
1839
+
1840
+ await enqueueStepWrite(runtime, normalizedStepId, async () => {
1841
+ const now = Date.now();
1842
+ const trajectory =
1843
+ (await loadTrajectoryById(runtime, normalizedStepId)) ??
1844
+ createBaseTrajectory(normalizedStepId, now, source, metadata);
1845
+
1846
+ trajectory.source = source?.trim() || trajectory.source || "runtime";
1847
+ trajectory.status = "active";
1848
+ trajectory.metadata = mergeMetadata(trajectory.metadata, metadata);
1849
+ trajectory.startTime = Math.min(trajectory.startTime, now);
1850
+ trajectory.endTime = null;
1851
+ ensureStep(trajectory, normalizedStepId, now);
1852
+ trajectory.updatedAt = new Date(now).toISOString();
1853
+
1854
+ await saveTrajectory(runtime, trajectory);
1855
+ });
1856
+
1857
+ return true;
1858
+ }
1859
+
1860
+ export async function completeTrajectoryStepInDatabase({
1861
+ runtime,
1862
+ stepId,
1863
+ status = "completed",
1864
+ source,
1865
+ metadata,
1866
+ }: CompleteStepOptions): Promise<boolean> {
1867
+ if (!hasRuntimeDb(runtime)) return false;
1868
+ const normalizedStepId = normalizeStepId(stepId);
1869
+ if (!normalizedStepId) return false;
1870
+
1871
+ const tableReady = await ensureTrajectoriesTable(runtime);
1872
+ if (!tableReady) return false;
1873
+
1874
+ await enqueueStepWrite(runtime, normalizedStepId, async () => {
1875
+ const now = Date.now();
1876
+ const trajectory =
1877
+ (await loadTrajectoryById(runtime, normalizedStepId)) ??
1878
+ createBaseTrajectory(normalizedStepId, now, source, metadata);
1879
+
1880
+ trajectory.source = source?.trim() || trajectory.source || "runtime";
1881
+ trajectory.status = normalizeStatus(status, "completed");
1882
+ trajectory.metadata = mergeMetadata(trajectory.metadata, metadata);
1883
+ trajectory.endTime = Math.max(trajectory.endTime ?? now, now);
1884
+ trajectory.startTime = Math.min(trajectory.startTime, now);
1885
+ ensureStep(trajectory, normalizedStepId, now);
1886
+ trajectory.updatedAt = new Date(now).toISOString();
1887
+
1888
+ await saveTrajectory(runtime, trajectory);
1889
+ });
1890
+
1891
+ return true;
1892
+ }
1893
+
1894
+ export async function loadPersistedTrajectoryRows(
1895
+ runtime: IAgentRuntime,
1896
+ maxRows = 5000,
1897
+ ): Promise<Record<string, unknown>[] | null> {
1898
+ if (!hasRuntimeDb(runtime)) return null;
1899
+ const tableReady = await ensureTrajectoriesTable(runtime);
1900
+ if (!tableReady) return [];
1901
+
1902
+ const safeLimit = Math.max(1, Math.min(10000, Math.trunc(maxRows)));
1903
+ try {
1904
+ const result = await executeRawSql(
1905
+ runtime,
1906
+ `SELECT * FROM trajectories ORDER BY created_at DESC LIMIT ${safeLimit}`,
1907
+ );
1908
+ const rows = extractRows(result);
1909
+ return rows
1910
+ .map((row) => asRecord(row))
1911
+ .filter((row): row is Record<string, unknown> => Boolean(row));
1912
+ } catch {
1913
+ return null;
1914
+ }
1915
+ }
1916
+
1917
+ export async function deletePersistedTrajectoryRows(
1918
+ runtime: IAgentRuntime,
1919
+ trajectoryIds: string[],
1920
+ ): Promise<number | null> {
1921
+ if (!hasRuntimeDb(runtime)) return null;
1922
+ const tableReady = await ensureTrajectoriesTable(runtime);
1923
+ if (!tableReady) return 0;
1924
+
1925
+ const normalized = trajectoryIds
1926
+ .map((id) => id.trim())
1927
+ .filter((id) => id.length > 0);
1928
+ if (normalized.length === 0) return 0;
1929
+
1930
+ const values = normalized.map((id) => sqlQuote(id)).join(", ");
1931
+ try {
1932
+ const result = await executeRawSql(
1933
+ runtime,
1934
+ `DELETE FROM trajectories WHERE id IN (${values}) RETURNING id`,
1935
+ );
1936
+ return extractRows(result).length;
1937
+ } catch {
1938
+ try {
1939
+ await executeRawSql(
1940
+ runtime,
1941
+ `DELETE FROM trajectories WHERE id IN (${values})`,
1942
+ );
1943
+ return normalized.length;
1944
+ } catch {
1945
+ return null;
1946
+ }
1947
+ }
1948
+ }
1949
+
1950
+ export async function clearPersistedTrajectoryRows(
1951
+ runtime: IAgentRuntime,
1952
+ ): Promise<number | null> {
1953
+ if (!hasRuntimeDb(runtime)) return null;
1954
+ const tableReady = await ensureTrajectoriesTable(runtime);
1955
+ if (!tableReady) return 0;
1956
+
1957
+ try {
1958
+ const countResult = await executeRawSql(
1959
+ runtime,
1960
+ "SELECT count(*) AS total FROM trajectories",
1961
+ );
1962
+ const countRow = asRecord(extractRows(countResult)[0]);
1963
+ const total = toNumber(countRow?.total, 0);
1964
+ await executeRawSql(runtime, "DELETE FROM trajectories");
1965
+ return total;
1966
+ } catch {
1967
+ return null;
1968
+ }
1969
+ }
1970
+
1971
+ function toArchiveSafeTimestamp(isoTimestamp: string): string {
1972
+ return isoTimestamp.replace(/[:.]/g, "-");
1973
+ }
1974
+
1975
+ function stringifyArchiveRow(row: Record<string, unknown>): string {
1976
+ return JSON.stringify(row, (_key, value) =>
1977
+ typeof value === "bigint" ? value.toString() : value,
1978
+ );
1979
+ }
1980
+
1981
+ async function writeCompressedJsonlRows(
1982
+ archivePath: string,
1983
+ rows: Record<string, unknown>[],
1984
+ ): Promise<void> {
1985
+ const gzipStream = createGzip({ level: 9 });
1986
+ const outStream = createWriteStream(archivePath);
1987
+ gzipStream.pipe(outStream);
1988
+
1989
+ for (const row of rows) {
1990
+ if (!gzipStream.write(`${stringifyArchiveRow(row)}\n`, "utf8")) {
1991
+ await once(gzipStream, "drain");
1992
+ }
1993
+ }
1994
+
1995
+ gzipStream.end();
1996
+ await once(outStream, "finish");
1997
+ }
1998
+
1999
+ async function exportRawTrajectoriesToCompressedArchive(
2000
+ runtime: IAgentRuntime,
2001
+ cutoff: string,
2002
+ archivedAt: string,
2003
+ ): Promise<{ archivePath: string; rowCount: number }> {
2004
+ const rawRowsResult = await executeRawSql(
2005
+ runtime,
2006
+ `SELECT
2007
+ id, trajectory_id, agent_id, source, status, start_time, end_time,
2008
+ duration_ms, step_count, llm_call_count, provider_access_count,
2009
+ total_prompt_tokens, total_completion_tokens, total_reward, steps_json,
2010
+ metadata, created_at, updated_at, episode_length, ai_judge_reward,
2011
+ ai_judge_reasoning, archetype
2012
+ FROM trajectories
2013
+ WHERE created_at < ${sqlQuote(cutoff)}`,
2014
+ );
2015
+ const rawRows = extractRows(rawRowsResult)
2016
+ .map((row) => asRecord(row))
2017
+ .filter(Boolean) as Record<string, unknown>[];
2018
+
2019
+ if (rawRows.length === 0) {
2020
+ return { archivePath: "", rowCount: 0 };
2021
+ }
2022
+
2023
+ const archiveDir = await resolveTrajectoryArchiveDirectory();
2024
+ const archiveName = `trajectories-before-${toArchiveSafeTimestamp(cutoff)}-archived-${toArchiveSafeTimestamp(archivedAt)}.jsonl.gz`;
2025
+ const archivePath = path.join(archiveDir, archiveName);
2026
+ await writeCompressedJsonlRows(archivePath, rawRows);
2027
+
2028
+ return { archivePath, rowCount: rawRows.length };
2029
+ }
2030
+
2031
+ /**
2032
+ * Archive and then delete trajectories older than `maxAgeDays`.
2033
+ * Summary rows (without steps_json) are copied to `trajectory_archive`
2034
+ * before the heavy raw data is removed. Returns the number of rows
2035
+ * pruned, or null if the DB is unavailable.
2036
+ */
2037
+ export async function pruneOldTrajectories(
2038
+ runtime: IAgentRuntime,
2039
+ maxAgeDays = 30,
2040
+ ): Promise<number | null> {
2041
+ if (!hasRuntimeDb(runtime)) return null;
2042
+ const tableReady = await ensureTrajectoriesTable(runtime);
2043
+ if (!tableReady) return 0;
2044
+
2045
+ const cutoff = new Date(
2046
+ Date.now() - maxAgeDays * 24 * 60 * 60 * 1000,
2047
+ ).toISOString();
2048
+ const archivedAt = new Date().toISOString();
2049
+
2050
+ try {
2051
+ // Step 1: Persist full training rows to compressed local archive.
2052
+ // If this fails, abort pruning to avoid data loss.
2053
+ let archivePath = "";
2054
+ try {
2055
+ const archived = await exportRawTrajectoriesToCompressedArchive(
2056
+ runtime,
2057
+ cutoff,
2058
+ archivedAt,
2059
+ );
2060
+ archivePath = archived.archivePath;
2061
+ if (archived.rowCount > 0 && !archivePath) {
2062
+ return 0;
2063
+ }
2064
+ } catch (err) {
2065
+ console.warn(
2066
+ "[trajectory-persistence] Could not write compressed trajectory archive, skipping prune",
2067
+ err,
2068
+ );
2069
+ return null;
2070
+ }
2071
+
2072
+ // Step 2: Copy summary rows to archive table (idempotent).
2073
+ // This must succeed before deletion to preserve the summary index contract.
2074
+ let summaryArchived = false;
2075
+ try {
2076
+ await executeRawSql(
2077
+ runtime,
2078
+ `INSERT OR IGNORE INTO trajectory_archive (
2079
+ id, agent_id, source, status, start_time, end_time, duration_ms,
2080
+ step_count, llm_call_count, provider_access_count,
2081
+ total_prompt_tokens, total_completion_tokens, total_reward,
2082
+ metadata, observations, archive_blob_path, created_at, updated_at, archived_at
2083
+ )
2084
+ SELECT
2085
+ id, agent_id, source, status, start_time, end_time, duration_ms,
2086
+ step_count, llm_call_count, provider_access_count,
2087
+ total_prompt_tokens, total_completion_tokens, total_reward,
2088
+ metadata,
2089
+ COALESCE(json_extract(metadata, '$.observations'), '[]'),
2090
+ ${sqlQuote(archivePath)},
2091
+ created_at, updated_at,
2092
+ ${sqlQuote(archivedAt)}
2093
+ FROM trajectories
2094
+ WHERE created_at < ${sqlQuote(cutoff)}`,
2095
+ );
2096
+ summaryArchived = true;
2097
+ } catch {
2098
+ // PostgreSQL uses ON CONFLICT DO NOTHING instead of INSERT OR IGNORE
2099
+ try {
2100
+ await executeRawSql(
2101
+ runtime,
2102
+ `INSERT INTO trajectory_archive (
2103
+ id, agent_id, source, status, start_time, end_time, duration_ms,
2104
+ step_count, llm_call_count, provider_access_count,
2105
+ total_prompt_tokens, total_completion_tokens, total_reward,
2106
+ metadata, observations, archive_blob_path, created_at, updated_at, archived_at
2107
+ )
2108
+ SELECT
2109
+ id, agent_id, source, status, start_time, end_time, duration_ms,
2110
+ step_count, llm_call_count, provider_access_count,
2111
+ total_prompt_tokens, total_completion_tokens, total_reward,
2112
+ metadata,
2113
+ COALESCE(metadata::json->>'observations', '[]'),
2114
+ ${sqlQuote(archivePath)},
2115
+ created_at, updated_at,
2116
+ ${sqlQuote(archivedAt)}
2117
+ FROM trajectories
2118
+ WHERE created_at < ${sqlQuote(cutoff)}
2119
+ ON CONFLICT (id) DO NOTHING`,
2120
+ );
2121
+ summaryArchived = true;
2122
+ } catch {
2123
+ console.warn(
2124
+ "[trajectory-persistence] Could not write summary trajectory archive rows",
2125
+ );
2126
+ }
2127
+ }
2128
+
2129
+ if (!summaryArchived) {
2130
+ console.warn(
2131
+ "[trajectory-persistence] Summary archive insert failed, skipping prune delete",
2132
+ );
2133
+ return null;
2134
+ }
2135
+
2136
+ // Step 3: Delete the archived rows from the main table.
2137
+ const countResult = await executeRawSql(
2138
+ runtime,
2139
+ `SELECT count(*) AS total FROM trajectories WHERE created_at < ${sqlQuote(cutoff)}`,
2140
+ );
2141
+ const countRow = asRecord(extractRows(countResult)[0]);
2142
+ const count = toNumber(countRow?.total, 0);
2143
+ if (count > 0) {
2144
+ await executeRawSql(
2145
+ runtime,
2146
+ `DELETE FROM trajectories WHERE created_at < ${sqlQuote(cutoff)}`,
2147
+ );
2148
+ }
2149
+ return count;
2150
+ } catch {
2151
+ return null;
2152
+ }
2153
+ }
2154
+
2155
+ /**
2156
+ * Wait for all pending trajectory writes to complete.
2157
+ * Useful for tests to ensure writes are flushed before assertions.
2158
+ */
2159
+ export async function flushTrajectoryWrites(
2160
+ runtime: IAgentRuntime,
2161
+ ): Promise<void> {
2162
+ const runtimeKey = runtime as unknown as object;
2163
+ const perStep = stepWriteQueues.get(runtimeKey);
2164
+ if (perStep) {
2165
+ const pending = Array.from(perStep.values());
2166
+ if (pending.length > 0) {
2167
+ await Promise.all(pending);
2168
+ }
2169
+ }
2170
+ const lastWrite = lastWritePromises.get(runtimeKey);
2171
+ if (lastWrite) {
2172
+ await lastWrite;
2173
+ }
2174
+ }
2175
+
2176
+ // ============================================================================
2177
+ // DatabaseTrajectoryLogger - Full implementation for trajectory-routes.ts
2178
+ // ============================================================================
2179
+
2180
+ /**
2181
+ * Database-backed trajectory logger service that implements the full API
2182
+ * expected by trajectory-routes.ts. This service reads from and writes to
2183
+ * the database for trajectory persistence.
2184
+ */
2185
+ export class DatabaseTrajectoryLogger extends Service {
2186
+ static serviceType = "trajectory_logger";
2187
+ capabilityDescription =
2188
+ "Database-backed trajectory logging service for LLM call persistence";
2189
+
2190
+ private enabled = shouldEnableTrajectoryLoggingByDefault();
2191
+
2192
+ /**
2193
+ * Static start method required by @elizaos/core runtime.
2194
+ */
2195
+ static async start(runtime: IAgentRuntime): Promise<Service> {
2196
+ const service = new DatabaseTrajectoryLogger(runtime);
2197
+ await service.initialize();
2198
+ return service;
2199
+ }
2200
+
2201
+ async initialize(): Promise<void> {
2202
+ if (hasRuntimeDb(this.runtime)) {
2203
+ await ensureTrajectoriesTable(this.runtime);
2204
+ // Fire-and-forget TTL pruning on startup
2205
+ pruneOldTrajectories(this.runtime, 30)
2206
+ .then((count) => {
2207
+ if (count && count > 0) {
2208
+ console.warn(
2209
+ `[trajectory-persistence] Pruned ${count} trajectories older than 30 days`,
2210
+ );
2211
+ }
2212
+ })
2213
+ .catch(() => {
2214
+ /* non-critical */
2215
+ });
2216
+ }
2217
+ }
2218
+
2219
+ async stop(): Promise<void> {
2220
+ await flushTrajectoryWrites(this.runtime);
2221
+ }
2222
+
2223
+ isEnabled(): boolean {
2224
+ return this.enabled;
2225
+ }
2226
+
2227
+ setEnabled(enabled: boolean): void {
2228
+ this.enabled = enabled;
2229
+ }
2230
+
2231
+ /**
2232
+ * Start a new trajectory for tracking LLM interactions.
2233
+ * Supports both legacy (stepId, {agentId}) and new (agentId, options) signatures.
2234
+ */
2235
+ async startTrajectory(
2236
+ stepIdOrAgentId: string,
2237
+ options?: {
2238
+ agentId?: string;
2239
+ roomId?: string;
2240
+ entityId?: string;
2241
+ source?: string;
2242
+ metadata?: Record<string, unknown>;
2243
+ },
2244
+ ): Promise<string> {
2245
+ if (!this.enabled) return stepIdOrAgentId;
2246
+
2247
+ const isLegacySignature = typeof options?.agentId === "string";
2248
+ const stepId = isLegacySignature
2249
+ ? stepIdOrAgentId
2250
+ : `step-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
2251
+
2252
+ // Initialize trajectory in database
2253
+ const writePromise = enqueueStepWrite(this.runtime, stepId, async () => {
2254
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2255
+ if (!tableReady) return;
2256
+
2257
+ await startTrajectoryStepInDatabase({
2258
+ runtime: this.runtime,
2259
+ stepId,
2260
+ source: options?.source ?? "chat",
2261
+ metadata: options?.metadata,
2262
+ });
2263
+ });
2264
+
2265
+ const runtimeKey = this.runtime as unknown as object;
2266
+ lastWritePromises.set(runtimeKey, writePromise);
2267
+
2268
+ return stepId;
2269
+ }
2270
+
2271
+ /**
2272
+ * Start a new step within an existing trajectory.
2273
+ */
2274
+ startStep(_trajectoryId: string): string {
2275
+ const stepId = `step-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
2276
+ // For database logger, steps are independent - we just return the new stepId
2277
+ return stepId;
2278
+ }
2279
+
2280
+ /**
2281
+ * End a trajectory and mark it with the given status.
2282
+ */
2283
+ async endTrajectory(
2284
+ stepIdOrTrajectoryId: string,
2285
+ status: TrajectoryStatus = "completed",
2286
+ ): Promise<void> {
2287
+ if (!this.enabled) return;
2288
+
2289
+ const writePromise = enqueueStepWrite(
2290
+ this.runtime,
2291
+ stepIdOrTrajectoryId,
2292
+ async () => {
2293
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2294
+ if (!tableReady) return;
2295
+
2296
+ await completeTrajectoryStepInDatabase({
2297
+ runtime: this.runtime,
2298
+ stepId: stepIdOrTrajectoryId,
2299
+ status,
2300
+ });
2301
+ },
2302
+ );
2303
+
2304
+ const runtimeKey = this.runtime as unknown as object;
2305
+ lastWritePromises.set(runtimeKey, writePromise);
2306
+ }
2307
+
2308
+ logLlmCall(params: Record<string, unknown>): void {
2309
+ if (!this.enabled) return;
2310
+ const normalized = normalizeLlmCallPayload([params]);
2311
+ if (!normalized) return;
2312
+
2313
+ const writePromise = enqueueStepWrite(
2314
+ this.runtime,
2315
+ normalized.stepId,
2316
+ async () => {
2317
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2318
+ if (!tableReady) return;
2319
+ await appendLlmCall(this.runtime, normalized.stepId, normalized.params);
2320
+ },
2321
+ );
2322
+ const runtimeKey = this.runtime as unknown as object;
2323
+ lastWritePromises.set(runtimeKey, writePromise);
2324
+ }
2325
+
2326
+ logProviderAccess(params: Record<string, unknown>): void {
2327
+ if (!this.enabled) return;
2328
+ const normalized = normalizeProviderAccessPayload([params]);
2329
+ if (!normalized) return;
2330
+
2331
+ const writePromise = enqueueStepWrite(
2332
+ this.runtime,
2333
+ normalized.stepId,
2334
+ async () => {
2335
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2336
+ if (!tableReady) return;
2337
+ await appendProviderAccess(
2338
+ this.runtime,
2339
+ normalized.stepId,
2340
+ normalized.params,
2341
+ );
2342
+ },
2343
+ );
2344
+ const runtimeKey = this.runtime as unknown as object;
2345
+ lastWritePromises.set(runtimeKey, writePromise);
2346
+ }
2347
+
2348
+ getLlmCallLogs(): readonly unknown[] {
2349
+ return [];
2350
+ }
2351
+
2352
+ getProviderAccessLogs(): readonly unknown[] {
2353
+ return [];
2354
+ }
2355
+
2356
+ async listTrajectories(
2357
+ options: TrajectoryListOptions,
2358
+ ): Promise<TrajectoryListResult> {
2359
+ if (!hasRuntimeDb(this.runtime)) {
2360
+ return { trajectories: [], total: 0, offset: 0, limit: 50 };
2361
+ }
2362
+
2363
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2364
+ if (!tableReady) {
2365
+ return { trajectories: [], total: 0, offset: 0, limit: 50 };
2366
+ }
2367
+
2368
+ const limit = Math.min(500, Math.max(1, options.limit ?? 50));
2369
+ const offset = Math.max(0, options.offset ?? 0);
2370
+
2371
+ // Build WHERE clause
2372
+ const whereClauses: string[] = [];
2373
+ if (options.source) {
2374
+ whereClauses.push(`source = ${sqlQuote(options.source)}`);
2375
+ }
2376
+ if (options.status) {
2377
+ whereClauses.push(`status = ${sqlQuote(options.status)}`);
2378
+ }
2379
+ if (options.startDate) {
2380
+ const startTime = new Date(options.startDate).getTime();
2381
+ if (Number.isFinite(startTime)) {
2382
+ whereClauses.push(`start_time >= ${startTime}`);
2383
+ }
2384
+ }
2385
+ if (options.endDate) {
2386
+ const endTime = new Date(options.endDate).getTime();
2387
+ if (Number.isFinite(endTime)) {
2388
+ whereClauses.push(`start_time <= ${endTime}`);
2389
+ }
2390
+ }
2391
+ if (options.search) {
2392
+ const searchPattern = `%${options.search.replace(/[%_]/g, "\\$&")}%`;
2393
+ whereClauses.push(`id LIKE ${sqlQuote(searchPattern)}`);
2394
+ }
2395
+
2396
+ const whereClause =
2397
+ whereClauses.length > 0 ? `WHERE ${whereClauses.join(" AND ")}` : "";
2398
+
2399
+ try {
2400
+ // Get total count
2401
+ const countResult = await executeRawSql(
2402
+ this.runtime,
2403
+ `SELECT count(*) AS total FROM trajectories ${whereClause}`,
2404
+ );
2405
+ const countRow = asRecord(extractRows(countResult)[0]);
2406
+ const total = toNumber(countRow?.total, 0);
2407
+
2408
+ // Get rows
2409
+ const result = await executeRawSql(
2410
+ this.runtime,
2411
+ `SELECT * FROM trajectories ${whereClause} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${offset}`,
2412
+ );
2413
+
2414
+ const rows = extractRows(result);
2415
+ const trajectories: TrajectoryListItem[] = rows
2416
+ .map((row) => {
2417
+ const r = asRecord(row);
2418
+ if (!r) return null;
2419
+ return {
2420
+ id: toText(r.id ?? r.trajectory_id, ""),
2421
+ agentId: toText(r.agent_id, this.runtime.agentId),
2422
+ source: toText(r.source, "runtime"),
2423
+ status: normalizeStatus(r.status, "completed"),
2424
+ startTime: toNumber(r.start_time, Date.now()),
2425
+ endTime: toOptionalNumber(r.end_time) ?? null,
2426
+ durationMs: toOptionalNumber(r.duration_ms) ?? null,
2427
+ stepCount: toNumber(r.step_count, 0),
2428
+ llmCallCount: toNumber(r.llm_call_count, 0),
2429
+ providerAccessCount: toNumber(r.provider_access_count, 0),
2430
+ totalPromptTokens: toNumber(r.total_prompt_tokens, 0),
2431
+ totalCompletionTokens: toNumber(r.total_completion_tokens, 0),
2432
+ createdAt: toText(
2433
+ r.created_at,
2434
+ new Date(toNumber(r.start_time, Date.now())).toISOString(),
2435
+ ),
2436
+ metadata: parseMetadata(r.metadata),
2437
+ };
2438
+ })
2439
+ .filter(Boolean) as TrajectoryListItem[];
2440
+
2441
+ return { trajectories, total, offset, limit };
2442
+ } catch (err) {
2443
+ console.error("[DatabaseTrajectoryLogger] listTrajectories error:", err);
2444
+ return { trajectories: [], total: 0, offset, limit };
2445
+ }
2446
+ }
2447
+
2448
+ async getTrajectoryDetail(trajectoryId: string): Promise<Trajectory | null> {
2449
+ if (!hasRuntimeDb(this.runtime)) return null;
2450
+
2451
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2452
+ if (!tableReady) return null;
2453
+
2454
+ const persisted = await loadTrajectoryById(this.runtime, trajectoryId);
2455
+ if (!persisted) return null;
2456
+
2457
+ return {
2458
+ trajectoryId: persisted.id,
2459
+ agentId: this.runtime.agentId,
2460
+ startTime: persisted.startTime,
2461
+ endTime: persisted.endTime ?? undefined,
2462
+ durationMs: persisted.endTime
2463
+ ? persisted.endTime - persisted.startTime
2464
+ : undefined,
2465
+ steps: persisted.steps.map((step) => ({
2466
+ stepId: step.stepId,
2467
+ timestamp: step.timestamp,
2468
+ llmCalls: step.llmCalls,
2469
+ providerAccesses: step.providerAccesses,
2470
+ })),
2471
+ metrics: { finalStatus: persisted.status },
2472
+ metadata: persisted.metadata,
2473
+ stepsJson: JSON.stringify(persisted.steps),
2474
+ };
2475
+ }
2476
+
2477
+ async getStats(): Promise<unknown> {
2478
+ if (!hasRuntimeDb(this.runtime)) {
2479
+ return { total: 0, byStatus: {}, bySource: {} };
2480
+ }
2481
+
2482
+ const tableReady = await ensureTrajectoriesTable(this.runtime);
2483
+ if (!tableReady) {
2484
+ return { total: 0, byStatus: {}, bySource: {} };
2485
+ }
2486
+
2487
+ try {
2488
+ const countResult = await executeRawSql(
2489
+ this.runtime,
2490
+ "SELECT count(*) AS total FROM trajectories",
2491
+ );
2492
+ const countRow = asRecord(extractRows(countResult)[0]);
2493
+ const total = toNumber(countRow?.total, 0);
2494
+
2495
+ const bySource = await computeBySource(this.runtime);
2496
+
2497
+ return {
2498
+ total,
2499
+ enabled: this.enabled,
2500
+ byStatus: {},
2501
+ bySource,
2502
+ };
2503
+ } catch {
2504
+ return { total: 0, byStatus: {}, bySource: {} };
2505
+ }
2506
+ }
2507
+
2508
+ async deleteTrajectories(trajectoryIds: string[]): Promise<number> {
2509
+ const result = await deletePersistedTrajectoryRows(
2510
+ this.runtime,
2511
+ trajectoryIds,
2512
+ );
2513
+ return result ?? 0;
2514
+ }
2515
+
2516
+ async clearAllTrajectories(): Promise<number> {
2517
+ const result = await clearPersistedTrajectoryRows(this.runtime);
2518
+ return result ?? 0;
2519
+ }
2520
+
2521
+ async exportTrajectories(
2522
+ options: TrajectoryExportOptions,
2523
+ ): Promise<TrajectoryExportResult> {
2524
+ const listResult = await this.listTrajectories({
2525
+ limit: 10000,
2526
+ startDate: options.startDate,
2527
+ endDate: options.endDate,
2528
+ });
2529
+
2530
+ let ids = listResult.trajectories.map((t) => t.id);
2531
+ if (options.trajectoryIds && options.trajectoryIds.length > 0) {
2532
+ const idSet = new Set(options.trajectoryIds);
2533
+ ids = ids.filter((id) => idSet.has(id));
2534
+ }
2535
+
2536
+ const trajectories: Trajectory[] = [];
2537
+ for (const id of ids) {
2538
+ const detail = await this.getTrajectoryDetail(id);
2539
+ if (detail) trajectories.push(detail);
2540
+ }
2541
+
2542
+ if (options.format === "json") {
2543
+ return {
2544
+ filename: `trajectories-${Date.now()}.json`,
2545
+ data: JSON.stringify(trajectories, null, 2),
2546
+ mimeType: "application/json",
2547
+ };
2548
+ }
2549
+
2550
+ if (options.format === "csv") {
2551
+ const rows = [
2552
+ "id,agentId,startTime,endTime,status,llmCallCount,promptTokens,completionTokens",
2553
+ ];
2554
+ for (const t of trajectories) {
2555
+ const llmCount = t.steps?.reduce(
2556
+ (sum, s) => sum + (s.llmCalls?.length ?? 0),
2557
+ 0,
2558
+ );
2559
+ const promptTokens = t.steps?.reduce(
2560
+ (sum, s) =>
2561
+ sum +
2562
+ (s.llmCalls?.reduce((s2, c) => s2 + (c.promptTokens ?? 0), 0) ?? 0),
2563
+ 0,
2564
+ );
2565
+ const completionTokens = t.steps?.reduce(
2566
+ (sum, s) =>
2567
+ sum +
2568
+ (s.llmCalls?.reduce((s2, c) => s2 + (c.completionTokens ?? 0), 0) ??
2569
+ 0),
2570
+ 0,
2571
+ );
2572
+ rows.push(
2573
+ `${t.trajectoryId},${t.agentId},${t.startTime},${t.endTime ?? ""},${t.metrics?.finalStatus ?? ""},${llmCount ?? 0},${promptTokens ?? 0},${completionTokens ?? 0}`,
2574
+ );
2575
+ }
2576
+ return {
2577
+ filename: `trajectories-${Date.now()}.csv`,
2578
+ data: rows.join("\n"),
2579
+ mimeType: "text/csv",
2580
+ };
2581
+ }
2582
+
2583
+ // Default to JSON for 'art' format
2584
+ return {
2585
+ filename: `trajectories-${Date.now()}.json`,
2586
+ data: JSON.stringify(trajectories, null, 2),
2587
+ mimeType: "application/json",
2588
+ };
2589
+ }
2590
+ }
2591
+
2592
+ /**
2593
+ * Create and register a database-backed trajectory logger service on the runtime.
2594
+ * This replaces any existing trajectory_logger service with one that persists to the database.
2595
+ */
2596
+ export function createDatabaseTrajectoryLogger(
2597
+ runtime: IAgentRuntime,
2598
+ ): DatabaseTrajectoryLogger {
2599
+ const logger = new DatabaseTrajectoryLogger(runtime);
2600
+ return logger;
2601
+ }
2602
+
2603
+ export function shouldEnableTrajectoryLoggingByDefault(): boolean {
2604
+ return process.env.NODE_ENV !== "production";
2605
+ }