Skip to content

Commit

Permalink
Updated API contract
Browse files Browse the repository at this point in the history
  • Loading branch information
codemakerai-dev committed Jul 8, 2024
1 parent 563bc49 commit fbaa465
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
26 changes: 24 additions & 2 deletions src/sdk/client.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Copyright 2023-2024 CodeMaker AI Inc. All rights reserved.

import {EventEmitter} from 'node:events';
import * as grpc from '@grpc/grpc-js';
import {status, StatusObject} from '@grpc/grpc-js';
import * as protoLoader from '@grpc/proto-loader';
Expand Down Expand Up @@ -191,6 +192,23 @@ export class Client {
return this.createAssistantSpeechResponse(assistantSpeechResponse);
}

assistantSpeechStream(request: AssistantSpeechRequest) {
const assistantSpeechRequest = this.createAssistantSpeechRequest(request);
const stream = this.doAssistantSpeechStream(assistantSpeechRequest);

const emitter = new EventEmitter();
stream.on('data', (resp) => {
emitter.emit('data', this.createAssistantSpeechResponse(resp));
});
stream.on('error', (e) => {
emitter.emit('error', e);
});
stream.on('end', () => {
emitter.emit('end');
});
return emitter;
}

async registerAssistantFeedback(request: RegisterAssistantFeedbackRequest) {
const registerAssistantFeedbackRequest = this.createRegisterAssistantFeedbackRequest(request);
const registerAssistantFeedbackResponse = await this.doRegisterAssistantFeedback(registerAssistantFeedbackRequest);
Expand Down Expand Up @@ -375,8 +393,8 @@ export class Client {
};
}

