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,40 @@
|
|
|
1
|
+
# Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""Next.js CRUD app builder prompt for Code Agent."""
|
|
4
|
+
|
|
5
|
+
# Package version matrix for Next.js 14 compatibility
|
|
6
|
+
NEXTJS_VERSION = "14.2.33"
|
|
7
|
+
PRISMA_VERSION = "5.22.0"
|
|
8
|
+
ZOD_VERSION = "3.23.8"
|
|
9
|
+
|
|
10
|
+
NEXTJS_PROMPT = """=== NEXT.JS DEVELOPMENT ===
|
|
11
|
+
|
|
12
|
+
## Role
|
|
13
|
+
You are a Next.js full-stack developer creating CRUD applications.
|
|
14
|
+
|
|
15
|
+
## Output Format
|
|
16
|
+
Respond with JSON: {"thought": "...", "tool": "...", "tool_args": {...}}
|
|
17
|
+
|
|
18
|
+
## Quality Standards
|
|
19
|
+
- Components must have loading states and error boundaries
|
|
20
|
+
- Forms must validate input before submission
|
|
21
|
+
- Empty states must show helpful guidance
|
|
22
|
+
- All CRUD operations must be tested
|
|
23
|
+
|
|
24
|
+
## Technical Rules
|
|
25
|
+
- Server components: `import { prisma } from '@/lib/prisma'`
|
|
26
|
+
- Client components: `import type { ModelName } from '@prisma/client'`
|
|
27
|
+
- NEVER import prisma client directly in client components
|
|
28
|
+
- Run `prisma generate` after schema changes
|
|
29
|
+
|
|
30
|
+
## Field Consistency
|
|
31
|
+
Use the SAME fields dict across all tools:
|
|
32
|
+
- manage_data_model(fields=...) → Prisma schema
|
|
33
|
+
- manage_api_endpoint(fields=...) → Zod validation
|
|
34
|
+
- manage_react_component(fields=...) → Form fields
|
|
35
|
+
|
|
36
|
+
## Conventions
|
|
37
|
+
- Models: Singular PascalCase (Todo, Post)
|
|
38
|
+
- Fields: camelCase (firstName, createdAt)
|
|
39
|
+
- Routes: Plural kebab-case (/api/todos)
|
|
40
|
+
"""
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""Python-specific prompt module for Code Agent."""
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
|
|
7
|
+
from .base_prompt import get_base_prompt
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def get_python_prompt(gaia_md_path: Optional[str] = None) -> str:
|
|
11
|
+
"""Get complete Python development prompt (base + Python-specific).
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
gaia_md_path: Optional path to GAIA.md file for project context
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
Complete prompt with base universal guidance + Python-specific workflow
|
|
18
|
+
"""
|
|
19
|
+
base = get_base_prompt(gaia_md_path)
|
|
20
|
+
|
|
21
|
+
python_specific = """
|
|
22
|
+
========== PYTHON DEVELOPMENT WORKFLOW ==========
|
|
23
|
+
|
|
24
|
+
FOR PYTHON PROJECT CREATION REQUESTS:
|
|
25
|
+
When the user asks to create a complete Python project/application, your plan should be:
|
|
26
|
+
"plan": [
|
|
27
|
+
{"tool": "create_project", "tool_args": {"query": "user's complete project description"}}
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
The create_project tool will:
|
|
31
|
+
1. Design the project structure
|
|
32
|
+
2. Generate ALL necessary files
|
|
33
|
+
3. Return the actual project name and files created
|
|
34
|
+
|
|
35
|
+
After create_project completes successfully, you MUST create a NEW plan to validate and test:
|
|
36
|
+
1. Examine the tool result to see the actual project_name (e.g., "calculator_app")
|
|
37
|
+
2. Use list_files to discover the actual project structure
|
|
38
|
+
3. Create a NEW plan with these steps (using the ACTUAL project name):
|
|
39
|
+
- list_files(project_name) - See what was created
|
|
40
|
+
- validate_project(project_name, fix=true) - Check project structure and fix issues
|
|
41
|
+
- auto_fix_syntax_errors(project_name) - Fix any syntax issues
|
|
42
|
+
- analyze_with_pylint(project_name) - Check code quality
|
|
43
|
+
- fix_code(project_name/file.py) - Fix any errors found by pylint (if needed)
|
|
44
|
+
|
|
45
|
+
4. Run TESTS to validate (DO NOT run main.py as it may wait for input and timeout):
|
|
46
|
+
- Use run_tests tool to run pytest on the entire test suite
|
|
47
|
+
- Check the "tests_passed" field in the result - if FALSE, tests have FAILED
|
|
48
|
+
- If "tests_passed": false OR "return_code": 1, examine the errors and fix them
|
|
49
|
+
- Re-run tests until "tests_passed": true
|
|
50
|
+
|
|
51
|
+
CRITICAL: DO NOT execute main.py - it may be a web server or interactive app that hangs!
|
|
52
|
+
CRITICAL: Use run_tests tool to validate ALL tests at once with pytest!
|
|
53
|
+
CRITICAL: Check "tests_passed" field - if false, tests FAILED (do NOT claim success)!
|
|
54
|
+
CRITICAL: Task is complete ONLY when: pylint passes AND "tests_passed": true!
|
|
55
|
+
|
|
56
|
+
Example validation plan:
|
|
57
|
+
{"plan": [
|
|
58
|
+
{"tool": "list_files", "tool_args": {"path": "todo_app"}},
|
|
59
|
+
{"tool": "validate_project", "tool_args": {"project_path": "todo_app", "fix": true}},
|
|
60
|
+
{"tool": "auto_fix_syntax_errors", "tool_args": {"project_path": "todo_app"}},
|
|
61
|
+
{"tool": "analyze_with_pylint", "tool_args": {"file_path": "todo_app"}},
|
|
62
|
+
{"tool": "run_tests", "tool_args": {"project_path": "todo_app"}}
|
|
63
|
+
]}
|
|
64
|
+
|
|
65
|
+
If run_tests fails, create a NEW plan to fix the errors and re-run tests!
|
|
66
|
+
|
|
67
|
+
IMPORTANT: When creating any Python project, ALWAYS include:
|
|
68
|
+
1. README.md - With project overview, features, installation, and usage instructions
|
|
69
|
+
2. requirements.txt - List all required packages with versions
|
|
70
|
+
|
|
71
|
+
PYTHON TOOL USAGE:
|
|
72
|
+
For project creation: Use create_project to generate files, then CONTINUE with validation.
|
|
73
|
+
For code generation: Use generate_function, generate_class, or generate_test.
|
|
74
|
+
For file operations: Use read_file, write_python_file, edit_python_file.
|
|
75
|
+
For error fixing: Use auto_fix_syntax_errors to scan projects, or fix_code for individual files.
|
|
76
|
+
|
|
77
|
+
CRITICAL: After creating any Python project or code:
|
|
78
|
+
1. Run validate_project to check structure and fix common issues
|
|
79
|
+
2. Run auto_fix_syntax_errors to fix any truncated or broken files
|
|
80
|
+
3. Run analyze_with_pylint on the ENTIRE PROJECT FOLDER to get all errors at once
|
|
81
|
+
4. Use fix_code on each file that has errors (based on pylint results)
|
|
82
|
+
5. Run execute_python_file on main.py to test the application
|
|
83
|
+
6. Run execute_python_file on test files to verify tests pass
|
|
84
|
+
7. If execution fails (has_errors: true), read the stderr output and fix the errors
|
|
85
|
+
|
|
86
|
+
PYLINT STRATEGY: Always run pylint on the project directory, not individual files.
|
|
87
|
+
|
|
88
|
+
MANDATORY TEST REQUIREMENTS:
|
|
89
|
+
- ALWAYS create test_*.py files for all main modules
|
|
90
|
+
- Use generate_test tool to create comprehensive unit tests
|
|
91
|
+
- Test all major functions and classes
|
|
92
|
+
- Include edge cases and error handling tests
|
|
93
|
+
|
|
94
|
+
PYTHON-SPECIFIC ERROR PATTERNS:
|
|
95
|
+
- "is_valid": false in read_python_file → Fix the syntax error shown in "errors"
|
|
96
|
+
- "has_errors": true in execute_python_file → Fix the error shown in "stderr"
|
|
97
|
+
- Issues in analyze_with_pylint → Use fix_linting_errors or edit_python_file
|
|
98
|
+
- "status": "error" in any tool result → READ the error message and fix the issue:
|
|
99
|
+
* If pylint has invalid arguments, retry with valid values (e.g., confidence=HIGH)
|
|
100
|
+
* If a command fails, check stderr and adjust parameters
|
|
101
|
+
* ALWAYS recover from tool errors - don't ignore them!
|
|
102
|
+
|
|
103
|
+
PYTHON MANDATORY WORKFLOW: Create → Check Syntax → Fix → Write Tests → Lint → Test → Verify.
|
|
104
|
+
DO NOT STOP after create_project! Continue with ALL validation steps until verified working.
|
|
105
|
+
|
|
106
|
+
========== END PYTHON DEVELOPMENT WORKFLOW ==========
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
return base + python_specific
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""AI-powered schema inference for Code Agent.
|
|
4
|
+
|
|
5
|
+
This module provides dynamic schema inference using AI (Perplexity or local LLM)
|
|
6
|
+
to understand what fields an application should have based on natural language
|
|
7
|
+
descriptions. NO hardcoded app types or patterns - all inference is AI-driven.
|
|
8
|
+
|
|
9
|
+
Example:
|
|
10
|
+
User: "Build me a task tracker"
|
|
11
|
+
AI Response: {"entity": "Task", "fields": [
|
|
12
|
+
{"name": "title", "type": "string", "required": true},
|
|
13
|
+
{"name": "completed", "type": "boolean", "required": true},
|
|
14
|
+
{"name": "dueDate", "type": "datetime", "required": false}
|
|
15
|
+
]}
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import json
|
|
19
|
+
import logging
|
|
20
|
+
import os
|
|
21
|
+
import re
|
|
22
|
+
from typing import Any, Dict, Optional
|
|
23
|
+
|
|
24
|
+
logger = logging.getLogger(__name__)
|
|
25
|
+
|
|
26
|
+
# Schema inference prompt - instructs AI to return minimal, appropriate fields
|
|
27
|
+
# NOTE: This prompt is optimized for both Perplexity and local LLMs
|
|
28
|
+
SCHEMA_INFERENCE_PROMPT = """You are a database schema designer. Analyze the app description and return the schema for the MAIN entity only.
|
|
29
|
+
|
|
30
|
+
CRITICAL RULES:
|
|
31
|
+
1. Return ONLY ONE entity - the main data entity (NOT User, NOT Auth)
|
|
32
|
+
2. Keep fields MINIMAL - only what's absolutely necessary
|
|
33
|
+
3. DO NOT include: id, createdAt, updatedAt, userId (auto-generated)
|
|
34
|
+
4. Think about INTUITIVE UX (e.g., Address Book apps NEED a "first name" string field)
|
|
35
|
+
|
|
36
|
+
EXACT OUTPUT FORMAT (single JSON object, no array):
|
|
37
|
+
{{"entity": "EntityName", "fields": [{{"name": "fieldName", "type": "type", "required": true}}]}}
|
|
38
|
+
|
|
39
|
+
Valid types: string, text, number, boolean, datetime, email, url
|
|
40
|
+
|
|
41
|
+
EXAMPLES:
|
|
42
|
+
- "todo app" -> {{"entity": "Todo", "fields": [{{"name": "title", "type": "string", "required": true}}, {{"name": "completed", "type": "boolean", "required": true}}]}}
|
|
43
|
+
- "contact manager" -> {{"entity": "Contact", "fields": [{{"name": "firstName", "type": "string", "required": true}}, {{"name": "lastName", "type": "string", "required": true}}, {{"name": "email", "type": "email", "required": false}}]}}
|
|
44
|
+
|
|
45
|
+
App description: "{query}"
|
|
46
|
+
|
|
47
|
+
Keep the schema dead simple, and focus on the most basic fields needed. For example, if the app is a contact manager, include "firstName" and "lastName" fields, but do NOT add address fields unless absolutely necessary.
|
|
48
|
+
|
|
49
|
+
Return ONLY the JSON object for the MAIN entity:"""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def infer_schema(
|
|
53
|
+
user_query: str,
|
|
54
|
+
chat_sdk: Optional[Any] = None,
|
|
55
|
+
) -> Dict[str, Any]:
|
|
56
|
+
"""Infer schema fields from user's natural language query using AI.
|
|
57
|
+
|
|
58
|
+
Uses cascading fallback: Perplexity API -> Local LLM -> Generic fallback.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
user_query: The user's app description (e.g., "build me a todo app")
|
|
62
|
+
chat_sdk: Optional ChatSDK instance for local LLM fallback
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
Dictionary with:
|
|
66
|
+
- entity: Suggested entity name (e.g., "Todo", "Task", "Contact")
|
|
67
|
+
- fields: List of field definitions with name, type, required
|
|
68
|
+
- source: Which method was used ("perplexity", "local_llm", "fallback")
|
|
69
|
+
"""
|
|
70
|
+
# Check if this looks like an app creation request
|
|
71
|
+
if not _is_app_creation_request(user_query):
|
|
72
|
+
logger.debug(f"Query doesn't appear to be app creation: {user_query[:50]}...")
|
|
73
|
+
return {"entity": None, "fields": [], "source": "skipped"}
|
|
74
|
+
|
|
75
|
+
# Try Perplexity first (if API key is set)
|
|
76
|
+
perplexity_key = os.getenv("PERPLEXITY_API_KEY")
|
|
77
|
+
if perplexity_key:
|
|
78
|
+
logger.info("Attempting schema inference via Perplexity")
|
|
79
|
+
result = _infer_via_perplexity(user_query)
|
|
80
|
+
if result.get("entity"):
|
|
81
|
+
result["source"] = "perplexity"
|
|
82
|
+
logger.info(
|
|
83
|
+
f"Perplexity inferred schema: {result['entity']} with {len(result['fields'])} fields"
|
|
84
|
+
)
|
|
85
|
+
return result
|
|
86
|
+
|
|
87
|
+
# Fall back to local LLM
|
|
88
|
+
if chat_sdk:
|
|
89
|
+
logger.debug("Attempting schema inference via local LLM")
|
|
90
|
+
result = _infer_via_local_llm(user_query, chat_sdk)
|
|
91
|
+
if result.get("entity"):
|
|
92
|
+
result["source"] = "local_llm"
|
|
93
|
+
logger.debug(
|
|
94
|
+
f"Local LLM inferred schema: {result['entity']} with {len(result['fields'])} fields"
|
|
95
|
+
)
|
|
96
|
+
return result
|
|
97
|
+
|
|
98
|
+
# Final fallback - no schema inference available
|
|
99
|
+
logger.warning("No schema inference available - returning empty schema")
|
|
100
|
+
return {"entity": None, "fields": [], "source": "fallback"}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def _is_app_creation_request(query: str) -> bool:
|
|
104
|
+
"""Check if the query appears to be an app creation request.
|
|
105
|
+
|
|
106
|
+
Uses semantic patterns to detect app creation intent without hardcoding
|
|
107
|
+
specific app types.
|
|
108
|
+
"""
|
|
109
|
+
query_lower = query.lower()
|
|
110
|
+
|
|
111
|
+
# App creation indicators (verbs + objects)
|
|
112
|
+
creation_verbs = [
|
|
113
|
+
"build",
|
|
114
|
+
"create",
|
|
115
|
+
"make",
|
|
116
|
+
"develop",
|
|
117
|
+
"generate",
|
|
118
|
+
"design",
|
|
119
|
+
"implement",
|
|
120
|
+
]
|
|
121
|
+
app_objects = [
|
|
122
|
+
"app",
|
|
123
|
+
"application",
|
|
124
|
+
"crud",
|
|
125
|
+
"website",
|
|
126
|
+
"site",
|
|
127
|
+
"system",
|
|
128
|
+
"tracker",
|
|
129
|
+
"manager",
|
|
130
|
+
"dashboard",
|
|
131
|
+
]
|
|
132
|
+
|
|
133
|
+
# Check for creation verb + app object pattern
|
|
134
|
+
has_creation_verb = any(verb in query_lower for verb in creation_verbs)
|
|
135
|
+
has_app_object = any(obj in query_lower for obj in app_objects)
|
|
136
|
+
|
|
137
|
+
# Also check for "for managing X" or "to track X" patterns
|
|
138
|
+
management_patterns = [
|
|
139
|
+
"for managing",
|
|
140
|
+
"to manage",
|
|
141
|
+
"to track",
|
|
142
|
+
"for tracking",
|
|
143
|
+
"to organize",
|
|
144
|
+
"for organizing",
|
|
145
|
+
]
|
|
146
|
+
has_management_pattern = any(
|
|
147
|
+
pattern in query_lower for pattern in management_patterns
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
return (has_creation_verb and has_app_object) or has_management_pattern
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def _infer_via_perplexity(query: str) -> Dict[str, Any]:
|
|
154
|
+
"""Infer schema using Perplexity API.
|
|
155
|
+
|
|
156
|
+
Args:
|
|
157
|
+
query: User's app description
|
|
158
|
+
|
|
159
|
+
Returns:
|
|
160
|
+
Schema result or empty dict on failure
|
|
161
|
+
"""
|
|
162
|
+
try:
|
|
163
|
+
from gaia.mcp.external_services import get_perplexity_service
|
|
164
|
+
|
|
165
|
+
service = get_perplexity_service()
|
|
166
|
+
prompt = SCHEMA_INFERENCE_PROMPT.format(query=query)
|
|
167
|
+
result = service.search_web(prompt)
|
|
168
|
+
|
|
169
|
+
if result.get("success") and result.get("answer"):
|
|
170
|
+
return _parse_schema_response(result["answer"])
|
|
171
|
+
|
|
172
|
+
logger.warning(
|
|
173
|
+
f"Perplexity inference failed: {result.get('error', 'No answer')}"
|
|
174
|
+
)
|
|
175
|
+
return {"entity": None, "fields": []}
|
|
176
|
+
|
|
177
|
+
except Exception as e:
|
|
178
|
+
logger.warning(f"Perplexity inference error: {e}")
|
|
179
|
+
return {"entity": None, "fields": []}
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def _infer_via_local_llm(query: str, chat_sdk: Any) -> Dict[str, Any]:
|
|
183
|
+
"""Infer schema using local LLM via ChatSDK.
|
|
184
|
+
|
|
185
|
+
Args:
|
|
186
|
+
query: User's app description
|
|
187
|
+
chat_sdk: ChatSDK instance for LLM calls
|
|
188
|
+
|
|
189
|
+
Returns:
|
|
190
|
+
Schema result or empty dict on failure
|
|
191
|
+
"""
|
|
192
|
+
try:
|
|
193
|
+
prompt = SCHEMA_INFERENCE_PROMPT.format(query=query)
|
|
194
|
+
response = chat_sdk.send(prompt, max_tokens=500)
|
|
195
|
+
|
|
196
|
+
if response and response.text:
|
|
197
|
+
return _parse_schema_response(response.text)
|
|
198
|
+
|
|
199
|
+
logger.warning("Local LLM returned empty response")
|
|
200
|
+
return {"entity": None, "fields": []}
|
|
201
|
+
|
|
202
|
+
except Exception as e:
|
|
203
|
+
logger.warning(f"Local LLM inference error: {e}")
|
|
204
|
+
return {"entity": None, "fields": []}
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def _parse_schema_response(response: str) -> Dict[str, Any]:
|
|
208
|
+
"""Parse schema JSON from AI response.
|
|
209
|
+
|
|
210
|
+
Handles various response formats including:
|
|
211
|
+
- Clean JSON object
|
|
212
|
+
- JSON array (takes first non-User entity)
|
|
213
|
+
- JSON in markdown code blocks
|
|
214
|
+
- JSON with surrounding text
|
|
215
|
+
|
|
216
|
+
Args:
|
|
217
|
+
response: Raw AI response text
|
|
218
|
+
|
|
219
|
+
Returns:
|
|
220
|
+
Parsed schema or empty dict on failure
|
|
221
|
+
"""
|
|
222
|
+
try:
|
|
223
|
+
# Try to extract JSON from the response
|
|
224
|
+
json_str = _extract_json(response)
|
|
225
|
+
if not json_str:
|
|
226
|
+
logger.warning(f"Could not extract JSON from response: {response[:100]}...")
|
|
227
|
+
return {"entity": None, "fields": []}
|
|
228
|
+
|
|
229
|
+
logger.debug(f"Extracted JSON: {json_str[:200]}...")
|
|
230
|
+
data = json.loads(json_str)
|
|
231
|
+
|
|
232
|
+
# Handle array response - take first non-User/Auth entity
|
|
233
|
+
if isinstance(data, list):
|
|
234
|
+
logger.debug(
|
|
235
|
+
f"Response is array with {len(data)} items, selecting main entity"
|
|
236
|
+
)
|
|
237
|
+
skip_names = {"user", "auth", "session", "account"}
|
|
238
|
+
for item in data:
|
|
239
|
+
if isinstance(item, dict):
|
|
240
|
+
name = item.get("entity", "").lower()
|
|
241
|
+
if name and name not in skip_names:
|
|
242
|
+
data = item
|
|
243
|
+
break
|
|
244
|
+
else:
|
|
245
|
+
# No suitable entity found, take first if available
|
|
246
|
+
data = data[0] if data else {}
|
|
247
|
+
|
|
248
|
+
# Validate it's a dict
|
|
249
|
+
if not isinstance(data, dict):
|
|
250
|
+
logger.warning(f"Expected dict but got {type(data).__name__}")
|
|
251
|
+
return {"entity": None, "fields": []}
|
|
252
|
+
|
|
253
|
+
# Validate required fields
|
|
254
|
+
entity = data.get("entity")
|
|
255
|
+
fields = data.get("fields", [])
|
|
256
|
+
|
|
257
|
+
if not entity or not isinstance(fields, list):
|
|
258
|
+
logger.warning(f"Invalid schema format: {data}")
|
|
259
|
+
return {"entity": None, "fields": []}
|
|
260
|
+
|
|
261
|
+
# Normalize fields, filter out auto-generated ones
|
|
262
|
+
normalized_fields = []
|
|
263
|
+
skip_fields = {"id", "createdat", "updatedat", "userid"}
|
|
264
|
+
for field in fields:
|
|
265
|
+
if isinstance(field, dict) and "name" in field:
|
|
266
|
+
if field["name"].lower() in skip_fields:
|
|
267
|
+
continue
|
|
268
|
+
normalized_fields.append(
|
|
269
|
+
{
|
|
270
|
+
"name": field["name"],
|
|
271
|
+
"type": field.get("type", "string"),
|
|
272
|
+
"required": field.get("required", False),
|
|
273
|
+
}
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
logger.debug(f"Parsed schema: {entity} with {len(normalized_fields)} fields")
|
|
277
|
+
return {"entity": entity, "fields": normalized_fields}
|
|
278
|
+
|
|
279
|
+
except json.JSONDecodeError as e:
|
|
280
|
+
logger.warning(f"JSON parse error: {e}")
|
|
281
|
+
return {"entity": None, "fields": []}
|
|
282
|
+
except Exception as e:
|
|
283
|
+
logger.warning(f"Schema parse error: {e}")
|
|
284
|
+
return {"entity": None, "fields": []}
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
def _extract_json(text: str) -> Optional[str]:
|
|
288
|
+
"""Extract JSON from text, handling various formats.
|
|
289
|
+
|
|
290
|
+
Args:
|
|
291
|
+
text: Raw text possibly containing JSON
|
|
292
|
+
|
|
293
|
+
Returns:
|
|
294
|
+
Extracted JSON string or None
|
|
295
|
+
"""
|
|
296
|
+
# Try to find JSON in code blocks first
|
|
297
|
+
code_block_patterns = [
|
|
298
|
+
r"```json\s*([\s\S]*?)\s*```",
|
|
299
|
+
r"```\s*([\s\S]*?)\s*```",
|
|
300
|
+
]
|
|
301
|
+
|
|
302
|
+
for pattern in code_block_patterns:
|
|
303
|
+
match = re.search(pattern, text)
|
|
304
|
+
if match:
|
|
305
|
+
return match.group(1).strip()
|
|
306
|
+
|
|
307
|
+
# Check if text starts with array or object to pick correct pattern
|
|
308
|
+
stripped = text.strip()
|
|
309
|
+
if stripped.startswith("["):
|
|
310
|
+
# JSON array - extract it
|
|
311
|
+
bracket_match = re.search(r"\[[\s\S]*\]", text)
|
|
312
|
+
if bracket_match:
|
|
313
|
+
return bracket_match.group(0)
|
|
314
|
+
|
|
315
|
+
# Try to find JSON object directly
|
|
316
|
+
brace_match = re.search(r"\{[\s\S]*\}", text)
|
|
317
|
+
if brace_match:
|
|
318
|
+
return brace_match.group(0)
|
|
319
|
+
|
|
320
|
+
# Return stripped text as last resort
|
|
321
|
+
return text.strip()
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
def format_schema_context(schema_result: Dict[str, Any]) -> str:
|
|
325
|
+
"""Format inferred schema for injection into system prompt.
|
|
326
|
+
|
|
327
|
+
Args:
|
|
328
|
+
schema_result: Result from infer_schema()
|
|
329
|
+
|
|
330
|
+
Returns:
|
|
331
|
+
Formatted string for system prompt, or empty string if no schema
|
|
332
|
+
"""
|
|
333
|
+
entity = schema_result.get("entity")
|
|
334
|
+
fields = schema_result.get("fields", [])
|
|
335
|
+
source = schema_result.get("source", "unknown")
|
|
336
|
+
|
|
337
|
+
if not entity or not fields:
|
|
338
|
+
return ""
|
|
339
|
+
|
|
340
|
+
# Format fields for prompt
|
|
341
|
+
field_lines = []
|
|
342
|
+
for field in fields:
|
|
343
|
+
name = field["name"]
|
|
344
|
+
field_type = field["type"]
|
|
345
|
+
required = "required" if field.get("required") else "optional"
|
|
346
|
+
field_lines.append(f" - {name}: {field_type} ({required})")
|
|
347
|
+
|
|
348
|
+
fields_str = "\n".join(field_lines)
|
|
349
|
+
|
|
350
|
+
context = f"""
|
|
351
|
+
## AI-Inferred Schema (source: {source})
|
|
352
|
+
|
|
353
|
+
Based on the user's request, the following schema has been determined:
|
|
354
|
+
|
|
355
|
+
**Entity:** {entity}
|
|
356
|
+
**Fields:**
|
|
357
|
+
{fields_str}
|
|
358
|
+
|
|
359
|
+
IMPORTANT: Use these fields when creating the data model and components.
|
|
360
|
+
- Use `manage_data_model` with these field names and types
|
|
361
|
+
- Use the same fields consistently across all tools (API, components, forms)
|
|
362
|
+
- Boolean fields (like 'completed') should render as checkboxes in forms and lists
|
|
363
|
+
"""
|
|
364
|
+
|
|
365
|
+
return context
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""
|
|
4
|
+
System prompt configuration for the Code Agent.
|
|
5
|
+
|
|
6
|
+
This module orchestrates loading the appropriate language-specific prompts
|
|
7
|
+
based on the language and project_type provided by RoutingAgent.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from typing import Optional
|
|
11
|
+
|
|
12
|
+
from .prompts.base_prompt import get_base_prompt
|
|
13
|
+
from .prompts.nextjs_prompt import NEXTJS_PROMPT
|
|
14
|
+
from .prompts.python_prompt import get_python_prompt
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_system_prompt(
|
|
18
|
+
language: str = "python",
|
|
19
|
+
project_type: str = "script", # pylint: disable=unused-argument
|
|
20
|
+
gaia_md_path: Optional[str] = None,
|
|
21
|
+
) -> str:
|
|
22
|
+
"""Get the appropriate system prompt based on language and project type.
|
|
23
|
+
|
|
24
|
+
Language and project type are determined by RoutingAgent before CodeAgent
|
|
25
|
+
is instantiated, so this function no longer performs detection.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
language: Programming language ('python' or 'typescript')
|
|
29
|
+
project_type: Project type ('frontend', 'backend', 'fullstack', or 'script')
|
|
30
|
+
gaia_md_path: Optional path to GAIA.md file for project context
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
Complete system prompt string (base + language-specific instructions)
|
|
34
|
+
"""
|
|
35
|
+
if language == "typescript":
|
|
36
|
+
# All TypeScript projects use Next.js unified approach
|
|
37
|
+
base = get_base_prompt(gaia_md_path)
|
|
38
|
+
return base + NEXTJS_PROMPT
|
|
39
|
+
else:
|
|
40
|
+
# Python prompt (default)
|
|
41
|
+
return get_python_prompt(gaia_md_path)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""Tool mixins for Code Agent."""
|
|
4
|
+
|
|
5
|
+
from .code_formatting import CodeFormattingMixin
|
|
6
|
+
|
|
7
|
+
# Consolidated mixins (new architecture)
|
|
8
|
+
from .code_tools import CodeToolsMixin
|
|
9
|
+
from .error_fixing import ErrorFixingMixin
|
|
10
|
+
|
|
11
|
+
# External service tools
|
|
12
|
+
from .external_tools import ExternalToolsMixin
|
|
13
|
+
|
|
14
|
+
# Focused mixins (retained)
|
|
15
|
+
from .file_io import FileIOToolsMixin
|
|
16
|
+
from .project_management import ProjectManagementMixin
|
|
17
|
+
from .testing import TestingMixin
|
|
18
|
+
from .typescript_tools import TypeScriptToolsMixin
|
|
19
|
+
from .validation_parsing import ValidationAndParsingMixin
|
|
20
|
+
|
|
21
|
+
# Validation tools
|
|
22
|
+
from .validation_tools import ValidationToolsMixin
|
|
23
|
+
from .web_dev_tools import WebToolsMixin
|
|
24
|
+
|
|
25
|
+
__all__ = [
|
|
26
|
+
# New consolidated mixins
|
|
27
|
+
"CodeToolsMixin",
|
|
28
|
+
"ValidationAndParsingMixin",
|
|
29
|
+
# Focused mixins
|
|
30
|
+
"FileIOToolsMixin",
|
|
31
|
+
"CodeFormattingMixin",
|
|
32
|
+
"ProjectManagementMixin",
|
|
33
|
+
"TestingMixin",
|
|
34
|
+
"ErrorFixingMixin",
|
|
35
|
+
# TypeScript/Web mixins
|
|
36
|
+
"TypeScriptToolsMixin",
|
|
37
|
+
"WebToolsMixin",
|
|
38
|
+
# External service mixins
|
|
39
|
+
"ExternalToolsMixin",
|
|
40
|
+
# Validation tools
|
|
41
|
+
"ValidationToolsMixin",
|
|
42
|
+
]
|