@nirmos/sdk 0.2.0 → 0.3.2
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 +81 -44
- package/dist/cjs/client.js +112 -20
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/core/errors.js +4 -2
- package/dist/cjs/core/errors.js.map +1 -1
- package/dist/cjs/core/metadata.js +3 -3
- package/dist/cjs/core/metadata.js.map +1 -1
- package/dist/cjs/core/transport.js +36 -9
- package/dist/cjs/core/transport.js.map +1 -1
- package/dist/cjs/index.js +10 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/management/contracts.js +3 -0
- package/dist/cjs/management/contracts.js.map +1 -0
- package/dist/cjs/management/execution-types.js +3 -0
- package/dist/cjs/management/execution-types.js.map +1 -0
- package/dist/cjs/management/manifest.js +1551 -0
- package/dist/cjs/management/manifest.js.map +1 -0
- package/dist/cjs/management/resources.js +199 -0
- package/dist/cjs/management/resources.js.map +1 -0
- package/dist/cjs/memory/memory.js +68 -0
- package/dist/cjs/memory/memory.js.map +1 -0
- package/dist/cjs/memory/types.js +3 -0
- package/dist/cjs/memory/types.js.map +1 -0
- package/dist/cjs/prompts/render.js +12 -4
- package/dist/cjs/prompts/render.js.map +1 -1
- package/dist/cjs/prompts/variables.js +117 -0
- package/dist/cjs/prompts/variables.js.map +1 -0
- package/dist/esm/client.d.ts +140 -13
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +111 -20
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/core/errors.d.ts +4 -0
- package/dist/esm/core/errors.d.ts.map +1 -1
- package/dist/esm/core/errors.js +4 -2
- package/dist/esm/core/errors.js.map +1 -1
- package/dist/esm/core/metadata.d.ts.map +1 -1
- package/dist/esm/core/metadata.js +3 -3
- package/dist/esm/core/metadata.js.map +1 -1
- package/dist/esm/core/transport.d.ts +9 -2
- package/dist/esm/core/transport.d.ts.map +1 -1
- package/dist/esm/core/transport.js +36 -9
- package/dist/esm/core/transport.js.map +1 -1
- package/dist/esm/gateway/types.d.ts +2 -0
- package/dist/esm/gateway/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +7 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/management/contracts.d.ts +30184 -0
- package/dist/esm/management/contracts.d.ts.map +1 -0
- package/dist/esm/management/contracts.js +2 -0
- package/dist/esm/management/contracts.js.map +1 -0
- package/dist/esm/management/execution-types.d.ts +246 -0
- package/dist/esm/management/execution-types.d.ts.map +1 -0
- package/dist/esm/management/execution-types.js +2 -0
- package/dist/esm/management/execution-types.js.map +1 -0
- package/dist/esm/management/manifest.d.ts +1353 -0
- package/dist/esm/management/manifest.d.ts.map +1 -0
- package/dist/esm/management/manifest.js +1548 -0
- package/dist/esm/management/manifest.js.map +1 -0
- package/dist/esm/management/resources.d.ts +290 -0
- package/dist/esm/management/resources.d.ts.map +1 -0
- package/dist/esm/management/resources.js +196 -0
- package/dist/esm/management/resources.js.map +1 -0
- package/dist/esm/memory/memory.d.ts +35 -0
- package/dist/esm/memory/memory.d.ts.map +1 -0
- package/dist/esm/memory/memory.js +64 -0
- package/dist/esm/memory/memory.js.map +1 -0
- package/dist/esm/memory/types.d.ts +135 -0
- package/dist/esm/memory/types.d.ts.map +1 -0
- package/dist/esm/memory/types.js +2 -0
- package/dist/esm/memory/types.js.map +1 -0
- package/dist/esm/prompts/render.js +11 -3
- package/dist/esm/prompts/render.js.map +1 -1
- package/dist/esm/prompts/variables.d.ts +29 -0
- package/dist/esm/prompts/variables.d.ts.map +1 -0
- package/dist/esm/prompts/variables.js +108 -0
- package/dist/esm/prompts/variables.js.map +1 -0
- package/package.json +2 -2
- package/src/client.ts +299 -36
- package/src/core/errors.ts +8 -2
- package/src/core/metadata.ts +3 -12
- package/src/core/transport.ts +47 -11
- package/src/gateway/types.ts +2 -0
- package/src/index.ts +71 -2
- package/src/management/contracts.ts +1179 -0
- package/src/management/execution-types.ts +10 -0
- package/src/management/manifest.ts +1547 -0
- package/src/management/resources.ts +198 -0
- package/src/memory/memory.ts +108 -0
- package/src/memory/types.ts +157 -0
- package/src/prompts/render.ts +9 -4
- package/src/prompts/variables.ts +156 -0
package/src/core/transport.ts
CHANGED
|
@@ -20,7 +20,11 @@ import {
|
|
|
20
20
|
import type { HeadersInput, RequestOptions } from "./types.js";
|
|
21
21
|
|
|
22
22
|
export interface TransportConfig {
|
|
23
|
-
apiKey
|
|
23
|
+
apiKey?: string;
|
|
24
|
+
accessToken?: string;
|
|
25
|
+
credentials?: RequestCredentials;
|
|
26
|
+
runtime?: boolean;
|
|
27
|
+
onError?: (error: APIError) => void;
|
|
24
28
|
baseUrl: string;
|
|
25
29
|
timeoutMs: number;
|
|
26
30
|
maxRetries: number;
|
|
@@ -31,7 +35,9 @@ export interface TransportConfig {
|
|
|
31
35
|
export interface TransportRequest {
|
|
32
36
|
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
|
|
33
37
|
path: string;
|
|
34
|
-
query?: Readonly<
|
|
38
|
+
query?: Readonly<
|
|
39
|
+
Record<string, string | number | boolean | readonly string[] | undefined>
|
|
40
|
+
>;
|
|
35
41
|
body?: unknown;
|
|
36
42
|
options?: RequestOptions;
|
|
37
43
|
}
|
|
@@ -41,7 +47,7 @@ export interface TransportResponse<T> {
|
|
|
41
47
|
response: Response;
|
|
42
48
|
}
|
|
43
49
|
|
|
44
|
-
const SDK_VERSION = "
|
|
50
|
+
const SDK_VERSION = "0.3.0";
|
|
45
51
|
|
|
46
52
|
export class HttpTransport {
|
|
47
53
|
readonly #config: TransportConfig;
|
|
@@ -55,16 +61,26 @@ export class HttpTransport {
|
|
|
55
61
|
const data = await parseResponseBody(response);
|
|
56
62
|
|
|
57
63
|
if (!response.ok) {
|
|
58
|
-
|
|
64
|
+
const error = createApiError(response, data);
|
|
65
|
+
this.#config.onError?.(error);
|
|
66
|
+
throw error;
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
return { data: data as T, response };
|
|
62
70
|
}
|
|
63
71
|
|
|
72
|
+
/** Control-plane and Knowledge envelope decoder; no raw Response at callsites. */
|
|
73
|
+
async data<T>(request: TransportRequest): Promise<T> {
|
|
74
|
+
const { data } = await this.request<{ data: T } | undefined>(request);
|
|
75
|
+
return data?.data as T;
|
|
76
|
+
}
|
|
77
|
+
|
|
64
78
|
async ensureSuccess(response: Response): Promise<Response> {
|
|
65
79
|
if (response.ok) return response;
|
|
66
80
|
const data = await parseResponseBody(response);
|
|
67
|
-
|
|
81
|
+
const error = createApiError(response, data);
|
|
82
|
+
this.#config.onError?.(error);
|
|
83
|
+
throw error;
|
|
68
84
|
}
|
|
69
85
|
|
|
70
86
|
async fetch(request: TransportRequest): Promise<Response> {
|
|
@@ -146,7 +162,12 @@ export class HttpTransport {
|
|
|
146
162
|
method: request.method,
|
|
147
163
|
headers: this.#headers(request),
|
|
148
164
|
body:
|
|
149
|
-
request.body === undefined
|
|
165
|
+
request.body === undefined
|
|
166
|
+
? undefined
|
|
167
|
+
: request.body instanceof FormData
|
|
168
|
+
? request.body
|
|
169
|
+
: JSON.stringify(request.body),
|
|
170
|
+
credentials: this.#config.credentials,
|
|
150
171
|
signal: controller.signal,
|
|
151
172
|
});
|
|
152
173
|
if (!response.body) return response;
|
|
@@ -207,7 +228,9 @@ export class HttpTransport {
|
|
|
207
228
|
`${this.#config.baseUrl}/`,
|
|
208
229
|
);
|
|
209
230
|
for (const [key, value] of Object.entries(request.query ?? {})) {
|
|
210
|
-
if (
|
|
231
|
+
if (Array.isArray(value))
|
|
232
|
+
for (const item of value) url.searchParams.append(key + "[]", item);
|
|
233
|
+
else if (value !== undefined) url.searchParams.set(key, String(value));
|
|
211
234
|
}
|
|
212
235
|
return url.toString();
|
|
213
236
|
}
|
|
@@ -215,14 +238,24 @@ export class HttpTransport {
|
|
|
215
238
|
#headers(request: TransportRequest): Headers {
|
|
216
239
|
const headers = createHeaders(this.#config.headers);
|
|
217
240
|
headers.set("accept", "application/json");
|
|
218
|
-
headers.set("x-api-key", this.#config.apiKey);
|
|
219
241
|
headers.set("x-nirmos-sdk-version", SDK_VERSION);
|
|
220
|
-
if (request.body !== undefined) {
|
|
242
|
+
if (request.body !== undefined && !(request.body instanceof FormData)) {
|
|
221
243
|
headers.set("content-type", "application/json");
|
|
222
244
|
}
|
|
223
245
|
createHeaders(request.options?.headers).forEach((value, key) => {
|
|
224
|
-
if (
|
|
246
|
+
if (!["x-api-key", "authorization"].includes(key.toLowerCase()))
|
|
247
|
+
headers.set(key, value);
|
|
225
248
|
});
|
|
249
|
+
if (this.#config.apiKey) headers.set("x-api-key", this.#config.apiKey);
|
|
250
|
+
if (this.#config.accessToken)
|
|
251
|
+
headers.set("authorization", `Bearer ${this.#config.accessToken}`);
|
|
252
|
+
if (
|
|
253
|
+
this.#config.runtime &&
|
|
254
|
+
!["GET", "HEAD", "OPTIONS"].includes(request.method)
|
|
255
|
+
) {
|
|
256
|
+
headers.set("x-request-timestamp", String(Date.now()));
|
|
257
|
+
headers.set("x-request-nonce", globalThis.crypto.randomUUID());
|
|
258
|
+
}
|
|
226
259
|
if (request.options?.idempotencyKey) {
|
|
227
260
|
headers.set("idempotency-key", request.options.idempotencyKey);
|
|
228
261
|
}
|
|
@@ -261,7 +294,10 @@ function createApiError(response: Response, payload: unknown): APIError {
|
|
|
261
294
|
retryAfterMs,
|
|
262
295
|
details: error.details,
|
|
263
296
|
metadata,
|
|
264
|
-
requestId:
|
|
297
|
+
requestId:
|
|
298
|
+
readString(error, "requestId") ??
|
|
299
|
+
readString(root, "requestId") ??
|
|
300
|
+
metadata.requestId,
|
|
265
301
|
traceId: metadata.traceId,
|
|
266
302
|
headers: response.headers,
|
|
267
303
|
};
|
package/src/gateway/types.ts
CHANGED
|
@@ -167,7 +167,9 @@ export interface EmbeddingCreateParams {
|
|
|
167
167
|
user?: string;
|
|
168
168
|
/** Optional provider override. Omit to use the model's configured default provider. */
|
|
169
169
|
provider?: string;
|
|
170
|
+
/** @deprecated Embeddings never fall back to another vector space. Requests with this option are rejected. */
|
|
170
171
|
fallbackModels?: readonly string[];
|
|
172
|
+
/** @deprecated Embeddings require direct model selection. */
|
|
171
173
|
routingStrategy?: RoutingStrategy;
|
|
172
174
|
}
|
|
173
175
|
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
export { Nirmos
|
|
2
|
-
export type {
|
|
1
|
+
export { Nirmos } from "./client.js";
|
|
2
|
+
export type {
|
|
3
|
+
NirmosOptions,
|
|
4
|
+
NirmosAuth,
|
|
5
|
+
EndpointExecution,
|
|
6
|
+
KnowledgeMatch,
|
|
7
|
+
KnowledgeSearchRequest,
|
|
8
|
+
KnowledgeSearchResponse,
|
|
9
|
+
KnowledgeSearchMode,
|
|
10
|
+
KnowledgeSearchStatus,
|
|
11
|
+
PromptTestRequest,
|
|
12
|
+
PromptTestResponse,
|
|
13
|
+
} from "./client.js";
|
|
3
14
|
|
|
4
15
|
export {
|
|
5
16
|
APIError,
|
|
@@ -81,3 +92,61 @@ export type {
|
|
|
81
92
|
RenderedPrompt,
|
|
82
93
|
TextPromptContent,
|
|
83
94
|
} from "./prompts/types.js";
|
|
95
|
+
|
|
96
|
+
export type { Requests, Queries, Responses } from "./management/contracts.js";
|
|
97
|
+
export type * from "./management/execution-types.js";
|
|
98
|
+
|
|
99
|
+
export type {
|
|
100
|
+
MemoryPage,
|
|
101
|
+
MemorySpace,
|
|
102
|
+
MemoryPolicy,
|
|
103
|
+
MemoryItem,
|
|
104
|
+
MemoryEvidence,
|
|
105
|
+
MemoryRelation,
|
|
106
|
+
MemoryEmbedding,
|
|
107
|
+
MemoryItemEntity,
|
|
108
|
+
MemoryEntity,
|
|
109
|
+
MemoryProfile,
|
|
110
|
+
MemoryRun,
|
|
111
|
+
MemorySpaceCreate,
|
|
112
|
+
MemorySpaceUpdate,
|
|
113
|
+
MemoryPolicyCreate,
|
|
114
|
+
MemoryPolicyUpdate,
|
|
115
|
+
MemoryItemUpdate,
|
|
116
|
+
MemorySpaceFilters,
|
|
117
|
+
MemoryPolicyFilters,
|
|
118
|
+
MemoryItemFilters,
|
|
119
|
+
MemoryRunFilters,
|
|
120
|
+
MemoryType,
|
|
121
|
+
MemoryStatus,
|
|
122
|
+
MemoryLayer,
|
|
123
|
+
MemorySourceType,
|
|
124
|
+
MemoryMessage,
|
|
125
|
+
MemoryEvent,
|
|
126
|
+
MemoryIngestRequest,
|
|
127
|
+
MemorySearchFilters,
|
|
128
|
+
MemorySearchRequest,
|
|
129
|
+
MemoryContextRequest,
|
|
130
|
+
MemoryResult,
|
|
131
|
+
MemorySearchResponse,
|
|
132
|
+
MemoryContextResponse,
|
|
133
|
+
MemoryIndexingResult,
|
|
134
|
+
MemoryIngestResponse,
|
|
135
|
+
MemoryManualRequest,
|
|
136
|
+
MemoryIndexingConfig,
|
|
137
|
+
MemoryReindexRequest,
|
|
138
|
+
MemoryGenerateRequest,
|
|
139
|
+
MemoryProfileGenerateResponse,
|
|
140
|
+
MemoryObservationGenerateResponse,
|
|
141
|
+
} from "./memory/types.js";
|
|
142
|
+
|
|
143
|
+
export { managementManifest } from "./management/manifest.js";
|
|
144
|
+
|
|
145
|
+
export {
|
|
146
|
+
extractPromptVariableNames,
|
|
147
|
+
interpolatePromptVariables,
|
|
148
|
+
promptVariableValue,
|
|
149
|
+
validatePromptTemplate,
|
|
150
|
+
validatePromptVariableValues,
|
|
151
|
+
validatePromptSettings,
|
|
152
|
+
} from "./prompts/variables.js";
|