amd-gaia 0.14.2__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 (788) hide show
  1. {amd_gaia-0.14.2.dist-info → amd_gaia-0.14.3.dist-info}/METADATA +5 -2
  2. amd_gaia-0.14.3.dist-info/RECORD +168 -0
  3. {amd_gaia-0.14.2.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 +110 -33
  8. gaia/agents/base/api_agent.py +1 -1
  9. gaia/agents/base/console.py +399 -15
  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 +36 -153
  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 +1 -1
  35. gaia/agents/code/orchestration/checklist_generator.py +1 -1
  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 +212 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  62. gaia/agents/code/tools/code_tools.py +1 -1
  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 +1 -2
  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/audio/__init__.py +1 -1
  91. gaia/audio/audio_client.py +1 -1
  92. gaia/audio/audio_recorder.py +1 -1
  93. gaia/audio/kokoro_tts.py +1 -1
  94. gaia/audio/whisper_asr.py +1 -1
  95. gaia/chat/__init__.py +1 -1
  96. gaia/chat/prompts.py +1 -1
  97. gaia/chat/sdk.py +25 -0
  98. gaia/cli.py +2 -2
  99. gaia/database/__init__.py +10 -0
  100. gaia/database/agent.py +176 -0
  101. gaia/database/mixin.py +290 -0
  102. gaia/database/testing.py +64 -0
  103. gaia/eval/batch_experiment.py +1 -1
  104. gaia/eval/claude.py +1 -1
  105. gaia/eval/config.py +1 -1
  106. gaia/eval/email_generator.py +1 -1
  107. gaia/eval/eval.py +1 -1
  108. gaia/eval/groundtruth.py +1 -1
  109. gaia/eval/transcript_generator.py +1 -1
  110. gaia/eval/webapp/public/app.js +1 -1
  111. gaia/eval/webapp/server.js +1 -1
  112. gaia/eval/webapp/test-setup.js +1 -1
  113. gaia/llm/__init__.py +1 -1
  114. gaia/llm/lemonade_client.py +149 -11
  115. gaia/llm/lemonade_manager.py +36 -11
  116. gaia/llm/llm_client.py +1 -1
  117. gaia/llm/vlm_client.py +93 -18
  118. gaia/logger.py +1 -1
  119. gaia/mcp/agent_mcp_server.py +1 -1
  120. gaia/mcp/blender_mcp_client.py +1 -1
  121. gaia/mcp/blender_mcp_server.py +1 -1
  122. gaia/mcp/context7_cache.py +1 -1
  123. gaia/mcp/servers/__init__.py +1 -1
  124. gaia/mcp/servers/docker_mcp.py +1 -1
  125. gaia/security.py +1 -1
  126. gaia/testing/__init__.py +87 -0
  127. gaia/testing/assertions.py +330 -0
  128. gaia/testing/fixtures.py +333 -0
  129. gaia/testing/mocks.py +493 -0
  130. gaia/util.py +1 -1
  131. gaia/utils/__init__.py +33 -0
  132. gaia/utils/file_watcher.py +675 -0
  133. gaia/utils/parsing.py +223 -0
  134. gaia/version.py +2 -2
  135. amd_gaia-0.14.2.dist-info/RECORD +0 -800
  136. gaia/eval/webapp/node_modules/.bin/mime +0 -16
  137. gaia/eval/webapp/node_modules/.bin/mime.cmd +0 -17
  138. gaia/eval/webapp/node_modules/.bin/mime.ps1 +0 -28
  139. gaia/eval/webapp/node_modules/.package-lock.json +0 -865
  140. gaia/eval/webapp/node_modules/accepts/HISTORY.md +0 -243
  141. gaia/eval/webapp/node_modules/accepts/LICENSE +0 -23
  142. gaia/eval/webapp/node_modules/accepts/README.md +0 -140
  143. gaia/eval/webapp/node_modules/accepts/index.js +0 -238
  144. gaia/eval/webapp/node_modules/accepts/package.json +0 -47
  145. gaia/eval/webapp/node_modules/array-flatten/LICENSE +0 -21
  146. gaia/eval/webapp/node_modules/array-flatten/README.md +0 -43
  147. gaia/eval/webapp/node_modules/array-flatten/array-flatten.js +0 -64
  148. gaia/eval/webapp/node_modules/array-flatten/package.json +0 -39
  149. gaia/eval/webapp/node_modules/body-parser/HISTORY.md +0 -672
  150. gaia/eval/webapp/node_modules/body-parser/LICENSE +0 -23
  151. gaia/eval/webapp/node_modules/body-parser/README.md +0 -476
  152. gaia/eval/webapp/node_modules/body-parser/SECURITY.md +0 -25
  153. gaia/eval/webapp/node_modules/body-parser/index.js +0 -156
  154. gaia/eval/webapp/node_modules/body-parser/lib/read.js +0 -205
  155. gaia/eval/webapp/node_modules/body-parser/lib/types/json.js +0 -247
  156. gaia/eval/webapp/node_modules/body-parser/lib/types/raw.js +0 -101
  157. gaia/eval/webapp/node_modules/body-parser/lib/types/text.js +0 -121
  158. gaia/eval/webapp/node_modules/body-parser/lib/types/urlencoded.js +0 -307
  159. gaia/eval/webapp/node_modules/body-parser/package.json +0 -56
  160. gaia/eval/webapp/node_modules/bytes/History.md +0 -97
  161. gaia/eval/webapp/node_modules/bytes/LICENSE +0 -23
  162. gaia/eval/webapp/node_modules/bytes/Readme.md +0 -152
  163. gaia/eval/webapp/node_modules/bytes/index.js +0 -170
  164. gaia/eval/webapp/node_modules/bytes/package.json +0 -42
  165. gaia/eval/webapp/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  166. gaia/eval/webapp/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  167. gaia/eval/webapp/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  168. gaia/eval/webapp/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  169. gaia/eval/webapp/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  170. gaia/eval/webapp/node_modules/call-bind-apply-helpers/README.md +0 -62
  171. gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  172. gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  173. gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  174. gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  175. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  176. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  177. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  178. gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  179. gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  180. gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.js +0 -15
  181. gaia/eval/webapp/node_modules/call-bind-apply-helpers/package.json +0 -85
  182. gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  183. gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  184. gaia/eval/webapp/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  185. gaia/eval/webapp/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  186. gaia/eval/webapp/node_modules/call-bound/.eslintrc +0 -13
  187. gaia/eval/webapp/node_modules/call-bound/.github/FUNDING.yml +0 -12
  188. gaia/eval/webapp/node_modules/call-bound/.nycrc +0 -9
  189. gaia/eval/webapp/node_modules/call-bound/CHANGELOG.md +0 -42
  190. gaia/eval/webapp/node_modules/call-bound/LICENSE +0 -21
  191. gaia/eval/webapp/node_modules/call-bound/README.md +0 -53
  192. gaia/eval/webapp/node_modules/call-bound/index.d.ts +0 -94
  193. gaia/eval/webapp/node_modules/call-bound/index.js +0 -19
  194. gaia/eval/webapp/node_modules/call-bound/package.json +0 -99
  195. gaia/eval/webapp/node_modules/call-bound/test/index.js +0 -61
  196. gaia/eval/webapp/node_modules/call-bound/tsconfig.json +0 -10
  197. gaia/eval/webapp/node_modules/content-disposition/HISTORY.md +0 -60
  198. gaia/eval/webapp/node_modules/content-disposition/LICENSE +0 -22
  199. gaia/eval/webapp/node_modules/content-disposition/README.md +0 -142
  200. gaia/eval/webapp/node_modules/content-disposition/index.js +0 -458
  201. gaia/eval/webapp/node_modules/content-disposition/package.json +0 -44
  202. gaia/eval/webapp/node_modules/content-type/HISTORY.md +0 -29
  203. gaia/eval/webapp/node_modules/content-type/LICENSE +0 -22
  204. gaia/eval/webapp/node_modules/content-type/README.md +0 -94
  205. gaia/eval/webapp/node_modules/content-type/index.js +0 -225
  206. gaia/eval/webapp/node_modules/content-type/package.json +0 -42
  207. gaia/eval/webapp/node_modules/cookie/LICENSE +0 -24
  208. gaia/eval/webapp/node_modules/cookie/README.md +0 -317
  209. gaia/eval/webapp/node_modules/cookie/SECURITY.md +0 -25
  210. gaia/eval/webapp/node_modules/cookie/index.js +0 -334
  211. gaia/eval/webapp/node_modules/cookie/package.json +0 -44
  212. gaia/eval/webapp/node_modules/cookie-signature/.npmignore +0 -4
  213. gaia/eval/webapp/node_modules/cookie-signature/History.md +0 -38
  214. gaia/eval/webapp/node_modules/cookie-signature/Readme.md +0 -42
  215. gaia/eval/webapp/node_modules/cookie-signature/index.js +0 -51
  216. gaia/eval/webapp/node_modules/cookie-signature/package.json +0 -18
  217. gaia/eval/webapp/node_modules/debug/.coveralls.yml +0 -1
  218. gaia/eval/webapp/node_modules/debug/.eslintrc +0 -11
  219. gaia/eval/webapp/node_modules/debug/.npmignore +0 -9
  220. gaia/eval/webapp/node_modules/debug/.travis.yml +0 -14
  221. gaia/eval/webapp/node_modules/debug/CHANGELOG.md +0 -362
  222. gaia/eval/webapp/node_modules/debug/LICENSE +0 -19
  223. gaia/eval/webapp/node_modules/debug/Makefile +0 -50
  224. gaia/eval/webapp/node_modules/debug/README.md +0 -312
  225. gaia/eval/webapp/node_modules/debug/component.json +0 -19
  226. gaia/eval/webapp/node_modules/debug/karma.conf.js +0 -70
  227. gaia/eval/webapp/node_modules/debug/node.js +0 -1
  228. gaia/eval/webapp/node_modules/debug/package.json +0 -49
  229. gaia/eval/webapp/node_modules/debug/src/browser.js +0 -185
  230. gaia/eval/webapp/node_modules/debug/src/debug.js +0 -202
  231. gaia/eval/webapp/node_modules/debug/src/index.js +0 -10
  232. gaia/eval/webapp/node_modules/debug/src/inspector-log.js +0 -15
  233. gaia/eval/webapp/node_modules/debug/src/node.js +0 -248
  234. gaia/eval/webapp/node_modules/depd/History.md +0 -103
  235. gaia/eval/webapp/node_modules/depd/LICENSE +0 -22
  236. gaia/eval/webapp/node_modules/depd/Readme.md +0 -280
  237. gaia/eval/webapp/node_modules/depd/index.js +0 -538
  238. gaia/eval/webapp/node_modules/depd/lib/browser/index.js +0 -77
  239. gaia/eval/webapp/node_modules/depd/package.json +0 -45
  240. gaia/eval/webapp/node_modules/destroy/LICENSE +0 -23
  241. gaia/eval/webapp/node_modules/destroy/README.md +0 -63
  242. gaia/eval/webapp/node_modules/destroy/index.js +0 -209
  243. gaia/eval/webapp/node_modules/destroy/package.json +0 -48
  244. gaia/eval/webapp/node_modules/dunder-proto/.eslintrc +0 -5
  245. gaia/eval/webapp/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  246. gaia/eval/webapp/node_modules/dunder-proto/.nycrc +0 -13
  247. gaia/eval/webapp/node_modules/dunder-proto/CHANGELOG.md +0 -24
  248. gaia/eval/webapp/node_modules/dunder-proto/LICENSE +0 -21
  249. gaia/eval/webapp/node_modules/dunder-proto/README.md +0 -54
  250. gaia/eval/webapp/node_modules/dunder-proto/get.d.ts +0 -5
  251. gaia/eval/webapp/node_modules/dunder-proto/get.js +0 -30
  252. gaia/eval/webapp/node_modules/dunder-proto/package.json +0 -76
  253. gaia/eval/webapp/node_modules/dunder-proto/set.d.ts +0 -5
  254. gaia/eval/webapp/node_modules/dunder-proto/set.js +0 -35
  255. gaia/eval/webapp/node_modules/dunder-proto/test/get.js +0 -34
  256. gaia/eval/webapp/node_modules/dunder-proto/test/index.js +0 -4
  257. gaia/eval/webapp/node_modules/dunder-proto/test/set.js +0 -50
  258. gaia/eval/webapp/node_modules/dunder-proto/tsconfig.json +0 -9
  259. gaia/eval/webapp/node_modules/ee-first/LICENSE +0 -22
  260. gaia/eval/webapp/node_modules/ee-first/README.md +0 -80
  261. gaia/eval/webapp/node_modules/ee-first/index.js +0 -95
  262. gaia/eval/webapp/node_modules/ee-first/package.json +0 -29
  263. gaia/eval/webapp/node_modules/encodeurl/LICENSE +0 -22
  264. gaia/eval/webapp/node_modules/encodeurl/README.md +0 -109
  265. gaia/eval/webapp/node_modules/encodeurl/index.js +0 -60
  266. gaia/eval/webapp/node_modules/encodeurl/package.json +0 -40
  267. gaia/eval/webapp/node_modules/es-define-property/.eslintrc +0 -13
  268. gaia/eval/webapp/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  269. gaia/eval/webapp/node_modules/es-define-property/.nycrc +0 -9
  270. gaia/eval/webapp/node_modules/es-define-property/CHANGELOG.md +0 -29
  271. gaia/eval/webapp/node_modules/es-define-property/LICENSE +0 -21
  272. gaia/eval/webapp/node_modules/es-define-property/README.md +0 -49
  273. gaia/eval/webapp/node_modules/es-define-property/index.d.ts +0 -3
  274. gaia/eval/webapp/node_modules/es-define-property/index.js +0 -14
  275. gaia/eval/webapp/node_modules/es-define-property/package.json +0 -81
  276. gaia/eval/webapp/node_modules/es-define-property/test/index.js +0 -56
  277. gaia/eval/webapp/node_modules/es-define-property/tsconfig.json +0 -10
  278. gaia/eval/webapp/node_modules/es-errors/.eslintrc +0 -5
  279. gaia/eval/webapp/node_modules/es-errors/.github/FUNDING.yml +0 -12
  280. gaia/eval/webapp/node_modules/es-errors/CHANGELOG.md +0 -40
  281. gaia/eval/webapp/node_modules/es-errors/LICENSE +0 -21
  282. gaia/eval/webapp/node_modules/es-errors/README.md +0 -55
  283. gaia/eval/webapp/node_modules/es-errors/eval.d.ts +0 -3
  284. gaia/eval/webapp/node_modules/es-errors/eval.js +0 -4
  285. gaia/eval/webapp/node_modules/es-errors/index.d.ts +0 -3
  286. gaia/eval/webapp/node_modules/es-errors/index.js +0 -4
  287. gaia/eval/webapp/node_modules/es-errors/package.json +0 -80
  288. gaia/eval/webapp/node_modules/es-errors/range.d.ts +0 -3
  289. gaia/eval/webapp/node_modules/es-errors/range.js +0 -4
  290. gaia/eval/webapp/node_modules/es-errors/ref.d.ts +0 -3
  291. gaia/eval/webapp/node_modules/es-errors/ref.js +0 -4
  292. gaia/eval/webapp/node_modules/es-errors/syntax.d.ts +0 -3
  293. gaia/eval/webapp/node_modules/es-errors/syntax.js +0 -4
  294. gaia/eval/webapp/node_modules/es-errors/test/index.js +0 -19
  295. gaia/eval/webapp/node_modules/es-errors/tsconfig.json +0 -49
  296. gaia/eval/webapp/node_modules/es-errors/type.d.ts +0 -3
  297. gaia/eval/webapp/node_modules/es-errors/type.js +0 -4
  298. gaia/eval/webapp/node_modules/es-errors/uri.d.ts +0 -3
  299. gaia/eval/webapp/node_modules/es-errors/uri.js +0 -4
  300. gaia/eval/webapp/node_modules/es-object-atoms/.eslintrc +0 -16
  301. gaia/eval/webapp/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  302. gaia/eval/webapp/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  303. gaia/eval/webapp/node_modules/es-object-atoms/LICENSE +0 -21
  304. gaia/eval/webapp/node_modules/es-object-atoms/README.md +0 -63
  305. gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  306. gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  307. gaia/eval/webapp/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  308. gaia/eval/webapp/node_modules/es-object-atoms/ToObject.js +0 -10
  309. gaia/eval/webapp/node_modules/es-object-atoms/index.d.ts +0 -3
  310. gaia/eval/webapp/node_modules/es-object-atoms/index.js +0 -4
  311. gaia/eval/webapp/node_modules/es-object-atoms/isObject.d.ts +0 -3
  312. gaia/eval/webapp/node_modules/es-object-atoms/isObject.js +0 -6
  313. gaia/eval/webapp/node_modules/es-object-atoms/package.json +0 -80
  314. gaia/eval/webapp/node_modules/es-object-atoms/test/index.js +0 -38
  315. gaia/eval/webapp/node_modules/es-object-atoms/tsconfig.json +0 -6
  316. gaia/eval/webapp/node_modules/escape-html/LICENSE +0 -24
  317. gaia/eval/webapp/node_modules/escape-html/Readme.md +0 -43
  318. gaia/eval/webapp/node_modules/escape-html/index.js +0 -78
  319. gaia/eval/webapp/node_modules/escape-html/package.json +0 -24
  320. gaia/eval/webapp/node_modules/etag/HISTORY.md +0 -83
  321. gaia/eval/webapp/node_modules/etag/LICENSE +0 -22
  322. gaia/eval/webapp/node_modules/etag/README.md +0 -159
  323. gaia/eval/webapp/node_modules/etag/index.js +0 -131
  324. gaia/eval/webapp/node_modules/etag/package.json +0 -47
  325. gaia/eval/webapp/node_modules/express/History.md +0 -3656
  326. gaia/eval/webapp/node_modules/express/LICENSE +0 -24
  327. gaia/eval/webapp/node_modules/express/Readme.md +0 -260
  328. gaia/eval/webapp/node_modules/express/index.js +0 -11
  329. gaia/eval/webapp/node_modules/express/lib/application.js +0 -661
  330. gaia/eval/webapp/node_modules/express/lib/express.js +0 -116
  331. gaia/eval/webapp/node_modules/express/lib/middleware/init.js +0 -43
  332. gaia/eval/webapp/node_modules/express/lib/middleware/query.js +0 -47
  333. gaia/eval/webapp/node_modules/express/lib/request.js +0 -525
  334. gaia/eval/webapp/node_modules/express/lib/response.js +0 -1179
  335. gaia/eval/webapp/node_modules/express/lib/router/index.js +0 -673
  336. gaia/eval/webapp/node_modules/express/lib/router/layer.js +0 -181
  337. gaia/eval/webapp/node_modules/express/lib/router/route.js +0 -230
  338. gaia/eval/webapp/node_modules/express/lib/utils.js +0 -303
  339. gaia/eval/webapp/node_modules/express/lib/view.js +0 -182
  340. gaia/eval/webapp/node_modules/express/package.json +0 -102
  341. gaia/eval/webapp/node_modules/finalhandler/HISTORY.md +0 -210
  342. gaia/eval/webapp/node_modules/finalhandler/LICENSE +0 -22
  343. gaia/eval/webapp/node_modules/finalhandler/README.md +0 -147
  344. gaia/eval/webapp/node_modules/finalhandler/SECURITY.md +0 -25
  345. gaia/eval/webapp/node_modules/finalhandler/index.js +0 -341
  346. gaia/eval/webapp/node_modules/finalhandler/package.json +0 -47
  347. gaia/eval/webapp/node_modules/forwarded/HISTORY.md +0 -21
  348. gaia/eval/webapp/node_modules/forwarded/LICENSE +0 -22
  349. gaia/eval/webapp/node_modules/forwarded/README.md +0 -57
  350. gaia/eval/webapp/node_modules/forwarded/index.js +0 -90
  351. gaia/eval/webapp/node_modules/forwarded/package.json +0 -45
  352. gaia/eval/webapp/node_modules/fresh/HISTORY.md +0 -70
  353. gaia/eval/webapp/node_modules/fresh/LICENSE +0 -23
  354. gaia/eval/webapp/node_modules/fresh/README.md +0 -119
  355. gaia/eval/webapp/node_modules/fresh/index.js +0 -137
  356. gaia/eval/webapp/node_modules/fresh/package.json +0 -46
  357. gaia/eval/webapp/node_modules/fs/README.md +0 -9
  358. gaia/eval/webapp/node_modules/fs/package.json +0 -20
  359. gaia/eval/webapp/node_modules/function-bind/.eslintrc +0 -21
  360. gaia/eval/webapp/node_modules/function-bind/.github/FUNDING.yml +0 -12
  361. gaia/eval/webapp/node_modules/function-bind/.github/SECURITY.md +0 -3
  362. gaia/eval/webapp/node_modules/function-bind/.nycrc +0 -13
  363. gaia/eval/webapp/node_modules/function-bind/CHANGELOG.md +0 -136
  364. gaia/eval/webapp/node_modules/function-bind/LICENSE +0 -20
  365. gaia/eval/webapp/node_modules/function-bind/README.md +0 -46
  366. gaia/eval/webapp/node_modules/function-bind/implementation.js +0 -84
  367. gaia/eval/webapp/node_modules/function-bind/index.js +0 -5
  368. gaia/eval/webapp/node_modules/function-bind/package.json +0 -87
  369. gaia/eval/webapp/node_modules/function-bind/test/.eslintrc +0 -9
  370. gaia/eval/webapp/node_modules/function-bind/test/index.js +0 -252
  371. gaia/eval/webapp/node_modules/get-intrinsic/.eslintrc +0 -42
  372. gaia/eval/webapp/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  373. gaia/eval/webapp/node_modules/get-intrinsic/.nycrc +0 -9
  374. gaia/eval/webapp/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  375. gaia/eval/webapp/node_modules/get-intrinsic/LICENSE +0 -21
  376. gaia/eval/webapp/node_modules/get-intrinsic/README.md +0 -71
  377. gaia/eval/webapp/node_modules/get-intrinsic/index.js +0 -378
  378. gaia/eval/webapp/node_modules/get-intrinsic/package.json +0 -97
  379. gaia/eval/webapp/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  380. gaia/eval/webapp/node_modules/get-proto/.eslintrc +0 -10
  381. gaia/eval/webapp/node_modules/get-proto/.github/FUNDING.yml +0 -12
  382. gaia/eval/webapp/node_modules/get-proto/.nycrc +0 -9
  383. gaia/eval/webapp/node_modules/get-proto/CHANGELOG.md +0 -21
  384. gaia/eval/webapp/node_modules/get-proto/LICENSE +0 -21
  385. gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  386. gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  387. gaia/eval/webapp/node_modules/get-proto/README.md +0 -50
  388. gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  389. gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  390. gaia/eval/webapp/node_modules/get-proto/index.d.ts +0 -5
  391. gaia/eval/webapp/node_modules/get-proto/index.js +0 -27
  392. gaia/eval/webapp/node_modules/get-proto/package.json +0 -81
  393. gaia/eval/webapp/node_modules/get-proto/test/index.js +0 -68
  394. gaia/eval/webapp/node_modules/get-proto/tsconfig.json +0 -9
  395. gaia/eval/webapp/node_modules/gopd/.eslintrc +0 -16
  396. gaia/eval/webapp/node_modules/gopd/.github/FUNDING.yml +0 -12
  397. gaia/eval/webapp/node_modules/gopd/CHANGELOG.md +0 -45
  398. gaia/eval/webapp/node_modules/gopd/LICENSE +0 -21
  399. gaia/eval/webapp/node_modules/gopd/README.md +0 -40
  400. gaia/eval/webapp/node_modules/gopd/gOPD.d.ts +0 -1
  401. gaia/eval/webapp/node_modules/gopd/gOPD.js +0 -4
  402. gaia/eval/webapp/node_modules/gopd/index.d.ts +0 -5
  403. gaia/eval/webapp/node_modules/gopd/index.js +0 -15
  404. gaia/eval/webapp/node_modules/gopd/package.json +0 -77
  405. gaia/eval/webapp/node_modules/gopd/test/index.js +0 -36
  406. gaia/eval/webapp/node_modules/gopd/tsconfig.json +0 -9
  407. gaia/eval/webapp/node_modules/has-symbols/.eslintrc +0 -11
  408. gaia/eval/webapp/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  409. gaia/eval/webapp/node_modules/has-symbols/.nycrc +0 -9
  410. gaia/eval/webapp/node_modules/has-symbols/CHANGELOG.md +0 -91
  411. gaia/eval/webapp/node_modules/has-symbols/LICENSE +0 -21
  412. gaia/eval/webapp/node_modules/has-symbols/README.md +0 -46
  413. gaia/eval/webapp/node_modules/has-symbols/index.d.ts +0 -3
  414. gaia/eval/webapp/node_modules/has-symbols/index.js +0 -14
  415. gaia/eval/webapp/node_modules/has-symbols/package.json +0 -111
  416. gaia/eval/webapp/node_modules/has-symbols/shams.d.ts +0 -3
  417. gaia/eval/webapp/node_modules/has-symbols/shams.js +0 -45
  418. gaia/eval/webapp/node_modules/has-symbols/test/index.js +0 -22
  419. gaia/eval/webapp/node_modules/has-symbols/test/shams/core-js.js +0 -29
  420. gaia/eval/webapp/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  421. gaia/eval/webapp/node_modules/has-symbols/test/tests.js +0 -58
  422. gaia/eval/webapp/node_modules/has-symbols/tsconfig.json +0 -10
  423. gaia/eval/webapp/node_modules/hasown/.eslintrc +0 -5
  424. gaia/eval/webapp/node_modules/hasown/.github/FUNDING.yml +0 -12
  425. gaia/eval/webapp/node_modules/hasown/.nycrc +0 -13
  426. gaia/eval/webapp/node_modules/hasown/CHANGELOG.md +0 -40
  427. gaia/eval/webapp/node_modules/hasown/LICENSE +0 -21
  428. gaia/eval/webapp/node_modules/hasown/README.md +0 -40
  429. gaia/eval/webapp/node_modules/hasown/index.d.ts +0 -3
  430. gaia/eval/webapp/node_modules/hasown/index.js +0 -8
  431. gaia/eval/webapp/node_modules/hasown/package.json +0 -92
  432. gaia/eval/webapp/node_modules/hasown/tsconfig.json +0 -6
  433. gaia/eval/webapp/node_modules/http-errors/HISTORY.md +0 -180
  434. gaia/eval/webapp/node_modules/http-errors/LICENSE +0 -23
  435. gaia/eval/webapp/node_modules/http-errors/README.md +0 -169
  436. gaia/eval/webapp/node_modules/http-errors/index.js +0 -289
  437. gaia/eval/webapp/node_modules/http-errors/package.json +0 -50
  438. gaia/eval/webapp/node_modules/iconv-lite/Changelog.md +0 -162
  439. gaia/eval/webapp/node_modules/iconv-lite/LICENSE +0 -21
  440. gaia/eval/webapp/node_modules/iconv-lite/README.md +0 -156
  441. gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  442. gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  443. gaia/eval/webapp/node_modules/iconv-lite/encodings/index.js +0 -22
  444. gaia/eval/webapp/node_modules/iconv-lite/encodings/internal.js +0 -188
  445. gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  446. gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  447. gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  448. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  449. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  450. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  451. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  452. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  453. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  454. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  455. gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  456. gaia/eval/webapp/node_modules/iconv-lite/encodings/utf16.js +0 -177
  457. gaia/eval/webapp/node_modules/iconv-lite/encodings/utf7.js +0 -290
  458. gaia/eval/webapp/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  459. gaia/eval/webapp/node_modules/iconv-lite/lib/extend-node.js +0 -217
  460. gaia/eval/webapp/node_modules/iconv-lite/lib/index.d.ts +0 -24
  461. gaia/eval/webapp/node_modules/iconv-lite/lib/index.js +0 -153
  462. gaia/eval/webapp/node_modules/iconv-lite/lib/streams.js +0 -121
  463. gaia/eval/webapp/node_modules/iconv-lite/package.json +0 -46
  464. gaia/eval/webapp/node_modules/inherits/LICENSE +0 -16
  465. gaia/eval/webapp/node_modules/inherits/README.md +0 -42
  466. gaia/eval/webapp/node_modules/inherits/inherits.js +0 -9
  467. gaia/eval/webapp/node_modules/inherits/inherits_browser.js +0 -27
  468. gaia/eval/webapp/node_modules/inherits/package.json +0 -29
  469. gaia/eval/webapp/node_modules/ipaddr.js/LICENSE +0 -19
  470. gaia/eval/webapp/node_modules/ipaddr.js/README.md +0 -233
  471. gaia/eval/webapp/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  472. gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  473. gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  474. gaia/eval/webapp/node_modules/ipaddr.js/package.json +0 -35
  475. gaia/eval/webapp/node_modules/math-intrinsics/.eslintrc +0 -16
  476. gaia/eval/webapp/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  477. gaia/eval/webapp/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  478. gaia/eval/webapp/node_modules/math-intrinsics/LICENSE +0 -21
  479. gaia/eval/webapp/node_modules/math-intrinsics/README.md +0 -50
  480. gaia/eval/webapp/node_modules/math-intrinsics/abs.d.ts +0 -1
  481. gaia/eval/webapp/node_modules/math-intrinsics/abs.js +0 -4
  482. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  483. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  484. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  485. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  486. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  487. gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  488. gaia/eval/webapp/node_modules/math-intrinsics/floor.d.ts +0 -1
  489. gaia/eval/webapp/node_modules/math-intrinsics/floor.js +0 -4
  490. gaia/eval/webapp/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  491. gaia/eval/webapp/node_modules/math-intrinsics/isFinite.js +0 -12
  492. gaia/eval/webapp/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  493. gaia/eval/webapp/node_modules/math-intrinsics/isInteger.js +0 -16
  494. gaia/eval/webapp/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  495. gaia/eval/webapp/node_modules/math-intrinsics/isNaN.js +0 -6
  496. gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  497. gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  498. gaia/eval/webapp/node_modules/math-intrinsics/max.d.ts +0 -1
  499. gaia/eval/webapp/node_modules/math-intrinsics/max.js +0 -4
  500. gaia/eval/webapp/node_modules/math-intrinsics/min.d.ts +0 -1
  501. gaia/eval/webapp/node_modules/math-intrinsics/min.js +0 -4
  502. gaia/eval/webapp/node_modules/math-intrinsics/mod.d.ts +0 -3
  503. gaia/eval/webapp/node_modules/math-intrinsics/mod.js +0 -9
  504. gaia/eval/webapp/node_modules/math-intrinsics/package.json +0 -86
  505. gaia/eval/webapp/node_modules/math-intrinsics/pow.d.ts +0 -1
  506. gaia/eval/webapp/node_modules/math-intrinsics/pow.js +0 -4
  507. gaia/eval/webapp/node_modules/math-intrinsics/round.d.ts +0 -1
  508. gaia/eval/webapp/node_modules/math-intrinsics/round.js +0 -4
  509. gaia/eval/webapp/node_modules/math-intrinsics/sign.d.ts +0 -3
  510. gaia/eval/webapp/node_modules/math-intrinsics/sign.js +0 -11
  511. gaia/eval/webapp/node_modules/math-intrinsics/test/index.js +0 -192
  512. gaia/eval/webapp/node_modules/math-intrinsics/tsconfig.json +0 -3
  513. gaia/eval/webapp/node_modules/media-typer/HISTORY.md +0 -22
  514. gaia/eval/webapp/node_modules/media-typer/LICENSE +0 -22
  515. gaia/eval/webapp/node_modules/media-typer/README.md +0 -81
  516. gaia/eval/webapp/node_modules/media-typer/index.js +0 -270
  517. gaia/eval/webapp/node_modules/media-typer/package.json +0 -26
  518. gaia/eval/webapp/node_modules/merge-descriptors/HISTORY.md +0 -21
  519. gaia/eval/webapp/node_modules/merge-descriptors/LICENSE +0 -23
  520. gaia/eval/webapp/node_modules/merge-descriptors/README.md +0 -49
  521. gaia/eval/webapp/node_modules/merge-descriptors/index.js +0 -60
  522. gaia/eval/webapp/node_modules/merge-descriptors/package.json +0 -39
  523. gaia/eval/webapp/node_modules/methods/HISTORY.md +0 -29
  524. gaia/eval/webapp/node_modules/methods/LICENSE +0 -24
  525. gaia/eval/webapp/node_modules/methods/README.md +0 -51
  526. gaia/eval/webapp/node_modules/methods/index.js +0 -69
  527. gaia/eval/webapp/node_modules/methods/package.json +0 -36
  528. gaia/eval/webapp/node_modules/mime/.npmignore +0 -0
  529. gaia/eval/webapp/node_modules/mime/CHANGELOG.md +0 -164
  530. gaia/eval/webapp/node_modules/mime/LICENSE +0 -21
  531. gaia/eval/webapp/node_modules/mime/README.md +0 -90
  532. gaia/eval/webapp/node_modules/mime/cli.js +0 -8
  533. gaia/eval/webapp/node_modules/mime/mime.js +0 -108
  534. gaia/eval/webapp/node_modules/mime/package.json +0 -44
  535. gaia/eval/webapp/node_modules/mime/src/build.js +0 -53
  536. gaia/eval/webapp/node_modules/mime/src/test.js +0 -60
  537. gaia/eval/webapp/node_modules/mime/types.json +0 -1
  538. gaia/eval/webapp/node_modules/mime-db/HISTORY.md +0 -507
  539. gaia/eval/webapp/node_modules/mime-db/LICENSE +0 -23
  540. gaia/eval/webapp/node_modules/mime-db/README.md +0 -100
  541. gaia/eval/webapp/node_modules/mime-db/db.json +0 -8519
  542. gaia/eval/webapp/node_modules/mime-db/index.js +0 -12
  543. gaia/eval/webapp/node_modules/mime-db/package.json +0 -60
  544. gaia/eval/webapp/node_modules/mime-types/HISTORY.md +0 -397
  545. gaia/eval/webapp/node_modules/mime-types/LICENSE +0 -23
  546. gaia/eval/webapp/node_modules/mime-types/README.md +0 -113
  547. gaia/eval/webapp/node_modules/mime-types/index.js +0 -188
  548. gaia/eval/webapp/node_modules/mime-types/package.json +0 -44
  549. gaia/eval/webapp/node_modules/ms/index.js +0 -152
  550. gaia/eval/webapp/node_modules/ms/license.md +0 -21
  551. gaia/eval/webapp/node_modules/ms/package.json +0 -37
  552. gaia/eval/webapp/node_modules/ms/readme.md +0 -51
  553. gaia/eval/webapp/node_modules/negotiator/HISTORY.md +0 -108
  554. gaia/eval/webapp/node_modules/negotiator/LICENSE +0 -24
  555. gaia/eval/webapp/node_modules/negotiator/README.md +0 -203
  556. gaia/eval/webapp/node_modules/negotiator/index.js +0 -82
  557. gaia/eval/webapp/node_modules/negotiator/lib/charset.js +0 -169
  558. gaia/eval/webapp/node_modules/negotiator/lib/encoding.js +0 -184
  559. gaia/eval/webapp/node_modules/negotiator/lib/language.js +0 -179
  560. gaia/eval/webapp/node_modules/negotiator/lib/mediaType.js +0 -294
  561. gaia/eval/webapp/node_modules/negotiator/package.json +0 -42
  562. gaia/eval/webapp/node_modules/object-inspect/.eslintrc +0 -53
  563. gaia/eval/webapp/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  564. gaia/eval/webapp/node_modules/object-inspect/.nycrc +0 -13
  565. gaia/eval/webapp/node_modules/object-inspect/CHANGELOG.md +0 -424
  566. gaia/eval/webapp/node_modules/object-inspect/LICENSE +0 -21
  567. gaia/eval/webapp/node_modules/object-inspect/example/all.js +0 -23
  568. gaia/eval/webapp/node_modules/object-inspect/example/circular.js +0 -6
  569. gaia/eval/webapp/node_modules/object-inspect/example/fn.js +0 -5
  570. gaia/eval/webapp/node_modules/object-inspect/example/inspect.js +0 -10
  571. gaia/eval/webapp/node_modules/object-inspect/index.js +0 -544
  572. gaia/eval/webapp/node_modules/object-inspect/package-support.json +0 -20
  573. gaia/eval/webapp/node_modules/object-inspect/package.json +0 -105
  574. gaia/eval/webapp/node_modules/object-inspect/readme.markdown +0 -84
  575. gaia/eval/webapp/node_modules/object-inspect/test/bigint.js +0 -58
  576. gaia/eval/webapp/node_modules/object-inspect/test/browser/dom.js +0 -15
  577. gaia/eval/webapp/node_modules/object-inspect/test/circular.js +0 -16
  578. gaia/eval/webapp/node_modules/object-inspect/test/deep.js +0 -12
  579. gaia/eval/webapp/node_modules/object-inspect/test/element.js +0 -53
  580. gaia/eval/webapp/node_modules/object-inspect/test/err.js +0 -48
  581. gaia/eval/webapp/node_modules/object-inspect/test/fakes.js +0 -29
  582. gaia/eval/webapp/node_modules/object-inspect/test/fn.js +0 -76
  583. gaia/eval/webapp/node_modules/object-inspect/test/global.js +0 -17
  584. gaia/eval/webapp/node_modules/object-inspect/test/has.js +0 -15
  585. gaia/eval/webapp/node_modules/object-inspect/test/holes.js +0 -15
  586. gaia/eval/webapp/node_modules/object-inspect/test/indent-option.js +0 -271
  587. gaia/eval/webapp/node_modules/object-inspect/test/inspect.js +0 -139
  588. gaia/eval/webapp/node_modules/object-inspect/test/lowbyte.js +0 -12
  589. gaia/eval/webapp/node_modules/object-inspect/test/number.js +0 -58
  590. gaia/eval/webapp/node_modules/object-inspect/test/quoteStyle.js +0 -26
  591. gaia/eval/webapp/node_modules/object-inspect/test/toStringTag.js +0 -40
  592. gaia/eval/webapp/node_modules/object-inspect/test/undef.js +0 -12
  593. gaia/eval/webapp/node_modules/object-inspect/test/values.js +0 -261
  594. gaia/eval/webapp/node_modules/object-inspect/test-core-js.js +0 -26
  595. gaia/eval/webapp/node_modules/object-inspect/util.inspect.js +0 -1
  596. gaia/eval/webapp/node_modules/on-finished/HISTORY.md +0 -98
  597. gaia/eval/webapp/node_modules/on-finished/LICENSE +0 -23
  598. gaia/eval/webapp/node_modules/on-finished/README.md +0 -162
  599. gaia/eval/webapp/node_modules/on-finished/index.js +0 -234
  600. gaia/eval/webapp/node_modules/on-finished/package.json +0 -39
  601. gaia/eval/webapp/node_modules/parseurl/HISTORY.md +0 -58
  602. gaia/eval/webapp/node_modules/parseurl/LICENSE +0 -24
  603. gaia/eval/webapp/node_modules/parseurl/README.md +0 -133
  604. gaia/eval/webapp/node_modules/parseurl/index.js +0 -158
  605. gaia/eval/webapp/node_modules/parseurl/package.json +0 -40
  606. gaia/eval/webapp/node_modules/path/.npmignore +0 -1
  607. gaia/eval/webapp/node_modules/path/LICENSE +0 -18
  608. gaia/eval/webapp/node_modules/path/README.md +0 -15
  609. gaia/eval/webapp/node_modules/path/package.json +0 -24
  610. gaia/eval/webapp/node_modules/path/path.js +0 -628
  611. gaia/eval/webapp/node_modules/path-to-regexp/LICENSE +0 -21
  612. gaia/eval/webapp/node_modules/path-to-regexp/Readme.md +0 -35
  613. gaia/eval/webapp/node_modules/path-to-regexp/index.js +0 -156
  614. gaia/eval/webapp/node_modules/path-to-regexp/package.json +0 -30
  615. gaia/eval/webapp/node_modules/process/.eslintrc +0 -21
  616. gaia/eval/webapp/node_modules/process/LICENSE +0 -22
  617. gaia/eval/webapp/node_modules/process/README.md +0 -26
  618. gaia/eval/webapp/node_modules/process/browser.js +0 -184
  619. gaia/eval/webapp/node_modules/process/index.js +0 -2
  620. gaia/eval/webapp/node_modules/process/package.json +0 -27
  621. gaia/eval/webapp/node_modules/process/test.js +0 -199
  622. gaia/eval/webapp/node_modules/proxy-addr/HISTORY.md +0 -161
  623. gaia/eval/webapp/node_modules/proxy-addr/LICENSE +0 -22
  624. gaia/eval/webapp/node_modules/proxy-addr/README.md +0 -139
  625. gaia/eval/webapp/node_modules/proxy-addr/index.js +0 -327
  626. gaia/eval/webapp/node_modules/proxy-addr/package.json +0 -47
  627. gaia/eval/webapp/node_modules/qs/.editorconfig +0 -46
  628. gaia/eval/webapp/node_modules/qs/.eslintrc +0 -38
  629. gaia/eval/webapp/node_modules/qs/.github/FUNDING.yml +0 -12
  630. gaia/eval/webapp/node_modules/qs/.nycrc +0 -13
  631. gaia/eval/webapp/node_modules/qs/CHANGELOG.md +0 -600
  632. gaia/eval/webapp/node_modules/qs/LICENSE.md +0 -29
  633. gaia/eval/webapp/node_modules/qs/README.md +0 -709
  634. gaia/eval/webapp/node_modules/qs/dist/qs.js +0 -90
  635. gaia/eval/webapp/node_modules/qs/lib/formats.js +0 -23
  636. gaia/eval/webapp/node_modules/qs/lib/index.js +0 -11
  637. gaia/eval/webapp/node_modules/qs/lib/parse.js +0 -296
  638. gaia/eval/webapp/node_modules/qs/lib/stringify.js +0 -351
  639. gaia/eval/webapp/node_modules/qs/lib/utils.js +0 -265
  640. gaia/eval/webapp/node_modules/qs/package.json +0 -91
  641. gaia/eval/webapp/node_modules/qs/test/empty-keys-cases.js +0 -267
  642. gaia/eval/webapp/node_modules/qs/test/parse.js +0 -1170
  643. gaia/eval/webapp/node_modules/qs/test/stringify.js +0 -1298
  644. gaia/eval/webapp/node_modules/qs/test/utils.js +0 -136
  645. gaia/eval/webapp/node_modules/range-parser/HISTORY.md +0 -56
  646. gaia/eval/webapp/node_modules/range-parser/LICENSE +0 -23
  647. gaia/eval/webapp/node_modules/range-parser/README.md +0 -84
  648. gaia/eval/webapp/node_modules/range-parser/index.js +0 -162
  649. gaia/eval/webapp/node_modules/range-parser/package.json +0 -44
  650. gaia/eval/webapp/node_modules/raw-body/HISTORY.md +0 -308
  651. gaia/eval/webapp/node_modules/raw-body/LICENSE +0 -22
  652. gaia/eval/webapp/node_modules/raw-body/README.md +0 -223
  653. gaia/eval/webapp/node_modules/raw-body/SECURITY.md +0 -24
  654. gaia/eval/webapp/node_modules/raw-body/index.d.ts +0 -87
  655. gaia/eval/webapp/node_modules/raw-body/index.js +0 -336
  656. gaia/eval/webapp/node_modules/raw-body/package.json +0 -49
  657. gaia/eval/webapp/node_modules/safe-buffer/LICENSE +0 -21
  658. gaia/eval/webapp/node_modules/safe-buffer/README.md +0 -584
  659. gaia/eval/webapp/node_modules/safe-buffer/index.d.ts +0 -187
  660. gaia/eval/webapp/node_modules/safe-buffer/index.js +0 -65
  661. gaia/eval/webapp/node_modules/safe-buffer/package.json +0 -51
  662. gaia/eval/webapp/node_modules/safer-buffer/LICENSE +0 -21
  663. gaia/eval/webapp/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  664. gaia/eval/webapp/node_modules/safer-buffer/Readme.md +0 -156
  665. gaia/eval/webapp/node_modules/safer-buffer/dangerous.js +0 -58
  666. gaia/eval/webapp/node_modules/safer-buffer/package.json +0 -34
  667. gaia/eval/webapp/node_modules/safer-buffer/safer.js +0 -77
  668. gaia/eval/webapp/node_modules/safer-buffer/tests.js +0 -406
  669. gaia/eval/webapp/node_modules/send/HISTORY.md +0 -526
  670. gaia/eval/webapp/node_modules/send/LICENSE +0 -23
  671. gaia/eval/webapp/node_modules/send/README.md +0 -327
  672. gaia/eval/webapp/node_modules/send/SECURITY.md +0 -24
  673. gaia/eval/webapp/node_modules/send/index.js +0 -1142
  674. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/HISTORY.md +0 -14
  675. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/LICENSE +0 -22
  676. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/README.md +0 -128
  677. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/index.js +0 -60
  678. gaia/eval/webapp/node_modules/send/node_modules/encodeurl/package.json +0 -40
  679. gaia/eval/webapp/node_modules/send/node_modules/ms/index.js +0 -162
  680. gaia/eval/webapp/node_modules/send/node_modules/ms/license.md +0 -21
  681. gaia/eval/webapp/node_modules/send/node_modules/ms/package.json +0 -38
  682. gaia/eval/webapp/node_modules/send/node_modules/ms/readme.md +0 -59
  683. gaia/eval/webapp/node_modules/send/package.json +0 -62
  684. gaia/eval/webapp/node_modules/serve-static/HISTORY.md +0 -487
  685. gaia/eval/webapp/node_modules/serve-static/LICENSE +0 -25
  686. gaia/eval/webapp/node_modules/serve-static/README.md +0 -257
  687. gaia/eval/webapp/node_modules/serve-static/index.js +0 -209
  688. gaia/eval/webapp/node_modules/serve-static/package.json +0 -42
  689. gaia/eval/webapp/node_modules/setprototypeof/LICENSE +0 -13
  690. gaia/eval/webapp/node_modules/setprototypeof/README.md +0 -31
  691. gaia/eval/webapp/node_modules/setprototypeof/index.d.ts +0 -2
  692. gaia/eval/webapp/node_modules/setprototypeof/index.js +0 -17
  693. gaia/eval/webapp/node_modules/setprototypeof/package.json +0 -38
  694. gaia/eval/webapp/node_modules/setprototypeof/test/index.js +0 -24
  695. gaia/eval/webapp/node_modules/side-channel/.editorconfig +0 -9
  696. gaia/eval/webapp/node_modules/side-channel/.eslintrc +0 -12
  697. gaia/eval/webapp/node_modules/side-channel/.github/FUNDING.yml +0 -12
  698. gaia/eval/webapp/node_modules/side-channel/.nycrc +0 -13
  699. gaia/eval/webapp/node_modules/side-channel/CHANGELOG.md +0 -110
  700. gaia/eval/webapp/node_modules/side-channel/LICENSE +0 -21
  701. gaia/eval/webapp/node_modules/side-channel/README.md +0 -61
  702. gaia/eval/webapp/node_modules/side-channel/index.d.ts +0 -14
  703. gaia/eval/webapp/node_modules/side-channel/index.js +0 -43
  704. gaia/eval/webapp/node_modules/side-channel/package.json +0 -85
  705. gaia/eval/webapp/node_modules/side-channel/test/index.js +0 -104
  706. gaia/eval/webapp/node_modules/side-channel/tsconfig.json +0 -9
  707. gaia/eval/webapp/node_modules/side-channel-list/.editorconfig +0 -9
  708. gaia/eval/webapp/node_modules/side-channel-list/.eslintrc +0 -11
  709. gaia/eval/webapp/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  710. gaia/eval/webapp/node_modules/side-channel-list/.nycrc +0 -13
  711. gaia/eval/webapp/node_modules/side-channel-list/CHANGELOG.md +0 -15
  712. gaia/eval/webapp/node_modules/side-channel-list/LICENSE +0 -21
  713. gaia/eval/webapp/node_modules/side-channel-list/README.md +0 -62
  714. gaia/eval/webapp/node_modules/side-channel-list/index.d.ts +0 -13
  715. gaia/eval/webapp/node_modules/side-channel-list/index.js +0 -113
  716. gaia/eval/webapp/node_modules/side-channel-list/list.d.ts +0 -14
  717. gaia/eval/webapp/node_modules/side-channel-list/package.json +0 -77
  718. gaia/eval/webapp/node_modules/side-channel-list/test/index.js +0 -104
  719. gaia/eval/webapp/node_modules/side-channel-list/tsconfig.json +0 -9
  720. gaia/eval/webapp/node_modules/side-channel-map/.editorconfig +0 -9
  721. gaia/eval/webapp/node_modules/side-channel-map/.eslintrc +0 -11
  722. gaia/eval/webapp/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  723. gaia/eval/webapp/node_modules/side-channel-map/.nycrc +0 -13
  724. gaia/eval/webapp/node_modules/side-channel-map/CHANGELOG.md +0 -22
  725. gaia/eval/webapp/node_modules/side-channel-map/LICENSE +0 -21
  726. gaia/eval/webapp/node_modules/side-channel-map/README.md +0 -62
  727. gaia/eval/webapp/node_modules/side-channel-map/index.d.ts +0 -15
  728. gaia/eval/webapp/node_modules/side-channel-map/index.js +0 -68
  729. gaia/eval/webapp/node_modules/side-channel-map/package.json +0 -80
  730. gaia/eval/webapp/node_modules/side-channel-map/test/index.js +0 -114
  731. gaia/eval/webapp/node_modules/side-channel-map/tsconfig.json +0 -9
  732. gaia/eval/webapp/node_modules/side-channel-weakmap/.editorconfig +0 -9
  733. gaia/eval/webapp/node_modules/side-channel-weakmap/.eslintrc +0 -12
  734. gaia/eval/webapp/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  735. gaia/eval/webapp/node_modules/side-channel-weakmap/.nycrc +0 -13
  736. gaia/eval/webapp/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  737. gaia/eval/webapp/node_modules/side-channel-weakmap/LICENSE +0 -21
  738. gaia/eval/webapp/node_modules/side-channel-weakmap/README.md +0 -62
  739. gaia/eval/webapp/node_modules/side-channel-weakmap/index.d.ts +0 -15
  740. gaia/eval/webapp/node_modules/side-channel-weakmap/index.js +0 -84
  741. gaia/eval/webapp/node_modules/side-channel-weakmap/package.json +0 -87
  742. gaia/eval/webapp/node_modules/side-channel-weakmap/test/index.js +0 -114
  743. gaia/eval/webapp/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  744. gaia/eval/webapp/node_modules/statuses/HISTORY.md +0 -82
  745. gaia/eval/webapp/node_modules/statuses/LICENSE +0 -23
  746. gaia/eval/webapp/node_modules/statuses/README.md +0 -136
  747. gaia/eval/webapp/node_modules/statuses/codes.json +0 -65
  748. gaia/eval/webapp/node_modules/statuses/index.js +0 -146
  749. gaia/eval/webapp/node_modules/statuses/package.json +0 -49
  750. gaia/eval/webapp/node_modules/toidentifier/HISTORY.md +0 -9
  751. gaia/eval/webapp/node_modules/toidentifier/LICENSE +0 -21
  752. gaia/eval/webapp/node_modules/toidentifier/README.md +0 -61
  753. gaia/eval/webapp/node_modules/toidentifier/index.js +0 -32
  754. gaia/eval/webapp/node_modules/toidentifier/package.json +0 -38
  755. gaia/eval/webapp/node_modules/type-is/HISTORY.md +0 -259
  756. gaia/eval/webapp/node_modules/type-is/LICENSE +0 -23
  757. gaia/eval/webapp/node_modules/type-is/README.md +0 -170
  758. gaia/eval/webapp/node_modules/type-is/index.js +0 -266
  759. gaia/eval/webapp/node_modules/type-is/package.json +0 -45
  760. gaia/eval/webapp/node_modules/unpipe/HISTORY.md +0 -4
  761. gaia/eval/webapp/node_modules/unpipe/LICENSE +0 -22
  762. gaia/eval/webapp/node_modules/unpipe/README.md +0 -43
  763. gaia/eval/webapp/node_modules/unpipe/index.js +0 -69
  764. gaia/eval/webapp/node_modules/unpipe/package.json +0 -27
  765. gaia/eval/webapp/node_modules/util/LICENSE +0 -18
  766. gaia/eval/webapp/node_modules/util/README.md +0 -15
  767. gaia/eval/webapp/node_modules/util/node_modules/inherits/LICENSE +0 -16
  768. gaia/eval/webapp/node_modules/util/node_modules/inherits/README.md +0 -42
  769. gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits.js +0 -7
  770. gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits_browser.js +0 -23
  771. gaia/eval/webapp/node_modules/util/node_modules/inherits/package.json +0 -29
  772. gaia/eval/webapp/node_modules/util/package.json +0 -35
  773. gaia/eval/webapp/node_modules/util/support/isBuffer.js +0 -3
  774. gaia/eval/webapp/node_modules/util/support/isBufferBrowser.js +0 -6
  775. gaia/eval/webapp/node_modules/util/util.js +0 -586
  776. gaia/eval/webapp/node_modules/utils-merge/.npmignore +0 -9
  777. gaia/eval/webapp/node_modules/utils-merge/LICENSE +0 -20
  778. gaia/eval/webapp/node_modules/utils-merge/README.md +0 -34
  779. gaia/eval/webapp/node_modules/utils-merge/index.js +0 -23
  780. gaia/eval/webapp/node_modules/utils-merge/package.json +0 -40
  781. gaia/eval/webapp/node_modules/vary/HISTORY.md +0 -39
  782. gaia/eval/webapp/node_modules/vary/LICENSE +0 -22
  783. gaia/eval/webapp/node_modules/vary/README.md +0 -101
  784. gaia/eval/webapp/node_modules/vary/index.js +0 -149
  785. gaia/eval/webapp/node_modules/vary/package.json +0 -43
  786. {amd_gaia-0.14.2.dist-info → amd_gaia-0.14.3.dist-info}/WHEEL +0 -0
  787. {amd_gaia-0.14.2.dist-info → amd_gaia-0.14.3.dist-info}/licenses/LICENSE.md +0 -0
  788. {amd_gaia-0.14.2.dist-info → amd_gaia-0.14.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,237 @@
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ """Generic error formatting for user-facing error messages.
5
+
6
+ This module provides utilities to format exceptions in a user-friendly way,
7
+ showing the user's code with a visual pointer to the error line while
8
+ filtering out framework internals.
9
+ """
10
+
11
+ import json
12
+ import linecache
13
+ import textwrap
14
+ import traceback
15
+ from typing import List, Optional, Set
16
+
17
+ # Paths to filter out (framework internals)
18
+ FRAMEWORK_PATHS: Set[str] = {
19
+ "gaia/agents/base",
20
+ "gaia/agents/blender",
21
+ "gaia/agents/chat",
22
+ "gaia/agents/code",
23
+ "gaia/agents/docker",
24
+ "gaia/agents/jira",
25
+ "gaia/agents/routing",
26
+ "gaia/agents/tools",
27
+ "site-packages/",
28
+ }
29
+
30
+
31
+ def format_user_error(
32
+ exception: Exception,
33
+ context_lines: int = 2,
34
+ ) -> str:
35
+ """
36
+ Format an exception to show user's code with visual pointer.
37
+
38
+ Filters out framework internals, shows only user code frames
39
+ with source context around the error line.
40
+
41
+ Args:
42
+ exception: The caught exception
43
+ context_lines: Lines of code context before/after error
44
+
45
+ Returns:
46
+ Formatted error string with traceback and code pointer
47
+
48
+ Example output:
49
+ KeyError: 'data'
50
+
51
+ Traceback (most recent call last):
52
+ File "my_agent.py", line 39, in get_big_llms
53
+ 37 | url = f"{base_url}/models?show_all=true"
54
+ 38 | response = requests.get(url, timeout=60)
55
+ >>> 39 | models = response.json()["data"]
56
+ 40 |
57
+ 41 | top_5_models = sorted(
58
+ """
59
+ lines = []
60
+ lines.append(f"{type(exception).__name__}: {exception}")
61
+ lines.append("")
62
+
63
+ # Extract traceback frames
64
+ tb = traceback.extract_tb(exception.__traceback__)
65
+ user_frames = _filter_user_frames(tb)
66
+
67
+ if not user_frames:
68
+ # No user frames found, show last frame as fallback
69
+ if tb:
70
+ user_frames = [tb[-1]]
71
+ else:
72
+ return "\n".join(lines)
73
+
74
+ lines.append("Traceback (most recent call last):")
75
+
76
+ for frame in user_frames:
77
+ lines.append(f' File "{frame.filename}", line {frame.lineno}, in {frame.name}')
78
+
79
+ # Show code context
80
+ code_context = _get_code_context(frame.filename, frame.lineno, context_lines)
81
+ if code_context:
82
+ lines.append(code_context)
83
+
84
+ return "\n".join(lines)
85
+
86
+
87
+ def format_execution_trace(
88
+ exception: Exception,
89
+ query: Optional[str] = None,
90
+ plan_step: Optional[int] = None,
91
+ total_steps: Optional[int] = None,
92
+ tool_name: Optional[str] = None,
93
+ tool_args: Optional[dict] = None,
94
+ context_lines: int = 5,
95
+ ) -> str:
96
+ """
97
+ Format an exception with full execution trace for debugging.
98
+
99
+ Shows the agent's execution path (Query → Plan → Tool → Error)
100
+ along with the user's code context.
101
+
102
+ Args:
103
+ exception: The caught exception
104
+ query: The original user query
105
+ plan_step: Current step number in the plan (1-based)
106
+ total_steps: Total number of steps in the plan
107
+ tool_name: Name of the tool that failed
108
+ tool_args: Arguments passed to the tool
109
+ context_lines: Lines of code context before/after error
110
+
111
+ Returns:
112
+ Formatted error string with execution trace and code pointer
113
+ """
114
+ sep = "═" * 63
115
+ lines = []
116
+
117
+ # Header
118
+ lines.append(sep)
119
+ lines.append("AGENT ERROR - Tool execution failed")
120
+ lines.append(sep)
121
+ lines.append("")
122
+
123
+ # Execution trace section
124
+ lines.append("Execution Trace:")
125
+ if query:
126
+ # Truncate long queries
127
+ display_query = query[:80] + "..." if len(query) > 80 else query
128
+ lines.append(f' Query: "{display_query}"')
129
+ if plan_step is not None and total_steps is not None:
130
+ lines.append(f" Plan Step: {plan_step}/{total_steps}")
131
+ if tool_name:
132
+ lines.append(f" Tool: {tool_name}")
133
+ if tool_args:
134
+ args_str = _truncate_args(tool_args)
135
+ lines.append(f" Args: {args_str}")
136
+ lines.append("")
137
+
138
+ # Error section
139
+ lines.append("Error:")
140
+ error_msg = f"{type(exception).__name__}: {exception}"
141
+ # Word wrap long error messages (word-aware wrapping)
142
+ wrapped_lines = textwrap.wrap(error_msg, width=70)
143
+ for line in wrapped_lines:
144
+ lines.append(f" {line}")
145
+ lines.append("")
146
+
147
+ # Your Code section
148
+ tb = traceback.extract_tb(exception.__traceback__)
149
+ user_frames = _filter_user_frames(tb)
150
+
151
+ if not user_frames and tb:
152
+ # No user frames found, use last frame as fallback
153
+ user_frames = [tb[-1]]
154
+
155
+ if user_frames:
156
+ lines.append("Your Code:")
157
+ for frame in user_frames:
158
+ lines.append(
159
+ f' File "{frame.filename}", line {frame.lineno}, in {frame.name}'
160
+ )
161
+ lines.append("")
162
+
163
+ # Show code context with more lines
164
+ code_context = _get_code_context(
165
+ frame.filename, frame.lineno, context_lines
166
+ )
167
+ if code_context:
168
+ lines.append(code_context)
169
+
170
+ lines.append("")
171
+ lines.append(sep)
172
+
173
+ return "\n".join(lines)
174
+
175
+
176
+ def _filter_user_frames(
177
+ frames: List[traceback.FrameSummary],
178
+ ) -> List[traceback.FrameSummary]:
179
+ """Filter out framework internal frames, keep user code."""
180
+ return [
181
+ f for f in frames if not any(path in f.filename for path in FRAMEWORK_PATHS)
182
+ ]
183
+
184
+
185
+ def _get_code_context(
186
+ filename: str,
187
+ error_line: int,
188
+ context: int = 2,
189
+ ) -> Optional[str]:
190
+ """Get source code context around error line with pointer."""
191
+ lines = []
192
+
193
+ for line_num in range(error_line - context, error_line + context + 1):
194
+ if line_num < 1:
195
+ continue
196
+
197
+ code = linecache.getline(filename, line_num).rstrip()
198
+ if not code and line_num != error_line:
199
+ continue
200
+
201
+ if line_num == error_line:
202
+ # Visual pointer to error line
203
+ lines.append(f" >>> {line_num:4d} | {code}")
204
+ else:
205
+ lines.append(f" {line_num:4d} | {code}")
206
+
207
+ return "\n".join(lines) if lines else None
208
+
209
+
210
+ def _truncate_args(tool_args: Optional[dict], max_length: int = 100) -> str:
211
+ """Truncate tool args while preserving structure where possible.
212
+
213
+ Uses JSON formatting for cleaner output and truncates at character
214
+ boundary with ellipsis indicator.
215
+
216
+ Args:
217
+ tool_args: Dictionary of tool arguments
218
+ max_length: Maximum string length before truncation
219
+
220
+ Returns:
221
+ Formatted string representation of the arguments
222
+ """
223
+ if not tool_args:
224
+ return "{}"
225
+
226
+ try:
227
+ # Use JSON for cleaner, more readable output
228
+ args_str = json.dumps(tool_args, default=str)
229
+ except (TypeError, ValueError):
230
+ # Fallback to str() if JSON fails
231
+ args_str = str(tool_args)
232
+
233
+ if len(args_str) <= max_length:
234
+ return args_str
235
+
236
+ # Truncate but indicate it's truncated
237
+ return args_str[: max_length - 3] + "..."
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  """
gaia/agents/base/tools.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Tool registry and decorator for agent tools.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Blender-specific agent for creating and modifying 3D scenes.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from typing import Any, Dict, Optional, Tuple
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Main application entry point for the Blender Agent.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from gaia.agents.blender.agent_simple import BlenderAgentSimple
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from .materials import MaterialManager
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from typing import Dict
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  import math
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from typing import Dict
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from typing import Dict
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  from typing import Dict
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Chat Agent with RAG and file search capabilities.
gaia/agents/chat/agent.py CHANGED
@@ -1,23 +1,17 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Chat Agent - Interactive chat with RAG and file search capabilities.
5
5
  """
6
6
 
7
7
  import os
8
- import time
9
8
  from dataclasses import dataclass, field
10
9
  from pathlib import Path
11
10
  from typing import Any, Dict, List, Optional
12
11
 
13
12
  try:
14
- from watchdog.events import FileSystemEventHandler
15
13
  from watchdog.observers import Observer
16
14
  except ImportError:
17
- # Create dummy base class when watchdog is not available
18
- class FileSystemEventHandler:
19
- """Dummy base class when watchdog is not installed."""
20
-
21
15
  Observer = None
22
16
 
23
17
  from gaia.agents.base.agent import Agent
@@ -28,6 +22,7 @@ from gaia.agents.tools import FileSearchToolsMixin # Shared file search tools
28
22
  from gaia.logger import get_logger
29
23
  from gaia.rag.sdk import RAGSDK, RAGConfig
30
24
  from gaia.security import PathValidator
25
+ from gaia.utils.file_watcher import FileChangeHandler, check_watchdog_available
31
26
 
32
27
  logger = get_logger(__name__)
33
28
 
@@ -67,150 +62,6 @@ class ChatAgentConfig:
67
62
  allowed_paths: Optional[List[str]] = None
68
63
 
69
64
 
70
- class FileChangeHandler(FileSystemEventHandler):
71
- """Handler for file system changes to trigger re-indexing and removal."""
72
-
73
- def __init__(self, agent):
74
- self.agent = agent
75
- self.last_indexed = {}
76
- self.debounce_time = 2.0 # seconds
77
- self.telemetry = {
78
- "files_added": 0,
79
- "files_modified": 0,
80
- "files_deleted": 0,
81
- "files_moved": 0,
82
- "total_events": 0,
83
- "last_event_time": None,
84
- }
85
-
86
- def on_created(self, event):
87
- """Handle file creation."""
88
- if not event.is_directory and self._should_index(event.src_path):
89
- self._schedule_reindex(event.src_path)
90
- self._update_telemetry("files_added", event.src_path)
91
-
92
- def on_modified(self, event):
93
- """Handle file modification."""
94
- if not event.is_directory and self._should_index(event.src_path):
95
- self._schedule_reindex(event.src_path)
96
- self._update_telemetry("files_modified", event.src_path)
97
-
98
- def on_deleted(self, event):
99
- """Handle file deletion."""
100
- if not event.is_directory and self._should_index(event.src_path):
101
- self._handle_deletion(event.src_path)
102
- self._update_telemetry("files_deleted", event.src_path)
103
-
104
- def on_moved(self, event):
105
- """Handle file move/rename."""
106
- if not event.is_directory:
107
- # Remove old path if it was indexed
108
- if self._should_index(event.src_path):
109
- self._handle_deletion(event.src_path)
110
- # Add new path if it should be indexed
111
- if self._should_index(event.dest_path):
112
- self._schedule_reindex(event.dest_path)
113
- self._update_telemetry(
114
- "files_moved", f"{event.src_path} -> {event.dest_path}"
115
- )
116
-
117
- def _should_index(self, file_path: str) -> bool:
118
- """Check if file should be indexed based on supported extensions."""
119
- # List of supported document extensions for auto-indexing
120
- supported_extensions = [
121
- ".pdf", # PDF documents
122
- ".txt",
123
- ".md",
124
- ".markdown", # Text documents
125
- ".csv", # CSV files
126
- ".json", # JSON files
127
- ".py",
128
- ".js",
129
- ".ts", # Code files (Python, JavaScript, TypeScript)
130
- ".java",
131
- ".cpp",
132
- ".c", # More code files
133
- ".html",
134
- ".css", # Web files
135
- ".yaml",
136
- ".yml", # Config files
137
- ".xml", # XML files
138
- ".rst", # ReStructuredText
139
- ".log", # Log files
140
- ]
141
- file_lower = file_path.lower()
142
- return any(file_lower.endswith(ext) for ext in supported_extensions)
143
-
144
- def _schedule_reindex(self, file_path: str):
145
- """Schedule file for reindexing with debouncing and memory management."""
146
- current_time = time.time()
147
- last_time = self.last_indexed.get(file_path, 0)
148
-
149
- if current_time - last_time > self.debounce_time:
150
- self.last_indexed[file_path] = current_time
151
- logger.info(f"Scheduling reindex for: {file_path}")
152
- self.agent.reindex_file(file_path)
153
-
154
- # Memory leak prevention: Limit cache size with LRU eviction
155
- MAX_CACHE_SIZE = 1000
156
- if len(self.last_indexed) > MAX_CACHE_SIZE:
157
- # Remove oldest 10% of entries (LRU eviction)
158
- num_to_remove = MAX_CACHE_SIZE // 10
159
- sorted_items = sorted(self.last_indexed.items(), key=lambda x: x[1])
160
- for path, _ in sorted_items[:num_to_remove]:
161
- del self.last_indexed[path]
162
- logger.debug(
163
- f"Cleaned up {num_to_remove} old entries from debounce cache"
164
- )
165
-
166
- def _handle_deletion(self, file_path: str):
167
- """Handle file deletion by removing it from the index."""
168
- try:
169
- file_abs_path = str(Path(file_path).absolute())
170
- if file_abs_path in self.agent.indexed_files:
171
- logger.info(f"File deleted, removing from index: {file_path}")
172
- if self.agent.rag.remove_document(file_abs_path):
173
- self.agent.indexed_files.discard(file_abs_path)
174
- logger.info(
175
- f"Successfully removed deleted file from index: {file_path}"
176
- )
177
- else:
178
- logger.warning(
179
- f"Failed to remove deleted file from index: {file_path}"
180
- )
181
- # Clean up from last_indexed tracker if present
182
- if file_path in self.last_indexed:
183
- del self.last_indexed[file_path]
184
- except Exception as e:
185
- logger.error(f"Error handling file deletion {file_path}: {e}")
186
-
187
- def _update_telemetry(
188
- self, event_type: str, file_path: str
189
- ): # pylint: disable=unused-argument
190
- """Update telemetry statistics for file events."""
191
- self.telemetry[event_type] += 1
192
- self.telemetry["total_events"] += 1
193
- self.telemetry["last_event_time"] = time.time()
194
-
195
- # Log telemetry every 10 events or significant events
196
- if self.telemetry["total_events"] % 10 == 0 or event_type in [
197
- "files_deleted",
198
- "files_moved",
199
- ]:
200
- logger.info(
201
- f"📊 File Watch Telemetry: "
202
- f"Added: {self.telemetry['files_added']}, "
203
- f"Modified: {self.telemetry['files_modified']}, "
204
- f"Deleted: {self.telemetry['files_deleted']}, "
205
- f"Moved: {self.telemetry['files_moved']}, "
206
- f"Total: {self.telemetry['total_events']}"
207
- )
208
-
209
- def get_telemetry(self) -> Dict[str, Any]:
210
- """Get current telemetry statistics."""
211
- return self.telemetry.copy()
212
-
213
-
214
65
  class ChatAgent(
215
66
  Agent, RAGToolsMixin, FileToolsMixin, ShellToolsMixin, FileSearchToolsMixin
216
67
  ):
@@ -819,7 +670,7 @@ When user asks to "index my data folder" or similar:
819
670
 
820
671
  def _watch_directory(self, directory: str) -> None:
821
672
  """Watch a directory for file changes."""
822
- if Observer is None:
673
+ if not check_watchdog_available():
823
674
  error_msg = (
824
675
  "\n❌ Error: Missing required package 'watchdog'\n\n"
825
676
  "File watching requires the watchdog package.\n"
@@ -832,7 +683,13 @@ When user asks to "index my data folder" or similar:
832
683
  raise ImportError(error_msg)
833
684
 
834
685
  try:
835
- event_handler = FileChangeHandler(self)
686
+ # Use generic FileChangeHandler with callbacks
687
+ event_handler = FileChangeHandler(
688
+ on_created=self.reindex_file,
689
+ on_modified=self.reindex_file,
690
+ on_deleted=self._handle_file_deletion,
691
+ on_moved=self._handle_file_move,
692
+ )
836
693
  observer = Observer()
837
694
  observer.schedule(event_handler, directory, recursive=True)
838
695
  observer.start()
@@ -841,6 +698,32 @@ When user asks to "index my data folder" or similar:
841
698
  except Exception as e:
842
699
  logger.error(f"Failed to watch {directory}: {e}")
843
700
 
701
+ def _handle_file_deletion(self, file_path: str) -> None:
702
+ """Handle file deletion by removing it from the index."""
703
+ if not self.rag:
704
+ return
705
+
706
+ try:
707
+ file_abs_path = str(Path(file_path).absolute())
708
+ if file_abs_path in self.indexed_files:
709
+ logger.info(f"File deleted, removing from index: {file_path}")
710
+ if self.rag.remove_document(file_abs_path):
711
+ self.indexed_files.discard(file_abs_path)
712
+ logger.info(
713
+ f"Successfully removed deleted file from index: {file_path}"
714
+ )
715
+ else:
716
+ logger.warning(
717
+ f"Failed to remove deleted file from index: {file_path}"
718
+ )
719
+ except Exception as e:
720
+ logger.error(f"Error handling file deletion {file_path}: {e}")
721
+
722
+ def _handle_file_move(self, src_path: str, dest_path: str) -> None:
723
+ """Handle file move by removing old path and indexing new path."""
724
+ self._handle_file_deletion(src_path)
725
+ self.reindex_file(dest_path)
726
+
844
727
  def reindex_file(self, file_path: str) -> None:
845
728
  """Reindex a file that was modified or created."""
846
729
  if not self.rag:
gaia/agents/chat/app.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Chat Agent Application - Interactive chat with RAG and file search.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Session management for Chat Agent with path validation and history.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Chat Agent Tools - Mixins for RAG, file operations, and shell commands.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  File Tools Mixin for Chat Agent.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  RAG Tools Mixin for Chat Agent.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Shell Tools Mixin for Chat Agent.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """Code Agent for GAIA."""
4
4
 
gaia/agents/code/agent.py CHANGED
@@ -332,7 +332,9 @@ class CodeAgent(
332
332
  logger.error(f"Failed to write trace file: {e}")
333
333
 
334
334
  # Return dict matching app.py's expected format
335
- project_dir = workspace_root or os.getcwd()
335
+ project_dir = execution_result.outputs.get(
336
+ "project_dir", workspace_root or os.getcwd()
337
+ )
336
338
  return {
337
339
  "status": "success" if execution_result.success else "error",
338
340
  "result": execution_result.summary,
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Orchestration framework for Code Agent.
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """Checklist Executor for LLM-Driven Code Generation.
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """Checklist Generator for LLM-Driven Code Generation.
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """Factory implementations for workflow creation."""
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
1
+ # Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
2
2
  # SPDX-License-Identifier: MIT
3
3
  """
4
4
  Base factory for creating project workflows.