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.
- amd_gaia-0.14.3.dist-info/METADATA +223 -0
- amd_gaia-0.14.3.dist-info/RECORD +168 -0
- {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/entry_points.txt +1 -0
- gaia/__init__.py +28 -1
- gaia/agents/__init__.py +1 -1
- gaia/agents/base/__init__.py +1 -1
- gaia/agents/base/agent.py +142 -37
- gaia/agents/base/api_agent.py +1 -1
- gaia/agents/base/console.py +400 -16
- gaia/agents/base/errors.py +237 -0
- gaia/agents/base/mcp_agent.py +1 -1
- gaia/agents/base/tools.py +1 -1
- gaia/agents/blender/agent.py +1 -1
- gaia/agents/blender/agent_simple.py +1 -1
- gaia/agents/blender/app.py +1 -1
- gaia/agents/blender/app_simple.py +1 -1
- gaia/agents/blender/core/__init__.py +1 -1
- gaia/agents/blender/core/materials.py +1 -1
- gaia/agents/blender/core/objects.py +1 -1
- gaia/agents/blender/core/rendering.py +1 -1
- gaia/agents/blender/core/scene.py +1 -1
- gaia/agents/blender/core/view.py +1 -1
- gaia/agents/chat/__init__.py +1 -1
- gaia/agents/chat/agent.py +41 -181
- gaia/agents/chat/app.py +1 -1
- gaia/agents/chat/session.py +1 -1
- gaia/agents/chat/tools/__init__.py +1 -1
- gaia/agents/chat/tools/file_tools.py +1 -1
- gaia/agents/chat/tools/rag_tools.py +1 -1
- gaia/agents/chat/tools/shell_tools.py +1 -1
- gaia/agents/code/__init__.py +1 -1
- gaia/agents/code/agent.py +3 -1
- gaia/agents/code/orchestration/__init__.py +1 -1
- gaia/agents/code/orchestration/checklist_executor.py +27 -3
- gaia/agents/code/orchestration/checklist_generator.py +8 -4
- gaia/agents/code/orchestration/factories/__init__.py +1 -1
- gaia/agents/code/orchestration/factories/base.py +1 -1
- gaia/agents/code/orchestration/factories/nextjs_factory.py +1 -1
- gaia/agents/code/orchestration/factories/python_factory.py +1 -1
- gaia/agents/code/orchestration/orchestrator.py +276 -45
- gaia/agents/code/orchestration/project_analyzer.py +1 -1
- gaia/agents/code/orchestration/steps/__init__.py +1 -1
- gaia/agents/code/orchestration/steps/base.py +1 -1
- gaia/agents/code/orchestration/steps/error_handler.py +2 -2
- gaia/agents/code/orchestration/steps/nextjs.py +1 -1
- gaia/agents/code/orchestration/steps/python.py +1 -1
- gaia/agents/code/orchestration/template_catalog.py +8 -2
- gaia/agents/code/orchestration/workflows/__init__.py +1 -1
- gaia/agents/code/orchestration/workflows/base.py +1 -1
- gaia/agents/code/orchestration/workflows/nextjs.py +1 -1
- gaia/agents/code/orchestration/workflows/python.py +1 -1
- gaia/agents/code/prompts/__init__.py +1 -1
- gaia/agents/code/prompts/base_prompt.py +1 -1
- gaia/agents/code/prompts/code_patterns.py +129 -18
- gaia/agents/code/prompts/nextjs_prompt.py +1 -1
- gaia/agents/code/prompts/python_prompt.py +1 -1
- gaia/agents/code/schema_inference.py +1 -1
- gaia/agents/code/system_prompt.py +1 -1
- gaia/agents/code/tools/__init__.py +1 -1
- gaia/agents/code/tools/cli_tools.py +1 -1
- gaia/agents/code/tools/code_formatting.py +2 -2
- gaia/agents/code/tools/code_tools.py +2 -2
- gaia/agents/code/tools/error_fixing.py +1 -1
- gaia/agents/code/tools/external_tools.py +1 -1
- gaia/agents/code/tools/prisma_tools.py +1 -1
- gaia/agents/code/tools/project_management.py +1 -1
- gaia/agents/code/tools/testing.py +1 -1
- gaia/agents/code/tools/typescript_tools.py +1 -1
- gaia/agents/code/tools/validation_parsing.py +1 -1
- gaia/agents/code/tools/validation_tools.py +5 -2
- gaia/agents/code/tools/web_dev_tools.py +17 -3
- gaia/agents/docker/__init__.py +1 -1
- gaia/agents/emr/__init__.py +8 -0
- gaia/agents/emr/agent.py +1506 -0
- gaia/agents/emr/cli.py +1322 -0
- gaia/agents/emr/constants.py +475 -0
- gaia/agents/emr/dashboard/__init__.py +4 -0
- gaia/agents/emr/dashboard/server.py +1974 -0
- gaia/agents/routing/__init__.py +1 -1
- gaia/agents/routing/agent.py +65 -7
- gaia/agents/routing/system_prompt.py +1 -1
- gaia/api/__init__.py +1 -1
- gaia/api/agent_registry.py +1 -1
- gaia/api/app.py +1 -1
- gaia/api/openai_server.py +1 -1
- gaia/api/schemas.py +1 -1
- gaia/api/sse_handler.py +5 -2
- gaia/apps/__init__.py +1 -1
- gaia/apps/llm/__init__.py +1 -1
- gaia/apps/summarize/pdf_formatter.py +1 -1
- gaia/audio/__init__.py +1 -1
- gaia/audio/audio_client.py +3 -3
- gaia/audio/audio_recorder.py +1 -1
- gaia/audio/kokoro_tts.py +3 -3
- gaia/audio/whisper_asr.py +3 -3
- gaia/chat/__init__.py +1 -1
- gaia/chat/prompts.py +1 -1
- gaia/chat/sdk.py +26 -1
- gaia/cli.py +18 -18
- gaia/database/__init__.py +10 -0
- gaia/database/agent.py +176 -0
- gaia/database/mixin.py +290 -0
- gaia/database/testing.py +64 -0
- gaia/eval/batch_experiment.py +2 -2
- gaia/eval/claude.py +5 -5
- gaia/eval/config.py +1 -1
- gaia/eval/email_generator.py +1 -1
- gaia/eval/eval.py +1 -1
- gaia/eval/groundtruth.py +1 -1
- gaia/eval/transcript_generator.py +1 -1
- gaia/eval/webapp/public/app.js +1 -1
- gaia/eval/webapp/server.js +1 -1
- gaia/eval/webapp/test-setup.js +1 -1
- gaia/llm/__init__.py +1 -1
- gaia/llm/lemonade_client.py +149 -11
- gaia/llm/lemonade_manager.py +36 -11
- gaia/llm/llm_client.py +2 -2
- gaia/llm/vlm_client.py +93 -18
- gaia/logger.py +1 -1
- gaia/mcp/agent_mcp_server.py +1 -1
- gaia/mcp/blender_mcp_client.py +1 -1
- gaia/mcp/blender_mcp_server.py +1 -1
- gaia/mcp/context7_cache.py +1 -1
- gaia/mcp/servers/__init__.py +1 -1
- gaia/mcp/servers/docker_mcp.py +1 -1
- gaia/rag/demo.py +5 -5
- gaia/rag/pdf_utils.py +1 -1
- gaia/rag/sdk.py +2 -2
- gaia/security.py +1 -1
- gaia/talk/sdk.py +1 -1
- gaia/testing/__init__.py +87 -0
- gaia/testing/assertions.py +330 -0
- gaia/testing/fixtures.py +333 -0
- gaia/testing/mocks.py +493 -0
- gaia/util.py +1 -1
- gaia/utils/__init__.py +33 -0
- gaia/utils/file_watcher.py +675 -0
- gaia/utils/parsing.py +223 -0
- gaia/version.py +2 -2
- amd_gaia-0.14.1.dist-info/METADATA +0 -768
- amd_gaia-0.14.1.dist-info/RECORD +0 -800
- gaia/eval/webapp/node_modules/.bin/mime +0 -16
- gaia/eval/webapp/node_modules/.bin/mime.cmd +0 -17
- gaia/eval/webapp/node_modules/.bin/mime.ps1 +0 -28
- gaia/eval/webapp/node_modules/.package-lock.json +0 -865
- gaia/eval/webapp/node_modules/accepts/HISTORY.md +0 -243
- gaia/eval/webapp/node_modules/accepts/LICENSE +0 -23
- gaia/eval/webapp/node_modules/accepts/README.md +0 -140
- gaia/eval/webapp/node_modules/accepts/index.js +0 -238
- gaia/eval/webapp/node_modules/accepts/package.json +0 -47
- gaia/eval/webapp/node_modules/array-flatten/LICENSE +0 -21
- gaia/eval/webapp/node_modules/array-flatten/README.md +0 -43
- gaia/eval/webapp/node_modules/array-flatten/array-flatten.js +0 -64
- gaia/eval/webapp/node_modules/array-flatten/package.json +0 -39
- gaia/eval/webapp/node_modules/body-parser/HISTORY.md +0 -672
- gaia/eval/webapp/node_modules/body-parser/LICENSE +0 -23
- gaia/eval/webapp/node_modules/body-parser/README.md +0 -476
- gaia/eval/webapp/node_modules/body-parser/SECURITY.md +0 -25
- gaia/eval/webapp/node_modules/body-parser/index.js +0 -156
- gaia/eval/webapp/node_modules/body-parser/lib/read.js +0 -205
- gaia/eval/webapp/node_modules/body-parser/lib/types/json.js +0 -247
- gaia/eval/webapp/node_modules/body-parser/lib/types/raw.js +0 -101
- gaia/eval/webapp/node_modules/body-parser/lib/types/text.js +0 -121
- gaia/eval/webapp/node_modules/body-parser/lib/types/urlencoded.js +0 -307
- gaia/eval/webapp/node_modules/body-parser/package.json +0 -56
- gaia/eval/webapp/node_modules/bytes/History.md +0 -97
- gaia/eval/webapp/node_modules/bytes/LICENSE +0 -23
- gaia/eval/webapp/node_modules/bytes/Readme.md +0 -152
- gaia/eval/webapp/node_modules/bytes/index.js +0 -170
- gaia/eval/webapp/node_modules/bytes/package.json +0 -42
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/.nycrc +0 -9
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/LICENSE +0 -21
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/README.md +0 -62
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.js +0 -15
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/package.json +0 -85
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/test/index.js +0 -63
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/call-bound/.eslintrc +0 -13
- gaia/eval/webapp/node_modules/call-bound/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/call-bound/.nycrc +0 -9
- gaia/eval/webapp/node_modules/call-bound/CHANGELOG.md +0 -42
- gaia/eval/webapp/node_modules/call-bound/LICENSE +0 -21
- gaia/eval/webapp/node_modules/call-bound/README.md +0 -53
- gaia/eval/webapp/node_modules/call-bound/index.d.ts +0 -94
- gaia/eval/webapp/node_modules/call-bound/index.js +0 -19
- gaia/eval/webapp/node_modules/call-bound/package.json +0 -99
- gaia/eval/webapp/node_modules/call-bound/test/index.js +0 -61
- gaia/eval/webapp/node_modules/call-bound/tsconfig.json +0 -10
- gaia/eval/webapp/node_modules/content-disposition/HISTORY.md +0 -60
- gaia/eval/webapp/node_modules/content-disposition/LICENSE +0 -22
- gaia/eval/webapp/node_modules/content-disposition/README.md +0 -142
- gaia/eval/webapp/node_modules/content-disposition/index.js +0 -458
- gaia/eval/webapp/node_modules/content-disposition/package.json +0 -44
- gaia/eval/webapp/node_modules/content-type/HISTORY.md +0 -29
- gaia/eval/webapp/node_modules/content-type/LICENSE +0 -22
- gaia/eval/webapp/node_modules/content-type/README.md +0 -94
- gaia/eval/webapp/node_modules/content-type/index.js +0 -225
- gaia/eval/webapp/node_modules/content-type/package.json +0 -42
- gaia/eval/webapp/node_modules/cookie/LICENSE +0 -24
- gaia/eval/webapp/node_modules/cookie/README.md +0 -317
- gaia/eval/webapp/node_modules/cookie/SECURITY.md +0 -25
- gaia/eval/webapp/node_modules/cookie/index.js +0 -334
- gaia/eval/webapp/node_modules/cookie/package.json +0 -44
- gaia/eval/webapp/node_modules/cookie-signature/.npmignore +0 -4
- gaia/eval/webapp/node_modules/cookie-signature/History.md +0 -38
- gaia/eval/webapp/node_modules/cookie-signature/Readme.md +0 -42
- gaia/eval/webapp/node_modules/cookie-signature/index.js +0 -51
- gaia/eval/webapp/node_modules/cookie-signature/package.json +0 -18
- gaia/eval/webapp/node_modules/debug/.coveralls.yml +0 -1
- gaia/eval/webapp/node_modules/debug/.eslintrc +0 -11
- gaia/eval/webapp/node_modules/debug/.npmignore +0 -9
- gaia/eval/webapp/node_modules/debug/.travis.yml +0 -14
- gaia/eval/webapp/node_modules/debug/CHANGELOG.md +0 -362
- gaia/eval/webapp/node_modules/debug/LICENSE +0 -19
- gaia/eval/webapp/node_modules/debug/Makefile +0 -50
- gaia/eval/webapp/node_modules/debug/README.md +0 -312
- gaia/eval/webapp/node_modules/debug/component.json +0 -19
- gaia/eval/webapp/node_modules/debug/karma.conf.js +0 -70
- gaia/eval/webapp/node_modules/debug/node.js +0 -1
- gaia/eval/webapp/node_modules/debug/package.json +0 -49
- gaia/eval/webapp/node_modules/debug/src/browser.js +0 -185
- gaia/eval/webapp/node_modules/debug/src/debug.js +0 -202
- gaia/eval/webapp/node_modules/debug/src/index.js +0 -10
- gaia/eval/webapp/node_modules/debug/src/inspector-log.js +0 -15
- gaia/eval/webapp/node_modules/debug/src/node.js +0 -248
- gaia/eval/webapp/node_modules/depd/History.md +0 -103
- gaia/eval/webapp/node_modules/depd/LICENSE +0 -22
- gaia/eval/webapp/node_modules/depd/Readme.md +0 -280
- gaia/eval/webapp/node_modules/depd/index.js +0 -538
- gaia/eval/webapp/node_modules/depd/lib/browser/index.js +0 -77
- gaia/eval/webapp/node_modules/depd/package.json +0 -45
- gaia/eval/webapp/node_modules/destroy/LICENSE +0 -23
- gaia/eval/webapp/node_modules/destroy/README.md +0 -63
- gaia/eval/webapp/node_modules/destroy/index.js +0 -209
- gaia/eval/webapp/node_modules/destroy/package.json +0 -48
- gaia/eval/webapp/node_modules/dunder-proto/.eslintrc +0 -5
- gaia/eval/webapp/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/dunder-proto/.nycrc +0 -13
- gaia/eval/webapp/node_modules/dunder-proto/CHANGELOG.md +0 -24
- gaia/eval/webapp/node_modules/dunder-proto/LICENSE +0 -21
- gaia/eval/webapp/node_modules/dunder-proto/README.md +0 -54
- gaia/eval/webapp/node_modules/dunder-proto/get.d.ts +0 -5
- gaia/eval/webapp/node_modules/dunder-proto/get.js +0 -30
- gaia/eval/webapp/node_modules/dunder-proto/package.json +0 -76
- gaia/eval/webapp/node_modules/dunder-proto/set.d.ts +0 -5
- gaia/eval/webapp/node_modules/dunder-proto/set.js +0 -35
- gaia/eval/webapp/node_modules/dunder-proto/test/get.js +0 -34
- gaia/eval/webapp/node_modules/dunder-proto/test/index.js +0 -4
- gaia/eval/webapp/node_modules/dunder-proto/test/set.js +0 -50
- gaia/eval/webapp/node_modules/dunder-proto/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/ee-first/LICENSE +0 -22
- gaia/eval/webapp/node_modules/ee-first/README.md +0 -80
- gaia/eval/webapp/node_modules/ee-first/index.js +0 -95
- gaia/eval/webapp/node_modules/ee-first/package.json +0 -29
- gaia/eval/webapp/node_modules/encodeurl/LICENSE +0 -22
- gaia/eval/webapp/node_modules/encodeurl/README.md +0 -109
- gaia/eval/webapp/node_modules/encodeurl/index.js +0 -60
- gaia/eval/webapp/node_modules/encodeurl/package.json +0 -40
- gaia/eval/webapp/node_modules/es-define-property/.eslintrc +0 -13
- gaia/eval/webapp/node_modules/es-define-property/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/es-define-property/.nycrc +0 -9
- gaia/eval/webapp/node_modules/es-define-property/CHANGELOG.md +0 -29
- gaia/eval/webapp/node_modules/es-define-property/LICENSE +0 -21
- gaia/eval/webapp/node_modules/es-define-property/README.md +0 -49
- gaia/eval/webapp/node_modules/es-define-property/index.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-define-property/index.js +0 -14
- gaia/eval/webapp/node_modules/es-define-property/package.json +0 -81
- gaia/eval/webapp/node_modules/es-define-property/test/index.js +0 -56
- gaia/eval/webapp/node_modules/es-define-property/tsconfig.json +0 -10
- gaia/eval/webapp/node_modules/es-errors/.eslintrc +0 -5
- gaia/eval/webapp/node_modules/es-errors/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/es-errors/CHANGELOG.md +0 -40
- gaia/eval/webapp/node_modules/es-errors/LICENSE +0 -21
- gaia/eval/webapp/node_modules/es-errors/README.md +0 -55
- gaia/eval/webapp/node_modules/es-errors/eval.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/eval.js +0 -4
- gaia/eval/webapp/node_modules/es-errors/index.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/index.js +0 -4
- gaia/eval/webapp/node_modules/es-errors/package.json +0 -80
- gaia/eval/webapp/node_modules/es-errors/range.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/range.js +0 -4
- gaia/eval/webapp/node_modules/es-errors/ref.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/ref.js +0 -4
- gaia/eval/webapp/node_modules/es-errors/syntax.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/syntax.js +0 -4
- gaia/eval/webapp/node_modules/es-errors/test/index.js +0 -19
- gaia/eval/webapp/node_modules/es-errors/tsconfig.json +0 -49
- gaia/eval/webapp/node_modules/es-errors/type.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/type.js +0 -4
- gaia/eval/webapp/node_modules/es-errors/uri.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-errors/uri.js +0 -4
- gaia/eval/webapp/node_modules/es-object-atoms/.eslintrc +0 -16
- gaia/eval/webapp/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/es-object-atoms/CHANGELOG.md +0 -37
- gaia/eval/webapp/node_modules/es-object-atoms/LICENSE +0 -21
- gaia/eval/webapp/node_modules/es-object-atoms/README.md +0 -63
- gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
- gaia/eval/webapp/node_modules/es-object-atoms/ToObject.d.ts +0 -7
- gaia/eval/webapp/node_modules/es-object-atoms/ToObject.js +0 -10
- gaia/eval/webapp/node_modules/es-object-atoms/index.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-object-atoms/index.js +0 -4
- gaia/eval/webapp/node_modules/es-object-atoms/isObject.d.ts +0 -3
- gaia/eval/webapp/node_modules/es-object-atoms/isObject.js +0 -6
- gaia/eval/webapp/node_modules/es-object-atoms/package.json +0 -80
- gaia/eval/webapp/node_modules/es-object-atoms/test/index.js +0 -38
- gaia/eval/webapp/node_modules/es-object-atoms/tsconfig.json +0 -6
- gaia/eval/webapp/node_modules/escape-html/LICENSE +0 -24
- gaia/eval/webapp/node_modules/escape-html/Readme.md +0 -43
- gaia/eval/webapp/node_modules/escape-html/index.js +0 -78
- gaia/eval/webapp/node_modules/escape-html/package.json +0 -24
- gaia/eval/webapp/node_modules/etag/HISTORY.md +0 -83
- gaia/eval/webapp/node_modules/etag/LICENSE +0 -22
- gaia/eval/webapp/node_modules/etag/README.md +0 -159
- gaia/eval/webapp/node_modules/etag/index.js +0 -131
- gaia/eval/webapp/node_modules/etag/package.json +0 -47
- gaia/eval/webapp/node_modules/express/History.md +0 -3656
- gaia/eval/webapp/node_modules/express/LICENSE +0 -24
- gaia/eval/webapp/node_modules/express/Readme.md +0 -260
- gaia/eval/webapp/node_modules/express/index.js +0 -11
- gaia/eval/webapp/node_modules/express/lib/application.js +0 -661
- gaia/eval/webapp/node_modules/express/lib/express.js +0 -116
- gaia/eval/webapp/node_modules/express/lib/middleware/init.js +0 -43
- gaia/eval/webapp/node_modules/express/lib/middleware/query.js +0 -47
- gaia/eval/webapp/node_modules/express/lib/request.js +0 -525
- gaia/eval/webapp/node_modules/express/lib/response.js +0 -1179
- gaia/eval/webapp/node_modules/express/lib/router/index.js +0 -673
- gaia/eval/webapp/node_modules/express/lib/router/layer.js +0 -181
- gaia/eval/webapp/node_modules/express/lib/router/route.js +0 -230
- gaia/eval/webapp/node_modules/express/lib/utils.js +0 -303
- gaia/eval/webapp/node_modules/express/lib/view.js +0 -182
- gaia/eval/webapp/node_modules/express/package.json +0 -102
- gaia/eval/webapp/node_modules/finalhandler/HISTORY.md +0 -210
- gaia/eval/webapp/node_modules/finalhandler/LICENSE +0 -22
- gaia/eval/webapp/node_modules/finalhandler/README.md +0 -147
- gaia/eval/webapp/node_modules/finalhandler/SECURITY.md +0 -25
- gaia/eval/webapp/node_modules/finalhandler/index.js +0 -341
- gaia/eval/webapp/node_modules/finalhandler/package.json +0 -47
- gaia/eval/webapp/node_modules/forwarded/HISTORY.md +0 -21
- gaia/eval/webapp/node_modules/forwarded/LICENSE +0 -22
- gaia/eval/webapp/node_modules/forwarded/README.md +0 -57
- gaia/eval/webapp/node_modules/forwarded/index.js +0 -90
- gaia/eval/webapp/node_modules/forwarded/package.json +0 -45
- gaia/eval/webapp/node_modules/fresh/HISTORY.md +0 -70
- gaia/eval/webapp/node_modules/fresh/LICENSE +0 -23
- gaia/eval/webapp/node_modules/fresh/README.md +0 -119
- gaia/eval/webapp/node_modules/fresh/index.js +0 -137
- gaia/eval/webapp/node_modules/fresh/package.json +0 -46
- gaia/eval/webapp/node_modules/fs/README.md +0 -9
- gaia/eval/webapp/node_modules/fs/package.json +0 -20
- gaia/eval/webapp/node_modules/function-bind/.eslintrc +0 -21
- gaia/eval/webapp/node_modules/function-bind/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/function-bind/.github/SECURITY.md +0 -3
- gaia/eval/webapp/node_modules/function-bind/.nycrc +0 -13
- gaia/eval/webapp/node_modules/function-bind/CHANGELOG.md +0 -136
- gaia/eval/webapp/node_modules/function-bind/LICENSE +0 -20
- gaia/eval/webapp/node_modules/function-bind/README.md +0 -46
- gaia/eval/webapp/node_modules/function-bind/implementation.js +0 -84
- gaia/eval/webapp/node_modules/function-bind/index.js +0 -5
- gaia/eval/webapp/node_modules/function-bind/package.json +0 -87
- gaia/eval/webapp/node_modules/function-bind/test/.eslintrc +0 -9
- gaia/eval/webapp/node_modules/function-bind/test/index.js +0 -252
- gaia/eval/webapp/node_modules/get-intrinsic/.eslintrc +0 -42
- gaia/eval/webapp/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/get-intrinsic/.nycrc +0 -9
- gaia/eval/webapp/node_modules/get-intrinsic/CHANGELOG.md +0 -186
- gaia/eval/webapp/node_modules/get-intrinsic/LICENSE +0 -21
- gaia/eval/webapp/node_modules/get-intrinsic/README.md +0 -71
- gaia/eval/webapp/node_modules/get-intrinsic/index.js +0 -378
- gaia/eval/webapp/node_modules/get-intrinsic/package.json +0 -97
- gaia/eval/webapp/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
- gaia/eval/webapp/node_modules/get-proto/.eslintrc +0 -10
- gaia/eval/webapp/node_modules/get-proto/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/get-proto/.nycrc +0 -9
- gaia/eval/webapp/node_modules/get-proto/CHANGELOG.md +0 -21
- gaia/eval/webapp/node_modules/get-proto/LICENSE +0 -21
- gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
- gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
- gaia/eval/webapp/node_modules/get-proto/README.md +0 -50
- gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
- gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
- gaia/eval/webapp/node_modules/get-proto/index.d.ts +0 -5
- gaia/eval/webapp/node_modules/get-proto/index.js +0 -27
- gaia/eval/webapp/node_modules/get-proto/package.json +0 -81
- gaia/eval/webapp/node_modules/get-proto/test/index.js +0 -68
- gaia/eval/webapp/node_modules/get-proto/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/gopd/.eslintrc +0 -16
- gaia/eval/webapp/node_modules/gopd/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/gopd/CHANGELOG.md +0 -45
- gaia/eval/webapp/node_modules/gopd/LICENSE +0 -21
- gaia/eval/webapp/node_modules/gopd/README.md +0 -40
- gaia/eval/webapp/node_modules/gopd/gOPD.d.ts +0 -1
- gaia/eval/webapp/node_modules/gopd/gOPD.js +0 -4
- gaia/eval/webapp/node_modules/gopd/index.d.ts +0 -5
- gaia/eval/webapp/node_modules/gopd/index.js +0 -15
- gaia/eval/webapp/node_modules/gopd/package.json +0 -77
- gaia/eval/webapp/node_modules/gopd/test/index.js +0 -36
- gaia/eval/webapp/node_modules/gopd/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/has-symbols/.eslintrc +0 -11
- gaia/eval/webapp/node_modules/has-symbols/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/has-symbols/.nycrc +0 -9
- gaia/eval/webapp/node_modules/has-symbols/CHANGELOG.md +0 -91
- gaia/eval/webapp/node_modules/has-symbols/LICENSE +0 -21
- gaia/eval/webapp/node_modules/has-symbols/README.md +0 -46
- gaia/eval/webapp/node_modules/has-symbols/index.d.ts +0 -3
- gaia/eval/webapp/node_modules/has-symbols/index.js +0 -14
- gaia/eval/webapp/node_modules/has-symbols/package.json +0 -111
- gaia/eval/webapp/node_modules/has-symbols/shams.d.ts +0 -3
- gaia/eval/webapp/node_modules/has-symbols/shams.js +0 -45
- gaia/eval/webapp/node_modules/has-symbols/test/index.js +0 -22
- gaia/eval/webapp/node_modules/has-symbols/test/shams/core-js.js +0 -29
- gaia/eval/webapp/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
- gaia/eval/webapp/node_modules/has-symbols/test/tests.js +0 -58
- gaia/eval/webapp/node_modules/has-symbols/tsconfig.json +0 -10
- gaia/eval/webapp/node_modules/hasown/.eslintrc +0 -5
- gaia/eval/webapp/node_modules/hasown/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/hasown/.nycrc +0 -13
- gaia/eval/webapp/node_modules/hasown/CHANGELOG.md +0 -40
- gaia/eval/webapp/node_modules/hasown/LICENSE +0 -21
- gaia/eval/webapp/node_modules/hasown/README.md +0 -40
- gaia/eval/webapp/node_modules/hasown/index.d.ts +0 -3
- gaia/eval/webapp/node_modules/hasown/index.js +0 -8
- gaia/eval/webapp/node_modules/hasown/package.json +0 -92
- gaia/eval/webapp/node_modules/hasown/tsconfig.json +0 -6
- gaia/eval/webapp/node_modules/http-errors/HISTORY.md +0 -180
- gaia/eval/webapp/node_modules/http-errors/LICENSE +0 -23
- gaia/eval/webapp/node_modules/http-errors/README.md +0 -169
- gaia/eval/webapp/node_modules/http-errors/index.js +0 -289
- gaia/eval/webapp/node_modules/http-errors/package.json +0 -50
- gaia/eval/webapp/node_modules/iconv-lite/Changelog.md +0 -162
- gaia/eval/webapp/node_modules/iconv-lite/LICENSE +0 -21
- gaia/eval/webapp/node_modules/iconv-lite/README.md +0 -156
- gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
- gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
- gaia/eval/webapp/node_modules/iconv-lite/encodings/index.js +0 -22
- gaia/eval/webapp/node_modules/iconv-lite/encodings/internal.js +0 -188
- gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
- gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
- gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
- gaia/eval/webapp/node_modules/iconv-lite/encodings/utf16.js +0 -177
- gaia/eval/webapp/node_modules/iconv-lite/encodings/utf7.js +0 -290
- gaia/eval/webapp/node_modules/iconv-lite/lib/bom-handling.js +0 -52
- gaia/eval/webapp/node_modules/iconv-lite/lib/extend-node.js +0 -217
- gaia/eval/webapp/node_modules/iconv-lite/lib/index.d.ts +0 -24
- gaia/eval/webapp/node_modules/iconv-lite/lib/index.js +0 -153
- gaia/eval/webapp/node_modules/iconv-lite/lib/streams.js +0 -121
- gaia/eval/webapp/node_modules/iconv-lite/package.json +0 -46
- gaia/eval/webapp/node_modules/inherits/LICENSE +0 -16
- gaia/eval/webapp/node_modules/inherits/README.md +0 -42
- gaia/eval/webapp/node_modules/inherits/inherits.js +0 -9
- gaia/eval/webapp/node_modules/inherits/inherits_browser.js +0 -27
- gaia/eval/webapp/node_modules/inherits/package.json +0 -29
- gaia/eval/webapp/node_modules/ipaddr.js/LICENSE +0 -19
- gaia/eval/webapp/node_modules/ipaddr.js/README.md +0 -233
- gaia/eval/webapp/node_modules/ipaddr.js/ipaddr.min.js +0 -1
- gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
- gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
- gaia/eval/webapp/node_modules/ipaddr.js/package.json +0 -35
- gaia/eval/webapp/node_modules/math-intrinsics/.eslintrc +0 -16
- gaia/eval/webapp/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/math-intrinsics/CHANGELOG.md +0 -24
- gaia/eval/webapp/node_modules/math-intrinsics/LICENSE +0 -21
- gaia/eval/webapp/node_modules/math-intrinsics/README.md +0 -50
- gaia/eval/webapp/node_modules/math-intrinsics/abs.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/abs.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.js +0 -5
- gaia/eval/webapp/node_modules/math-intrinsics/floor.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/floor.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/isFinite.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/isFinite.js +0 -12
- gaia/eval/webapp/node_modules/math-intrinsics/isInteger.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/isInteger.js +0 -16
- gaia/eval/webapp/node_modules/math-intrinsics/isNaN.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/isNaN.js +0 -6
- gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.js +0 -6
- gaia/eval/webapp/node_modules/math-intrinsics/max.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/max.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/min.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/min.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/mod.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/mod.js +0 -9
- gaia/eval/webapp/node_modules/math-intrinsics/package.json +0 -86
- gaia/eval/webapp/node_modules/math-intrinsics/pow.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/pow.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/round.d.ts +0 -1
- gaia/eval/webapp/node_modules/math-intrinsics/round.js +0 -4
- gaia/eval/webapp/node_modules/math-intrinsics/sign.d.ts +0 -3
- gaia/eval/webapp/node_modules/math-intrinsics/sign.js +0 -11
- gaia/eval/webapp/node_modules/math-intrinsics/test/index.js +0 -192
- gaia/eval/webapp/node_modules/math-intrinsics/tsconfig.json +0 -3
- gaia/eval/webapp/node_modules/media-typer/HISTORY.md +0 -22
- gaia/eval/webapp/node_modules/media-typer/LICENSE +0 -22
- gaia/eval/webapp/node_modules/media-typer/README.md +0 -81
- gaia/eval/webapp/node_modules/media-typer/index.js +0 -270
- gaia/eval/webapp/node_modules/media-typer/package.json +0 -26
- gaia/eval/webapp/node_modules/merge-descriptors/HISTORY.md +0 -21
- gaia/eval/webapp/node_modules/merge-descriptors/LICENSE +0 -23
- gaia/eval/webapp/node_modules/merge-descriptors/README.md +0 -49
- gaia/eval/webapp/node_modules/merge-descriptors/index.js +0 -60
- gaia/eval/webapp/node_modules/merge-descriptors/package.json +0 -39
- gaia/eval/webapp/node_modules/methods/HISTORY.md +0 -29
- gaia/eval/webapp/node_modules/methods/LICENSE +0 -24
- gaia/eval/webapp/node_modules/methods/README.md +0 -51
- gaia/eval/webapp/node_modules/methods/index.js +0 -69
- gaia/eval/webapp/node_modules/methods/package.json +0 -36
- gaia/eval/webapp/node_modules/mime/.npmignore +0 -0
- gaia/eval/webapp/node_modules/mime/CHANGELOG.md +0 -164
- gaia/eval/webapp/node_modules/mime/LICENSE +0 -21
- gaia/eval/webapp/node_modules/mime/README.md +0 -90
- gaia/eval/webapp/node_modules/mime/cli.js +0 -8
- gaia/eval/webapp/node_modules/mime/mime.js +0 -108
- gaia/eval/webapp/node_modules/mime/package.json +0 -44
- gaia/eval/webapp/node_modules/mime/src/build.js +0 -53
- gaia/eval/webapp/node_modules/mime/src/test.js +0 -60
- gaia/eval/webapp/node_modules/mime/types.json +0 -1
- gaia/eval/webapp/node_modules/mime-db/HISTORY.md +0 -507
- gaia/eval/webapp/node_modules/mime-db/LICENSE +0 -23
- gaia/eval/webapp/node_modules/mime-db/README.md +0 -100
- gaia/eval/webapp/node_modules/mime-db/db.json +0 -8519
- gaia/eval/webapp/node_modules/mime-db/index.js +0 -12
- gaia/eval/webapp/node_modules/mime-db/package.json +0 -60
- gaia/eval/webapp/node_modules/mime-types/HISTORY.md +0 -397
- gaia/eval/webapp/node_modules/mime-types/LICENSE +0 -23
- gaia/eval/webapp/node_modules/mime-types/README.md +0 -113
- gaia/eval/webapp/node_modules/mime-types/index.js +0 -188
- gaia/eval/webapp/node_modules/mime-types/package.json +0 -44
- gaia/eval/webapp/node_modules/ms/index.js +0 -152
- gaia/eval/webapp/node_modules/ms/license.md +0 -21
- gaia/eval/webapp/node_modules/ms/package.json +0 -37
- gaia/eval/webapp/node_modules/ms/readme.md +0 -51
- gaia/eval/webapp/node_modules/negotiator/HISTORY.md +0 -108
- gaia/eval/webapp/node_modules/negotiator/LICENSE +0 -24
- gaia/eval/webapp/node_modules/negotiator/README.md +0 -203
- gaia/eval/webapp/node_modules/negotiator/index.js +0 -82
- gaia/eval/webapp/node_modules/negotiator/lib/charset.js +0 -169
- gaia/eval/webapp/node_modules/negotiator/lib/encoding.js +0 -184
- gaia/eval/webapp/node_modules/negotiator/lib/language.js +0 -179
- gaia/eval/webapp/node_modules/negotiator/lib/mediaType.js +0 -294
- gaia/eval/webapp/node_modules/negotiator/package.json +0 -42
- gaia/eval/webapp/node_modules/object-inspect/.eslintrc +0 -53
- gaia/eval/webapp/node_modules/object-inspect/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/object-inspect/.nycrc +0 -13
- gaia/eval/webapp/node_modules/object-inspect/CHANGELOG.md +0 -424
- gaia/eval/webapp/node_modules/object-inspect/LICENSE +0 -21
- gaia/eval/webapp/node_modules/object-inspect/example/all.js +0 -23
- gaia/eval/webapp/node_modules/object-inspect/example/circular.js +0 -6
- gaia/eval/webapp/node_modules/object-inspect/example/fn.js +0 -5
- gaia/eval/webapp/node_modules/object-inspect/example/inspect.js +0 -10
- gaia/eval/webapp/node_modules/object-inspect/index.js +0 -544
- gaia/eval/webapp/node_modules/object-inspect/package-support.json +0 -20
- gaia/eval/webapp/node_modules/object-inspect/package.json +0 -105
- gaia/eval/webapp/node_modules/object-inspect/readme.markdown +0 -84
- gaia/eval/webapp/node_modules/object-inspect/test/bigint.js +0 -58
- gaia/eval/webapp/node_modules/object-inspect/test/browser/dom.js +0 -15
- gaia/eval/webapp/node_modules/object-inspect/test/circular.js +0 -16
- gaia/eval/webapp/node_modules/object-inspect/test/deep.js +0 -12
- gaia/eval/webapp/node_modules/object-inspect/test/element.js +0 -53
- gaia/eval/webapp/node_modules/object-inspect/test/err.js +0 -48
- gaia/eval/webapp/node_modules/object-inspect/test/fakes.js +0 -29
- gaia/eval/webapp/node_modules/object-inspect/test/fn.js +0 -76
- gaia/eval/webapp/node_modules/object-inspect/test/global.js +0 -17
- gaia/eval/webapp/node_modules/object-inspect/test/has.js +0 -15
- gaia/eval/webapp/node_modules/object-inspect/test/holes.js +0 -15
- gaia/eval/webapp/node_modules/object-inspect/test/indent-option.js +0 -271
- gaia/eval/webapp/node_modules/object-inspect/test/inspect.js +0 -139
- gaia/eval/webapp/node_modules/object-inspect/test/lowbyte.js +0 -12
- gaia/eval/webapp/node_modules/object-inspect/test/number.js +0 -58
- gaia/eval/webapp/node_modules/object-inspect/test/quoteStyle.js +0 -26
- gaia/eval/webapp/node_modules/object-inspect/test/toStringTag.js +0 -40
- gaia/eval/webapp/node_modules/object-inspect/test/undef.js +0 -12
- gaia/eval/webapp/node_modules/object-inspect/test/values.js +0 -261
- gaia/eval/webapp/node_modules/object-inspect/test-core-js.js +0 -26
- gaia/eval/webapp/node_modules/object-inspect/util.inspect.js +0 -1
- gaia/eval/webapp/node_modules/on-finished/HISTORY.md +0 -98
- gaia/eval/webapp/node_modules/on-finished/LICENSE +0 -23
- gaia/eval/webapp/node_modules/on-finished/README.md +0 -162
- gaia/eval/webapp/node_modules/on-finished/index.js +0 -234
- gaia/eval/webapp/node_modules/on-finished/package.json +0 -39
- gaia/eval/webapp/node_modules/parseurl/HISTORY.md +0 -58
- gaia/eval/webapp/node_modules/parseurl/LICENSE +0 -24
- gaia/eval/webapp/node_modules/parseurl/README.md +0 -133
- gaia/eval/webapp/node_modules/parseurl/index.js +0 -158
- gaia/eval/webapp/node_modules/parseurl/package.json +0 -40
- gaia/eval/webapp/node_modules/path/.npmignore +0 -1
- gaia/eval/webapp/node_modules/path/LICENSE +0 -18
- gaia/eval/webapp/node_modules/path/README.md +0 -15
- gaia/eval/webapp/node_modules/path/package.json +0 -24
- gaia/eval/webapp/node_modules/path/path.js +0 -628
- gaia/eval/webapp/node_modules/path-to-regexp/LICENSE +0 -21
- gaia/eval/webapp/node_modules/path-to-regexp/Readme.md +0 -35
- gaia/eval/webapp/node_modules/path-to-regexp/index.js +0 -156
- gaia/eval/webapp/node_modules/path-to-regexp/package.json +0 -30
- gaia/eval/webapp/node_modules/process/.eslintrc +0 -21
- gaia/eval/webapp/node_modules/process/LICENSE +0 -22
- gaia/eval/webapp/node_modules/process/README.md +0 -26
- gaia/eval/webapp/node_modules/process/browser.js +0 -184
- gaia/eval/webapp/node_modules/process/index.js +0 -2
- gaia/eval/webapp/node_modules/process/package.json +0 -27
- gaia/eval/webapp/node_modules/process/test.js +0 -199
- gaia/eval/webapp/node_modules/proxy-addr/HISTORY.md +0 -161
- gaia/eval/webapp/node_modules/proxy-addr/LICENSE +0 -22
- gaia/eval/webapp/node_modules/proxy-addr/README.md +0 -139
- gaia/eval/webapp/node_modules/proxy-addr/index.js +0 -327
- gaia/eval/webapp/node_modules/proxy-addr/package.json +0 -47
- gaia/eval/webapp/node_modules/qs/.editorconfig +0 -46
- gaia/eval/webapp/node_modules/qs/.eslintrc +0 -38
- gaia/eval/webapp/node_modules/qs/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/qs/.nycrc +0 -13
- gaia/eval/webapp/node_modules/qs/CHANGELOG.md +0 -600
- gaia/eval/webapp/node_modules/qs/LICENSE.md +0 -29
- gaia/eval/webapp/node_modules/qs/README.md +0 -709
- gaia/eval/webapp/node_modules/qs/dist/qs.js +0 -90
- gaia/eval/webapp/node_modules/qs/lib/formats.js +0 -23
- gaia/eval/webapp/node_modules/qs/lib/index.js +0 -11
- gaia/eval/webapp/node_modules/qs/lib/parse.js +0 -296
- gaia/eval/webapp/node_modules/qs/lib/stringify.js +0 -351
- gaia/eval/webapp/node_modules/qs/lib/utils.js +0 -265
- gaia/eval/webapp/node_modules/qs/package.json +0 -91
- gaia/eval/webapp/node_modules/qs/test/empty-keys-cases.js +0 -267
- gaia/eval/webapp/node_modules/qs/test/parse.js +0 -1170
- gaia/eval/webapp/node_modules/qs/test/stringify.js +0 -1298
- gaia/eval/webapp/node_modules/qs/test/utils.js +0 -136
- gaia/eval/webapp/node_modules/range-parser/HISTORY.md +0 -56
- gaia/eval/webapp/node_modules/range-parser/LICENSE +0 -23
- gaia/eval/webapp/node_modules/range-parser/README.md +0 -84
- gaia/eval/webapp/node_modules/range-parser/index.js +0 -162
- gaia/eval/webapp/node_modules/range-parser/package.json +0 -44
- gaia/eval/webapp/node_modules/raw-body/HISTORY.md +0 -308
- gaia/eval/webapp/node_modules/raw-body/LICENSE +0 -22
- gaia/eval/webapp/node_modules/raw-body/README.md +0 -223
- gaia/eval/webapp/node_modules/raw-body/SECURITY.md +0 -24
- gaia/eval/webapp/node_modules/raw-body/index.d.ts +0 -87
- gaia/eval/webapp/node_modules/raw-body/index.js +0 -336
- gaia/eval/webapp/node_modules/raw-body/package.json +0 -49
- gaia/eval/webapp/node_modules/safe-buffer/LICENSE +0 -21
- gaia/eval/webapp/node_modules/safe-buffer/README.md +0 -584
- gaia/eval/webapp/node_modules/safe-buffer/index.d.ts +0 -187
- gaia/eval/webapp/node_modules/safe-buffer/index.js +0 -65
- gaia/eval/webapp/node_modules/safe-buffer/package.json +0 -51
- gaia/eval/webapp/node_modules/safer-buffer/LICENSE +0 -21
- gaia/eval/webapp/node_modules/safer-buffer/Porting-Buffer.md +0 -268
- gaia/eval/webapp/node_modules/safer-buffer/Readme.md +0 -156
- gaia/eval/webapp/node_modules/safer-buffer/dangerous.js +0 -58
- gaia/eval/webapp/node_modules/safer-buffer/package.json +0 -34
- gaia/eval/webapp/node_modules/safer-buffer/safer.js +0 -77
- gaia/eval/webapp/node_modules/safer-buffer/tests.js +0 -406
- gaia/eval/webapp/node_modules/send/HISTORY.md +0 -526
- gaia/eval/webapp/node_modules/send/LICENSE +0 -23
- gaia/eval/webapp/node_modules/send/README.md +0 -327
- gaia/eval/webapp/node_modules/send/SECURITY.md +0 -24
- gaia/eval/webapp/node_modules/send/index.js +0 -1142
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/HISTORY.md +0 -14
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/LICENSE +0 -22
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/README.md +0 -128
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/index.js +0 -60
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/package.json +0 -40
- gaia/eval/webapp/node_modules/send/node_modules/ms/index.js +0 -162
- gaia/eval/webapp/node_modules/send/node_modules/ms/license.md +0 -21
- gaia/eval/webapp/node_modules/send/node_modules/ms/package.json +0 -38
- gaia/eval/webapp/node_modules/send/node_modules/ms/readme.md +0 -59
- gaia/eval/webapp/node_modules/send/package.json +0 -62
- gaia/eval/webapp/node_modules/serve-static/HISTORY.md +0 -487
- gaia/eval/webapp/node_modules/serve-static/LICENSE +0 -25
- gaia/eval/webapp/node_modules/serve-static/README.md +0 -257
- gaia/eval/webapp/node_modules/serve-static/index.js +0 -209
- gaia/eval/webapp/node_modules/serve-static/package.json +0 -42
- gaia/eval/webapp/node_modules/setprototypeof/LICENSE +0 -13
- gaia/eval/webapp/node_modules/setprototypeof/README.md +0 -31
- gaia/eval/webapp/node_modules/setprototypeof/index.d.ts +0 -2
- gaia/eval/webapp/node_modules/setprototypeof/index.js +0 -17
- gaia/eval/webapp/node_modules/setprototypeof/package.json +0 -38
- gaia/eval/webapp/node_modules/setprototypeof/test/index.js +0 -24
- gaia/eval/webapp/node_modules/side-channel/.editorconfig +0 -9
- gaia/eval/webapp/node_modules/side-channel/.eslintrc +0 -12
- gaia/eval/webapp/node_modules/side-channel/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/side-channel/.nycrc +0 -13
- gaia/eval/webapp/node_modules/side-channel/CHANGELOG.md +0 -110
- gaia/eval/webapp/node_modules/side-channel/LICENSE +0 -21
- gaia/eval/webapp/node_modules/side-channel/README.md +0 -61
- gaia/eval/webapp/node_modules/side-channel/index.d.ts +0 -14
- gaia/eval/webapp/node_modules/side-channel/index.js +0 -43
- gaia/eval/webapp/node_modules/side-channel/package.json +0 -85
- gaia/eval/webapp/node_modules/side-channel/test/index.js +0 -104
- gaia/eval/webapp/node_modules/side-channel/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/side-channel-list/.editorconfig +0 -9
- gaia/eval/webapp/node_modules/side-channel-list/.eslintrc +0 -11
- gaia/eval/webapp/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/side-channel-list/.nycrc +0 -13
- gaia/eval/webapp/node_modules/side-channel-list/CHANGELOG.md +0 -15
- gaia/eval/webapp/node_modules/side-channel-list/LICENSE +0 -21
- gaia/eval/webapp/node_modules/side-channel-list/README.md +0 -62
- gaia/eval/webapp/node_modules/side-channel-list/index.d.ts +0 -13
- gaia/eval/webapp/node_modules/side-channel-list/index.js +0 -113
- gaia/eval/webapp/node_modules/side-channel-list/list.d.ts +0 -14
- gaia/eval/webapp/node_modules/side-channel-list/package.json +0 -77
- gaia/eval/webapp/node_modules/side-channel-list/test/index.js +0 -104
- gaia/eval/webapp/node_modules/side-channel-list/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/side-channel-map/.editorconfig +0 -9
- gaia/eval/webapp/node_modules/side-channel-map/.eslintrc +0 -11
- gaia/eval/webapp/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/side-channel-map/.nycrc +0 -13
- gaia/eval/webapp/node_modules/side-channel-map/CHANGELOG.md +0 -22
- gaia/eval/webapp/node_modules/side-channel-map/LICENSE +0 -21
- gaia/eval/webapp/node_modules/side-channel-map/README.md +0 -62
- gaia/eval/webapp/node_modules/side-channel-map/index.d.ts +0 -15
- gaia/eval/webapp/node_modules/side-channel-map/index.js +0 -68
- gaia/eval/webapp/node_modules/side-channel-map/package.json +0 -80
- gaia/eval/webapp/node_modules/side-channel-map/test/index.js +0 -114
- gaia/eval/webapp/node_modules/side-channel-map/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/side-channel-weakmap/.editorconfig +0 -9
- gaia/eval/webapp/node_modules/side-channel-weakmap/.eslintrc +0 -12
- gaia/eval/webapp/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
- gaia/eval/webapp/node_modules/side-channel-weakmap/.nycrc +0 -13
- gaia/eval/webapp/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
- gaia/eval/webapp/node_modules/side-channel-weakmap/LICENSE +0 -21
- gaia/eval/webapp/node_modules/side-channel-weakmap/README.md +0 -62
- gaia/eval/webapp/node_modules/side-channel-weakmap/index.d.ts +0 -15
- gaia/eval/webapp/node_modules/side-channel-weakmap/index.js +0 -84
- gaia/eval/webapp/node_modules/side-channel-weakmap/package.json +0 -87
- gaia/eval/webapp/node_modules/side-channel-weakmap/test/index.js +0 -114
- gaia/eval/webapp/node_modules/side-channel-weakmap/tsconfig.json +0 -9
- gaia/eval/webapp/node_modules/statuses/HISTORY.md +0 -82
- gaia/eval/webapp/node_modules/statuses/LICENSE +0 -23
- gaia/eval/webapp/node_modules/statuses/README.md +0 -136
- gaia/eval/webapp/node_modules/statuses/codes.json +0 -65
- gaia/eval/webapp/node_modules/statuses/index.js +0 -146
- gaia/eval/webapp/node_modules/statuses/package.json +0 -49
- gaia/eval/webapp/node_modules/toidentifier/HISTORY.md +0 -9
- gaia/eval/webapp/node_modules/toidentifier/LICENSE +0 -21
- gaia/eval/webapp/node_modules/toidentifier/README.md +0 -61
- gaia/eval/webapp/node_modules/toidentifier/index.js +0 -32
- gaia/eval/webapp/node_modules/toidentifier/package.json +0 -38
- gaia/eval/webapp/node_modules/type-is/HISTORY.md +0 -259
- gaia/eval/webapp/node_modules/type-is/LICENSE +0 -23
- gaia/eval/webapp/node_modules/type-is/README.md +0 -170
- gaia/eval/webapp/node_modules/type-is/index.js +0 -266
- gaia/eval/webapp/node_modules/type-is/package.json +0 -45
- gaia/eval/webapp/node_modules/unpipe/HISTORY.md +0 -4
- gaia/eval/webapp/node_modules/unpipe/LICENSE +0 -22
- gaia/eval/webapp/node_modules/unpipe/README.md +0 -43
- gaia/eval/webapp/node_modules/unpipe/index.js +0 -69
- gaia/eval/webapp/node_modules/unpipe/package.json +0 -27
- gaia/eval/webapp/node_modules/util/LICENSE +0 -18
- gaia/eval/webapp/node_modules/util/README.md +0 -15
- gaia/eval/webapp/node_modules/util/node_modules/inherits/LICENSE +0 -16
- gaia/eval/webapp/node_modules/util/node_modules/inherits/README.md +0 -42
- gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits.js +0 -7
- gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits_browser.js +0 -23
- gaia/eval/webapp/node_modules/util/node_modules/inherits/package.json +0 -29
- gaia/eval/webapp/node_modules/util/package.json +0 -35
- gaia/eval/webapp/node_modules/util/support/isBuffer.js +0 -3
- gaia/eval/webapp/node_modules/util/support/isBufferBrowser.js +0 -6
- gaia/eval/webapp/node_modules/util/util.js +0 -586
- gaia/eval/webapp/node_modules/utils-merge/.npmignore +0 -9
- gaia/eval/webapp/node_modules/utils-merge/LICENSE +0 -20
- gaia/eval/webapp/node_modules/utils-merge/README.md +0 -34
- gaia/eval/webapp/node_modules/utils-merge/index.js +0 -23
- gaia/eval/webapp/node_modules/utils-merge/package.json +0 -40
- gaia/eval/webapp/node_modules/vary/HISTORY.md +0 -39
- gaia/eval/webapp/node_modules/vary/LICENSE +0 -22
- gaia/eval/webapp/node_modules/vary/README.md +0 -101
- gaia/eval/webapp/node_modules/vary/index.js +0 -149
- gaia/eval/webapp/node_modules/vary/package.json +0 -43
- {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/WHEEL +0 -0
- {amd_gaia-0.14.1.dist-info → amd_gaia-0.14.3.dist-info}/licenses/LICENSE.md +0 -0
- {amd_gaia-0.14.1.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] + "..."
|
gaia/agents/base/mcp_agent.py
CHANGED
gaia/agents/base/tools.py
CHANGED
gaia/agents/blender/agent.py
CHANGED
gaia/agents/blender/app.py
CHANGED
gaia/agents/blender/core/view.py
CHANGED
gaia/agents/chat/__init__.py
CHANGED
gaia/agents/chat/agent.py
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
# Copyright(C)
|
|
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
|
):
|
|
@@ -411,13 +262,8 @@ No documents are currently indexed.
|
|
|
411
262
|
"""
|
|
412
263
|
|
|
413
264
|
# Build the prompt with indexed documents section
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
**CRITICAL RULES:**
|
|
417
|
-
1. ALWAYS output valid JSON - every single response
|
|
418
|
-
2. Do NOT add text before or after the JSON
|
|
419
|
-
3. Do NOT use markdown code blocks
|
|
420
|
-
4. Your entire response must be parseable as JSON
|
|
265
|
+
# NOTE: Base agent now provides JSON format rules, so we only add ChatAgent-specific guidance
|
|
266
|
+
base_prompt = """You are a helpful AI assistant with document search and RAG capabilities.
|
|
421
267
|
"""
|
|
422
268
|
|
|
423
269
|
# Add indexed documents section
|
|
@@ -425,25 +271,7 @@ No documents are currently indexed.
|
|
|
425
271
|
base_prompt
|
|
426
272
|
+ indexed_docs_section
|
|
427
273
|
+ """
|
|
428
|
-
|
|
429
|
-
**JSON RESPONSE FORMATS:**
|
|
430
|
-
|
|
431
|
-
Format 1 - Direct Answer (for general conversation):
|
|
432
|
-
{
|
|
433
|
-
"thought": "brief reasoning",
|
|
434
|
-
"goal": "what you're trying to achieve",
|
|
435
|
-
"answer": "your response text here"
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
Format 2 - Tool Call (to get data or perform actions):
|
|
439
|
-
{
|
|
440
|
-
"thought": "why you need this tool",
|
|
441
|
-
"goal": "what you're trying to achieve",
|
|
442
|
-
"tool": "tool_name",
|
|
443
|
-
"tool_args": {}
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
**WHEN TO USE EACH FORMAT:**
|
|
274
|
+
**WHEN TO USE TOOLS VS DIRECT ANSWERS:**
|
|
447
275
|
|
|
448
276
|
Use Format 1 (answer) for:
|
|
449
277
|
- Greetings: {"answer": "Hello! How can I help?"}
|
|
@@ -842,20 +670,26 @@ When user asks to "index my data folder" or similar:
|
|
|
842
670
|
|
|
843
671
|
def _watch_directory(self, directory: str) -> None:
|
|
844
672
|
"""Watch a directory for file changes."""
|
|
845
|
-
if
|
|
673
|
+
if not check_watchdog_available():
|
|
846
674
|
error_msg = (
|
|
847
675
|
"\n❌ Error: Missing required package 'watchdog'\n\n"
|
|
848
676
|
"File watching requires the watchdog package.\n"
|
|
849
677
|
"Please install the required dependencies:\n"
|
|
850
|
-
|
|
678
|
+
' uv pip install -e ".[dev]"\n\n'
|
|
851
679
|
"Or install watchdog directly:\n"
|
|
852
|
-
|
|
680
|
+
' uv pip install "watchdog>=2.1.0"\n'
|
|
853
681
|
)
|
|
854
682
|
logger.error(error_msg)
|
|
855
683
|
raise ImportError(error_msg)
|
|
856
684
|
|
|
857
685
|
try:
|
|
858
|
-
|
|
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
|
+
)
|
|
859
693
|
observer = Observer()
|
|
860
694
|
observer.schedule(event_handler, directory, recursive=True)
|
|
861
695
|
observer.start()
|
|
@@ -864,6 +698,32 @@ When user asks to "index my data folder" or similar:
|
|
|
864
698
|
except Exception as e:
|
|
865
699
|
logger.error(f"Failed to watch {directory}: {e}")
|
|
866
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
|
+
|
|
867
727
|
def reindex_file(self, file_path: str) -> None:
|
|
868
728
|
"""Reindex a file that was modified or created."""
|
|
869
729
|
if not self.rag:
|
gaia/agents/chat/app.py
CHANGED
gaia/agents/chat/session.py
CHANGED
gaia/agents/code/__init__.py
CHANGED