genaicode 0.14.2 → 1.0.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 +0 -7
- package/dist/ai-service/ai-studio.d.ts +2 -18
- package/dist/ai-service/ai-studio.js +87 -31
- package/dist/ai-service/ai-studio.js.map +1 -1
- package/dist/ai-service/anthropic.js +87 -45
- package/dist/ai-service/anthropic.js.map +1 -1
- package/dist/ai-service/common-types.d.ts +36 -3
- package/dist/ai-service/common-types.js +0 -2
- package/dist/ai-service/common-types.js.map +1 -1
- package/dist/ai-service/common.js +0 -2
- package/dist/ai-service/common.js.map +1 -1
- package/dist/ai-service/files-api.d.ts +33 -0
- package/dist/ai-service/files-api.js +239 -0
- package/dist/ai-service/files-api.js.map +1 -0
- package/dist/ai-service/github-models.js +0 -2
- package/dist/ai-service/github-models.js.map +1 -1
- package/dist/ai-service/local-llm.js +0 -4
- package/dist/ai-service/local-llm.js.map +1 -1
- package/dist/ai-service/openai-responses.js +62 -16
- package/dist/ai-service/openai-responses.js.map +1 -1
- package/dist/ai-service/openai.js +157 -54
- package/dist/ai-service/openai.js.map +1 -1
- package/dist/ai-service/service-configurations-types.d.ts +0 -1
- package/dist/ai-service/service-configurations.js +19 -20
- package/dist/ai-service/service-configurations.js.map +1 -1
- package/dist/ai-service/vertex-ai.js +2 -1
- package/dist/ai-service/vertex-ai.js.map +1 -1
- package/dist/cli/cli-params.js +2 -2
- package/dist/cli/cli-params.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main/codegen-types.d.ts +2 -2
- package/dist/main/codegen.d.ts +1 -3
- package/dist/main/codegen.js +2 -19
- package/dist/main/codegen.js.map +1 -1
- package/dist/main/common/content-bus-types.d.ts +14 -0
- package/dist/main/common/content-bus.d.ts +1 -1
- package/dist/main/common/content-bus.js +21 -3
- package/dist/main/common/content-bus.js.map +1 -1
- package/dist/main/common/user-actions.d.ts +1 -1
- package/dist/main/config-types.d.ts +0 -3
- package/dist/main/config-types.js.map +1 -1
- package/dist/main/config.js +1 -1
- package/dist/main/config.js.map +1 -1
- package/dist/main/generate-content-functions.d.ts +3 -0
- package/dist/main/generate-content-functions.js +19 -0
- package/dist/main/generate-content-functions.js.map +1 -0
- package/dist/main/plugin-loader.d.ts +1 -1
- package/dist/main/ui/backend/endpoints/config-endpoint.js +1 -1
- package/dist/main/ui/backend/endpoints/config-endpoint.js.map +1 -1
- package/dist/main/ui/backend/endpoints/edit-message-endpoint.js +9 -6
- package/dist/main/ui/backend/endpoints/edit-message-endpoint.js.map +1 -1
- package/dist/main/ui/backend/endpoints/generate-content-endpoint.js +2 -4
- package/dist/main/ui/backend/endpoints/generate-content-endpoint.js.map +1 -1
- package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js +1 -1
- package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js.map +1 -1
- package/dist/main/ui/backend/service.d.ts +5 -4
- package/dist/main/ui/backend/service.js +54 -28
- package/dist/main/ui/backend/service.js.map +1 -1
- package/dist/main/ui/common/api-types.d.ts +1 -2
- package/dist/main/ui/common/api-types.js.map +1 -1
- package/dist/main/ui/frontend/assets/index-C_k1AhO2.js +3445 -0
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/prompt/dynamic-function-generator.d.ts +2 -0
- package/dist/prompt/dynamic-function-generator.js +58 -0
- package/dist/prompt/dynamic-function-generator.js.map +1 -0
- package/dist/prompt/function-calling.js +4 -5
- package/dist/prompt/function-calling.js.map +1 -1
- package/dist/prompt/function-defs/code-execution.d.ts +7 -0
- package/dist/prompt/function-defs/code-execution.js +27 -0
- package/dist/prompt/function-defs/code-execution.js.map +1 -0
- package/dist/prompt/function-defs/conversation-graph.d.ts +1 -1
- package/dist/prompt/function-defs/conversation-graph.js +1 -1
- package/dist/prompt/function-defs/conversation-graph.js.map +1 -1
- package/dist/prompt/function-defs/iterate.d.ts +20 -0
- package/dist/prompt/function-defs/iterate.js +373 -0
- package/dist/prompt/function-defs/iterate.js.map +1 -0
- package/dist/prompt/prompt-service.js +6 -6
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +6 -2
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.d.ts +7 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.js +301 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.js +49 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.js +190 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.js +139 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.d.ts +10 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.js +93 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.js +72 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.d.ts +10 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.js +125 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.d.ts +19 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.js +33 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.d.ts +8 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.js +85 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.d.ts +6 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.js +122 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.d.ts +7 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.js +146 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.js +56 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.js +56 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.js +39 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.d.ts +10 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.js +95 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.js +96 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.js +123 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.d.ts +11 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.js +50 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.d.ts +28 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.js +2 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.js +202 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.js +15 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.d.ts +50 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.js +358 -0
- package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/file-request-utils.d.ts +47 -0
- package/dist/prompt/steps/step-iterate/handlers/file-request-utils.js +114 -0
- package/dist/prompt/steps/step-iterate/handlers/file-request-utils.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.d.ts +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.js +133 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.js +177 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.d.ts +20 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.js +305 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.js +40 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.js +35 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.js +34 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.d.ts +11 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.js +503 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-create-file.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-create-file.js +159 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-create-file.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.js +30 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.js +280 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.d.ts +8 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.js +105 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.js +110 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.d.ts +6 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.js +110 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-project-command.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-project-command.js +280 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-project-command.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.d.ts +9 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.js +94 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.js +174 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.d.ts +9 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.js +104 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.js +149 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.d.ts +7 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.js +119 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.js +100 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.d.ts +8 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.js +146 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.d.ts +8 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.js +197 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.d.ts +3 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.js +251 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.js +83 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.js +185 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.js +7 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-search-code.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-search-code.js +96 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-search-code.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-send-message.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-send-message.js +21 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-send-message.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.d.ts +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.js +72 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-update-file.d.ts +2 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-update-file.js +161 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-update-file.js.map +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-web-search.d.ts +1 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-web-search.js +85 -0
- package/dist/prompt/steps/step-iterate/handlers/handle-web-search.js.map +1 -0
- package/dist/prompt/steps/step-iterate/iterate-handler.d.ts +4 -0
- package/dist/prompt/steps/step-iterate/iterate-handler.js +14 -0
- package/dist/prompt/steps/step-iterate/iterate-handler.js.map +1 -0
- package/dist/prompt/steps/step-iterate/step-iterate-handlers.d.ts +3 -0
- package/dist/prompt/steps/step-iterate/step-iterate-handlers.js +5 -0
- package/dist/prompt/steps/step-iterate/step-iterate-handlers.js.map +1 -0
- package/dist/prompt/steps/step-iterate/step-iterate-types.d.ts +255 -0
- package/dist/prompt/steps/step-iterate/step-iterate-types.js +2 -0
- package/dist/prompt/steps/step-iterate/step-iterate-types.js.map +1 -0
- package/dist/prompt/steps/step-iterate/step-iterate.d.ts +37 -0
- package/dist/prompt/steps/step-iterate/step-iterate.js +132 -0
- package/dist/prompt/steps/step-iterate/step-iterate.js.map +1 -0
- package/dist/prompt/systemprompt.js +6 -6
- package/dist/prompt/systemprompt.js.map +1 -1
- package/dist/vite-genaicode/code-transformer.d.ts +5 -0
- package/dist/vite-genaicode/code-transformer.js +83 -0
- package/dist/vite-genaicode/code-transformer.js.map +1 -0
- package/dist/vite-genaicode/console-interceptor.d.ts +19 -6
- package/dist/vite-genaicode/console-interceptor.js +45 -13
- package/dist/vite-genaicode/console-interceptor.js.map +1 -1
- package/dist/vite-genaicode/constants.d.ts +3 -0
- package/dist/vite-genaicode/constants.js +4 -0
- package/dist/vite-genaicode/constants.js.map +1 -0
- package/dist/vite-genaicode/dynamic-function-generator.d.ts +2 -0
- package/dist/vite-genaicode/dynamic-function-generator.js +47 -0
- package/dist/vite-genaicode/dynamic-function-generator.js.map +1 -0
- package/dist/vite-genaicode/html-injector.d.ts +6 -0
- package/dist/vite-genaicode/html-injector.js +14 -0
- package/dist/vite-genaicode/html-injector.js.map +1 -0
- package/dist/vite-genaicode/server-manager.d.ts +26 -0
- package/dist/vite-genaicode/server-manager.js +91 -0
- package/dist/vite-genaicode/server-manager.js.map +1 -0
- package/dist/vite-genaicode/vite-genaicode-frontend.js +1 -1
- package/dist/vite-genaicode/vite-genaicode-frontend.js.map +1 -1
- package/dist/vite-genaicode/vite-genaicode-plugin.d.ts +11 -2
- package/dist/vite-genaicode/vite-genaicode-plugin.js +60 -65
- package/dist/vite-genaicode/vite-genaicode-plugin.js.map +1 -1
- package/package.json +10 -9
- package/dist/main/ui/frontend/assets/index-We_MLSaC.js +0 -3405
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { ModelType, } from '../../../../ai-service/common-types.js';
|
|
2
|
+
import { getContextValue } from '../../../../main/common/app-context-bus.js';
|
|
3
|
+
import { getFunctionDefs } from '../../../function-calling.js';
|
|
4
|
+
import { registerActionHandler } from '../step-iterate-handlers.js';
|
|
5
|
+
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
6
|
+
const MAX_OUTPUT_LENGTH = 2000;
|
|
7
|
+
registerActionHandler('pullConsoleLogs', handlePullConsoleLogs);
|
|
8
|
+
export async function handlePullConsoleLogs({ iterateCall, generateContentFn, prompt, options, }) {
|
|
9
|
+
const pullConsoleLogsCall = await generatePullConsoleLogsCall(generateContentFn, prompt, iterateCall, options, ModelType.CHEAP);
|
|
10
|
+
putSystemMessage('Retrieving console logs', { ...pullConsoleLogsCall?.args });
|
|
11
|
+
if (!pullConsoleLogsCall?.args) {
|
|
12
|
+
return {
|
|
13
|
+
breakLoop: false,
|
|
14
|
+
items: [],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const { mode, lines = 20, level, prompt: summaryPrompt } = pullConsoleLogsCall.args;
|
|
18
|
+
const logs = await getContextValue('__console_logs');
|
|
19
|
+
if (!logs || logs.length === 0) {
|
|
20
|
+
return {
|
|
21
|
+
breakLoop: false,
|
|
22
|
+
items: [
|
|
23
|
+
{
|
|
24
|
+
assistant: {
|
|
25
|
+
type: 'assistant',
|
|
26
|
+
text: 'I will retrieve the console logs.',
|
|
27
|
+
functionCalls: [pullConsoleLogsCall],
|
|
28
|
+
},
|
|
29
|
+
user: {
|
|
30
|
+
type: 'user',
|
|
31
|
+
functionResponses: [
|
|
32
|
+
{
|
|
33
|
+
name: 'pullConsoleLogs',
|
|
34
|
+
call_id: pullConsoleLogsCall.id,
|
|
35
|
+
content: 'No console logs have been captured from the application.',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
let filteredLogs = logs;
|
|
44
|
+
if (level) {
|
|
45
|
+
filteredLogs = logs.filter((log) => log.level === level);
|
|
46
|
+
}
|
|
47
|
+
if (filteredLogs.length === 0) {
|
|
48
|
+
return {
|
|
49
|
+
breakLoop: false,
|
|
50
|
+
items: [
|
|
51
|
+
{
|
|
52
|
+
assistant: {
|
|
53
|
+
type: 'assistant',
|
|
54
|
+
text: `I will retrieve the console logs with level '${level}'.`,
|
|
55
|
+
functionCalls: [pullConsoleLogsCall],
|
|
56
|
+
},
|
|
57
|
+
user: {
|
|
58
|
+
type: 'user',
|
|
59
|
+
functionResponses: [
|
|
60
|
+
{
|
|
61
|
+
name: 'pullConsoleLogs',
|
|
62
|
+
call_id: pullConsoleLogsCall.id,
|
|
63
|
+
content: `No console logs found with level '${level}'.`,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
let content = '';
|
|
72
|
+
switch (mode) {
|
|
73
|
+
case 'prefix':
|
|
74
|
+
content = filteredLogs.slice(0, lines).map(formatLogEntry).join('\n');
|
|
75
|
+
break;
|
|
76
|
+
case 'suffix':
|
|
77
|
+
content = filteredLogs.slice(-lines).map(formatLogEntry).join('\n');
|
|
78
|
+
break;
|
|
79
|
+
case 'summary': {
|
|
80
|
+
const allLogs = filteredLogs.map(formatLogEntry).join('\n');
|
|
81
|
+
content = await summarizeConsoleLogs(allLogs, summaryPrompt, generateContentFn, options);
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
breakLoop: false,
|
|
87
|
+
items: [
|
|
88
|
+
{
|
|
89
|
+
assistant: {
|
|
90
|
+
type: 'assistant',
|
|
91
|
+
text: `I will retrieve the console logs (mode: ${mode}).`,
|
|
92
|
+
functionCalls: [pullConsoleLogsCall],
|
|
93
|
+
},
|
|
94
|
+
user: {
|
|
95
|
+
type: 'user',
|
|
96
|
+
functionResponses: [
|
|
97
|
+
{
|
|
98
|
+
name: 'pullConsoleLogs',
|
|
99
|
+
call_id: pullConsoleLogsCall.id,
|
|
100
|
+
content: content || 'No logs to display with the given criteria.',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function formatLogEntry(entry) {
|
|
109
|
+
const date = new Date(entry.timestamp).toISOString();
|
|
110
|
+
return `[${date}] [${entry.level.toUpperCase()}] ${entry.message}`;
|
|
111
|
+
}
|
|
112
|
+
async function generatePullConsoleLogsCall(generateContentFn, prompt, iterateCall, options, modelType) {
|
|
113
|
+
const req = [
|
|
114
|
+
[
|
|
115
|
+
...prompt,
|
|
116
|
+
{
|
|
117
|
+
type: 'assistant',
|
|
118
|
+
text: iterateCall.args?.message ?? 'I need to check the console logs.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'user',
|
|
122
|
+
text: 'Yes, you can pull the console logs.',
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
{
|
|
126
|
+
functionDefs: getFunctionDefs(),
|
|
127
|
+
requiredFunctionName: 'pullConsoleLogs',
|
|
128
|
+
temperature: 0.7,
|
|
129
|
+
modelType,
|
|
130
|
+
expectedResponseType: {
|
|
131
|
+
text: false,
|
|
132
|
+
functionCall: true,
|
|
133
|
+
media: false,
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
options,
|
|
137
|
+
];
|
|
138
|
+
const [pullConsoleLogsCall] = (await generateContentFn(...req))
|
|
139
|
+
.filter((item) => item.type === 'functionCall')
|
|
140
|
+
.map((item) => item.functionCall);
|
|
141
|
+
return pullConsoleLogsCall;
|
|
142
|
+
}
|
|
143
|
+
async function summarizeConsoleLogs(logs, prompt, generateContentFn, options) {
|
|
144
|
+
if (logs.length <= MAX_OUTPUT_LENGTH) {
|
|
145
|
+
return logs;
|
|
146
|
+
}
|
|
147
|
+
const summaryPrompt = [
|
|
148
|
+
{
|
|
149
|
+
type: 'user',
|
|
150
|
+
text: `Please summarize the following console logs:\n\n---\n\n<logs>${logs}</logs>`,
|
|
151
|
+
},
|
|
152
|
+
];
|
|
153
|
+
if (prompt) {
|
|
154
|
+
summaryPrompt[0].text += `\n\nAdditional instructions: ${prompt}`;
|
|
155
|
+
}
|
|
156
|
+
const summaryRequest = [
|
|
157
|
+
summaryPrompt,
|
|
158
|
+
{
|
|
159
|
+
modelType: ModelType.LITE,
|
|
160
|
+
expectedResponseType: { text: true, functionCall: false, media: false },
|
|
161
|
+
},
|
|
162
|
+
options,
|
|
163
|
+
];
|
|
164
|
+
const summaryResult = await generateContentFn(...summaryRequest);
|
|
165
|
+
const summaryText = summaryResult.find((part) => part.type === 'text')?.text;
|
|
166
|
+
if (!summaryText) {
|
|
167
|
+
putSystemMessage('Failed to summarize console logs, returning truncated version.');
|
|
168
|
+
// Return first MAX_OUTPUT_LENGTH characters as fallback
|
|
169
|
+
return logs.substring(0, MAX_OUTPUT_LENGTH);
|
|
170
|
+
}
|
|
171
|
+
putSystemMessage('Console logs summarized successfully.', { summaryText });
|
|
172
|
+
return summaryText;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=handle-pull-console-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-pull-console-logs.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-pull-console-logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ActionResult, ActionHandlerProps } from '../step-iterate-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handler for pushAppContext action
|
|
4
|
+
* Updates context value in the content-bus system with proper validation and error handling
|
|
5
|
+
*
|
|
6
|
+
* @param props Action handler properties containing the function call
|
|
7
|
+
* @returns ActionResult with the updated context value and conversation items
|
|
8
|
+
*/
|
|
9
|
+
export declare function handlePushAppContext({ generateContentFn, prompt, options, }: ActionHandlerProps): Promise<ActionResult>;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ModelType } from '../../../../ai-service/common-types.js';
|
|
2
|
+
import { setContextValue } from '../../../../main/common/app-context-bus.js';
|
|
3
|
+
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
4
|
+
import { getFunctionDefs } from '../../../function-calling.js';
|
|
5
|
+
import { registerActionHandler } from '../step-iterate-handlers.js';
|
|
6
|
+
registerActionHandler('pushAppContext', handlePushAppContext);
|
|
7
|
+
/**
|
|
8
|
+
* Handler for pushAppContext action
|
|
9
|
+
* Updates context value in the content-bus system with proper validation and error handling
|
|
10
|
+
*
|
|
11
|
+
* @param props Action handler properties containing the function call
|
|
12
|
+
* @returns ActionResult with the updated context value and conversation items
|
|
13
|
+
*/
|
|
14
|
+
export async function handlePushAppContext({ generateContentFn, prompt, options, }) {
|
|
15
|
+
putSystemMessage('Updating context...');
|
|
16
|
+
const [pushAppContextCall] = (await generateContentFn(prompt, {
|
|
17
|
+
functionDefs: getFunctionDefs(),
|
|
18
|
+
requiredFunctionName: 'pushAppContext',
|
|
19
|
+
temperature: 0.7,
|
|
20
|
+
modelType: ModelType.CHEAP,
|
|
21
|
+
expectedResponseType: {
|
|
22
|
+
text: false,
|
|
23
|
+
functionCall: true,
|
|
24
|
+
media: false,
|
|
25
|
+
},
|
|
26
|
+
}, options))
|
|
27
|
+
.filter((item) => item.type === 'functionCall')
|
|
28
|
+
.map((item) => item.functionCall);
|
|
29
|
+
if (!pushAppContextCall?.args) {
|
|
30
|
+
putSystemMessage('Failed to get valid pushAppContext request');
|
|
31
|
+
return { breakLoop: false, items: [] };
|
|
32
|
+
}
|
|
33
|
+
const { key, reason } = pushAppContextCall.args;
|
|
34
|
+
let { value } = pushAppContextCall.args;
|
|
35
|
+
try {
|
|
36
|
+
// Validate input
|
|
37
|
+
if (!key) {
|
|
38
|
+
throw new Error('Context key is required');
|
|
39
|
+
}
|
|
40
|
+
if (value === undefined) {
|
|
41
|
+
throw new Error('Context value cannot be undefined');
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
value = JSON.parse(value);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// ignore error
|
|
48
|
+
}
|
|
49
|
+
// Set context value using content-bus
|
|
50
|
+
// Note: setContextValue includes value validation internally
|
|
51
|
+
await setContextValue(key, value);
|
|
52
|
+
// Format success message
|
|
53
|
+
const updateInfo = `Successfully updated context key "${key}"`;
|
|
54
|
+
const reasonInfo = reason ? `\nReason for update: ${reason}` : '';
|
|
55
|
+
putSystemMessage('Context updated successfully.', {
|
|
56
|
+
contextKey: key,
|
|
57
|
+
contextValue: value,
|
|
58
|
+
reason,
|
|
59
|
+
operation: 'set',
|
|
60
|
+
});
|
|
61
|
+
prompt.push({
|
|
62
|
+
type: 'assistant',
|
|
63
|
+
text: `${updateInfo}${reasonInfo}`,
|
|
64
|
+
functionCalls: [pushAppContextCall],
|
|
65
|
+
}, {
|
|
66
|
+
type: 'user',
|
|
67
|
+
functionResponses: [{ name: 'pushAppContext', call_id: pushAppContextCall.id, content: '' }],
|
|
68
|
+
});
|
|
69
|
+
// Return the action result with update confirmation
|
|
70
|
+
return {
|
|
71
|
+
breakLoop: false,
|
|
72
|
+
items: [],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
// Handle any errors that occur during context update
|
|
77
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
|
|
78
|
+
putSystemMessage(`Error updating context: ${errorMessage}`);
|
|
79
|
+
prompt.push({
|
|
80
|
+
type: 'assistant',
|
|
81
|
+
functionCalls: [pushAppContextCall],
|
|
82
|
+
}, {
|
|
83
|
+
type: 'user',
|
|
84
|
+
text: 'Context update failed.',
|
|
85
|
+
functionResponses: [
|
|
86
|
+
{
|
|
87
|
+
name: 'pushAppContext',
|
|
88
|
+
call_id: pushAppContextCall.id,
|
|
89
|
+
content: JSON.stringify({
|
|
90
|
+
contextKey: key,
|
|
91
|
+
error: errorMessage,
|
|
92
|
+
reason,
|
|
93
|
+
operation: 'set',
|
|
94
|
+
}),
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
breakLoop: false,
|
|
100
|
+
items: [],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=handle-push-app-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-push-app-context.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-push-app-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { isAncestorDirectory } from '../../../../files/file-utils.js';
|
|
3
|
+
import { readFileContent } from '../../../../files/read-files.js';
|
|
4
|
+
import { askUserForConfirmation } from '../../../../main/common/user-actions.js';
|
|
5
|
+
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
6
|
+
import { ModelType } from '../../../../ai-service/common-types.js';
|
|
7
|
+
import { registerActionHandler } from '../step-iterate-handlers.js';
|
|
8
|
+
import { rcConfig } from '../../../../main/config.js';
|
|
9
|
+
import { readExternalFiles as readExternalFilesDef } from '../../../function-defs/read-external-files.js';
|
|
10
|
+
import { getFunctionDefs } from '../../../function-calling.js';
|
|
11
|
+
registerActionHandler('readExternalFiles', handleReadExternalFiles);
|
|
12
|
+
export async function handleReadExternalFiles({ iterateCall, options, generateContentFn, prompt, }) {
|
|
13
|
+
// 1. Infer arguments using LLM
|
|
14
|
+
let inferredCall;
|
|
15
|
+
let requestedFilePaths;
|
|
16
|
+
let reason;
|
|
17
|
+
let inferredCallId;
|
|
18
|
+
putSystemMessage('Generating arguments for reading external files action...');
|
|
19
|
+
try {
|
|
20
|
+
const inferencePrompt = [
|
|
21
|
+
...prompt,
|
|
22
|
+
{
|
|
23
|
+
type: 'assistant',
|
|
24
|
+
text: iterateCall.args?.message ?? '',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: 'user',
|
|
28
|
+
text: 'Given the following conversation, identify the file paths and the reason for reading those files.',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
const inferenceResult = await generateContentFn(inferencePrompt, {
|
|
32
|
+
modelType: ModelType.CHEAP,
|
|
33
|
+
functionDefs: getFunctionDefs(),
|
|
34
|
+
requiredFunctionName: readExternalFilesDef.name,
|
|
35
|
+
}, options);
|
|
36
|
+
inferredCall = inferenceResult.find((part) => part.type === 'functionCall')?.functionCall;
|
|
37
|
+
if (!inferredCall || !inferredCall.args) {
|
|
38
|
+
putSystemMessage('Could not infer arguments for readExternalFiles action from the assistant message and context.');
|
|
39
|
+
return { breakLoop: false, items: [] };
|
|
40
|
+
}
|
|
41
|
+
requestedFilePaths = inferredCall.args.externalFilePaths;
|
|
42
|
+
reason = inferredCall.args.reason;
|
|
43
|
+
inferredCallId = inferredCall.id;
|
|
44
|
+
putSystemMessage('Generated arguments for reading external files', inferredCall.args);
|
|
45
|
+
if (!requestedFilePaths || requestedFilePaths.length === 0 || !reason) {
|
|
46
|
+
putSystemMessage('Missing filePaths or reason after inferring arguments for readExternalFiles action.');
|
|
47
|
+
return { breakLoop: false, items: [] };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error during argument inference.';
|
|
52
|
+
putSystemMessage(`Error inferring arguments for readExternalFiles: ${errorMessage}`);
|
|
53
|
+
return { breakLoop: false, items: [] };
|
|
54
|
+
}
|
|
55
|
+
// 2. Classify files and prepare for batch confirmation
|
|
56
|
+
const fileResults = [];
|
|
57
|
+
const externalFilesToConfirm = [];
|
|
58
|
+
const internalFilesSkipped = [];
|
|
59
|
+
for (const filePath of requestedFilePaths) {
|
|
60
|
+
const absolutePath = path.resolve(filePath);
|
|
61
|
+
if (isAncestorDirectory(rcConfig.rootDir, absolutePath)) {
|
|
62
|
+
// File is inside the project root, skip
|
|
63
|
+
fileResults.push({
|
|
64
|
+
filePath: absolutePath,
|
|
65
|
+
result: 'skipped, because it is not an external file, it is inside the project root',
|
|
66
|
+
});
|
|
67
|
+
internalFilesSkipped.push(absolutePath);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// File is external, add to confirmation list
|
|
71
|
+
externalFilesToConfirm.push(absolutePath);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// 3. Ask for batch confirmation if external files exist
|
|
75
|
+
let confirmed = false;
|
|
76
|
+
if (externalFilesToConfirm.length > 0) {
|
|
77
|
+
const confirmationMessage = `The AI wants to read the following external file(s):\n${externalFilesToConfirm.join('\n')}\n\nReason: ${reason}\n\nDo you allow reading these files? Only processed information relevant to the reason will be used, not the full content.`;
|
|
78
|
+
const confirmationResult = await askUserForConfirmation(confirmationMessage, false, options);
|
|
79
|
+
confirmed = confirmationResult.confirmed ?? false;
|
|
80
|
+
}
|
|
81
|
+
// 4. Process confirmed external files or mark as denied
|
|
82
|
+
if (confirmed) {
|
|
83
|
+
putSystemMessage('Reading external files...', externalFilesToConfirm);
|
|
84
|
+
for (const absolutePath of externalFilesToConfirm) {
|
|
85
|
+
try {
|
|
86
|
+
const content = readFileContent(absolutePath);
|
|
87
|
+
// Call LLM to process the content based on the reason
|
|
88
|
+
const processPrompt = [
|
|
89
|
+
{
|
|
90
|
+
type: 'user',
|
|
91
|
+
text: `Extract information relevant to the reason: '${reason}' from the following content:\n\nContent:\n\n${content}\n\n`,
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
const processResult = await generateContentFn(processPrompt, { modelType: ModelType.CHEAP }, options);
|
|
95
|
+
const processedText = processResult.find((part) => part.type === 'text')?.text ?? 'Could not process content.';
|
|
96
|
+
fileResults.push({ filePath: absolutePath, result: processedText });
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error during file reading or processing.';
|
|
100
|
+
putSystemMessage(`Error reading or processing external file ${absolutePath}: ${errorMessage}`);
|
|
101
|
+
fileResults.push({
|
|
102
|
+
filePath: absolutePath,
|
|
103
|
+
result: `Error reading or processing external file: ${errorMessage}`,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
putSystemMessage('Finished reading external files.', { fileResults });
|
|
108
|
+
}
|
|
109
|
+
else if (externalFilesToConfirm.length > 0) {
|
|
110
|
+
putSystemMessage('User denied access to external files.');
|
|
111
|
+
// User denied access for the batch
|
|
112
|
+
for (const absolutePath of externalFilesToConfirm) {
|
|
113
|
+
fileResults.push({ filePath: absolutePath, result: 'access denied by the user' });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// 5. Update conversation history
|
|
117
|
+
prompt.push({
|
|
118
|
+
type: 'assistant',
|
|
119
|
+
text: iterateCall.args?.message ?? '',
|
|
120
|
+
functionCalls: [
|
|
121
|
+
{
|
|
122
|
+
id: inferredCallId,
|
|
123
|
+
name: readExternalFilesDef.name,
|
|
124
|
+
args: {
|
|
125
|
+
externalFilePaths: requestedFilePaths, // Use original requested paths
|
|
126
|
+
reason,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
}, {
|
|
131
|
+
type: 'user',
|
|
132
|
+
functionResponses: [
|
|
133
|
+
{
|
|
134
|
+
name: readExternalFilesDef.name,
|
|
135
|
+
call_id: inferredCallId,
|
|
136
|
+
content: JSON.stringify({
|
|
137
|
+
externalFilePaths: requestedFilePaths, // Use original requested paths
|
|
138
|
+
reason,
|
|
139
|
+
fileResults: fileResults, // Contains results for all initially requested files
|
|
140
|
+
}),
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
});
|
|
144
|
+
return {
|
|
145
|
+
breakLoop: false,
|
|
146
|
+
items: [],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=handle-read-external-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-read-external-files.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-read-external-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActionResult, ActionHandlerProps } from '../step-iterate-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handler for the reasoningInference action.
|
|
4
|
+
* This handler is designed to work with models that don't support function calling
|
|
5
|
+
* but provide reasoning tokens along with their responses.
|
|
6
|
+
*/
|
|
7
|
+
export declare function handleReasoningInference({ iterateCall, prompt, generateContentFn, options, }: ActionHandlerProps): Promise<ActionResult>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ModelType } from '../../../../ai-service/common-types.js';
|
|
2
|
+
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
3
|
+
import { getFunctionDefs } from '../../../function-calling.js';
|
|
4
|
+
import { getContextSourceCode } from '../../../../files/source-code-utils.js';
|
|
5
|
+
import { registerActionHandler } from '../step-iterate-handlers.js';
|
|
6
|
+
import { reasoningInferenceResponse } from '../../../function-defs/reasoning-inference.js';
|
|
7
|
+
registerActionHandler('reasoningInference', handleReasoningInference);
|
|
8
|
+
/**
|
|
9
|
+
* Handler for the reasoningInference action.
|
|
10
|
+
* This handler is designed to work with models that don't support function calling
|
|
11
|
+
* but provide reasoning tokens along with their responses.
|
|
12
|
+
*/
|
|
13
|
+
export async function handleReasoningInference({ iterateCall, prompt, generateContentFn, options, }) {
|
|
14
|
+
try {
|
|
15
|
+
putSystemMessage('Reasoning inference: generating prompt');
|
|
16
|
+
const request = [
|
|
17
|
+
[
|
|
18
|
+
...prompt,
|
|
19
|
+
{
|
|
20
|
+
type: 'assistant',
|
|
21
|
+
text: iterateCall.args.message,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
{
|
|
25
|
+
functionDefs: getFunctionDefs(),
|
|
26
|
+
requiredFunctionName: 'reasoningInference',
|
|
27
|
+
temperature: 0.7,
|
|
28
|
+
modelType: ModelType.CHEAP,
|
|
29
|
+
expectedResponseType: {
|
|
30
|
+
text: false,
|
|
31
|
+
functionCall: true,
|
|
32
|
+
media: false,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
options,
|
|
36
|
+
];
|
|
37
|
+
const [reasoningInferenceCall] = (await generateContentFn(...request))
|
|
38
|
+
.filter((item) => item.type === 'functionCall')
|
|
39
|
+
.map((item) => item.functionCall);
|
|
40
|
+
if (!reasoningInferenceCall?.args?.prompt) {
|
|
41
|
+
putSystemMessage('Failed to get valid reasoningInference request');
|
|
42
|
+
prompt.push({
|
|
43
|
+
type: 'assistant',
|
|
44
|
+
text: iterateCall.args.message,
|
|
45
|
+
}, {
|
|
46
|
+
type: 'user',
|
|
47
|
+
text: 'Failed to get valid reasoningInference request',
|
|
48
|
+
});
|
|
49
|
+
return { breakLoop: false, items: [] };
|
|
50
|
+
}
|
|
51
|
+
putSystemMessage('Reasoning inference: calling reasoning model', reasoningInferenceCall.args);
|
|
52
|
+
// Get expanded context using getContextSourceCode
|
|
53
|
+
const contextPaths = reasoningInferenceCall.args.contextPaths || [];
|
|
54
|
+
const expandedContextSourceCodeMap = getContextSourceCode(contextPaths, options);
|
|
55
|
+
// Call the reasoning model with appropriate settings
|
|
56
|
+
const [reasoningInferenceResponseCall] = (await generateContentFn([
|
|
57
|
+
{
|
|
58
|
+
type: 'user',
|
|
59
|
+
text: reasoningInferenceCall.args.prompt +
|
|
60
|
+
(Object.keys(expandedContextSourceCodeMap).length > 0
|
|
61
|
+
? '\n\nContents of relevant files:\n' +
|
|
62
|
+
Object.entries(expandedContextSourceCodeMap)
|
|
63
|
+
.map(([path, file]) => 'content' in file && file.content ? `File: ${path}\n\`\`\`${file.content}\`\`\`` : '')
|
|
64
|
+
.filter(Boolean)
|
|
65
|
+
.join('\n\n')
|
|
66
|
+
: ''),
|
|
67
|
+
},
|
|
68
|
+
], {
|
|
69
|
+
functionDefs: [reasoningInferenceResponse],
|
|
70
|
+
requiredFunctionName: 'reasoningInferenceResponse',
|
|
71
|
+
temperature: 0.7,
|
|
72
|
+
modelType: ModelType.REASONING,
|
|
73
|
+
expectedResponseType: {
|
|
74
|
+
text: false,
|
|
75
|
+
functionCall: true,
|
|
76
|
+
media: false,
|
|
77
|
+
},
|
|
78
|
+
}, options))
|
|
79
|
+
.filter((item) => item.type === 'functionCall')
|
|
80
|
+
.map((item) => item.functionCall);
|
|
81
|
+
putSystemMessage('Reasoning inference: received response', reasoningInferenceResponseCall.args);
|
|
82
|
+
prompt.push({
|
|
83
|
+
type: 'assistant',
|
|
84
|
+
text: iterateCall.args.message,
|
|
85
|
+
functionCalls: [reasoningInferenceCall],
|
|
86
|
+
}, {
|
|
87
|
+
type: 'user',
|
|
88
|
+
functionResponses: [
|
|
89
|
+
{
|
|
90
|
+
name: 'reasoningInference',
|
|
91
|
+
call_id: reasoningInferenceCall.id,
|
|
92
|
+
content: reasoningInferenceResponseCall.args?.response,
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
});
|
|
96
|
+
return {
|
|
97
|
+
breakLoop: false,
|
|
98
|
+
items: [],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
// Handle errors gracefully
|
|
103
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
104
|
+
putSystemMessage(`Error during reasoning inference: ${errorMessage}`);
|
|
105
|
+
prompt.push({
|
|
106
|
+
type: 'assistant',
|
|
107
|
+
text: iterateCall.args.message,
|
|
108
|
+
}, {
|
|
109
|
+
type: 'user',
|
|
110
|
+
text: `Error during reasoning inference.`,
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
// TODO: rather do a retry here?
|
|
114
|
+
breakLoop: false,
|
|
115
|
+
items: [],
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=handle-reasoning-inference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-reasoning-inference.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-reasoning-inference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAE3F,qBAAqB,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,OAAO,GACY;IACnB,IAAI,CAAC;QACH,gBAAgB,CAAC,wCAAwC,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAwB;YACnC;gBACE,GAAG,MAAM;gBACT;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,WAAW,CAAC,IAAK,CAAC,OAAO;iBAChC;aACF;YACD;gBACE,YAAY,EAAE,eAAe,EAAE;gBAC/B,oBAAoB,EAAE,oBAAoB;gBAC1C,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,SAAS,CAAC,KAAK;gBAC1B,oBAAoB,EAAE;oBACpB,IAAI,EAAE,KAAK;oBACX,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE,KAAK;iBACb;aACF;YACD,OAAO;SACR,CAAC;QAEF,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,iBAAiB,CAAC,GAAG,OAAO,CAAC,CAAC;aACnE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;aAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAyC,CAAC;QAE5E,IAAI,CAAC,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1C,gBAAgB,CAAC,gDAAgD,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CACT;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,WAAW,CAAC,IAAK,CAAC,OAAO;aAChC,EACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gDAAgD;aACvD,CACF,CAAC;YACF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,gBAAgB,CAAC,8CAA8C,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE9F,kDAAkD;QAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACpE,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEjF,qDAAqD;QACrD,MAAM,CAAC,8BAA8B,CAAC,GAAG,CACvC,MAAM,iBAAiB,CACrB;YACE;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,sBAAsB,CAAC,IAAI,CAAC,MAAM;oBAClC,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,GAAG,CAAC;wBACnD,CAAC,CAAC,mCAAmC;4BACnC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC;iCACzC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CACpB,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,WAAW,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CACtF;iCACA,MAAM,CAAC,OAAO,CAAC;iCACf,IAAI,CAAC,MAAM,CAAC;wBACjB,CAAC,CAAC,EAAE,CAAC;aACV;SACF,EACD;YACE,YAAY,EAAE,CAAC,0BAA0B,CAAC;YAC1C,oBAAoB,EAAE,4BAA4B;YAClD,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,oBAAoB,EAAE;gBACpB,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,KAAK;aACb;SACF,EACD,OAAO,CACR,CACF;aACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;aAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAmD,CAAC;QAEtF,gBAAgB,CAAC,wCAAwC,EAAE,8BAA8B,CAAC,IAAI,CAAC,CAAC;QAEhG,MAAM,CAAC,IAAI,CACT;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW,CAAC,IAAK,CAAC,OAAO;YAC/B,aAAa,EAAE,CAAC,sBAAsB,CAAC;SACxC,EACD;YACE,IAAI,EAAE,MAAM;YACZ,iBAAiB,EAAE;gBACjB;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,sBAAsB,CAAC,EAAE;oBAClC,OAAO,EAAE,8BAA8B,CAAC,IAAI,EAAE,QAAQ;iBACvD;aACF;SACF,CACF,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B;QAC3B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,gBAAgB,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;QAEtE,MAAM,CAAC,IAAI,CACT;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW,CAAC,IAAK,CAAC,OAAO;SAChC,EACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,mCAAmC;SAC1C,CACF,CAAC;QAEF,OAAO;YACL,gCAAgC;YAChC,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
|