36
37
async invoke(params: InvokeChangesetOperationParams, token: CancellationToken): Promise<InvokeChangesetOperationResult> {
39
>
if (token.isCancellationRequested) {
40
abortController.abort();
41
}
43
>
try {
44
>
return await this._invoke(params, token, abortController.signal);
45
>
} finally {
46
>
cancellationListener.dispose();
47
>
}
48
>
}
49
50
private async _invoke(params: InvokeChangesetOperationParams, token: CancellationToken, signal: AbortSignal): Promise<InvokeChangesetOperationResult> {
52
>
if (!parsed) {
53
throw new ProtocolError(JsonRpcErrorCodes.InvalidParams, `Not an uncommitted changeset URI: ${params.channel}`);
54
}
56
>
57
>
const sessionUri = parsed.sessionUri;
58
>
const sessionState = this._getSessionState(sessionUri);
59
>
if (!sessionState) {
60
throw new ProtocolError(AHP_SESSION_NOT_FOUND, `Session not found: ${sessionUri}`);
61
}
62
63
const workingDirectoryStr = sessionState.workingDirectories?.[0];
65
throw new ProtocolError(JsonRpcErrorCodes.InternalError, `Session has no working directory: ${sessionUri}`);
66
}