diff --git a/packages/core/src/amazonq/errors.ts b/packages/core/src/amazonq/errors.ts index cf45cb61265..799206d7ab9 100644 --- a/packages/core/src/amazonq/errors.ts +++ b/packages/core/src/amazonq/errors.ts @@ -4,10 +4,15 @@ * */ +/** + * Shared error type for content length validation. + * When thrown from common components, individual agents can catch and transform this error + * to provide their own customized error messages. + */ import { ToolkitError } from '../shared/errors' -export class CommonAmazonQContentLengthError extends ToolkitError { +export class ContentLengthError extends ToolkitError { constructor(message: string) { - super(message, { code: 'CommonAmazonQContentLengthError' }) + super(message, { code: 'ContentLengthError' }) } } diff --git a/packages/core/src/amazonq/util/files.ts b/packages/core/src/amazonq/util/files.ts index eef133c514f..b7c25c7f887 100644 --- a/packages/core/src/amazonq/util/files.ts +++ b/packages/core/src/amazonq/util/files.ts @@ -28,7 +28,7 @@ import { ZipStream } from '../../shared/utilities/zipStream' import { isPresent } from '../../shared/utilities/collectionUtils' import { AuthUtil } from '../../codewhisperer/util/authUtil' import { TelemetryHelper } from '../util/telemetryHelper' -import { CommonAmazonQContentLengthError } from '../errors' +import { ContentLengthError } from '../errors' export const SvgFileExtension = '.svg' @@ -185,9 +185,9 @@ export async function prepareRepoData( zipFileChecksum: zipResult.hash, } } catch (error) { - getLogger().debug(`featureDev: Failed to prepare repo: ${error}`) + getLogger().debug(`Failed to prepare repo: ${error}`) if (error instanceof ToolkitError && error.code === 'ContentLengthError') { - throw new CommonAmazonQContentLengthError(error.message) + throw new ContentLengthError(error.message) } throw new PrepareRepoFailedError() } diff --git a/packages/core/src/amazonqDoc/session/session.ts b/packages/core/src/amazonqDoc/session/session.ts index 73f725118ea..301a9d0e0fa 100644 --- a/packages/core/src/amazonqDoc/session/session.ts +++ b/packages/core/src/amazonqDoc/session/session.ts @@ -31,7 +31,7 @@ import globals from '../../shared/extensionGlobals' import { extensionVersion } from '../../shared/vscode/env' import { getLogger } from '../../shared/logger/logger' import { ContentLengthError } from '../errors' -import { CommonAmazonQContentLengthError } from '../../amazonq/errors' +import { ContentLengthError as CommonAmazonQContentLengthError } from '../../amazonq/errors' export class Session { private _state?: SessionState | Omit @@ -153,6 +153,7 @@ export class Session { return resp.interaction } catch (e) { if (e instanceof CommonAmazonQContentLengthError) { + getLogger().debug(`Content length validation failed: ${e.message}`) throw new ContentLengthError() } throw e diff --git a/packages/core/src/amazonqFeatureDev/session/session.ts b/packages/core/src/amazonqFeatureDev/session/session.ts index 447d078d3cb..6d692c297a4 100644 --- a/packages/core/src/amazonqFeatureDev/session/session.ts +++ b/packages/core/src/amazonqFeatureDev/session/session.ts @@ -33,7 +33,7 @@ import { UpdateAnswerMessage } from '../../amazonq/commons/connector/connectorMe import { FollowUpTypes } from '../../amazonq/commons/types' import { SessionConfig } from '../../amazonq/commons/session/sessionConfigFactory' import { Messenger } from '../../amazonq/commons/connector/baseMessenger' -import { CommonAmazonQContentLengthError } from '../../amazonq/errors' +import { ContentLengthError as CommonAmazonQContentLengthError } from '../../amazonq/errors' export class Session { private _state?: SessionState | Omit private task: string = '' @@ -160,6 +160,7 @@ export class Session { return resp.interaction } catch (e) { if (e instanceof CommonAmazonQContentLengthError) { + getLogger().debug(`Content length validation failed: ${e.message}`) throw new ContentLengthError() } throw e