repoburg 1.0.68 → 1.1.0
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.
- package/README.md +8 -1
- package/backend/.env +2 -2
- package/backend/dist/packages/gemini-core/examples/simple.d.ts +1 -0
- package/backend/dist/packages/gemini-core/examples/simple.js +73 -0
- package/backend/dist/packages/gemini-core/examples/simple.js.map +1 -0
- package/backend/dist/packages/gemini-core/index.d.ts +3 -0
- package/backend/dist/packages/gemini-core/index.js +27 -0
- package/backend/dist/packages/gemini-core/index.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/codeAssist.d.ts +5 -0
- package/backend/dist/packages/gemini-core/src/code_assist/codeAssist.js +17 -0
- package/backend/dist/packages/gemini-core/src/code_assist/codeAssist.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/converter.d.ts +69 -0
- package/backend/dist/packages/gemini-core/src/code_assist/converter.js +129 -0
- package/backend/dist/packages/gemini-core/src/code_assist/converter.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/oauth-credential-storage.d.ts +8 -0
- package/backend/dist/packages/gemini-core/src/code_assist/oauth-credential-storage.js +84 -0
- package/backend/dist/packages/gemini-core/src/code_assist/oauth-credential-storage.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/oauth2.d.ts +12 -0
- package/backend/dist/packages/gemini-core/src/code_assist/oauth2.js +371 -0
- package/backend/dist/packages/gemini-core/src/code_assist/oauth2.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/server.d.ts +28 -0
- package/backend/dist/packages/gemini-core/src/code_assist/server.js +135 -0
- package/backend/dist/packages/gemini-core/src/code_assist/server.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/setup.d.ts +10 -0
- package/backend/dist/packages/gemini-core/src/code_assist/setup.js +94 -0
- package/backend/dist/packages/gemini-core/src/code_assist/setup.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/code_assist/types.d.ts +106 -0
- package/backend/dist/packages/gemini-core/src/code_assist/types.js +28 -0
- package/backend/dist/packages/gemini-core/src/code_assist/types.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/config/config.d.ts +22 -0
- package/backend/dist/packages/gemini-core/src/config/config.js +38 -0
- package/backend/dist/packages/gemini-core/src/config/config.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/config/models.d.ts +6 -0
- package/backend/dist/packages/gemini-core/src/config/models.js +13 -0
- package/backend/dist/packages/gemini-core/src/config/models.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/config/storage.d.ts +8 -0
- package/backend/dist/packages/gemini-core/src/config/storage.js +25 -0
- package/backend/dist/packages/gemini-core/src/config/storage.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/core/contentGenerator.d.ts +23 -0
- package/backend/dist/packages/gemini-core/src/core/contentGenerator.js +63 -0
- package/backend/dist/packages/gemini-core/src/core/contentGenerator.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/core/geminiChat.d.ts +34 -0
- package/backend/dist/packages/gemini-core/src/core/geminiChat.js +247 -0
- package/backend/dist/packages/gemini-core/src/core/geminiChat.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/core/geminiRequest.d.ts +3 -0
- package/backend/dist/packages/gemini-core/src/core/geminiRequest.js +8 -0
- package/backend/dist/packages/gemini-core/src/core/geminiRequest.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/core/prompts.d.ts +7 -0
- package/backend/dist/packages/gemini-core/src/core/prompts.js +69 -0
- package/backend/dist/packages/gemini-core/src/core/prompts.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/core/tokenLimits.d.ts +5 -0
- package/backend/dist/packages/gemini-core/src/core/tokenLimits.js +25 -0
- package/backend/dist/packages/gemini-core/src/core/tokenLimits.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/index.d.ts +18 -0
- package/backend/dist/packages/gemini-core/src/index.js +37 -0
- package/backend/dist/packages/gemini-core/src/index.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/base-token-storage.d.ts +14 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/base-token-storage.js +34 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/base-token-storage.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/file-token-storage.d.ts +19 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/file-token-storage.js +141 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/file-token-storage.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/hybrid-token-storage.d.ts +18 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/hybrid-token-storage.js +74 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/hybrid-token-storage.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/index.d.ts +6 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/index.js +24 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/index.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/keychain-token-storage.d.ts +26 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/keychain-token-storage.js +188 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/keychain-token-storage.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/types.d.ts +27 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/types.js +9 -0
- package/backend/dist/packages/gemini-core/src/mcp/token-storage/types.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/utils/errors.d.ts +34 -0
- package/backend/dist/packages/gemini-core/src/utils/errors.js +103 -0
- package/backend/dist/packages/gemini-core/src/utils/errors.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/utils/partUtils.d.ts +7 -0
- package/backend/dist/packages/gemini-core/src/utils/partUtils.js +108 -0
- package/backend/dist/packages/gemini-core/src/utils/partUtils.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/utils/quotaErrorDetection.d.ts +16 -0
- package/backend/dist/packages/gemini-core/src/utils/quotaErrorDetection.js +60 -0
- package/backend/dist/packages/gemini-core/src/utils/quotaErrorDetection.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/utils/retry.d.ts +14 -0
- package/backend/dist/packages/gemini-core/src/utils/retry.js +154 -0
- package/backend/dist/packages/gemini-core/src/utils/retry.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/utils/session.d.ts +1 -0
- package/backend/dist/packages/gemini-core/src/utils/session.js +6 -0
- package/backend/dist/packages/gemini-core/src/utils/session.js.map +1 -0
- package/backend/dist/packages/gemini-core/src/utils/userAccountManager.d.ts +10 -0
- package/backend/dist/packages/gemini-core/src/utils/userAccountManager.js +106 -0
- package/backend/dist/packages/gemini-core/src/utils/userAccountManager.js.map +1 -0
- package/backend/dist/src/action-execution/action-execution.module.js.map +1 -0
- package/backend/dist/src/action-execution/action-execution.service.js.map +1 -0
- package/backend/dist/src/ai-actions/ai-action-batch.service.js.map +1 -0
- package/backend/dist/src/ai-actions/ai-action-creation.service.js.map +1 -0
- package/backend/dist/src/ai-actions/ai-actions.controller.js.map +1 -0
- package/backend/dist/src/ai-actions/ai-actions.module.js.map +1 -0
- package/backend/dist/src/ai-actions/ai-actions.service.js.map +1 -0
- package/backend/dist/src/app.controller.js.map +1 -0
- package/backend/dist/src/app.module.js.map +1 -0
- package/backend/dist/src/app.service.js.map +1 -0
- package/backend/dist/src/application-state/application-state.controller.js.map +1 -0
- package/backend/dist/src/application-state/application-state.module.js.map +1 -0
- package/backend/dist/src/application-state/application-state.service.js.map +1 -0
- package/backend/dist/src/application-state/dto/set-auto-context-fetch-enabled.dto.js.map +1 -0
- package/backend/dist/src/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.js.map +1 -0
- package/backend/dist/src/application-state/dto/set-context-token-limit.dto.js.map +1 -0
- package/backend/dist/src/application-state/dto/set-orchestration-timeout.dto.js.map +1 -0
- package/backend/dist/src/application-state/dto/set-theme.dto.js.map +1 -0
- package/backend/dist/src/application-state/dto/set-websocket-enabled.dto.js.map +1 -0
- package/backend/dist/src/context-generation/context-generation.module.js.map +1 -0
- package/backend/dist/src/context-generation/context-generation.service.js.map +1 -0
- package/backend/dist/src/context-snippets/context-snippets.controller.js.map +1 -0
- package/backend/dist/src/context-snippets/context-snippets.module.js.map +1 -0
- package/backend/dist/src/context-snippets/context-snippets.service.js.map +1 -0
- package/backend/dist/src/context-snippets/dto/context-snippet.dto.js.map +1 -0
- package/backend/dist/src/context-templates/context-templates.controller.js.map +1 -0
- package/backend/dist/src/context-templates/context-templates.module.js.map +1 -0
- package/backend/dist/src/context-templates/context-templates.service.js.map +1 -0
- package/backend/dist/src/context-templates/dto/context-template.dto.js.map +1 -0
- package/backend/dist/src/core-entities/ai-action.entity.js.map +1 -0
- package/backend/dist/src/core-entities/application-state.entity.js.map +1 -0
- package/backend/dist/src/core-entities/base.entity.js.map +1 -0
- package/backend/dist/src/core-entities/context-snippet.entity.js.map +1 -0
- package/backend/dist/src/core-entities/context-template.entity.js.map +1 -0
- package/backend/dist/src/core-entities/custom-snippet.entity.js.map +1 -0
- package/backend/dist/src/core-entities/execution-log.entity.js.map +1 -0
- package/backend/dist/src/core-entities/index.js.map +1 -0
- package/backend/dist/src/core-entities/project.entity.js.map +1 -0
- package/backend/dist/src/core-entities/session-input.entity.js.map +1 -0
- package/backend/dist/src/core-entities/session.entity.js.map +1 -0
- package/backend/dist/src/core-entities/system-prompt.entity.js.map +1 -0
- package/backend/dist/src/custom-snippets/custom-snippets.controller.js.map +1 -0
- package/backend/dist/src/custom-snippets/custom-snippets.module.js.map +1 -0
- package/backend/dist/src/custom-snippets/custom-snippets.service.js.map +1 -0
- package/backend/dist/src/custom-snippets/dto/custom-snippet.dto.js.map +1 -0
- package/backend/dist/src/events/events.gateway.js.map +1 -0
- package/backend/dist/src/events/events.module.js.map +1 -0
- package/backend/dist/src/execution-logs/dto/execution-log.dto.js.map +1 -0
- package/backend/dist/src/execution-logs/execution-logs.controller.js.map +1 -0
- package/backend/dist/src/execution-logs/execution-logs.module.js.map +1 -0
- package/backend/dist/src/execution-logs/execution-logs.service.js.map +1 -0
- package/backend/dist/src/gemini/gemini-llm.provider.d.ts +10 -0
- package/backend/dist/src/gemini/gemini-llm.provider.js +103 -0
- package/backend/dist/src/gemini/gemini-llm.provider.js.map +1 -0
- package/backend/dist/src/gemini/gemini.module.d.ts +2 -0
- package/backend/dist/src/gemini/gemini.module.js +21 -0
- package/backend/dist/src/gemini/gemini.module.js.map +1 -0
- package/backend/dist/src/http-exception.filter.js.map +1 -0
- package/backend/dist/src/llm-provider/llm-provider.interface.d.ts +16 -0
- package/backend/dist/src/llm-provider/llm-provider.interface.js +5 -0
- package/backend/dist/src/llm-provider/llm-provider.interface.js.map +1 -0
- package/backend/dist/src/llm-provider/llm-provider.module.d.ts +2 -0
- package/backend/dist/src/llm-provider/llm-provider.module.js +29 -0
- package/backend/dist/src/llm-provider/llm-provider.module.js.map +1 -0
- package/backend/dist/src/llm-response-parser/dto/ai-action.dto.js.map +1 -0
- package/backend/dist/src/llm-response-parser/errors/parsing.error.js.map +1 -0
- package/backend/dist/src/llm-response-parser/llm-response-parser.module.js.map +1 -0
- package/backend/dist/src/llm-response-parser/llm-response-parser.service.js.map +1 -0
- package/backend/dist/src/llm-response-parser/parsing.constants.js.map +1 -0
- package/backend/dist/src/llm-responses/dto/submit-llm-response.dto.js.map +1 -0
- package/backend/dist/src/llm-responses/llm-responses.controller.js.map +1 -0
- package/backend/dist/src/llm-responses/llm-responses.module.js.map +1 -0
- package/backend/dist/src/llm-responses/llm-responses.service.js.map +1 -0
- package/backend/dist/src/main.js.map +1 -0
- package/backend/dist/src/orchestration/dto/orchestration.dto.js.map +1 -0
- package/backend/dist/src/orchestration/orchestration-fs.service.js.map +1 -0
- package/backend/dist/src/orchestration/orchestration-parser.service.js.map +1 -0
- package/backend/dist/src/orchestration/orchestration.controller.js.map +1 -0
- package/backend/dist/src/orchestration/orchestration.module.js.map +1 -0
- package/backend/dist/src/orchestration/orchestration.service.js.map +1 -0
- package/backend/dist/src/orchestration/orchestration.types.js.map +1 -0
- package/backend/dist/src/projects/dto/project.dto.js.map +1 -0
- package/backend/dist/src/projects/projects.controller.js.map +1 -0
- package/backend/dist/src/projects/projects.module.js.map +1 -0
- package/backend/dist/src/projects/projects.service.js.map +1 -0
- package/backend/dist/src/seeding/context-template-seeding.service.js.map +1 -0
- package/backend/dist/src/seeding/custom-snippet-seeding.service.js.map +1 -0
- package/backend/dist/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.js.map +1 -0
- package/backend/dist/src/seeding/data/context-templates/default-initial_condensed-project-context.js.map +1 -0
- package/backend/dist/src/seeding/data/context-templates/default-initial_full-project-context.js.map +1 -0
- package/backend/dist/src/seeding/data/context-templates/pm-context.js.map +1 -0
- package/backend/dist/src/seeding/data/context-templates/pr-description.js.map +1 -0
- package/backend/dist/src/seeding/data/context-templates/sample_focused-tree.d.ts +2 -0
- package/backend/dist/{seeding → src/seeding}/data/context-templates/sample_focused-tree.js +1 -3
- package/backend/dist/src/seeding/data/context-templates/sample_focused-tree.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/default_rglob.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/git-diff.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/rg-exclude.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/rg-search-glob.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/rg-search.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/run-command.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/tree.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/usr-adhoc-incl.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/usr-cmd-output-incl.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/usr-input-incl.js.map +1 -0
- package/backend/dist/src/seeding/data/system-prompts/codebase-explorer.js.map +1 -0
- package/backend/dist/src/seeding/data/system-prompts/default_multi-file-action-generator-with-requester.js.map +1 -0
- package/backend/dist/src/seeding/data/system-prompts/packup.js.map +1 -0
- package/backend/dist/src/seeding/data/system-prompts/refactor-split.js.map +1 -0
- package/backend/dist/src/seeding/seeding.module.js.map +1 -0
- package/backend/dist/src/seeding/seeding.service.js.map +1 -0
- package/backend/dist/src/seeding/system-prompt-seeding.service.js.map +1 -0
- package/backend/dist/src/session-followup/session-followup.module.js.map +1 -0
- package/backend/dist/src/session-followup/session-followup.service.js.map +1 -0
- package/backend/dist/src/session-inputs/dto/session-input.dto.js.map +1 -0
- package/backend/dist/{session-inputs → src/session-inputs}/session-input-context.service.d.ts +1 -1
- package/backend/dist/{session-inputs → src/session-inputs}/session-input-context.service.js +10 -11
- package/backend/dist/src/session-inputs/session-input-context.service.js.map +1 -0
- package/backend/dist/src/session-inputs/session-inputs.controller.js.map +1 -0
- package/backend/dist/{session-inputs → src/session-inputs}/session-inputs.module.js +2 -0
- package/backend/dist/src/session-inputs/session-inputs.module.js.map +1 -0
- package/backend/dist/{session-inputs → src/session-inputs}/session-inputs.service.d.ts +3 -1
- package/backend/dist/{session-inputs → src/session-inputs}/session-inputs.service.js +46 -15
- package/backend/dist/src/session-inputs/session-inputs.service.js.map +1 -0
- package/backend/dist/src/session-transfer/session-transfer.module.js.map +1 -0
- package/backend/dist/src/session-transfer/session-transfer.service.js.map +1 -0
- package/backend/dist/src/sessions/dto/session.dto.js.map +1 -0
- package/backend/dist/src/sessions/sessions.controller.js.map +1 -0
- package/backend/dist/src/sessions/sessions.module.js.map +1 -0
- package/backend/dist/src/sessions/sessions.service.js.map +1 -0
- package/backend/dist/src/system-prompts/dto/system-prompt.dto.js.map +1 -0
- package/backend/dist/src/system-prompts/system-prompts.controller.js.map +1 -0
- package/backend/dist/src/system-prompts/system-prompts.module.js.map +1 -0
- package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -0
- package/backend/dist/{timeout.interceptor.js → src/timeout.interceptor.js} +1 -1
- package/backend/dist/src/timeout.interceptor.js.map +1 -0
- package/backend/dist/src/tracing.js.map +1 -0
- package/backend/dist/src/utils/fuzzy-search.js.map +1 -0
- package/backend/dist/src/utils/index.js.map +1 -0
- package/backend/dist/src/utils/trace.decorator.js.map +1 -0
- package/backend/dist/src/workspace/dto/file-tree.dto.d.ts +8 -0
- package/backend/dist/src/workspace/dto/file-tree.dto.js +10 -0
- package/backend/dist/src/workspace/dto/file-tree.dto.js.map +1 -0
- package/backend/dist/src/workspace/dto/search-workspace.dto.js.map +1 -0
- package/backend/dist/{workspace → src/workspace}/workspace.controller.d.ts +2 -5
- package/backend/dist/src/workspace/workspace.controller.js.map +1 -0
- package/backend/dist/src/workspace/workspace.module.js.map +1 -0
- package/backend/dist/{workspace → src/workspace}/workspace.service.d.ts +2 -6
- package/backend/dist/{workspace → src/workspace}/workspace.service.js +61 -12
- package/backend/dist/src/workspace/workspace.service.js.map +1 -0
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/packages/gemini-core/examples/simple.ts +120 -0
- package/backend/packages/gemini-core/index.ts +15 -0
- package/backend/packages/gemini-core/src/code_assist/codeAssist.ts +37 -0
- package/backend/packages/gemini-core/src/code_assist/converter.ts +250 -0
- package/backend/packages/gemini-core/src/code_assist/oauth-credential-storage.ts +129 -0
- package/backend/packages/gemini-core/src/code_assist/oauth2.ts +541 -0
- package/backend/packages/gemini-core/src/code_assist/server.ts +236 -0
- package/backend/packages/gemini-core/src/code_assist/setup.ts +124 -0
- package/backend/packages/gemini-core/src/code_assist/types.ts +201 -0
- package/backend/packages/gemini-core/src/config/config.ts +75 -0
- package/backend/packages/gemini-core/src/config/models.ts +23 -0
- package/backend/packages/gemini-core/src/config/storage.ts +30 -0
- package/backend/packages/gemini-core/src/core/contentGenerator.ts +136 -0
- package/backend/packages/gemini-core/src/core/geminiChat.ts +385 -0
- package/backend/packages/gemini-core/src/core/geminiRequest.ts +19 -0
- package/backend/packages/gemini-core/src/core/prompts.ts +109 -0
- package/backend/packages/gemini-core/src/core/tokenLimits.ts +32 -0
- package/backend/packages/gemini-core/src/index.ts +35 -0
- package/backend/packages/gemini-core/src/mcp/token-storage/base-token-storage.ts +49 -0
- package/backend/packages/gemini-core/src/mcp/token-storage/file-token-storage.ts +184 -0
- package/backend/packages/gemini-core/src/mcp/token-storage/hybrid-token-storage.ts +97 -0
- package/backend/packages/gemini-core/src/mcp/token-storage/index.ts +14 -0
- package/backend/packages/gemini-core/src/mcp/token-storage/keychain-token-storage.ts +251 -0
- package/backend/packages/gemini-core/src/mcp/token-storage/types.ts +42 -0
- package/backend/packages/gemini-core/src/utils/errors.ts +112 -0
- package/backend/packages/gemini-core/src/utils/partUtils.ts +169 -0
- package/backend/packages/gemini-core/src/utils/quotaErrorDetection.ts +102 -0
- package/backend/packages/gemini-core/src/utils/retry.ts +265 -0
- package/backend/packages/gemini-core/src/utils/session.ts +9 -0
- package/backend/packages/gemini-core/src/utils/userAccountManager.ts +140 -0
- package/package.json +5 -3
- package/backend/.repoburg/orchestrations/README.md +0 -41
- package/backend/dist/action-execution/action-execution.module.js.map +0 -1
- package/backend/dist/action-execution/action-execution.service.js.map +0 -1
- package/backend/dist/ai-actions/ai-action-batch.service.js.map +0 -1
- package/backend/dist/ai-actions/ai-action-creation.service.js.map +0 -1
- package/backend/dist/ai-actions/ai-actions.controller.js.map +0 -1
- package/backend/dist/ai-actions/ai-actions.module.js.map +0 -1
- package/backend/dist/ai-actions/ai-actions.service.js.map +0 -1
- package/backend/dist/app.controller.js.map +0 -1
- package/backend/dist/app.module.js.map +0 -1
- package/backend/dist/app.service.js.map +0 -1
- package/backend/dist/application-state/application-state.controller.js.map +0 -1
- package/backend/dist/application-state/application-state.module.js.map +0 -1
- package/backend/dist/application-state/application-state.service.js.map +0 -1
- package/backend/dist/application-state/dto/set-auto-context-fetch-enabled.dto.js.map +0 -1
- package/backend/dist/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.js.map +0 -1
- package/backend/dist/application-state/dto/set-context-token-limit.dto.js.map +0 -1
- package/backend/dist/application-state/dto/set-orchestration-timeout.dto.js.map +0 -1
- package/backend/dist/application-state/dto/set-theme.dto.js.map +0 -1
- package/backend/dist/application-state/dto/set-websocket-enabled.dto.js.map +0 -1
- package/backend/dist/context-generation/context-generation.module.js.map +0 -1
- package/backend/dist/context-generation/context-generation.service.js.map +0 -1
- package/backend/dist/context-snippets/context-snippets.controller.js.map +0 -1
- package/backend/dist/context-snippets/context-snippets.module.js.map +0 -1
- package/backend/dist/context-snippets/context-snippets.service.js.map +0 -1
- package/backend/dist/context-snippets/dto/context-snippet.dto.js.map +0 -1
- package/backend/dist/context-templates/context-templates.controller.js.map +0 -1
- package/backend/dist/context-templates/context-templates.module.js.map +0 -1
- package/backend/dist/context-templates/context-templates.service.js.map +0 -1
- package/backend/dist/context-templates/dto/context-template.dto.js.map +0 -1
- package/backend/dist/core-entities/ai-action.entity.js.map +0 -1
- package/backend/dist/core-entities/application-state.entity.js.map +0 -1
- package/backend/dist/core-entities/base.entity.js.map +0 -1
- package/backend/dist/core-entities/context-snippet.entity.js.map +0 -1
- package/backend/dist/core-entities/context-template.entity.js.map +0 -1
- package/backend/dist/core-entities/custom-snippet.entity.js.map +0 -1
- package/backend/dist/core-entities/execution-log.entity.js.map +0 -1
- package/backend/dist/core-entities/index.js.map +0 -1
- package/backend/dist/core-entities/project.entity.js.map +0 -1
- package/backend/dist/core-entities/session-input.entity.js.map +0 -1
- package/backend/dist/core-entities/session.entity.js.map +0 -1
- package/backend/dist/core-entities/system-prompt.entity.js.map +0 -1
- package/backend/dist/custom-snippets/custom-snippets.controller.js.map +0 -1
- package/backend/dist/custom-snippets/custom-snippets.module.js.map +0 -1
- package/backend/dist/custom-snippets/custom-snippets.service.js.map +0 -1
- package/backend/dist/custom-snippets/dto/custom-snippet.dto.js.map +0 -1
- package/backend/dist/events/events.gateway.js.map +0 -1
- package/backend/dist/events/events.module.js.map +0 -1
- package/backend/dist/execution-logs/dto/execution-log.dto.js.map +0 -1
- package/backend/dist/execution-logs/execution-logs.controller.js.map +0 -1
- package/backend/dist/execution-logs/execution-logs.module.js.map +0 -1
- package/backend/dist/execution-logs/execution-logs.service.js.map +0 -1
- package/backend/dist/http-exception.filter.js.map +0 -1
- package/backend/dist/llm-response-parser/dto/ai-action.dto.js.map +0 -1
- package/backend/dist/llm-response-parser/errors/parsing.error.js.map +0 -1
- package/backend/dist/llm-response-parser/llm-response-parser.module.js.map +0 -1
- package/backend/dist/llm-response-parser/llm-response-parser.service.js.map +0 -1
- package/backend/dist/llm-response-parser/parsing.constants.js.map +0 -1
- package/backend/dist/llm-responses/dto/submit-llm-response.dto.js.map +0 -1
- package/backend/dist/llm-responses/llm-responses.controller.js.map +0 -1
- package/backend/dist/llm-responses/llm-responses.module.js.map +0 -1
- package/backend/dist/llm-responses/llm-responses.service.js.map +0 -1
- package/backend/dist/main.js.map +0 -1
- package/backend/dist/orchestration/dto/orchestration.dto.js.map +0 -1
- package/backend/dist/orchestration/orchestration-fs.service.js.map +0 -1
- package/backend/dist/orchestration/orchestration-parser.service.js.map +0 -1
- package/backend/dist/orchestration/orchestration.controller.js.map +0 -1
- package/backend/dist/orchestration/orchestration.module.js.map +0 -1
- package/backend/dist/orchestration/orchestration.service.js.map +0 -1
- package/backend/dist/orchestration/orchestration.types.js.map +0 -1
- package/backend/dist/projects/dto/project.dto.js.map +0 -1
- package/backend/dist/projects/projects.controller.js.map +0 -1
- package/backend/dist/projects/projects.module.js.map +0 -1
- package/backend/dist/projects/projects.service.js.map +0 -1
- package/backend/dist/seeding/context-template-seeding.service.js.map +0 -1
- package/backend/dist/seeding/custom-snippet-seeding.service.js.map +0 -1
- package/backend/dist/seeding/data/context-templates/default-followup_ad-hoc-focused-context.js.map +0 -1
- package/backend/dist/seeding/data/context-templates/default-initial_condensed-project-context.js.map +0 -1
- package/backend/dist/seeding/data/context-templates/default-initial_full-project-context.js.map +0 -1
- package/backend/dist/seeding/data/context-templates/pm-context.js.map +0 -1
- package/backend/dist/seeding/data/context-templates/pr-description.js.map +0 -1
- package/backend/dist/seeding/data/context-templates/sample_focused-tree.d.ts +0 -2
- package/backend/dist/seeding/data/context-templates/sample_focused-tree.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/default_rglob.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/git-diff.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/rg-exclude.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/rg-search-glob.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/rg-search.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/run-command.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/tree.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/usr-adhoc-incl.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/usr-cmd-output-incl.js.map +0 -1
- package/backend/dist/seeding/data/custom-snippets/usr-input-incl.js.map +0 -1
- package/backend/dist/seeding/data/system-prompts/codebase-explorer.js.map +0 -1
- package/backend/dist/seeding/data/system-prompts/default_multi-file-action-generator-with-requester.js.map +0 -1
- package/backend/dist/seeding/data/system-prompts/packup.js.map +0 -1
- package/backend/dist/seeding/data/system-prompts/refactor-split.js.map +0 -1
- package/backend/dist/seeding/seeding.module.js.map +0 -1
- package/backend/dist/seeding/seeding.service.js.map +0 -1
- package/backend/dist/seeding/system-prompt-seeding.service.js.map +0 -1
- package/backend/dist/session-followup/session-followup.module.js.map +0 -1
- package/backend/dist/session-followup/session-followup.service.js.map +0 -1
- package/backend/dist/session-inputs/dto/session-input.dto.js.map +0 -1
- package/backend/dist/session-inputs/session-input-context.service.js.map +0 -1
- package/backend/dist/session-inputs/session-inputs.controller.js.map +0 -1
- package/backend/dist/session-inputs/session-inputs.module.js.map +0 -1
- package/backend/dist/session-inputs/session-inputs.service.js.map +0 -1
- package/backend/dist/session-transfer/session-transfer.module.js.map +0 -1
- package/backend/dist/session-transfer/session-transfer.service.js.map +0 -1
- package/backend/dist/sessions/dto/session.dto.js.map +0 -1
- package/backend/dist/sessions/sessions.controller.js.map +0 -1
- package/backend/dist/sessions/sessions.module.js.map +0 -1
- package/backend/dist/sessions/sessions.service.js.map +0 -1
- package/backend/dist/system-prompts/dto/system-prompt.dto.js.map +0 -1
- package/backend/dist/system-prompts/system-prompts.controller.js.map +0 -1
- package/backend/dist/system-prompts/system-prompts.module.js.map +0 -1
- package/backend/dist/system-prompts/system-prompts.service.js.map +0 -1
- package/backend/dist/timeout.interceptor.js.map +0 -1
- package/backend/dist/tracing.js.map +0 -1
- package/backend/dist/utils/fuzzy-search.js.map +0 -1
- package/backend/dist/utils/index.js.map +0 -1
- package/backend/dist/utils/trace.decorator.js.map +0 -1
- package/backend/dist/workspace/dto/search-workspace.dto.js.map +0 -1
- package/backend/dist/workspace/workspace.controller.js.map +0 -1
- package/backend/dist/workspace/workspace.module.js.map +0 -1
- package/backend/dist/workspace/workspace.service.js.map +0 -1
- /package/backend/dist/{action-execution → src/action-execution}/action-execution.module.d.ts +0 -0
- /package/backend/dist/{action-execution → src/action-execution}/action-execution.module.js +0 -0
- /package/backend/dist/{action-execution → src/action-execution}/action-execution.service.d.ts +0 -0
- /package/backend/dist/{action-execution → src/action-execution}/action-execution.service.js +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-action-batch.service.d.ts +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-action-batch.service.js +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-action-creation.service.d.ts +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-action-creation.service.js +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-actions.controller.d.ts +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-actions.controller.js +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-actions.module.d.ts +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-actions.module.js +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-actions.service.d.ts +0 -0
- /package/backend/dist/{ai-actions → src/ai-actions}/ai-actions.service.js +0 -0
- /package/backend/dist/{app.controller.d.ts → src/app.controller.d.ts} +0 -0
- /package/backend/dist/{app.controller.js → src/app.controller.js} +0 -0
- /package/backend/dist/{app.module.d.ts → src/app.module.d.ts} +0 -0
- /package/backend/dist/{app.module.js → src/app.module.js} +0 -0
- /package/backend/dist/{app.service.d.ts → src/app.service.d.ts} +0 -0
- /package/backend/dist/{app.service.js → src/app.service.js} +0 -0
- /package/backend/dist/{application-state → src/application-state}/application-state.controller.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/application-state.controller.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/application-state.module.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/application-state.module.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/application-state.service.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/application-state.service.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-auto-context-fetch-enabled.dto.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-auto-context-fetch-enabled.dto.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-auto-send-to-ai-studio-enabled.dto.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-auto-send-to-ai-studio-enabled.dto.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-context-token-limit.dto.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-context-token-limit.dto.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-orchestration-timeout.dto.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-orchestration-timeout.dto.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-theme.dto.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-theme.dto.js +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-websocket-enabled.dto.d.ts +0 -0
- /package/backend/dist/{application-state → src/application-state}/dto/set-websocket-enabled.dto.js +0 -0
- /package/backend/dist/{context-generation → src/context-generation}/context-generation.module.d.ts +0 -0
- /package/backend/dist/{context-generation → src/context-generation}/context-generation.module.js +0 -0
- /package/backend/dist/{context-generation → src/context-generation}/context-generation.service.d.ts +0 -0
- /package/backend/dist/{context-generation → src/context-generation}/context-generation.service.js +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/context-snippets.controller.d.ts +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/context-snippets.controller.js +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/context-snippets.module.d.ts +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/context-snippets.module.js +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/context-snippets.service.d.ts +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/context-snippets.service.js +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/dto/context-snippet.dto.d.ts +0 -0
- /package/backend/dist/{context-snippets → src/context-snippets}/dto/context-snippet.dto.js +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/context-templates.controller.d.ts +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/context-templates.controller.js +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/context-templates.module.d.ts +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/context-templates.module.js +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/context-templates.service.d.ts +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/context-templates.service.js +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/dto/context-template.dto.d.ts +0 -0
- /package/backend/dist/{context-templates → src/context-templates}/dto/context-template.dto.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/ai-action.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/ai-action.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/application-state.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/application-state.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/base.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/base.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/context-snippet.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/context-snippet.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/context-template.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/context-template.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/custom-snippet.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/custom-snippet.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/execution-log.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/execution-log.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/index.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/index.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/project.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/project.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/session-input.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/session-input.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/session.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/session.entity.js +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/system-prompt.entity.d.ts +0 -0
- /package/backend/dist/{core-entities → src/core-entities}/system-prompt.entity.js +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/custom-snippets.controller.d.ts +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/custom-snippets.controller.js +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/custom-snippets.module.d.ts +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/custom-snippets.module.js +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/custom-snippets.service.d.ts +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/custom-snippets.service.js +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/dto/custom-snippet.dto.d.ts +0 -0
- /package/backend/dist/{custom-snippets → src/custom-snippets}/dto/custom-snippet.dto.js +0 -0
- /package/backend/dist/{events → src/events}/events.gateway.d.ts +0 -0
- /package/backend/dist/{events → src/events}/events.gateway.js +0 -0
- /package/backend/dist/{events → src/events}/events.module.d.ts +0 -0
- /package/backend/dist/{events → src/events}/events.module.js +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/dto/execution-log.dto.d.ts +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/dto/execution-log.dto.js +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/execution-logs.controller.d.ts +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/execution-logs.controller.js +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/execution-logs.module.d.ts +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/execution-logs.module.js +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/execution-logs.service.d.ts +0 -0
- /package/backend/dist/{execution-logs → src/execution-logs}/execution-logs.service.js +0 -0
- /package/backend/dist/{http-exception.filter.d.ts → src/http-exception.filter.d.ts} +0 -0
- /package/backend/dist/{http-exception.filter.js → src/http-exception.filter.js} +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/dto/ai-action.dto.d.ts +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/dto/ai-action.dto.js +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/errors/parsing.error.d.ts +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/errors/parsing.error.js +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/llm-response-parser.module.d.ts +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/llm-response-parser.module.js +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/llm-response-parser.service.d.ts +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/llm-response-parser.service.js +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/parsing.constants.d.ts +0 -0
- /package/backend/dist/{llm-response-parser → src/llm-response-parser}/parsing.constants.js +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/dto/submit-llm-response.dto.d.ts +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/dto/submit-llm-response.dto.js +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/llm-responses.controller.d.ts +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/llm-responses.controller.js +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/llm-responses.module.d.ts +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/llm-responses.module.js +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/llm-responses.service.d.ts +0 -0
- /package/backend/dist/{llm-responses → src/llm-responses}/llm-responses.service.js +0 -0
- /package/backend/dist/{main.d.ts → src/main.d.ts} +0 -0
- /package/backend/dist/{main.js → src/main.js} +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/dto/orchestration.dto.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/dto/orchestration.dto.js +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration-fs.service.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration-fs.service.js +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration-parser.service.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration-parser.service.js +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.controller.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.controller.js +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.module.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.module.js +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.service.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.service.js +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.types.d.ts +0 -0
- /package/backend/dist/{orchestration → src/orchestration}/orchestration.types.js +0 -0
- /package/backend/dist/{projects → src/projects}/dto/project.dto.d.ts +0 -0
- /package/backend/dist/{projects → src/projects}/dto/project.dto.js +0 -0
- /package/backend/dist/{projects → src/projects}/projects.controller.d.ts +0 -0
- /package/backend/dist/{projects → src/projects}/projects.controller.js +0 -0
- /package/backend/dist/{projects → src/projects}/projects.module.d.ts +0 -0
- /package/backend/dist/{projects → src/projects}/projects.module.js +0 -0
- /package/backend/dist/{projects → src/projects}/projects.service.d.ts +0 -0
- /package/backend/dist/{projects → src/projects}/projects.service.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/context-template-seeding.service.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/context-template-seeding.service.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/custom-snippet-seeding.service.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/custom-snippet-seeding.service.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/default-followup_ad-hoc-focused-context.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/default-followup_ad-hoc-focused-context.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/default-initial_condensed-project-context.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/default-initial_condensed-project-context.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/default-initial_full-project-context.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/default-initial_full-project-context.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/pm-context.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/pm-context.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/pr-description.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/context-templates/pr-description.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/default_rglob.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/default_rglob.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/git-diff.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/git-diff.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/rg-exclude.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/rg-exclude.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/rg-search-glob.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/rg-search-glob.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/rg-search.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/rg-search.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/run-command.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/run-command.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/tree.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/tree.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/usr-adhoc-incl.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/usr-adhoc-incl.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/usr-cmd-output-incl.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/usr-cmd-output-incl.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/usr-input-incl.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/custom-snippets/usr-input-incl.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/codebase-explorer.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/codebase-explorer.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/default_multi-file-action-generator-with-requester.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/default_multi-file-action-generator-with-requester.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/packup.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/packup.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/refactor-split.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/data/system-prompts/refactor-split.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/seeding.module.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/seeding.module.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/seeding.service.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/seeding.service.js +0 -0
- /package/backend/dist/{seeding → src/seeding}/system-prompt-seeding.service.d.ts +0 -0
- /package/backend/dist/{seeding → src/seeding}/system-prompt-seeding.service.js +0 -0
- /package/backend/dist/{session-followup → src/session-followup}/session-followup.module.d.ts +0 -0
- /package/backend/dist/{session-followup → src/session-followup}/session-followup.module.js +0 -0
- /package/backend/dist/{session-followup → src/session-followup}/session-followup.service.d.ts +0 -0
- /package/backend/dist/{session-followup → src/session-followup}/session-followup.service.js +0 -0
- /package/backend/dist/{session-inputs → src/session-inputs}/dto/session-input.dto.d.ts +0 -0
- /package/backend/dist/{session-inputs → src/session-inputs}/dto/session-input.dto.js +0 -0
- /package/backend/dist/{session-inputs → src/session-inputs}/session-inputs.controller.d.ts +0 -0
- /package/backend/dist/{session-inputs → src/session-inputs}/session-inputs.controller.js +0 -0
- /package/backend/dist/{session-inputs → src/session-inputs}/session-inputs.module.d.ts +0 -0
- /package/backend/dist/{session-transfer → src/session-transfer}/session-transfer.module.d.ts +0 -0
- /package/backend/dist/{session-transfer → src/session-transfer}/session-transfer.module.js +0 -0
- /package/backend/dist/{session-transfer → src/session-transfer}/session-transfer.service.d.ts +0 -0
- /package/backend/dist/{session-transfer → src/session-transfer}/session-transfer.service.js +0 -0
- /package/backend/dist/{sessions → src/sessions}/dto/session.dto.d.ts +0 -0
- /package/backend/dist/{sessions → src/sessions}/dto/session.dto.js +0 -0
- /package/backend/dist/{sessions → src/sessions}/sessions.controller.d.ts +0 -0
- /package/backend/dist/{sessions → src/sessions}/sessions.controller.js +0 -0
- /package/backend/dist/{sessions → src/sessions}/sessions.module.d.ts +0 -0
- /package/backend/dist/{sessions → src/sessions}/sessions.module.js +0 -0
- /package/backend/dist/{sessions → src/sessions}/sessions.service.d.ts +0 -0
- /package/backend/dist/{sessions → src/sessions}/sessions.service.js +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/dto/system-prompt.dto.d.ts +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/dto/system-prompt.dto.js +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/system-prompts.controller.d.ts +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/system-prompts.controller.js +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/system-prompts.module.d.ts +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/system-prompts.module.js +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/system-prompts.service.d.ts +0 -0
- /package/backend/dist/{system-prompts → src/system-prompts}/system-prompts.service.js +0 -0
- /package/backend/dist/{timeout.interceptor.d.ts → src/timeout.interceptor.d.ts} +0 -0
- /package/backend/dist/{tracing.d.ts → src/tracing.d.ts} +0 -0
- /package/backend/dist/{tracing.js → src/tracing.js} +0 -0
- /package/backend/dist/{utils → src/utils}/fuzzy-search.d.ts +0 -0
- /package/backend/dist/{utils → src/utils}/fuzzy-search.js +0 -0
- /package/backend/dist/{utils → src/utils}/index.d.ts +0 -0
- /package/backend/dist/{utils → src/utils}/index.js +0 -0
- /package/backend/dist/{utils → src/utils}/trace.decorator.d.ts +0 -0
- /package/backend/dist/{utils → src/utils}/trace.decorator.js +0 -0
- /package/backend/dist/{workspace → src/workspace}/dto/search-workspace.dto.d.ts +0 -0
- /package/backend/dist/{workspace → src/workspace}/dto/search-workspace.dto.js +0 -0
- /package/backend/dist/{workspace → src/workspace}/workspace.controller.js +0 -0
- /package/backend/dist/{workspace → src/workspace}/workspace.module.d.ts +0 -0
- /package/backend/dist/{workspace → src/workspace}/workspace.module.js +0 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOauthClient = getOauthClient;
|
|
4
|
+
exports.getAvailablePort = getAvailablePort;
|
|
5
|
+
exports.clearOauthClientCache = clearOauthClientCache;
|
|
6
|
+
exports.clearCachedCredentialFile = clearCachedCredentialFile;
|
|
7
|
+
exports.resetOauthClientForTesting = resetOauthClientForTesting;
|
|
8
|
+
const google_auth_library_1 = require("google-auth-library");
|
|
9
|
+
const http = require("node:http");
|
|
10
|
+
const node_url_1 = require("node:url");
|
|
11
|
+
const crypto = require("node:crypto");
|
|
12
|
+
const net = require("node:net");
|
|
13
|
+
const path = require("node:path");
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const errors_1 = require("../utils/errors");
|
|
16
|
+
const userAccountManager_1 = require("../utils/userAccountManager");
|
|
17
|
+
const contentGenerator_1 = require("../core/contentGenerator");
|
|
18
|
+
const node_readline_1 = require("node:readline");
|
|
19
|
+
const storage_1 = require("../config/storage");
|
|
20
|
+
const oauth_credential_storage_1 = require("./oauth-credential-storage");
|
|
21
|
+
const index_1 = require("../mcp/token-storage/index");
|
|
22
|
+
const userAccountManager = new userAccountManager_1.UserAccountManager();
|
|
23
|
+
const OAUTH_CLIENT_ID = '681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com';
|
|
24
|
+
const OAUTH_CLIENT_SECRET = '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';
|
|
25
|
+
const OAUTH_SCOPE = [
|
|
26
|
+
'https://www.googleapis.com/auth/cloud-platform',
|
|
27
|
+
'https://www.googleapis.com/auth/userinfo.email',
|
|
28
|
+
'https://www.googleapis.com/auth/userinfo.profile',
|
|
29
|
+
];
|
|
30
|
+
const HTTP_REDIRECT = 301;
|
|
31
|
+
const SIGN_IN_SUCCESS_URL = 'https://developers.google.com/gemini-code-assist/auth_success_gemini';
|
|
32
|
+
const SIGN_IN_FAILURE_URL = 'https://developers.google.com/gemini-code-assist/auth_failure_gemini';
|
|
33
|
+
const oauthClientPromises = new Map();
|
|
34
|
+
function getUseEncryptedStorageFlag() {
|
|
35
|
+
return process.env[index_1.FORCE_ENCRYPTED_FILE_ENV_VAR] === 'true';
|
|
36
|
+
}
|
|
37
|
+
async function initOauthClient(authType, config) {
|
|
38
|
+
const client = new google_auth_library_1.OAuth2Client({
|
|
39
|
+
clientId: OAUTH_CLIENT_ID,
|
|
40
|
+
clientSecret: OAUTH_CLIENT_SECRET,
|
|
41
|
+
});
|
|
42
|
+
const useEncryptedStorage = getUseEncryptedStorageFlag();
|
|
43
|
+
if (process.env['GOOGLE_GENAI_USE_GCA'] &&
|
|
44
|
+
process.env['GOOGLE_CLOUD_ACCESS_TOKEN']) {
|
|
45
|
+
client.setCredentials({
|
|
46
|
+
access_token: process.env['GOOGLE_CLOUD_ACCESS_TOKEN'],
|
|
47
|
+
});
|
|
48
|
+
await fetchAndCacheUserInfo(client);
|
|
49
|
+
return client;
|
|
50
|
+
}
|
|
51
|
+
client.on('tokens', async (tokens) => {
|
|
52
|
+
if (useEncryptedStorage) {
|
|
53
|
+
await oauth_credential_storage_1.OAuthCredentialStorage.saveCredentials(tokens);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
await cacheCredentials(tokens);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
if (await loadCachedCredentials(client)) {
|
|
60
|
+
if (!userAccountManager.getCachedGoogleAccount()) {
|
|
61
|
+
try {
|
|
62
|
+
await fetchAndCacheUserInfo(client);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.warn('Failed to fetch user info:', (0, errors_1.getErrorMessage)(error));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
console.log('Loaded cached credentials.');
|
|
69
|
+
return client;
|
|
70
|
+
}
|
|
71
|
+
if (authType === contentGenerator_1.AuthType.CLOUD_SHELL) {
|
|
72
|
+
try {
|
|
73
|
+
console.log("Attempting to authenticate via Cloud Shell VM's ADC.");
|
|
74
|
+
const computeClient = new google_auth_library_1.Compute({});
|
|
75
|
+
await computeClient.getAccessToken();
|
|
76
|
+
console.log('Authentication successful.');
|
|
77
|
+
return computeClient;
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
throw new Error(`Could not authenticate using Cloud Shell credentials. Please select a different authentication method or ensure you are in a properly configured environment. Error: ${(0, errors_1.getErrorMessage)(e)}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (config.isBrowserLaunchSuppressed()) {
|
|
84
|
+
let success = false;
|
|
85
|
+
const maxRetries = 2;
|
|
86
|
+
for (let i = 0; !success && i < maxRetries; i++) {
|
|
87
|
+
success = await authWithUserCode(client);
|
|
88
|
+
if (!success) {
|
|
89
|
+
console.error('\nFailed to authenticate with user code.', i === maxRetries - 1 ? '' : 'Retrying...\n');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (!success) {
|
|
93
|
+
throw new errors_1.FatalAuthenticationError('Failed to authenticate with user code.');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const webLogin = await authWithWeb(client);
|
|
98
|
+
console.log(`\n\nCode Assist login required.\n` +
|
|
99
|
+
`Attempting to open authentication page in your browser.\n` +
|
|
100
|
+
`Otherwise navigate to:\n\n${webLogin.authUrl}\n\n`);
|
|
101
|
+
try {
|
|
102
|
+
const { default: open } = await Promise.resolve().then(() => require('open'));
|
|
103
|
+
const childProcess = await open(webLogin.authUrl);
|
|
104
|
+
childProcess.on('error', (error) => {
|
|
105
|
+
console.error('Failed to open browser automatically. Please try running again with NO_BROWSER=true set.');
|
|
106
|
+
console.error('Browser error details:', (0, errors_1.getErrorMessage)(error));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
console.error('An unexpected error occurred while trying to open the browser:', (0, errors_1.getErrorMessage)(err), '\nThis might be due to browser compatibility issues or system configuration.', '\nPlease try running again with NO_BROWSER=true set for manual authentication.');
|
|
111
|
+
throw new errors_1.FatalAuthenticationError(`Failed to open browser: ${(0, errors_1.getErrorMessage)(err)}`);
|
|
112
|
+
}
|
|
113
|
+
console.log('Waiting for authentication...');
|
|
114
|
+
const authTimeout = 5 * 60 * 1000;
|
|
115
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
116
|
+
setTimeout(() => {
|
|
117
|
+
reject(new errors_1.FatalAuthenticationError('Authentication timed out after 5 minutes. The browser tab may have gotten stuck in a loading state. ' +
|
|
118
|
+
'Please try again or use NO_BROWSER=true for manual authentication.'));
|
|
119
|
+
}, authTimeout);
|
|
120
|
+
});
|
|
121
|
+
await Promise.race([webLogin.loginCompletePromise, timeoutPromise]);
|
|
122
|
+
}
|
|
123
|
+
return client;
|
|
124
|
+
}
|
|
125
|
+
async function getOauthClient(authType, config) {
|
|
126
|
+
if (!oauthClientPromises.has(authType)) {
|
|
127
|
+
oauthClientPromises.set(authType, initOauthClient(authType, config));
|
|
128
|
+
}
|
|
129
|
+
return oauthClientPromises.get(authType);
|
|
130
|
+
}
|
|
131
|
+
async function authWithUserCode(client) {
|
|
132
|
+
const redirectUri = 'https://codeassist.google.com/authcode';
|
|
133
|
+
const codeVerifier = await client.generateCodeVerifierAsync();
|
|
134
|
+
const state = crypto.randomBytes(32).toString('hex');
|
|
135
|
+
const authUrl = client.generateAuthUrl({
|
|
136
|
+
redirect_uri: redirectUri,
|
|
137
|
+
access_type: 'offline',
|
|
138
|
+
scope: OAUTH_SCOPE,
|
|
139
|
+
code_challenge_method: google_auth_library_1.CodeChallengeMethod.S256,
|
|
140
|
+
code_challenge: codeVerifier.codeChallenge,
|
|
141
|
+
state,
|
|
142
|
+
});
|
|
143
|
+
console.log('Please visit the following URL to authorize the application:');
|
|
144
|
+
console.log('');
|
|
145
|
+
console.log(authUrl);
|
|
146
|
+
console.log('');
|
|
147
|
+
const code = await new Promise((resolve) => {
|
|
148
|
+
const rl = node_readline_1.default.createInterface({
|
|
149
|
+
input: process.stdin,
|
|
150
|
+
output: process.stdout,
|
|
151
|
+
});
|
|
152
|
+
rl.question('Enter the authorization code: ', (code) => {
|
|
153
|
+
rl.close();
|
|
154
|
+
resolve(code.trim());
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
if (!code) {
|
|
158
|
+
console.error('Authorization code is required.');
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
try {
|
|
162
|
+
const { tokens } = await client.getToken({
|
|
163
|
+
code,
|
|
164
|
+
codeVerifier: codeVerifier.codeVerifier,
|
|
165
|
+
redirect_uri: redirectUri,
|
|
166
|
+
});
|
|
167
|
+
client.setCredentials(tokens);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
console.error('Failed to authenticate with authorization code:', (0, errors_1.getErrorMessage)(error));
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
async function authWithWeb(client) {
|
|
176
|
+
const port = await getAvailablePort();
|
|
177
|
+
const host = process.env['OAUTH_CALLBACK_HOST'] || 'localhost';
|
|
178
|
+
const redirectUri = `http://localhost:${port}/oauth2callback`;
|
|
179
|
+
const state = crypto.randomBytes(32).toString('hex');
|
|
180
|
+
const authUrl = client.generateAuthUrl({
|
|
181
|
+
redirect_uri: redirectUri,
|
|
182
|
+
access_type: 'offline',
|
|
183
|
+
scope: OAUTH_SCOPE,
|
|
184
|
+
state,
|
|
185
|
+
});
|
|
186
|
+
const loginCompletePromise = new Promise((resolve, reject) => {
|
|
187
|
+
const server = http.createServer(async (req, res) => {
|
|
188
|
+
try {
|
|
189
|
+
if (req.url.indexOf('/oauth2callback') === -1) {
|
|
190
|
+
res.writeHead(HTTP_REDIRECT, { Location: SIGN_IN_FAILURE_URL });
|
|
191
|
+
res.end();
|
|
192
|
+
reject(new errors_1.FatalAuthenticationError('OAuth callback not received. Unexpected request: ' + req.url));
|
|
193
|
+
}
|
|
194
|
+
const qs = new node_url_1.default.URL(req.url, 'http://localhost:3000').searchParams;
|
|
195
|
+
if (qs.get('error')) {
|
|
196
|
+
res.writeHead(HTTP_REDIRECT, { Location: SIGN_IN_FAILURE_URL });
|
|
197
|
+
res.end();
|
|
198
|
+
const errorCode = qs.get('error');
|
|
199
|
+
const errorDescription = qs.get('error_description') || 'No additional details provided';
|
|
200
|
+
reject(new errors_1.FatalAuthenticationError(`Google OAuth error: ${errorCode}. ${errorDescription}`));
|
|
201
|
+
}
|
|
202
|
+
else if (qs.get('state') !== state) {
|
|
203
|
+
res.end('State mismatch. Possible CSRF attack');
|
|
204
|
+
reject(new errors_1.FatalAuthenticationError('OAuth state mismatch. Possible CSRF attack or browser session issue.'));
|
|
205
|
+
}
|
|
206
|
+
else if (qs.get('code')) {
|
|
207
|
+
try {
|
|
208
|
+
const { tokens } = await client.getToken({
|
|
209
|
+
code: qs.get('code'),
|
|
210
|
+
redirect_uri: redirectUri,
|
|
211
|
+
});
|
|
212
|
+
client.setCredentials(tokens);
|
|
213
|
+
try {
|
|
214
|
+
await fetchAndCacheUserInfo(client);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
console.warn('Failed to retrieve Google Account ID during authentication:', (0, errors_1.getErrorMessage)(error));
|
|
218
|
+
}
|
|
219
|
+
res.writeHead(HTTP_REDIRECT, { Location: SIGN_IN_SUCCESS_URL });
|
|
220
|
+
res.end();
|
|
221
|
+
resolve();
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
res.writeHead(HTTP_REDIRECT, { Location: SIGN_IN_FAILURE_URL });
|
|
225
|
+
res.end();
|
|
226
|
+
reject(new errors_1.FatalAuthenticationError(`Failed to exchange authorization code for tokens: ${(0, errors_1.getErrorMessage)(error)}`));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
reject(new errors_1.FatalAuthenticationError('No authorization code received from Google OAuth. Please try authenticating again.'));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (e) {
|
|
234
|
+
if (e instanceof errors_1.FatalAuthenticationError) {
|
|
235
|
+
reject(e);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
reject(new errors_1.FatalAuthenticationError(`Unexpected error during OAuth authentication: ${(0, errors_1.getErrorMessage)(e)}`));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
server.close();
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
server.listen(port, host, () => {
|
|
246
|
+
});
|
|
247
|
+
server.on('error', (err) => {
|
|
248
|
+
reject(new errors_1.FatalAuthenticationError(`OAuth callback server error: ${(0, errors_1.getErrorMessage)(err)}`));
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
return {
|
|
252
|
+
authUrl,
|
|
253
|
+
loginCompletePromise,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function getAvailablePort() {
|
|
257
|
+
return new Promise((resolve, reject) => {
|
|
258
|
+
let port = 0;
|
|
259
|
+
try {
|
|
260
|
+
const portStr = process.env['OAUTH_CALLBACK_PORT'];
|
|
261
|
+
if (portStr) {
|
|
262
|
+
port = parseInt(portStr, 10);
|
|
263
|
+
if (isNaN(port) || port <= 0 || port > 65535) {
|
|
264
|
+
return reject(new Error(`Invalid value for OAUTH_CALLBACK_PORT: "${portStr}"`));
|
|
265
|
+
}
|
|
266
|
+
return resolve(port);
|
|
267
|
+
}
|
|
268
|
+
const server = net.createServer();
|
|
269
|
+
server.listen(0, () => {
|
|
270
|
+
const address = server.address();
|
|
271
|
+
port = address.port;
|
|
272
|
+
});
|
|
273
|
+
server.on('listening', () => {
|
|
274
|
+
server.close();
|
|
275
|
+
server.unref();
|
|
276
|
+
});
|
|
277
|
+
server.on('error', (e) => reject(e));
|
|
278
|
+
server.on('close', () => resolve(port));
|
|
279
|
+
}
|
|
280
|
+
catch (e) {
|
|
281
|
+
reject(e);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
async function loadCachedCredentials(client) {
|
|
286
|
+
const useEncryptedStorage = getUseEncryptedStorageFlag();
|
|
287
|
+
if (useEncryptedStorage) {
|
|
288
|
+
const credentials = await oauth_credential_storage_1.OAuthCredentialStorage.loadCredentials();
|
|
289
|
+
if (credentials) {
|
|
290
|
+
client.setCredentials(credentials);
|
|
291
|
+
return true;
|
|
292
|
+
}
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
const pathsToTry = [
|
|
296
|
+
storage_1.Storage.getOAuthCredsPath(),
|
|
297
|
+
process.env['GOOGLE_APPLICATION_CREDENTIALS'],
|
|
298
|
+
].filter((p) => !!p);
|
|
299
|
+
for (const keyFile of pathsToTry) {
|
|
300
|
+
try {
|
|
301
|
+
const creds = await node_fs_1.promises.readFile(keyFile, 'utf-8');
|
|
302
|
+
client.setCredentials(JSON.parse(creds));
|
|
303
|
+
const { token } = await client.getAccessToken();
|
|
304
|
+
if (!token) {
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
await client.getTokenInfo(token);
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
console.debug(`Failed to load credentials from ${keyFile}:`, (0, errors_1.getErrorMessage)(error));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
async function cacheCredentials(credentials) {
|
|
317
|
+
const filePath = storage_1.Storage.getOAuthCredsPath();
|
|
318
|
+
await node_fs_1.promises.mkdir(path.dirname(filePath), { recursive: true });
|
|
319
|
+
const credString = JSON.stringify(credentials, null, 2);
|
|
320
|
+
await node_fs_1.promises.writeFile(filePath, credString, { mode: 0o600 });
|
|
321
|
+
try {
|
|
322
|
+
await node_fs_1.promises.chmod(filePath, 0o600);
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
function clearOauthClientCache() {
|
|
328
|
+
oauthClientPromises.clear();
|
|
329
|
+
}
|
|
330
|
+
async function clearCachedCredentialFile() {
|
|
331
|
+
try {
|
|
332
|
+
const useEncryptedStorage = getUseEncryptedStorageFlag();
|
|
333
|
+
if (useEncryptedStorage) {
|
|
334
|
+
await oauth_credential_storage_1.OAuthCredentialStorage.clearCredentials();
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
await node_fs_1.promises.rm(storage_1.Storage.getOAuthCredsPath(), { force: true });
|
|
338
|
+
}
|
|
339
|
+
await userAccountManager.clearCachedGoogleAccount();
|
|
340
|
+
clearOauthClientCache();
|
|
341
|
+
}
|
|
342
|
+
catch (e) {
|
|
343
|
+
console.error('Failed to clear cached credentials:', e);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
async function fetchAndCacheUserInfo(client) {
|
|
347
|
+
try {
|
|
348
|
+
const { token } = await client.getAccessToken();
|
|
349
|
+
if (!token) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
const response = await fetch('https://www.googleapis.com/oauth2/v2/userinfo', {
|
|
353
|
+
headers: {
|
|
354
|
+
Authorization: `Bearer ${token}`,
|
|
355
|
+
},
|
|
356
|
+
});
|
|
357
|
+
if (!response.ok) {
|
|
358
|
+
console.error('Failed to fetch user info:', response.status, response.statusText);
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
const userInfo = await response.json();
|
|
362
|
+
await userAccountManager.cacheGoogleAccount(userInfo.email);
|
|
363
|
+
}
|
|
364
|
+
catch (error) {
|
|
365
|
+
console.error('Error retrieving user info:', error);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
function resetOauthClientForTesting() {
|
|
369
|
+
oauthClientPromises.clear();
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=oauth2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../../../packages/gemini-core/src/code_assist/oauth2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { OAuth2Client } from 'google-auth-library';
|
|
2
|
+
import type { LoadCodeAssistRequest, LoadCodeAssistResponse, LongRunningOperationResponse, OnboardUserRequest } from './types';
|
|
3
|
+
import type { CountTokensParameters, CountTokensResponse, EmbedContentParameters, EmbedContentResponse, GenerateContentParameters, GenerateContentResponse } from '@google/genai';
|
|
4
|
+
import type { ContentGenerator } from '../core/contentGenerator';
|
|
5
|
+
import { UserTierId } from './types';
|
|
6
|
+
export interface HttpOptions {
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare const CODE_ASSIST_ENDPOINT = "https://cloudcode-pa.googleapis.com";
|
|
10
|
+
export declare const CODE_ASSIST_API_VERSION = "v1internal";
|
|
11
|
+
export declare class CodeAssistServer implements ContentGenerator {
|
|
12
|
+
readonly client: OAuth2Client;
|
|
13
|
+
readonly projectId?: string;
|
|
14
|
+
readonly httpOptions: HttpOptions;
|
|
15
|
+
readonly sessionId?: string;
|
|
16
|
+
readonly userTier?: UserTierId;
|
|
17
|
+
constructor(client: OAuth2Client, projectId?: string, httpOptions?: HttpOptions, sessionId?: string, userTier?: UserTierId);
|
|
18
|
+
generateContentStream(req: GenerateContentParameters, userPromptId: string): Promise<AsyncGenerator<GenerateContentResponse>>;
|
|
19
|
+
generateContent(req: GenerateContentParameters, userPromptId: string): Promise<GenerateContentResponse>;
|
|
20
|
+
onboardUser(req: OnboardUserRequest): Promise<LongRunningOperationResponse>;
|
|
21
|
+
loadCodeAssist(req: LoadCodeAssistRequest): Promise<LoadCodeAssistResponse>;
|
|
22
|
+
countTokens(req: CountTokensParameters): Promise<CountTokensResponse>;
|
|
23
|
+
embedContent(_req: EmbedContentParameters): Promise<EmbedContentResponse>;
|
|
24
|
+
requestPost<T>(method: string, req: object, signal?: AbortSignal): Promise<T>;
|
|
25
|
+
requestGet<T>(method: string, signal?: AbortSignal): Promise<T>;
|
|
26
|
+
requestStreamingPost<T>(method: string, req: object, signal?: AbortSignal): Promise<AsyncGenerator<T>>;
|
|
27
|
+
getMethodUrl(method: string): string;
|
|
28
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodeAssistServer = exports.CODE_ASSIST_API_VERSION = exports.CODE_ASSIST_ENDPOINT = void 0;
|
|
4
|
+
const readline = require("node:readline");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const converter_1 = require("./converter");
|
|
7
|
+
exports.CODE_ASSIST_ENDPOINT = 'https://cloudcode-pa.googleapis.com';
|
|
8
|
+
exports.CODE_ASSIST_API_VERSION = 'v1internal';
|
|
9
|
+
class CodeAssistServer {
|
|
10
|
+
constructor(client, projectId, httpOptions = {}, sessionId, userTier) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
this.projectId = projectId;
|
|
13
|
+
this.httpOptions = httpOptions;
|
|
14
|
+
this.sessionId = sessionId;
|
|
15
|
+
this.userTier = userTier;
|
|
16
|
+
}
|
|
17
|
+
async generateContentStream(req, userPromptId) {
|
|
18
|
+
const resps = await this.requestStreamingPost('streamGenerateContent', (0, converter_1.toGenerateContentRequest)(req, userPromptId, this.projectId, this.sessionId), req.config?.abortSignal);
|
|
19
|
+
return (async function* () {
|
|
20
|
+
for await (const resp of resps) {
|
|
21
|
+
yield (0, converter_1.fromGenerateContentResponse)(resp);
|
|
22
|
+
}
|
|
23
|
+
})();
|
|
24
|
+
}
|
|
25
|
+
async generateContent(req, userPromptId) {
|
|
26
|
+
const resp = await this.requestPost('generateContent', (0, converter_1.toGenerateContentRequest)(req, userPromptId, this.projectId, this.sessionId), req.config?.abortSignal);
|
|
27
|
+
return (0, converter_1.fromGenerateContentResponse)(resp);
|
|
28
|
+
}
|
|
29
|
+
async onboardUser(req) {
|
|
30
|
+
return await this.requestPost('onboardUser', req);
|
|
31
|
+
}
|
|
32
|
+
async loadCodeAssist(req) {
|
|
33
|
+
try {
|
|
34
|
+
return await this.requestPost('loadCodeAssist', req);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
if (isVpcScAffectedUser(e)) {
|
|
38
|
+
return {
|
|
39
|
+
currentTier: { id: types_1.UserTierId.STANDARD },
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw e;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async countTokens(req) {
|
|
48
|
+
const resp = await this.requestPost('countTokens', (0, converter_1.toCountTokenRequest)(req));
|
|
49
|
+
return (0, converter_1.fromCountTokenResponse)(resp);
|
|
50
|
+
}
|
|
51
|
+
async embedContent(_req) {
|
|
52
|
+
throw Error();
|
|
53
|
+
}
|
|
54
|
+
async requestPost(method, req, signal) {
|
|
55
|
+
const res = await this.client.request({
|
|
56
|
+
url: this.getMethodUrl(method),
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers: {
|
|
59
|
+
'Content-Type': 'application/json',
|
|
60
|
+
...this.httpOptions.headers,
|
|
61
|
+
},
|
|
62
|
+
responseType: 'json',
|
|
63
|
+
body: JSON.stringify(req),
|
|
64
|
+
signal,
|
|
65
|
+
});
|
|
66
|
+
return res.data;
|
|
67
|
+
}
|
|
68
|
+
async requestGet(method, signal) {
|
|
69
|
+
const res = await this.client.request({
|
|
70
|
+
url: this.getMethodUrl(method),
|
|
71
|
+
method: 'GET',
|
|
72
|
+
headers: {
|
|
73
|
+
'Content-Type': 'application/json',
|
|
74
|
+
...this.httpOptions.headers,
|
|
75
|
+
},
|
|
76
|
+
responseType: 'json',
|
|
77
|
+
signal,
|
|
78
|
+
});
|
|
79
|
+
return res.data;
|
|
80
|
+
}
|
|
81
|
+
async requestStreamingPost(method, req, signal) {
|
|
82
|
+
const res = await this.client.request({
|
|
83
|
+
url: this.getMethodUrl(method),
|
|
84
|
+
method: 'POST',
|
|
85
|
+
params: {
|
|
86
|
+
alt: 'sse',
|
|
87
|
+
},
|
|
88
|
+
headers: {
|
|
89
|
+
'Content-Type': 'application/json',
|
|
90
|
+
...this.httpOptions.headers,
|
|
91
|
+
},
|
|
92
|
+
responseType: 'stream',
|
|
93
|
+
body: JSON.stringify(req),
|
|
94
|
+
signal,
|
|
95
|
+
});
|
|
96
|
+
return (async function* () {
|
|
97
|
+
const rl = readline.createInterface({
|
|
98
|
+
input: res.data,
|
|
99
|
+
crlfDelay: Infinity,
|
|
100
|
+
});
|
|
101
|
+
let bufferedLines = [];
|
|
102
|
+
for await (const line of rl) {
|
|
103
|
+
if (line === '') {
|
|
104
|
+
if (bufferedLines.length === 0) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
yield JSON.parse(bufferedLines.join('\n'));
|
|
108
|
+
bufferedLines = [];
|
|
109
|
+
}
|
|
110
|
+
else if (line.startsWith('data: ')) {
|
|
111
|
+
bufferedLines.push(line.slice(6).trim());
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
throw new Error(`Unexpected line format in response: ${line}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
})();
|
|
118
|
+
}
|
|
119
|
+
getMethodUrl(method) {
|
|
120
|
+
const endpoint = process.env['CODE_ASSIST_ENDPOINT'] ?? exports.CODE_ASSIST_ENDPOINT;
|
|
121
|
+
return `${endpoint}/${exports.CODE_ASSIST_API_VERSION}:${method}`;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.CodeAssistServer = CodeAssistServer;
|
|
125
|
+
function isVpcScAffectedUser(error) {
|
|
126
|
+
if (error && typeof error === 'object' && 'response' in error) {
|
|
127
|
+
const gaxiosError = error;
|
|
128
|
+
const response = gaxiosError.response?.data;
|
|
129
|
+
if (Array.isArray(response?.error?.details)) {
|
|
130
|
+
return response.error.details.some((detail) => detail.reason === 'SECURITY_POLICY_VIOLATED');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../packages/gemini-core/src/code_assist/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UserTierId } from './types';
|
|
2
|
+
import type { OAuth2Client } from 'google-auth-library';
|
|
3
|
+
export declare class ProjectIdRequiredError extends Error {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export interface UserData {
|
|
7
|
+
projectId: string;
|
|
8
|
+
userTier: UserTierId;
|
|
9
|
+
}
|
|
10
|
+
export declare function setupUser(client: OAuth2Client): Promise<UserData>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectIdRequiredError = void 0;
|
|
4
|
+
exports.setupUser = setupUser;
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const server_1 = require("./server");
|
|
7
|
+
class ProjectIdRequiredError extends Error {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('This account requires setting the GOOGLE_CLOUD_PROJECT env var. See https://goo.gle/gemini-cli-auth-docs#workspace-gca');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ProjectIdRequiredError = ProjectIdRequiredError;
|
|
13
|
+
async function setupUser(client) {
|
|
14
|
+
const projectId = process.env['GOOGLE_CLOUD_PROJECT'] || undefined;
|
|
15
|
+
const caServer = new server_1.CodeAssistServer(client, projectId, {}, '', undefined);
|
|
16
|
+
const coreClientMetadata = {
|
|
17
|
+
ideType: 'IDE_UNSPECIFIED',
|
|
18
|
+
platform: 'PLATFORM_UNSPECIFIED',
|
|
19
|
+
pluginType: 'GEMINI',
|
|
20
|
+
};
|
|
21
|
+
const loadRes = await caServer.loadCodeAssist({
|
|
22
|
+
cloudaicompanionProject: projectId,
|
|
23
|
+
metadata: {
|
|
24
|
+
...coreClientMetadata,
|
|
25
|
+
duetProject: projectId,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
if (loadRes.currentTier) {
|
|
29
|
+
if (!loadRes.cloudaicompanionProject) {
|
|
30
|
+
if (projectId) {
|
|
31
|
+
return {
|
|
32
|
+
projectId,
|
|
33
|
+
userTier: loadRes.currentTier.id,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
throw new ProjectIdRequiredError();
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
projectId: loadRes.cloudaicompanionProject,
|
|
40
|
+
userTier: loadRes.currentTier.id,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const tier = getOnboardTier(loadRes);
|
|
44
|
+
let onboardReq;
|
|
45
|
+
if (tier.id === types_1.UserTierId.FREE) {
|
|
46
|
+
onboardReq = {
|
|
47
|
+
tierId: tier.id,
|
|
48
|
+
cloudaicompanionProject: undefined,
|
|
49
|
+
metadata: coreClientMetadata,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
onboardReq = {
|
|
54
|
+
tierId: tier.id,
|
|
55
|
+
cloudaicompanionProject: projectId,
|
|
56
|
+
metadata: {
|
|
57
|
+
...coreClientMetadata,
|
|
58
|
+
duetProject: projectId,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
let lroRes = await caServer.onboardUser(onboardReq);
|
|
63
|
+
while (!lroRes.done) {
|
|
64
|
+
await new Promise((f) => setTimeout(f, 5000));
|
|
65
|
+
lroRes = await caServer.onboardUser(onboardReq);
|
|
66
|
+
}
|
|
67
|
+
if (!lroRes.response?.cloudaicompanionProject?.id) {
|
|
68
|
+
if (projectId) {
|
|
69
|
+
return {
|
|
70
|
+
projectId,
|
|
71
|
+
userTier: tier.id,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
throw new ProjectIdRequiredError();
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
projectId: lroRes.response.cloudaicompanionProject.id,
|
|
78
|
+
userTier: tier.id,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function getOnboardTier(res) {
|
|
82
|
+
for (const tier of res.allowedTiers || []) {
|
|
83
|
+
if (tier.isDefault) {
|
|
84
|
+
return tier;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
name: '',
|
|
89
|
+
description: '',
|
|
90
|
+
id: types_1.UserTierId.LEGACY,
|
|
91
|
+
userDefinedCloudaicompanionProject: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=setup.js.map
|