@nirmos/sdk 0.1.0 → 0.2.0
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/README.md +25 -3
- package/dist/cjs/gateway/chat.js +18 -3
- package/dist/cjs/gateway/chat.js.map +1 -1
- package/dist/esm/gateway/chat.d.ts.map +1 -1
- package/dist/esm/gateway/chat.js +18 -3
- package/dist/esm/gateway/chat.js.map +1 -1
- package/dist/esm/gateway/types.d.ts +16 -2
- package/dist/esm/gateway/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/gateway/chat.ts +23 -3
- package/src/gateway/types.ts +20 -2
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ const nirmos = new Nirmos({
|
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
const response = await nirmos.gateway.chat.create({
|
|
21
|
-
model: "
|
|
21
|
+
model: "gpt-4.1-mini",
|
|
22
22
|
messages: [{ role: "user", content: "Hello from Nirmos" }],
|
|
23
23
|
});
|
|
24
24
|
|
|
@@ -27,11 +27,22 @@ console.log(response.usage);
|
|
|
27
27
|
console.log(response.metadata.requestId);
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
Use a Nirmos route when routing policy is managed in the gateway:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
const response = await nirmos.gateway.chat.create({
|
|
34
|
+
route: "production-chat",
|
|
35
|
+
messages: [{ role: "user", content: "Hello from Nirmos" }],
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Pass exactly one of `model` or `route`. TypeScript enforces this choice, and runtime validation protects JavaScript callers. Route configuration and selection remain gateway responsibilities.
|
|
40
|
+
|
|
30
41
|
## Streaming
|
|
31
42
|
|
|
32
43
|
```ts
|
|
33
44
|
const stream = await nirmos.gateway.chat.stream({
|
|
34
|
-
model: "
|
|
45
|
+
model: "gpt-4.1-mini",
|
|
35
46
|
messages: [{ role: "user", content: "Write a short announcement." }],
|
|
36
47
|
});
|
|
37
48
|
|
|
@@ -48,7 +59,7 @@ const completion = await stream.finalResponse();
|
|
|
48
59
|
|
|
49
60
|
```ts
|
|
50
61
|
const response = await nirmos.gateway.chat.create({
|
|
51
|
-
model: "
|
|
62
|
+
model: "claude-sonnet-4",
|
|
52
63
|
prompt: {
|
|
53
64
|
id: "support-reply",
|
|
54
65
|
variables: { customerName: "Asha", tone: "calm" },
|
|
@@ -57,6 +68,17 @@ const response = await nirmos.gateway.chat.create({
|
|
|
57
68
|
});
|
|
58
69
|
```
|
|
59
70
|
|
|
71
|
+
Pass only `model` to use its default configured provider. Set `provider` only
|
|
72
|
+
when a direct-model request must override that provider selection:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
const response = await nirmos.gateway.chat.create({
|
|
76
|
+
model: "gpt-4.1-mini",
|
|
77
|
+
provider: "openai",
|
|
78
|
+
messages: [{ role: "user", content: "Hello from Nirmos" }],
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
60
82
|
Prompt retrieval uses a configurable in-memory TTL/LRU cache. Content changes create immutable versions; approved versions can be activated without application redeployment.
|
|
61
83
|
|
|
62
84
|
Full documentation lives in `apps/web/content/docs/sdk` in the Nirmos repository.
|
package/dist/cjs/gateway/chat.js
CHANGED
|
@@ -32,15 +32,14 @@ class Chat {
|
|
|
32
32
|
return new chat_stream_js_1.ChatStream(await this.#transport.ensureSuccess(response));
|
|
33
33
|
}
|
|
34
34
|
async #body(params, stream) {
|
|
35
|
+
validateTarget(params);
|
|
35
36
|
const messages = await this.#messages(params);
|
|
36
|
-
if (!params.model.trim()) {
|
|
37
|
-
throw localValidation("model", "Model is required.");
|
|
38
|
-
}
|
|
39
37
|
if (messages.length === 0) {
|
|
40
38
|
throw localValidation("messages", "Provide messages, a managed prompt, or both.");
|
|
41
39
|
}
|
|
42
40
|
return {
|
|
43
41
|
model: params.model,
|
|
42
|
+
route: params.route,
|
|
44
43
|
messages: messages.map(mappers_js_1.toWireMessage),
|
|
45
44
|
stream,
|
|
46
45
|
temperature: params.temperature,
|
|
@@ -73,6 +72,22 @@ class Chat {
|
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
exports.Chat = Chat;
|
|
75
|
+
function validateTarget(params) {
|
|
76
|
+
const hasModel = params.model !== undefined;
|
|
77
|
+
const hasRoute = params.route !== undefined;
|
|
78
|
+
if (hasModel && hasRoute) {
|
|
79
|
+
throw localValidation("model,route", "Provide either model or route, but not both.");
|
|
80
|
+
}
|
|
81
|
+
if (!hasModel && !hasRoute) {
|
|
82
|
+
throw localValidation("model,route", "Provide either model or route.");
|
|
83
|
+
}
|
|
84
|
+
if (hasModel && (typeof params.model !== "string" || !params.model.trim())) {
|
|
85
|
+
throw localValidation("model", "Model is required.");
|
|
86
|
+
}
|
|
87
|
+
if (hasRoute && (typeof params.route !== "string" || !params.route.trim())) {
|
|
88
|
+
throw localValidation("route", "Route is required.");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
76
91
|
function toWireResponseFormat(format) {
|
|
77
92
|
if (!format)
|
|
78
93
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":";;;AAAA,iDAAoD;AAIpD,qDAA8C;AAC9C,6CAAsE;AAStE,MAAa,IAAI;IACN,UAAU,CAAgB;IAC1B,QAAQ,CAAU;IAE3B,YAAY,SAAwB,EAAE,OAAgB;QACpD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAA,oCAAuB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,2BAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAwB,EACxB,MAAe;QAEf,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,IAAI;;gBAIH,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO;IAKhD,MAAM,CACV,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC;IAWpB,MAAM,CACV,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,IAAI;;gBAIH,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO;IAKhD,MAAM,CACV,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC;IAWpB,MAAM,CACV,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC;CA8DvB"}
|
package/dist/esm/gateway/chat.js
CHANGED
|
@@ -29,15 +29,14 @@ export class Chat {
|
|
|
29
29
|
return new ChatStream(await this.#transport.ensureSuccess(response));
|
|
30
30
|
}
|
|
31
31
|
async #body(params, stream) {
|
|
32
|
+
validateTarget(params);
|
|
32
33
|
const messages = await this.#messages(params);
|
|
33
|
-
if (!params.model.trim()) {
|
|
34
|
-
throw localValidation("model", "Model is required.");
|
|
35
|
-
}
|
|
36
34
|
if (messages.length === 0) {
|
|
37
35
|
throw localValidation("messages", "Provide messages, a managed prompt, or both.");
|
|
38
36
|
}
|
|
39
37
|
return {
|
|
40
38
|
model: params.model,
|
|
39
|
+
route: params.route,
|
|
41
40
|
messages: messages.map(toWireMessage),
|
|
42
41
|
stream,
|
|
43
42
|
temperature: params.temperature,
|
|
@@ -69,6 +68,22 @@ export class Chat {
|
|
|
69
68
|
: [...rendered.messages, ...requestMessages];
|
|
70
69
|
}
|
|
71
70
|
}
|
|
71
|
+
function validateTarget(params) {
|
|
72
|
+
const hasModel = params.model !== undefined;
|
|
73
|
+
const hasRoute = params.route !== undefined;
|
|
74
|
+
if (hasModel && hasRoute) {
|
|
75
|
+
throw localValidation("model,route", "Provide either model or route, but not both.");
|
|
76
|
+
}
|
|
77
|
+
if (!hasModel && !hasRoute) {
|
|
78
|
+
throw localValidation("model,route", "Provide either model or route.");
|
|
79
|
+
}
|
|
80
|
+
if (hasModel && (typeof params.model !== "string" || !params.model.trim())) {
|
|
81
|
+
throw localValidation("model", "Model is required.");
|
|
82
|
+
}
|
|
83
|
+
if (hasRoute && (typeof params.route !== "string" || !params.route.trim())) {
|
|
84
|
+
throw localValidation("route", "Route is required.");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
72
87
|
function toWireResponseFormat(format) {
|
|
73
88
|
if (!format)
|
|
74
89
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAStE,MAAM,OAAO,IAAI;IACN,UAAU,CAAgB;IAC1B,QAAQ,CAAU;IAE3B,YAAY,SAAwB,EAAE,OAAgB;QACpD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAwB,EACxB,MAAe;QAEf,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAStE,MAAM,OAAO,IAAI;IACN,UAAU,CAAgB;IAC1B,QAAQ,CAAU;IAE3B,YAAY,SAAwB,EAAE,OAAgB;QACpD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAwB,EACxB,MAAe;QAEf,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,eAAe,CACnB,UAAU,EACV,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;YACrC,MAAM;YACN,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,UAAU,EAAE,MAAM,CAAC,eAAe;YAClC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5D,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,MAAM,CAAC,cAAc;YACtC,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC;YAC/D,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAwB;QACtC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,eAAe,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzC;YACE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YACpB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;SAC3B,EACD,MAAM,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QAEF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO;YACvC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC;IACjD,CAAC;CACF;AAED,SAAS,cAAc,CAAC,MAAwB;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;IAE5C,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,eAAe,CACnB,aAAa,EACb,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,eAAe,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,eAAe,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAkC;IAElC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE;YACX,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAqC;IAErC,OAAO,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtE,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,OAAe;IACrD,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE;QAClC,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,EAAE,KAAK,EAAE;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -65,8 +65,7 @@ export interface PromptReference {
|
|
|
65
65
|
/** Prompt messages are inserted before request messages by default. */
|
|
66
66
|
position?: "before" | "after";
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
model: string;
|
|
68
|
+
interface ChatCreateParamsBase {
|
|
70
69
|
messages?: readonly ChatMessage[];
|
|
71
70
|
/** Resolve and render a managed prompt before sending the gateway request. */
|
|
72
71
|
prompt?: PromptReference;
|
|
@@ -79,11 +78,21 @@ export interface ChatCreateParams {
|
|
|
79
78
|
responseFormat?: ResponseFormat;
|
|
80
79
|
seed?: number;
|
|
81
80
|
user?: string;
|
|
81
|
+
/** Optional provider override. Omit to let the gateway select a provider. */
|
|
82
82
|
provider?: string;
|
|
83
83
|
fallbackModels?: readonly string[];
|
|
84
84
|
routingStrategy?: RoutingStrategy;
|
|
85
85
|
metadata?: Readonly<Record<string, JsonValue>>;
|
|
86
86
|
}
|
|
87
|
+
export type ChatCreateParams = ChatCreateParamsBase & ({
|
|
88
|
+
/** Model identifier. Provider selection is handled by the gateway by default. */
|
|
89
|
+
model: string;
|
|
90
|
+
route?: never;
|
|
91
|
+
} | {
|
|
92
|
+
/** Nirmos route identifier. Routing is resolved by the gateway. */
|
|
93
|
+
route: string;
|
|
94
|
+
model?: never;
|
|
95
|
+
});
|
|
87
96
|
export type FinishReason = ExtensibleString<"stop" | "length" | "toolCalls" | "contentFilter">;
|
|
88
97
|
export interface ChatChoice {
|
|
89
98
|
index: number;
|
|
@@ -110,11 +119,13 @@ export interface ChatStreamEvent {
|
|
|
110
119
|
metadata: RequestMetadata;
|
|
111
120
|
}
|
|
112
121
|
export interface EmbeddingCreateParams {
|
|
122
|
+
/** Model identifier. Provider selection is handled by the gateway by default. */
|
|
113
123
|
model: string;
|
|
114
124
|
input: string | readonly string[];
|
|
115
125
|
dimensions?: number;
|
|
116
126
|
encoding?: "float" | "base64";
|
|
117
127
|
user?: string;
|
|
128
|
+
/** Optional provider override. Omit to use the model's configured default provider. */
|
|
118
129
|
provider?: string;
|
|
119
130
|
fallbackModels?: readonly string[];
|
|
120
131
|
routingStrategy?: RoutingStrategy;
|
|
@@ -136,6 +147,7 @@ export interface EmbeddingResponse {
|
|
|
136
147
|
}
|
|
137
148
|
export type ImageSize = ExtensibleString<"256x256" | "512x512" | "1024x1024" | "1024x1792" | "1792x1024" | "auto">;
|
|
138
149
|
export interface ImageGenerateParams {
|
|
150
|
+
/** Model identifier. Provider selection is handled by the gateway by default. */
|
|
139
151
|
model: string;
|
|
140
152
|
prompt: string;
|
|
141
153
|
count?: number;
|
|
@@ -146,6 +158,7 @@ export interface ImageGenerateParams {
|
|
|
146
158
|
responseFormat?: "url" | "base64";
|
|
147
159
|
background?: ExtensibleString<"transparent" | "opaque" | "auto">;
|
|
148
160
|
user?: string;
|
|
161
|
+
/** Optional provider override. Omit to use the model's configured default provider. */
|
|
149
162
|
provider?: string;
|
|
150
163
|
metadata?: Readonly<Record<string, JsonValue>>;
|
|
151
164
|
}
|
|
@@ -165,4 +178,5 @@ export interface ImageGeneration {
|
|
|
165
178
|
usage?: Usage;
|
|
166
179
|
metadata: RequestMetadata;
|
|
167
180
|
}
|
|
181
|
+
export {};
|
|
168
182
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gateway/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,KAAK,EACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GACzB,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,UAAU,GACV;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B,CAAC;AAEN,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAC5C,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAC9E,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,gBAAgB,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC/B;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gateway/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/gateway/chat.ts
CHANGED
|
@@ -53,10 +53,8 @@ export class Chat {
|
|
|
53
53
|
params: ChatCreateParams,
|
|
54
54
|
stream: boolean,
|
|
55
55
|
): Promise<Record<string, unknown>> {
|
|
56
|
+
validateTarget(params);
|
|
56
57
|
const messages = await this.#messages(params);
|
|
57
|
-
if (!params.model.trim()) {
|
|
58
|
-
throw localValidation("model", "Model is required.");
|
|
59
|
-
}
|
|
60
58
|
if (messages.length === 0) {
|
|
61
59
|
throw localValidation(
|
|
62
60
|
"messages",
|
|
@@ -66,6 +64,7 @@ export class Chat {
|
|
|
66
64
|
|
|
67
65
|
return {
|
|
68
66
|
model: params.model,
|
|
67
|
+
route: params.route,
|
|
69
68
|
messages: messages.map(toWireMessage),
|
|
70
69
|
stream,
|
|
71
70
|
temperature: params.temperature,
|
|
@@ -103,6 +102,27 @@ export class Chat {
|
|
|
103
102
|
}
|
|
104
103
|
}
|
|
105
104
|
|
|
105
|
+
function validateTarget(params: ChatCreateParams): void {
|
|
106
|
+
const hasModel = params.model !== undefined;
|
|
107
|
+
const hasRoute = params.route !== undefined;
|
|
108
|
+
|
|
109
|
+
if (hasModel && hasRoute) {
|
|
110
|
+
throw localValidation(
|
|
111
|
+
"model,route",
|
|
112
|
+
"Provide either model or route, but not both.",
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
if (!hasModel && !hasRoute) {
|
|
116
|
+
throw localValidation("model,route", "Provide either model or route.");
|
|
117
|
+
}
|
|
118
|
+
if (hasModel && (typeof params.model !== "string" || !params.model.trim())) {
|
|
119
|
+
throw localValidation("model", "Model is required.");
|
|
120
|
+
}
|
|
121
|
+
if (hasRoute && (typeof params.route !== "string" || !params.route.trim())) {
|
|
122
|
+
throw localValidation("route", "Route is required.");
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
106
126
|
function toWireResponseFormat(
|
|
107
127
|
format: ResponseFormat | undefined,
|
|
108
128
|
): Record<string, unknown> | undefined {
|
package/src/gateway/types.ts
CHANGED
|
@@ -91,8 +91,7 @@ export interface PromptReference {
|
|
|
91
91
|
position?: "before" | "after";
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
model: string;
|
|
94
|
+
interface ChatCreateParamsBase {
|
|
96
95
|
messages?: readonly ChatMessage[];
|
|
97
96
|
/** Resolve and render a managed prompt before sending the gateway request. */
|
|
98
97
|
prompt?: PromptReference;
|
|
@@ -105,12 +104,27 @@ export interface ChatCreateParams {
|
|
|
105
104
|
responseFormat?: ResponseFormat;
|
|
106
105
|
seed?: number;
|
|
107
106
|
user?: string;
|
|
107
|
+
/** Optional provider override. Omit to let the gateway select a provider. */
|
|
108
108
|
provider?: string;
|
|
109
109
|
fallbackModels?: readonly string[];
|
|
110
110
|
routingStrategy?: RoutingStrategy;
|
|
111
111
|
metadata?: Readonly<Record<string, JsonValue>>;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
export type ChatCreateParams = ChatCreateParamsBase &
|
|
115
|
+
(
|
|
116
|
+
| {
|
|
117
|
+
/** Model identifier. Provider selection is handled by the gateway by default. */
|
|
118
|
+
model: string;
|
|
119
|
+
route?: never;
|
|
120
|
+
}
|
|
121
|
+
| {
|
|
122
|
+
/** Nirmos route identifier. Routing is resolved by the gateway. */
|
|
123
|
+
route: string;
|
|
124
|
+
model?: never;
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
|
|
114
128
|
export type FinishReason = ExtensibleString<
|
|
115
129
|
"stop" | "length" | "toolCalls" | "contentFilter"
|
|
116
130
|
>;
|
|
@@ -145,11 +159,13 @@ export interface ChatStreamEvent {
|
|
|
145
159
|
}
|
|
146
160
|
|
|
147
161
|
export interface EmbeddingCreateParams {
|
|
162
|
+
/** Model identifier. Provider selection is handled by the gateway by default. */
|
|
148
163
|
model: string;
|
|
149
164
|
input: string | readonly string[];
|
|
150
165
|
dimensions?: number;
|
|
151
166
|
encoding?: "float" | "base64";
|
|
152
167
|
user?: string;
|
|
168
|
+
/** Optional provider override. Omit to use the model's configured default provider. */
|
|
153
169
|
provider?: string;
|
|
154
170
|
fallbackModels?: readonly string[];
|
|
155
171
|
routingStrategy?: RoutingStrategy;
|
|
@@ -171,6 +187,7 @@ export type ImageSize = ExtensibleString<
|
|
|
171
187
|
>;
|
|
172
188
|
|
|
173
189
|
export interface ImageGenerateParams {
|
|
190
|
+
/** Model identifier. Provider selection is handled by the gateway by default. */
|
|
174
191
|
model: string;
|
|
175
192
|
prompt: string;
|
|
176
193
|
count?: number;
|
|
@@ -183,6 +200,7 @@ export interface ImageGenerateParams {
|
|
|
183
200
|
responseFormat?: "url" | "base64";
|
|
184
201
|
background?: ExtensibleString<"transparent" | "opaque" | "auto">;
|
|
185
202
|
user?: string;
|
|
203
|
+
/** Optional provider override. Omit to use the model's configured default provider. */
|
|
186
204
|
provider?: string;
|
|
187
205
|
metadata?: Readonly<Record<string, JsonValue>>;
|
|
188
206
|
}
|