@instruments/materialgraph 0.32.0 → 0.35.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/association-types.d.ts +11 -11
- package/associations-client.d.ts +7 -7
- package/associations-client.js +5 -5
- package/brand-types.d.ts +37 -41
- package/brand-types.js +3 -5
- package/brands-client.d.ts +22 -9
- package/brands-client.js +20 -6
- package/by-spec-types.d.ts +2 -3
- package/catalog-discovery-types.d.ts +3 -3
- package/catalogue-client.d.ts +2 -50
- package/catalogue-client.js +2 -10
- package/catalogue-types.d.ts +1 -1
- package/categories-client.d.ts +3 -5
- package/categories-client.js +1 -1
- package/category-types.d.ts +17 -30
- package/citation-types.d.ts +2 -2
- package/client-vocabulary.d.ts +2 -2
- package/client-vocabulary.js +4 -1
- package/client.d.ts +75 -102
- package/client.js +83 -100
- package/color-profiles-types.d.ts +70 -0
- package/colors-client.d.ts +76 -0
- package/colors-client.js +52 -0
- package/find-companions-types.d.ts +8 -8
- package/{find-variants-by-colour-types.d.ts → find-variants-by-color-types.d.ts} +70 -64
- package/find-variants-by-vector-types.d.ts +4 -1
- package/get-variant-types.d.ts +14 -2
- package/http-transport.d.ts +1 -1
- package/http-transport.js +1 -2
- package/identifiers.d.ts +2 -2
- package/identifiers.js +1 -1
- package/index.d.ts +5 -13
- package/index.js +1 -3
- package/list-variant-facets-types.d.ts +4 -4
- package/list-variants-types.d.ts +108 -19
- package/material-asset-types.d.ts +3 -3
- package/material-block-types.d.ts +9 -9
- package/material-types.d.ts +10 -8
- package/operations.d.ts +2 -2
- package/operations.js +14 -24
- package/package.json +2 -2
- package/{resolve-colour-types.d.ts → resolve-color-types.d.ts} +18 -18
- package/response-schemas.generated.d.ts +2 -2
- package/response-schemas.generated.js +40 -68
- package/response-schemas.js +1 -1
- package/samplize-catalogue-types.d.ts +4 -4
- package/samplize-colorvec.js +6 -6
- package/{corpus-scope-types.d.ts → search-catalogue-subset-types.d.ts} +3 -3
- package/search-variants-types.d.ts +91 -0
- package/types.d.ts +31 -283
- package/webmcp.generated.js +4 -9
- package/attribution-types.d.ts +0 -51
- package/attribution-types.js +0 -13
- package/by-colour-types.d.ts +0 -320
- package/colour-region-types.d.ts +0 -18
- package/colours-client.d.ts +0 -70
- package/colours-client.js +0 -38
- package/material-query-plan-types.d.ts +0 -70
- package/palette-search-types.d.ts +0 -171
- package/palette-search-types.js +0 -1
- package/query-understanding-types.d.ts +0 -254
- package/query-understanding-types.js +0 -1
- package/resolve-colour-types.js +0 -1
- package/search-card-types.d.ts +0 -86
- package/search-card-types.js +0 -1
- package/search-index-plan-types.d.ts +0 -74
- package/search-index-plan-types.js +0 -1
- package/search-refinement-types.d.ts +0 -103
- package/search-refinement-types.js +0 -2
- package/search-request-types.d.ts +0 -170
- package/search-request-types.js +0 -1
- package/search-response-receipt-types.d.ts +0 -24
- package/search-response-receipt-types.js +0 -1
- package/search-response-types.d.ts +0 -11
- package/search-response-types.js +0 -1
- package/search-result-validation.d.ts +0 -9
- package/search-result-validation.js +0 -83
- package/spec-types.d.ts +0 -109
- package/spec-types.js +0 -54
- package/specifications.d.ts +0 -34
- package/specifications.js +0 -56
- package/validation.d.ts +0 -43
- package/validation.js +0 -117
- /package/{by-colour-types.js → color-profiles-types.js} +0 -0
- /package/{colour-region-types.js → find-variants-by-color-types.js} +0 -0
- /package/{corpus-scope-types.js → resolve-color-types.js} +0 -0
- /package/{find-variants-by-colour-types.js → search-catalogue-subset-types.js} +0 -0
- /package/{material-query-plan-types.js → search-variants-types.js} +0 -0
package/client-vocabulary.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HttpTransport } from "./http-transport.js";
|
|
2
2
|
import type { ListEnumValuesOptions, ListEnumValuesResult } from "./list-enum-values-types.js";
|
|
3
|
-
import type { ListAttributesOptions, ListAttributesResult,
|
|
4
|
-
export declare const
|
|
3
|
+
import type { ListAttributesOptions, ListAttributesResult, ResolveColorOptions, ResolveColorResponse } from "./types.js";
|
|
4
|
+
export declare const resolveColor: (transport: HttpTransport, name: string, signal?: AbortSignal, options?: ResolveColorOptions) => Promise<ResolveColorResponse>;
|
|
5
5
|
export declare const listAttributes: (transport: HttpTransport, options?: ListAttributesOptions, signal?: AbortSignal) => Promise<ListAttributesResult>;
|
|
6
6
|
export declare const listEnumValues: (transport: HttpTransport, options?: ListEnumValuesOptions, signal?: AbortSignal) => Promise<ListEnumValuesResult>;
|
package/client-vocabulary.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { resolveOperation } from "./operations.js";
|
|
2
|
-
export const
|
|
2
|
+
export const resolveColor = async (transport, name, signal, options) => await transport.requestJson(resolveOperation("resolve_color_name"), {
|
|
3
|
+
query: { searchCatalogueSubset: options?.searchCatalogueSubset, name },
|
|
4
|
+
signal,
|
|
5
|
+
});
|
|
3
6
|
/**
|
|
4
7
|
* A comma list, or nothing at all for an empty one. `[].join(",")` is `""`, and
|
|
5
8
|
* an absent parameter is the one honest spelling of "no restriction".
|
package/client.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import type { ApplicabilityOptions, AssociatedOptions } from "./association-types.js";
|
|
2
2
|
import type { BrandsOptions } from "./brand-types.js";
|
|
3
|
-
import type { ByColourParams, ByColourResponse } from "./by-colour-types.js";
|
|
4
3
|
import { CatalogueClient } from "./catalogue-client.js";
|
|
5
4
|
import { CategoriesClient } from "./categories-client.js";
|
|
6
5
|
import type { ResolvedVerdictCitation } from "./citation-types.js";
|
|
7
6
|
import type { MaterialGraphClientOptions } from "./client-config.js";
|
|
8
|
-
import {
|
|
7
|
+
import { ColorsClient } from "./colors-client.js";
|
|
9
8
|
import type { RateLimit } from "./errors.js";
|
|
10
9
|
import type { FindCompanionsInput, FindCompanionsOutput } from "./find-companions-types.js";
|
|
11
|
-
import type {
|
|
10
|
+
import type { FindVariantsByColorInput, FindVariantsByColorOutput } from "./find-variants-by-color-types.js";
|
|
12
11
|
import type { FindVariantsByVectorInput, FindVariantsByVectorOutput } from "./find-variants-by-vector-types.js";
|
|
13
12
|
import type { GetVariantOptions, GetVariantOutput } from "./get-variant-types.js";
|
|
14
13
|
import type { VariantId } from "./identifiers.js";
|
|
@@ -16,11 +15,10 @@ import type { ListEnumValuesOptions, ListEnumValuesResult } from "./list-enum-va
|
|
|
16
15
|
import type { ListVariantFacetsInput, ListVariantFacetsOutput } from "./list-variant-facets-types.js";
|
|
17
16
|
import type { ListVariantsInput, ListVariantsOutput } from "./list-variants-types.js";
|
|
18
17
|
import type { ListVariantAssetsOptions, MaterialDocumentPageOptions, VariantAssetPage } from "./material-asset-types.js";
|
|
19
|
-
import type { MaterialQueryPlan } from "./material-query-plan-types.js";
|
|
20
18
|
import type { SourceMaterialBatchReceipt, UploadSourceMaterialInput } from "./run-types.js";
|
|
21
19
|
import type { SchemaResource, SchemaResourceResponse } from "./schema-resource-types.js";
|
|
22
|
-
import type {
|
|
23
|
-
import type { ExtractPaletteInput, ExtractPaletteResponse, ListAttributesOptions, ListAttributesResult, PairingsOptions, PairingsResponse,
|
|
20
|
+
import type { SearchVariantsInput, SearchVariantsOutput } from "./search-variants-types.js";
|
|
21
|
+
import type { ExtractPaletteInput, ExtractPaletteResponse, ListAttributesOptions, ListAttributesResult, PairingsOptions, PairingsResponse, ResolveColorOptions, ResolveColorResponse, WhoamiResponse } from "./types.js";
|
|
24
22
|
import { WorkflowsClient } from "./workflows-client.js";
|
|
25
23
|
export * from "./client-config.js";
|
|
26
24
|
/**
|
|
@@ -31,25 +29,27 @@ export * from "./client-config.js";
|
|
|
31
29
|
*
|
|
32
30
|
* | The question | The lens |
|
|
33
31
|
* | --- | --- |
|
|
34
|
-
* | "find me something
|
|
32
|
+
* | "find me something matching these words" | {@link MaterialGraphClient.searchVariants} |
|
|
33
|
+
* | "find me something that looks or feels like this" | {@link MaterialGraphClient.findVariantsByVector} |
|
|
35
34
|
* | "tell me about THIS variant" | {@link MaterialGraphClient.getVariant} |
|
|
36
35
|
* | "which materials, from anyone, meet this hard spec?" | {@link MaterialGraphClient.listVariants} |
|
|
37
|
-
* | "what's near
|
|
38
|
-
* | "what
|
|
39
|
-
* | "what
|
|
36
|
+
* | "what's near a color, or a palette of colors?" | {@link MaterialGraphClient.findVariantsByColor} (`mode: "palette"`) |
|
|
37
|
+
* | "what colors does this category come in?" | `colors.profiles()` |
|
|
38
|
+
* | "what goes with THIS material?" | {@link MaterialGraphClient.pairings}, {@link MaterialGraphClient.listVariants} (same product, other colorways) |
|
|
39
|
+
* | "what does the brand say is AVAILABLE on this?" | {@link MaterialGraphClient.associatedFinishes}, {@link MaterialGraphClient.associatedProducts} |
|
|
40
40
|
* | "what can I even ask for?" | {@link MaterialGraphClient.listVariantFacets}, `categories.list()` |
|
|
41
41
|
* | "what is this word called here?" | {@link MaterialGraphClient.listAttributes} |
|
|
42
42
|
* | "do the whole job for me, async" | `workflows.start()` + `mg:compose` |
|
|
43
43
|
*
|
|
44
44
|
* Three structural rules that fall out of that table:
|
|
45
|
-
* - **
|
|
46
|
-
* WORDS. A
|
|
47
|
-
* materials that look it. Route visual intent to the
|
|
45
|
+
* - **Color is a separate lens.** {@link MaterialGraphClient.searchVariants}
|
|
46
|
+
* matches WORDS. A color word in `query` finds materials whose text mentions
|
|
47
|
+
* it, not materials that look it. Route visual intent to the color lenses.
|
|
48
48
|
* - **Relationships hang off a material, not off a query.** You cannot ask "what
|
|
49
49
|
* pairs with beige oak"; you resolve a material first, then ask what pairs
|
|
50
50
|
* with THAT `variantId`.
|
|
51
51
|
* - **Declared is not inferred.** `associatedFinishes()` /
|
|
52
|
-
* `associatedProducts()` return compatibility the
|
|
52
|
+
* `associatedProducts()` return compatibility the BRAND stated;
|
|
53
53
|
* `pairings()` returns companionship the graph INFERRED. The response shapes
|
|
54
54
|
* share no field, on purpose — render them as separate sections and never
|
|
55
55
|
* concatenate them.
|
|
@@ -62,10 +62,10 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
62
62
|
/**
|
|
63
63
|
* THE QUESTION: "what kinds of thing exist, and what are their keys?"
|
|
64
64
|
* `categories.list()` pages the tree (roots, one node's children, or a
|
|
65
|
-
* name
|
|
65
|
+
* name search), and `categories.get(id)` reads one node in full:
|
|
66
66
|
* its place, the names that find it, and the canonical taxonomy concepts it
|
|
67
67
|
* relates to. The source of every category id the other lenses accept
|
|
68
|
-
* (`
|
|
68
|
+
* (`listVariants({ filters })`, `findVariantsByColor({ categoryIds })`).
|
|
69
69
|
*
|
|
70
70
|
* A category id is a TREE KEY, never a canonical `product_category` value:
|
|
71
71
|
* the two look alike and are not interchangeable. Discover ids here, never
|
|
@@ -74,17 +74,19 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
74
74
|
*/
|
|
75
75
|
readonly categories: CategoriesClient;
|
|
76
76
|
/**
|
|
77
|
-
* THE QUESTION: "what
|
|
78
|
-
* of
|
|
77
|
+
* THE QUESTION: "what colors does this category come in?" (`profiles`).
|
|
78
|
+
* `profiles` is an aggregate over a category, not a list of materials, and
|
|
79
|
+
* carries a `basis` naming the snapshot it read.
|
|
79
80
|
*
|
|
80
|
-
* Instead use {@link MaterialGraphClient.
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
81
|
+
* Instead use {@link MaterialGraphClient.findVariantsByColor} (`mode:
|
|
82
|
+
* "palette"`) for the materials near one or several colors and
|
|
83
|
+
* {@link MaterialGraphClient.listVariants} to page through a color's family.
|
|
84
|
+
* Color is usually derived from product imagery, which is visual likeness,
|
|
85
|
+
* not a color specification. A brand's declared color, such as a paint's
|
|
84
86
|
* published hex, wins where MaterialGraph holds one, and each value's
|
|
85
|
-
*
|
|
87
|
+
* value origin says which.
|
|
86
88
|
*/
|
|
87
|
-
readonly
|
|
89
|
+
readonly colors: ColorsClient;
|
|
88
90
|
/**
|
|
89
91
|
* THE QUESTION: "do a whole job for me" — the ASYNC lens. `start()` begins a
|
|
90
92
|
* Run of one registered workflow, `run()` polls it, `streamRunEvents()` and
|
|
@@ -95,51 +97,6 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
95
97
|
readonly workflows: WorkflowsClient;
|
|
96
98
|
constructor(options: MaterialGraphClientOptions);
|
|
97
99
|
get lastRateLimit(): RateLimit | null;
|
|
98
|
-
/**
|
|
99
|
-
* THE QUESTION: "find me materials like this": one search over the words, or
|
|
100
|
-
* a seed or query image, optionally gated by a category, hard attribute
|
|
101
|
-
* filters and a corpus scope (ADR 0031).
|
|
102
|
-
*
|
|
103
|
-
* Instead use {@link MaterialGraphClient.listVariants} when the spec IS the question
|
|
104
|
-
* (ranking would be noise), {@link MaterialGraphClient.byColour} /
|
|
105
|
-
* `colours.palette()` for visual colour intent (`text` matches WORDS — "sage
|
|
106
|
-
* green" finds materials that SAY sage, not ones that look it),
|
|
107
|
-
* {@link MaterialGraphClient.pairings}
|
|
108
|
-
* for what goes WITH something, {@link MaterialGraphClient.suggest} for typeahead.
|
|
109
|
-
*
|
|
110
|
-
* The full POST search primitive. `input.filters` are hard token sets on
|
|
111
|
-
* the search index, run in the same query; they change no ordering. Build
|
|
112
|
-
* them with `certificationProgramme`, `specTerm`, or `hasSpec`. Weights,
|
|
113
|
-
* mood, colours, sort and preferences are gone, and the server refuses them
|
|
114
|
-
* by name.
|
|
115
|
-
*/
|
|
116
|
-
search(input: SearchInput & CardProjectionRequest, signal?: AbortSignal): Promise<SearchCardResponse>;
|
|
117
|
-
search(input: SearchInput, signal?: AbortSignal): Promise<SearchResponse>;
|
|
118
|
-
/** Whole materials ask → inspectable meanings and complete safe search requests. */
|
|
119
|
-
planQuery(query: string, signal?: AbortSignal): Promise<MaterialQueryPlan>;
|
|
120
|
-
/**
|
|
121
|
-
* The same question as {@link MaterialGraphClient.search}; the difference is
|
|
122
|
-
* transport: a cacheable, link-shareable GET for queries that must survive in
|
|
123
|
-
* a URL. `category`, `filters` and image bytes have no query-string form, so
|
|
124
|
-
* anything using those must go through `search`.
|
|
125
|
-
*/
|
|
126
|
-
searchGet(params: SearchGetParams & {
|
|
127
|
-
view: "card";
|
|
128
|
-
}, signal?: AbortSignal): Promise<SearchCardResponse>;
|
|
129
|
-
searchGet(params: SearchGetParams, signal?: AbortSignal): Promise<SearchResponse>;
|
|
130
|
-
/**
|
|
131
|
-
* THE QUESTION: "what materials are near THIS colour?" — one colour (or a small
|
|
132
|
-
* palette), ranked by OKLab closeness to colour extracted from product imagery.
|
|
133
|
-
*
|
|
134
|
-
* Instead use `colours.palette()` for N colours at stated proportions (a
|
|
135
|
-
* different ranking, not a wrapper),
|
|
136
|
-
* {@link MaterialGraphClient.resolveColour} first if you hold a NAME,
|
|
137
|
-
* {@link MaterialGraphClient.listVariants} to page through a category or a brand, and
|
|
138
|
-
* {@link MaterialGraphClient.search} when colour is one signal among many.
|
|
139
|
-
* Report matches as visual likeness, never a stated colour specification.
|
|
140
|
-
* `family` gates to ONE colorscope family (a gated page can be short); `brand` gates to named brands — one brand's nearest colour to another's.
|
|
141
|
-
*/
|
|
142
|
-
byColour(params: ByColourParams, signal?: AbortSignal): Promise<ByColourResponse>;
|
|
143
100
|
/**
|
|
144
101
|
* THE QUESTION: "tell me about THIS variant" (GET
|
|
145
102
|
* `/api/v1/variants/{variantId}`, `get_variant`).
|
|
@@ -150,10 +107,10 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
150
107
|
* product, brand, category, image and page. Name `attributes` and `blocks`
|
|
151
108
|
* to add their values under `specifications`; a null value is unknown, never
|
|
152
109
|
* false or zero. Instead use {@link MaterialGraphClient.listVariants} for many
|
|
153
|
-
* ids, or for the other
|
|
110
|
+
* ids, or for the other colorways of the same product (ask `listVariants`
|
|
154
111
|
* with a `product in` filter),
|
|
155
112
|
* {@link MaterialGraphClient.materialBlocks} to tell "no value" from "not
|
|
156
|
-
* checked", {@link MaterialGraphClient.
|
|
113
|
+
* checked", {@link MaterialGraphClient.searchVariants} when you have no id yet.
|
|
157
114
|
*
|
|
158
115
|
* @param variantId Opaque — pass back exactly what you were given.
|
|
159
116
|
*/
|
|
@@ -173,37 +130,39 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
173
130
|
* off one resolved material (GET `/api/v1/materials/{variantId}/pairings`).
|
|
174
131
|
*
|
|
175
132
|
* Instead use {@link MaterialGraphClient.listVariants} for the same product in
|
|
176
|
-
* another
|
|
133
|
+
* another color, and {@link MaterialGraphClient.findVariantsByVector} for a LIKE-THIS substitute —
|
|
177
134
|
* similar and complementary are opposite questions.
|
|
178
135
|
*
|
|
179
136
|
* READ `item.source` BEFORE PHRASING: the rail mixes three tiers of evidence —
|
|
180
|
-
* `cospec` (real orders), `considered` (board activity), `
|
|
137
|
+
* `cospec` (real orders), `considered` (board activity), `color` (palette
|
|
181
138
|
* look-alike). Only `cospec` supports "sampled together". `cospecCount` tells
|
|
182
139
|
* you how much of the rail is real order evidence.
|
|
183
140
|
*/
|
|
184
141
|
pairings(variantId: VariantId, options?: PairingsOptions, signal?: AbortSignal): Promise<PairingsResponse>;
|
|
185
|
-
/** "What finishes does the
|
|
142
|
+
/** "What finishes does the brand declare for THIS product?" - {@link declaredFinishes}. */
|
|
186
143
|
associatedFinishes(variantId: VariantId, options?: AssociatedOptions, signal?: AbortSignal): Promise<import("./association-types.js").DeclaredAssociationsResponse>;
|
|
187
|
-
/** "What products does the
|
|
144
|
+
/** "What products does the brand declare THIS finish for?" - {@link declaredProducts}. */
|
|
188
145
|
associatedProducts(variantId: VariantId, options?: AssociatedOptions, signal?: AbortSignal): Promise<import("./association-types.js").DeclaredAssociationsResponse>;
|
|
189
146
|
applicability(options: ApplicabilityOptions, signal?: AbortSignal): Promise<import("./association-types.js").ApplicabilityResponse>;
|
|
190
147
|
/**
|
|
191
148
|
* THE QUESTION: "eligible variants matching these hard filters, ranked and
|
|
192
149
|
* cursor-paged" (GET `/api/v1/variants`, MG-2222) — the one read behind
|
|
193
150
|
* `list_variants`, hydrating ids you already hold (`{terms: [{field:
|
|
194
|
-
* "variant", op: "in", values: [...]}]}`, up to 100), the other
|
|
151
|
+
* "variant", op: "in", values: [...]}]}`, up to 100), the other colorways
|
|
195
152
|
* of a product (`{terms: [{field: "product", op: "in", values:
|
|
196
153
|
* [productId]}, {field: "variant", op: "not_in", values: [variantId]}]}` —
|
|
197
|
-
* `filters` is kind-grouped, `{terms, numbers, presence}`, every
|
|
198
|
-
* across all
|
|
154
|
+
* `filters` is kind-grouped, `{terms, numbers, presence, anyField}`, every
|
|
155
|
+
* condition across all four ANDed, 20 at most), or a category/brand listing. An explicit
|
|
199
156
|
* `variant in` id that does not resolve to an eligible variant is
|
|
200
|
-
* reported in `unresolvedVariantIds
|
|
201
|
-
* it names a
|
|
202
|
-
*
|
|
157
|
+
* reported in `unresolvedVariantIds` when it names no variant, in
|
|
158
|
+
* `unavailableVariantIds` when it names a catalogue variant this list
|
|
159
|
+
* cannot show in the requested scope (a retired one, for example), or in
|
|
160
|
+
* `excludedBySearchCatalogueSubset` when it names a real variant outside the
|
|
161
|
+
* materials catalogue, never silently dropped from the page.
|
|
203
162
|
*
|
|
204
|
-
* `filters`/`optionalFilters`/`orderBy` are sent as URL-encoded
|
|
205
|
-
* `attributes`/`include` as comma-separated lists — the server
|
|
206
|
-
* this method does not duplicate that check.
|
|
163
|
+
* `filters`/`optionalFilters`/`orderBy`/`colors` are sent as URL-encoded
|
|
164
|
+
* JSON; `attributes`/`include`/`words` as comma-separated lists — the server
|
|
165
|
+
* validates, this method does not duplicate that check.
|
|
207
166
|
*/
|
|
208
167
|
listVariants(input: ListVariantsInput, signal?: AbortSignal): Promise<ListVariantsOutput>;
|
|
209
168
|
/**
|
|
@@ -211,27 +170,41 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
211
170
|
* and how many of each" (POST `/api/v1/variants/facets`, MG-2294) — the
|
|
212
171
|
* options and counts a filter UI shows beside a {@link
|
|
213
172
|
* MaterialGraphClient.listVariants} page. `filters` is the same tree
|
|
214
|
-
* `listVariants()` takes
|
|
173
|
+
* `listVariants()` takes, less its `orText` and `unstated` additions; the
|
|
174
|
+
* server validates both.
|
|
215
175
|
*/
|
|
216
176
|
listVariantFacets(input: ListVariantFacetsInput, signal?: AbortSignal): Promise<ListVariantFacetsOutput>;
|
|
177
|
+
/**
|
|
178
|
+
* THE QUESTION: "which variants match these plain words, and how did you
|
|
179
|
+
* read them?" (POST `/api/v1/variants/search`, MG-2223) — `query` is read
|
|
180
|
+
* into the filters {@link MaterialGraphClient.listVariants} takes, run
|
|
181
|
+
* through it, and answered with `understood` (what each phrase became, or
|
|
182
|
+
* why it did nothing) beside the page. `filters`, `optionalFilters` and
|
|
183
|
+
* `name` are exactly what ran, so the three can be sent to `listVariants()`
|
|
184
|
+
* to narrow or widen the same search; page with this method's own cursor,
|
|
185
|
+
* which `listVariants()` refuses. A phrase with several meanings is
|
|
186
|
+
* answered with one and listed in `choices`; send its `handle` with an
|
|
187
|
+
* alternative's `group` and `id` in `selections` to switch it. A query that
|
|
188
|
+
* applies nothing returns no items, never the whole catalogue; a preference
|
|
189
|
+
* alone still ranks it.
|
|
190
|
+
*/
|
|
191
|
+
searchVariants(input: SearchVariantsInput, signal?: AbortSignal): Promise<SearchVariantsOutput>;
|
|
217
192
|
/**
|
|
218
193
|
* THE QUESTION: "which variants hold, resemble, or can be ranked by, this
|
|
219
|
-
*
|
|
220
|
-
* One required `mode`: `contains` (a swatch for every required `
|
|
221
|
-
* condition), `palette` (whole-palette closeness to `
|
|
194
|
+
* color?" (POST `/api/v1/variants/by-color`, MG-2217/MG-2230/MG-2247).
|
|
195
|
+
* One required `mode`: `contains` (a swatch for every required `colors[]`
|
|
196
|
+
* condition), `palette` (whole-palette closeness to `colors[]`, an
|
|
222
197
|
* image's extracted palette, or `targetVariantId`'s own palette) or
|
|
223
|
-
* `rerank` (reorder a held `variantIds` set by
|
|
224
|
-
* {@link MaterialGraphClient.byColour} instead for ONE colour against the
|
|
225
|
-
* search index rather than the canonical variant graph.
|
|
198
|
+
* `rerank` (reorder a held `variantIds` set by color closeness).
|
|
226
199
|
*/
|
|
227
|
-
|
|
200
|
+
findVariantsByColor(input: FindVariantsByColorInput, signal?: AbortSignal): Promise<FindVariantsByColorOutput>;
|
|
228
201
|
/**
|
|
229
202
|
* THE QUESTION: "what did designers sample together with these?" (POST
|
|
230
203
|
* `/api/v1/variants/companions`, MG-2332). Give `variantIds` and/or
|
|
231
204
|
* `materials` (free-text names, one variant each, at most twelve together);
|
|
232
205
|
* companions come back strongest first, each with its `lift`,
|
|
233
206
|
* `seedMatchCount`, `relation` and a one-line `reason`. `projectType` reads one
|
|
234
|
-
* sector; `include` adds `image` and `
|
|
207
|
+
* sector; `include` adds `image` and `color` fields a lean page leaves out.
|
|
235
208
|
* A sample order shows sampling, never specification. Read `unresolved`
|
|
236
209
|
* before presenting: a scheme of four that resolved two is a different claim.
|
|
237
210
|
*/
|
|
@@ -241,13 +214,14 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
241
214
|
* `/api/v1/variants/by-vector`, MG-2231). Eligible variants ranked by
|
|
242
215
|
* semantic or visual similarity to a text description (mood words count),
|
|
243
216
|
* an image reference, or both fused into one embedding. `filters` is the
|
|
244
|
-
* same tree {@link MaterialGraphClient.listVariants} takes
|
|
217
|
+
* same tree {@link MaterialGraphClient.listVariants} takes, less its `orText`
|
|
218
|
+
* and `unstated` additions. `query.mode`
|
|
245
219
|
* values other than `"text"` embed through Voyage and spend the shared
|
|
246
220
|
* per-key `embed` rate budget.
|
|
247
221
|
*/
|
|
248
222
|
findVariantsByVector(input: FindVariantsByVectorInput, signal?: AbortSignal): Promise<FindVariantsByVectorOutput>;
|
|
249
|
-
/** Resolve a
|
|
250
|
-
|
|
223
|
+
/** Resolve a color name to its hex, and the named paint's catalogue variant. */
|
|
224
|
+
resolveColor(name: string, signal?: AbortSignal, options?: ResolveColorOptions): Promise<ResolveColorResponse>;
|
|
251
225
|
/**
|
|
252
226
|
* THE QUESTION: "which attribute means this phrase?" or "what could a
|
|
253
227
|
* <category> be specified by?" (GET `/api/v1/catalog/attributes`). One page of
|
|
@@ -276,15 +250,14 @@ export declare class MaterialGraphClient extends CatalogueClient {
|
|
|
276
250
|
*/
|
|
277
251
|
whoami(signal?: AbortSignal): Promise<WhoamiResponse>;
|
|
278
252
|
/**
|
|
279
|
-
* THE QUESTION: "what
|
|
280
|
-
* materials. The bridge from an inspiration image into the
|
|
281
|
-
* here, then feed the swatches to
|
|
282
|
-
* {@link MaterialGraphClient.
|
|
283
|
-
|
|
253
|
+
* THE QUESTION: "what colors are in this image?" — the palette only, no
|
|
254
|
+
* materials. The bridge from an inspiration image into the color lens: extract
|
|
255
|
+
* here, then feed the swatches to
|
|
256
|
+
* {@link MaterialGraphClient.findVariantsByColor} (`mode: "palette"`).
|
|
284
257
|
*/
|
|
285
258
|
extractPalette(input: ExtractPaletteInput, signal?: AbortSignal): Promise<ExtractPaletteResponse>;
|
|
286
259
|
/** "Whose catalogs are in here, and how big is each?" — {@link listBrands}. */
|
|
287
|
-
brands(options?: BrandsOptions, signal?: AbortSignal): Promise<import("./brand-types.js").
|
|
260
|
+
brands(options?: BrandsOptions, signal?: AbortSignal): Promise<import("./brand-types.js").ListBrandsPage>;
|
|
288
261
|
/**
|
|
289
262
|
* Upload one atomic source-material batch (POST `/api/v1/source-material`,
|
|
290
263
|
* multipart). Pass a heterogeneous pile via `{ files }` (any mix of PDF,
|