amd-gaia 0.14.1__py3-none-any.whl → 0.14.3__py3-none-any.whl

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 (794) hide show
  1. amd_gaia-0.14.3.dist-info/METADATA +223 -0
  2. amd_gaia-0.14.3.dist-info/RECORD +168 -0
  3. {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/entry_points.txt +1 -0
  4. gaia/__init__.py +28 -1
  5. gaia/agents/__init__.py +1 -1
  6. gaia/agents/base/__init__.py +1 -1
  7. gaia/agents/base/agent.py +142 -37
  8. gaia/agents/base/api_agent.py +1 -1
  9. gaia/agents/base/console.py +400 -16
  10. gaia/agents/base/errors.py +237 -0
  11. gaia/agents/base/mcp_agent.py +1 -1
  12. gaia/agents/base/tools.py +1 -1
  13. gaia/agents/blender/agent.py +1 -1
  14. gaia/agents/blender/agent_simple.py +1 -1
  15. gaia/agents/blender/app.py +1 -1
  16. gaia/agents/blender/app_simple.py +1 -1
  17. gaia/agents/blender/core/__init__.py +1 -1
  18. gaia/agents/blender/core/materials.py +1 -1
  19. gaia/agents/blender/core/objects.py +1 -1
  20. gaia/agents/blender/core/rendering.py +1 -1
  21. gaia/agents/blender/core/scene.py +1 -1
  22. gaia/agents/blender/core/view.py +1 -1
  23. gaia/agents/chat/__init__.py +1 -1
  24. gaia/agents/chat/agent.py +41 -181
  25. gaia/agents/chat/app.py +1 -1
  26. gaia/agents/chat/session.py +1 -1
  27. gaia/agents/chat/tools/__init__.py +1 -1
  28. gaia/agents/chat/tools/file_tools.py +1 -1
  29. gaia/agents/chat/tools/rag_tools.py +1 -1
  30. gaia/agents/chat/tools/shell_tools.py +1 -1
  31. gaia/agents/code/__init__.py +1 -1
  32. gaia/agents/code/agent.py +3 -1
  33. gaia/agents/code/orchestration/__init__.py +1 -1
  34. gaia/agents/code/orchestration/checklist_executor.py +27 -3
  35. gaia/agents/code/orchestration/checklist_generator.py +8 -4
  36. gaia/agents/code/orchestration/factories/__init__.py +1 -1
  37. gaia/agents/code/orchestration/factories/base.py +1 -1
  38. gaia/agents/code/orchestration/factories/nextjs_factory.py +1 -1
  39. gaia/agents/code/orchestration/factories/python_factory.py +1 -1
  40. gaia/agents/code/orchestration/orchestrator.py +276 -45
  41. gaia/agents/code/orchestration/project_analyzer.py +1 -1
  42. gaia/agents/code/orchestration/steps/__init__.py +1 -1
  43. gaia/agents/code/orchestration/steps/base.py +1 -1
  44. gaia/agents/code/orchestration/steps/error_handler.py +2 -2
  45. gaia/agents/code/orchestration/steps/nextjs.py +1 -1
  46. gaia/agents/code/orchestration/steps/python.py +1 -1
  47. gaia/agents/code/orchestration/template_catalog.py +8 -2
  48. gaia/agents/code/orchestration/workflows/__init__.py +1 -1
  49. gaia/agents/code/orchestration/workflows/base.py +1 -1
  50. gaia/agents/code/orchestration/workflows/nextjs.py +1 -1
  51. gaia/agents/code/orchestration/workflows/python.py +1 -1
  52. gaia/agents/code/prompts/__init__.py +1 -1
  53. gaia/agents/code/prompts/base_prompt.py +1 -1
  54. gaia/agents/code/prompts/code_patterns.py +129 -18
  55. gaia/agents/code/prompts/nextjs_prompt.py +1 -1
  56. gaia/agents/code/prompts/python_prompt.py +1 -1
  57. gaia/agents/code/schema_inference.py +1 -1
  58. gaia/agents/code/system_prompt.py +1 -1
  59. gaia/agents/code/tools/__init__.py +1 -1
  60. gaia/agents/code/tools/cli_tools.py +1 -1
  61. gaia/agents/code/tools/code_formatting.py +2 -2
  62. gaia/agents/code/tools/code_tools.py +2 -2
  63. gaia/agents/code/tools/error_fixing.py +1 -1
  64. gaia/agents/code/tools/external_tools.py +1 -1
  65. gaia/agents/code/tools/prisma_tools.py +1 -1
  66. gaia/agents/code/tools/project_management.py +1 -1
  67. gaia/agents/code/tools/testing.py +1 -1
  68. gaia/agents/code/tools/typescript_tools.py +1 -1
  69. gaia/agents/code/tools/validation_parsing.py +1 -1
  70. gaia/agents/code/tools/validation_tools.py +5 -2
  71. gaia/agents/code/tools/web_dev_tools.py +17 -3
  72. gaia/agents/docker/__init__.py +1 -1
  73. gaia/agents/emr/__init__.py +8 -0
  74. gaia/agents/emr/agent.py +1506 -0
  75. gaia/agents/emr/cli.py +1322 -0
  76. gaia/agents/emr/constants.py +475 -0
  77. gaia/agents/emr/dashboard/__init__.py +4 -0
  78. gaia/agents/emr/dashboard/server.py +1974 -0
  79. gaia/agents/routing/__init__.py +1 -1
  80. gaia/agents/routing/agent.py +65 -7
  81. gaia/agents/routing/system_prompt.py +1 -1
  82. gaia/api/__init__.py +1 -1
  83. gaia/api/agent_registry.py +1 -1
  84. gaia/api/app.py +1 -1
  85. gaia/api/openai_server.py +1 -1
  86. gaia/api/schemas.py +1 -1
  87. gaia/api/sse_handler.py +5 -2
  88. gaia/apps/__init__.py +1 -1
  89. gaia/apps/llm/__init__.py +1 -1
  90. gaia/apps/summarize/pdf_formatter.py +1 -1
  91. gaia/audio/__init__.py +1 -1
  92. gaia/audio/audio_client.py +3 -3
  93. gaia/audio/audio_recorder.py +1 -1
  94. gaia/audio/kokoro_tts.py +3 -3
  95. gaia/audio/whisper_asr.py +3 -3
  96. gaia/chat/__init__.py +1 -1
  97. gaia/chat/prompts.py +1 -1
  98. gaia/chat/sdk.py +26 -1
  99. gaia/cli.py +18 -18
  100. gaia/database/__init__.py +10 -0
  101. gaia/database/agent.py +176 -0
  102. gaia/database/mixin.py +290 -0
  103. gaia/database/testing.py +64 -0
  104. gaia/eval/batch_experiment.py +2 -2
  105. gaia/eval/claude.py +5 -5
  106. gaia/eval/config.py +1 -1
  107. gaia/eval/email_generator.py +1 -1
  108. gaia/eval/eval.py +1 -1
  109. gaia/eval/groundtruth.py +1 -1
  110. gaia/eval/transcript_generator.py +1 -1
  111. gaia/eval/webapp/public/app.js +1 -1
  112. gaia/eval/webapp/server.js +1 -1
  113. gaia/eval/webapp/test-setup.js +1 -1
  114. gaia/llm/__init__.py +1 -1
  115. gaia/llm/lemonade_client.py +149 -11
  116. gaia/llm/lemonade_manager.py +36 -11
  117. gaia/llm/llm_client.py +2 -2
  118. gaia/llm/vlm_client.py +93 -18
  119. gaia/logger.py +1 -1
  120. gaia/mcp/agent_mcp_server.py +1 -1
  121. gaia/mcp/blender_mcp_client.py +1 -1
  122. gaia/mcp/blender_mcp_server.py +1 -1
  123. gaia/mcp/context7_cache.py +1 -1
  124. gaia/mcp/servers/__init__.py +1 -1
  125. gaia/mcp/servers/docker_mcp.py +1 -1
  126. gaia/rag/demo.py +5 -5
  127. gaia/rag/pdf_utils.py +1 -1
  128. gaia/rag/sdk.py +2 -2
  129. gaia/security.py +1 -1
  130. gaia/talk/sdk.py +1 -1
  131. gaia/testing/__init__.py +87 -0
  132. gaia/testing/assertions.py +330 -0
  133. gaia/testing/fixtures.py +333 -0
  134. gaia/testing/mocks.py +493 -0
  135. gaia/util.py +1 -1
  136. gaia/utils/__init__.py +33 -0
  137. gaia/utils/file_watcher.py +675 -0
  138. gaia/utils/parsing.py +223 -0
  139. gaia/version.py +2 -2
  140. amd_gaia-0.14.1.dist-info/METADATA +0 -768
  141. amd_gaia-0.14.1.dist-info/RECORD +0 -800
  142. gaia/eval/webapp/node_modules/.bin/mime +0 -16
  143. gaia/eval/webapp/node_modules/.bin/mime.cmd +0 -17
  144. gaia/eval/webapp/node_modules/.bin/mime.ps1 +0 -28
  145. gaia/eval/webapp/node_modules/.package-lock.json +0 -865
  146. gaia/eval/webapp/node_modules/accepts/HISTORY.md +0 -243
  147. gaia/eval/webapp/node_modules/accepts/LICENSE +0 -23
  148. gaia/eval/webapp/node_modules/accepts/README.md +0 -140
  149. gaia/eval/webapp/node_modules/accepts/index.js +0 -238
  150. gaia/eval/webapp/node_modules/accepts/package.json +0 -47
  151. gaia/eval/webapp/node_modules/array-flatten/LICENSE +0 -21
  152. gaia/eval/webapp/node_modules/array-flatten/README.md +0 -43
  153. gaia/eval/webapp/node_modules/array-flatten/array-flatten.js +0 -64
  154. gaia/eval/webapp/node_modules/array-flatten/package.json +0 -39
  155. gaia/eval/webapp/node_modules/body-parser/HISTORY.md +0 -672
  156. gaia/eval/webapp/node_modules/body-parser/LICENSE +0 -23
  157. gaia/eval/webapp/node_modules/body-parser/README.md +0 -476
  158. gaia/eval/webapp/node_modules/body-parser/SECURITY.md +0 -25
  159. gaia/eval/webapp/node_modules/body-parser/index.js +0 -156
  160. gaia/eval/webapp/node_modules/body-parser/lib/read.js +0 -205
  161. gaia/eval/webapp/node_modules/body-parser/lib/types/json.js +0 -247
  162. gaia/eval/webapp/node_modules/body-parser/lib/types/raw.js +0 -101
  163. gaia/eval/webapp/node_modules/body-parser/lib/types/text.js +0 -121
  164. gaia/eval/webapp/node_modules/body-parser/lib/types/urlencoded.js +0 -307
  165. gaia/eval/webapp/node_modules/body-parser/package.json +0 -56
  166. gaia/eval/webapp/node_modules/bytes/History.md +0 -97
  167. gaia/eval/webapp/node_modules/bytes/LICENSE +0 -23
  168. gaia/eval/webapp/node_modules/bytes/Readme.md +0 -152
  169. gaia/eval/webapp/node_modules/bytes/index.js +0 -170
  170. gaia/eval/webapp/node_modules/bytes/package.json +0 -42
  171. gaia/eval/webapp/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  172. gaia/eval/webapp/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  173. gaia/eval/webapp/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  174. gaia/eval/webapp/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  175. gaia/eval/webapp/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  176. gaia/eval/webapp/node_modules/call-bind-apply-helpers/README.md +0 -62
  177. gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  178. gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  179. gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  180. gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  181. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  182. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  183. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  184. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  185. gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  186. gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.js +0 -15
  187. gaia/eval/webapp/node_modules/call-bind-apply-helpers/package.json +0 -85
  188. gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  189. gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  190. gaia/eval/webapp/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  191. gaia/eval/webapp/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  192. gaia/eval/webapp/node_modules/call-bound/.eslintrc +0 -13
  193. gaia/eval/webapp/node_modules/call-bound/.github/FUNDING.yml +0 -12
  194. gaia/eval/webapp/node_modules/call-bound/.nycrc +0 -9
  195. gaia/eval/webapp/node_modules/call-bound/CHANGELOG.md +0 -42
  196. gaia/eval/webapp/node_modules/call-bound/LICENSE +0 -21
  197. gaia/eval/webapp/node_modules/call-bound/README.md +0 -53
  198. gaia/eval/webapp/node_modules/call-bound/index.d.ts +0 -94
  199. gaia/eval/webapp/node_modules/call-bound/index.js +0 -19
  200. gaia/eval/webapp/node_modules/call-bound/package.json +0 -99
  201. gaia/eval/webapp/node_modules/call-bound/test/index.js +0 -61
  202. gaia/eval/webapp/node_modules/call-bound/tsconfig.json +0 -10
  203. gaia/eval/webapp/node_modules/content-disposition/HISTORY.md +0 -60
  204. gaia/eval/webapp/node_modules/content-disposition/LICENSE +0 -22
  205. gaia/eval/webapp/node_modules/content-disposition/README.md +0 -142
  206. gaia/eval/webapp/node_modules/content-disposition/index.js +0 -458
  207. gaia/eval/webapp/node_modules/content-disposition/package.json +0 -44
  208. gaia/eval/webapp/node_modules/content-type/HISTORY.md +0 -29
  209. gaia/eval/webapp/node_modules/content-type/LICENSE +0 -22
  210. gaia/eval/webapp/node_modules/content-type/README.md +0 -94
  211. gaia/eval/webapp/node_modules/content-type/index.js +0 -225
  212. gaia/eval/webapp/node_modules/content-type/package.json +0 -42
  213. gaia/eval/webapp/node_modules/cookie/LICENSE +0 -24
  214. gaia/eval/webapp/node_modules/cookie/README.md +0 -317
  215. gaia/eval/webapp/node_modules/cookie/SECURITY.md +0 -25
  216. gaia/eval/webapp/node_modules/cookie/index.js +0 -334
  217. gaia/eval/webapp/node_modules/cookie/package.json +0 -44
  218. gaia/eval/webapp/node_modules/cookie-signature/.npmignore +0 -4
  219. gaia/eval/webapp/node_modules/cookie-signature/History.md +0 -38
  220. gaia/eval/webapp/node_modules/cookie-signature/Readme.md +0 -42
  221. gaia/eval/webapp/node_modules/cookie-signature/index.js +0 -51
  222. gaia/eval/webapp/node_modules/cookie-signature/package.json +0 -18
  223. gaia/eval/webapp/node_modules/debug/.coveralls.yml +0 -1
  224. gaia/eval/webapp/node_modules/debug/.eslintrc +0 -11
  225. gaia/eval/webapp/node_modules/debug/.npmignore +0 -9
  226. gaia/eval/webapp/node_modules/debug/.travis.yml +0 -14
  227. gaia/eval/webapp/node_modules/debug/CHANGELOG.md +0 -362
  228. gaia/eval/webapp/node_modules/debug/LICENSE +0 -19
  229. gaia/eval/webapp/node_modules/debug/Makefile +0 -50
  230. gaia/eval/webapp/node_modules/debug/README.md +0 -312
  231. gaia/eval/webapp/node_modules/debug/component.json +0 -19
  232. gaia/eval/webapp/node_modules/debug/karma.conf.js +0 -70
  233. gaia/eval/webapp/node_modules/debug/node.js +0 -1
  234. gaia/eval/webapp/node_modules/debug/package.json +0 -49
  235. gaia/eval/webapp/node_modules/debug/src/browser.js +0 -185
  236. gaia/eval/webapp/node_modules/debug/src/debug.js +0 -202
  237. gaia/eval/webapp/node_modules/debug/src/index.js +0 -10
  238. gaia/eval/webapp/node_modules/debug/src/inspector-log.js +0 -15
  239. gaia/eval/webapp/node_modules/debug/src/node.js +0 -248
  240. gaia/eval/webapp/node_modules/depd/History.md +0 -103
  241. gaia/eval/webapp/node_modules/depd/LICENSE +0 -22
  242. gaia/eval/webapp/node_modules/depd/Readme.md +0 -280
  243. gaia/eval/webapp/node_modules/depd/index.js +0 -538
  244. gaia/eval/webapp/node_modules/depd/lib/browser/index.js +0 -77
  245. gaia/eval/webapp/node_modules/depd/package.json +0 -45
  246. gaia/eval/webapp/node_modules/destroy/LICENSE +0 -23
  247. gaia/eval/webapp/node_modules/destroy/README.md +0 -63
  248. gaia/eval/webapp/node_modules/destroy/index.js +0 -209
  249. gaia/eval/webapp/node_modules/destroy/package.json +0 -48
  250. gaia/eval/webapp/node_modules/dunder-proto/.eslintrc +0 -5
  251. gaia/eval/webapp/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  252. gaia/eval/webapp/node_modules/dunder-proto/.nycrc +0 -13
  253. gaia/eval/webapp/node_modules/dunder-proto/CHANGELOG.md +0 -24
  254. gaia/eval/webapp/node_modules/dunder-proto/LICENSE +0 -21
  255. gaia/eval/webapp/node_modules/dunder-proto/README.md +0 -54
  256. gaia/eval/webapp/node_modules/dunder-proto/get.d.ts +0 -5
  257. gaia/eval/webapp/node_modules/dunder-proto/get.js +0 -30
  258. gaia/eval/webapp/node_modules/dunder-proto/package.json +0 -76
  259. gaia/eval/webapp/node_modules/dunder-proto/set.d.ts +0 -5
  260. gaia/eval/webapp/node_modules/dunder-proto/set.js +0 -35
  261. gaia/eval/webapp/node_modules/dunder-proto/test/get.js +0 -34
  262. gaia/eval/webapp/node_modules/dunder-proto/test/index.js +0 -4
  263. gaia/eval/webapp/node_modules/dunder-proto/test/set.js +0 -50
  264. gaia/eval/webapp/node_modules/dunder-proto/tsconfig.json +0 -9
  265. gaia/eval/webapp/node_modules/ee-first/LICENSE +0 -22
  266. gaia/eval/webapp/node_modules/ee-first/README.md +0 -80
  267. gaia/eval/webapp/node_modules/ee-first/index.js +0 -95
  268. gaia/eval/webapp/node_modules/ee-first/package.json +0 -29
  269. gaia/eval/webapp/node_modules/encodeurl/LICENSE +0 -22
  270. gaia/eval/webapp/node_modules/encodeurl/README.md +0 -109
  271. gaia/eval/webapp/node_modules/encodeurl/index.js +0 -60
  272. gaia/eval/webapp/node_modules/encodeurl/package.json +0 -40
  273. gaia/eval/webapp/node_modules/es-define-property/.eslintrc +0 -13
  274. gaia/eval/webapp/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  275. gaia/eval/webapp/node_modules/es-define-property/.nycrc +0 -9
  276. gaia/eval/webapp/node_modules/es-define-property/CHANGELOG.md +0 -29
  277. gaia/eval/webapp/node_modules/es-define-property/LICENSE +0 -21
  278. gaia/eval/webapp/node_modules/es-define-property/README.md +0 -49
  279. gaia/eval/webapp/node_modules/es-define-property/index.d.ts +0 -3
  280. gaia/eval/webapp/node_modules/es-define-property/index.js +0 -14
  281. gaia/eval/webapp/node_modules/es-define-property/package.json +0 -81
  282. gaia/eval/webapp/node_modules/es-define-property/test/index.js +0 -56
  283. gaia/eval/webapp/node_modules/es-define-property/tsconfig.json +0 -10
  284. gaia/eval/webapp/node_modules/es-errors/.eslintrc +0 -5
  285. gaia/eval/webapp/node_modules/es-errors/.github/FUNDING.yml +0 -12
  286. gaia/eval/webapp/node_modules/es-errors/CHANGELOG.md +0 -40
  287. gaia/eval/webapp/node_modules/es-errors/LICENSE +0 -21
  288. gaia/eval/webapp/node_modules/es-errors/README.md +0 -55
  289. gaia/eval/webapp/node_modules/es-errors/eval.d.ts +0 -3
  290. gaia/eval/webapp/node_modules/es-errors/eval.js +0 -4
  291. gaia/eval/webapp/node_modules/es-errors/index.d.ts +0 -3
  292. gaia/eval/webapp/node_modules/es-errors/index.js +0 -4
  293. gaia/eval/webapp/node_modules/es-errors/package.json +0 -80
  294. gaia/eval/webapp/node_modules/es-errors/range.d.ts +0 -3
  295. gaia/eval/webapp/node_modules/es-errors/range.js +0 -4
  296. gaia/eval/webapp/node_modules/es-errors/ref.d.ts +0 -3
  297. gaia/eval/webapp/node_modules/es-errors/ref.js +0 -4
  298. gaia/eval/webapp/node_modules/es-errors/syntax.d.ts +0 -3
  299. gaia/eval/webapp/node_modules/es-errors/syntax.js +0 -4
  300. gaia/eval/webapp/node_modules/es-errors/test/index.js +0 -19
  301. gaia/eval/webapp/node_modules/es-errors/tsconfig.json +0 -49
  302. gaia/eval/webapp/node_modules/es-errors/type.d.ts +0 -3
  303. gaia/eval/webapp/node_modules/es-errors/type.js +0 -4
  304. gaia/eval/webapp/node_modules/es-errors/uri.d.ts +0 -3
  305. gaia/eval/webapp/node_modules/es-errors/uri.js +0 -4
  306. gaia/eval/webapp/node_modules/es-object-atoms/.eslintrc +0 -16
  307. gaia/eval/webapp/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  308. gaia/eval/webapp/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  309. gaia/eval/webapp/node_modules/es-object-atoms/LICENSE +0 -21
  310. gaia/eval/webapp/node_modules/es-object-atoms/README.md +0 -63
  311. gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  312. gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  313. gaia/eval/webapp/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  314. gaia/eval/webapp/node_modules/es-object-atoms/ToObject.js +0 -10
  315. gaia/eval/webapp/node_modules/es-object-atoms/index.d.ts +0 -3
  316. gaia/eval/webapp/node_modules/es-object-atoms/index.js +0 -4
  317. gaia/eval/webapp/node_modules/es-object-atoms/isObject.d.ts +0 -3
  318. gaia/eval/webapp/node_modules/es-object-atoms/isObject.js +0 -6
  319. gaia/eval/webapp/node_modules/es-object-atoms/package.json +0 -80
  320. gaia/eval/webapp/node_modules/es-object-atoms/test/index.js +0 -38
  321. gaia/eval/webapp/node_modules/es-object-atoms/tsconfig.json +0 -6
  322. gaia/eval/webapp/node_modules/escape-html/LICENSE +0 -24
  323. gaia/eval/webapp/node_modules/escape-html/Readme.md +0 -43
  324. gaia/eval/webapp/node_modules/escape-html/index.js +0 -78
  325. gaia/eval/webapp/node_modules/escape-html/package.json +0 -24
  326. gaia/eval/webapp/node_modules/etag/HISTORY.md +0 -83
  327. gaia/eval/webapp/node_modules/etag/LICENSE +0 -22
  328. gaia/eval/webapp/node_modules/etag/README.md +0 -159
  329. gaia/eval/webapp/node_modules/etag/index.js +0 -131
  330. gaia/eval/webapp/node_modules/etag/package.json +0 -47
  331. gaia/eval/webapp/node_modules/express/History.md +0 -3656
  332. gaia/eval/webapp/node_modules/express/LICENSE +0 -24
  333. gaia/eval/webapp/node_modules/express/Readme.md +0 -260
  334. gaia/eval/webapp/node_modules/express/index.js +0 -11
  335. gaia/eval/webapp/node_modules/express/lib/application.js +0 -661
  336. gaia/eval/webapp/node_modules/express/lib/express.js +0 -116
  337. gaia/eval/webapp/node_modules/express/lib/middleware/init.js +0 -43
  338. gaia/eval/webapp/node_modules/express/lib/middleware/query.js +0 -47
  339. gaia/eval/webapp/node_modules/express/lib/request.js +0 -525
  340. gaia/eval/webapp/node_modules/express/lib/response.js +0 -1179
  341. gaia/eval/webapp/node_modules/express/lib/router/index.js +0 -673
  342. gaia/eval/webapp/node_modules/express/lib/router/layer.js +0 -181
  343. gaia/eval/webapp/node_modules/express/lib/router/route.js +0 -230
  344. gaia/eval/webapp/node_modules/express/lib/utils.js +0 -303
  345. gaia/eval/webapp/node_modules/express/lib/view.js +0 -182
  346. gaia/eval/webapp/node_modules/express/package.json +0 -102
  347. gaia/eval/webapp/node_modules/finalhandler/HISTORY.md +0 -210
  348. gaia/eval/webapp/node_modules/finalhandler/LICENSE +0 -22
  349. gaia/eval/webapp/node_modules/finalhandler/README.md +0 -147
  350. gaia/eval/webapp/node_modules/finalhandler/SECURITY.md +0 -25
  351. gaia/eval/webapp/node_modules/finalhandler/index.js +0 -341
  352. gaia/eval/webapp/node_modules/finalhandler/package.json +0 -47
  353. gaia/eval/webapp/node_modules/forwarded/HISTORY.md +0 -21
  354. gaia/eval/webapp/node_modules/forwarded/LICENSE +0 -22
  355. gaia/eval/webapp/node_modules/forwarded/README.md +0 -57
  356. gaia/eval/webapp/node_modules/forwarded/index.js +0 -90
  357. gaia/eval/webapp/node_modules/forwarded/package.json +0 -45
  358. gaia/eval/webapp/node_modules/fresh/HISTORY.md +0 -70
  359. gaia/eval/webapp/node_modules/fresh/LICENSE +0 -23
  360. gaia/eval/webapp/node_modules/fresh/README.md +0 -119
  361. gaia/eval/webapp/node_modules/fresh/index.js +0 -137
  362. gaia/eval/webapp/node_modules/fresh/package.json +0 -46
  363. gaia/eval/webapp/node_modules/fs/README.md +0 -9
  364. gaia/eval/webapp/node_modules/fs/package.json +0 -20
  365. gaia/eval/webapp/node_modules/function-bind/.eslintrc +0 -21
  366. gaia/eval/webapp/node_modules/function-bind/.github/FUNDING.yml +0 -12
  367. gaia/eval/webapp/node_modules/function-bind/.github/SECURITY.md +0 -3
  368. gaia/eval/webapp/node_modules/function-bind/.nycrc +0 -13
  369. gaia/eval/webapp/node_modules/function-bind/CHANGELOG.md +0 -136
  370. gaia/eval/webapp/node_modules/function-bind/LICENSE +0 -20
  371. gaia/eval/webapp/node_modules/function-bind/README.md +0 -46
  372. gaia/eval/webapp/node_modules/function-bind/implementation.js +0 -84
  373. gaia/eval/webapp/node_modules/function-bind/index.js +0 -5
  374. gaia/eval/webapp/node_modules/function-bind/package.json +0 -87
  375. gaia/eval/webapp/node_modules/function-bind/test/.eslintrc +0 -9
  376. gaia/eval/webapp/node_modules/function-bind/test/index.js +0 -252
  377. gaia/eval/webapp/node_modules/get-intrinsic/.eslintrc +0 -42
  378. gaia/eval/webapp/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  379. gaia/eval/webapp/node_modules/get-intrinsic/.nycrc +0 -9
  380. gaia/eval/webapp/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  381. gaia/eval/webapp/node_modules/get-intrinsic/LICENSE +0 -21
  382. gaia/eval/webapp/node_modules/get-intrinsic/README.md +0 -71
  383. gaia/eval/webapp/node_modules/get-intrinsic/index.js +0 -378
  384. gaia/eval/webapp/node_modules/get-intrinsic/package.json +0 -97
  385. gaia/eval/webapp/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  386. gaia/eval/webapp/node_modules/get-proto/.eslintrc +0 -10
  387. gaia/eval/webapp/node_modules/get-proto/.github/FUNDING.yml +0 -12
  388. gaia/eval/webapp/node_modules/get-proto/.nycrc +0 -9
  389. gaia/eval/webapp/node_modules/get-proto/CHANGELOG.md +0 -21
  390. gaia/eval/webapp/node_modules/get-proto/LICENSE +0 -21
  391. gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  392. gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  393. gaia/eval/webapp/node_modules/get-proto/README.md +0 -50
  394. gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  395. gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  396. gaia/eval/webapp/node_modules/get-proto/index.d.ts +0 -5
  397. gaia/eval/webapp/node_modules/get-proto/index.js +0 -27
  398. gaia/eval/webapp/node_modules/get-proto/package.json +0 -81
  399. gaia/eval/webapp/node_modules/get-proto/test/index.js +0 -68
  400. gaia/eval/webapp/node_modules/get-proto/tsconfig.json +0 -9
  401. gaia/eval/webapp/node_modules/gopd/.eslintrc +0 -16
  402. gaia/eval/webapp/node_modules/gopd/.github/FUNDING.yml +0 -12
  403. gaia/eval/webapp/node_modules/gopd/CHANGELOG.md +0 -45
  404. gaia/eval/webapp/node_modules/gopd/LICENSE +0 -21
  405. gaia/eval/webapp/node_modules/gopd/README.md +0 -40
  406. gaia/eval/webapp/node_modules/gopd/gOPD.d.ts +0 -1
  407. gaia/eval/webapp/node_modules/gopd/gOPD.js +0 -4
  408. gaia/eval/webapp/node_modules/gopd/index.d.ts +0 -5
  409. gaia/eval/webapp/node_modules/gopd/index.js +0 -15
  410. gaia/eval/webapp/node_modules/gopd/package.json +0 -77
  411. gaia/eval/webapp/node_modules/gopd/test/index.js +0 -36
  412. gaia/eval/webapp/node_modules/gopd/tsconfig.json +0 -9
  413. gaia/eval/webapp/node_modules/has-symbols/.eslintrc +0 -11
  414. gaia/eval/webapp/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  415. gaia/eval/webapp/node_modules/has-symbols/.nycrc +0 -9
  416. gaia/eval/webapp/node_modules/has-symbols/CHANGELOG.md +0 -91
  417. gaia/eval/webapp/node_modules/has-symbols/LICENSE +0 -21
  418. gaia/eval/webapp/node_modules/has-symbols/README.md +0 -46
  419. gaia/eval/webapp/node_modules/has-symbols/index.d.ts +0 -3
  420. gaia/eval/webapp/node_modules/has-symbols/index.js +0 -14
  421. gaia/eval/webapp/node_modules/has-symbols/package.json +0 -111
  422. gaia/eval/webapp/node_modules/has-symbols/shams.d.ts +0 -3
  423. gaia/eval/webapp/node_modules/has-symbols/shams.js +0 -45
  424. gaia/eval/webapp/node_modules/has-symbols/test/index.js +0 -22
  425. gaia/eval/webapp/node_modules/has-symbols/test/shams/core-js.js +0 -29
  426. gaia/eval/webapp/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  427. gaia/eval/webapp/node_modules/has-symbols/test/tests.js +0 -58
  428. gaia/eval/webapp/node_modules/has-symbols/tsconfig.json +0 -10
  429. gaia/eval/webapp/node_modules/hasown/.eslintrc +0 -5
  430. gaia/eval/webapp/node_modules/hasown/.github/FUNDING.yml +0 -12
  431. gaia/eval/webapp/node_modules/hasown/.nycrc +0 -13
  432. gaia/eval/webapp/node_modules/hasown/CHANGELOG.md +0 -40
  433. gaia/eval/webapp/node_modules/hasown/LICENSE +0 -21
  434. gaia/eval/webapp/node_modules/hasown/README.md +0 -40
  435. gaia/eval/webapp/node_modules/hasown/index.d.ts +0 -3
  436. gaia/eval/webapp/node_modules/hasown/index.js +0 -8
  437. gaia/eval/webapp/node_modules/hasown/package.json +0 -92
  438. gaia/eval/webapp/node_modules/hasown/tsconfig.json +0 -6
  439. gaia/eval/webapp/node_modules/http-errors/HISTORY.md +0 -180
  440. gaia/eval/webapp/node_modules/http-errors/LICENSE +0 -23
  441. gaia/eval/webapp/node_modules/http-errors/README.md +0 -169
  442. gaia/eval/webapp/node_modules/http-errors/index.js +0 -289
  443. gaia/eval/webapp/node_modules/http-errors/package.json +0 -50
  444. gaia/eval/webapp/node_modules/iconv-lite/Changelog.md +0 -162
  445. gaia/eval/webapp/node_modules/iconv-lite/LICENSE +0 -21
  446. gaia/eval/webapp/node_modules/iconv-lite/README.md +0 -156
  447. gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  448. gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  449. gaia/eval/webapp/node_modules/iconv-lite/encodings/index.js +0 -22
  450. gaia/eval/webapp/node_modules/iconv-lite/encodings/internal.js +0 -188
  451. gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  452. gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  453. gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  454. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  455. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  456. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  457. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  458. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  459. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  460. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  461. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  462. gaia/eval/webapp/node_modules/iconv-lite/encodings/utf16.js +0 -177
  463. gaia/eval/webapp/node_modules/iconv-lite/encodings/utf7.js +0 -290
  464. gaia/eval/webapp/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  465. gaia/eval/webapp/node_modules/iconv-lite/lib/extend-node.js +0 -217
  466. gaia/eval/webapp/node_modules/iconv-lite/lib/index.d.ts +0 -24
  467. gaia/eval/webapp/node_modules/iconv-lite/lib/index.js +0 -153
  468. gaia/eval/webapp/node_modules/iconv-lite/lib/streams.js +0 -121
  469. gaia/eval/webapp/node_modules/iconv-lite/package.json +0 -46
  470. gaia/eval/webapp/node_modules/inherits/LICENSE +0 -16
  471. gaia/eval/webapp/node_modules/inherits/README.md +0 -42
  472. gaia/eval/webapp/node_modules/inherits/inherits.js +0 -9
  473. gaia/eval/webapp/node_modules/inherits/inherits_browser.js +0 -27
  474. gaia/eval/webapp/node_modules/inherits/package.json +0 -29
  475. gaia/eval/webapp/node_modules/ipaddr.js/LICENSE +0 -19
  476. gaia/eval/webapp/node_modules/ipaddr.js/README.md +0 -233
  477. gaia/eval/webapp/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  478. gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  479. gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  480. gaia/eval/webapp/node_modules/ipaddr.js/package.json +0 -35
  481. gaia/eval/webapp/node_modules/math-intrinsics/.eslintrc +0 -16
  482. gaia/eval/webapp/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  483. gaia/eval/webapp/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  484. gaia/eval/webapp/node_modules/math-intrinsics/LICENSE +0 -21
  485. gaia/eval/webapp/node_modules/math-intrinsics/README.md +0 -50
  486. gaia/eval/webapp/node_modules/math-intrinsics/abs.d.ts +0 -1
  487. gaia/eval/webapp/node_modules/math-intrinsics/abs.js +0 -4
  488. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  489. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  490. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  491. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  492. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  493. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  494. gaia/eval/webapp/node_modules/math-intrinsics/floor.d.ts +0 -1
  495. gaia/eval/webapp/node_modules/math-intrinsics/floor.js +0 -4
  496. gaia/eval/webapp/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  497. gaia/eval/webapp/node_modules/math-intrinsics/isFinite.js +0 -12
  498. gaia/eval/webapp/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  499. gaia/eval/webapp/node_modules/math-intrinsics/isInteger.js +0 -16
  500. gaia/eval/webapp/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  501. gaia/eval/webapp/node_modules/math-intrinsics/isNaN.js +0 -6
  502. gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  503. gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  504. gaia/eval/webapp/node_modules/math-intrinsics/max.d.ts +0 -1
  505. gaia/eval/webapp/node_modules/math-intrinsics/max.js +0 -4
  506. gaia/eval/webapp/node_modules/math-intrinsics/min.d.ts +0 -1
  507. gaia/eval/webapp/node_modules/math-intrinsics/min.js +0 -4
  508. gaia/eval/webapp/node_modules/math-intrinsics/mod.d.ts +0 -3
  509. gaia/eval/webapp/node_modules/math-intrinsics/mod.js +0 -9
  510. gaia/eval/webapp/node_modules/math-intrinsics/package.json +0 -86
  511. gaia/eval/webapp/node_modules/math-intrinsics/pow.d.ts +0 -1
  512. gaia/eval/webapp/node_modules/math-intrinsics/pow.js +0 -4
  513. gaia/eval/webapp/node_modules/math-intrinsics/round.d.ts +0 -1
  514. gaia/eval/webapp/node_modules/math-intrinsics/round.js +0 -4
  515. gaia/eval/webapp/node_modules/math-intrinsics/sign.d.ts +0 -3
  516. gaia/eval/webapp/node_modules/math-intrinsics/sign.js +0 -11
  517. gaia/eval/webapp/node_modules/math-intrinsics/test/index.js +0 -192
  518. gaia/eval/webapp/node_modules/math-intrinsics/tsconfig.json +0 -3
  519. gaia/eval/webapp/node_modules/media-typer/HISTORY.md +0 -22
  520. gaia/eval/webapp/node_modules/media-typer/LICENSE +0 -22
  521. gaia/eval/webapp/node_modules/media-typer/README.md +0 -81
  522. gaia/eval/webapp/node_modules/media-typer/index.js +0 -270
  523. gaia/eval/webapp/node_modules/media-typer/package.json +0 -26
  524. gaia/eval/webapp/node_modules/merge-descriptors/HISTORY.md +0 -21
  525. gaia/eval/webapp/node_modules/merge-descriptors/LICENSE +0 -23
  526. gaia/eval/webapp/node_modules/merge-descriptors/README.md +0 -49
  527. gaia/eval/webapp/node_modules/merge-descriptors/index.js +0 -60
  528. gaia/eval/webapp/node_modules/merge-descriptors/package.json +0 -39
  529. gaia/eval/webapp/node_modules/methods/HISTORY.md +0 -29
  530. gaia/eval/webapp/node_modules/methods/LICENSE +0 -24
  531. gaia/eval/webapp/node_modules/methods/README.md +0 -51
  532. gaia/eval/webapp/node_modules/methods/index.js +0 -69
  533. gaia/eval/webapp/node_modules/methods/package.json +0 -36
  534. gaia/eval/webapp/node_modules/mime/.npmignore +0 -0
  535. gaia/eval/webapp/node_modules/mime/CHANGELOG.md +0 -164
  536. gaia/eval/webapp/node_modules/mime/LICENSE +0 -21
  537. gaia/eval/webapp/node_modules/mime/README.md +0 -90
  538. gaia/eval/webapp/node_modules/mime/cli.js +0 -8
  539. gaia/eval/webapp/node_modules/mime/mime.js +0 -108
  540. gaia/eval/webapp/node_modules/mime/package.json +0 -44
  541. gaia/eval/webapp/node_modules/mime/src/build.js +0 -53
  542. gaia/eval/webapp/node_modules/mime/src/test.js +0 -60
  543. gaia/eval/webapp/node_modules/mime/types.json +0 -1
  544. gaia/eval/webapp/node_modules/mime-db/HISTORY.md +0 -507
  545. gaia/eval/webapp/node_modules/mime-db/LICENSE +0 -23
  546. gaia/eval/webapp/node_modules/mime-db/README.md +0 -100
  547. gaia/eval/webapp/node_modules/mime-db/db.json +0 -8519
  548. gaia/eval/webapp/node_modules/mime-db/index.js +0 -12
  549. gaia/eval/webapp/node_modules/mime-db/package.json +0 -60
  550. gaia/eval/webapp/node_modules/mime-types/HISTORY.md +0 -397
  551. gaia/eval/webapp/node_modules/mime-types/LICENSE +0 -23
  552. gaia/eval/webapp/node_modules/mime-types/README.md +0 -113
  553. gaia/eval/webapp/node_modules/mime-types/index.js +0 -188
  554. gaia/eval/webapp/node_modules/mime-types/package.json +0 -44
  555. gaia/eval/webapp/node_modules/ms/index.js +0 -152
  556. gaia/eval/webapp/node_modules/ms/license.md +0 -21
  557. gaia/eval/webapp/node_modules/ms/package.json +0 -37
  558. gaia/eval/webapp/node_modules/ms/readme.md +0 -51
  559. gaia/eval/webapp/node_modules/negotiator/HISTORY.md +0 -108
  560. gaia/eval/webapp/node_modules/negotiator/LICENSE +0 -24
  561. gaia/eval/webapp/node_modules/negotiator/README.md +0 -203
  562. gaia/eval/webapp/node_modules/negotiator/index.js +0 -82
  563. gaia/eval/webapp/node_modules/negotiator/lib/charset.js +0 -169
  564. gaia/eval/webapp/node_modules/negotiator/lib/encoding.js +0 -184
  565. gaia/eval/webapp/node_modules/negotiator/lib/language.js +0 -179
  566. gaia/eval/webapp/node_modules/negotiator/lib/mediaType.js +0 -294
  567. gaia/eval/webapp/node_modules/negotiator/package.json +0 -42
  568. gaia/eval/webapp/node_modules/object-inspect/.eslintrc +0 -53
  569. gaia/eval/webapp/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  570. gaia/eval/webapp/node_modules/object-inspect/.nycrc +0 -13
  571. gaia/eval/webapp/node_modules/object-inspect/CHANGELOG.md +0 -424
  572. gaia/eval/webapp/node_modules/object-inspect/LICENSE +0 -21
  573. gaia/eval/webapp/node_modules/object-inspect/example/all.js +0 -23
  574. gaia/eval/webapp/node_modules/object-inspect/example/circular.js +0 -6
  575. gaia/eval/webapp/node_modules/object-inspect/example/fn.js +0 -5
  576. gaia/eval/webapp/node_modules/object-inspect/example/inspect.js +0 -10
  577. gaia/eval/webapp/node_modules/object-inspect/index.js +0 -544
  578. gaia/eval/webapp/node_modules/object-inspect/package-support.json +0 -20
  579. gaia/eval/webapp/node_modules/object-inspect/package.json +0 -105
  580. gaia/eval/webapp/node_modules/object-inspect/readme.markdown +0 -84
  581. gaia/eval/webapp/node_modules/object-inspect/test/bigint.js +0 -58
  582. gaia/eval/webapp/node_modules/object-inspect/test/browser/dom.js +0 -15
  583. gaia/eval/webapp/node_modules/object-inspect/test/circular.js +0 -16
  584. gaia/eval/webapp/node_modules/object-inspect/test/deep.js +0 -12
  585. gaia/eval/webapp/node_modules/object-inspect/test/element.js +0 -53
  586. gaia/eval/webapp/node_modules/object-inspect/test/err.js +0 -48
  587. gaia/eval/webapp/node_modules/object-inspect/test/fakes.js +0 -29
  588. gaia/eval/webapp/node_modules/object-inspect/test/fn.js +0 -76
  589. gaia/eval/webapp/node_modules/object-inspect/test/global.js +0 -17
  590. gaia/eval/webapp/node_modules/object-inspect/test/has.js +0 -15
  591. gaia/eval/webapp/node_modules/object-inspect/test/holes.js +0 -15
  592. gaia/eval/webapp/node_modules/object-inspect/test/indent-option.js +0 -271
  593. gaia/eval/webapp/node_modules/object-inspect/test/inspect.js +0 -139
  594. gaia/eval/webapp/node_modules/object-inspect/test/lowbyte.js +0 -12
  595. gaia/eval/webapp/node_modules/object-inspect/test/number.js +0 -58
  596. gaia/eval/webapp/node_modules/object-inspect/test/quoteStyle.js +0 -26
  597. gaia/eval/webapp/node_modules/object-inspect/test/toStringTag.js +0 -40
  598. gaia/eval/webapp/node_modules/object-inspect/test/undef.js +0 -12
  599. gaia/eval/webapp/node_modules/object-inspect/test/values.js +0 -261
  600. gaia/eval/webapp/node_modules/object-inspect/test-core-js.js +0 -26
  601. gaia/eval/webapp/node_modules/object-inspect/util.inspect.js +0 -1
  602. gaia/eval/webapp/node_modules/on-finished/HISTORY.md +0 -98
  603. gaia/eval/webapp/node_modules/on-finished/LICENSE +0 -23
  604. gaia/eval/webapp/node_modules/on-finished/README.md +0 -162
  605. gaia/eval/webapp/node_modules/on-finished/index.js +0 -234
  606. gaia/eval/webapp/node_modules/on-finished/package.json +0 -39
  607. gaia/eval/webapp/node_modules/parseurl/HISTORY.md +0 -58
  608. gaia/eval/webapp/node_modules/parseurl/LICENSE +0 -24
  609. gaia/eval/webapp/node_modules/parseurl/README.md +0 -133
  610. gaia/eval/webapp/node_modules/parseurl/index.js +0 -158
  611. gaia/eval/webapp/node_modules/parseurl/package.json +0 -40
  612. gaia/eval/webapp/node_modules/path/.npmignore +0 -1
  613. gaia/eval/webapp/node_modules/path/LICENSE +0 -18
  614. gaia/eval/webapp/node_modules/path/README.md +0 -15
  615. gaia/eval/webapp/node_modules/path/package.json +0 -24
  616. gaia/eval/webapp/node_modules/path/path.js +0 -628
  617. gaia/eval/webapp/node_modules/path-to-regexp/LICENSE +0 -21
  618. gaia/eval/webapp/node_modules/path-to-regexp/Readme.md +0 -35
  619. gaia/eval/webapp/node_modules/path-to-regexp/index.js +0 -156
  620. gaia/eval/webapp/node_modules/path-to-regexp/package.json +0 -30
  621. gaia/eval/webapp/node_modules/process/.eslintrc +0 -21
  622. gaia/eval/webapp/node_modules/process/LICENSE +0 -22
  623. gaia/eval/webapp/node_modules/process/README.md +0 -26
  624. gaia/eval/webapp/node_modules/process/browser.js +0 -184
  625. gaia/eval/webapp/node_modules/process/index.js +0 -2
  626. gaia/eval/webapp/node_modules/process/package.json +0 -27
  627. gaia/eval/webapp/node_modules/process/test.js +0 -199
  628. gaia/eval/webapp/node_modules/proxy-addr/HISTORY.md +0 -161
  629. gaia/eval/webapp/node_modules/proxy-addr/LICENSE +0 -22
  630. gaia/eval/webapp/node_modules/proxy-addr/README.md +0 -139
  631. gaia/eval/webapp/node_modules/proxy-addr/index.js +0 -327
  632. gaia/eval/webapp/node_modules/proxy-addr/package.json +0 -47
  633. gaia/eval/webapp/node_modules/qs/.editorconfig +0 -46
  634. gaia/eval/webapp/node_modules/qs/.eslintrc +0 -38
  635. gaia/eval/webapp/node_modules/qs/.github/FUNDING.yml +0 -12
  636. gaia/eval/webapp/node_modules/qs/.nycrc +0 -13
  637. gaia/eval/webapp/node_modules/qs/CHANGELOG.md +0 -600
  638. gaia/eval/webapp/node_modules/qs/LICENSE.md +0 -29
  639. gaia/eval/webapp/node_modules/qs/README.md +0 -709
  640. gaia/eval/webapp/node_modules/qs/dist/qs.js +0 -90
  641. gaia/eval/webapp/node_modules/qs/lib/formats.js +0 -23
  642. gaia/eval/webapp/node_modules/qs/lib/index.js +0 -11
  643. gaia/eval/webapp/node_modules/qs/lib/parse.js +0 -296
  644. gaia/eval/webapp/node_modules/qs/lib/stringify.js +0 -351
  645. gaia/eval/webapp/node_modules/qs/lib/utils.js +0 -265
  646. gaia/eval/webapp/node_modules/qs/package.json +0 -91
  647. gaia/eval/webapp/node_modules/qs/test/empty-keys-cases.js +0 -267
  648. gaia/eval/webapp/node_modules/qs/test/parse.js +0 -1170
  649. gaia/eval/webapp/node_modules/qs/test/stringify.js +0 -1298
  650. gaia/eval/webapp/node_modules/qs/test/utils.js +0 -136
  651. gaia/eval/webapp/node_modules/range-parser/HISTORY.md +0 -56
  652. gaia/eval/webapp/node_modules/range-parser/LICENSE +0 -23
  653. gaia/eval/webapp/node_modules/range-parser/README.md +0 -84
  654. gaia/eval/webapp/node_modules/range-parser/index.js +0 -162
  655. gaia/eval/webapp/node_modules/range-parser/package.json +0 -44
  656. gaia/eval/webapp/node_modules/raw-body/HISTORY.md +0 -308
  657. gaia/eval/webapp/node_modules/raw-body/LICENSE +0 -22
  658. gaia/eval/webapp/node_modules/raw-body/README.md +0 -223
  659. gaia/eval/webapp/node_modules/raw-body/SECURITY.md +0 -24
  660. gaia/eval/webapp/node_modules/raw-body/index.d.ts +0 -87
  661. gaia/eval/webapp/node_modules/raw-body/index.js +0 -336
  662. gaia/eval/webapp/node_modules/raw-body/package.json +0 -49
  663. gaia/eval/webapp/node_modules/safe-buffer/LICENSE +0 -21
  664. gaia/eval/webapp/node_modules/safe-buffer/README.md +0 -584
  665. gaia/eval/webapp/node_modules/safe-buffer/index.d.ts +0 -187
  666. gaia/eval/webapp/node_modules/safe-buffer/index.js +0 -65
  667. gaia/eval/webapp/node_modules/safe-buffer/package.json +0 -51
  668. gaia/eval/webapp/node_modules/safer-buffer/LICENSE +0 -21
  669. gaia/eval/webapp/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  670. gaia/eval/webapp/node_modules/safer-buffer/Readme.md +0 -156
  671. gaia/eval/webapp/node_modules/safer-buffer/dangerous.js +0 -58
  672. gaia/eval/webapp/node_modules/safer-buffer/package.json +0 -34
  673. gaia/eval/webapp/node_modules/safer-buffer/safer.js +0 -77
  674. gaia/eval/webapp/node_modules/safer-buffer/tests.js +0 -406
  675. gaia/eval/webapp/node_modules/send/HISTORY.md +0 -526
  676. gaia/eval/webapp/node_modules/send/LICENSE +0 -23
  677. gaia/eval/webapp/node_modules/send/README.md +0 -327
  678. gaia/eval/webapp/node_modules/send/SECURITY.md +0 -24
  679. gaia/eval/webapp/node_modules/send/index.js +0 -1142
  680. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/HISTORY.md +0 -14
  681. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/LICENSE +0 -22
  682. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/README.md +0 -128
  683. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/index.js +0 -60
  684. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/package.json +0 -40
  685. gaia/eval/webapp/node_modules/send/node_modules/ms/index.js +0 -162
  686. gaia/eval/webapp/node_modules/send/node_modules/ms/license.md +0 -21
  687. gaia/eval/webapp/node_modules/send/node_modules/ms/package.json +0 -38
  688. gaia/eval/webapp/node_modules/send/node_modules/ms/readme.md +0 -59
  689. gaia/eval/webapp/node_modules/send/package.json +0 -62
  690. gaia/eval/webapp/node_modules/serve-static/HISTORY.md +0 -487
  691. gaia/eval/webapp/node_modules/serve-static/LICENSE +0 -25
  692. gaia/eval/webapp/node_modules/serve-static/README.md +0 -257
  693. gaia/eval/webapp/node_modules/serve-static/index.js +0 -209
  694. gaia/eval/webapp/node_modules/serve-static/package.json +0 -42
  695. gaia/eval/webapp/node_modules/setprototypeof/LICENSE +0 -13
  696. gaia/eval/webapp/node_modules/setprototypeof/README.md +0 -31
  697. gaia/eval/webapp/node_modules/setprototypeof/index.d.ts +0 -2
  698. gaia/eval/webapp/node_modules/setprototypeof/index.js +0 -17
  699. gaia/eval/webapp/node_modules/setprototypeof/package.json +0 -38
  700. gaia/eval/webapp/node_modules/setprototypeof/test/index.js +0 -24
  701. gaia/eval/webapp/node_modules/side-channel/.editorconfig +0 -9
  702. gaia/eval/webapp/node_modules/side-channel/.eslintrc +0 -12
  703. gaia/eval/webapp/node_modules/side-channel/.github/FUNDING.yml +0 -12
  704. gaia/eval/webapp/node_modules/side-channel/.nycrc +0 -13
  705. gaia/eval/webapp/node_modules/side-channel/CHANGELOG.md +0 -110
  706. gaia/eval/webapp/node_modules/side-channel/LICENSE +0 -21
  707. gaia/eval/webapp/node_modules/side-channel/README.md +0 -61
  708. gaia/eval/webapp/node_modules/side-channel/index.d.ts +0 -14
  709. gaia/eval/webapp/node_modules/side-channel/index.js +0 -43
  710. gaia/eval/webapp/node_modules/side-channel/package.json +0 -85
  711. gaia/eval/webapp/node_modules/side-channel/test/index.js +0 -104
  712. gaia/eval/webapp/node_modules/side-channel/tsconfig.json +0 -9
  713. gaia/eval/webapp/node_modules/side-channel-list/.editorconfig +0 -9
  714. gaia/eval/webapp/node_modules/side-channel-list/.eslintrc +0 -11
  715. gaia/eval/webapp/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  716. gaia/eval/webapp/node_modules/side-channel-list/.nycrc +0 -13
  717. gaia/eval/webapp/node_modules/side-channel-list/CHANGELOG.md +0 -15
  718. gaia/eval/webapp/node_modules/side-channel-list/LICENSE +0 -21
  719. gaia/eval/webapp/node_modules/side-channel-list/README.md +0 -62
  720. gaia/eval/webapp/node_modules/side-channel-list/index.d.ts +0 -13
  721. gaia/eval/webapp/node_modules/side-channel-list/index.js +0 -113
  722. gaia/eval/webapp/node_modules/side-channel-list/list.d.ts +0 -14
  723. gaia/eval/webapp/node_modules/side-channel-list/package.json +0 -77
  724. gaia/eval/webapp/node_modules/side-channel-list/test/index.js +0 -104
  725. gaia/eval/webapp/node_modules/side-channel-list/tsconfig.json +0 -9
  726. gaia/eval/webapp/node_modules/side-channel-map/.editorconfig +0 -9
  727. gaia/eval/webapp/node_modules/side-channel-map/.eslintrc +0 -11
  728. gaia/eval/webapp/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  729. gaia/eval/webapp/node_modules/side-channel-map/.nycrc +0 -13
  730. gaia/eval/webapp/node_modules/side-channel-map/CHANGELOG.md +0 -22
  731. gaia/eval/webapp/node_modules/side-channel-map/LICENSE +0 -21
  732. gaia/eval/webapp/node_modules/side-channel-map/README.md +0 -62
  733. gaia/eval/webapp/node_modules/side-channel-map/index.d.ts +0 -15
  734. gaia/eval/webapp/node_modules/side-channel-map/index.js +0 -68
  735. gaia/eval/webapp/node_modules/side-channel-map/package.json +0 -80
  736. gaia/eval/webapp/node_modules/side-channel-map/test/index.js +0 -114
  737. gaia/eval/webapp/node_modules/side-channel-map/tsconfig.json +0 -9
  738. gaia/eval/webapp/node_modules/side-channel-weakmap/.editorconfig +0 -9
  739. gaia/eval/webapp/node_modules/side-channel-weakmap/.eslintrc +0 -12
  740. gaia/eval/webapp/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  741. gaia/eval/webapp/node_modules/side-channel-weakmap/.nycrc +0 -13
  742. gaia/eval/webapp/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  743. gaia/eval/webapp/node_modules/side-channel-weakmap/LICENSE +0 -21
  744. gaia/eval/webapp/node_modules/side-channel-weakmap/README.md +0 -62
  745. gaia/eval/webapp/node_modules/side-channel-weakmap/index.d.ts +0 -15
  746. gaia/eval/webapp/node_modules/side-channel-weakmap/index.js +0 -84
  747. gaia/eval/webapp/node_modules/side-channel-weakmap/package.json +0 -87
  748. gaia/eval/webapp/node_modules/side-channel-weakmap/test/index.js +0 -114
  749. gaia/eval/webapp/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  750. gaia/eval/webapp/node_modules/statuses/HISTORY.md +0 -82
  751. gaia/eval/webapp/node_modules/statuses/LICENSE +0 -23
  752. gaia/eval/webapp/node_modules/statuses/README.md +0 -136
  753. gaia/eval/webapp/node_modules/statuses/codes.json +0 -65
  754. gaia/eval/webapp/node_modules/statuses/index.js +0 -146
  755. gaia/eval/webapp/node_modules/statuses/package.json +0 -49
  756. gaia/eval/webapp/node_modules/toidentifier/HISTORY.md +0 -9
  757. gaia/eval/webapp/node_modules/toidentifier/LICENSE +0 -21
  758. gaia/eval/webapp/node_modules/toidentifier/README.md +0 -61
  759. gaia/eval/webapp/node_modules/toidentifier/index.js +0 -32
  760. gaia/eval/webapp/node_modules/toidentifier/package.json +0 -38
  761. gaia/eval/webapp/node_modules/type-is/HISTORY.md +0 -259
  762. gaia/eval/webapp/node_modules/type-is/LICENSE +0 -23
  763. gaia/eval/webapp/node_modules/type-is/README.md +0 -170
  764. gaia/eval/webapp/node_modules/type-is/index.js +0 -266
  765. gaia/eval/webapp/node_modules/type-is/package.json +0 -45
  766. gaia/eval/webapp/node_modules/unpipe/HISTORY.md +0 -4
  767. gaia/eval/webapp/node_modules/unpipe/LICENSE +0 -22
  768. gaia/eval/webapp/node_modules/unpipe/README.md +0 -43
  769. gaia/eval/webapp/node_modules/unpipe/index.js +0 -69
  770. gaia/eval/webapp/node_modules/unpipe/package.json +0 -27
  771. gaia/eval/webapp/node_modules/util/LICENSE +0 -18
  772. gaia/eval/webapp/node_modules/util/README.md +0 -15
  773. gaia/eval/webapp/node_modules/util/node_modules/inherits/LICENSE +0 -16
  774. gaia/eval/webapp/node_modules/util/node_modules/inherits/README.md +0 -42
  775. gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits.js +0 -7
  776. gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits_browser.js +0 -23
  777. gaia/eval/webapp/node_modules/util/node_modules/inherits/package.json +0 -29
  778. gaia/eval/webapp/node_modules/util/package.json +0 -35
  779. gaia/eval/webapp/node_modules/util/support/isBuffer.js +0 -3
  780. gaia/eval/webapp/node_modules/util/support/isBufferBrowser.js +0 -6
  781. gaia/eval/webapp/node_modules/util/util.js +0 -586
  782. gaia/eval/webapp/node_modules/utils-merge/.npmignore +0 -9
  783. gaia/eval/webapp/node_modules/utils-merge/LICENSE +0 -20
  784. gaia/eval/webapp/node_modules/utils-merge/README.md +0 -34
  785. gaia/eval/webapp/node_modules/utils-merge/index.js +0 -23
  786. gaia/eval/webapp/node_modules/utils-merge/package.json +0 -40
  787. gaia/eval/webapp/node_modules/vary/HISTORY.md +0 -39
  788. gaia/eval/webapp/node_modules/vary/LICENSE +0 -22
  789. gaia/eval/webapp/node_modules/vary/README.md +0 -101
  790. gaia/eval/webapp/node_modules/vary/index.js +0 -149
  791. gaia/eval/webapp/node_modules/vary/package.json +0 -43
  792. {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/WHEEL +0 -0
  793. {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/licenses/LICENSE.md +0 -0
  794. {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,87 @@
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ """
5
+ GAIA Testing Utilities
6
+
7
+ Provides mocks, fixtures, and assertions for testing GAIA agents
8
+ without requiring real LLM/VLM services or databases.
9
+
10
+ Example:
11
+ from gaia.testing import (
12
+ MockLLMProvider,
13
+ MockVLMClient,
14
+ create_test_agent,
15
+ temp_directory,
16
+ assert_llm_called,
17
+ )
18
+
19
+ def test_my_agent():
20
+ agent = create_test_agent(
21
+ MyAgent,
22
+ mock_responses=["I'll search for that", "Found results"],
23
+ )
24
+
25
+ result = agent.process_query("Find data")
26
+
27
+ assert_llm_called(agent._mock_llm)
28
+ assert "results" in result["answer"].lower()
29
+ """
30
+
31
+ # Assertions
32
+ from gaia.testing.assertions import (
33
+ assert_agent_completed,
34
+ assert_llm_called,
35
+ assert_llm_prompt_contains,
36
+ assert_no_errors,
37
+ assert_result_has_keys,
38
+ assert_result_value,
39
+ assert_tool_args,
40
+ assert_tool_called,
41
+ assert_vlm_called,
42
+ )
43
+
44
+ # Fixtures
45
+ from gaia.testing.fixtures import (
46
+ AgentTestContext,
47
+ create_test_agent,
48
+ temp_directory,
49
+ temp_file,
50
+ )
51
+
52
+ # Mocks
53
+ from gaia.testing.mocks import (
54
+ MockLLMProvider,
55
+ MockToolExecutor,
56
+ MockVLMClient,
57
+ )
58
+
59
+ # Re-export temp_db from database.testing for convenience
60
+ try:
61
+ from gaia.database.testing import temp_db
62
+ except ImportError:
63
+ # Database module may not be available
64
+ temp_db = None
65
+
66
+ __all__ = [
67
+ # Mocks
68
+ "MockLLMProvider",
69
+ "MockVLMClient",
70
+ "MockToolExecutor",
71
+ # Fixtures
72
+ "create_test_agent",
73
+ "temp_directory",
74
+ "temp_file",
75
+ "temp_db",
76
+ "AgentTestContext",
77
+ # Assertions
78
+ "assert_llm_called",
79
+ "assert_llm_prompt_contains",
80
+ "assert_vlm_called",
81
+ "assert_tool_called",
82
+ "assert_tool_args",
83
+ "assert_result_has_keys",
84
+ "assert_result_value",
85
+ "assert_agent_completed",
86
+ "assert_no_errors",
87
+ ]
@@ -0,0 +1,330 @@
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ """Assertion helpers for testing GAIA agents."""
5
+
6
+ from typing import Any, Dict, List, Optional, Union
7
+
8
+ from gaia.testing.mocks import MockLLMProvider, MockToolExecutor, MockVLMClient
9
+
10
+
11
+ def assert_llm_called(
12
+ mock_llm: MockLLMProvider,
13
+ times: Optional[int] = None,
14
+ min_times: Optional[int] = None,
15
+ max_times: Optional[int] = None,
16
+ ) -> None:
17
+ """
18
+ Assert that the mock LLM was called.
19
+
20
+ Args:
21
+ mock_llm: MockLLMProvider instance
22
+ times: Exact number of expected calls (optional)
23
+ min_times: Minimum number of calls (optional)
24
+ max_times: Maximum number of calls (optional)
25
+
26
+ Raises:
27
+ AssertionError: If call count doesn't match expectations
28
+
29
+ Example:
30
+ from gaia.testing import MockLLMProvider, assert_llm_called
31
+
32
+ mock_llm = MockLLMProvider(responses=["Hello"])
33
+ mock_llm.generate("Test")
34
+
35
+ assert_llm_called(mock_llm) # At least once
36
+ assert_llm_called(mock_llm, times=1) # Exactly once
37
+ assert_llm_called(mock_llm, min_times=1, max_times=5) # Range
38
+ """
39
+ call_count = mock_llm.call_count
40
+
41
+ if times is not None:
42
+ assert call_count == times, (
43
+ f"Expected LLM to be called {times} time(s), "
44
+ f"but was called {call_count} time(s)"
45
+ )
46
+ else:
47
+ if min_times is None and max_times is None:
48
+ # Just check it was called at least once
49
+ assert call_count > 0, "Expected LLM to be called at least once"
50
+
51
+ if min_times is not None:
52
+ assert call_count >= min_times, (
53
+ f"Expected LLM to be called at least {min_times} time(s), "
54
+ f"but was called {call_count} time(s)"
55
+ )
56
+
57
+ if max_times is not None:
58
+ assert call_count <= max_times, (
59
+ f"Expected LLM to be called at most {max_times} time(s), "
60
+ f"but was called {call_count} time(s)"
61
+ )
62
+
63
+
64
+ def assert_llm_prompt_contains(
65
+ mock_llm: MockLLMProvider,
66
+ text: str,
67
+ call_index: int = -1,
68
+ ) -> None:
69
+ """
70
+ Assert that an LLM prompt contains specific text.
71
+
72
+ Args:
73
+ mock_llm: MockLLMProvider instance
74
+ text: Text that should be in the prompt
75
+ call_index: Which call to check (-1 = last call, 0 = first call)
76
+
77
+ Raises:
78
+ AssertionError: If text not found in prompt
79
+
80
+ Example:
81
+ assert_llm_prompt_contains(mock_llm, "customer")
82
+ assert_llm_prompt_contains(mock_llm, "search", call_index=0)
83
+ """
84
+ assert mock_llm.call_history, "LLM was never called"
85
+
86
+ call = mock_llm.call_history[call_index]
87
+ prompt = call.get("prompt", "")
88
+
89
+ assert (
90
+ text in prompt
91
+ ), f"Expected prompt to contain '{text}', but prompt was:\n{prompt[:500]}"
92
+
93
+
94
+ def assert_vlm_called(
95
+ mock_vlm: MockVLMClient,
96
+ times: Optional[int] = None,
97
+ ) -> None:
98
+ """
99
+ Assert that the mock VLM was called.
100
+
101
+ Args:
102
+ mock_vlm: MockVLMClient instance
103
+ times: Exact number of expected calls (optional)
104
+
105
+ Raises:
106
+ AssertionError: If call count doesn't match
107
+
108
+ Example:
109
+ assert_vlm_called(mock_vlm) # At least once
110
+ assert_vlm_called(mock_vlm, times=2) # Exactly twice
111
+ """
112
+ call_count = mock_vlm.call_count
113
+
114
+ if times is not None:
115
+ assert call_count == times, (
116
+ f"Expected VLM to be called {times} time(s), "
117
+ f"but was called {call_count} time(s)"
118
+ )
119
+ else:
120
+ assert call_count > 0, "Expected VLM to be called at least once"
121
+
122
+
123
+ def assert_tool_called(
124
+ executor: MockToolExecutor,
125
+ tool_name: str,
126
+ times: Optional[int] = None,
127
+ ) -> None:
128
+ """
129
+ Assert that a specific tool was called.
130
+
131
+ Args:
132
+ executor: MockToolExecutor instance
133
+ tool_name: Name of the tool
134
+ times: Exact number of expected calls (optional)
135
+
136
+ Raises:
137
+ AssertionError: If tool wasn't called or count doesn't match
138
+
139
+ Example:
140
+ from gaia.testing import MockToolExecutor, assert_tool_called
141
+
142
+ executor = MockToolExecutor()
143
+ executor.execute("search", {"query": "test"})
144
+
145
+ assert_tool_called(executor, "search")
146
+ assert_tool_called(executor, "search", times=1)
147
+ """
148
+ calls = executor.get_tool_calls(tool_name)
149
+
150
+ if times is not None:
151
+ assert len(calls) == times, (
152
+ f"Expected tool '{tool_name}' to be called {times} time(s), "
153
+ f"but was called {len(calls)} time(s)"
154
+ )
155
+ else:
156
+ assert len(calls) > 0, (
157
+ f"Expected tool '{tool_name}' to be called, but it was never called. "
158
+ f"Tools called: {executor.tool_names_called}"
159
+ )
160
+
161
+
162
+ def assert_tool_args(
163
+ executor: MockToolExecutor,
164
+ tool_name: str,
165
+ expected_args: Dict[str, Any],
166
+ call_index: int = 0,
167
+ ) -> None:
168
+ """
169
+ Assert that a tool was called with specific arguments.
170
+
171
+ Args:
172
+ executor: MockToolExecutor instance
173
+ tool_name: Name of the tool
174
+ expected_args: Expected arguments (subset matching)
175
+ call_index: Which call to check (0 = first call)
176
+
177
+ Raises:
178
+ AssertionError: If arguments don't match
179
+
180
+ Example:
181
+ executor.execute("search", {"query": "test", "limit": 10})
182
+ assert_tool_args(executor, "search", {"query": "test"})
183
+ """
184
+ actual_args = executor.get_tool_args(tool_name, call_index)
185
+
186
+ assert (
187
+ actual_args is not None
188
+ ), f"Tool '{tool_name}' was not called (or call_index {call_index} out of range)"
189
+
190
+ for key, expected_value in expected_args.items():
191
+ assert key in actual_args, (
192
+ f"Expected argument '{key}' not found in tool call. "
193
+ f"Actual args: {actual_args}"
194
+ )
195
+ assert actual_args[key] == expected_value, (
196
+ f"Argument '{key}' mismatch. "
197
+ f"Expected: {expected_value}, Actual: {actual_args[key]}"
198
+ )
199
+
200
+
201
+ def assert_result_has_keys(
202
+ result: Dict[str, Any],
203
+ keys: List[str],
204
+ ) -> None:
205
+ """
206
+ Assert that a result dictionary has specific keys.
207
+
208
+ Args:
209
+ result: Result dictionary to check
210
+ keys: List of required keys
211
+
212
+ Raises:
213
+ AssertionError: If any key is missing
214
+
215
+ Example:
216
+ result = agent.process_query("test")
217
+ assert_result_has_keys(result, ["answer", "steps_taken"])
218
+ """
219
+ assert isinstance(
220
+ result, dict
221
+ ), f"Expected result to be dict, got {type(result).__name__}"
222
+
223
+ missing_keys = [key for key in keys if key not in result]
224
+ if missing_keys:
225
+ raise AssertionError(
226
+ f"Result missing required keys: {missing_keys}. "
227
+ f"Available keys: {list(result.keys())}"
228
+ )
229
+
230
+
231
+ def assert_result_value(
232
+ result: Dict[str, Any],
233
+ key: str,
234
+ expected: Any,
235
+ ) -> None:
236
+ """
237
+ Assert that a result has a specific value for a key.
238
+
239
+ Args:
240
+ result: Result dictionary
241
+ key: Key to check
242
+ expected: Expected value
243
+
244
+ Raises:
245
+ AssertionError: If value doesn't match
246
+
247
+ Example:
248
+ assert_result_value(result, "status", "success")
249
+ """
250
+ assert key in result, f"Key '{key}' not found in result: {list(result.keys())}"
251
+ actual = result[key]
252
+ assert (
253
+ actual == expected
254
+ ), f"Value mismatch for key '{key}'. Expected: {expected}, Actual: {actual}"
255
+
256
+
257
+ def assert_agent_completed(
258
+ result: Union[Dict[str, Any], str],
259
+ has_answer: bool = True,
260
+ ) -> None:
261
+ """
262
+ Assert that an agent completed processing successfully.
263
+
264
+ Args:
265
+ result: Result from agent.process_query()
266
+ has_answer: Whether to check for an 'answer' key
267
+
268
+ Raises:
269
+ AssertionError: If agent didn't complete properly
270
+
271
+ Example:
272
+ result = agent.process_query("test")
273
+ assert_agent_completed(result)
274
+ """
275
+ # Handle string results (some agents return strings directly)
276
+ if isinstance(result, str):
277
+ assert len(result) > 0, "Agent returned empty string"
278
+ return
279
+
280
+ assert isinstance(
281
+ result, dict
282
+ ), f"Expected result to be dict or str, got {type(result).__name__}"
283
+
284
+ # Check for error indicators
285
+ if "error" in result and result["error"]:
286
+ raise AssertionError(f"Agent returned error: {result['error']}")
287
+
288
+ if "status" in result and result["status"] == "error":
289
+ error_msg = result.get("message", result.get("error", "Unknown error"))
290
+ raise AssertionError(f"Agent returned error status: {error_msg}")
291
+
292
+ # Check for answer if required
293
+ if has_answer:
294
+ assert "answer" in result or "response" in result or "result" in result, (
295
+ "Agent result missing answer/response/result key. "
296
+ f"Keys present: {list(result.keys())}"
297
+ )
298
+
299
+
300
+ def assert_no_errors(result: Dict[str, Any]) -> None:
301
+ """
302
+ Assert that a result contains no errors.
303
+
304
+ Args:
305
+ result: Result dictionary
306
+
307
+ Raises:
308
+ AssertionError: If result contains error indicators
309
+
310
+ Example:
311
+ result = agent.process_query("test")
312
+ assert_no_errors(result)
313
+ """
314
+ if not isinstance(result, dict):
315
+ return # Non-dict results don't have error keys
316
+
317
+ # Check various error patterns
318
+ if "error" in result and result["error"]:
319
+ raise AssertionError(f"Result contains error: {result['error']}")
320
+
321
+ if "errors" in result and result["errors"]:
322
+ raise AssertionError(f"Result contains errors: {result['errors']}")
323
+
324
+ if result.get("status") == "error":
325
+ msg = result.get("message", result.get("error", "Unknown"))
326
+ raise AssertionError(f"Result has error status: {msg}")
327
+
328
+ if result.get("success") is False:
329
+ msg = result.get("message", result.get("error", "Unknown"))
330
+ raise AssertionError(f"Result indicates failure: {msg}")