@w6w/sdk 0.9.15 → 0.9.23
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 +21 -16
- package/dist/mod.d.ts +12 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +7 -1
- package/dist/mod.js.map +1 -1
- package/dist/src/agents.d.ts +33 -0
- package/dist/src/agents.d.ts.map +1 -0
- package/dist/src/agents.js +73 -0
- package/dist/src/agents.js.map +1 -0
- package/dist/src/assets.d.ts +56 -0
- package/dist/src/assets.d.ts.map +1 -0
- package/dist/src/assets.js +143 -0
- package/dist/src/assets.js.map +1 -0
- package/dist/src/client.d.ts +24 -3
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +32 -3
- package/dist/src/client.js.map +1 -1
- package/dist/src/config.d.ts +14 -8
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +15 -9
- package/dist/src/config.js.map +1 -1
- package/dist/src/connections.d.ts +8 -3
- package/dist/src/connections.d.ts.map +1 -1
- package/dist/src/connections.js +6 -2
- package/dist/src/connections.js.map +1 -1
- package/dist/src/console/apps.d.ts +13 -0
- package/dist/src/console/apps.d.ts.map +1 -1
- package/dist/src/console/apps.js +3 -0
- package/dist/src/console/apps.js.map +1 -1
- package/dist/src/console/connections.d.ts +71 -11
- package/dist/src/console/connections.d.ts.map +1 -1
- package/dist/src/console/connections.js +27 -6
- package/dist/src/console/connections.js.map +1 -1
- package/dist/src/console/credentials.d.ts +183 -0
- package/dist/src/console/credentials.d.ts.map +1 -0
- package/dist/src/console/credentials.js +186 -0
- package/dist/src/console/credentials.js.map +1 -0
- package/dist/src/console/mod.d.ts +17 -2
- package/dist/src/console/mod.d.ts.map +1 -1
- package/dist/src/console/mod.js +15 -0
- package/dist/src/console/mod.js.map +1 -1
- package/dist/src/console/models.d.ts +208 -0
- package/dist/src/console/models.d.ts.map +1 -0
- package/dist/src/console/models.js +186 -0
- package/dist/src/console/models.js.map +1 -0
- package/dist/src/console/storage.d.ts +221 -0
- package/dist/src/console/storage.d.ts.map +1 -0
- package/dist/src/console/storage.js +198 -0
- package/dist/src/console/storage.js.map +1 -0
- package/dist/src/console/tokens.d.ts +53 -3
- package/dist/src/console/tokens.d.ts.map +1 -1
- package/dist/src/console/tokens.js +35 -4
- package/dist/src/console/tokens.js.map +1 -1
- package/dist/src/console/vault.d.ts +2 -2
- package/dist/src/console/vault.d.ts.map +1 -1
- package/dist/src/console/vault.js +1 -1
- package/dist/src/context.d.ts +68 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +195 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/errors.d.ts +2 -2
- package/dist/src/errors.js +2 -2
- package/dist/src/http.d.ts +19 -1
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +21 -3
- package/dist/src/http.js.map +1 -1
- package/dist/src/models.d.ts +141 -0
- package/dist/src/models.d.ts.map +1 -0
- package/dist/src/models.js +128 -0
- package/dist/src/models.js.map +1 -0
- package/dist/src/server/mod.d.ts +11 -10
- package/dist/src/server/mod.d.ts.map +1 -1
- package/dist/src/server/mod.js +11 -9
- package/dist/src/server/mod.js.map +1 -1
- package/dist/src/skills.d.ts +29 -0
- package/dist/src/skills.d.ts.map +1 -0
- package/dist/src/skills.js +55 -0
- package/dist/src/skills.js.map +1 -0
- package/dist/src/types.d.ts +415 -8
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/vars.d.ts +2 -2
- package/dist/src/vars.d.ts.map +1 -1
- package/dist/src/vars.js +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflows.d.ts +6 -6
- package/dist/src/workflows.d.ts.map +1 -1
- package/dist/src/workflows.js +7 -5
- package/dist/src/workflows.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* `docs/implementation.md` §3, and raised by exactly the three failure modes
|
|
9
9
|
* in `src/http.ts`.
|
|
10
10
|
* - {@linkcode ConfigError} — the client was never in a position to make a
|
|
11
|
-
* request:
|
|
11
|
+
* request: an explicitly blank base URL, or no token. No HTTP exchange happened, so an
|
|
12
12
|
* `ApiError`'s `status` and `code` would have to be invented; `status: 0` in
|
|
13
13
|
* particular is already spoken for by `network_error`, and conflating "your
|
|
14
14
|
* server is unreachable" with "you have not configured a server" is exactly
|
|
@@ -65,7 +65,7 @@ export declare class ApiError extends Error {
|
|
|
65
65
|
/**
|
|
66
66
|
* The client is not configured well enough to make a request.
|
|
67
67
|
*
|
|
68
|
-
* Raised at construction when
|
|
68
|
+
* Raised at construction when an explicit base URL is blank or malformed, and on the first request
|
|
69
69
|
* when there is no token — a client with no token can still be *built*, so a
|
|
70
70
|
* CLI's `--help` and `--version` work offline (`docs/implementation.md` §2).
|
|
71
71
|
*
|
package/dist/src/errors.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* `docs/implementation.md` §3, and raised by exactly the three failure modes
|
|
9
9
|
* in `src/http.ts`.
|
|
10
10
|
* - {@linkcode ConfigError} — the client was never in a position to make a
|
|
11
|
-
* request:
|
|
11
|
+
* request: an explicitly blank base URL, or no token. No HTTP exchange happened, so an
|
|
12
12
|
* `ApiError`'s `status` and `code` would have to be invented; `status: 0` in
|
|
13
13
|
* particular is already spoken for by `network_error`, and conflating "your
|
|
14
14
|
* server is unreachable" with "you have not configured a server" is exactly
|
|
@@ -71,7 +71,7 @@ export class ApiError extends Error {
|
|
|
71
71
|
/**
|
|
72
72
|
* The client is not configured well enough to make a request.
|
|
73
73
|
*
|
|
74
|
-
* Raised at construction when
|
|
74
|
+
* Raised at construction when an explicit base URL is blank or malformed, and on the first request
|
|
75
75
|
* when there is no token — a client with no token can still be *built*, so a
|
|
76
76
|
* CLI's `--help` and `--version` work offline (`docs/implementation.md` §2).
|
|
77
77
|
*
|
package/dist/src/http.d.ts
CHANGED
|
@@ -54,8 +54,21 @@ export interface RequestOptions {
|
|
|
54
54
|
path: string;
|
|
55
55
|
/** Query parameters, if any. */
|
|
56
56
|
query?: QueryParams;
|
|
57
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Request body; omit it for a bodiless request. A `Uint8Array` is **bytes
|
|
59
|
+
* mode**: sent untouched with `content-type: application/octet-stream` — no
|
|
60
|
+
* JSON encoding, quoting or base64 (an `endpoints.json` operation declaring
|
|
61
|
+
* `bodyEncoding: "octet-stream"`). Anything else is serialised as JSON.
|
|
62
|
+
*/
|
|
58
63
|
body?: unknown;
|
|
64
|
+
/**
|
|
65
|
+
* How to read a **successful** response. `"bytes"` returns the body as a
|
|
66
|
+
* `Uint8Array`, read once via `arrayBuffer()` and never decoded or
|
|
67
|
+
* JSON-parsed (an operation declaring `responseEncoding: "octet-stream"`).
|
|
68
|
+
* Omitted, the body is parsed as JSON as always. A non-2xx response is the
|
|
69
|
+
* JSON error envelope in **both** modes and raises exactly as before.
|
|
70
|
+
*/
|
|
71
|
+
responseType?: "json" | "bytes";
|
|
59
72
|
/**
|
|
60
73
|
* Extra headers to send with this request. Precedence, low to high: the
|
|
61
74
|
* client's own `headers` default < this option < the bearer
|
|
@@ -197,6 +210,11 @@ export declare function buildUrl(config: ResolvedConfig, options: RequestOptions
|
|
|
197
210
|
* check is false by construction. `config.onUnauthorized` is invoked with
|
|
198
211
|
* whichever `401`/`unauthorized` error turns out to be terminal.
|
|
199
212
|
*
|
|
213
|
+
* **Byte mode** (contract `0.11.0`): a `Uint8Array` `options.body` and/or
|
|
214
|
+
* `options.responseType: "bytes"` swap only the success-path encoding — see
|
|
215
|
+
* {@linkcode RequestOptions.body} and {@linkcode RequestOptions.responseType}.
|
|
216
|
+
* The three failure modes and the 401 recovery above apply unchanged.
|
|
217
|
+
*
|
|
200
218
|
* @param config - Resolved configuration (base URL and credential).
|
|
201
219
|
* @param fetchImpl - The transport to use; injected, never read from a module global.
|
|
202
220
|
* @param options - The request.
|
package/dist/src/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAgB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAGhF;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEhF,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAgB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAGhF;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEhF,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAM/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAOhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA0I1B"}
|
package/dist/src/http.js
CHANGED
|
@@ -120,6 +120,11 @@ export function buildUrl(config, options) {
|
|
|
120
120
|
* check is false by construction. `config.onUnauthorized` is invoked with
|
|
121
121
|
* whichever `401`/`unauthorized` error turns out to be terminal.
|
|
122
122
|
*
|
|
123
|
+
* **Byte mode** (contract `0.11.0`): a `Uint8Array` `options.body` and/or
|
|
124
|
+
* `options.responseType: "bytes"` swap only the success-path encoding — see
|
|
125
|
+
* {@linkcode RequestOptions.body} and {@linkcode RequestOptions.responseType}.
|
|
126
|
+
* The three failure modes and the 401 recovery above apply unchanged.
|
|
127
|
+
*
|
|
123
128
|
* @param config - Resolved configuration (base URL and credential).
|
|
124
129
|
* @param fetchImpl - The transport to use; injected, never read from a module global.
|
|
125
130
|
* @param options - The request.
|
|
@@ -146,14 +151,20 @@ export async function request(config, fetchImpl, options) {
|
|
|
146
151
|
headers.set("authorization", `Bearer ${await requireToken(config)}`);
|
|
147
152
|
}
|
|
148
153
|
const hasBody = options.body !== undefined;
|
|
149
|
-
|
|
150
|
-
|
|
154
|
+
const bytesBody = options.body instanceof Uint8Array;
|
|
155
|
+
if (hasBody) {
|
|
156
|
+
headers.set("content-type", bytesBody ? "application/octet-stream" : "application/json");
|
|
157
|
+
}
|
|
151
158
|
let res;
|
|
152
159
|
try {
|
|
153
160
|
res = await fetchImpl(url, {
|
|
154
161
|
method: options.method,
|
|
155
162
|
headers,
|
|
156
|
-
body: hasBody
|
|
163
|
+
body: !hasBody
|
|
164
|
+
? undefined
|
|
165
|
+
: bytesBody
|
|
166
|
+
? options.body
|
|
167
|
+
: JSON.stringify(options.body),
|
|
157
168
|
signal: options.signal,
|
|
158
169
|
});
|
|
159
170
|
}
|
|
@@ -173,6 +184,13 @@ export async function request(config, fetchImpl, options) {
|
|
|
173
184
|
throw new ApiError(0, "network_error", `Could not reach the w6w server (${options.method} ${url}). ` +
|
|
174
185
|
`It may be down or unreachable. (${err instanceof Error ? err.message : String(err)})`);
|
|
175
186
|
}
|
|
187
|
+
// Bytes mode, success path only: the payload is the body. Read it once as raw
|
|
188
|
+
// bytes — never through `text()` (which would replace invalid UTF-8) or
|
|
189
|
+
// `json()`. A non-2xx falls through to the text/envelope handling below, so
|
|
190
|
+
// the typed error is identical in both modes.
|
|
191
|
+
if (res.ok && options.responseType === "bytes") {
|
|
192
|
+
return { status: res.status, body: new Uint8Array(await res.arrayBuffer()) };
|
|
193
|
+
}
|
|
176
194
|
// Read the body exactly once, as text, then parse it guardedly — a response
|
|
177
195
|
// body is a single-use stream, and `res.json()` on an HTML error page throws
|
|
178
196
|
// an opaque SyntaxError that loses the page.
|
package/dist/src/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAkB,YAAY,EAAuB,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `client.models.*`, `client.modelRoutes.*` and `client.modelUsage.*` — the model
|
|
3
|
+
* registry: the catalog, named routes, and the completion gateway.
|
|
4
|
+
*
|
|
5
|
+
* Six operations, one HTTP call each (`endpoints.json`). The rest of the model surface (catalog edits, rates,
|
|
6
|
+
* budgets, route writes) lives in the unstable `client.console.models` group.
|
|
7
|
+
*
|
|
8
|
+
* **`modelRoutes.complete` returns the flat gateway envelope as-is** —
|
|
9
|
+
* `invocationId`, `status` and `key` included — and never unwraps it to
|
|
10
|
+
* `output` (DC-5/G-W4). Routes and usage are project-scoped: `?project=` is
|
|
11
|
+
* resolved per call, then from the client default.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import type { ResolvedConfig } from "./config.ts";
|
|
16
|
+
import { type CallOptions, type HttpResponse, type RequestOptions } from "./http.ts";
|
|
17
|
+
/** The slice of `W6WClient` these namespaces need. */
|
|
18
|
+
export interface ModelsHost {
|
|
19
|
+
/** The resolved configuration; only `project` is read. */
|
|
20
|
+
readonly config: ResolvedConfig;
|
|
21
|
+
/** Perform one request. */
|
|
22
|
+
request<T>(options: RequestOptions): Promise<HttpResponse<T>>;
|
|
23
|
+
}
|
|
24
|
+
/** The wire dialect a completion is spoken in. */
|
|
25
|
+
export type ModelDialect = "bridge" | "openai" | "anthropic" | "ollama";
|
|
26
|
+
/** How much of the gateway response a completion returns. */
|
|
27
|
+
export type ModelResponseMode = "both" | "output" | "raw";
|
|
28
|
+
/** One catalog entry. Fields beyond `id` are server-defined and may grow. */
|
|
29
|
+
export interface Model {
|
|
30
|
+
id: string;
|
|
31
|
+
provider?: string;
|
|
32
|
+
status?: string;
|
|
33
|
+
[field: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** One named model route. */
|
|
36
|
+
export interface ModelRoute {
|
|
37
|
+
name: string;
|
|
38
|
+
[field: string]: unknown;
|
|
39
|
+
}
|
|
40
|
+
/** A keyset-paged catalog page. */
|
|
41
|
+
export interface ModelPage {
|
|
42
|
+
models: Model[];
|
|
43
|
+
nextCursor: string | null;
|
|
44
|
+
}
|
|
45
|
+
/** Where a `usageSummary`'s counts came from. */
|
|
46
|
+
export type ModelUsageSource = "reported" | "partial" | "estimated" | "unknown" | "legacy";
|
|
47
|
+
/** Provider-neutral token counts; each is `null` when the provider did not report it. */
|
|
48
|
+
export interface ModelUsageSummary {
|
|
49
|
+
inclusiveInputTokens: number | null;
|
|
50
|
+
freshInputTokens: number | null;
|
|
51
|
+
cacheReadTokens: number | null;
|
|
52
|
+
cacheWriteTokens: number | null;
|
|
53
|
+
outputTokens: number | null;
|
|
54
|
+
reasoningTokens: number | null;
|
|
55
|
+
totalTokens: number | null;
|
|
56
|
+
source: ModelUsageSource;
|
|
57
|
+
}
|
|
58
|
+
/** The flat completion envelope, returned without unwrapping. */
|
|
59
|
+
export interface ModelCompletion {
|
|
60
|
+
invocationId: string;
|
|
61
|
+
status: string;
|
|
62
|
+
contractVersion?: 1;
|
|
63
|
+
/** The requested route name; `null` on the direct-model path. */
|
|
64
|
+
route?: string | null;
|
|
65
|
+
key?: string;
|
|
66
|
+
usageSummary?: ModelUsageSummary;
|
|
67
|
+
meta?: {
|
|
68
|
+
usageRecorded?: boolean;
|
|
69
|
+
[field: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
output?: unknown;
|
|
72
|
+
raw?: unknown;
|
|
73
|
+
[field: string]: unknown;
|
|
74
|
+
}
|
|
75
|
+
/** The result of `modelUsage.query`. */
|
|
76
|
+
export interface ModelUsageReport {
|
|
77
|
+
totals: Record<string, unknown>;
|
|
78
|
+
/**
|
|
79
|
+
* `true` when the server stopped folding the ledger at its aggregate row cap,
|
|
80
|
+
* so `totals` and `groups` cover only part of the filtered window.
|
|
81
|
+
*/
|
|
82
|
+
totalsTruncated: boolean;
|
|
83
|
+
groups?: Record<string, unknown>[];
|
|
84
|
+
items: Record<string, unknown>[];
|
|
85
|
+
nextCursor: string | null;
|
|
86
|
+
}
|
|
87
|
+
/** `models.list` options. */
|
|
88
|
+
export interface ModelListOptions extends CallOptions {
|
|
89
|
+
provider?: string;
|
|
90
|
+
status?: string;
|
|
91
|
+
limit?: number;
|
|
92
|
+
cursor?: string;
|
|
93
|
+
}
|
|
94
|
+
/** Project-scoped call options. */
|
|
95
|
+
export interface ModelRouteOptions extends CallOptions {
|
|
96
|
+
/** Project id to scope this call to. */
|
|
97
|
+
project?: string;
|
|
98
|
+
}
|
|
99
|
+
/** `modelRoutes.complete` options. */
|
|
100
|
+
export interface ModelCompleteOptions extends ModelRouteOptions {
|
|
101
|
+
dialect?: ModelDialect;
|
|
102
|
+
response?: ModelResponseMode;
|
|
103
|
+
}
|
|
104
|
+
/** `modelUsage.query` options. */
|
|
105
|
+
export interface ModelUsageOptions extends ModelRouteOptions {
|
|
106
|
+
groupBy?: "route" | "model" | "day";
|
|
107
|
+
from?: string;
|
|
108
|
+
to?: string;
|
|
109
|
+
route?: string;
|
|
110
|
+
model?: string;
|
|
111
|
+
limit?: number;
|
|
112
|
+
cursor?: string;
|
|
113
|
+
}
|
|
114
|
+
/** `client.models` — the catalog. */
|
|
115
|
+
export declare class ModelsApi {
|
|
116
|
+
#private;
|
|
117
|
+
constructor(host: ModelsHost);
|
|
118
|
+
/** List the catalog; returns the whole page `{models, nextCursor}`. */
|
|
119
|
+
list(options?: ModelListOptions): Promise<ModelPage>;
|
|
120
|
+
/** Read one catalog entry by its catalog id (`mdl_…`), not a provider-native model id. */
|
|
121
|
+
get(id: string, options?: CallOptions): Promise<Model>;
|
|
122
|
+
}
|
|
123
|
+
/** `client.modelRoutes` — named routes and the completion gateway. */
|
|
124
|
+
export declare class ModelRoutesApi {
|
|
125
|
+
#private;
|
|
126
|
+
constructor(host: ModelsHost);
|
|
127
|
+
/** List the project's routes. */
|
|
128
|
+
list(options?: ModelRouteOptions): Promise<ModelRoute[]>;
|
|
129
|
+
/** Read one route by name. */
|
|
130
|
+
get(name: string, options?: ModelRouteOptions): Promise<ModelRoute>;
|
|
131
|
+
/** POST `input` to `/model-routes/{name}/complete`; the flat envelope, not unwrapped. */
|
|
132
|
+
complete(name: string, input: Record<string, unknown>, options?: ModelCompleteOptions): Promise<ModelCompletion>;
|
|
133
|
+
}
|
|
134
|
+
/** `client.modelUsage` — recorded usage. */
|
|
135
|
+
export declare class ModelUsageApi {
|
|
136
|
+
#private;
|
|
137
|
+
constructor(host: ModelsHost);
|
|
138
|
+
/** Query usage; returns `{totals, groups?, items, nextCursor}` as sent. */
|
|
139
|
+
query(options?: ModelUsageOptions): Promise<ModelUsageReport>;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `client.models.*`, `client.modelRoutes.*` and `client.modelUsage.*` — the model
|
|
3
|
+
* registry: the catalog, named routes, and the completion gateway.
|
|
4
|
+
*
|
|
5
|
+
* Six operations, one HTTP call each (`endpoints.json`). The rest of the model surface (catalog edits, rates,
|
|
6
|
+
* budgets, route writes) lives in the unstable `client.console.models` group.
|
|
7
|
+
*
|
|
8
|
+
* **`modelRoutes.complete` returns the flat gateway envelope as-is** —
|
|
9
|
+
* `invocationId`, `status` and `key` included — and never unwraps it to
|
|
10
|
+
* `output` (DC-5/G-W4). Routes and usage are project-scoped: `?project=` is
|
|
11
|
+
* resolved per call, then from the client default.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import { path } from "./http.js";
|
|
16
|
+
/** Strip a single-key envelope if present, else take the body as sent. */
|
|
17
|
+
function pick(res, key) {
|
|
18
|
+
const b = res.body;
|
|
19
|
+
if (typeof b === "object" && b !== null && !Array.isArray(b)) {
|
|
20
|
+
const v = b[key];
|
|
21
|
+
if (v !== undefined && v !== null)
|
|
22
|
+
return v;
|
|
23
|
+
}
|
|
24
|
+
return b;
|
|
25
|
+
}
|
|
26
|
+
/** `client.models` — the catalog. */
|
|
27
|
+
export class ModelsApi {
|
|
28
|
+
#host;
|
|
29
|
+
constructor(host) {
|
|
30
|
+
this.#host = host;
|
|
31
|
+
}
|
|
32
|
+
/** List the catalog; returns the whole page `{models, nextCursor}`. */
|
|
33
|
+
async list(options) {
|
|
34
|
+
const res = await this.#host.request({
|
|
35
|
+
method: "GET",
|
|
36
|
+
path: "/models",
|
|
37
|
+
query: {
|
|
38
|
+
provider: options?.provider,
|
|
39
|
+
status: options?.status,
|
|
40
|
+
limit: options?.limit,
|
|
41
|
+
cursor: options?.cursor,
|
|
42
|
+
},
|
|
43
|
+
signal: options?.signal,
|
|
44
|
+
});
|
|
45
|
+
return res.body;
|
|
46
|
+
}
|
|
47
|
+
/** Read one catalog entry by its catalog id (`mdl_…`), not a provider-native model id. */
|
|
48
|
+
async get(id, options) {
|
|
49
|
+
const res = await this.#host.request({
|
|
50
|
+
method: "GET",
|
|
51
|
+
path: path `/models/${id}`,
|
|
52
|
+
signal: options?.signal,
|
|
53
|
+
});
|
|
54
|
+
return pick(res, "model");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** `client.modelRoutes` — named routes and the completion gateway. */
|
|
58
|
+
export class ModelRoutesApi {
|
|
59
|
+
#host;
|
|
60
|
+
constructor(host) {
|
|
61
|
+
this.#host = host;
|
|
62
|
+
}
|
|
63
|
+
#project(options) {
|
|
64
|
+
return options?.project ?? this.#host.config.project ?? undefined;
|
|
65
|
+
}
|
|
66
|
+
/** List the project's routes. */
|
|
67
|
+
async list(options) {
|
|
68
|
+
const res = await this.#host.request({
|
|
69
|
+
method: "GET",
|
|
70
|
+
path: "/model-routes",
|
|
71
|
+
query: { project: this.#project(options) },
|
|
72
|
+
signal: options?.signal,
|
|
73
|
+
});
|
|
74
|
+
return pick(res, "routes");
|
|
75
|
+
}
|
|
76
|
+
/** Read one route by name. */
|
|
77
|
+
async get(name, options) {
|
|
78
|
+
const res = await this.#host.request({
|
|
79
|
+
method: "GET",
|
|
80
|
+
path: path `/model-routes/${name}`,
|
|
81
|
+
query: { project: this.#project(options) },
|
|
82
|
+
signal: options?.signal,
|
|
83
|
+
});
|
|
84
|
+
return pick(res, "route");
|
|
85
|
+
}
|
|
86
|
+
/** POST `input` to `/model-routes/{name}/complete`; the flat envelope, not unwrapped. */
|
|
87
|
+
async complete(name, input, options) {
|
|
88
|
+
const res = await this.#host.request({
|
|
89
|
+
method: "POST",
|
|
90
|
+
path: path `/model-routes/${name}/complete`,
|
|
91
|
+
query: {
|
|
92
|
+
project: this.#project(options),
|
|
93
|
+
dialect: options?.dialect,
|
|
94
|
+
response: options?.response,
|
|
95
|
+
},
|
|
96
|
+
body: input,
|
|
97
|
+
signal: options?.signal,
|
|
98
|
+
});
|
|
99
|
+
return res.body;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** `client.modelUsage` — recorded usage. */
|
|
103
|
+
export class ModelUsageApi {
|
|
104
|
+
#host;
|
|
105
|
+
constructor(host) {
|
|
106
|
+
this.#host = host;
|
|
107
|
+
}
|
|
108
|
+
/** Query usage; returns `{totals, groups?, items, nextCursor}` as sent. */
|
|
109
|
+
async query(options) {
|
|
110
|
+
const res = await this.#host.request({
|
|
111
|
+
method: "GET",
|
|
112
|
+
path: "/model-usage",
|
|
113
|
+
query: {
|
|
114
|
+
project: options?.project ?? this.#host.config.project ?? undefined,
|
|
115
|
+
groupBy: options?.groupBy,
|
|
116
|
+
from: options?.from,
|
|
117
|
+
to: options?.to,
|
|
118
|
+
route: options?.route,
|
|
119
|
+
model: options?.model,
|
|
120
|
+
limit: options?.limit,
|
|
121
|
+
cursor: options?.cursor,
|
|
122
|
+
},
|
|
123
|
+
signal: options?.signal,
|
|
124
|
+
});
|
|
125
|
+
return res.body;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/src/server/mod.d.ts
CHANGED
|
@@ -31,9 +31,10 @@ export interface ExchangeTokenOptions {
|
|
|
31
31
|
/**
|
|
32
32
|
* The w6w server's origin, e.g. `https://api.example.com`. Same rules as
|
|
33
33
|
* {@linkcode W6WClientOptions.baseUrl} — an absolute `http(s)` URL with a
|
|
34
|
-
* host.
|
|
34
|
+
* host. Defaults to {@linkcode DEFAULT_BASE_URL} when omitted; this helper
|
|
35
|
+
* never reads `W6W_BASE_URL`. A blank value is a {@linkcode ConfigError}.
|
|
35
36
|
*/
|
|
36
|
-
baseUrl
|
|
37
|
+
baseUrl?: string;
|
|
37
38
|
/** The tenant's client id. Must not contain `:` or a non-latin-1 character. */
|
|
38
39
|
clientId: string;
|
|
39
40
|
/** The tenant's client secret. Must be latin-1 encodable. */
|
|
@@ -88,8 +89,8 @@ export interface ExchangeTokenResult {
|
|
|
88
89
|
* @param options - See {@linkcode ExchangeTokenOptions}.
|
|
89
90
|
* @returns The minted token and the identity it carries.
|
|
90
91
|
* @throws {ConfigError} Blank `clientId`/`clientSecret`/`subject`; a `clientId`
|
|
91
|
-
* containing `:`; a `clientId`/`clientSecret` outside latin-1;
|
|
92
|
-
* no runtime `fetch`.
|
|
92
|
+
* containing `:`; a `clientId`/`clientSecret` outside latin-1; a blank or
|
|
93
|
+
* malformed `baseUrl`; no runtime `fetch`.
|
|
93
94
|
* @throws {ApiError} `invalid_client` (401, unknown/disabled credentials),
|
|
94
95
|
* `invalid_body` / `invalid_subject` / `invalid_account` (400), or any of
|
|
95
96
|
* the transport's own failure modes (`../http.ts`). Never retried: this
|
|
@@ -100,10 +101,11 @@ export declare function exchangeToken(options: ExchangeTokenOptions): Promise<Ex
|
|
|
100
101
|
/** Options for {@linkcode createEmbedSessionClient}. */
|
|
101
102
|
export interface EmbedSessionClientOptions {
|
|
102
103
|
/**
|
|
103
|
-
* The w6w server's origin.
|
|
104
|
-
* this factory never
|
|
104
|
+
* The w6w server's origin. Defaults to {@linkcode DEFAULT_BASE_URL}; like
|
|
105
|
+
* {@linkcode exchangeToken} this factory never reads `W6W_BASE_URL`. A blank
|
|
106
|
+
* value is a {@linkcode ConfigError}.
|
|
105
107
|
*/
|
|
106
|
-
baseUrl
|
|
108
|
+
baseUrl?: string;
|
|
107
109
|
/** The tenant's client id. Must not contain `:` or a non-latin-1 character. */
|
|
108
110
|
clientId: string;
|
|
109
111
|
/** The tenant's client secret. Held by this instance only; never returned. */
|
|
@@ -161,9 +163,8 @@ export interface EmbedSessionClient {
|
|
|
161
163
|
* and `document` exist (a browser-like global). This is a runtime check by
|
|
162
164
|
* design; a bundler may or may not remove it.
|
|
163
165
|
*
|
|
164
|
-
* @throws {ConfigError} A
|
|
165
|
-
*
|
|
166
|
-
* `:`, non-latin-1 credentials, or a browser-like runtime. No message echoes
|
|
166
|
+
* @throws {ConfigError} A blank/malformed `baseUrl`, blank/non-string `clientId` or
|
|
167
|
+
* `clientSecret`, a `clientId` containing `:`, non-latin-1 credentials, or a browser-like runtime. No message echoes
|
|
167
168
|
* `clientSecret`.
|
|
168
169
|
*/
|
|
169
170
|
export declare function createEmbedSessionClient(options: EmbedSessionClientOptions): EmbedSessionClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/server/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/server/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAoB,KAAK,SAAS,EAAiB,MAAM,cAAc,CAAC;AAI/E,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,IAAI,EAAE;QACJ,mDAAmD;QACnD,OAAO,EAAE,MAAM,CAAC;QAChB,qDAAqD;QACrD,MAAM,EAAE,MAAM,CAAC;QACf,mDAAmD;QACnD,IAAI,EAAE,MAAM,CAAC;QACb,6EAA6E;QAC7E,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAkED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AAED,wDAAwD;AACxD,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/D;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CA6D/F"}
|
package/dist/src/server/mod.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
*
|
|
26
26
|
* @module
|
|
27
27
|
*/
|
|
28
|
-
import { resolveConfig } from "../config.js";
|
|
28
|
+
import { DEFAULT_BASE_URL, resolveConfig } from "../config.js";
|
|
29
29
|
import { ApiError, ConfigError } from "../errors.js";
|
|
30
30
|
import { request } from "../http.js";
|
|
31
31
|
/** Non-blank after trimming. `who` prefixes the message (the raw path keeps `exchangeToken`). */
|
|
@@ -96,8 +96,8 @@ function resolveFetch(fetchOption) {
|
|
|
96
96
|
* @param options - See {@linkcode ExchangeTokenOptions}.
|
|
97
97
|
* @returns The minted token and the identity it carries.
|
|
98
98
|
* @throws {ConfigError} Blank `clientId`/`clientSecret`/`subject`; a `clientId`
|
|
99
|
-
* containing `:`; a `clientId`/`clientSecret` outside latin-1;
|
|
100
|
-
* no runtime `fetch`.
|
|
99
|
+
* containing `:`; a `clientId`/`clientSecret` outside latin-1; a blank or
|
|
100
|
+
* malformed `baseUrl`; no runtime `fetch`.
|
|
101
101
|
* @throws {ApiError} `invalid_client` (401, unknown/disabled credentials),
|
|
102
102
|
* `invalid_body` / `invalid_subject` / `invalid_account` (400), or any of
|
|
103
103
|
* the transport's own failure modes (`../http.ts`). Never retried: this
|
|
@@ -110,7 +110,9 @@ export async function exchangeToken(options) {
|
|
|
110
110
|
required(clientSecret, "clientSecret");
|
|
111
111
|
required(subject, "subject");
|
|
112
112
|
const basic = basicAuthHeader(clientId, clientSecret);
|
|
113
|
-
|
|
113
|
+
// A defined string never reaches resolveConfig's W6W_BASE_URL fallback: the
|
|
114
|
+
// credentials below go to the explicit host or the default, never an env host.
|
|
115
|
+
const config = resolveConfig({ baseUrl: baseUrl ?? DEFAULT_BASE_URL });
|
|
114
116
|
const fetchImpl = resolveFetch(options.fetch);
|
|
115
117
|
const body = { subject };
|
|
116
118
|
if (account !== undefined) {
|
|
@@ -135,9 +137,8 @@ const SESSION = "EmbedSessionClient";
|
|
|
135
137
|
* and `document` exist (a browser-like global). This is a runtime check by
|
|
136
138
|
* design; a bundler may or may not remove it.
|
|
137
139
|
*
|
|
138
|
-
* @throws {ConfigError} A
|
|
139
|
-
*
|
|
140
|
-
* `:`, non-latin-1 credentials, or a browser-like runtime. No message echoes
|
|
140
|
+
* @throws {ConfigError} A blank/malformed `baseUrl`, blank/non-string `clientId` or
|
|
141
|
+
* `clientSecret`, a `clientId` containing `:`, non-latin-1 credentials, or a browser-like runtime. No message echoes
|
|
141
142
|
* `clientSecret`.
|
|
142
143
|
*/
|
|
143
144
|
export function createEmbedSessionClient(options) {
|
|
@@ -147,11 +148,12 @@ export function createEmbedSessionClient(options) {
|
|
|
147
148
|
"secret must stay on your backend.");
|
|
148
149
|
}
|
|
149
150
|
const { baseUrl, clientId, clientSecret } = options ?? {};
|
|
150
|
-
|
|
151
|
+
if (baseUrl !== undefined)
|
|
152
|
+
requiredText(baseUrl, "baseUrl", SESSION);
|
|
151
153
|
requiredText(clientId, "clientId", SESSION);
|
|
152
154
|
requiredText(clientSecret, "clientSecret", SESSION);
|
|
153
155
|
basicAuthHeader(clientId, clientSecret, SESSION);
|
|
154
|
-
resolveConfig({ baseUrl });
|
|
156
|
+
resolveConfig({ baseUrl: baseUrl ?? DEFAULT_BASE_URL });
|
|
155
157
|
const fetchOption = options.fetch;
|
|
156
158
|
const now = options.now ?? Date.now;
|
|
157
159
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/server/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/server/mod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `client.skills.*` — read and archive skills (contract 0.11.0).
|
|
3
|
+
*
|
|
4
|
+
* There is no `create`: a skill is uploaded with `assets.uploads` and
|
|
5
|
+
* `purpose: "skill"`.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { type CallOptions, type HttpResponse, type RequestOptions } from "./http.ts";
|
|
10
|
+
import { type ListPagedOptions, type Skill, type SkillsApi as SkillsApiShape, type SkillVersion } from "./types.ts";
|
|
11
|
+
/** The slice of `W6WClient` this namespace needs: the transport and nothing else. */
|
|
12
|
+
export interface SkillsHost {
|
|
13
|
+
/** Perform one request. */
|
|
14
|
+
request<T>(options: RequestOptions): Promise<HttpResponse<T>>;
|
|
15
|
+
}
|
|
16
|
+
/** `client.skills` — see the module doc. */
|
|
17
|
+
export declare class SkillsApi implements SkillsApiShape {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(host: SkillsHost);
|
|
20
|
+
/** List skills visible to the caller. */
|
|
21
|
+
list(opts?: ListPagedOptions): Promise<Skill[]>;
|
|
22
|
+
/** Fetch one skill. */
|
|
23
|
+
get(id: string, opts?: CallOptions): Promise<Skill>;
|
|
24
|
+
/** List a skill's immutable versions. */
|
|
25
|
+
versions(id: string, opts?: CallOptions): Promise<SkillVersion[]>;
|
|
26
|
+
/** Archive a skill; returns the archived row. */
|
|
27
|
+
archive(id: string, opts?: CallOptions): Promise<Skill>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAQ,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,KAAK,EACV,KAAK,SAAS,IAAI,cAAc,EAChC,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAEpB,qFAAqF;AACrF,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/D;AAED,4CAA4C;AAC5C,qBAAa,SAAU,YAAW,cAAc;;gBAGlC,IAAI,EAAE,UAAU;IAI5B,yCAAyC;IACnC,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAUrD,uBAAuB;IACjB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IASzD,yCAAyC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IASvE,iDAAiD;IAC3C,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;CAQ9D"}
|