private async doAssistantSpeech(completionRequest: CodemakerAssistantSpeechRequest): Promise<CodemakerAssistantSpeechResponse> {
return this.doCall(this.client.AssistantSpeech, completionRequest);
private async doAssistantSpeech(assistantSpeechRequest: CodemakerAssistantSpeechRequest): Promise<CodemakerAssistantSpeechResponse> {
return this.doCall(this.client.AssistantSpeech, assistantSpeechRequest);
}

private createAssistantSpeechResponse(assistantSpeechResponse: CodemakerAssistantSpeechResponse): AssistantSpeechResponse {
Expand All @@ -385,6 +403,10 @@ export class Client {
};
}

private doAssistantSpeechStream(assistantSpeechRequest: CodemakerAssistantSpeechRequest): grpc.ClientReadableStream<CodemakerAssistantSpeechResponse> {
return this.client.AssistantSpeechStream(assistantSpeechRequest, this.createMetadata(), this.createOptions());
}

private createRegisterAssistantFeedbackRequest(request: RegisterAssistantFeedbackRequest): CodemakerRegisterAssistantFeedbackResponse {
return {
sessionId: request.sessionId,
Expand Down
8 changes: 8 additions & 0 deletions src/sdk/proto/ai/codemaker/service/CodemakerService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ export interface CodemakerServiceClient extends grpc.Client {
assistantSpeech(argument: _ai_codemaker_service_AssistantSpeechRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_ai_codemaker_service_AssistantSpeechResponse__Output>): grpc.ClientUnaryCall;
assistantSpeech(argument: _ai_codemaker_service_AssistantSpeechRequest, callback: grpc.requestCallback<_ai_codemaker_service_AssistantSpeechResponse__Output>): grpc.ClientUnaryCall;

AssistantSpeechStream(argument: _ai_codemaker_service_AssistantSpeechRequest, metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream<_ai_codemaker_service_AssistantSpeechResponse__Output>;
AssistantSpeechStream(argument: _ai_codemaker_service_AssistantSpeechRequest, options?: grpc.CallOptions): grpc.ClientReadableStream<_ai_codemaker_service_AssistantSpeechResponse__Output>;
assistantSpeechStream(argument: _ai_codemaker_service_AssistantSpeechRequest, metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream<_ai_codemaker_service_AssistantSpeechResponse__Output>;
assistantSpeechStream(argument: _ai_codemaker_service_AssistantSpeechRequest, options?: grpc.CallOptions): grpc.ClientReadableStream<_ai_codemaker_service_AssistantSpeechResponse__Output>;

Completion(argument: _ai_codemaker_service_CompletionRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_ai_codemaker_service_CompletionResponse__Output>): grpc.ClientUnaryCall;
Completion(argument: _ai_codemaker_service_CompletionRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_ai_codemaker_service_CompletionResponse__Output>): grpc.ClientUnaryCall;
Completion(argument: _ai_codemaker_service_CompletionRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_ai_codemaker_service_CompletionResponse__Output>): grpc.ClientUnaryCall;
Expand Down Expand Up @@ -134,6 +139,8 @@ export interface CodemakerServiceHandlers extends grpc.UntypedServiceImplementat

AssistantSpeech: grpc.handleUnaryCall<_ai_codemaker_service_AssistantSpeechRequest__Output, _ai_codemaker_service_AssistantSpeechResponse>;

AssistantSpeechStream: grpc.handleServerStreamingCall<_ai_codemaker_service_AssistantSpeechRequest__Output, _ai_codemaker_service_AssistantSpeechResponse>;

Completion: grpc.handleUnaryCall<_ai_codemaker_service_CompletionRequest__Output, _ai_codemaker_service_CompletionResponse>;

CreateContext: grpc.handleUnaryCall<_ai_codemaker_service_CreateSourceContextRequest__Output, _ai_codemaker_service_CreateSourceContextResponse>;
Expand All @@ -156,6 +163,7 @@ export interface CodemakerServiceDefinition extends grpc.ServiceDefinition {
AssistantCodeCompletion: MethodDefinition<_ai_codemaker_service_AssistantCodeCompletionRequest, _ai_codemaker_service_AssistantCodeCompletionResponse, _ai_codemaker_service_AssistantCodeCompletionRequest__Output, _ai_codemaker_service_AssistantCodeCompletionResponse__Output>
AssistantCompletion: MethodDefinition<_ai_codemaker_service_AssistantCompletionRequest, _ai_codemaker_service_AssistantCompletionResponse, _ai_codemaker_service_AssistantCompletionRequest__Output, _ai_codemaker_service_AssistantCompletionResponse__Output>
AssistantSpeech: MethodDefinition<_ai_codemaker_service_AssistantSpeechRequest, _ai_codemaker_service_AssistantSpeechResponse, _ai_codemaker_service_AssistantSpeechRequest__Output, _ai_codemaker_service_AssistantSpeechResponse__Output>
AssistantSpeechStream: MethodDefinition<_ai_codemaker_service_AssistantSpeechRequest, _ai_codemaker_service_AssistantSpeechResponse, _ai_codemaker_service_AssistantSpeechRequest__Output, _ai_codemaker_service_AssistantSpeechResponse__Output>
Completion: MethodDefinition<_ai_codemaker_service_CompletionRequest, _ai_codemaker_service_CompletionResponse, _ai_codemaker_service_CompletionRequest__Output, _ai_codemaker_service_CompletionResponse__Output>
CreateContext: MethodDefinition<_ai_codemaker_service_CreateSourceContextRequest, _ai_codemaker_service_CreateSourceContextResponse, _ai_codemaker_service_CreateSourceContextRequest__Output, _ai_codemaker_service_CreateSourceContextResponse__Output>
DiscoverContext: MethodDefinition<_ai_codemaker_service_DiscoverSourceContextRequest, _ai_codemaker_service_DiscoverSourceContextResponse, _ai_codemaker_service_DiscoverSourceContextRequest__Output, _ai_codemaker_service_DiscoverSourceContextResponse__Output>
Expand Down
1 change: 1 addition & 0 deletions src/sdk/proto/codemakerai.proto
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ service CodemakerService {
rpc AssistantCompletion (AssistantCompletionRequest) returns (AssistantCompletionResponse);
rpc AssistantCodeCompletion (AssistantCodeCompletionRequest) returns (AssistantCodeCompletionResponse);
rpc AssistantSpeech (AssistantSpeechRequest) returns (AssistantSpeechResponse);
rpc AssistantSpeechStream (AssistantSpeechRequest) returns (stream AssistantSpeechResponse);
rpc RegisterAssistantFeedback (RegisterAssistantFeedbackRequest) returns (RegisterAssistantFeedbackResponse);
rpc Completion (CompletionRequest) returns (CompletionResponse);
rpc Process (ProcessRequest) returns (ProcessResponse);
Expand Down

0 comments on commit fbaa465

Please sign in to comment.