@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 CHANGED
@@ -18,7 +18,7 @@ const nirmos = new Nirmos({
18
18
  });
19
19
 
20
20
  const response = await nirmos.gateway.chat.create({
21
- model: "openai/gpt-4.1-mini",
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: "openai/gpt-4.1-mini",
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: "anthropic/claude-sonnet-4",
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.
@@ -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":"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"}
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;CA+DvB"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/gateway/chat.ts"],"names":[],"mappings":"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"}
@@ -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
- export interface ChatCreateParams {
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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/gateway/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nirmos/sdk",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Official TypeScript SDK for the Nirmos AI platform.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -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 {
@@ -91,8 +91,7 @@ export interface PromptReference {
91
91
  position?: "before" | "after";
92
92
  }
93
93
 
94
- export interface ChatCreateParams {
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
  }