amd-gaia 0.14.1__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.1.dist-info/METADATA +768 -0
- amd_gaia-0.14.1.dist-info/RECORD +800 -0
- amd_gaia-0.14.1.dist-info/WHEEL +5 -0
- amd_gaia-0.14.1.dist-info/entry_points.txt +5 -0
- amd_gaia-0.14.1.dist-info/licenses/LICENSE.md +21 -0
- amd_gaia-0.14.1.dist-info/top_level.txt +1 -0
- gaia/__init__.py +2 -0
- gaia/agents/__init__.py +19 -0
- gaia/agents/base/__init__.py +9 -0
- gaia/agents/base/agent.py +2072 -0
- gaia/agents/base/api_agent.py +120 -0
- gaia/agents/base/console.py +1457 -0
- gaia/agents/base/mcp_agent.py +86 -0
- gaia/agents/base/tools.py +83 -0
- gaia/agents/blender/agent.py +556 -0
- gaia/agents/blender/agent_simple.py +135 -0
- gaia/agents/blender/app.py +211 -0
- gaia/agents/blender/app_simple.py +41 -0
- gaia/agents/blender/core/__init__.py +16 -0
- gaia/agents/blender/core/materials.py +506 -0
- gaia/agents/blender/core/objects.py +316 -0
- gaia/agents/blender/core/rendering.py +225 -0
- gaia/agents/blender/core/scene.py +220 -0
- gaia/agents/blender/core/view.py +146 -0
- gaia/agents/chat/__init__.py +9 -0
- gaia/agents/chat/agent.py +975 -0
- gaia/agents/chat/app.py +1058 -0
- gaia/agents/chat/session.py +508 -0
- gaia/agents/chat/tools/__init__.py +15 -0
- gaia/agents/chat/tools/file_tools.py +96 -0
- gaia/agents/chat/tools/rag_tools.py +1729 -0
- gaia/agents/chat/tools/shell_tools.py +436 -0
- gaia/agents/code/__init__.py +7 -0
- gaia/agents/code/agent.py +547 -0
- gaia/agents/code/app.py +266 -0
- gaia/agents/code/models.py +135 -0
- gaia/agents/code/orchestration/__init__.py +24 -0
- gaia/agents/code/orchestration/checklist_executor.py +1739 -0
- gaia/agents/code/orchestration/checklist_generator.py +709 -0
- gaia/agents/code/orchestration/factories/__init__.py +9 -0
- gaia/agents/code/orchestration/factories/base.py +63 -0
- gaia/agents/code/orchestration/factories/nextjs_factory.py +118 -0
- gaia/agents/code/orchestration/factories/python_factory.py +106 -0
- gaia/agents/code/orchestration/orchestrator.py +610 -0
- gaia/agents/code/orchestration/project_analyzer.py +391 -0
- gaia/agents/code/orchestration/steps/__init__.py +67 -0
- gaia/agents/code/orchestration/steps/base.py +188 -0
- gaia/agents/code/orchestration/steps/error_handler.py +314 -0
- gaia/agents/code/orchestration/steps/nextjs.py +828 -0
- gaia/agents/code/orchestration/steps/python.py +307 -0
- gaia/agents/code/orchestration/template_catalog.py +463 -0
- gaia/agents/code/orchestration/workflows/__init__.py +14 -0
- gaia/agents/code/orchestration/workflows/base.py +80 -0
- gaia/agents/code/orchestration/workflows/nextjs.py +186 -0
- gaia/agents/code/orchestration/workflows/python.py +94 -0
- gaia/agents/code/prompts/__init__.py +11 -0
- gaia/agents/code/prompts/base_prompt.py +77 -0
- gaia/agents/code/prompts/code_patterns.py +1925 -0
- gaia/agents/code/prompts/nextjs_prompt.py +40 -0
- gaia/agents/code/prompts/python_prompt.py +109 -0
- gaia/agents/code/schema_inference.py +365 -0
- gaia/agents/code/system_prompt.py +41 -0
- gaia/agents/code/tools/__init__.py +42 -0
- gaia/agents/code/tools/cli_tools.py +1138 -0
- gaia/agents/code/tools/code_formatting.py +319 -0
- gaia/agents/code/tools/code_tools.py +769 -0
- gaia/agents/code/tools/error_fixing.py +1347 -0
- gaia/agents/code/tools/external_tools.py +180 -0
- gaia/agents/code/tools/file_io.py +845 -0
- gaia/agents/code/tools/prisma_tools.py +190 -0
- gaia/agents/code/tools/project_management.py +1016 -0
- gaia/agents/code/tools/testing.py +321 -0
- gaia/agents/code/tools/typescript_tools.py +122 -0
- gaia/agents/code/tools/validation_parsing.py +461 -0
- gaia/agents/code/tools/validation_tools.py +803 -0
- gaia/agents/code/tools/web_dev_tools.py +1744 -0
- gaia/agents/code/validators/__init__.py +16 -0
- gaia/agents/code/validators/antipattern_checker.py +241 -0
- gaia/agents/code/validators/ast_analyzer.py +197 -0
- gaia/agents/code/validators/requirements_validator.py +145 -0
- gaia/agents/code/validators/syntax_validator.py +171 -0
- gaia/agents/docker/__init__.py +7 -0
- gaia/agents/docker/agent.py +642 -0
- gaia/agents/jira/__init__.py +11 -0
- gaia/agents/jira/agent.py +894 -0
- gaia/agents/jira/jql_templates.py +299 -0
- gaia/agents/routing/__init__.py +7 -0
- gaia/agents/routing/agent.py +512 -0
- gaia/agents/routing/system_prompt.py +75 -0
- gaia/api/__init__.py +23 -0
- gaia/api/agent_registry.py +238 -0
- gaia/api/app.py +305 -0
- gaia/api/openai_server.py +575 -0
- gaia/api/schemas.py +186 -0
- gaia/api/sse_handler.py +370 -0
- gaia/apps/__init__.py +4 -0
- gaia/apps/llm/__init__.py +6 -0
- gaia/apps/llm/app.py +169 -0
- gaia/apps/summarize/app.py +633 -0
- gaia/apps/summarize/html_viewer.py +133 -0
- gaia/apps/summarize/pdf_formatter.py +284 -0
- gaia/audio/__init__.py +2 -0
- gaia/audio/audio_client.py +439 -0
- gaia/audio/audio_recorder.py +269 -0
- gaia/audio/kokoro_tts.py +599 -0
- gaia/audio/whisper_asr.py +432 -0
- gaia/chat/__init__.py +16 -0
- gaia/chat/app.py +430 -0
- gaia/chat/prompts.py +522 -0
- gaia/chat/sdk.py +1200 -0
- gaia/cli.py +5621 -0
- gaia/eval/batch_experiment.py +2332 -0
- gaia/eval/claude.py +542 -0
- gaia/eval/config.py +37 -0
- gaia/eval/email_generator.py +512 -0
- gaia/eval/eval.py +3179 -0
- gaia/eval/groundtruth.py +1130 -0
- gaia/eval/transcript_generator.py +582 -0
- gaia/eval/webapp/README.md +168 -0
- gaia/eval/webapp/node_modules/.bin/mime +16 -0
- gaia/eval/webapp/node_modules/.bin/mime.cmd +17 -0
- gaia/eval/webapp/node_modules/.bin/mime.ps1 +28 -0
- gaia/eval/webapp/node_modules/.package-lock.json +865 -0
- gaia/eval/webapp/node_modules/accepts/HISTORY.md +243 -0
- gaia/eval/webapp/node_modules/accepts/LICENSE +23 -0
- gaia/eval/webapp/node_modules/accepts/README.md +140 -0
- gaia/eval/webapp/node_modules/accepts/index.js +238 -0
- gaia/eval/webapp/node_modules/accepts/package.json +47 -0
- gaia/eval/webapp/node_modules/array-flatten/LICENSE +21 -0
- gaia/eval/webapp/node_modules/array-flatten/README.md +43 -0
- gaia/eval/webapp/node_modules/array-flatten/array-flatten.js +64 -0
- gaia/eval/webapp/node_modules/array-flatten/package.json +39 -0
- gaia/eval/webapp/node_modules/body-parser/HISTORY.md +672 -0
- gaia/eval/webapp/node_modules/body-parser/LICENSE +23 -0
- gaia/eval/webapp/node_modules/body-parser/README.md +476 -0
- gaia/eval/webapp/node_modules/body-parser/SECURITY.md +25 -0
- gaia/eval/webapp/node_modules/body-parser/index.js +156 -0
- gaia/eval/webapp/node_modules/body-parser/lib/read.js +205 -0
- gaia/eval/webapp/node_modules/body-parser/lib/types/json.js +247 -0
- gaia/eval/webapp/node_modules/body-parser/lib/types/raw.js +101 -0
- gaia/eval/webapp/node_modules/body-parser/lib/types/text.js +121 -0
- gaia/eval/webapp/node_modules/body-parser/lib/types/urlencoded.js +307 -0
- gaia/eval/webapp/node_modules/body-parser/package.json +56 -0
- gaia/eval/webapp/node_modules/bytes/History.md +97 -0
- gaia/eval/webapp/node_modules/bytes/LICENSE +23 -0
- gaia/eval/webapp/node_modules/bytes/Readme.md +152 -0
- gaia/eval/webapp/node_modules/bytes/index.js +170 -0
- gaia/eval/webapp/node_modules/bytes/package.json +42 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/README.md +62 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/index.js +15 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/package.json +85 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- gaia/eval/webapp/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/call-bound/.eslintrc +13 -0
- gaia/eval/webapp/node_modules/call-bound/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/call-bound/.nycrc +9 -0
- gaia/eval/webapp/node_modules/call-bound/CHANGELOG.md +42 -0
- gaia/eval/webapp/node_modules/call-bound/LICENSE +21 -0
- gaia/eval/webapp/node_modules/call-bound/README.md +53 -0
- gaia/eval/webapp/node_modules/call-bound/index.d.ts +94 -0
- gaia/eval/webapp/node_modules/call-bound/index.js +19 -0
- gaia/eval/webapp/node_modules/call-bound/package.json +99 -0
- gaia/eval/webapp/node_modules/call-bound/test/index.js +61 -0
- gaia/eval/webapp/node_modules/call-bound/tsconfig.json +10 -0
- gaia/eval/webapp/node_modules/content-disposition/HISTORY.md +60 -0
- gaia/eval/webapp/node_modules/content-disposition/LICENSE +22 -0
- gaia/eval/webapp/node_modules/content-disposition/README.md +142 -0
- gaia/eval/webapp/node_modules/content-disposition/index.js +458 -0
- gaia/eval/webapp/node_modules/content-disposition/package.json +44 -0
- gaia/eval/webapp/node_modules/content-type/HISTORY.md +29 -0
- gaia/eval/webapp/node_modules/content-type/LICENSE +22 -0
- gaia/eval/webapp/node_modules/content-type/README.md +94 -0
- gaia/eval/webapp/node_modules/content-type/index.js +225 -0
- gaia/eval/webapp/node_modules/content-type/package.json +42 -0
- gaia/eval/webapp/node_modules/cookie/LICENSE +24 -0
- gaia/eval/webapp/node_modules/cookie/README.md +317 -0
- gaia/eval/webapp/node_modules/cookie/SECURITY.md +25 -0
- gaia/eval/webapp/node_modules/cookie/index.js +334 -0
- gaia/eval/webapp/node_modules/cookie/package.json +44 -0
- gaia/eval/webapp/node_modules/cookie-signature/.npmignore +4 -0
- gaia/eval/webapp/node_modules/cookie-signature/History.md +38 -0
- gaia/eval/webapp/node_modules/cookie-signature/Readme.md +42 -0
- gaia/eval/webapp/node_modules/cookie-signature/index.js +51 -0
- gaia/eval/webapp/node_modules/cookie-signature/package.json +18 -0
- gaia/eval/webapp/node_modules/debug/.coveralls.yml +1 -0
- gaia/eval/webapp/node_modules/debug/.eslintrc +11 -0
- gaia/eval/webapp/node_modules/debug/.npmignore +9 -0
- gaia/eval/webapp/node_modules/debug/.travis.yml +14 -0
- gaia/eval/webapp/node_modules/debug/CHANGELOG.md +362 -0
- gaia/eval/webapp/node_modules/debug/LICENSE +19 -0
- gaia/eval/webapp/node_modules/debug/Makefile +50 -0
- gaia/eval/webapp/node_modules/debug/README.md +312 -0
- gaia/eval/webapp/node_modules/debug/component.json +19 -0
- gaia/eval/webapp/node_modules/debug/karma.conf.js +70 -0
- gaia/eval/webapp/node_modules/debug/node.js +1 -0
- gaia/eval/webapp/node_modules/debug/package.json +49 -0
- gaia/eval/webapp/node_modules/debug/src/browser.js +185 -0
- gaia/eval/webapp/node_modules/debug/src/debug.js +202 -0
- gaia/eval/webapp/node_modules/debug/src/index.js +10 -0
- gaia/eval/webapp/node_modules/debug/src/inspector-log.js +15 -0
- gaia/eval/webapp/node_modules/debug/src/node.js +248 -0
- gaia/eval/webapp/node_modules/depd/History.md +103 -0
- gaia/eval/webapp/node_modules/depd/LICENSE +22 -0
- gaia/eval/webapp/node_modules/depd/Readme.md +280 -0
- gaia/eval/webapp/node_modules/depd/index.js +538 -0
- gaia/eval/webapp/node_modules/depd/lib/browser/index.js +77 -0
- gaia/eval/webapp/node_modules/depd/package.json +45 -0
- gaia/eval/webapp/node_modules/destroy/LICENSE +23 -0
- gaia/eval/webapp/node_modules/destroy/README.md +63 -0
- gaia/eval/webapp/node_modules/destroy/index.js +209 -0
- gaia/eval/webapp/node_modules/destroy/package.json +48 -0
- gaia/eval/webapp/node_modules/dunder-proto/.eslintrc +5 -0
- gaia/eval/webapp/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/dunder-proto/.nycrc +13 -0
- gaia/eval/webapp/node_modules/dunder-proto/CHANGELOG.md +24 -0
- gaia/eval/webapp/node_modules/dunder-proto/LICENSE +21 -0
- gaia/eval/webapp/node_modules/dunder-proto/README.md +54 -0
- gaia/eval/webapp/node_modules/dunder-proto/get.d.ts +5 -0
- gaia/eval/webapp/node_modules/dunder-proto/get.js +30 -0
- gaia/eval/webapp/node_modules/dunder-proto/package.json +76 -0
- gaia/eval/webapp/node_modules/dunder-proto/set.d.ts +5 -0
- gaia/eval/webapp/node_modules/dunder-proto/set.js +35 -0
- gaia/eval/webapp/node_modules/dunder-proto/test/get.js +34 -0
- gaia/eval/webapp/node_modules/dunder-proto/test/index.js +4 -0
- gaia/eval/webapp/node_modules/dunder-proto/test/set.js +50 -0
- gaia/eval/webapp/node_modules/dunder-proto/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/ee-first/LICENSE +22 -0
- gaia/eval/webapp/node_modules/ee-first/README.md +80 -0
- gaia/eval/webapp/node_modules/ee-first/index.js +95 -0
- gaia/eval/webapp/node_modules/ee-first/package.json +29 -0
- gaia/eval/webapp/node_modules/encodeurl/LICENSE +22 -0
- gaia/eval/webapp/node_modules/encodeurl/README.md +109 -0
- gaia/eval/webapp/node_modules/encodeurl/index.js +60 -0
- gaia/eval/webapp/node_modules/encodeurl/package.json +40 -0
- gaia/eval/webapp/node_modules/es-define-property/.eslintrc +13 -0
- gaia/eval/webapp/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/es-define-property/.nycrc +9 -0
- gaia/eval/webapp/node_modules/es-define-property/CHANGELOG.md +29 -0
- gaia/eval/webapp/node_modules/es-define-property/LICENSE +21 -0
- gaia/eval/webapp/node_modules/es-define-property/README.md +49 -0
- gaia/eval/webapp/node_modules/es-define-property/index.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-define-property/index.js +14 -0
- gaia/eval/webapp/node_modules/es-define-property/package.json +81 -0
- gaia/eval/webapp/node_modules/es-define-property/test/index.js +56 -0
- gaia/eval/webapp/node_modules/es-define-property/tsconfig.json +10 -0
- gaia/eval/webapp/node_modules/es-errors/.eslintrc +5 -0
- gaia/eval/webapp/node_modules/es-errors/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/es-errors/CHANGELOG.md +40 -0
- gaia/eval/webapp/node_modules/es-errors/LICENSE +21 -0
- gaia/eval/webapp/node_modules/es-errors/README.md +55 -0
- gaia/eval/webapp/node_modules/es-errors/eval.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/eval.js +4 -0
- gaia/eval/webapp/node_modules/es-errors/index.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/index.js +4 -0
- gaia/eval/webapp/node_modules/es-errors/package.json +80 -0
- gaia/eval/webapp/node_modules/es-errors/range.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/range.js +4 -0
- gaia/eval/webapp/node_modules/es-errors/ref.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/ref.js +4 -0
- gaia/eval/webapp/node_modules/es-errors/syntax.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/syntax.js +4 -0
- gaia/eval/webapp/node_modules/es-errors/test/index.js +19 -0
- gaia/eval/webapp/node_modules/es-errors/tsconfig.json +49 -0
- gaia/eval/webapp/node_modules/es-errors/type.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/type.js +4 -0
- gaia/eval/webapp/node_modules/es-errors/uri.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-errors/uri.js +4 -0
- gaia/eval/webapp/node_modules/es-object-atoms/.eslintrc +16 -0
- gaia/eval/webapp/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- gaia/eval/webapp/node_modules/es-object-atoms/LICENSE +21 -0
- gaia/eval/webapp/node_modules/es-object-atoms/README.md +63 -0
- gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- gaia/eval/webapp/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- gaia/eval/webapp/node_modules/es-object-atoms/ToObject.js +10 -0
- gaia/eval/webapp/node_modules/es-object-atoms/index.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-object-atoms/index.js +4 -0
- gaia/eval/webapp/node_modules/es-object-atoms/isObject.d.ts +3 -0
- gaia/eval/webapp/node_modules/es-object-atoms/isObject.js +6 -0
- gaia/eval/webapp/node_modules/es-object-atoms/package.json +80 -0
- gaia/eval/webapp/node_modules/es-object-atoms/test/index.js +38 -0
- gaia/eval/webapp/node_modules/es-object-atoms/tsconfig.json +6 -0
- gaia/eval/webapp/node_modules/escape-html/LICENSE +24 -0
- gaia/eval/webapp/node_modules/escape-html/Readme.md +43 -0
- gaia/eval/webapp/node_modules/escape-html/index.js +78 -0
- gaia/eval/webapp/node_modules/escape-html/package.json +24 -0
- gaia/eval/webapp/node_modules/etag/HISTORY.md +83 -0
- gaia/eval/webapp/node_modules/etag/LICENSE +22 -0
- gaia/eval/webapp/node_modules/etag/README.md +159 -0
- gaia/eval/webapp/node_modules/etag/index.js +131 -0
- gaia/eval/webapp/node_modules/etag/package.json +47 -0
- gaia/eval/webapp/node_modules/express/History.md +3656 -0
- gaia/eval/webapp/node_modules/express/LICENSE +24 -0
- gaia/eval/webapp/node_modules/express/Readme.md +260 -0
- gaia/eval/webapp/node_modules/express/index.js +11 -0
- gaia/eval/webapp/node_modules/express/lib/application.js +661 -0
- gaia/eval/webapp/node_modules/express/lib/express.js +116 -0
- gaia/eval/webapp/node_modules/express/lib/middleware/init.js +43 -0
- gaia/eval/webapp/node_modules/express/lib/middleware/query.js +47 -0
- gaia/eval/webapp/node_modules/express/lib/request.js +525 -0
- gaia/eval/webapp/node_modules/express/lib/response.js +1179 -0
- gaia/eval/webapp/node_modules/express/lib/router/index.js +673 -0
- gaia/eval/webapp/node_modules/express/lib/router/layer.js +181 -0
- gaia/eval/webapp/node_modules/express/lib/router/route.js +230 -0
- gaia/eval/webapp/node_modules/express/lib/utils.js +303 -0
- gaia/eval/webapp/node_modules/express/lib/view.js +182 -0
- gaia/eval/webapp/node_modules/express/package.json +102 -0
- gaia/eval/webapp/node_modules/finalhandler/HISTORY.md +210 -0
- gaia/eval/webapp/node_modules/finalhandler/LICENSE +22 -0
- gaia/eval/webapp/node_modules/finalhandler/README.md +147 -0
- gaia/eval/webapp/node_modules/finalhandler/SECURITY.md +25 -0
- gaia/eval/webapp/node_modules/finalhandler/index.js +341 -0
- gaia/eval/webapp/node_modules/finalhandler/package.json +47 -0
- gaia/eval/webapp/node_modules/forwarded/HISTORY.md +21 -0
- gaia/eval/webapp/node_modules/forwarded/LICENSE +22 -0
- gaia/eval/webapp/node_modules/forwarded/README.md +57 -0
- gaia/eval/webapp/node_modules/forwarded/index.js +90 -0
- gaia/eval/webapp/node_modules/forwarded/package.json +45 -0
- gaia/eval/webapp/node_modules/fresh/HISTORY.md +70 -0
- gaia/eval/webapp/node_modules/fresh/LICENSE +23 -0
- gaia/eval/webapp/node_modules/fresh/README.md +119 -0
- gaia/eval/webapp/node_modules/fresh/index.js +137 -0
- gaia/eval/webapp/node_modules/fresh/package.json +46 -0
- gaia/eval/webapp/node_modules/fs/README.md +9 -0
- gaia/eval/webapp/node_modules/fs/package.json +20 -0
- gaia/eval/webapp/node_modules/function-bind/.eslintrc +21 -0
- gaia/eval/webapp/node_modules/function-bind/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/function-bind/.github/SECURITY.md +3 -0
- gaia/eval/webapp/node_modules/function-bind/.nycrc +13 -0
- gaia/eval/webapp/node_modules/function-bind/CHANGELOG.md +136 -0
- gaia/eval/webapp/node_modules/function-bind/LICENSE +20 -0
- gaia/eval/webapp/node_modules/function-bind/README.md +46 -0
- gaia/eval/webapp/node_modules/function-bind/implementation.js +84 -0
- gaia/eval/webapp/node_modules/function-bind/index.js +5 -0
- gaia/eval/webapp/node_modules/function-bind/package.json +87 -0
- gaia/eval/webapp/node_modules/function-bind/test/.eslintrc +9 -0
- gaia/eval/webapp/node_modules/function-bind/test/index.js +252 -0
- gaia/eval/webapp/node_modules/get-intrinsic/.eslintrc +42 -0
- gaia/eval/webapp/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/get-intrinsic/.nycrc +9 -0
- gaia/eval/webapp/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- gaia/eval/webapp/node_modules/get-intrinsic/LICENSE +21 -0
- gaia/eval/webapp/node_modules/get-intrinsic/README.md +71 -0
- gaia/eval/webapp/node_modules/get-intrinsic/index.js +378 -0
- gaia/eval/webapp/node_modules/get-intrinsic/package.json +97 -0
- gaia/eval/webapp/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
- gaia/eval/webapp/node_modules/get-proto/.eslintrc +10 -0
- gaia/eval/webapp/node_modules/get-proto/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/get-proto/.nycrc +9 -0
- gaia/eval/webapp/node_modules/get-proto/CHANGELOG.md +21 -0
- gaia/eval/webapp/node_modules/get-proto/LICENSE +21 -0
- gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- gaia/eval/webapp/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- gaia/eval/webapp/node_modules/get-proto/README.md +50 -0
- gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- gaia/eval/webapp/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- gaia/eval/webapp/node_modules/get-proto/index.d.ts +5 -0
- gaia/eval/webapp/node_modules/get-proto/index.js +27 -0
- gaia/eval/webapp/node_modules/get-proto/package.json +81 -0
- gaia/eval/webapp/node_modules/get-proto/test/index.js +68 -0
- gaia/eval/webapp/node_modules/get-proto/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/gopd/.eslintrc +16 -0
- gaia/eval/webapp/node_modules/gopd/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/gopd/CHANGELOG.md +45 -0
- gaia/eval/webapp/node_modules/gopd/LICENSE +21 -0
- gaia/eval/webapp/node_modules/gopd/README.md +40 -0
- gaia/eval/webapp/node_modules/gopd/gOPD.d.ts +1 -0
- gaia/eval/webapp/node_modules/gopd/gOPD.js +4 -0
- gaia/eval/webapp/node_modules/gopd/index.d.ts +5 -0
- gaia/eval/webapp/node_modules/gopd/index.js +15 -0
- gaia/eval/webapp/node_modules/gopd/package.json +77 -0
- gaia/eval/webapp/node_modules/gopd/test/index.js +36 -0
- gaia/eval/webapp/node_modules/gopd/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/has-symbols/.eslintrc +11 -0
- gaia/eval/webapp/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/has-symbols/.nycrc +9 -0
- gaia/eval/webapp/node_modules/has-symbols/CHANGELOG.md +91 -0
- gaia/eval/webapp/node_modules/has-symbols/LICENSE +21 -0
- gaia/eval/webapp/node_modules/has-symbols/README.md +46 -0
- gaia/eval/webapp/node_modules/has-symbols/index.d.ts +3 -0
- gaia/eval/webapp/node_modules/has-symbols/index.js +14 -0
- gaia/eval/webapp/node_modules/has-symbols/package.json +111 -0
- gaia/eval/webapp/node_modules/has-symbols/shams.d.ts +3 -0
- gaia/eval/webapp/node_modules/has-symbols/shams.js +45 -0
- gaia/eval/webapp/node_modules/has-symbols/test/index.js +22 -0
- gaia/eval/webapp/node_modules/has-symbols/test/shams/core-js.js +29 -0
- gaia/eval/webapp/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
- gaia/eval/webapp/node_modules/has-symbols/test/tests.js +58 -0
- gaia/eval/webapp/node_modules/has-symbols/tsconfig.json +10 -0
- gaia/eval/webapp/node_modules/hasown/.eslintrc +5 -0
- gaia/eval/webapp/node_modules/hasown/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/hasown/.nycrc +13 -0
- gaia/eval/webapp/node_modules/hasown/CHANGELOG.md +40 -0
- gaia/eval/webapp/node_modules/hasown/LICENSE +21 -0
- gaia/eval/webapp/node_modules/hasown/README.md +40 -0
- gaia/eval/webapp/node_modules/hasown/index.d.ts +3 -0
- gaia/eval/webapp/node_modules/hasown/index.js +8 -0
- gaia/eval/webapp/node_modules/hasown/package.json +92 -0
- gaia/eval/webapp/node_modules/hasown/tsconfig.json +6 -0
- gaia/eval/webapp/node_modules/http-errors/HISTORY.md +180 -0
- gaia/eval/webapp/node_modules/http-errors/LICENSE +23 -0
- gaia/eval/webapp/node_modules/http-errors/README.md +169 -0
- gaia/eval/webapp/node_modules/http-errors/index.js +289 -0
- gaia/eval/webapp/node_modules/http-errors/package.json +50 -0
- gaia/eval/webapp/node_modules/iconv-lite/Changelog.md +162 -0
- gaia/eval/webapp/node_modules/iconv-lite/LICENSE +21 -0
- gaia/eval/webapp/node_modules/iconv-lite/README.md +156 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/index.js +22 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/internal.js +188 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/utf16.js +177 -0
- gaia/eval/webapp/node_modules/iconv-lite/encodings/utf7.js +290 -0
- gaia/eval/webapp/node_modules/iconv-lite/lib/bom-handling.js +52 -0
- gaia/eval/webapp/node_modules/iconv-lite/lib/extend-node.js +217 -0
- gaia/eval/webapp/node_modules/iconv-lite/lib/index.d.ts +24 -0
- gaia/eval/webapp/node_modules/iconv-lite/lib/index.js +153 -0
- gaia/eval/webapp/node_modules/iconv-lite/lib/streams.js +121 -0
- gaia/eval/webapp/node_modules/iconv-lite/package.json +46 -0
- gaia/eval/webapp/node_modules/inherits/LICENSE +16 -0
- gaia/eval/webapp/node_modules/inherits/README.md +42 -0
- gaia/eval/webapp/node_modules/inherits/inherits.js +9 -0
- gaia/eval/webapp/node_modules/inherits/inherits_browser.js +27 -0
- gaia/eval/webapp/node_modules/inherits/package.json +29 -0
- gaia/eval/webapp/node_modules/ipaddr.js/LICENSE +19 -0
- gaia/eval/webapp/node_modules/ipaddr.js/README.md +233 -0
- gaia/eval/webapp/node_modules/ipaddr.js/ipaddr.min.js +1 -0
- gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
- gaia/eval/webapp/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
- gaia/eval/webapp/node_modules/ipaddr.js/package.json +35 -0
- gaia/eval/webapp/node_modules/math-intrinsics/.eslintrc +16 -0
- gaia/eval/webapp/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- gaia/eval/webapp/node_modules/math-intrinsics/LICENSE +21 -0
- gaia/eval/webapp/node_modules/math-intrinsics/README.md +50 -0
- gaia/eval/webapp/node_modules/math-intrinsics/abs.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/abs.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- gaia/eval/webapp/node_modules/math-intrinsics/floor.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/floor.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isFinite.js +12 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isInteger.js +16 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isNaN.js +6 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- gaia/eval/webapp/node_modules/math-intrinsics/max.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/max.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/min.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/min.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/mod.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/mod.js +9 -0
- gaia/eval/webapp/node_modules/math-intrinsics/package.json +86 -0
- gaia/eval/webapp/node_modules/math-intrinsics/pow.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/pow.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/round.d.ts +1 -0
- gaia/eval/webapp/node_modules/math-intrinsics/round.js +4 -0
- gaia/eval/webapp/node_modules/math-intrinsics/sign.d.ts +3 -0
- gaia/eval/webapp/node_modules/math-intrinsics/sign.js +11 -0
- gaia/eval/webapp/node_modules/math-intrinsics/test/index.js +192 -0
- gaia/eval/webapp/node_modules/math-intrinsics/tsconfig.json +3 -0
- gaia/eval/webapp/node_modules/media-typer/HISTORY.md +22 -0
- gaia/eval/webapp/node_modules/media-typer/LICENSE +22 -0
- gaia/eval/webapp/node_modules/media-typer/README.md +81 -0
- gaia/eval/webapp/node_modules/media-typer/index.js +270 -0
- gaia/eval/webapp/node_modules/media-typer/package.json +26 -0
- gaia/eval/webapp/node_modules/merge-descriptors/HISTORY.md +21 -0
- gaia/eval/webapp/node_modules/merge-descriptors/LICENSE +23 -0
- gaia/eval/webapp/node_modules/merge-descriptors/README.md +49 -0
- gaia/eval/webapp/node_modules/merge-descriptors/index.js +60 -0
- gaia/eval/webapp/node_modules/merge-descriptors/package.json +39 -0
- gaia/eval/webapp/node_modules/methods/HISTORY.md +29 -0
- gaia/eval/webapp/node_modules/methods/LICENSE +24 -0
- gaia/eval/webapp/node_modules/methods/README.md +51 -0
- gaia/eval/webapp/node_modules/methods/index.js +69 -0
- gaia/eval/webapp/node_modules/methods/package.json +36 -0
- gaia/eval/webapp/node_modules/mime/.npmignore +0 -0
- gaia/eval/webapp/node_modules/mime/CHANGELOG.md +164 -0
- gaia/eval/webapp/node_modules/mime/LICENSE +21 -0
- gaia/eval/webapp/node_modules/mime/README.md +90 -0
- gaia/eval/webapp/node_modules/mime/cli.js +8 -0
- gaia/eval/webapp/node_modules/mime/mime.js +108 -0
- gaia/eval/webapp/node_modules/mime/package.json +44 -0
- gaia/eval/webapp/node_modules/mime/src/build.js +53 -0
- gaia/eval/webapp/node_modules/mime/src/test.js +60 -0
- gaia/eval/webapp/node_modules/mime/types.json +1 -0
- gaia/eval/webapp/node_modules/mime-db/HISTORY.md +507 -0
- gaia/eval/webapp/node_modules/mime-db/LICENSE +23 -0
- gaia/eval/webapp/node_modules/mime-db/README.md +100 -0
- gaia/eval/webapp/node_modules/mime-db/db.json +8519 -0
- gaia/eval/webapp/node_modules/mime-db/index.js +12 -0
- gaia/eval/webapp/node_modules/mime-db/package.json +60 -0
- gaia/eval/webapp/node_modules/mime-types/HISTORY.md +397 -0
- gaia/eval/webapp/node_modules/mime-types/LICENSE +23 -0
- gaia/eval/webapp/node_modules/mime-types/README.md +113 -0
- gaia/eval/webapp/node_modules/mime-types/index.js +188 -0
- gaia/eval/webapp/node_modules/mime-types/package.json +44 -0
- gaia/eval/webapp/node_modules/ms/index.js +152 -0
- gaia/eval/webapp/node_modules/ms/license.md +21 -0
- gaia/eval/webapp/node_modules/ms/package.json +37 -0
- gaia/eval/webapp/node_modules/ms/readme.md +51 -0
- gaia/eval/webapp/node_modules/negotiator/HISTORY.md +108 -0
- gaia/eval/webapp/node_modules/negotiator/LICENSE +24 -0
- gaia/eval/webapp/node_modules/negotiator/README.md +203 -0
- gaia/eval/webapp/node_modules/negotiator/index.js +82 -0
- gaia/eval/webapp/node_modules/negotiator/lib/charset.js +169 -0
- gaia/eval/webapp/node_modules/negotiator/lib/encoding.js +184 -0
- gaia/eval/webapp/node_modules/negotiator/lib/language.js +179 -0
- gaia/eval/webapp/node_modules/negotiator/lib/mediaType.js +294 -0
- gaia/eval/webapp/node_modules/negotiator/package.json +42 -0
- gaia/eval/webapp/node_modules/object-inspect/.eslintrc +53 -0
- gaia/eval/webapp/node_modules/object-inspect/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/object-inspect/.nycrc +13 -0
- gaia/eval/webapp/node_modules/object-inspect/CHANGELOG.md +424 -0
- gaia/eval/webapp/node_modules/object-inspect/LICENSE +21 -0
- gaia/eval/webapp/node_modules/object-inspect/example/all.js +23 -0
- gaia/eval/webapp/node_modules/object-inspect/example/circular.js +6 -0
- gaia/eval/webapp/node_modules/object-inspect/example/fn.js +5 -0
- gaia/eval/webapp/node_modules/object-inspect/example/inspect.js +10 -0
- gaia/eval/webapp/node_modules/object-inspect/index.js +544 -0
- gaia/eval/webapp/node_modules/object-inspect/package-support.json +20 -0
- gaia/eval/webapp/node_modules/object-inspect/package.json +105 -0
- gaia/eval/webapp/node_modules/object-inspect/readme.markdown +84 -0
- gaia/eval/webapp/node_modules/object-inspect/test/bigint.js +58 -0
- gaia/eval/webapp/node_modules/object-inspect/test/browser/dom.js +15 -0
- gaia/eval/webapp/node_modules/object-inspect/test/circular.js +16 -0
- gaia/eval/webapp/node_modules/object-inspect/test/deep.js +12 -0
- gaia/eval/webapp/node_modules/object-inspect/test/element.js +53 -0
- gaia/eval/webapp/node_modules/object-inspect/test/err.js +48 -0
- gaia/eval/webapp/node_modules/object-inspect/test/fakes.js +29 -0
- gaia/eval/webapp/node_modules/object-inspect/test/fn.js +76 -0
- gaia/eval/webapp/node_modules/object-inspect/test/global.js +17 -0
- gaia/eval/webapp/node_modules/object-inspect/test/has.js +15 -0
- gaia/eval/webapp/node_modules/object-inspect/test/holes.js +15 -0
- gaia/eval/webapp/node_modules/object-inspect/test/indent-option.js +271 -0
- gaia/eval/webapp/node_modules/object-inspect/test/inspect.js +139 -0
- gaia/eval/webapp/node_modules/object-inspect/test/lowbyte.js +12 -0
- gaia/eval/webapp/node_modules/object-inspect/test/number.js +58 -0
- gaia/eval/webapp/node_modules/object-inspect/test/quoteStyle.js +26 -0
- gaia/eval/webapp/node_modules/object-inspect/test/toStringTag.js +40 -0
- gaia/eval/webapp/node_modules/object-inspect/test/undef.js +12 -0
- gaia/eval/webapp/node_modules/object-inspect/test/values.js +261 -0
- gaia/eval/webapp/node_modules/object-inspect/test-core-js.js +26 -0
- gaia/eval/webapp/node_modules/object-inspect/util.inspect.js +1 -0
- gaia/eval/webapp/node_modules/on-finished/HISTORY.md +98 -0
- gaia/eval/webapp/node_modules/on-finished/LICENSE +23 -0
- gaia/eval/webapp/node_modules/on-finished/README.md +162 -0
- gaia/eval/webapp/node_modules/on-finished/index.js +234 -0
- gaia/eval/webapp/node_modules/on-finished/package.json +39 -0
- gaia/eval/webapp/node_modules/parseurl/HISTORY.md +58 -0
- gaia/eval/webapp/node_modules/parseurl/LICENSE +24 -0
- gaia/eval/webapp/node_modules/parseurl/README.md +133 -0
- gaia/eval/webapp/node_modules/parseurl/index.js +158 -0
- gaia/eval/webapp/node_modules/parseurl/package.json +40 -0
- gaia/eval/webapp/node_modules/path/.npmignore +1 -0
- gaia/eval/webapp/node_modules/path/LICENSE +18 -0
- gaia/eval/webapp/node_modules/path/README.md +15 -0
- gaia/eval/webapp/node_modules/path/package.json +24 -0
- gaia/eval/webapp/node_modules/path/path.js +628 -0
- gaia/eval/webapp/node_modules/path-to-regexp/LICENSE +21 -0
- gaia/eval/webapp/node_modules/path-to-regexp/Readme.md +35 -0
- gaia/eval/webapp/node_modules/path-to-regexp/index.js +156 -0
- gaia/eval/webapp/node_modules/path-to-regexp/package.json +30 -0
- gaia/eval/webapp/node_modules/process/.eslintrc +21 -0
- gaia/eval/webapp/node_modules/process/LICENSE +22 -0
- gaia/eval/webapp/node_modules/process/README.md +26 -0
- gaia/eval/webapp/node_modules/process/browser.js +184 -0
- gaia/eval/webapp/node_modules/process/index.js +2 -0
- gaia/eval/webapp/node_modules/process/package.json +27 -0
- gaia/eval/webapp/node_modules/process/test.js +199 -0
- gaia/eval/webapp/node_modules/proxy-addr/HISTORY.md +161 -0
- gaia/eval/webapp/node_modules/proxy-addr/LICENSE +22 -0
- gaia/eval/webapp/node_modules/proxy-addr/README.md +139 -0
- gaia/eval/webapp/node_modules/proxy-addr/index.js +327 -0
- gaia/eval/webapp/node_modules/proxy-addr/package.json +47 -0
- gaia/eval/webapp/node_modules/qs/.editorconfig +46 -0
- gaia/eval/webapp/node_modules/qs/.eslintrc +38 -0
- gaia/eval/webapp/node_modules/qs/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/qs/.nycrc +13 -0
- gaia/eval/webapp/node_modules/qs/CHANGELOG.md +600 -0
- gaia/eval/webapp/node_modules/qs/LICENSE.md +29 -0
- gaia/eval/webapp/node_modules/qs/README.md +709 -0
- gaia/eval/webapp/node_modules/qs/dist/qs.js +90 -0
- gaia/eval/webapp/node_modules/qs/lib/formats.js +23 -0
- gaia/eval/webapp/node_modules/qs/lib/index.js +11 -0
- gaia/eval/webapp/node_modules/qs/lib/parse.js +296 -0
- gaia/eval/webapp/node_modules/qs/lib/stringify.js +351 -0
- gaia/eval/webapp/node_modules/qs/lib/utils.js +265 -0
- gaia/eval/webapp/node_modules/qs/package.json +91 -0
- gaia/eval/webapp/node_modules/qs/test/empty-keys-cases.js +267 -0
- gaia/eval/webapp/node_modules/qs/test/parse.js +1170 -0
- gaia/eval/webapp/node_modules/qs/test/stringify.js +1298 -0
- gaia/eval/webapp/node_modules/qs/test/utils.js +136 -0
- gaia/eval/webapp/node_modules/range-parser/HISTORY.md +56 -0
- gaia/eval/webapp/node_modules/range-parser/LICENSE +23 -0
- gaia/eval/webapp/node_modules/range-parser/README.md +84 -0
- gaia/eval/webapp/node_modules/range-parser/index.js +162 -0
- gaia/eval/webapp/node_modules/range-parser/package.json +44 -0
- gaia/eval/webapp/node_modules/raw-body/HISTORY.md +308 -0
- gaia/eval/webapp/node_modules/raw-body/LICENSE +22 -0
- gaia/eval/webapp/node_modules/raw-body/README.md +223 -0
- gaia/eval/webapp/node_modules/raw-body/SECURITY.md +24 -0
- gaia/eval/webapp/node_modules/raw-body/index.d.ts +87 -0
- gaia/eval/webapp/node_modules/raw-body/index.js +336 -0
- gaia/eval/webapp/node_modules/raw-body/package.json +49 -0
- gaia/eval/webapp/node_modules/safe-buffer/LICENSE +21 -0
- gaia/eval/webapp/node_modules/safe-buffer/README.md +584 -0
- gaia/eval/webapp/node_modules/safe-buffer/index.d.ts +187 -0
- gaia/eval/webapp/node_modules/safe-buffer/index.js +65 -0
- gaia/eval/webapp/node_modules/safe-buffer/package.json +51 -0
- gaia/eval/webapp/node_modules/safer-buffer/LICENSE +21 -0
- gaia/eval/webapp/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- gaia/eval/webapp/node_modules/safer-buffer/Readme.md +156 -0
- gaia/eval/webapp/node_modules/safer-buffer/dangerous.js +58 -0
- gaia/eval/webapp/node_modules/safer-buffer/package.json +34 -0
- gaia/eval/webapp/node_modules/safer-buffer/safer.js +77 -0
- gaia/eval/webapp/node_modules/safer-buffer/tests.js +406 -0
- gaia/eval/webapp/node_modules/send/HISTORY.md +526 -0
- gaia/eval/webapp/node_modules/send/LICENSE +23 -0
- gaia/eval/webapp/node_modules/send/README.md +327 -0
- gaia/eval/webapp/node_modules/send/SECURITY.md +24 -0
- gaia/eval/webapp/node_modules/send/index.js +1142 -0
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/HISTORY.md +14 -0
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/LICENSE +22 -0
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/README.md +128 -0
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/index.js +60 -0
- gaia/eval/webapp/node_modules/send/node_modules/encodeurl/package.json +40 -0
- gaia/eval/webapp/node_modules/send/node_modules/ms/index.js +162 -0
- gaia/eval/webapp/node_modules/send/node_modules/ms/license.md +21 -0
- gaia/eval/webapp/node_modules/send/node_modules/ms/package.json +38 -0
- gaia/eval/webapp/node_modules/send/node_modules/ms/readme.md +59 -0
- gaia/eval/webapp/node_modules/send/package.json +62 -0
- gaia/eval/webapp/node_modules/serve-static/HISTORY.md +487 -0
- gaia/eval/webapp/node_modules/serve-static/LICENSE +25 -0
- gaia/eval/webapp/node_modules/serve-static/README.md +257 -0
- gaia/eval/webapp/node_modules/serve-static/index.js +209 -0
- gaia/eval/webapp/node_modules/serve-static/package.json +42 -0
- gaia/eval/webapp/node_modules/setprototypeof/LICENSE +13 -0
- gaia/eval/webapp/node_modules/setprototypeof/README.md +31 -0
- gaia/eval/webapp/node_modules/setprototypeof/index.d.ts +2 -0
- gaia/eval/webapp/node_modules/setprototypeof/index.js +17 -0
- gaia/eval/webapp/node_modules/setprototypeof/package.json +38 -0
- gaia/eval/webapp/node_modules/setprototypeof/test/index.js +24 -0
- gaia/eval/webapp/node_modules/side-channel/.editorconfig +9 -0
- gaia/eval/webapp/node_modules/side-channel/.eslintrc +12 -0
- gaia/eval/webapp/node_modules/side-channel/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/side-channel/.nycrc +13 -0
- gaia/eval/webapp/node_modules/side-channel/CHANGELOG.md +110 -0
- gaia/eval/webapp/node_modules/side-channel/LICENSE +21 -0
- gaia/eval/webapp/node_modules/side-channel/README.md +61 -0
- gaia/eval/webapp/node_modules/side-channel/index.d.ts +14 -0
- gaia/eval/webapp/node_modules/side-channel/index.js +43 -0
- gaia/eval/webapp/node_modules/side-channel/package.json +85 -0
- gaia/eval/webapp/node_modules/side-channel/test/index.js +104 -0
- gaia/eval/webapp/node_modules/side-channel/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/side-channel-list/.editorconfig +9 -0
- gaia/eval/webapp/node_modules/side-channel-list/.eslintrc +11 -0
- gaia/eval/webapp/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/side-channel-list/.nycrc +13 -0
- gaia/eval/webapp/node_modules/side-channel-list/CHANGELOG.md +15 -0
- gaia/eval/webapp/node_modules/side-channel-list/LICENSE +21 -0
- gaia/eval/webapp/node_modules/side-channel-list/README.md +62 -0
- gaia/eval/webapp/node_modules/side-channel-list/index.d.ts +13 -0
- gaia/eval/webapp/node_modules/side-channel-list/index.js +113 -0
- gaia/eval/webapp/node_modules/side-channel-list/list.d.ts +14 -0
- gaia/eval/webapp/node_modules/side-channel-list/package.json +77 -0
- gaia/eval/webapp/node_modules/side-channel-list/test/index.js +104 -0
- gaia/eval/webapp/node_modules/side-channel-list/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/side-channel-map/.editorconfig +9 -0
- gaia/eval/webapp/node_modules/side-channel-map/.eslintrc +11 -0
- gaia/eval/webapp/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/side-channel-map/.nycrc +13 -0
- gaia/eval/webapp/node_modules/side-channel-map/CHANGELOG.md +22 -0
- gaia/eval/webapp/node_modules/side-channel-map/LICENSE +21 -0
- gaia/eval/webapp/node_modules/side-channel-map/README.md +62 -0
- gaia/eval/webapp/node_modules/side-channel-map/index.d.ts +15 -0
- gaia/eval/webapp/node_modules/side-channel-map/index.js +68 -0
- gaia/eval/webapp/node_modules/side-channel-map/package.json +80 -0
- gaia/eval/webapp/node_modules/side-channel-map/test/index.js +114 -0
- gaia/eval/webapp/node_modules/side-channel-map/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/.editorconfig +9 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/.eslintrc +12 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/.nycrc +13 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/LICENSE +21 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/README.md +62 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/index.d.ts +15 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/index.js +84 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/package.json +87 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/test/index.js +114 -0
- gaia/eval/webapp/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- gaia/eval/webapp/node_modules/statuses/HISTORY.md +82 -0
- gaia/eval/webapp/node_modules/statuses/LICENSE +23 -0
- gaia/eval/webapp/node_modules/statuses/README.md +136 -0
- gaia/eval/webapp/node_modules/statuses/codes.json +65 -0
- gaia/eval/webapp/node_modules/statuses/index.js +146 -0
- gaia/eval/webapp/node_modules/statuses/package.json +49 -0
- gaia/eval/webapp/node_modules/toidentifier/HISTORY.md +9 -0
- gaia/eval/webapp/node_modules/toidentifier/LICENSE +21 -0
- gaia/eval/webapp/node_modules/toidentifier/README.md +61 -0
- gaia/eval/webapp/node_modules/toidentifier/index.js +32 -0
- gaia/eval/webapp/node_modules/toidentifier/package.json +38 -0
- gaia/eval/webapp/node_modules/type-is/HISTORY.md +259 -0
- gaia/eval/webapp/node_modules/type-is/LICENSE +23 -0
- gaia/eval/webapp/node_modules/type-is/README.md +170 -0
- gaia/eval/webapp/node_modules/type-is/index.js +266 -0
- gaia/eval/webapp/node_modules/type-is/package.json +45 -0
- gaia/eval/webapp/node_modules/unpipe/HISTORY.md +4 -0
- gaia/eval/webapp/node_modules/unpipe/LICENSE +22 -0
- gaia/eval/webapp/node_modules/unpipe/README.md +43 -0
- gaia/eval/webapp/node_modules/unpipe/index.js +69 -0
- gaia/eval/webapp/node_modules/unpipe/package.json +27 -0
- gaia/eval/webapp/node_modules/util/LICENSE +18 -0
- gaia/eval/webapp/node_modules/util/README.md +15 -0
- gaia/eval/webapp/node_modules/util/node_modules/inherits/LICENSE +16 -0
- gaia/eval/webapp/node_modules/util/node_modules/inherits/README.md +42 -0
- gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits.js +7 -0
- gaia/eval/webapp/node_modules/util/node_modules/inherits/inherits_browser.js +23 -0
- gaia/eval/webapp/node_modules/util/node_modules/inherits/package.json +29 -0
- gaia/eval/webapp/node_modules/util/package.json +35 -0
- gaia/eval/webapp/node_modules/util/support/isBuffer.js +3 -0
- gaia/eval/webapp/node_modules/util/support/isBufferBrowser.js +6 -0
- gaia/eval/webapp/node_modules/util/util.js +586 -0
- gaia/eval/webapp/node_modules/utils-merge/.npmignore +9 -0
- gaia/eval/webapp/node_modules/utils-merge/LICENSE +20 -0
- gaia/eval/webapp/node_modules/utils-merge/README.md +34 -0
- gaia/eval/webapp/node_modules/utils-merge/index.js +23 -0
- gaia/eval/webapp/node_modules/utils-merge/package.json +40 -0
- gaia/eval/webapp/node_modules/vary/HISTORY.md +39 -0
- gaia/eval/webapp/node_modules/vary/LICENSE +22 -0
- gaia/eval/webapp/node_modules/vary/README.md +101 -0
- gaia/eval/webapp/node_modules/vary/index.js +149 -0
- gaia/eval/webapp/node_modules/vary/package.json +43 -0
- gaia/eval/webapp/package-lock.json +875 -0
- gaia/eval/webapp/package.json +21 -0
- gaia/eval/webapp/public/app.js +3403 -0
- gaia/eval/webapp/public/index.html +88 -0
- gaia/eval/webapp/public/styles.css +3661 -0
- gaia/eval/webapp/server.js +416 -0
- gaia/eval/webapp/test-setup.js +73 -0
- gaia/llm/__init__.py +2 -0
- gaia/llm/lemonade_client.py +3083 -0
- gaia/llm/lemonade_manager.py +269 -0
- gaia/llm/llm_client.py +729 -0
- gaia/llm/vlm_client.py +307 -0
- gaia/logger.py +189 -0
- gaia/mcp/agent_mcp_server.py +245 -0
- gaia/mcp/blender_mcp_client.py +138 -0
- gaia/mcp/blender_mcp_server.py +648 -0
- gaia/mcp/context7_cache.py +332 -0
- gaia/mcp/external_services.py +518 -0
- gaia/mcp/mcp_bridge.py +550 -0
- gaia/mcp/servers/__init__.py +6 -0
- gaia/mcp/servers/docker_mcp.py +83 -0
- gaia/rag/__init__.py +10 -0
- gaia/rag/app.py +293 -0
- gaia/rag/demo.py +304 -0
- gaia/rag/pdf_utils.py +235 -0
- gaia/rag/sdk.py +2194 -0
- gaia/security.py +163 -0
- gaia/talk/app.py +289 -0
- gaia/talk/sdk.py +538 -0
- gaia/util.py +46 -0
- gaia/version.py +100 -0
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
"""
|
|
5
|
+
Code Agent for GAIA.
|
|
6
|
+
|
|
7
|
+
This agent provides intelligent code operations and assistance, focusing on
|
|
8
|
+
comprehensive Python support with capabilities for code understanding, generation,
|
|
9
|
+
modification, and validation.
|
|
10
|
+
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import json
|
|
14
|
+
import logging
|
|
15
|
+
import os
|
|
16
|
+
import time
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
from typing import Any, Callable, Dict, Optional
|
|
19
|
+
|
|
20
|
+
from gaia.agents.base.agent import Agent
|
|
21
|
+
from gaia.agents.base.api_agent import ApiAgent
|
|
22
|
+
from gaia.agents.base.console import AgentConsole, SilentConsole
|
|
23
|
+
from gaia.agents.base.tools import _TOOL_REGISTRY
|
|
24
|
+
from gaia.security import PathValidator
|
|
25
|
+
|
|
26
|
+
from .orchestration import (
|
|
27
|
+
ExecutionResult,
|
|
28
|
+
Orchestrator,
|
|
29
|
+
UserContext,
|
|
30
|
+
)
|
|
31
|
+
from .system_prompt import get_system_prompt
|
|
32
|
+
from .tools import (
|
|
33
|
+
CodeFormattingMixin,
|
|
34
|
+
CodeToolsMixin,
|
|
35
|
+
ErrorFixingMixin,
|
|
36
|
+
ExternalToolsMixin,
|
|
37
|
+
FileIOToolsMixin,
|
|
38
|
+
ProjectManagementMixin,
|
|
39
|
+
TestingMixin,
|
|
40
|
+
TypeScriptToolsMixin,
|
|
41
|
+
ValidationAndParsingMixin,
|
|
42
|
+
ValidationToolsMixin,
|
|
43
|
+
WebToolsMixin,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
# Import CLI tools
|
|
47
|
+
from .tools.cli_tools import CLIToolsMixin
|
|
48
|
+
|
|
49
|
+
# Import Prisma tools
|
|
50
|
+
from .tools.prisma_tools import PrismaToolsMixin
|
|
51
|
+
|
|
52
|
+
# Import refactored modules
|
|
53
|
+
from .validators import (
|
|
54
|
+
AntipatternChecker,
|
|
55
|
+
ASTAnalyzer,
|
|
56
|
+
RequirementsValidator,
|
|
57
|
+
SyntaxValidator,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
logger = logging.getLogger(__name__)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class CodeAgent(
|
|
64
|
+
ApiAgent, # API support for VSCode integration
|
|
65
|
+
Agent,
|
|
66
|
+
CodeToolsMixin, # Code generation, analysis, helpers
|
|
67
|
+
ValidationAndParsingMixin, # Validation, AST parsing, error fixing helpers
|
|
68
|
+
FileIOToolsMixin, # File I/O operations
|
|
69
|
+
CodeFormattingMixin, # Code formatting (Black, etc.)
|
|
70
|
+
ProjectManagementMixin, # Project/workspace management
|
|
71
|
+
TestingMixin, # Testing tools
|
|
72
|
+
ErrorFixingMixin, # Error fixing tools
|
|
73
|
+
TypeScriptToolsMixin, # TypeScript runtime tools (npm, template fetching, validation)
|
|
74
|
+
WebToolsMixin, # Next.js full-stack web development tools (replaces frontend/backend)
|
|
75
|
+
PrismaToolsMixin, # Prisma database setup and management
|
|
76
|
+
CLIToolsMixin, # Universal CLI execution with process management
|
|
77
|
+
ExternalToolsMixin, # Context7 and Perplexity integration for documentation and web search
|
|
78
|
+
ValidationToolsMixin, # Validation and testing tools
|
|
79
|
+
):
|
|
80
|
+
"""
|
|
81
|
+
Intelligent autonomous code agent for comprehensive Python development workflows.
|
|
82
|
+
|
|
83
|
+
This agent autonomously handles complex coding tasks including:
|
|
84
|
+
- Workflow planning from requirements
|
|
85
|
+
- Code generation with best practices
|
|
86
|
+
- Automatic linting and formatting
|
|
87
|
+
- Error detection and correction
|
|
88
|
+
- Code execution and verification
|
|
89
|
+
|
|
90
|
+
Usage:
|
|
91
|
+
agent = CodeAgent()
|
|
92
|
+
result = agent.process_query("Create a calculator app with error handling")
|
|
93
|
+
# Agent will plan, generate, lint, fix, test, and verify automatically
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
def __init__(self, language="python", project_type="script", **kwargs):
|
|
97
|
+
"""Initialize the Code agent.
|
|
98
|
+
|
|
99
|
+
Args:
|
|
100
|
+
language: Programming language ('python' or 'typescript', default: 'python')
|
|
101
|
+
project_type: Project type ('frontend', 'backend', 'fullstack', or 'script', default: 'script')
|
|
102
|
+
**kwargs: Agent initialization parameters:
|
|
103
|
+
- max_steps: Maximum conversation steps (default: 100)
|
|
104
|
+
- model_id: LLM model to use (default: Qwen3-Coder-30B-A3B-Instruct-GGUF)
|
|
105
|
+
- silent_mode: Suppress console output (default: False)
|
|
106
|
+
- debug: Enable debug logging (default: False)
|
|
107
|
+
- show_prompts: Display prompts sent to LLM (default: False)
|
|
108
|
+
- streaming: Enable real-time LLM response streaming (default: False)
|
|
109
|
+
"""
|
|
110
|
+
# Store language and project type for prompt selection
|
|
111
|
+
self.language = language
|
|
112
|
+
self.project_type = project_type
|
|
113
|
+
|
|
114
|
+
# Default to more steps for complex workflows
|
|
115
|
+
if "max_steps" not in kwargs:
|
|
116
|
+
kwargs["max_steps"] = 100 # Increased for complex project generation
|
|
117
|
+
# Use the coding model for better code understanding
|
|
118
|
+
if "model_id" not in kwargs:
|
|
119
|
+
kwargs["model_id"] = "Qwen3-Coder-30B-A3B-Instruct-GGUF"
|
|
120
|
+
# Disable streaming by default (shows duplicate output)
|
|
121
|
+
# Users can enable with --streaming flag if desired
|
|
122
|
+
if "streaming" not in kwargs:
|
|
123
|
+
kwargs["streaming"] = False
|
|
124
|
+
# Code agent needs more plan iterations for complex projects
|
|
125
|
+
if "max_plan_iterations" not in kwargs:
|
|
126
|
+
kwargs["max_plan_iterations"] = 100
|
|
127
|
+
|
|
128
|
+
# Ensure .gaia cache directory exists for temporary files
|
|
129
|
+
self.cache_dir = Path.home() / ".gaia" / "cache"
|
|
130
|
+
self.cache_dir.mkdir(parents=True, exist_ok=True)
|
|
131
|
+
|
|
132
|
+
# Security: Configure allowed paths for file operations
|
|
133
|
+
self.allowed_paths = kwargs.pop("allowed_paths", None)
|
|
134
|
+
self.path_validator = PathValidator(self.allowed_paths)
|
|
135
|
+
|
|
136
|
+
# Workspace root for API mode (passed from VSCode)
|
|
137
|
+
self.workspace_root = None
|
|
138
|
+
|
|
139
|
+
# Progress callback for real-time updates
|
|
140
|
+
self.progress_callback = None
|
|
141
|
+
|
|
142
|
+
super().__init__(**kwargs)
|
|
143
|
+
|
|
144
|
+
# Store the tools description for later prompt reconstruction
|
|
145
|
+
# (base Agent's __init__ already appended tools to self.system_prompt)
|
|
146
|
+
self.tools_description = self._format_tools_for_prompt()
|
|
147
|
+
|
|
148
|
+
# Initialize validators and analyzers
|
|
149
|
+
self.syntax_validator = SyntaxValidator()
|
|
150
|
+
self.antipattern_checker = AntipatternChecker()
|
|
151
|
+
self.ast_analyzer = ASTAnalyzer()
|
|
152
|
+
self.requirements_validator = RequirementsValidator()
|
|
153
|
+
|
|
154
|
+
# Log context size requirement if not using cloud LLMs
|
|
155
|
+
if not kwargs.get("use_claude") and not kwargs.get("use_chatgpt"):
|
|
156
|
+
logger.debug(
|
|
157
|
+
"Code Agent requires large context size (32768 tokens). "
|
|
158
|
+
"Ensure Lemonade server is started with: lemonade-server serve --ctx-size 32768"
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
def _get_system_prompt(self, _user_input: Optional[str] = None) -> str:
|
|
162
|
+
"""Generate the system prompt for the Code agent.
|
|
163
|
+
|
|
164
|
+
Uses the language and project_type set during initialization to
|
|
165
|
+
select the appropriate prompt (no runtime detection).
|
|
166
|
+
|
|
167
|
+
Args:
|
|
168
|
+
_user_input: Optional user query (not used for detection anymore)
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
str: System prompt for code operations
|
|
172
|
+
"""
|
|
173
|
+
return get_system_prompt(language=self.language, project_type=self.project_type)
|
|
174
|
+
|
|
175
|
+
def _create_console(self):
|
|
176
|
+
"""Create console for Code agent output.
|
|
177
|
+
|
|
178
|
+
Returns:
|
|
179
|
+
AgentConsole or SilentConsole: Console instance
|
|
180
|
+
"""
|
|
181
|
+
if self.silent_mode:
|
|
182
|
+
return SilentConsole()
|
|
183
|
+
return AgentConsole()
|
|
184
|
+
|
|
185
|
+
def _register_tools(self) -> None:
|
|
186
|
+
"""Register Code-specific tools from mixins."""
|
|
187
|
+
# Register all tools from consolidated mixins
|
|
188
|
+
self.register_code_tools() # CodeToolsMixin
|
|
189
|
+
self.register_file_io_tools() # FileIOToolsMixin
|
|
190
|
+
self.register_code_formatting_tools() # CodeFormattingMixin
|
|
191
|
+
self.register_project_management_tools() # ProjectManagementMixin
|
|
192
|
+
self.register_testing_tools() # TestingMixin
|
|
193
|
+
self.register_error_fixing_tools() # ErrorFixingMixin
|
|
194
|
+
self.register_typescript_tools() # TypeScriptToolsMixin
|
|
195
|
+
self.register_web_tools() # WebToolsMixin (Next.js unified approach)
|
|
196
|
+
self.register_prisma_tools() # PrismaToolsMixin (Prisma database management)
|
|
197
|
+
self.register_cli_tools() # CLIToolsMixin (Universal CLI execution)
|
|
198
|
+
self.register_external_tools() # ExternalToolsMixin (Context7 & Perplexity)
|
|
199
|
+
self.register_validation_tools() # ValidationToolsMixin (Testing and validation)
|
|
200
|
+
|
|
201
|
+
def process_query(
|
|
202
|
+
self, user_input: str, workspace_root=None, progress_callback=None, **kwargs
|
|
203
|
+
): # pylint: disable=arguments-differ,unused-argument
|
|
204
|
+
"""Process a query using the orchestrator workflow.
|
|
205
|
+
|
|
206
|
+
Args:
|
|
207
|
+
user_input: The user's query
|
|
208
|
+
workspace_root: Optional workspace directory for file operations (from VSCode)
|
|
209
|
+
progress_callback: Optional callback function for progress updates
|
|
210
|
+
**kwargs: Additional arguments:
|
|
211
|
+
- step_through: Enable step-through debugging (pause after each step)
|
|
212
|
+
|
|
213
|
+
Returns:
|
|
214
|
+
Execution result summary from the orchestrator
|
|
215
|
+
"""
|
|
216
|
+
# Extract trace options
|
|
217
|
+
trace = kwargs.get("trace", False)
|
|
218
|
+
trace_filename = kwargs.get("filename")
|
|
219
|
+
|
|
220
|
+
# Extract step_through from kwargs
|
|
221
|
+
step_through = kwargs.get("step_through", False)
|
|
222
|
+
|
|
223
|
+
del kwargs # Unused - accept for CLI compatibility
|
|
224
|
+
# Store workspace root and change to it if provided
|
|
225
|
+
if workspace_root:
|
|
226
|
+
self.workspace_root = workspace_root
|
|
227
|
+
self.path_validator.add_allowed_path(workspace_root)
|
|
228
|
+
original_cwd = os.getcwd()
|
|
229
|
+
os.chdir(workspace_root)
|
|
230
|
+
logger.debug(f"Changed working directory to: {workspace_root}")
|
|
231
|
+
|
|
232
|
+
# Store progress callback for tools to use
|
|
233
|
+
if progress_callback:
|
|
234
|
+
self.progress_callback = progress_callback
|
|
235
|
+
|
|
236
|
+
# Update system prompt based on actual user input for language detection
|
|
237
|
+
# Reconstruct full prompt with language-specific base + tools
|
|
238
|
+
base_prompt = self._get_system_prompt(user_input)
|
|
239
|
+
|
|
240
|
+
# AI-powered schema inference (Perplexity -> Local LLM -> fallback)
|
|
241
|
+
# This dynamically determines what fields the app needs without hardcoding
|
|
242
|
+
schema_context = ""
|
|
243
|
+
inferred_entity = None
|
|
244
|
+
inferred_fields = None
|
|
245
|
+
try:
|
|
246
|
+
from .schema_inference import format_schema_context, infer_schema
|
|
247
|
+
|
|
248
|
+
# Use self.chat for local LLM fallback if Perplexity unavailable
|
|
249
|
+
chat_sdk = getattr(self, "chat", None)
|
|
250
|
+
schema_result = infer_schema(user_input, chat_sdk)
|
|
251
|
+
|
|
252
|
+
if schema_result.get("entity"):
|
|
253
|
+
schema_context = format_schema_context(schema_result)
|
|
254
|
+
inferred_entity = schema_result["entity"]
|
|
255
|
+
# Convert fields from list format [{"name": "x", "type": "y"}]
|
|
256
|
+
# to dict format {"x": "y"} expected by tools
|
|
257
|
+
raw_fields = schema_result.get("fields", [])
|
|
258
|
+
if isinstance(raw_fields, list):
|
|
259
|
+
inferred_fields = {
|
|
260
|
+
f["name"]: f.get("type", "string")
|
|
261
|
+
for f in raw_fields
|
|
262
|
+
if isinstance(f, dict) and "name" in f
|
|
263
|
+
}
|
|
264
|
+
else:
|
|
265
|
+
inferred_fields = raw_fields
|
|
266
|
+
logger.debug(
|
|
267
|
+
f"Schema inferred: {inferred_entity} "
|
|
268
|
+
f"({len(inferred_fields)} fields) via {schema_result['source']}"
|
|
269
|
+
)
|
|
270
|
+
except Exception as e:
|
|
271
|
+
logger.warning(f"Schema inference failed (continuing without): {e}")
|
|
272
|
+
|
|
273
|
+
# Add current working directory context
|
|
274
|
+
workspace_context = ""
|
|
275
|
+
if workspace_root:
|
|
276
|
+
workspace_context = (
|
|
277
|
+
f"\n\nProject directory (dedicated): {os.getcwd()}\n"
|
|
278
|
+
f"IMPORTANT: When creating new projects (e.g., npx create-next-app, cargo new, etc.), "
|
|
279
|
+
f"use '.' as the project name to install directly in this directory, NOT in a subdirectory.\n"
|
|
280
|
+
)
|
|
281
|
+
else:
|
|
282
|
+
workspace_context = f"\n\nCurrent working directory: {os.getcwd()}\n"
|
|
283
|
+
|
|
284
|
+
self.system_prompt = (
|
|
285
|
+
base_prompt
|
|
286
|
+
+ schema_context # AI-inferred schema (if available)
|
|
287
|
+
+ workspace_context
|
|
288
|
+
+ f"\n\n==== AVAILABLE TOOLS ====\n{self.tools_description}\n\n"
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
try:
|
|
292
|
+
# Orchestrator is the ONLY workflow path
|
|
293
|
+
# Handles correct step ordering for all project types
|
|
294
|
+
execution_result = self._process_with_orchestrator(
|
|
295
|
+
user_input,
|
|
296
|
+
workspace_root,
|
|
297
|
+
entity_name=inferred_entity,
|
|
298
|
+
schema_fields=inferred_fields,
|
|
299
|
+
step_through=step_through,
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
# Write trace to file if requested
|
|
303
|
+
if trace:
|
|
304
|
+
try:
|
|
305
|
+
# Construct trace data
|
|
306
|
+
trace_data = {
|
|
307
|
+
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
|
|
308
|
+
"agent": "CodeAgent",
|
|
309
|
+
"query": user_input,
|
|
310
|
+
"workspace_root": workspace_root or os.getcwd(),
|
|
311
|
+
"result": {
|
|
312
|
+
"success": execution_result.success,
|
|
313
|
+
"summary": execution_result.summary,
|
|
314
|
+
"outputs": execution_result.outputs,
|
|
315
|
+
"errors": execution_result.errors,
|
|
316
|
+
},
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
if not trace_filename:
|
|
320
|
+
timestamp = time.strftime("%Y%m%d_%H%M%S")
|
|
321
|
+
trace_filename = f"agent_trace_{timestamp}.json"
|
|
322
|
+
|
|
323
|
+
# Write to file
|
|
324
|
+
with open(trace_filename, "w", encoding="utf-8") as f:
|
|
325
|
+
json.dump(trace_data, f, indent=2)
|
|
326
|
+
|
|
327
|
+
logger.info(f"Trace written to {trace_filename}")
|
|
328
|
+
if not self.silent_mode:
|
|
329
|
+
self.console.print(f"\nTrace written to {trace_filename}")
|
|
330
|
+
|
|
331
|
+
except Exception as e:
|
|
332
|
+
logger.error(f"Failed to write trace file: {e}")
|
|
333
|
+
|
|
334
|
+
# Return dict matching app.py's expected format
|
|
335
|
+
project_dir = workspace_root or os.getcwd()
|
|
336
|
+
return {
|
|
337
|
+
"status": "success" if execution_result.success else "error",
|
|
338
|
+
"result": execution_result.summary,
|
|
339
|
+
"phases_completed": execution_result.phases_completed,
|
|
340
|
+
"phases_failed": execution_result.phases_failed,
|
|
341
|
+
"steps_succeeded": execution_result.steps_succeeded,
|
|
342
|
+
"steps_failed": execution_result.steps_failed,
|
|
343
|
+
"errors": execution_result.errors,
|
|
344
|
+
"project_dir": project_dir,
|
|
345
|
+
}
|
|
346
|
+
finally:
|
|
347
|
+
# Restore original working directory if we changed it
|
|
348
|
+
if workspace_root:
|
|
349
|
+
os.chdir(original_cwd)
|
|
350
|
+
logger.info(f"Restored working directory to: {original_cwd}")
|
|
351
|
+
|
|
352
|
+
def _create_tool_executor(self) -> Callable[[str, Dict[str, Any]], Any]:
|
|
353
|
+
"""Create a tool executor function that uses registered tools.
|
|
354
|
+
|
|
355
|
+
Returns:
|
|
356
|
+
Function that executes tools by name
|
|
357
|
+
"""
|
|
358
|
+
|
|
359
|
+
def execute_tool(tool_name: str, tool_args: Dict[str, Any]) -> Any:
|
|
360
|
+
"""Execute a registered tool."""
|
|
361
|
+
if tool_name not in _TOOL_REGISTRY:
|
|
362
|
+
return {"success": False, "error": f"Unknown tool: {tool_name}"}
|
|
363
|
+
|
|
364
|
+
tool_func = _TOOL_REGISTRY[tool_name]["function"]
|
|
365
|
+
try:
|
|
366
|
+
return tool_func(**tool_args)
|
|
367
|
+
except Exception as e: # pylint: disable=broad-exception-caught
|
|
368
|
+
logger.exception(f"Tool execution failed: {tool_name}")
|
|
369
|
+
return {"success": False, "error": str(e)}
|
|
370
|
+
|
|
371
|
+
return execute_tool
|
|
372
|
+
|
|
373
|
+
def _process_with_orchestrator(
|
|
374
|
+
self,
|
|
375
|
+
user_input: str,
|
|
376
|
+
workspace_root: Optional[str] = None,
|
|
377
|
+
entity_name: Optional[str] = None,
|
|
378
|
+
schema_fields: Optional[Dict[str, str]] = None,
|
|
379
|
+
step_through: bool = False,
|
|
380
|
+
) -> ExecutionResult:
|
|
381
|
+
"""Process request using the LLM-driven orchestrator.
|
|
382
|
+
|
|
383
|
+
Args:
|
|
384
|
+
user_input: User's request
|
|
385
|
+
workspace_root: Optional workspace directory
|
|
386
|
+
entity_name: Entity name from schema inference (e.g., "Todo")
|
|
387
|
+
schema_fields: Field definitions from schema inference
|
|
388
|
+
step_through: Enable step-through debugging
|
|
389
|
+
|
|
390
|
+
Returns:
|
|
391
|
+
ExecutionResult with workflow execution status
|
|
392
|
+
|
|
393
|
+
Raises:
|
|
394
|
+
ValueError: If no LLM client (chat) is available
|
|
395
|
+
"""
|
|
396
|
+
tool_executor = self._create_tool_executor()
|
|
397
|
+
|
|
398
|
+
# Create user context with inferred schema
|
|
399
|
+
context = UserContext(
|
|
400
|
+
user_request=user_input,
|
|
401
|
+
project_dir=workspace_root or os.getcwd(),
|
|
402
|
+
language=self.language,
|
|
403
|
+
project_type=self.project_type,
|
|
404
|
+
entity_name=entity_name,
|
|
405
|
+
schema_fields=schema_fields,
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
# Create LLM fixer wrapper that adapts signature
|
|
409
|
+
# ErrorHandler expects (error_text, code) -> Optional[fixed_code]
|
|
410
|
+
# _fix_code_with_llm expects (code, file_path, error_msg) -> Optional[fixed_code]
|
|
411
|
+
def llm_fixer(error_text: str, code: str) -> Optional[str]:
|
|
412
|
+
"""Wrapper to adapt _fix_code_with_llm signature for ErrorHandler."""
|
|
413
|
+
return self._fix_code_with_llm(code, "file.ts", error_text)
|
|
414
|
+
|
|
415
|
+
# Get LLM client for checklist generation (required)
|
|
416
|
+
# The chat SDK has a send(message, timeout) method compatible with ChatSDK protocol
|
|
417
|
+
llm_client = getattr(self, "chat", None)
|
|
418
|
+
if llm_client is None:
|
|
419
|
+
raise ValueError(
|
|
420
|
+
"LLM client (chat) is required for orchestrator. "
|
|
421
|
+
"Ensure the agent has a chat SDK configured."
|
|
422
|
+
)
|
|
423
|
+
|
|
424
|
+
orchestrator = Orchestrator(
|
|
425
|
+
tool_executor=tool_executor,
|
|
426
|
+
llm_client=llm_client,
|
|
427
|
+
llm_fixer=llm_fixer,
|
|
428
|
+
progress_callback=self._orchestrator_progress_callback,
|
|
429
|
+
console=self.console,
|
|
430
|
+
)
|
|
431
|
+
|
|
432
|
+
logger.debug("Running LLM-driven orchestrator")
|
|
433
|
+
return orchestrator.execute(context, step_through=step_through)
|
|
434
|
+
|
|
435
|
+
def _orchestrator_progress_callback(
|
|
436
|
+
self, phase: str, step: str, current: int, total: int
|
|
437
|
+
) -> None:
|
|
438
|
+
"""Handle progress updates from orchestrator."""
|
|
439
|
+
if self.progress_callback:
|
|
440
|
+
self.progress_callback(
|
|
441
|
+
{
|
|
442
|
+
"type": "progress",
|
|
443
|
+
"phase": phase,
|
|
444
|
+
"step": step,
|
|
445
|
+
"current": current,
|
|
446
|
+
"total": total,
|
|
447
|
+
}
|
|
448
|
+
)
|
|
449
|
+
# Also print to console if not silent
|
|
450
|
+
# Skip "checklist" phase printing as ChecklistExecutor handles its own output
|
|
451
|
+
if not self.silent_mode and hasattr(self, "console") and phase != "checklist":
|
|
452
|
+
self.console.print_info(f"[{current}/{total}] {phase}: {step}")
|
|
453
|
+
|
|
454
|
+
def display_result(
|
|
455
|
+
self,
|
|
456
|
+
title: str = "Result",
|
|
457
|
+
result: Dict[str, Any] = None,
|
|
458
|
+
print_result: bool = False,
|
|
459
|
+
) -> None:
|
|
460
|
+
"""Display orchestrator execution result with a nice summary.
|
|
461
|
+
|
|
462
|
+
Args:
|
|
463
|
+
title: Title for the result display
|
|
464
|
+
result: Orchestrator result dictionary
|
|
465
|
+
print_result: If True, also print raw JSON
|
|
466
|
+
"""
|
|
467
|
+
if result is None:
|
|
468
|
+
self.console.print_warning("No result available to display.")
|
|
469
|
+
return
|
|
470
|
+
|
|
471
|
+
# Print raw JSON if requested
|
|
472
|
+
if print_result:
|
|
473
|
+
self.console.pretty_print_json(result, title)
|
|
474
|
+
return
|
|
475
|
+
|
|
476
|
+
# Build a nice summary for orchestrator results
|
|
477
|
+
status = result.get("status", "unknown")
|
|
478
|
+
phases_completed = result.get("phases_completed", [])
|
|
479
|
+
phases_failed = result.get("phases_failed", [])
|
|
480
|
+
steps_succeeded = result.get("steps_succeeded", 0)
|
|
481
|
+
steps_failed = result.get("steps_failed", 0)
|
|
482
|
+
errors = result.get("errors", [])
|
|
483
|
+
|
|
484
|
+
self.console.print("") # Blank line before summary
|
|
485
|
+
|
|
486
|
+
# Status banner
|
|
487
|
+
if status == "success":
|
|
488
|
+
self.console.print("=" * 60)
|
|
489
|
+
self.console.print_success(" PROJECT GENERATION COMPLETE")
|
|
490
|
+
self.console.print("=" * 60)
|
|
491
|
+
else:
|
|
492
|
+
self.console.print("=" * 60)
|
|
493
|
+
self.console.print_warning(" PROJECT GENERATION FINISHED WITH ISSUES")
|
|
494
|
+
self.console.print("=" * 60)
|
|
495
|
+
|
|
496
|
+
self.console.print("")
|
|
497
|
+
|
|
498
|
+
# Phase summary
|
|
499
|
+
if phases_completed:
|
|
500
|
+
self.console.print(f"Phases completed: {', '.join(phases_completed)}")
|
|
501
|
+
if phases_failed:
|
|
502
|
+
self.console.print(f"Phases failed: {', '.join(phases_failed)}")
|
|
503
|
+
|
|
504
|
+
# Step summary
|
|
505
|
+
total_steps = steps_succeeded + steps_failed
|
|
506
|
+
self.console.print(f"Steps: {steps_succeeded}/{total_steps} succeeded")
|
|
507
|
+
|
|
508
|
+
# Errors/warnings
|
|
509
|
+
if errors:
|
|
510
|
+
self.console.print("")
|
|
511
|
+
self.console.print("Warnings/Errors:")
|
|
512
|
+
for error in errors[:5]: # Show first 5 errors
|
|
513
|
+
self.console.print(f" - {error}")
|
|
514
|
+
if len(errors) > 5:
|
|
515
|
+
self.console.print(f" ... and {len(errors) - 5} more")
|
|
516
|
+
|
|
517
|
+
self.console.print("")
|
|
518
|
+
|
|
519
|
+
# Next steps
|
|
520
|
+
if status == "success":
|
|
521
|
+
project_dir = result.get("project_dir", os.getcwd())
|
|
522
|
+
self.console.print("Next steps:")
|
|
523
|
+
self.console.print(f" 1. cd {project_dir}")
|
|
524
|
+
self.console.print(" 2. npm run dev")
|
|
525
|
+
self.console.print(" 3. Open http://localhost:3000 in your browser")
|
|
526
|
+
else:
|
|
527
|
+
self.console.print("Next steps:")
|
|
528
|
+
self.console.print(" 1. Review the errors above")
|
|
529
|
+
self.console.print(" 2. Run the command again to retry failed steps")
|
|
530
|
+
|
|
531
|
+
self.console.print("")
|
|
532
|
+
self.console.print("=" * 60)
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
def main():
|
|
536
|
+
"""Main entry point for testing."""
|
|
537
|
+
agent = CodeAgent()
|
|
538
|
+
print("CodeAgent initialized successfully")
|
|
539
|
+
print(f"Cache directory: {agent.cache_dir}")
|
|
540
|
+
print(
|
|
541
|
+
"Validators: syntax_validator, antipattern_checker, ast_analyzer, "
|
|
542
|
+
"requirements_validator"
|
|
543
|
+
)
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
if __name__ == "__main__":
|
|
547
|
+
main()
|