Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
1,028 changes: 882 additions & 146 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions server/aws-lsp-codewhisperer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"postinstall": "node ./script/install_transitive_dep.js"
},
"dependencies": {
"@amazon/elastic-gumby-frontend-client": "file:../../core/aws-gumby-client/amazon-elastic-gumby-frontend-client-1.0.0.tgz",
"@amzn/amazon-q-developer-streaming-client": "file:../../core/q-developer-streaming-client/amzn-amazon-q-developer-streaming-client-1.0.0.tgz",
"@amzn/codewhisperer": "file:../../core/codewhisperer/amzn-codewhisperer-1.0.0.tgz",
"@amzn/codewhisperer-runtime": "file:../../core/codewhisperer-runtime/amzn-codewhisperer-runtime-1.0.0.tgz",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ export class ServerConfigurationProvider {
const profiles = await this.listAllAvailableProfilesHandler({
connectionType: this.credentialsProvider.getConnectionType(),
logging: this.logging,
credentialsProvider: this.credentialsProvider,
token: token,
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export interface StartTransformRequest extends ExecuteCommandParams {
PackageReferences?: PackageReferenceMetadata[]
DmsArn?: string
DatabaseSettings?: DatabaseSettings
WorkspaceId?: string
}

export interface StartTransformResponse {
Expand Down Expand Up @@ -75,6 +76,26 @@ export interface DownloadArtifactsRequest extends ExecuteCommandParams {
SolutionRootPath: string
}

export interface GetEditablePlanRequest extends ExecuteCommandParams {
TransformationJobId: string
SolutionRootPath: string
}

export interface GetEditablePlanResponse {
Status: boolean
PlanPath: string
ReportPath: string
}

export interface UploadEditablePlanRequest extends ExecuteCommandParams {
TransformationJobId: string
PlanPath: string
}

export interface UploadEditablePlanResponse {
VerificationStatus: boolean
}

export enum CancellationJobStatus {
NOT_STARTED,
IN_PROGRESS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@ import {
GetTransformPlanRequest,
GetTransformRequest,
StartTransformRequest,
GetEditablePlanRequest,
UploadEditablePlanRequest,
} from './models'
import { TransformHandler } from './transformHandler'

export const validStatesForGettingPlan = ['COMPLETED', 'PARTIALLY_COMPLETED', 'PLANNED', 'TRANSFORMING', 'TRANSFORMED']
export const validStatesForAssessment = ['Planning', 'AWAITING_HUMAN_INPUT']
export const validStatesForComplete = ['COMPLETED']
export const failureStates = ['FAILED', 'STOPPING', 'STOPPED', 'REJECTED']
const StartTransformCommand = 'aws/qNetTransform/startTransform'
Expand All @@ -42,6 +45,11 @@ const GetTransformPlanCommand = 'aws/qNetTransform/getTransformPlan'
const CancelTransformCommand = 'aws/qNetTransform/cancelTransform'
const DownloadArtifactsCommand = 'aws/qNetTransform/downloadArtifacts'
const CancelPollingCommand = 'aws/qNetTransform/cancelPolling'
const ListWorkspacesCommand = 'aws/qNetTransform/listWorkspaces'
const CreateWorkspaceCommand = 'aws/qNetTransform/createWorkspace'
const GetEditablePlanCommand = 'aws/qNetTransform/getEditablePlan'
const UploadEditablePlanCommand = 'aws/qNetTransform/uploadEditablePlan'
const PollTransformForAssessmentCommand = 'aws/qNetTransform/pollTransformForAssessment'
import { SDKInitializator } from '@aws/language-server-runtimes/server-interface'
import { AmazonQTokenServiceManager } from '../../shared/amazonQServiceManager/AmazonQTokenServiceManager'

Expand Down Expand Up @@ -123,6 +131,61 @@ export const QNetTransformServerToken =
await transformHandler.cancelPollingAsync()
emitCancelPollingTelemetry(telemetry)
}
case ListWorkspacesCommand: {
logging.log('LSP: Received ListWorkspacesCommand request')
const workspaces = await transformHandler.listWorkspaces()
logging.log(`LSP: ListWorkspaces returned ${workspaces?.length || 0} workspaces`)
return { workspaces }
}
case CreateWorkspaceCommand: {
logging.log('LSP: Received CreateWorkspaceCommand request')
const request = params.arguments?.[0] as { workspaceName?: string }
const workspaceName = request?.workspaceName || null // Let backend generate default name
logging.log(`LSP: Creating workspace with name: ${workspaceName || 'auto-generated'}`)

try {
const workspaceId = await transformHandler.createWorkspace(workspaceName)
if (workspaceId) {
logging.log(`LSP: CreateWorkspace returned workspaceId: ${workspaceId}`)
return { workspaceId }
} else {
logging.error('LSP: CreateWorkspace returned null - workspace creation failed')
throw new Error('Failed to create workspace - API returned null')
}
} catch (error) {
logging.error(
`LSP: CreateWorkspace error: ${error instanceof Error ? error.message : 'Unknown error'}`
)
throw new Error(
`Workspace creation failed: ${error instanceof Error ? error.message : 'Unknown error'}`
)
}
}
case GetEditablePlanCommand: {
logging.log('LSP: Received GetEditablePlanCommand request')
const request = params as GetEditablePlanRequest
const response = await transformHandler.getEditablePlan(request)

return response
}
case UploadEditablePlanCommand: {
logging.log('LSP: Received UploadEditablePlanCommand request')
const request = params as UploadEditablePlanRequest
const response = await transformHandler.uploadEditablePlan(request)

return response
}
case PollTransformForAssessmentCommand: {
logging.log('LSP: Received PollTransform For Assessment request')
const request = params as GetTransformRequest

const response = await transformHandler.pollTransformation(
request,
validStatesForAssessment,
failureStates
)
return response
}
}
return
} catch (e: any) {
Expand Down Expand Up @@ -193,6 +256,10 @@ export const QNetTransformServerToken =
CancelTransformCommand,
DownloadArtifactsCommand,
CancelPollingCommand,
ListWorkspacesCommand,
CreateWorkspaceCommand,
GetEditablePlanCommand,
UploadEditablePlanCommand,
],
},
},
Expand Down
Loading
Loading