@cleanslate/sdk 0.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/LICENSE +22 -0
- package/NOTICE +48 -0
- package/README.md +103 -0
- package/VENDOR.md +60 -0
- package/dist/agent/cleanSlateAgentExecutionPhase.d.ts +55 -0
- package/dist/agent/cleanSlateAgentExecutionPhase.d.ts.map +1 -0
- package/dist/agent/cleanSlateAgentExecutionPhase.js +474 -0
- package/dist/agent/cleanSlateAgentExecutionPhase.js.map +1 -0
- package/dist/agent/cleanSlateAgentExecutionSupport.d.ts +22 -0
- package/dist/agent/cleanSlateAgentExecutionSupport.d.ts.map +1 -0
- package/dist/agent/cleanSlateAgentExecutionSupport.js +205 -0
- package/dist/agent/cleanSlateAgentExecutionSupport.js.map +1 -0
- package/dist/agent/cleanSlateAgentParsing.d.ts +21 -0
- package/dist/agent/cleanSlateAgentParsing.d.ts.map +1 -0
- package/dist/agent/cleanSlateAgentParsing.js +106 -0
- package/dist/agent/cleanSlateAgentParsing.js.map +1 -0
- package/dist/agent/cleanSlateAgentSession.d.ts +44 -0
- package/dist/agent/cleanSlateAgentSession.d.ts.map +1 -0
- package/dist/agent/cleanSlateAgentSession.js +205 -0
- package/dist/agent/cleanSlateAgentSession.js.map +1 -0
- package/dist/agent/cleanSlateAgentTypes.d.ts +91 -0
- package/dist/agent/cleanSlateAgentTypes.d.ts.map +1 -0
- package/dist/agent/cleanSlateAgentTypes.js +27 -0
- package/dist/agent/cleanSlateAgentTypes.js.map +1 -0
- package/dist/agent/cleanSlateCommandPolicy.d.ts +12 -0
- package/dist/agent/cleanSlateCommandPolicy.d.ts.map +1 -0
- package/dist/agent/cleanSlateCommandPolicy.js +30 -0
- package/dist/agent/cleanSlateCommandPolicy.js.map +1 -0
- package/dist/agent/cleanSlateContextBudgetManager.d.ts +82 -0
- package/dist/agent/cleanSlateContextBudgetManager.d.ts.map +1 -0
- package/dist/agent/cleanSlateContextBudgetManager.js +419 -0
- package/dist/agent/cleanSlateContextBudgetManager.js.map +1 -0
- package/dist/agent/cleanSlateDomainProfile.d.ts +71 -0
- package/dist/agent/cleanSlateDomainProfile.d.ts.map +1 -0
- package/dist/agent/cleanSlateDomainProfile.js +124 -0
- package/dist/agent/cleanSlateDomainProfile.js.map +1 -0
- package/dist/agent/cleanSlateExecutionBudget.d.ts +19 -0
- package/dist/agent/cleanSlateExecutionBudget.d.ts.map +1 -0
- package/dist/agent/cleanSlateExecutionBudget.js +28 -0
- package/dist/agent/cleanSlateExecutionBudget.js.map +1 -0
- package/dist/agent/cleanSlateExecutionEditPolicy.d.ts +15 -0
- package/dist/agent/cleanSlateExecutionEditPolicy.d.ts.map +1 -0
- package/dist/agent/cleanSlateExecutionEditPolicy.js +148 -0
- package/dist/agent/cleanSlateExecutionEditPolicy.js.map +1 -0
- package/dist/agent/cleanSlateExecutionEvidenceLedger.d.ts +23 -0
- package/dist/agent/cleanSlateExecutionEvidenceLedger.d.ts.map +1 -0
- package/dist/agent/cleanSlateExecutionEvidenceLedger.js +121 -0
- package/dist/agent/cleanSlateExecutionEvidenceLedger.js.map +1 -0
- package/dist/agent/cleanSlateExecutionLoopPrompts.d.ts +5 -0
- package/dist/agent/cleanSlateExecutionLoopPrompts.d.ts.map +1 -0
- package/dist/agent/cleanSlateExecutionLoopPrompts.js +41 -0
- package/dist/agent/cleanSlateExecutionLoopPrompts.js.map +1 -0
- package/dist/agent/cleanSlateExecutionQuery.d.ts +162 -0
- package/dist/agent/cleanSlateExecutionQuery.d.ts.map +1 -0
- package/dist/agent/cleanSlateExecutionQuery.js +1448 -0
- package/dist/agent/cleanSlateExecutionQuery.js.map +1 -0
- package/dist/agent/cleanSlateFilesModifiedService.d.ts +96 -0
- package/dist/agent/cleanSlateFilesModifiedService.d.ts.map +1 -0
- package/dist/agent/cleanSlateFilesModifiedService.js +581 -0
- package/dist/agent/cleanSlateFilesModifiedService.js.map +1 -0
- package/dist/agent/cleanSlateNativeToolTranscript.d.ts +22 -0
- package/dist/agent/cleanSlateNativeToolTranscript.d.ts.map +1 -0
- package/dist/agent/cleanSlateNativeToolTranscript.js +77 -0
- package/dist/agent/cleanSlateNativeToolTranscript.js.map +1 -0
- package/dist/agent/cleanSlatePrompts.d.ts +30 -0
- package/dist/agent/cleanSlatePrompts.d.ts.map +1 -0
- package/dist/agent/cleanSlatePrompts.js +65 -0
- package/dist/agent/cleanSlatePrompts.js.map +1 -0
- package/dist/agent/cleanSlateQueryRunner.d.ts +56 -0
- package/dist/agent/cleanSlateQueryRunner.d.ts.map +1 -0
- package/dist/agent/cleanSlateQueryRunner.js +69 -0
- package/dist/agent/cleanSlateQueryRunner.js.map +1 -0
- package/dist/agent/cleanSlateRuntimePromptBuilder.d.ts +30 -0
- package/dist/agent/cleanSlateRuntimePromptBuilder.d.ts.map +1 -0
- package/dist/agent/cleanSlateRuntimePromptBuilder.js +99 -0
- package/dist/agent/cleanSlateRuntimePromptBuilder.js.map +1 -0
- package/dist/agent/cleanSlateStreamingToolExecutor.d.ts +55 -0
- package/dist/agent/cleanSlateStreamingToolExecutor.d.ts.map +1 -0
- package/dist/agent/cleanSlateStreamingToolExecutor.js +214 -0
- package/dist/agent/cleanSlateStreamingToolExecutor.js.map +1 -0
- package/dist/agent/cleanSlateToolCallLedger.d.ts +32 -0
- package/dist/agent/cleanSlateToolCallLedger.d.ts.map +1 -0
- package/dist/agent/cleanSlateToolCallLedger.js +164 -0
- package/dist/agent/cleanSlateToolCallLedger.js.map +1 -0
- package/dist/agent/cleanSlateToolResultPromptSerializer.d.ts +9 -0
- package/dist/agent/cleanSlateToolResultPromptSerializer.d.ts.map +1 -0
- package/dist/agent/cleanSlateToolResultPromptSerializer.js +184 -0
- package/dist/agent/cleanSlateToolResultPromptSerializer.js.map +1 -0
- package/dist/composer/commands/slashCommands.d.ts +8 -0
- package/dist/composer/commands/slashCommands.d.ts.map +1 -0
- package/dist/composer/commands/slashCommands.js +46 -0
- package/dist/composer/commands/slashCommands.js.map +1 -0
- package/dist/composer/instructions/baseInstructions.d.ts +3 -0
- package/dist/composer/instructions/baseInstructions.d.ts.map +1 -0
- package/dist/composer/instructions/baseInstructions.js +35 -0
- package/dist/composer/instructions/baseInstructions.js.map +1 -0
- package/dist/composer/instructions/runtimeInstructions.d.ts +11 -0
- package/dist/composer/instructions/runtimeInstructions.d.ts.map +1 -0
- package/dist/composer/instructions/runtimeInstructions.js +31 -0
- package/dist/composer/instructions/runtimeInstructions.js.map +1 -0
- package/dist/composer/kernel/coreKernel.d.ts +3 -0
- package/dist/composer/kernel/coreKernel.d.ts.map +1 -0
- package/dist/composer/kernel/coreKernel.js +11 -0
- package/dist/composer/kernel/coreKernel.js.map +1 -0
- package/dist/composer/kernel/editingRules.d.ts +3 -0
- package/dist/composer/kernel/editingRules.d.ts.map +1 -0
- package/dist/composer/kernel/editingRules.js +24 -0
- package/dist/composer/kernel/editingRules.js.map +1 -0
- package/dist/composer/kernel/toolProtocols.d.ts +2 -0
- package/dist/composer/kernel/toolProtocols.d.ts.map +1 -0
- package/dist/composer/kernel/toolProtocols.js +32 -0
- package/dist/composer/kernel/toolProtocols.js.map +1 -0
- package/dist/composer/modes/execution.mode.d.ts +2 -0
- package/dist/composer/modes/execution.mode.d.ts.map +1 -0
- package/dist/composer/modes/execution.mode.js +21 -0
- package/dist/composer/modes/execution.mode.js.map +1 -0
- package/dist/composer/modes/planning.mode.d.ts +2 -0
- package/dist/composer/modes/planning.mode.d.ts.map +1 -0
- package/dist/composer/modes/planning.mode.js +23 -0
- package/dist/composer/modes/planning.mode.js.map +1 -0
- package/dist/composer/promptComposer.d.ts +22 -0
- package/dist/composer/promptComposer.d.ts.map +1 -0
- package/dist/composer/promptComposer.js +62 -0
- package/dist/composer/promptComposer.js.map +1 -0
- package/dist/composer/registry/agentSchema.d.ts +16 -0
- package/dist/composer/registry/agentSchema.d.ts.map +1 -0
- package/dist/composer/registry/agentSchema.js +6 -0
- package/dist/composer/registry/agentSchema.js.map +1 -0
- package/dist/core/arrays.d.ts +311 -0
- package/dist/core/arrays.d.ts.map +1 -0
- package/dist/core/arrays.js +811 -0
- package/dist/core/arrays.js.map +1 -0
- package/dist/core/arraysFind.d.ts +72 -0
- package/dist/core/arraysFind.d.ts.map +1 -0
- package/dist/core/arraysFind.js +200 -0
- package/dist/core/arraysFind.js.map +1 -0
- package/dist/core/assert.d.ts +36 -0
- package/dist/core/assert.d.ts.map +1 -0
- package/dist/core/assert.js +84 -0
- package/dist/core/assert.js.map +1 -0
- package/dist/core/async.d.ts +11 -0
- package/dist/core/async.d.ts.map +1 -0
- package/dist/core/async.js +6 -0
- package/dist/core/async.js.map +1 -0
- package/dist/core/buffer.d.ts +23 -0
- package/dist/core/buffer.d.ts.map +1 -0
- package/dist/core/buffer.js +40 -0
- package/dist/core/buffer.js.map +1 -0
- package/dist/core/cancellation.d.ts +52 -0
- package/dist/core/cancellation.d.ts.map +1 -0
- package/dist/core/cancellation.js +169 -0
- package/dist/core/cancellation.js.map +1 -0
- package/dist/core/charCode.d.ts +428 -0
- package/dist/core/charCode.d.ts.map +1 -0
- package/dist/core/charCode.js +439 -0
- package/dist/core/charCode.js.map +1 -0
- package/dist/core/collections.d.ts +49 -0
- package/dist/core/collections.d.ts.map +1 -0
- package/dist/core/collections.js +132 -0
- package/dist/core/collections.js.map +1 -0
- package/dist/core/diff/diff.d.ts +151 -0
- package/dist/core/diff/diff.d.ts.map +1 -0
- package/dist/core/diff/diff.js +1076 -0
- package/dist/core/diff/diff.js.map +1 -0
- package/dist/core/diff/diffChange.d.ts +39 -0
- package/dist/core/diff/diffChange.d.ts.map +1 -0
- package/dist/core/diff/diffChange.js +37 -0
- package/dist/core/diff/diffChange.js.map +1 -0
- package/dist/core/errors.d.ts +114 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +258 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/event.d.ts +595 -0
- package/dist/core/event.d.ts.map +1 -0
- package/dist/core/event.js +1479 -0
- package/dist/core/event.js.map +1 -0
- package/dist/core/functional.d.ts +5 -0
- package/dist/core/functional.d.ts.map +1 -0
- package/dist/core/functional.js +35 -0
- package/dist/core/functional.js.map +1 -0
- package/dist/core/hash.d.ts +15 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +27 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/iterator.d.ts +33 -0
- package/dist/core/iterator.d.ts.map +1 -0
- package/dist/core/iterator.js +188 -0
- package/dist/core/iterator.js.map +1 -0
- package/dist/core/lifecycle.d.ts +313 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +789 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/linkedList.d.ts +17 -0
- package/dist/core/linkedList.d.ts.map +1 -0
- package/dist/core/linkedList.js +138 -0
- package/dist/core/linkedList.js.map +1 -0
- package/dist/core/map.d.ts +175 -0
- package/dist/core/map.d.ts.map +1 -0
- package/dist/core/map.js +796 -0
- package/dist/core/map.js.map +1 -0
- package/dist/core/marshallingIds.d.ts +29 -0
- package/dist/core/marshallingIds.d.ts.map +1 -0
- package/dist/core/marshallingIds.js +38 -0
- package/dist/core/marshallingIds.js.map +1 -0
- package/dist/core/observable.d.ts +28 -0
- package/dist/core/observable.d.ts.map +1 -0
- package/dist/core/observable.js +6 -0
- package/dist/core/observable.js.map +1 -0
- package/dist/core/platform.d.ts +4 -0
- package/dist/core/platform.d.ts.map +1 -0
- package/dist/core/platform.js +17 -0
- package/dist/core/platform.js.map +1 -0
- package/dist/core/position.d.ts +91 -0
- package/dist/core/position.d.ts.map +1 -0
- package/dist/core/position.js +145 -0
- package/dist/core/position.js.map +1 -0
- package/dist/core/range.d.ts +198 -0
- package/dist/core/range.d.ts.map +1 -0
- package/dist/core/range.js +426 -0
- package/dist/core/range.js.map +1 -0
- package/dist/core/resources.d.ts +10 -0
- package/dist/core/resources.d.ts.map +1 -0
- package/dist/core/resources.js +126 -0
- package/dist/core/resources.js.map +1 -0
- package/dist/core/sequence.d.ts +20 -0
- package/dist/core/sequence.d.ts.map +1 -0
- package/dist/core/sequence.js +21 -0
- package/dist/core/sequence.js.map +1 -0
- package/dist/core/stopwatch.d.ts +11 -0
- package/dist/core/stopwatch.d.ts.map +1 -0
- package/dist/core/stopwatch.js +33 -0
- package/dist/core/stopwatch.js.map +1 -0
- package/dist/core/symbols.d.ts +5 -0
- package/dist/core/symbols.d.ts.map +1 -0
- package/dist/core/symbols.js +13 -0
- package/dist/core/symbols.js.map +1 -0
- package/dist/core/types.d.ts +229 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +278 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/uint.d.ts +32 -0
- package/dist/core/uint.d.ts.map +1 -0
- package/dist/core/uint.js +57 -0
- package/dist/core/uint.js.map +1 -0
- package/dist/core/uri.d.ts +172 -0
- package/dist/core/uri.d.ts.map +1 -0
- package/dist/core/uri.js +623 -0
- package/dist/core/uri.js.map +1 -0
- package/dist/host/browserAutomation.d.ts +276 -0
- package/dist/host/browserAutomation.d.ts.map +1 -0
- package/dist/host/browserAutomation.js +6 -0
- package/dist/host/browserAutomation.js.map +1 -0
- package/dist/host/diagnostics.d.ts +68 -0
- package/dist/host/diagnostics.d.ts.map +1 -0
- package/dist/host/diagnostics.js +41 -0
- package/dist/host/diagnostics.js.map +1 -0
- package/dist/host/files.d.ts +70 -0
- package/dist/host/files.d.ts.map +1 -0
- package/dist/host/files.js +54 -0
- package/dist/host/files.js.map +1 -0
- package/dist/host/services.d.ts +106 -0
- package/dist/host/services.d.ts.map +1 -0
- package/dist/host/services.js +6 -0
- package/dist/host/services.js.map +1 -0
- package/dist/host/symbols.d.ts +45 -0
- package/dist/host/symbols.d.ts.map +1 -0
- package/dist/host/symbols.js +43 -0
- package/dist/host/symbols.js.map +1 -0
- package/dist/host/textModel.d.ts +83 -0
- package/dist/host/textModel.d.ts.map +1 -0
- package/dist/host/textModel.js +6 -0
- package/dist/host/textModel.js.map +1 -0
- package/dist/host/workspace.d.ts +123 -0
- package/dist/host/workspace.d.ts.map +1 -0
- package/dist/host/workspace.js +32 -0
- package/dist/host/workspace.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/node/cleanSlateAnthropicMessageAdapter.d.ts +12 -0
- package/dist/node/cleanSlateAnthropicMessageAdapter.d.ts.map +1 -0
- package/dist/node/cleanSlateAnthropicMessageAdapter.js +130 -0
- package/dist/node/cleanSlateAnthropicMessageAdapter.js.map +1 -0
- package/dist/node/cleanSlateHeadlessRunner.d.ts +63 -0
- package/dist/node/cleanSlateHeadlessRunner.d.ts.map +1 -0
- package/dist/node/cleanSlateHeadlessRunner.js +84 -0
- package/dist/node/cleanSlateHeadlessRunner.js.map +1 -0
- package/dist/node/cleanSlateNodeAgentRuntime.d.ts +94 -0
- package/dist/node/cleanSlateNodeAgentRuntime.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeAgentRuntime.js +339 -0
- package/dist/node/cleanSlateNodeAgentRuntime.js.map +1 -0
- package/dist/node/cleanSlateNodeBrowserAutomation.d.ts +279 -0
- package/dist/node/cleanSlateNodeBrowserAutomation.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeBrowserAutomation.js +470 -0
- package/dist/node/cleanSlateNodeBrowserAutomation.js.map +1 -0
- package/dist/node/cleanSlateNodeCommandService.d.ts +40 -0
- package/dist/node/cleanSlateNodeCommandService.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeCommandService.js +435 -0
- package/dist/node/cleanSlateNodeCommandService.js.map +1 -0
- package/dist/node/cleanSlateNodeFileServices.d.ts +68 -0
- package/dist/node/cleanSlateNodeFileServices.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeFileServices.js +138 -0
- package/dist/node/cleanSlateNodeFileServices.js.map +1 -0
- package/dist/node/cleanSlateNodeIndexService.d.ts +17 -0
- package/dist/node/cleanSlateNodeIndexService.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeIndexService.js +128 -0
- package/dist/node/cleanSlateNodeIndexService.js.map +1 -0
- package/dist/node/cleanSlateNodeLanguageCommands.d.ts +11 -0
- package/dist/node/cleanSlateNodeLanguageCommands.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeLanguageCommands.js +146 -0
- package/dist/node/cleanSlateNodeLanguageCommands.js.map +1 -0
- package/dist/node/cleanSlateNodeMainService.d.ts +87 -0
- package/dist/node/cleanSlateNodeMainService.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeMainService.js +1304 -0
- package/dist/node/cleanSlateNodeMainService.js.map +1 -0
- package/dist/node/cleanSlateNodeMcpClient.d.ts +20 -0
- package/dist/node/cleanSlateNodeMcpClient.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeMcpClient.js +184 -0
- package/dist/node/cleanSlateNodeMcpClient.js.map +1 -0
- package/dist/node/cleanSlateNodeSearchService.d.ts +14 -0
- package/dist/node/cleanSlateNodeSearchService.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeSearchService.js +180 -0
- package/dist/node/cleanSlateNodeSearchService.js.map +1 -0
- package/dist/node/cleanSlateNodeTextModel.d.ts +56 -0
- package/dist/node/cleanSlateNodeTextModel.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeTextModel.js +127 -0
- package/dist/node/cleanSlateNodeTextModel.js.map +1 -0
- package/dist/node/cleanSlateNodeToolContext.d.ts +50 -0
- package/dist/node/cleanSlateNodeToolContext.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeToolContext.js +134 -0
- package/dist/node/cleanSlateNodeToolContext.js.map +1 -0
- package/dist/node/cleanSlateNodeWebRetrieval.d.ts +20 -0
- package/dist/node/cleanSlateNodeWebRetrieval.d.ts.map +1 -0
- package/dist/node/cleanSlateNodeWebRetrieval.js +379 -0
- package/dist/node/cleanSlateNodeWebRetrieval.js.map +1 -0
- package/dist/node/cleanSlateOpenAIMessageAdapter.d.ts +8 -0
- package/dist/node/cleanSlateOpenAIMessageAdapter.d.ts.map +1 -0
- package/dist/node/cleanSlateOpenAIMessageAdapter.js +111 -0
- package/dist/node/cleanSlateOpenAIMessageAdapter.js.map +1 -0
- package/dist/node/cleanSlateProviderSchemaNormalizer.d.ts +18 -0
- package/dist/node/cleanSlateProviderSchemaNormalizer.d.ts.map +1 -0
- package/dist/node/cleanSlateProviderSchemaNormalizer.js +175 -0
- package/dist/node/cleanSlateProviderSchemaNormalizer.js.map +1 -0
- package/dist/node/index.d.ts +25 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +28 -0
- package/dist/node/index.js.map +1 -0
- package/dist/protocol/cleanSlateAI.d.ts +964 -0
- package/dist/protocol/cleanSlateAI.d.ts.map +1 -0
- package/dist/protocol/cleanSlateAI.js +35 -0
- package/dist/protocol/cleanSlateAI.js.map +1 -0
- package/dist/protocol/cleanSlateModelCapabilities.d.ts +86 -0
- package/dist/protocol/cleanSlateModelCapabilities.d.ts.map +1 -0
- package/dist/protocol/cleanSlateModelCapabilities.js +1104 -0
- package/dist/protocol/cleanSlateModelCapabilities.js.map +1 -0
- package/dist/protocol/cleanSlateProviderMessageTransforms.d.ts +11 -0
- package/dist/protocol/cleanSlateProviderMessageTransforms.d.ts.map +1 -0
- package/dist/protocol/cleanSlateProviderMessageTransforms.js +178 -0
- package/dist/protocol/cleanSlateProviderMessageTransforms.js.map +1 -0
- package/dist/protocol/cleanSlateService.d.ts +68 -0
- package/dist/protocol/cleanSlateService.d.ts.map +1 -0
- package/dist/protocol/cleanSlateService.js +1149 -0
- package/dist/protocol/cleanSlateService.js.map +1 -0
- package/dist/services/cleanSlateCancellation.d.ts +7 -0
- package/dist/services/cleanSlateCancellation.d.ts.map +1 -0
- package/dist/services/cleanSlateCancellation.js +56 -0
- package/dist/services/cleanSlateCancellation.js.map +1 -0
- package/dist/services/cleanSlateCommandExecutionService.d.ts +25 -0
- package/dist/services/cleanSlateCommandExecutionService.d.ts.map +1 -0
- package/dist/services/cleanSlateCommandExecutionService.js +31 -0
- package/dist/services/cleanSlateCommandExecutionService.js.map +1 -0
- package/dist/services/cleanSlateDiffService.d.ts +62 -0
- package/dist/services/cleanSlateDiffService.d.ts.map +1 -0
- package/dist/services/cleanSlateDiffService.js +428 -0
- package/dist/services/cleanSlateDiffService.js.map +1 -0
- package/dist/services/cleanSlateEditMatchValidator.d.ts +63 -0
- package/dist/services/cleanSlateEditMatchValidator.d.ts.map +1 -0
- package/dist/services/cleanSlateEditMatchValidator.js +341 -0
- package/dist/services/cleanSlateEditMatchValidator.js.map +1 -0
- package/dist/services/cleanSlateEditService.d.ts +155 -0
- package/dist/services/cleanSlateEditService.d.ts.map +1 -0
- package/dist/services/cleanSlateEditService.js +848 -0
- package/dist/services/cleanSlateEditService.js.map +1 -0
- package/dist/services/cleanSlateFileHistory.d.ts +56 -0
- package/dist/services/cleanSlateFileHistory.d.ts.map +1 -0
- package/dist/services/cleanSlateFileHistory.js +157 -0
- package/dist/services/cleanSlateFileHistory.js.map +1 -0
- package/dist/services/cleanSlateTaskEvidenceCodec.d.ts +15 -0
- package/dist/services/cleanSlateTaskEvidenceCodec.d.ts.map +1 -0
- package/dist/services/cleanSlateTaskEvidenceCodec.js +151 -0
- package/dist/services/cleanSlateTaskEvidenceCodec.js.map +1 -0
- package/dist/services/cleanSlateTaskSessionService.d.ts +258 -0
- package/dist/services/cleanSlateTaskSessionService.d.ts.map +1 -0
- package/dist/services/cleanSlateTaskSessionService.js +1079 -0
- package/dist/services/cleanSlateTaskSessionService.js.map +1 -0
- package/dist/services/cleanSlateTaskState.d.ts +32 -0
- package/dist/services/cleanSlateTaskState.d.ts.map +1 -0
- package/dist/services/cleanSlateTaskState.js +40 -0
- package/dist/services/cleanSlateTaskState.js.map +1 -0
- package/dist/services/cleanSlateThreadService.d.ts +64 -0
- package/dist/services/cleanSlateThreadService.d.ts.map +1 -0
- package/dist/services/cleanSlateThreadService.js +188 -0
- package/dist/services/cleanSlateThreadService.js.map +1 -0
- package/dist/services/cleanSlateTools.d.ts +29 -0
- package/dist/services/cleanSlateTools.d.ts.map +1 -0
- package/dist/services/cleanSlateTools.js +38 -0
- package/dist/services/cleanSlateTools.js.map +1 -0
- package/dist/services/cleanSlateVerificationTargetTracker.d.ts +23 -0
- package/dist/services/cleanSlateVerificationTargetTracker.d.ts.map +1 -0
- package/dist/services/cleanSlateVerificationTargetTracker.js +214 -0
- package/dist/services/cleanSlateVerificationTargetTracker.js.map +1 -0
- package/dist/skills/cleanSlateSkillCatalog.d.ts +29 -0
- package/dist/skills/cleanSlateSkillCatalog.d.ts.map +1 -0
- package/dist/skills/cleanSlateSkillCatalog.js +225 -0
- package/dist/skills/cleanSlateSkillCatalog.js.map +1 -0
- package/dist/tools/ApplyEditTool.d.ts +73 -0
- package/dist/tools/ApplyEditTool.d.ts.map +1 -0
- package/dist/tools/ApplyEditTool.js +741 -0
- package/dist/tools/ApplyEditTool.js.map +1 -0
- package/dist/tools/AskQuestionTool.d.ts +3 -0
- package/dist/tools/AskQuestionTool.d.ts.map +1 -0
- package/dist/tools/AskQuestionTool.js +113 -0
- package/dist/tools/AskQuestionTool.js.map +1 -0
- package/dist/tools/BrowserAutomationTools.d.ts +28 -0
- package/dist/tools/BrowserAutomationTools.d.ts.map +1 -0
- package/dist/tools/BrowserAutomationTools.js +639 -0
- package/dist/tools/BrowserAutomationTools.js.map +1 -0
- package/dist/tools/CreateMultipleFilesTool.d.ts +6 -0
- package/dist/tools/CreateMultipleFilesTool.d.ts.map +1 -0
- package/dist/tools/CreateMultipleFilesTool.js +115 -0
- package/dist/tools/CreateMultipleFilesTool.js.map +1 -0
- package/dist/tools/ExecuteCommandTool.d.ts +12 -0
- package/dist/tools/ExecuteCommandTool.d.ts.map +1 -0
- package/dist/tools/ExecuteCommandTool.js +378 -0
- package/dist/tools/ExecuteCommandTool.js.map +1 -0
- package/dist/tools/FileHistoryRewindTool.d.ts +3 -0
- package/dist/tools/FileHistoryRewindTool.d.ts.map +1 -0
- package/dist/tools/FileHistoryRewindTool.js +45 -0
- package/dist/tools/FileHistoryRewindTool.js.map +1 -0
- package/dist/tools/FindByNameTool.d.ts +6 -0
- package/dist/tools/FindByNameTool.d.ts.map +1 -0
- package/dist/tools/FindByNameTool.js +80 -0
- package/dist/tools/FindByNameTool.js.map +1 -0
- package/dist/tools/FindReferencesTool.d.ts +3 -0
- package/dist/tools/FindReferencesTool.d.ts.map +1 -0
- package/dist/tools/FindReferencesTool.js +128 -0
- package/dist/tools/FindReferencesTool.js.map +1 -0
- package/dist/tools/GetDefinitionsTool.d.ts +3 -0
- package/dist/tools/GetDefinitionsTool.d.ts.map +1 -0
- package/dist/tools/GetDefinitionsTool.js +136 -0
- package/dist/tools/GetDefinitionsTool.js.map +1 -0
- package/dist/tools/GetOpenFilesTool.d.ts +6 -0
- package/dist/tools/GetOpenFilesTool.d.ts.map +1 -0
- package/dist/tools/GetOpenFilesTool.js +21 -0
- package/dist/tools/GetOpenFilesTool.js.map +1 -0
- package/dist/tools/GrepSearchTool.d.ts +7 -0
- package/dist/tools/GrepSearchTool.d.ts.map +1 -0
- package/dist/tools/GrepSearchTool.js +95 -0
- package/dist/tools/GrepSearchTool.js.map +1 -0
- package/dist/tools/ListDirTool.d.ts +6 -0
- package/dist/tools/ListDirTool.d.ts.map +1 -0
- package/dist/tools/ListDirTool.js +39 -0
- package/dist/tools/ListDirTool.js.map +1 -0
- package/dist/tools/MCPTools.d.ts +6 -0
- package/dist/tools/MCPTools.d.ts.map +1 -0
- package/dist/tools/MCPTools.js +103 -0
- package/dist/tools/MCPTools.js.map +1 -0
- package/dist/tools/MultiFileReplaceTool.d.ts +6 -0
- package/dist/tools/MultiFileReplaceTool.d.ts.map +1 -0
- package/dist/tools/MultiFileReplaceTool.js +345 -0
- package/dist/tools/MultiFileReplaceTool.js.map +1 -0
- package/dist/tools/ReadFileRangeTool.d.ts +6 -0
- package/dist/tools/ReadFileRangeTool.d.ts.map +1 -0
- package/dist/tools/ReadFileRangeTool.js +150 -0
- package/dist/tools/ReadFileRangeTool.js.map +1 -0
- package/dist/tools/ReadFileTool.d.ts +6 -0
- package/dist/tools/ReadFileTool.d.ts.map +1 -0
- package/dist/tools/ReadFileTool.js +183 -0
- package/dist/tools/ReadFileTool.js.map +1 -0
- package/dist/tools/ReadLintsTool.d.ts +6 -0
- package/dist/tools/ReadLintsTool.d.ts.map +1 -0
- package/dist/tools/ReadLintsTool.js +83 -0
- package/dist/tools/ReadLintsTool.js.map +1 -0
- package/dist/tools/ReadReferenceTool.d.ts +6 -0
- package/dist/tools/ReadReferenceTool.d.ts.map +1 -0
- package/dist/tools/ReadReferenceTool.js +24 -0
- package/dist/tools/ReadReferenceTool.js.map +1 -0
- package/dist/tools/ReadSymbolsTool.d.ts +3 -0
- package/dist/tools/ReadSymbolsTool.d.ts.map +1 -0
- package/dist/tools/ReadSymbolsTool.js +100 -0
- package/dist/tools/ReadSymbolsTool.js.map +1 -0
- package/dist/tools/SearchCodebaseTool.d.ts +6 -0
- package/dist/tools/SearchCodebaseTool.d.ts.map +1 -0
- package/dist/tools/SearchCodebaseTool.js +30 -0
- package/dist/tools/SearchCodebaseTool.js.map +1 -0
- package/dist/tools/SearchWorkspaceTool.d.ts +7 -0
- package/dist/tools/SearchWorkspaceTool.d.ts.map +1 -0
- package/dist/tools/SearchWorkspaceTool.js +21 -0
- package/dist/tools/SearchWorkspaceTool.js.map +1 -0
- package/dist/tools/SemanticSearchTool.d.ts +12 -0
- package/dist/tools/SemanticSearchTool.d.ts.map +1 -0
- package/dist/tools/SemanticSearchTool.js +46 -0
- package/dist/tools/SemanticSearchTool.js.map +1 -0
- package/dist/tools/SkillTools.d.ts +3 -0
- package/dist/tools/SkillTools.d.ts.map +1 -0
- package/dist/tools/SkillTools.js +108 -0
- package/dist/tools/SkillTools.js.map +1 -0
- package/dist/tools/SpawnWorkerTool.d.ts +6 -0
- package/dist/tools/SpawnWorkerTool.d.ts.map +1 -0
- package/dist/tools/SpawnWorkerTool.js +28 -0
- package/dist/tools/SpawnWorkerTool.js.map +1 -0
- package/dist/tools/SubmitArtifactTool.d.ts +3 -0
- package/dist/tools/SubmitArtifactTool.d.ts.map +1 -0
- package/dist/tools/SubmitArtifactTool.js +121 -0
- package/dist/tools/SubmitArtifactTool.js.map +1 -0
- package/dist/tools/UndoEditTool.d.ts +3 -0
- package/dist/tools/UndoEditTool.d.ts.map +1 -0
- package/dist/tools/UndoEditTool.js +66 -0
- package/dist/tools/UndoEditTool.js.map +1 -0
- package/dist/tools/UpdateTodoTool.d.ts +6 -0
- package/dist/tools/UpdateTodoTool.d.ts.map +1 -0
- package/dist/tools/UpdateTodoTool.js +116 -0
- package/dist/tools/UpdateTodoTool.js.map +1 -0
- package/dist/tools/WebRetrievalTools.d.ts +4 -0
- package/dist/tools/WebRetrievalTools.d.ts.map +1 -0
- package/dist/tools/WebRetrievalTools.js +169 -0
- package/dist/tools/WebRetrievalTools.js.map +1 -0
- package/dist/tools/WriteFileTool.d.ts +6 -0
- package/dist/tools/WriteFileTool.d.ts.map +1 -0
- package/dist/tools/WriteFileTool.js +145 -0
- package/dist/tools/WriteFileTool.js.map +1 -0
- package/dist/tools/cleanSlateFileReadPolicy.d.ts +33 -0
- package/dist/tools/cleanSlateFileReadPolicy.d.ts.map +1 -0
- package/dist/tools/cleanSlateFileReadPolicy.js +84 -0
- package/dist/tools/cleanSlateFileReadPolicy.js.map +1 -0
- package/dist/tools/cleanSlateHostTypes.d.ts +100 -0
- package/dist/tools/cleanSlateHostTypes.d.ts.map +1 -0
- package/dist/tools/cleanSlateHostTypes.js +6 -0
- package/dist/tools/cleanSlateHostTypes.js.map +1 -0
- package/dist/tools/cleanSlatePlanArtifactPolicy.d.ts +47 -0
- package/dist/tools/cleanSlatePlanArtifactPolicy.d.ts.map +1 -0
- package/dist/tools/cleanSlatePlanArtifactPolicy.js +126 -0
- package/dist/tools/cleanSlatePlanArtifactPolicy.js.map +1 -0
- package/dist/tools/cleanSlateStaleDiagnosticPolicy.d.ts +3 -0
- package/dist/tools/cleanSlateStaleDiagnosticPolicy.d.ts.map +1 -0
- package/dist/tools/cleanSlateStaleDiagnosticPolicy.js +13 -0
- package/dist/tools/cleanSlateStaleDiagnosticPolicy.js.map +1 -0
- package/dist/tools/languageFeatureActivation.d.ts +13 -0
- package/dist/tools/languageFeatureActivation.d.ts.map +1 -0
- package/dist/tools/languageFeatureActivation.js +95 -0
- package/dist/tools/languageFeatureActivation.js.map +1 -0
- package/dist/tools/registry.d.ts +5 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +104 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/structuredEditCanonicalizer.d.ts +11 -0
- package/dist/tools/structuredEditCanonicalizer.d.ts.map +1 -0
- package/dist/tools/structuredEditCanonicalizer.js +44 -0
- package/dist/tools/structuredEditCanonicalizer.js.map +1 -0
- package/dist/tools/symbolContext.d.ts +36 -0
- package/dist/tools/symbolContext.d.ts.map +1 -0
- package/dist/tools/symbolContext.js +146 -0
- package/dist/tools/symbolContext.js.map +1 -0
- package/dist/tools/symbolEditResolver.d.ts +11 -0
- package/dist/tools/symbolEditResolver.d.ts.map +1 -0
- package/dist/tools/symbolEditResolver.js +259 -0
- package/dist/tools/symbolEditResolver.js.map +1 -0
- package/dist/tools/symbolIndex.d.ts +18 -0
- package/dist/tools/symbolIndex.d.ts.map +1 -0
- package/dist/tools/symbolIndex.js +235 -0
- package/dist/tools/symbolIndex.js.map +1 -0
- package/dist/tools/types.d.ts +108 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +6 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/utils.d.ts +56 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +205 -0
- package/dist/tools/utils.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) CleanSlate. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Range } from '../core/range.js';
|
|
6
|
+
import { symbolKindToNodeType } from './symbolContext.js';
|
|
7
|
+
import { fireDocumentSymbolProvider } from './languageFeatureActivation.js';
|
|
8
|
+
import { cancellationTokenFromAbortSignal } from '../services/cleanSlateCancellation.js';
|
|
9
|
+
export async function buildCleanSlateSymbolIndex(model, context) {
|
|
10
|
+
const lspCandidates = await collectLanguageFeatureCandidates(model, context);
|
|
11
|
+
const treeSitterCandidates = await collectTreeSitterCandidates(model, context);
|
|
12
|
+
const entries = deduplicateCandidates([...lspCandidates, ...treeSitterCandidates]);
|
|
13
|
+
console.info(`[CleanSlateEdit] symbol_index: ${entries.length} symbol(s), ${lspCandidates.length} from LSP, ${treeSitterCandidates.length} from Tree-sitter.`);
|
|
14
|
+
return {
|
|
15
|
+
entries,
|
|
16
|
+
lspEntryCount: lspCandidates.length,
|
|
17
|
+
treeSitterEntryCount: treeSitterCandidates.length
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async function collectLanguageFeatureCandidates(model, context) {
|
|
21
|
+
if (!context.languageFeaturesService && !context.commandService) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
const candidates = [];
|
|
25
|
+
const token = cancellationTokenFromAbortSignal(context.signal);
|
|
26
|
+
const firedSymbols = await fireDocumentSymbolProvider(model.uri, context);
|
|
27
|
+
if (Array.isArray(firedSymbols) && firedSymbols.length > 0) {
|
|
28
|
+
console.info(`[CleanSlateEdit] symbol_index: LSP command returned ${firedSymbols.length} document symbol(s) for ${model.uri.fsPath}.`);
|
|
29
|
+
collectSymbolCandidates(firedSymbols, [], candidates);
|
|
30
|
+
}
|
|
31
|
+
// Retry loop for symbol providers after explicitly firing the language server.
|
|
32
|
+
let providers = context.languageFeaturesService?.documentSymbolProvider.ordered(model) ?? [];
|
|
33
|
+
let retries = 0;
|
|
34
|
+
while (providers.length === 0 && retries < 4) {
|
|
35
|
+
console.info(`[CleanSlateEdit] symbol_index: No provider yet for ${model.uri.fsPath} after LSP fire. Waiting 500ms (retry ${retries + 1}/4)...`);
|
|
36
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
37
|
+
providers = context.languageFeaturesService?.documentSymbolProvider.ordered(model) ?? [];
|
|
38
|
+
retries++;
|
|
39
|
+
}
|
|
40
|
+
if (providers.length === 0) {
|
|
41
|
+
return candidates;
|
|
42
|
+
}
|
|
43
|
+
for (const provider of providers) {
|
|
44
|
+
// LSP enrichment is best-effort and must NEVER abort the edit: the
|
|
45
|
+
// provider round-trips to the extension host, and a freshly resolved
|
|
46
|
+
// headless model may not have synced there yet — extHostDocuments then
|
|
47
|
+
// throws "Unable to retrieve document from URI". An uncaught rejection
|
|
48
|
+
// here used to fail the whole apply_edit; the canonicalizer has a full
|
|
49
|
+
// range/string fallback pipeline, so a failed provider is only a lost
|
|
50
|
+
// enhancement.
|
|
51
|
+
let symbols;
|
|
52
|
+
try {
|
|
53
|
+
symbols = await provider.provideDocumentSymbols(model, token);
|
|
54
|
+
// Optional: second retry level for actual results if the provider exists but is silent
|
|
55
|
+
if (!symbols || symbols.length === 0) {
|
|
56
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
57
|
+
symbols = await provider.provideDocumentSymbols(model, token);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.info(`[CleanSlateEdit] symbol_index: provider failed for ${model.uri.fsPath} (continuing without it): ${String(error)}`);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (symbols) {
|
|
65
|
+
collectSymbolCandidates(symbols, [], candidates);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return candidates;
|
|
69
|
+
}
|
|
70
|
+
function collectSymbolCandidates(symbols, parentPath, candidates) {
|
|
71
|
+
for (const symbol of symbols) {
|
|
72
|
+
if (!symbol?.range || !symbol?.selectionRange || typeof symbol.name !== 'string') {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const range = Range.lift(symbol.range);
|
|
76
|
+
const selectionRange = Range.lift(symbol.selectionRange);
|
|
77
|
+
if (!range || !selectionRange) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const currentPath = [...parentPath, symbol.name];
|
|
81
|
+
candidates.push({
|
|
82
|
+
name: symbol.name,
|
|
83
|
+
path: currentPath,
|
|
84
|
+
range,
|
|
85
|
+
selectionRange,
|
|
86
|
+
source: 'lsp',
|
|
87
|
+
nodeType: symbolKindToNodeType(symbol.kind)
|
|
88
|
+
});
|
|
89
|
+
if (Array.isArray(symbol.children)) {
|
|
90
|
+
collectSymbolCandidates(symbol.children, currentPath, candidates);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async function collectTreeSitterCandidates(model, context) {
|
|
95
|
+
if (!context.treeSitterLibraryService) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
const languageId = model.getLanguageId();
|
|
99
|
+
if (!languageId) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
let parser;
|
|
103
|
+
let tree;
|
|
104
|
+
try {
|
|
105
|
+
const [ParserCtor, language] = await Promise.all([
|
|
106
|
+
context.treeSitterLibraryService.getParserClass(),
|
|
107
|
+
context.treeSitterLibraryService.getLanguagePromise(languageId)
|
|
108
|
+
]);
|
|
109
|
+
if (!language) {
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
parser = new ParserCtor();
|
|
113
|
+
parser.setLanguage(language);
|
|
114
|
+
tree = parser.parse(model.getValue());
|
|
115
|
+
if (!tree) {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
const candidates = [];
|
|
119
|
+
const stack = [{
|
|
120
|
+
node: tree.rootNode,
|
|
121
|
+
ownerPath: []
|
|
122
|
+
}];
|
|
123
|
+
while (stack.length > 0) {
|
|
124
|
+
const { node, ownerPath } = stack.pop();
|
|
125
|
+
const declarationName = extractDeclarationName(node);
|
|
126
|
+
const isStructuralDeclaration = declarationName !== undefined && isLikelyStructuralDeclaration(node);
|
|
127
|
+
const nextOwnerPath = isStructuralDeclaration ? [...ownerPath, declarationName] : ownerPath;
|
|
128
|
+
if (isStructuralDeclaration) {
|
|
129
|
+
const nodeRange = toRange(node);
|
|
130
|
+
candidates.push({
|
|
131
|
+
name: declarationName,
|
|
132
|
+
path: nextOwnerPath,
|
|
133
|
+
range: nodeRange,
|
|
134
|
+
selectionRange: toRange(findNameNode(node) ?? node),
|
|
135
|
+
source: 'tree_sitter',
|
|
136
|
+
nodeType: node.type
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
for (let childIndex = node.namedChildren.length - 1; childIndex >= 0; childIndex--) {
|
|
140
|
+
const child = node.namedChildren[childIndex];
|
|
141
|
+
if (child) {
|
|
142
|
+
stack.push({ node: child, ownerPath: nextOwnerPath });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return candidates;
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
tree?.delete();
|
|
153
|
+
parser?.delete();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function deduplicateCandidates(candidates) {
|
|
157
|
+
const deduplicated = new Map();
|
|
158
|
+
for (const candidate of candidates) {
|
|
159
|
+
const key = [
|
|
160
|
+
candidate.name,
|
|
161
|
+
candidate.path.join('>'),
|
|
162
|
+
candidate.selectionRange.startLineNumber,
|
|
163
|
+
candidate.selectionRange.startColumn,
|
|
164
|
+
candidate.selectionRange.endLineNumber,
|
|
165
|
+
candidate.selectionRange.endColumn
|
|
166
|
+
].join(':');
|
|
167
|
+
if (!deduplicated.has(key) || candidate.source === 'tree_sitter') {
|
|
168
|
+
deduplicated.set(key, candidate);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return Array.from(deduplicated.values());
|
|
172
|
+
}
|
|
173
|
+
function extractDeclarationName(node) {
|
|
174
|
+
const explicitNameNode = findNameNode(node);
|
|
175
|
+
const explicitName = normalizeDeclarationName(explicitNameNode?.text);
|
|
176
|
+
if (explicitName) {
|
|
177
|
+
return explicitName;
|
|
178
|
+
}
|
|
179
|
+
for (const child of node.namedChildren) {
|
|
180
|
+
if (!child) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const childType = child.type.toLowerCase();
|
|
184
|
+
if (childType.includes('identifier') || childType.endsWith('name')) {
|
|
185
|
+
const childName = normalizeDeclarationName(child.text);
|
|
186
|
+
if (childName) {
|
|
187
|
+
return childName;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
function findNameNode(node) {
|
|
194
|
+
const directNameNode = node.childForFieldName('name');
|
|
195
|
+
if (directNameNode) {
|
|
196
|
+
return directNameNode;
|
|
197
|
+
}
|
|
198
|
+
for (const wrapperField of ['declarator', 'declaration']) {
|
|
199
|
+
const wrapperNode = node.childForFieldName(wrapperField);
|
|
200
|
+
if (wrapperNode) {
|
|
201
|
+
const nestedNameNode = findNameNode(wrapperNode);
|
|
202
|
+
if (nestedNameNode) {
|
|
203
|
+
return nestedNameNode;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return undefined;
|
|
208
|
+
}
|
|
209
|
+
function normalizeDeclarationName(rawText) {
|
|
210
|
+
const normalized = rawText?.trim();
|
|
211
|
+
return normalized && /^[A-Za-z_$][\w$]*$/.test(normalized) ? normalized : undefined;
|
|
212
|
+
}
|
|
213
|
+
function isLikelyStructuralDeclaration(node) {
|
|
214
|
+
const normalizedType = node.type.toLowerCase();
|
|
215
|
+
if (normalizedType.includes('class')
|
|
216
|
+
|| normalizedType.includes('function')
|
|
217
|
+
|| normalizedType.includes('method')
|
|
218
|
+
|| normalizedType.includes('constructor')
|
|
219
|
+
|| normalizedType.includes('interface')
|
|
220
|
+
|| normalizedType.includes('enum')
|
|
221
|
+
|| normalizedType.includes('typedef')
|
|
222
|
+
|| normalizedType.includes('alias')
|
|
223
|
+
|| normalizedType.includes('struct')
|
|
224
|
+
|| normalizedType.includes('trait')
|
|
225
|
+
|| normalizedType.includes('component')
|
|
226
|
+
|| normalizedType.includes('declaration')
|
|
227
|
+
|| normalizedType.includes('definition')) {
|
|
228
|
+
return true;
|
|
229
|
+
}
|
|
230
|
+
return node.childForFieldName('body') !== null || node.childForFieldName('parameters') !== null;
|
|
231
|
+
}
|
|
232
|
+
function toRange(node) {
|
|
233
|
+
return new Range(node.startPosition.row + 1, node.startPosition.column + 1, node.endPosition.row + 1, node.endPosition.column + 1);
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=symbolIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbolIndex.js","sourceRoot":"","sources":["../../src/tools/symbolIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { IModelHost } from '../host/textModel.js';
|
|
2
|
+
import { ITextFileHost } from '../host/textModel.js';
|
|
3
|
+
import { IFileHost } from '../host/files.js';
|
|
4
|
+
import { ICleanSlateIndexService, ICleanSlateConfigurationService, ICleanSlateContextService, ICleanSlateArtifactService, IMCPClientService, ICleanSlateMainService } from '../protocol/cleanSlateAI.js';
|
|
5
|
+
import { ICleanSlateCommandExecutionService } from '../services/cleanSlateCommandExecutionService.js';
|
|
6
|
+
import { IWorkspaceHost } from '../host/workspace.js';
|
|
7
|
+
import { IMarkerHost } from '../host/diagnostics.js';
|
|
8
|
+
import { ICleanSlateBulkEditHost, ICleanSlateEditorDecorationHost, ICleanSlateEditorRevealHost } from './cleanSlateHostTypes.js';
|
|
9
|
+
import { IArtifactPresentationHost, IInstantiationHost } from '../host/services.js';
|
|
10
|
+
import { IEditorOpenHost } from '../host/workspace.js';
|
|
11
|
+
import { ISearchHost } from '../host/workspace.js';
|
|
12
|
+
import { ILanguageFeaturesHost } from '../host/services.js';
|
|
13
|
+
import { IUndoRedoHost } from '../host/workspace.js';
|
|
14
|
+
import { ITreeSitterHost } from '../host/services.js';
|
|
15
|
+
import { IEnvironmentHost } from '../host/workspace.js';
|
|
16
|
+
import { ICommandHost } from '../host/workspace.js';
|
|
17
|
+
import { ICleanSlateBrowserAutomationService } from '../host/browserAutomation.js';
|
|
18
|
+
export type CleanSlateToolSurface = 'ide' | 'agentManager';
|
|
19
|
+
export interface CleanSlateFileReadBudgetContext {
|
|
20
|
+
/** Resolved usable input window for the active provider/model. */
|
|
21
|
+
contextWindowTokens: number;
|
|
22
|
+
/** Estimated input tokens still available before adding the next tool result. */
|
|
23
|
+
availableInputTokens: number;
|
|
24
|
+
}
|
|
25
|
+
export interface CleanSlateToolContext {
|
|
26
|
+
surface: CleanSlateToolSurface;
|
|
27
|
+
sessionId?: string;
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
modelService: IModelHost;
|
|
30
|
+
codeEditorService: ICleanSlateEditorRevealHost;
|
|
31
|
+
textFileService: ITextFileHost;
|
|
32
|
+
fileService: IFileHost;
|
|
33
|
+
contextService: ICleanSlateContextService;
|
|
34
|
+
indexService: ICleanSlateIndexService;
|
|
35
|
+
workspaceContextService: IWorkspaceHost;
|
|
36
|
+
/**
|
|
37
|
+
* The IDE's currently-open workspace (distinct from `workspaceContextService`, which for an
|
|
38
|
+
* Agent Manager session is scoped to that session's own project). Used to decide whether a
|
|
39
|
+
* file/artifact belongs to the same project the IDE has open before revealing it in the editor.
|
|
40
|
+
* Defaults to `workspaceContextService` for the IDE surface, where the two are equivalent.
|
|
41
|
+
*/
|
|
42
|
+
ideWorkspaceContextService?: IWorkspaceHost;
|
|
43
|
+
configService: ICleanSlateConfigurationService;
|
|
44
|
+
markerService: IMarkerHost;
|
|
45
|
+
artifactService: ICleanSlateArtifactService;
|
|
46
|
+
mcpClientService?: IMCPClientService;
|
|
47
|
+
cleanSlateMainService?: ICleanSlateMainService;
|
|
48
|
+
instantiationService: IInstantiationHost;
|
|
49
|
+
/** Shows a generated artifact. Absent on hosts with nowhere to show it. */
|
|
50
|
+
artifactPresentationHost?: IArtifactPresentationHost;
|
|
51
|
+
editorService: IEditorOpenHost;
|
|
52
|
+
commandExecutionService: ICleanSlateCommandExecutionService;
|
|
53
|
+
browserAutomationService: ICleanSlateBrowserAutomationService;
|
|
54
|
+
bulkEditService?: ICleanSlateBulkEditHost;
|
|
55
|
+
/** Inline diff decorations. Absent when nothing is on screen to decorate. */
|
|
56
|
+
editorDecorationHost?: ICleanSlateEditorDecorationHost;
|
|
57
|
+
searchService?: ISearchHost;
|
|
58
|
+
languageFeaturesService?: ILanguageFeaturesHost;
|
|
59
|
+
undoRedoService?: IUndoRedoHost;
|
|
60
|
+
treeSitterLibraryService?: ITreeSitterHost;
|
|
61
|
+
environmentService?: IEnvironmentHost;
|
|
62
|
+
commandService?: ICommandHost;
|
|
63
|
+
recentFocusLines?: Map<string, Set<number>>;
|
|
64
|
+
readFileState?: Map<string, CleanSlateReadFileState>;
|
|
65
|
+
fileReadBudget?: CleanSlateFileReadBudgetContext;
|
|
66
|
+
requestCommandApproval: (request: {
|
|
67
|
+
command: string;
|
|
68
|
+
cwd?: string;
|
|
69
|
+
reason?: string;
|
|
70
|
+
toolName?: string;
|
|
71
|
+
toolCallId?: string;
|
|
72
|
+
}) => Promise<boolean>;
|
|
73
|
+
onProgress?: (event: {
|
|
74
|
+
type: string;
|
|
75
|
+
[key: string]: any;
|
|
76
|
+
}) => void;
|
|
77
|
+
}
|
|
78
|
+
export interface CleanSlateReadFileState {
|
|
79
|
+
path: string;
|
|
80
|
+
uri: string;
|
|
81
|
+
content?: string;
|
|
82
|
+
currentVersionId?: number;
|
|
83
|
+
mtime?: number;
|
|
84
|
+
totalLines?: number;
|
|
85
|
+
isPartialView: boolean;
|
|
86
|
+
readAt: number;
|
|
87
|
+
ranges?: CleanSlateReadRangeEvidence[];
|
|
88
|
+
}
|
|
89
|
+
export interface CleanSlateReadRangeEvidence {
|
|
90
|
+
startLine: number;
|
|
91
|
+
endLine: number;
|
|
92
|
+
content: string;
|
|
93
|
+
currentVersionId?: number;
|
|
94
|
+
mtime?: number;
|
|
95
|
+
readAt: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Core tool interface for CleanSlate agent capabilities
|
|
99
|
+
*/
|
|
100
|
+
export interface CleanSlateTool {
|
|
101
|
+
name: string;
|
|
102
|
+
description: string;
|
|
103
|
+
parametersSchema?: Record<string, any>;
|
|
104
|
+
planningHint?: string;
|
|
105
|
+
category?: string;
|
|
106
|
+
run(input: any, context: CleanSlateToolContext): Promise<any>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) CleanSlate. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { URI } from '../core/uri.js';
|
|
2
|
+
import { ISlateTextModel } from '../host/textModel.js';
|
|
3
|
+
import { CleanSlateToolContext } from './types.js';
|
|
4
|
+
export interface ResolvePathToUriOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Legacy compatibility mode for model-provided root-like paths.
|
|
7
|
+
* When true, unresolved POSIX absolute paths are treated as workspace-relative to the first folder.
|
|
8
|
+
* Mutation tools should set this to false to avoid editing the wrong file silently.
|
|
9
|
+
*/
|
|
10
|
+
allowWorkspaceRootRelativeAbsolute?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function getVirtualArtifactType(path: string): 'implementation_plan' | 'walkthrough' | 'analysis' | 'task' | undefined;
|
|
13
|
+
export declare function isVirtualArtifactPath(path: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Strip ANSI escape codes from a string
|
|
16
|
+
*/
|
|
17
|
+
export declare function stripAnsi(str: unknown): string;
|
|
18
|
+
/**
|
|
19
|
+
* Resolves cwd for command execution: use workspace root when missing, validate model-provided paths,
|
|
20
|
+
* and fall back to the first workspace folder when the path is missing or not a directory (e.g. hallucinated `/workspace`).
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveCommandCwd(requested: string | undefined, context: CleanSlateToolContext): Promise<string | undefined>;
|
|
23
|
+
/**
|
|
24
|
+
* Helper to resolve paths reliably across workspace folders
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolvePathToUri(path: string, context: CleanSlateToolContext, options?: ResolvePathToUriOptions): URI;
|
|
27
|
+
/**
|
|
28
|
+
* True when `uri` lives inside the workspace the IDE currently has open (i.e. same project as the
|
|
29
|
+
* editor), so revealing it in the IDE editor is appropriate. Used to gate editor reveals for real
|
|
30
|
+
* files created/edited by a tool. When no workspace context is available (e.g. in tests) it defaults
|
|
31
|
+
* to `true` to preserve the legacy always-reveal behavior.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isUriInIdeWorkspace(context: CleanSlateToolContext, uri: URI): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* True when the session's project is the same project the IDE currently has open. Used for artifacts,
|
|
36
|
+
* whose virtual `cleanslate-artifact:` URIs are not part of any workspace folder and so can't be
|
|
37
|
+
* checked with `isUriInIdeWorkspace`. When no workspace context is available (e.g. in tests) it
|
|
38
|
+
* defaults to `true` to preserve the legacy always-open behavior.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isSessionWorkspaceOpenInIde(context: CleanSlateToolContext): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Materializes the text model for `uri` without opening a visible editor. Replaces `openEditor` calls
|
|
43
|
+
* that existed only to load a model as a side effect of revealing the file.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveTextModelHeadless(uri: URI, context: CleanSlateToolContext): Promise<ISlateTextModel | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Finds the actual string in fileContent using a whitespace-agnostic regex.
|
|
48
|
+
* This is the ultimate fallback for when exact and quote-normalized matches fail.
|
|
49
|
+
*/
|
|
50
|
+
export declare function regexFindActualString(fileContent: string, searchString: string): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Helper to identify documentation files that should skip interactive preview
|
|
53
|
+
*/
|
|
54
|
+
export declare function isDocumentationFile(path: string): boolean;
|
|
55
|
+
export declare function shellEscapeSingleQuotes(value: string): string;
|
|
56
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACpC;;;;OAIG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAChD;AAQD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAiB5H;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAM9C;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoBlI;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,GAAE,uBAA4B,GAAG,GAAG,CAqDzH;AAWD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAMrF;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAgBnF;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGxH;AAUD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuB9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7D"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) CleanSlate. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { URI } from '../core/uri.js';
|
|
6
|
+
import { isEqualOrParent } from '../core/resources.js';
|
|
7
|
+
import { CLEANSLATE_ARTIFACT_SCHEME } from '../protocol/cleanSlateAI.js';
|
|
8
|
+
function artifactBasename(path) {
|
|
9
|
+
const normalized = path.replace(/\\/g, '/').toLowerCase();
|
|
10
|
+
const parts = normalized.split('/');
|
|
11
|
+
return parts[parts.length - 1] || normalized;
|
|
12
|
+
}
|
|
13
|
+
export function getVirtualArtifactType(path) {
|
|
14
|
+
const basename = artifactBasename(path);
|
|
15
|
+
if (basename === 'implementation_plan.md') {
|
|
16
|
+
return 'implementation_plan';
|
|
17
|
+
}
|
|
18
|
+
if (basename === 'walkthrough.md') {
|
|
19
|
+
return 'walkthrough';
|
|
20
|
+
}
|
|
21
|
+
if (basename === 'analysis.md') {
|
|
22
|
+
return 'analysis';
|
|
23
|
+
}
|
|
24
|
+
if (basename === 'task.md') {
|
|
25
|
+
return 'task';
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
export function isVirtualArtifactPath(path) {
|
|
30
|
+
return getVirtualArtifactType(path) !== undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Strip ANSI escape codes from a string
|
|
34
|
+
*/
|
|
35
|
+
export function stripAnsi(str) {
|
|
36
|
+
if (typeof str !== 'string') {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
// eslint-disable-next-line no-control-regex
|
|
40
|
+
return str.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|(?:\u001b\u009b]|\u001b\]).*?(?:\u0007|\u001b\\)/g, '');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolves cwd for command execution: use workspace root when missing, validate model-provided paths,
|
|
44
|
+
* and fall back to the first workspace folder when the path is missing or not a directory (e.g. hallucinated `/workspace`).
|
|
45
|
+
*/
|
|
46
|
+
export async function resolveCommandCwd(requested, context) {
|
|
47
|
+
const folders = context.workspaceContextService.getWorkspace().folders;
|
|
48
|
+
const defaultRoot = folders[0]?.uri.fsPath;
|
|
49
|
+
const trimmed = requested?.trim();
|
|
50
|
+
if (!trimmed) {
|
|
51
|
+
return defaultRoot;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const uri = URI.file(trimmed);
|
|
55
|
+
const stat = await context.fileService.stat(uri);
|
|
56
|
+
if (stat.isDirectory && context.workspaceContextService.getWorkspaceFolder(uri)) {
|
|
57
|
+
return trimmed;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Path missing or inaccessible — use workspace root when available.
|
|
62
|
+
}
|
|
63
|
+
return defaultRoot;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Helper to resolve paths reliably across workspace folders
|
|
67
|
+
*/
|
|
68
|
+
export function resolvePathToUri(path, context, options = {}) {
|
|
69
|
+
if (typeof path !== 'string' || !path.trim()) {
|
|
70
|
+
throw new Error('Path must be a non-empty string.');
|
|
71
|
+
}
|
|
72
|
+
const requestedPath = path.trim();
|
|
73
|
+
const allowWorkspaceRootRelativeAbsolute = options.allowWorkspaceRootRelativeAbsolute ?? true;
|
|
74
|
+
// 1. Special check for virtual artifacts (must be first to avoid URI.file errors)
|
|
75
|
+
if (isVirtualArtifactPath(requestedPath)) {
|
|
76
|
+
const normalizedArtifactPath = requestedPath.replace(/^\/+/, '');
|
|
77
|
+
return URI.from({
|
|
78
|
+
scheme: CLEANSLATE_ARTIFACT_SCHEME,
|
|
79
|
+
path: `/${normalizedArtifactPath}`
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const workspaceFolders = context.workspaceContextService.getWorkspace().folders;
|
|
83
|
+
const potentialUri = URI.file(requestedPath);
|
|
84
|
+
const matchingFolder = context.workspaceContextService.getWorkspaceFolder(potentialUri);
|
|
85
|
+
if (matchingFolder) {
|
|
86
|
+
return potentialUri;
|
|
87
|
+
}
|
|
88
|
+
if (workspaceFolders.length === 0) {
|
|
89
|
+
// No workspace: refuse to access arbitrary filesystem paths.
|
|
90
|
+
throw new Error('No workspace folders available; refusing to access filesystem paths');
|
|
91
|
+
}
|
|
92
|
+
const firstFolder = workspaceFolders[0];
|
|
93
|
+
const isWindowsAbsolutePath = /^[a-zA-Z]:[\\/]/.test(requestedPath);
|
|
94
|
+
const isPosixAbsolutePath = requestedPath.startsWith('/');
|
|
95
|
+
// Relative path - resolve against first workspace folder
|
|
96
|
+
if (!isPosixAbsolutePath && !isWindowsAbsolutePath) {
|
|
97
|
+
const resolved = firstFolder.toResource(requestedPath);
|
|
98
|
+
const resolvedFolder = context.workspaceContextService.getWorkspaceFolder(resolved);
|
|
99
|
+
if (!resolvedFolder) {
|
|
100
|
+
throw new Error(`Resolved path is outside the workspace: ${requestedPath}`);
|
|
101
|
+
}
|
|
102
|
+
return resolved;
|
|
103
|
+
}
|
|
104
|
+
// POSIX absolute path outside workspace.
|
|
105
|
+
// In compatibility mode, allow `/foo/bar` to map into the first workspace as `foo/bar`.
|
|
106
|
+
if (isPosixAbsolutePath && allowWorkspaceRootRelativeAbsolute) {
|
|
107
|
+
const relativePath = requestedPath.replace(/^\/+/, '');
|
|
108
|
+
const resolved = firstFolder.toResource(relativePath);
|
|
109
|
+
return resolved;
|
|
110
|
+
}
|
|
111
|
+
throw new Error(`Path is outside the workspace and cannot be resolved safely: ${requestedPath}`);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The IDE's currently-open workspace context. For an Agent Manager session, `workspaceContextService`
|
|
115
|
+
* is scoped to that session's own project, so `ideWorkspaceContextService` is the real IDE workspace.
|
|
116
|
+
* Falls back to the session context when unset so existing (reveal) behavior is preserved.
|
|
117
|
+
*/
|
|
118
|
+
function getIdeWorkspaceContextService(context) {
|
|
119
|
+
return context.ideWorkspaceContextService ?? context.workspaceContextService;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* True when `uri` lives inside the workspace the IDE currently has open (i.e. same project as the
|
|
123
|
+
* editor), so revealing it in the IDE editor is appropriate. Used to gate editor reveals for real
|
|
124
|
+
* files created/edited by a tool. When no workspace context is available (e.g. in tests) it defaults
|
|
125
|
+
* to `true` to preserve the legacy always-reveal behavior.
|
|
126
|
+
*/
|
|
127
|
+
export function isUriInIdeWorkspace(context, uri) {
|
|
128
|
+
const ide = getIdeWorkspaceContextService(context);
|
|
129
|
+
if (!ide) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
return !!ide.getWorkspaceFolder(uri);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* True when the session's project is the same project the IDE currently has open. Used for artifacts,
|
|
136
|
+
* whose virtual `cleanslate-artifact:` URIs are not part of any workspace folder and so can't be
|
|
137
|
+
* checked with `isUriInIdeWorkspace`. When no workspace context is available (e.g. in tests) it
|
|
138
|
+
* defaults to `true` to preserve the legacy always-open behavior.
|
|
139
|
+
*/
|
|
140
|
+
export function isSessionWorkspaceOpenInIde(context) {
|
|
141
|
+
const ide = getIdeWorkspaceContextService(context);
|
|
142
|
+
const session = context.workspaceContextService;
|
|
143
|
+
if (!ide || !session) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
const ideWorkspace = ide.getWorkspace();
|
|
147
|
+
const sessionWorkspace = session.getWorkspace();
|
|
148
|
+
const ideFolders = ideWorkspace.folders;
|
|
149
|
+
const sessionFolders = sessionWorkspace.folders;
|
|
150
|
+
if (sessionFolders.length === 0 || ideFolders.length === 0) {
|
|
151
|
+
return sessionWorkspace.id === ideWorkspace.id;
|
|
152
|
+
}
|
|
153
|
+
return sessionFolders.some(sessionFolder => ideFolders.some(ideFolder => isEqualOrParent(sessionFolder.uri, ideFolder.uri) || isEqualOrParent(ideFolder.uri, sessionFolder.uri)));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Materializes the text model for `uri` without opening a visible editor. Replaces `openEditor` calls
|
|
157
|
+
* that existed only to load a model as a side effect of revealing the file.
|
|
158
|
+
*/
|
|
159
|
+
export async function resolveTextModelHeadless(uri, context) {
|
|
160
|
+
await context.textFileService.files.resolve(uri);
|
|
161
|
+
return context.modelService.getModel(uri);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Escapes characters for use in a regular expression
|
|
165
|
+
*/
|
|
166
|
+
function escapeRegex(str) {
|
|
167
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Finds the actual string in fileContent using a whitespace-agnostic regex.
|
|
171
|
+
* This is the ultimate fallback for when exact and quote-normalized matches fail.
|
|
172
|
+
*/
|
|
173
|
+
export function regexFindActualString(fileContent, searchString) {
|
|
174
|
+
// 1. Prepare search pattern
|
|
175
|
+
// Trim to avoid matching leading/trailing whitespace at start/end of block
|
|
176
|
+
const trimmedSearch = searchString.trim();
|
|
177
|
+
if (!trimmedSearch)
|
|
178
|
+
return null;
|
|
179
|
+
let pattern = escapeRegex(trimmedSearch);
|
|
180
|
+
// 2. Replace any whitespace sequence in the search string with a whitespace-agnostic regex segment
|
|
181
|
+
// This handles tabs, spaces, and variety of newlines
|
|
182
|
+
pattern = pattern.replace(/\s+/g, '[\\s\\r\\n]+');
|
|
183
|
+
try {
|
|
184
|
+
const regex = new RegExp(pattern, 'm');
|
|
185
|
+
const match = fileContent.match(regex);
|
|
186
|
+
if (match && match[0]) {
|
|
187
|
+
return match[0];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// Fallback for extremely large or complex regexes
|
|
192
|
+
}
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Helper to identify documentation files that should skip interactive preview
|
|
197
|
+
*/
|
|
198
|
+
export function isDocumentationFile(path) {
|
|
199
|
+
return isVirtualArtifactPath(path);
|
|
200
|
+
}
|
|
201
|
+
export function shellEscapeSingleQuotes(value) {
|
|
202
|
+
// Wrap in single quotes and escape embedded single quotes: abc'def -> 'abc'"'"'def'
|
|
203
|
+
return `'${value.replace(/'/g, `'"'"'`)}'`;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
|