@ancatag/n-r 0.1.7 → 0.1.9
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/dist/chat.d.ts +3 -3
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +8 -11
- package/dist/chat.js.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -5
- package/dist/client.js.map +1 -1
- package/dist/grpc-client.d.ts +4 -4
- package/dist/grpc-client.d.ts.map +1 -1
- package/dist/grpc-client.js +7 -7
- package/dist/grpc-client.js.map +1 -1
- package/dist/http-client.d.ts +1 -1
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +29 -30
- package/dist/http-client.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +3 -3
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +1 -1
- package/dist/models.js.map +1 -1
- package/dist/types.d.ts +10 -10
- package/dist/types.js +1 -1
- package/package.json +1 -1
package/dist/chat.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Chat Completions API
|
|
3
3
|
* Handles chat completion requests (streaming and non-streaming)
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import type { ChatCompletionRequest, ChatCompletionResponse
|
|
5
|
+
import { GrpcClient } from "./grpc-client.js";
|
|
6
|
+
import { HttpClient } from "./http-client.js";
|
|
7
|
+
import type { ChatCompletionChunk, ChatCompletionRequest, ChatCompletionResponse } from "./types.js";
|
|
8
8
|
export declare class ChatCompletions {
|
|
9
9
|
private readonly httpClient;
|
|
10
10
|
private readonly grpcClient?;
|
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACX,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBADX,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,UAAU,YAAA;IAGzC,OAAO,CAAC,MAAM;IAId;;OAEG;IACG,MAAM,CACX,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,CAAC;IAqBlC;;;OAGG;IACI,YAAY,CAClB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,CAAC,EAAE,WAAW,GAClB,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAE,OAAO,CAAC;CA2DrD"}
|
package/dist/chat.js
CHANGED
|
@@ -25,7 +25,7 @@ export class ChatCompletions {
|
|
|
25
25
|
...filteredRequest,
|
|
26
26
|
stream: false,
|
|
27
27
|
};
|
|
28
|
-
return this.httpClient.post(
|
|
28
|
+
return this.httpClient.post("v1/chat/completions", payload);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Create a streaming chat completion
|
|
@@ -44,24 +44,24 @@ export class ChatCompletions {
|
|
|
44
44
|
...filteredRequest,
|
|
45
45
|
stream: true,
|
|
46
46
|
};
|
|
47
|
-
const stream = await this.httpClient.postStream(
|
|
47
|
+
const stream = await this.httpClient.postStream("v1/chat/completions", payload, signal);
|
|
48
48
|
const reader = stream.getReader();
|
|
49
49
|
const decoder = new TextDecoder();
|
|
50
|
-
let buffer =
|
|
50
|
+
let buffer = "";
|
|
51
51
|
try {
|
|
52
52
|
while (true) {
|
|
53
53
|
const { done, value } = await reader.read();
|
|
54
54
|
if (done)
|
|
55
55
|
break;
|
|
56
56
|
buffer += decoder.decode(value, { stream: true });
|
|
57
|
-
const lines = buffer.split(
|
|
58
|
-
buffer = lines.pop() ||
|
|
57
|
+
const lines = buffer.split("\n");
|
|
58
|
+
buffer = lines.pop() || "";
|
|
59
59
|
for (const line of lines) {
|
|
60
60
|
const trimmed = line.trim();
|
|
61
|
-
if (!trimmed || trimmed ===
|
|
61
|
+
if (!trimmed || trimmed === "data: [DONE]") {
|
|
62
62
|
continue;
|
|
63
63
|
}
|
|
64
|
-
if (!trimmed.startsWith(
|
|
64
|
+
if (!trimmed.startsWith("data: ")) {
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
67
67
|
try {
|
|
@@ -69,10 +69,7 @@ export class ChatCompletions {
|
|
|
69
69
|
const chunk = JSON.parse(jsonStr);
|
|
70
70
|
yield chunk;
|
|
71
71
|
}
|
|
72
|
-
catch (
|
|
73
|
-
// Skip malformed JSON chunks
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
72
|
+
catch (_parseError) { }
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
}
|
package/dist/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,OAAO,eAAe;IAET;IACA;IAFlB,YACkB,UAAsB,EACtB,UAAuB;QADvB,eAAU,GAAV,UAAU,CAAY;QACtB,eAAU,GAAV,UAAU,CAAa;IACtC,CAAC;IAEI,MAAM;QACb,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACX,OAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,+DAA+D;QAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACzC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC1C,CAAC;QAE3B,MAAM,OAAO,GAA0B;YACtC,GAAG,eAAe;YAClB,MAAM,EAAE,KAAK;SACb,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAC1B,qBAAqB,EACrB,OAAO,CACP,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,YAAY,CAClB,OAA8B,EAC9B,MAAoB;QAEpB,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Nova Client
|
|
3
3
|
* Main client class for interacting with Nova AI API
|
|
4
4
|
*/
|
|
5
|
-
import { ChatCompletions } from
|
|
6
|
-
import { Models } from
|
|
7
|
-
import type { NovaClientConfig } from
|
|
5
|
+
import { ChatCompletions } from "./chat.js";
|
|
6
|
+
import { Models } from "./models.js";
|
|
7
|
+
import type { NovaClientConfig } from "./types.js";
|
|
8
8
|
export declare class NovaClient {
|
|
9
9
|
readonly chat: ChatCompletions;
|
|
10
10
|
readonly models: Models;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAElE,qBAAa,UAAU;IACtB,SAAgB,IAAI,EAAE,eAAe,CAAC;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;gBAE7B,MAAM,EAAE,gBAAgB;IASpC,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,SAAS,IAAI,MAAM;CAMnB"}
|
package/dist/client.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Nova Client
|
|
3
3
|
* Main client class for interacting with Nova AI API
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { ChatCompletions } from "./chat.js";
|
|
6
|
+
import { GrpcClient } from "./grpc-client.js";
|
|
7
|
+
import { HttpClient } from "./http-client.js";
|
|
8
|
+
import { Models } from "./models.js";
|
|
9
9
|
export class NovaClient {
|
|
10
10
|
chat;
|
|
11
11
|
models;
|
|
@@ -20,7 +20,7 @@ export class NovaClient {
|
|
|
20
20
|
this.models = new Models(this.httpClient, this.grpcClient);
|
|
21
21
|
}
|
|
22
22
|
shouldUseGrpc(transport) {
|
|
23
|
-
return transport ===
|
|
23
|
+
return transport === "grpc";
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Get the API key (masked for security)
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,OAAO,UAAU;IACN,IAAI,CAAkB;IACtB,MAAM,CAAS;IACd,UAAU,CAAa;IACvB,UAAU,CAAc;IAEzC,YAAY,MAAwB;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAEO,aAAa,CAAC,SAAyB;QAC9C,OAAO,SAAS,KAAK,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,SAAS;QACR,oEAAoE;QACpE,MAAM,GAAG,GAAI,IAAI,CAAC,UAAkB,CAAC,MAAgB,CAAC;QACtD,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC;QACjC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;CACD"}
|
package/dist/grpc-client.d.ts
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* Note: gRPC dependencies are optional. If gRPC is requested but dependencies
|
|
10
10
|
* are not installed, this will throw an error suggesting to use REST instead.
|
|
11
11
|
*/
|
|
12
|
-
import type { ChatCompletionRequest, ChatCompletionResponse,
|
|
12
|
+
import type { ChatCompletionChunk, ChatCompletionRequest, ChatCompletionResponse, Model, NovaClientConfig } from "./types.js";
|
|
13
13
|
export declare class GrpcClient {
|
|
14
|
-
constructor(
|
|
15
|
-
createChatCompletion(
|
|
16
|
-
createChatCompletionStream(
|
|
14
|
+
constructor(_config: NovaClientConfig);
|
|
15
|
+
createChatCompletion(_request: ChatCompletionRequest): Promise<ChatCompletionResponse>;
|
|
16
|
+
createChatCompletionStream(_request: ChatCompletionRequest): AsyncGenerator<ChatCompletionChunk, void, unknown>;
|
|
17
17
|
listModels(): Promise<Model[]>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=grpc-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-client.d.ts","sourceRoot":"","sources":["../src/grpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACX,qBAAqB,EACrB,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"grpc-client.d.ts","sourceRoot":"","sources":["../src/grpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,EACL,gBAAgB,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,UAAU;gBACV,OAAO,EAAE,gBAAgB;IAW/B,oBAAoB,CACzB,QAAQ,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAI3B,0BAA0B,CAChC,QAAQ,EAAE,qBAAqB,GAC7B,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAE,OAAO,CAAC;IAI/C,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAGpC"}
|
package/dist/grpc-client.js
CHANGED
|
@@ -10,22 +10,22 @@
|
|
|
10
10
|
* are not installed, this will throw an error suggesting to use REST instead.
|
|
11
11
|
*/
|
|
12
12
|
export class GrpcClient {
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(_config) {
|
|
14
14
|
// Stub implementation - gRPC not fully implemented yet
|
|
15
15
|
// Note: gRPC dependencies (@grpc/grpc-js, @grpc/proto-loader) are optional
|
|
16
16
|
// If you need gRPC support, install them: pnpm add @grpc/grpc-js @grpc/proto-loader
|
|
17
17
|
// For now, use REST transport: transport: "rest"
|
|
18
18
|
throw new Error('gRPC transport is not fully implemented. Use transport: "rest" instead.\n' +
|
|
19
|
-
|
|
19
|
+
"If you need gRPC support, ensure @grpc/grpc-js and @grpc/proto-loader are installed.");
|
|
20
20
|
}
|
|
21
|
-
async createChatCompletion(
|
|
22
|
-
throw new Error(
|
|
21
|
+
async createChatCompletion(_request) {
|
|
22
|
+
throw new Error("gRPC not implemented");
|
|
23
23
|
}
|
|
24
|
-
async *createChatCompletionStream(
|
|
25
|
-
throw new Error(
|
|
24
|
+
async *createChatCompletionStream(_request) {
|
|
25
|
+
throw new Error("gRPC not implemented");
|
|
26
26
|
}
|
|
27
27
|
async listModels() {
|
|
28
|
-
throw new Error(
|
|
28
|
+
throw new Error("gRPC not implemented");
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=grpc-client.js.map
|
package/dist/grpc-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-client.js","sourceRoot":"","sources":["../src/grpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,OAAO,UAAU;IACtB,YAAY,
|
|
1
|
+
{"version":3,"file":"grpc-client.js","sourceRoot":"","sources":["../src/grpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,OAAO,UAAU;IACtB,YAAY,OAAyB;QACpC,uDAAuD;QACvD,2EAA2E;QAC3E,oFAAoF;QACpF,iDAAiD;QACjD,MAAM,IAAI,KAAK,CACd,2EAA2E;YAC1E,sFAAsF,CACvF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,QAA+B;QAE/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,CAAC,0BAA0B,CAChC,QAA+B;QAE/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;CACD"}
|
package/dist/http-client.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* HTTP Client for Nova API
|
|
3
3
|
* Handles authentication, retries, timeouts, and error handling
|
|
4
4
|
*/
|
|
5
|
-
import type { NovaClientConfig } from
|
|
5
|
+
import type { NovaClientConfig } from "./types.js";
|
|
6
6
|
export declare class HttpClient {
|
|
7
7
|
private readonly apiKey;
|
|
8
8
|
private readonly baseUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,EAAE,gBAAgB;IAoBpC;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAItC;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIvD;;OAEG;IACG,UAAU,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IA8CtC;;OAEG;YACW,OAAO;IA8DrB;;OAEG;YACW,UAAU;CA6BxB"}
|
package/dist/http-client.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* HTTP Client for Nova API
|
|
3
3
|
* Handles authentication, retries, timeouts, and error handling
|
|
4
4
|
*/
|
|
5
|
-
import { NovaError } from
|
|
5
|
+
import { NovaError } from "./types.js";
|
|
6
6
|
export class HttpClient {
|
|
7
7
|
apiKey;
|
|
8
8
|
baseUrl;
|
|
@@ -10,16 +10,16 @@ export class HttpClient {
|
|
|
10
10
|
maxRetries;
|
|
11
11
|
constructor(config) {
|
|
12
12
|
if (!config.apiKey) {
|
|
13
|
-
throw new NovaError(
|
|
13
|
+
throw new NovaError("API key is required");
|
|
14
14
|
}
|
|
15
|
-
if (!config.apiKey.startsWith(
|
|
16
|
-
throw new NovaError(
|
|
15
|
+
if (!config.apiKey.startsWith("nova_sk_")) {
|
|
16
|
+
throw new NovaError("Invalid API key format. Expected format: nova_sk_...");
|
|
17
17
|
}
|
|
18
18
|
this.apiKey = config.apiKey;
|
|
19
|
-
const envBase =
|
|
19
|
+
const envBase = typeof process !== "undefined" ? process.env.NOVA_BASE_URL : undefined;
|
|
20
20
|
const configBase = config.baseUrl;
|
|
21
|
-
const fallback =
|
|
22
|
-
this.baseUrl = (configBase || envBase || fallback).replace(/\/$/,
|
|
21
|
+
const fallback = "http://localhost:3000";
|
|
22
|
+
this.baseUrl = (configBase || envBase || fallback).replace(/\/$/, "");
|
|
23
23
|
this.timeoutMs = config.timeoutMs || 60000;
|
|
24
24
|
this.maxRetries = config.maxRetries ?? 2;
|
|
25
25
|
}
|
|
@@ -27,13 +27,13 @@ export class HttpClient {
|
|
|
27
27
|
* Make a GET request
|
|
28
28
|
*/
|
|
29
29
|
async get(path) {
|
|
30
|
-
return this.request(
|
|
30
|
+
return this.request("GET", path);
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Make a POST request
|
|
34
34
|
*/
|
|
35
35
|
async post(path, body) {
|
|
36
|
-
return this.request(
|
|
36
|
+
return this.request("POST", path, body);
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Make a streaming POST request (returns ReadableStream)
|
|
@@ -44,15 +44,15 @@ export class HttpClient {
|
|
|
44
44
|
const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
45
45
|
// Combine abort signals
|
|
46
46
|
if (signal) {
|
|
47
|
-
signal.addEventListener(
|
|
47
|
+
signal.addEventListener("abort", () => controller.abort());
|
|
48
48
|
}
|
|
49
49
|
try {
|
|
50
50
|
const response = await fetch(url, {
|
|
51
|
-
method:
|
|
51
|
+
method: "POST",
|
|
52
52
|
headers: {
|
|
53
|
-
|
|
53
|
+
"Content-Type": "application/json",
|
|
54
54
|
Authorization: `Bearer ${this.apiKey}`,
|
|
55
|
-
|
|
55
|
+
"User-Agent": "@ancatag/n-r",
|
|
56
56
|
},
|
|
57
57
|
body: body ? JSON.stringify(body) : undefined,
|
|
58
58
|
signal: controller.signal,
|
|
@@ -63,7 +63,7 @@ export class HttpClient {
|
|
|
63
63
|
throw error;
|
|
64
64
|
}
|
|
65
65
|
if (!response.body) {
|
|
66
|
-
throw new NovaError(
|
|
66
|
+
throw new NovaError("No response body");
|
|
67
67
|
}
|
|
68
68
|
return response.body;
|
|
69
69
|
}
|
|
@@ -72,10 +72,10 @@ export class HttpClient {
|
|
|
72
72
|
if (error instanceof NovaError) {
|
|
73
73
|
throw error;
|
|
74
74
|
}
|
|
75
|
-
if (error.name ===
|
|
76
|
-
throw new NovaError(
|
|
75
|
+
if (error.name === "AbortError") {
|
|
76
|
+
throw new NovaError("Request timeout", 408, "timeout");
|
|
77
77
|
}
|
|
78
|
-
throw new NovaError(error.message ||
|
|
78
|
+
throw new NovaError(error.message || "Network error", 0, "network_error");
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
@@ -89,9 +89,9 @@ export class HttpClient {
|
|
|
89
89
|
const response = await fetch(url, {
|
|
90
90
|
method,
|
|
91
91
|
headers: {
|
|
92
|
-
|
|
92
|
+
"Content-Type": "application/json",
|
|
93
93
|
Authorization: `Bearer ${this.apiKey}`,
|
|
94
|
-
|
|
94
|
+
"User-Agent": "@ancatag/n-r",
|
|
95
95
|
},
|
|
96
96
|
body: body ? JSON.stringify(body) : undefined,
|
|
97
97
|
signal: controller.signal,
|
|
@@ -100,11 +100,10 @@ export class HttpClient {
|
|
|
100
100
|
if (!response.ok) {
|
|
101
101
|
const error = await this.parseError(response);
|
|
102
102
|
// Retry on server errors (5xx) or rate limits (429)
|
|
103
|
-
if ((error.status && error.status >= 500) ||
|
|
104
|
-
error.status === 429) {
|
|
103
|
+
if ((error.status && error.status >= 500) || error.status === 429) {
|
|
105
104
|
if (retryCount < this.maxRetries) {
|
|
106
105
|
// Exponential backoff: 1s, 2s, 4s
|
|
107
|
-
const delay =
|
|
106
|
+
const delay = 2 ** retryCount * 1000;
|
|
108
107
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
109
108
|
return this.request(method, path, body, retryCount + 1);
|
|
110
109
|
}
|
|
@@ -119,16 +118,16 @@ export class HttpClient {
|
|
|
119
118
|
if (error instanceof NovaError) {
|
|
120
119
|
throw error;
|
|
121
120
|
}
|
|
122
|
-
if (error.name ===
|
|
123
|
-
throw new NovaError(
|
|
121
|
+
if (error.name === "AbortError") {
|
|
122
|
+
throw new NovaError("Request timeout", 408, "timeout");
|
|
124
123
|
}
|
|
125
124
|
// Retry on network errors
|
|
126
|
-
if (retryCount < this.maxRetries && method ===
|
|
127
|
-
const delay =
|
|
125
|
+
if (retryCount < this.maxRetries && method === "GET") {
|
|
126
|
+
const delay = 2 ** retryCount * 1000;
|
|
128
127
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
129
128
|
return this.request(method, path, body, retryCount + 1);
|
|
130
129
|
}
|
|
131
|
-
throw new NovaError(error.message ||
|
|
130
|
+
throw new NovaError(error.message || "Network error", 0, "network_error");
|
|
132
131
|
}
|
|
133
132
|
}
|
|
134
133
|
/**
|
|
@@ -141,13 +140,13 @@ export class HttpClient {
|
|
|
141
140
|
}
|
|
142
141
|
catch {
|
|
143
142
|
// If response is not JSON, use status text
|
|
144
|
-
return new NovaError(response.statusText || `HTTP ${response.status}`, response.status,
|
|
143
|
+
return new NovaError(response.statusText || `HTTP ${response.status}`, response.status, "http_error");
|
|
145
144
|
}
|
|
146
145
|
// Handle OpenAI-compatible error format
|
|
147
146
|
if (errorData.error) {
|
|
148
|
-
return new NovaError(errorData.error.message ||
|
|
147
|
+
return new NovaError(errorData.error.message || "API error", response.status, errorData.error.code, errorData.error.type);
|
|
149
148
|
}
|
|
150
|
-
return new NovaError(errorData.message || `HTTP ${response.status}`, response.status,
|
|
149
|
+
return new NovaError(errorData.message || `HTTP ${response.status}`, response.status, "http_error");
|
|
151
150
|
}
|
|
152
151
|
}
|
|
153
152
|
//# sourceMappingURL=http-client.js.map
|
package/dist/http-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,OAAO,UAAU;IACL,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,UAAU,CAAS;IAEpC,YAAY,MAAwB;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
* }
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export { HttpClient } from
|
|
39
|
-
export {
|
|
40
|
-
export {
|
|
41
|
-
export
|
|
35
|
+
export { ChatCompletions } from "./chat.js";
|
|
36
|
+
export { NovaClient } from "./client.js";
|
|
37
|
+
export { GrpcClient } from "./grpc-client.js";
|
|
38
|
+
export { HttpClient } from "./http-client.js";
|
|
39
|
+
export { Models } from "./models.js";
|
|
40
|
+
export type { ChatCompletionChoice, ChatCompletionChunk, ChatCompletionChunkChoice, ChatCompletionError, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionUsage, ChatMessage, Model, NovaClientConfig, NovaTransport, } from "./types.js";
|
|
41
|
+
export { NovaError } from "./types.js";
|
|
42
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACX,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,aAAa,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
* }
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export { HttpClient } from
|
|
39
|
-
export {
|
|
40
|
-
export { NovaError } from
|
|
35
|
+
export { ChatCompletions } from "./chat.js";
|
|
36
|
+
export { NovaClient } from "./client.js";
|
|
37
|
+
export { GrpcClient } from "./grpc-client.js";
|
|
38
|
+
export { HttpClient } from "./http-client.js";
|
|
39
|
+
export { Models } from "./models.js";
|
|
40
|
+
export { NovaError } from "./types.js";
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAcrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/models.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Models API
|
|
3
3
|
* Handles model listing and retrieval
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import type { Model } from
|
|
5
|
+
import { GrpcClient } from "./grpc-client.js";
|
|
6
|
+
import { HttpClient } from "./http-client.js";
|
|
7
|
+
import type { Model } from "./types.js";
|
|
8
8
|
export declare class Models {
|
|
9
9
|
private readonly httpClient;
|
|
10
10
|
private readonly grpcClient?;
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,MAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBADX,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,UAAU,YAAA;IAGzC,OAAO,CAAC,MAAM;IAId;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,MAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBADX,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,UAAU,YAAA;IAGzC,OAAO,CAAC,MAAM;IAId;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAS9B;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;CAI1C"}
|
package/dist/models.js
CHANGED
|
@@ -19,7 +19,7 @@ export class Models {
|
|
|
19
19
|
if (this.isGrpc() && this.grpcClient) {
|
|
20
20
|
return this.grpcClient.listModels();
|
|
21
21
|
}
|
|
22
|
-
const response = await this.httpClient.get(
|
|
22
|
+
const response = await this.httpClient.get("v1/models");
|
|
23
23
|
return response.data || [];
|
|
24
24
|
}
|
|
25
25
|
/**
|
package/dist/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,OAAO,MAAM;IAEA;IACA;IAFlB,YACkB,UAAsB,EACtB,UAAuB;QADvB,eAAU,GAAV,UAAU,CAAY;QACtB,eAAU,GAAV,UAAU,CAAa;IACtC,CAAC;IAEI,MAAM;QACb,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,OAAO,MAAM;IAEA;IACA;IAFlB,YACkB,UAAsB,EACtB,UAAuB;QADvB,eAAU,GAAV,UAAU,CAAY;QACtB,eAAU,GAAV,UAAU,CAAa;IACtC,CAAC;IAEI,MAAM;QACb,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,WAAW,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAQ,aAAa,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Nova SDK Types
|
|
3
3
|
* OpenAI-compatible types for Nova AI API
|
|
4
4
|
*/
|
|
5
|
-
export type NovaTransport =
|
|
5
|
+
export type NovaTransport = "rest" | "grpc";
|
|
6
6
|
/**
|
|
7
7
|
* Chat message format (OpenAI-compatible)
|
|
8
8
|
*/
|
|
9
9
|
export interface ChatMessage {
|
|
10
|
-
role:
|
|
10
|
+
role: "system" | "user" | "assistant" | "function";
|
|
11
11
|
content: string;
|
|
12
12
|
name?: string;
|
|
13
13
|
function_call?: {
|
|
@@ -49,14 +49,14 @@ export interface ChatCompletionRequest {
|
|
|
49
49
|
*/
|
|
50
50
|
export interface ChatCompletionResponse {
|
|
51
51
|
id: string;
|
|
52
|
-
object:
|
|
52
|
+
object: "chat.completion";
|
|
53
53
|
created: number;
|
|
54
54
|
model: string;
|
|
55
55
|
choices: ChatCompletionChoice[];
|
|
56
56
|
usage: ChatCompletionUsage;
|
|
57
57
|
nova?: {
|
|
58
58
|
cacheHit: boolean;
|
|
59
|
-
cacheLayer?:
|
|
59
|
+
cacheLayer?: "hot" | "semantic" | null;
|
|
60
60
|
tokensSaved: number;
|
|
61
61
|
responseTimeMs: number;
|
|
62
62
|
requestId: string;
|
|
@@ -65,14 +65,14 @@ export interface ChatCompletionResponse {
|
|
|
65
65
|
export interface ChatCompletionChoice {
|
|
66
66
|
index: number;
|
|
67
67
|
message: {
|
|
68
|
-
role:
|
|
68
|
+
role: "assistant";
|
|
69
69
|
content: string;
|
|
70
70
|
function_call?: {
|
|
71
71
|
name: string;
|
|
72
72
|
arguments: string;
|
|
73
73
|
};
|
|
74
74
|
};
|
|
75
|
-
finish_reason:
|
|
75
|
+
finish_reason: "stop" | "length" | "function_call" | "content_filter" | null;
|
|
76
76
|
}
|
|
77
77
|
export interface ChatCompletionUsage {
|
|
78
78
|
prompt_tokens: number;
|
|
@@ -84,7 +84,7 @@ export interface ChatCompletionUsage {
|
|
|
84
84
|
*/
|
|
85
85
|
export interface ChatCompletionChunk {
|
|
86
86
|
id: string;
|
|
87
|
-
object:
|
|
87
|
+
object: "chat.completion.chunk";
|
|
88
88
|
created: number;
|
|
89
89
|
model: string;
|
|
90
90
|
choices: ChatCompletionChunkChoice[];
|
|
@@ -92,14 +92,14 @@ export interface ChatCompletionChunk {
|
|
|
92
92
|
export interface ChatCompletionChunkChoice {
|
|
93
93
|
index: number;
|
|
94
94
|
delta: {
|
|
95
|
-
role?:
|
|
95
|
+
role?: "assistant";
|
|
96
96
|
content?: string;
|
|
97
97
|
function_call?: {
|
|
98
98
|
name?: string;
|
|
99
99
|
arguments?: string;
|
|
100
100
|
};
|
|
101
101
|
};
|
|
102
|
-
finish_reason:
|
|
102
|
+
finish_reason: "stop" | "length" | "function_call" | "content_filter" | null;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
105
|
* Error response (OpenAI-compatible)
|
|
@@ -117,7 +117,7 @@ export interface ChatCompletionError {
|
|
|
117
117
|
*/
|
|
118
118
|
export interface Model {
|
|
119
119
|
id: string;
|
|
120
|
-
object:
|
|
120
|
+
object: "model";
|
|
121
121
|
created: number;
|
|
122
122
|
owned_by: string;
|
|
123
123
|
}
|
package/dist/types.js
CHANGED