@aws/lsp-codewhisperer 0.0.104 → 0.0.106
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/CHANGELOG.md +30 -0
- package/out/language-server/agenticChat/agenticChatController.js +17 -12
- package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
- package/out/language-server/agenticChat/tabBarController.d.ts +1 -0
- package/out/language-server/agenticChat/tabBarController.js +23 -0
- package/out/language-server/agenticChat/tabBarController.js.map +1 -1
- package/out/language-server/agenticChat/tools/chatDb/chatDb.d.ts +46 -0
- package/out/language-server/agenticChat/tools/chatDb/chatDb.js +135 -0
- package/out/language-server/agenticChat/tools/chatDb/chatDb.js.map +1 -1
- package/out/language-server/agenticChat/tools/chatDb/util.d.ts +13 -0
- package/out/language-server/agenticChat/tools/chatDb/util.js +193 -1
- package/out/language-server/agenticChat/tools/chatDb/util.js.map +1 -1
- package/out/language-server/agenticChat/tools/executeBash.js +29 -10
- package/out/language-server/agenticChat/tools/executeBash.js.map +1 -1
- package/out/language-server/agenticChat/tools/toolShared.d.ts +1 -1
- package/out/language-server/agenticChat/tools/toolShared.js +8 -5
- package/out/language-server/agenticChat/tools/toolShared.js.map +1 -1
- package/out/language-server/chat/chatController.js +3 -2
- package/out/language-server/chat/chatController.js.map +1 -1
- package/out/language-server/chat/telemetry/chatTelemetryController.d.ts +2 -2
- package/out/language-server/chat/telemetry/chatTelemetryController.js +4 -2
- package/out/language-server/chat/telemetry/chatTelemetryController.js.map +1 -1
- package/out/language-server/netTransform/artifactManager.js +12 -0
- package/out/language-server/netTransform/artifactManager.js.map +1 -1
- package/out/language-server/netTransform/models.d.ts +1 -0
- package/out/shared/telemetry/telemetryService.d.ts +1 -0
- package/out/shared/telemetry/telemetryService.js +1 -0
- package/out/shared/telemetry/telemetryService.js.map +1 -1
- package/out/shared/telemetry/types.d.ts +1 -0
- package/out/shared/utils.js +10 -2
- package/out/shared/utils.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.106](https://github.com/aws/language-servers/compare/lsp-codewhisperer/v0.0.105...lsp-codewhisperer/v0.0.106) (2026-02-17)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* copy private package's nupkg file to artifacts folder ([#2613](https://github.com/aws/language-servers/issues/2613)) ([99cb9a8](https://github.com/aws/language-servers/commit/99cb9a8f87d750a496c13b0678cae82de101b99d))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **amazonq:** bumping up the language server runtime version ([#2621](https://github.com/aws/language-servers/issues/2621)) ([33c9eba](https://github.com/aws/language-servers/commit/33c9eba1fcc5ab7da5c520842c239e22b2237e4c))
|
|
14
|
+
* **amazonq:** emit modelid per tab ([#2620](https://github.com/aws/language-servers/issues/2620)) ([640179f](https://github.com/aws/language-servers/commit/640179f021d68a8bef5ece710d1b928e2c17fed1))
|
|
15
|
+
* **amazonq:** fix improperly formed requests ([#2616](https://github.com/aws/language-servers/issues/2616)) ([2739718](https://github.com/aws/language-servers/commit/273971834e2a307fe79402bef329b53b8bb51a4e))
|
|
16
|
+
* **amazonq:** prevent path traversal bypass in agentic chat workspace ([#2612](https://github.com/aws/language-servers/issues/2612)) ([13159f8](https://github.com/aws/language-servers/commit/13159f842e4c50aae03ace586c42085446a50986))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Dependencies
|
|
20
|
+
|
|
21
|
+
* The following workspace dependencies were updated
|
|
22
|
+
* dependencies
|
|
23
|
+
* @aws/lsp-core bumped from ^0.0.20 to ^0.0.21
|
|
24
|
+
|
|
25
|
+
## [0.0.105](https://github.com/aws/language-servers/compare/lsp-codewhisperer/v0.0.104...lsp-codewhisperer/v0.0.105) (2026-02-10)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* amazon q chat history restoration to display rich ui elements and persisting model/agentic toggle preferences. ([#2610](https://github.com/aws/language-servers/issues/2610)) ([75135dd](https://github.com/aws/language-servers/commit/75135ddf2342a355a1fcba463dd6a42d040b75fa))
|
|
31
|
+
* extend SageMaker env detection to support both SMUS and SMAI ([#2598](https://github.com/aws/language-servers/issues/2598)) ([12fbc4c](https://github.com/aws/language-servers/commit/12fbc4c4f355ab0a8500de697a5fd7bd7950f661))
|
|
32
|
+
|
|
3
33
|
## [0.0.104](https://github.com/aws/language-servers/compare/lsp-codewhisperer/v0.0.103...lsp-codewhisperer/v0.0.104) (2026-02-05)
|
|
4
34
|
|
|
5
35
|
|
|
@@ -672,6 +672,10 @@ class AgenticChatController {
|
|
|
672
672
|
await this.#invalidateCompactCommand(params.tabId, compactIds);
|
|
673
673
|
session.rejectAllDeferredToolExecutions(new toolShared_1.ToolApprovalException('Command ignored: new prompt', false));
|
|
674
674
|
await this.#invalidateAllShellCommands(params.tabId, session);
|
|
675
|
+
// Capture the modelId at request time so telemetry always reports the model
|
|
676
|
+
// that was actually selected in this tab when the request was initiated,
|
|
677
|
+
// even if the user switches models before the response/error is processed.
|
|
678
|
+
const requestModelId = session.modelId;
|
|
675
679
|
const metric = new metric_1.Metric({
|
|
676
680
|
cwsprChatConversationType: 'AgenticChat',
|
|
677
681
|
experimentName: this.#abTestingAllocation?.experimentName,
|
|
@@ -711,7 +715,7 @@ class AgenticChatController {
|
|
|
711
715
|
metric.setDimension('languageServerVersion', this.#features.runtime.serverInfo.version);
|
|
712
716
|
metric.setDimension('codewhispererCustomizationArn', this.#customizationArn);
|
|
713
717
|
metric.setDimension('enabled', session.pairProgrammingMode);
|
|
714
|
-
await this.#telemetryController.emitAddMessageMetric(params.tabId, metric.metric, 'Cancelled');
|
|
718
|
+
await this.#telemetryController.emitAddMessageMetric(params.tabId, metric.metric, 'Cancelled', undefined, undefined, requestModelId);
|
|
715
719
|
});
|
|
716
720
|
session.setConversationType('AgenticChat');
|
|
717
721
|
// Set up delay notification callback to show retry progress to users
|
|
@@ -763,7 +767,7 @@ class AgenticChatController {
|
|
|
763
767
|
finalResult = await this.#runAgentLoop(initialRequestInput, session, metric, chatResultStream, params.tabId, promptId, session.conversationId, token, triggerContext.documentReference, additionalContext);
|
|
764
768
|
}
|
|
765
769
|
// Result Handling - This happens only once
|
|
766
|
-
return await this.#handleFinalResult(finalResult, session, params.tabId, metric, triggerContext, isNewConversation, chatResultStream);
|
|
770
|
+
return await this.#handleFinalResult(finalResult, session, params.tabId, metric, triggerContext, isNewConversation, chatResultStream, requestModelId);
|
|
767
771
|
}
|
|
768
772
|
catch (err) {
|
|
769
773
|
// HACK: the chat-client needs to have a partial event with the associated messageId sent before it can accept the final result.
|
|
@@ -789,7 +793,7 @@ class AgenticChatController {
|
|
|
789
793
|
buttons: [],
|
|
790
794
|
};
|
|
791
795
|
}
|
|
792
|
-
return this.#handleRequestError(session.conversationId, err, errorMessageId, params.tabId, metric, session.pairProgrammingMode);
|
|
796
|
+
return this.#handleRequestError(session.conversationId, err, errorMessageId, params.tabId, metric, session.pairProgrammingMode, requestModelId);
|
|
793
797
|
}
|
|
794
798
|
}
|
|
795
799
|
/**
|
|
@@ -2573,7 +2577,7 @@ class AgenticChatController {
|
|
|
2573
2577
|
/**
|
|
2574
2578
|
* Handles the final result after the agent loop completes
|
|
2575
2579
|
*/
|
|
2576
|
-
async #handleFinalResult(result, session, tabId, metric, triggerContext, isNewConversation, chatResultStream) {
|
|
2580
|
+
async #handleFinalResult(result, session, tabId, metric, triggerContext, isNewConversation, chatResultStream, requestModelId) {
|
|
2577
2581
|
if (!result.success) {
|
|
2578
2582
|
throw new errors_2.AgenticChatError(result.error, 'FailedResult');
|
|
2579
2583
|
}
|
|
@@ -2622,7 +2626,7 @@ class AgenticChatController {
|
|
|
2622
2626
|
cwsprChatPinnedPromptContextCount: triggerContext.contextInfo.pinnedContextCount.promptContextCount,
|
|
2623
2627
|
});
|
|
2624
2628
|
}
|
|
2625
|
-
await this.#telemetryController.emitAddMessageMetric(tabId, metric.metric, 'Succeeded');
|
|
2629
|
+
await this.#telemetryController.emitAddMessageMetric(tabId, metric.metric, 'Succeeded', undefined, undefined, requestModelId ?? session.modelId);
|
|
2626
2630
|
this.#telemetryController.updateTriggerInfo(tabId, {
|
|
2627
2631
|
lastMessageTrigger: {
|
|
2628
2632
|
...triggerContext,
|
|
@@ -2639,7 +2643,7 @@ class AgenticChatController {
|
|
|
2639
2643
|
/**
|
|
2640
2644
|
* Handles errors that occur during the request
|
|
2641
2645
|
*/
|
|
2642
|
-
async #handleRequestError(conversationId, err, errorMessageId, tabId, metric, agenticCodingMode) {
|
|
2646
|
+
async #handleRequestError(conversationId, err, errorMessageId, tabId, metric, agenticCodingMode, requestModelId) {
|
|
2643
2647
|
const errorMessage = ((0, utils_2.getErrorMsg)(err) ?? constants_2.GENERIC_ERROR_MS).replace(/[\r\n]+/g, ' '); // replace new lines with empty space
|
|
2644
2648
|
const requestID = (0, utils_2.getRequestID)(err) ?? '';
|
|
2645
2649
|
metric.setDimension('cwsprChatResponseCode', (0, utils_2.getHttpStatusCode)(err) ?? 0);
|
|
@@ -2650,9 +2654,10 @@ class AgenticChatController {
|
|
|
2650
2654
|
metric.metric.cwsprChatMessageId = errorMessageId;
|
|
2651
2655
|
metric.metric.cwsprChatConversationId = conversationId;
|
|
2652
2656
|
const errorCode = err.code ?? '';
|
|
2653
|
-
await this.#telemetryController.emitAddMessageMetric(tabId, metric.metric, 'Failed', errorMessage, errorCode);
|
|
2657
|
+
await this.#telemetryController.emitAddMessageMetric(tabId, metric.metric, 'Failed', errorMessage, errorCode, requestModelId);
|
|
2654
2658
|
// Reset memory bank flag on request error
|
|
2655
2659
|
const sessionResult = this.#chatSessionManagementService.getSession(tabId);
|
|
2660
|
+
const modelId = requestModelId ?? (sessionResult.success ? sessionResult.data.modelId : undefined);
|
|
2656
2661
|
if (sessionResult.success) {
|
|
2657
2662
|
sessionResult.data.isMemoryBankGeneration = false;
|
|
2658
2663
|
}
|
|
@@ -2668,7 +2673,7 @@ class AgenticChatController {
|
|
|
2668
2673
|
});
|
|
2669
2674
|
}
|
|
2670
2675
|
if ((0, errors_2.isThrottlingRelated)(err)) {
|
|
2671
|
-
this.#telemetryController.emitMessageResponseError(tabId, metric.metric, requestID, err.message, agenticCodingMode);
|
|
2676
|
+
this.#telemetryController.emitMessageResponseError(tabId, metric.metric, requestID, err.message, agenticCodingMode, modelId);
|
|
2672
2677
|
new server_interface_1.ResponseError(server_interface_1.LSPErrorCodes.RequestFailed, err.message, {
|
|
2673
2678
|
type: 'answer',
|
|
2674
2679
|
body: requestID ? `${err.message} \n\nRequest ID: ${requestID}` : err.message,
|
|
@@ -2679,10 +2684,10 @@ class AgenticChatController {
|
|
|
2679
2684
|
// use custom error message for unactionable errors (user-dependent errors like PromptCharacterLimit)
|
|
2680
2685
|
if (err.code && err.code in errors_2.unactionableErrorCodes) {
|
|
2681
2686
|
const customErrMessage = errors_2.unactionableErrorCodes[err.code];
|
|
2682
|
-
this.#telemetryController.emitMessageResponseError(tabId, metric.metric, requestID, customErrMessage, agenticCodingMode);
|
|
2687
|
+
this.#telemetryController.emitMessageResponseError(tabId, metric.metric, requestID, customErrMessage, agenticCodingMode, modelId);
|
|
2683
2688
|
}
|
|
2684
2689
|
else {
|
|
2685
|
-
this.#telemetryController.emitMessageResponseError(tabId, metric.metric, requestID, errorMessage, agenticCodingMode);
|
|
2690
|
+
this.#telemetryController.emitMessageResponseError(tabId, metric.metric, requestID, errorMessage, agenticCodingMode, modelId);
|
|
2686
2691
|
}
|
|
2687
2692
|
let authFollowType = undefined;
|
|
2688
2693
|
// first check if there is an AmazonQ related auth follow up
|
|
@@ -3574,8 +3579,8 @@ class AgenticChatController {
|
|
|
3574
3579
|
session.setModel(newModelId, cachedData?.models);
|
|
3575
3580
|
this.#log(`Model set for model switch: ${newModelId}, tokenLimits: ${JSON.stringify(session.tokenLimits)}`);
|
|
3576
3581
|
}
|
|
3577
|
-
this.#chatHistoryDb.
|
|
3578
|
-
this.#chatHistoryDb.
|
|
3582
|
+
this.#chatHistoryDb.setTabModelId(params.tabId, session.modelId);
|
|
3583
|
+
this.#chatHistoryDb.setTabPairProgrammingMode(params.tabId, session.pairProgrammingMode);
|
|
3579
3584
|
}
|
|
3580
3585
|
updateConfiguration = (newConfig) => {
|
|
3581
3586
|
this.#customizationArn = newConfig.customizationArn;
|