@proveanything/smartlinks 1.15.1 → 1.15.3

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/dist/api/ai.js CHANGED
@@ -28,7 +28,11 @@ var aiInternal;
28
28
  * @returns Responses API result or async iterable for streaming events
29
29
  */
30
30
  async function create(collectionId, request) {
31
+ var _a;
31
32
  const path = `/admin/collection/${encodeURIComponent(collectionId)}/ai/v1/responses`;
33
+ if (((_a = request.multi_agent) === null || _a === void 0 ? void 0 : _a.enabled) && request.stream) {
34
+ throw new Error('Streaming is not supported when multi_agent.enabled is true');
35
+ }
32
36
  if (request.stream) {
33
37
  return requestStream(path, { method: 'POST', body: request });
34
38
  }
@@ -34,6 +34,18 @@ export declare namespace collection {
34
34
  * @throws ErrorResponse (404) if no collection is mapped to the domain
35
35
  */
36
36
  function getByHub(): Promise<CollectionResponse>;
37
+ /**
38
+ * Resolve the collection for an explicit Hub domain (public endpoint).
39
+ *
40
+ * Unlike {@link getByHub}, the domain is passed explicitly rather than derived
41
+ * from request headers — use this for raw/cross-origin calls where the Hub
42
+ * frontend knows its own hostname (e.g. "erbauer.mysmartlinks.app").
43
+ *
44
+ * @param domain – The Hub domain to resolve (custom domain or {brand}.mysmartlinks.app)
45
+ * @returns Promise resolving to the CollectionResponse mapped to the domain
46
+ * @throws ErrorResponse (404) if no collection is mapped to the domain
47
+ */
48
+ function getByDomain(domain: string): Promise<CollectionResponse>;
37
49
  /**
38
50
  * Check whether a Hub subdomain name is available to claim (admin only).
39
51
  * @param collectionId – Identifier of the collection making the request
@@ -54,6 +54,22 @@ export var collection;
54
54
  return request(path);
55
55
  }
56
56
  collection.getByHub = getByHub;
57
+ /**
58
+ * Resolve the collection for an explicit Hub domain (public endpoint).
59
+ *
60
+ * Unlike {@link getByHub}, the domain is passed explicitly rather than derived
61
+ * from request headers — use this for raw/cross-origin calls where the Hub
62
+ * frontend knows its own hostname (e.g. "erbauer.mysmartlinks.app").
63
+ *
64
+ * @param domain – The Hub domain to resolve (custom domain or {brand}.mysmartlinks.app)
65
+ * @returns Promise resolving to the CollectionResponse mapped to the domain
66
+ * @throws ErrorResponse (404) if no collection is mapped to the domain
67
+ */
68
+ async function getByDomain(domain) {
69
+ const path = `/public/collection/by-domain/${encodeURIComponent(domain)}`;
70
+ return request(path);
71
+ }
72
+ collection.getByDomain = getByDomain;
57
73
  /**
58
74
  * Check whether a Hub subdomain name is available to claim (admin only).
59
75
  * @param collectionId – Identifier of the collection making the request
@@ -1,4 +1,4 @@
1
- import type { FacetDefinition, FacetDefinitionWriteInput, FacetGetParams, FacetListParams, FacetListResponse, FacetQueryRequest, FacetQueryResponse, FacetValueGetParams, FacetValueListParams, FacetValueListResponse, FacetValueResponse, FacetValueWriteInput, PublicFacetListParams } from "../types/facets";
1
+ import type { FacetDefinition, FacetDefinitionWriteInput, FacetGetParams, FacetListParams, FacetListResponse, FacetNamespaceListResponse, FacetQueryRequest, FacetQueryResponse, FacetValueGetParams, FacetValueListParams, FacetValueListResponse, FacetValueResponse, FacetValueWriteInput, PublicFacetListParams } from "../types/facets";
2
2
  /**
3
3
  * Facet management and aggregation endpoints.
4
4
  *
@@ -18,9 +18,11 @@ export declare namespace facets {
18
18
  function updateValue(collectionId: string, facetKey: string, valueKey: string, data: FacetValueWriteInput): Promise<FacetValueResponse>;
19
19
  function removeValue(collectionId: string, facetKey: string, valueKey: string): Promise<void>;
20
20
  function query(collectionId: string, body: FacetQueryRequest): Promise<FacetQueryResponse>;
21
+ function namespaces(collectionId: string): Promise<FacetNamespaceListResponse>;
21
22
  function publicList(collectionId: string, params?: PublicFacetListParams): Promise<FacetListResponse>;
22
23
  function publicGet(collectionId: string, facetKey: string, params?: PublicFacetListParams): Promise<FacetDefinition>;
23
24
  function publicListValues(collectionId: string, facetKey: string): Promise<FacetValueListResponse>;
24
25
  function publicGetValue(collectionId: string, facetKey: string, valueKey: string): Promise<FacetValueResponse>;
25
26
  function publicQuery(collectionId: string, body: FacetQueryRequest): Promise<FacetQueryResponse>;
27
+ function publicNamespaces(collectionId: string): Promise<FacetNamespaceListResponse>;
26
28
  }
@@ -78,6 +78,11 @@ export var facets;
78
78
  return post(path, body);
79
79
  }
80
80
  facets.query = query;
81
+ async function namespaces(collectionId) {
82
+ const path = `/admin/collection/${encodeURIComponent(collectionId)}/facets/namespaces`;
83
+ return request(path);
84
+ }
85
+ facets.namespaces = namespaces;
81
86
  async function publicList(collectionId, params) {
82
87
  const path = `/public/collection/${encodeURIComponent(collectionId)}/facets${buildQueryString(params)}`;
83
88
  return request(path);
@@ -103,4 +108,9 @@ export var facets;
103
108
  return post(path, body);
104
109
  }
105
110
  facets.publicQuery = publicQuery;
111
+ async function publicNamespaces(collectionId) {
112
+ const path = `/public/collection/${encodeURIComponent(collectionId)}/facets/namespaces`;
113
+ return request(path);
114
+ }
115
+ facets.publicNamespaces = publicNamespaces;
106
116
  })(facets || (facets = {}));
@@ -1,6 +1,6 @@
1
1
  # Smartlinks API Summary
2
2
 
3
- Version: 1.15.1 | Generated: 2026-06-13T08:46:42.914Z
3
+ Version: 1.15.3 | Generated: 2026-07-11T13:25:50.969Z
4
4
 
5
5
  This is a concise summary of all available API functions and types.
6
6
 
@@ -499,6 +499,8 @@ interface ResponseTool {
499
499
  name?: string
500
500
  description?: string
501
501
  parameters?: Record<string, any>
502
+ output_schema?: Record<string, any>
503
+ allowed_callers?: Array<'assistant' | 'programmatic'>
502
504
  [key: string]: any
503
505
  }
504
506
  ```
@@ -544,6 +546,11 @@ interface ResponsesRequest {
544
546
  text?: Record<string, any>
545
547
  metadata?: Record<string, string>
546
548
  prompt_cache_key?: string
549
+ multi_agent?: {
550
+ enabled: boolean
551
+ max_concurrent_subagents?: number
552
+ }
553
+ service_tier?: 'auto' | 'standard' | 'flex' | 'priority'
547
554
  }
548
555
  ```
549
556
 
@@ -5039,6 +5046,7 @@ interface FacetDefinition {
5039
5046
  key: string
5040
5047
  name: string
5041
5048
  description?: string | null
5049
+ namespace?: string | null
5042
5050
  cardinality?: "single" | "multi"
5043
5051
  kind?: "system" | "custom"
5044
5052
  hierarchical?: boolean
@@ -5087,6 +5095,7 @@ interface FacetDefinitionWriteInput {
5087
5095
  key?: string
5088
5096
  name: string
5089
5097
  description?: string | null
5098
+ namespace?: string | null
5090
5099
  cardinality?: "single" | "multi"
5091
5100
  kind?: "system" | "custom"
5092
5101
  hierarchical?: boolean
@@ -5144,6 +5153,7 @@ interface FacetQueryRequest {
5144
5153
  facetKeys?: string[]
5145
5154
  includeEmpty?: boolean
5146
5155
  includeDeleted?: boolean
5156
+ namespace?: string | null
5147
5157
  query?: ProductQueryRequest["query"] & {
5148
5158
  facetEquals?: Record<string, JsonValue | JsonValue[]>
5149
5159
  }
@@ -5182,6 +5192,7 @@ interface FacetListParams {
5182
5192
  includeDeleted?: boolean
5183
5193
  kind?: "system" | "custom"
5184
5194
  reserved?: boolean
5195
+ namespace?: string
5185
5196
  }
5186
5197
  ```
5187
5198
 
@@ -5189,6 +5200,14 @@ interface FacetListParams {
5189
5200
  ```typescript
5190
5201
  interface PublicFacetListParams {
5191
5202
  includeValues?: boolean
5203
+ namespace?: string
5204
+ }
5205
+ ```
5206
+
5207
+ **FacetNamespaceListResponse** (interface)
5208
+ ```typescript
5209
+ interface FacetNamespaceListResponse {
5210
+ namespaces: string[]
5192
5211
  }
5193
5212
  ```
5194
5213
 
@@ -8619,6 +8638,9 @@ Retrieve a collection by its shortId (public endpoint).
8619
8638
  **getByHub**() → `Promise<CollectionResponse>`
8620
8639
  Resolve the collection for the current Hub domain (public endpoint). The server derives the requesting domain from the request headers (`X-Source-Domain` / `X-Forwarded-Host` / `Host`), so no identifier is passed — this is the call a Hub frontend makes on load to find out which collection it is serving, whether it's reached via `{brand}.mysmartlinks.app` or a bring-your-own custom domain (e.g. `hub.acme.com`).
8621
8640
 
8641
+ **getByDomain**(domain: string) → `Promise<CollectionResponse>`
8642
+ Resolve the collection for an explicit Hub domain (public endpoint). Unlike {@link getByHub}, the domain is passed explicitly rather than derived from request headers — use this for raw/cross-origin calls where the Hub frontend knows its own hostname (e.g. "erbauer.mysmartlinks.app").
8643
+
8622
8644
  **checkHubAvailability**(collectionId: string, name: string) → `Promise<HubAvailabilityResponse>`
8623
8645
  Check whether a Hub subdomain name is available to claim (admin only).
8624
8646
 
@@ -8942,6 +8964,8 @@ Delete a crate for a collection (admin only). This performs a soft delete. ```ty
8942
8964
  **query**(collectionId: string,
8943
8965
  body: FacetQueryRequest) → `Promise<FacetQueryResponse>`
8944
8966
 
8967
+ **namespaces**(collectionId: string) → `Promise<FacetNamespaceListResponse>`
8968
+
8945
8969
  **publicList**(collectionId: string,
8946
8970
  params?: PublicFacetListParams) → `Promise<FacetListResponse>`
8947
8971
 
@@ -8959,6 +8983,8 @@ Delete a crate for a collection (admin only). This performs a soft delete. ```ty
8959
8983
  **publicQuery**(collectionId: string,
8960
8984
  body: FacetQueryRequest) → `Promise<FacetQueryResponse>`
8961
8985
 
8986
+ **publicNamespaces**(collectionId: string) → `Promise<FacetNamespaceListResponse>`
8987
+
8962
8988
  ### form
8963
8989
 
8964
8990
  **get**(collectionId: string, formId: string, admin?: boolean) → `Promise<any>`
@@ -42,6 +42,21 @@ includeValues?: boolean
42
42
  includeDeleted?: boolean
43
43
  kind?: 'system' | 'custom'
44
44
  reserved?: boolean
45
+ namespace?: string
46
+ ```
47
+
48
+ When `namespace` is provided, returns facets matching that namespace plus global facets (`namespace: null`). Omit the param to return all facets.
49
+
50
+ ### List namespaces
51
+
52
+ ```ts
53
+ GET /api/v1/admin/collection/:collectionId/facets/namespaces
54
+ ```
55
+
56
+ Returns all distinct namespaces in use for the collection (excludes globals).
57
+
58
+ ```ts
59
+ { namespaces: string[] }
45
60
  ```
46
61
 
47
62
  ### Create facet definition
@@ -50,6 +65,8 @@ reserved?: boolean
50
65
  POST /api/v1/admin/collection/:collectionId/facets
51
66
  ```
52
67
 
68
+ Pass `namespace` in the body to scope the facet to a domain (e.g. `"dpp"`, `"nutrition"`). Omit it to create a global facet.
69
+
53
70
  ### Get facet definition
54
71
 
55
72
  ```ts
@@ -146,6 +163,8 @@ Supported query filters now:
146
163
  - `tags`
147
164
  - `facetEquals`
148
165
 
166
+ Body also accepts `namespace` (optional) to scope aggregation to a namespace plus global facets.
167
+
149
168
  ## Public endpoints
150
169
 
151
170
  ### List facet definitions
@@ -158,6 +177,21 @@ Optional query params:
158
177
 
159
178
  ```ts
160
179
  includeValues?: boolean
180
+ namespace?: string
181
+ ```
182
+
183
+ When `namespace` is provided, returns facets matching that namespace plus global facets (`namespace: null`). Omit the param to return all facets.
184
+
185
+ ### List namespaces
186
+
187
+ ```ts
188
+ GET /api/v1/public/collection/:collectionId/facets/namespaces
189
+ ```
190
+
191
+ Returns all distinct namespaces in use for the collection (excludes globals).
192
+
193
+ ```ts
194
+ { namespaces: string[] }
161
195
  ```
162
196
 
163
197
  ### Get facet definition
@@ -215,6 +249,7 @@ export interface FacetDefinition {
215
249
  key: string
216
250
  name: string
217
251
  description?: string | null
252
+ namespace?: string | null
218
253
  cardinality: 'single' | 'multi'
219
254
  kind: 'system' | 'custom'
220
255
  hierarchical: boolean
@@ -230,6 +265,7 @@ export interface FacetDefinitionWriteInput {
230
265
  key?: string
231
266
  name: string
232
267
  description?: string | null
268
+ namespace?: string | null
233
269
  cardinality?: 'single' | 'multi'
234
270
  kind?: 'system' | 'custom'
235
271
  hierarchical?: boolean
@@ -305,6 +341,7 @@ export interface FacetQueryRequest {
305
341
  facetKeys?: string[]
306
342
  includeEmpty?: boolean
307
343
  includeDeleted?: boolean
344
+ namespace?: string | null
308
345
  query?: {
309
346
  search?: string
310
347
  status?: string[]
@@ -326,6 +363,10 @@ export interface FacetBucket {
326
363
  count: number
327
364
  }
328
365
 
366
+ export interface FacetNamespaceListResponse {
367
+ namespaces: string[]
368
+ }
369
+
329
370
  export interface FacetQueryResponse {
330
371
  items: Array<{
331
372
  facet: FacetDefinition
@@ -344,4 +385,5 @@ export interface FacetQueryResponse {
344
385
  - treat facet definitions and facet values as collection-scoped resources
345
386
  - use the facet API to manage definitions and values
346
387
  - use product read/write routes to assign facet data onto products
347
- - treat `label` and `category` as reserved system facets when present
388
+ - treat `label` and `category` as reserved system facets when present
389
+ - facets with `namespace: null` are global and appear in all contexts; namespaced facets belong to a specific domain (e.g. `"dpp"`, `"nutrition"`)
package/dist/docs/ai.md CHANGED
@@ -251,6 +251,100 @@ const response = await ai.chat.responses.create('my-collection', {
251
251
  console.log(response.output);
252
252
  ```
253
253
 
254
+ ### Recommended Models
255
+
256
+ For agentic workflows on `v1/responses`, GPT-5.6 ships in three tiers. Pass either the full model
257
+ id (`openai/gpt-5.6-sol`) or the shorthand tier alias (`'cheap'`, `'balanced'`, `'premium'`) as
258
+ `model` — both resolve through the same server-side model registry.
259
+
260
+ | Tier | Model | Alias | Use for |
261
+ |------|-------|-------|---------|
262
+ | Cheapest (default) | `openai/gpt-5.6-luna` | `'cheap'` / omit `model` | Everyday chat, high-volume/simple turns |
263
+ | Balanced | `openai/gpt-5.6-terra` | `'balanced'` | Admin agent / tool-heavy setup workflows (route default) |
264
+ | Flagship | `openai/gpt-5.6-sol` | `'premium'` | Most demanding reasoning, coding, and multi-step tool use |
265
+
266
+ Every tier supports function/tool calling, Programmatic Tool Calling, and Multi-agent (see below), and all
267
+ three accept `service_tier: 'flex'` (≈50% cheaper, Batch-API rates, slower) or `'priority'` (premium, guaranteed
268
+ throughput) alongside the default `'standard'` tier. Pass it straight through in the request body:
269
+
270
+ ```typescript
271
+ const response = await ai.chat.responses.create('my-collection', {
272
+ model: 'balanced',
273
+ input: 'Summarize this week\'s ingested documents.',
274
+ service_tier: 'flex' // non-interactive/background work: cheaper, but can take minutes
275
+ });
276
+ ```
277
+
278
+ Flex requests run noticeably slower — reserve `flex` for non-production/background work (batch enrichment,
279
+ evaluations, async jobs), not user-facing chat turns. The server already raises its own timeout to 15
280
+ minutes for any request with `service_tier: 'flex'`, matching OpenAI's guidance — nothing to configure on
281
+ the client. On a `429` ("resource unavailable") the request wasn't charged; retry with backoff or drop
282
+ `service_tier` (or set it to `'auto'`) to fall back to standard processing.
283
+
284
+ ### Programmatic Tool Calling
285
+
286
+ Lets the model write a short in-memory program that orchestrates several tool calls (filtering,
287
+ looping, aggregating) before handing back one result, instead of a full message round-trip per
288
+ call. Add the hosted `programmatic_tool_calling` tool, and mark each function tool the program is
289
+ allowed to invoke with `allowed_callers: ['programmatic']`:
290
+
291
+ ```typescript
292
+ const response = await ai.chat.responses.create('my-collection', {
293
+ model: 'balanced',
294
+ input: 'Compare inventory with demand for every SKU in this collection.',
295
+ tools: [
296
+ {
297
+ type: 'function',
298
+ name: 'get_inventory',
299
+ description: 'Return available_units for a sku',
300
+ parameters: { type: 'object', properties: { sku: { type: 'string' } }, required: ['sku'] },
301
+ output_schema: { type: 'object', properties: { sku: { type: 'string' }, available_units: { type: 'number' } } },
302
+ allowed_callers: ['programmatic']
303
+ },
304
+ {
305
+ type: 'function',
306
+ name: 'get_demand',
307
+ description: 'Return requested_units for a sku',
308
+ parameters: { type: 'object', properties: { sku: { type: 'string' } }, required: ['sku'] },
309
+ output_schema: { type: 'object', properties: { sku: { type: 'string' }, requested_units: { type: 'number' } } },
310
+ allowed_callers: ['programmatic']
311
+ },
312
+ { type: 'programmatic_tool_calling' }
313
+ ]
314
+ });
315
+ ```
316
+
317
+ The response's `output` array can include a `program` item (the generated code), one
318
+ `function_call` item per program-issued call (tagged with `caller: { type: 'program', caller_id }`),
319
+ and a `program_output` item with the program's final `result`/`status`. Execute the `function_call`
320
+ items as normal and send results back keyed by their `call_id` on the next turn.
321
+
322
+ ### Multi-agent (subagents)
323
+
324
+ Lets the root agent spawn a tree of subagents that run in parallel and get synthesized back into
325
+ one response — useful for tasks that split cleanly into independent workstreams (e.g. research +
326
+ draft + review). Enable it by setting `multi_agent.enabled: true` — that's the entire contract on
327
+ your end; nothing else to configure or pass.
328
+
329
+ This is upstream beta functionality (OpenAI may still be limiting it to certain accounts/rollout),
330
+ so treat behavior and availability as subject to change until it's GA.
331
+
332
+ ```typescript
333
+ const response = await ai.chat.responses.create('my-collection', {
334
+ model: 'premium', // Sol recommended for the root agent when spawning subagents
335
+ input: 'Research three competitor loyalty programs, then draft a comparison summary.',
336
+ multi_agent: { enabled: true, max_concurrent_subagents: 3 }
337
+ });
338
+ ```
339
+
340
+ Subagent output arrives as additional items in `output`, each tagged `agent: { agent_name: '/root/<name>' }`
341
+ (root agent output uses `/root`). Notes/limits carried over from OpenAI's beta:
342
+
343
+ - `max_concurrent_subagents` defaults to `3`
344
+ - `reasoning.summary` and `max_tool_calls` are not supported while multi-agent is enabled
345
+ - Streaming is not supported while multi-agent is enabled — the SDK throws if you pass both
346
+ `stream: true` and `multi_agent.enabled: true`
347
+
254
348
  ---
255
349
 
256
350
  ## Chat Completions
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export type { BroadcastSendRequest } from "./types/broadcasts";
15
15
  export type { AppConfigOptions } from "./api/appConfiguration";
16
16
  export type { AdditionalGtin, ISODateString, JsonPrimitive, JsonValue, ProductCreateRequest, ProductClaimCreateInput, ProductClaimCreateRequestBody, ProductClaimLookupInput, ProductFacetMap, ProductFacetValue, ProductImageUrlInput, ProductKey, ProductQueryRequest, ProductQueryResponse, ProductUpdateRequest, Product, ProductWriteInput, PublicProduct, } from "./types/product";
17
17
  export type { TranslationLookupMode, TranslationContentType, TranslationQuality, TranslationItemStatus, TranslationContextValue, TranslationContext, TranslationLookupRequestBase, TranslationLookupSingleRequest, TranslationLookupBatchRequest, TranslationLookupRequest, TranslationLookupItem, TranslationLookupResponse, ResolvedTranslationItem, ResolvedTranslationResponse, TranslationHashOptions, TranslationResolveOptions, TranslationRecord, TranslationListParams, TranslationListResponse, TranslationUpdateRequest, } from "./types/translations";
18
- export type { FacetBucket, FacetDefinition, FacetDefinitionWriteInput, FacetGetParams, FacetListParams, FacetListResponse, FacetQueryRequest, FacetQueryResponse, FacetValue, FacetValueDefinition, FacetValueGetParams, FacetValueListParams, FacetValueListResponse, FacetValueResponse, FacetValueWriteInput, PublicFacetListParams, } from "./types/facets";
18
+ export type { FacetBucket, FacetDefinition, FacetDefinitionWriteInput, FacetGetParams, FacetListParams, FacetListResponse, FacetNamespaceListResponse, FacetQueryRequest, FacetQueryResponse, FacetValue, FacetValueDefinition, FacetValueGetParams, FacetValueListParams, FacetValueListResponse, FacetValueResponse, FacetValueWriteInput, PublicFacetListParams, } from "./types/facets";
19
19
  export type { Collection, CollectionResponse, CollectionCreateRequest, CollectionUpdateRequest, DomainTarget, HubAvailabilityResponse, } from "./types/collection";
20
20
  export type { Proof, ProofResponse, ProofCreateRequest, ProofUpdateRequest, ProofClaimRequest, } from "./types/proof";
21
21
  export type { QrShortCodeLookupResponse, } from "./types/qr";
package/dist/openapi.yaml CHANGED
@@ -3429,6 +3429,11 @@ paths:
3429
3429
  required: false
3430
3430
  schema:
3431
3431
  type: boolean
3432
+ - name: namespace
3433
+ in: query
3434
+ required: false
3435
+ schema:
3436
+ type: string
3432
3437
  responses:
3433
3438
  200:
3434
3439
  description: Success
@@ -3474,6 +3479,33 @@ paths:
3474
3479
  application/json:
3475
3480
  schema:
3476
3481
  $ref: "#/components/schemas/FacetDefinitionWriteInput"
3482
+ /admin/collection/{collectionId}/facets/namespaces:
3483
+ get:
3484
+ tags:
3485
+ - facets
3486
+ summary: facets.namespaces
3487
+ operationId: facets_namespaces
3488
+ security:
3489
+ - bearerAuth: []
3490
+ parameters:
3491
+ - name: collectionId
3492
+ in: path
3493
+ required: true
3494
+ schema:
3495
+ type: string
3496
+ responses:
3497
+ 200:
3498
+ description: Success
3499
+ content:
3500
+ application/json:
3501
+ schema:
3502
+ $ref: "#/components/schemas/FacetNamespaceListResponse"
3503
+ 400:
3504
+ description: Bad request
3505
+ 401:
3506
+ description: Unauthorized
3507
+ 404:
3508
+ description: Not found
3477
3509
  /admin/collection/{collectionId}/facets/query:
3478
3510
  post:
3479
3511
  tags:
@@ -9316,6 +9348,32 @@ paths:
9316
9348
  application/json:
9317
9349
  schema:
9318
9350
  $ref: "#/components/schemas/RequestUploadTokenOptions"
9351
+ /public/collection/by-domain/{domain}:
9352
+ get:
9353
+ tags:
9354
+ - collection
9355
+ summary: Resolve the collection for an explicit Hub domain (public endpoint).
9356
+ operationId: collection_getByDomain
9357
+ security: []
9358
+ parameters:
9359
+ - name: domain
9360
+ in: path
9361
+ required: true
9362
+ schema:
9363
+ type: string
9364
+ responses:
9365
+ 200:
9366
+ description: Success
9367
+ content:
9368
+ application/json:
9369
+ schema:
9370
+ $ref: "#/components/schemas/CollectionResponse"
9371
+ 400:
9372
+ description: Bad request
9373
+ 401:
9374
+ description: Unauthorized
9375
+ 404:
9376
+ description: Not found
9319
9377
  /public/collection/getByHub:
9320
9378
  get:
9321
9379
  tags:
@@ -10811,6 +10869,11 @@ paths:
10811
10869
  required: false
10812
10870
  schema:
10813
10871
  type: boolean
10872
+ - name: namespace
10873
+ in: query
10874
+ required: false
10875
+ schema:
10876
+ type: string
10814
10877
  responses:
10815
10878
  200:
10816
10879
  description: Success
@@ -10824,6 +10887,32 @@ paths:
10824
10887
  description: Unauthorized
10825
10888
  404:
10826
10889
  description: Not found
10890
+ /public/collection/{collectionId}/facets/namespaces:
10891
+ get:
10892
+ tags:
10893
+ - facets
10894
+ summary: facets.publicNamespaces
10895
+ operationId: facets_publicNamespaces
10896
+ security: []
10897
+ parameters:
10898
+ - name: collectionId
10899
+ in: path
10900
+ required: true
10901
+ schema:
10902
+ type: string
10903
+ responses:
10904
+ 200:
10905
+ description: Success
10906
+ content:
10907
+ application/json:
10908
+ schema:
10909
+ $ref: "#/components/schemas/FacetNamespaceListResponse"
10910
+ 400:
10911
+ description: Bad request
10912
+ 401:
10913
+ description: Unauthorized
10914
+ 404:
10915
+ description: Not found
10827
10916
  /public/collection/{collectionId}/facets/query:
10828
10917
  post:
10829
10918
  tags:
@@ -10879,6 +10968,11 @@ paths:
10879
10968
  required: false
10880
10969
  schema:
10881
10970
  type: boolean
10971
+ - name: namespace
10972
+ in: query
10973
+ required: false
10974
+ schema:
10975
+ type: string
10882
10976
  responses:
10883
10977
  200:
10884
10978
  description: Success
@@ -13870,6 +13964,16 @@ components:
13870
13964
  parameters:
13871
13965
  type: object
13872
13966
  additionalProperties: true
13967
+ output_schema:
13968
+ type: object
13969
+ additionalProperties: true
13970
+ allowed_callers:
13971
+ type: array
13972
+ items:
13973
+ type: string
13974
+ enum:
13975
+ - assistant
13976
+ - programmatic
13873
13977
  required:
13874
13978
  - type
13875
13979
  ResponseInputItem:
@@ -13958,6 +14062,22 @@ components:
13958
14062
  type: string
13959
14063
  prompt_cache_key:
13960
14064
  type: string
14065
+ multi_agent:
14066
+ type: object
14067
+ additionalProperties: true
14068
+ enabled:
14069
+ type: boolean
14070
+ max_concurrent_subagents:
14071
+ type: number
14072
+ service_tier:
14073
+ type: string
14074
+ enum:
14075
+ - auto
14076
+ - standard
14077
+ - flex
14078
+ - priority
14079
+ required:
14080
+ - enabled
13961
14081
  ResponsesResult:
13962
14082
  type: object
13963
14083
  properties:
@@ -20697,6 +20817,8 @@ components:
20697
20817
  type: string
20698
20818
  description:
20699
20819
  type: string
20820
+ namespace:
20821
+ type: string
20700
20822
  cardinality:
20701
20823
  type: object
20702
20824
  additionalProperties: true
@@ -20792,6 +20914,8 @@ components:
20792
20914
  type: string
20793
20915
  description:
20794
20916
  type: string
20917
+ namespace:
20918
+ type: string
20795
20919
  cardinality:
20796
20920
  type: object
20797
20921
  additionalProperties: true
@@ -20887,6 +21011,8 @@ components:
20887
21011
  type: boolean
20888
21012
  includeDeleted:
20889
21013
  type: boolean
21014
+ namespace:
21015
+ type: string
20890
21016
  query:
20891
21017
  type: object
20892
21018
  additionalProperties: true
@@ -20954,11 +21080,24 @@ components:
20954
21080
  additionalProperties: true
20955
21081
  reserved:
20956
21082
  type: boolean
21083
+ namespace:
21084
+ type: string
20957
21085
  PublicFacetListParams:
20958
21086
  type: object
20959
21087
  properties:
20960
21088
  includeValues:
20961
21089
  type: boolean
21090
+ namespace:
21091
+ type: string
21092
+ FacetNamespaceListResponse:
21093
+ type: object
21094
+ properties:
21095
+ namespaces:
21096
+ type: array
21097
+ items:
21098
+ type: string
21099
+ required:
21100
+ - namespaces
20962
21101
  FacetGetParams:
20963
21102
  type: object
20964
21103
  properties:
@@ -56,6 +56,10 @@ export interface ResponseTool {
56
56
  name?: string;
57
57
  description?: string;
58
58
  parameters?: Record<string, any>;
59
+ /** Expected shape of this tool's output, used by Programmatic Tool Calling. */
60
+ output_schema?: Record<string, any>;
61
+ /** Restricts which callers may invoke this tool (e.g. `['programmatic']` for Programmatic Tool Calling). */
62
+ allowed_callers?: Array<'assistant' | 'programmatic'>;
59
63
  [key: string]: any;
60
64
  }
61
65
  /** Structured input item accepted by the Responses API. */
@@ -98,6 +102,13 @@ export interface ResponsesRequest {
98
102
  text?: Record<string, any>;
99
103
  metadata?: Record<string, string>;
100
104
  prompt_cache_key?: string;
105
+ /** Enables multi-agent (subagent) orchestration. Not supported together with `stream: true`. */
106
+ multi_agent?: {
107
+ enabled: boolean;
108
+ max_concurrent_subagents?: number;
109
+ };
110
+ /** `'flex'` is ~50% cheaper at Batch-API rates but slower; reserve for non-interactive/background work. */
111
+ service_tier?: 'auto' | 'standard' | 'flex' | 'priority';
101
112
  }
102
113
  /** Response from the Responses API. */
103
114
  export interface ResponsesResult {
@@ -6,6 +6,7 @@ export interface FacetDefinition {
6
6
  key: string;
7
7
  name: string;
8
8
  description?: string | null;
9
+ namespace?: string | null;
9
10
  cardinality?: "single" | "multi";
10
11
  kind?: "system" | "custom";
11
12
  hierarchical?: boolean;
@@ -46,6 +47,7 @@ export interface FacetDefinitionWriteInput {
46
47
  key?: string;
47
48
  name: string;
48
49
  description?: string | null;
50
+ namespace?: string | null;
49
51
  cardinality?: "single" | "multi";
50
52
  kind?: "system" | "custom";
51
53
  hierarchical?: boolean;
@@ -83,6 +85,7 @@ export interface FacetQueryRequest {
83
85
  facetKeys?: string[];
84
86
  includeEmpty?: boolean;
85
87
  includeDeleted?: boolean;
88
+ namespace?: string | null;
86
89
  query?: ProductQueryRequest["query"] & {
87
90
  facetEquals?: Record<string, JsonValue | JsonValue[]>;
88
91
  };
@@ -109,9 +112,14 @@ export interface FacetListParams {
109
112
  includeDeleted?: boolean;
110
113
  kind?: "system" | "custom";
111
114
  reserved?: boolean;
115
+ namespace?: string;
112
116
  }
113
117
  export interface PublicFacetListParams {
114
118
  includeValues?: boolean;
119
+ namespace?: string;
120
+ }
121
+ export interface FacetNamespaceListResponse {
122
+ namespaces: string[];
115
123
  }
116
124
  export interface FacetGetParams {
117
125
  includeValues?: boolean;
@@ -1,6 +1,6 @@
1
1
  # Smartlinks API Summary
2
2
 
3
- Version: 1.15.1 | Generated: 2026-06-13T08:46:42.914Z
3
+ Version: 1.15.3 | Generated: 2026-07-11T13:25:50.969Z
4
4
 
5
5
  This is a concise summary of all available API functions and types.
6
6
 
@@ -499,6 +499,8 @@ interface ResponseTool {
499
499
  name?: string
500
500
  description?: string
501
501
  parameters?: Record<string, any>
502
+ output_schema?: Record<string, any>
503
+ allowed_callers?: Array<'assistant' | 'programmatic'>
502
504
  [key: string]: any
503
505
  }
504
506
  ```
@@ -544,6 +546,11 @@ interface ResponsesRequest {
544
546
  text?: Record<string, any>
545
547
  metadata?: Record<string, string>
546
548
  prompt_cache_key?: string
549
+ multi_agent?: {
550
+ enabled: boolean
551
+ max_concurrent_subagents?: number
552
+ }
553
+ service_tier?: 'auto' | 'standard' | 'flex' | 'priority'
547
554
  }
548
555
  ```
549
556
 
@@ -5039,6 +5046,7 @@ interface FacetDefinition {
5039
5046
  key: string
5040
5047
  name: string
5041
5048
  description?: string | null
5049
+ namespace?: string | null
5042
5050
  cardinality?: "single" | "multi"
5043
5051
  kind?: "system" | "custom"
5044
5052
  hierarchical?: boolean
@@ -5087,6 +5095,7 @@ interface FacetDefinitionWriteInput {
5087
5095
  key?: string
5088
5096
  name: string
5089
5097
  description?: string | null
5098
+ namespace?: string | null
5090
5099
  cardinality?: "single" | "multi"
5091
5100
  kind?: "system" | "custom"
5092
5101
  hierarchical?: boolean
@@ -5144,6 +5153,7 @@ interface FacetQueryRequest {
5144
5153
  facetKeys?: string[]
5145
5154
  includeEmpty?: boolean
5146
5155
  includeDeleted?: boolean
5156
+ namespace?: string | null
5147
5157
  query?: ProductQueryRequest["query"] & {
5148
5158
  facetEquals?: Record<string, JsonValue | JsonValue[]>
5149
5159
  }
@@ -5182,6 +5192,7 @@ interface FacetListParams {
5182
5192
  includeDeleted?: boolean
5183
5193
  kind?: "system" | "custom"
5184
5194
  reserved?: boolean
5195
+ namespace?: string
5185
5196
  }
5186
5197
  ```
5187
5198
 
@@ -5189,6 +5200,14 @@ interface FacetListParams {
5189
5200
  ```typescript
5190
5201
  interface PublicFacetListParams {
5191
5202
  includeValues?: boolean
5203
+ namespace?: string
5204
+ }
5205
+ ```
5206
+
5207
+ **FacetNamespaceListResponse** (interface)
5208
+ ```typescript
5209
+ interface FacetNamespaceListResponse {
5210
+ namespaces: string[]
5192
5211
  }
5193
5212
  ```
5194
5213
 
@@ -8619,6 +8638,9 @@ Retrieve a collection by its shortId (public endpoint).
8619
8638
  **getByHub**() → `Promise<CollectionResponse>`
8620
8639
  Resolve the collection for the current Hub domain (public endpoint). The server derives the requesting domain from the request headers (`X-Source-Domain` / `X-Forwarded-Host` / `Host`), so no identifier is passed — this is the call a Hub frontend makes on load to find out which collection it is serving, whether it's reached via `{brand}.mysmartlinks.app` or a bring-your-own custom domain (e.g. `hub.acme.com`).
8621
8640
 
8641
+ **getByDomain**(domain: string) → `Promise<CollectionResponse>`
8642
+ Resolve the collection for an explicit Hub domain (public endpoint). Unlike {@link getByHub}, the domain is passed explicitly rather than derived from request headers — use this for raw/cross-origin calls where the Hub frontend knows its own hostname (e.g. "erbauer.mysmartlinks.app").
8643
+
8622
8644
  **checkHubAvailability**(collectionId: string, name: string) → `Promise<HubAvailabilityResponse>`
8623
8645
  Check whether a Hub subdomain name is available to claim (admin only).
8624
8646
 
@@ -8942,6 +8964,8 @@ Delete a crate for a collection (admin only). This performs a soft delete. ```ty
8942
8964
  **query**(collectionId: string,
8943
8965
  body: FacetQueryRequest) → `Promise<FacetQueryResponse>`
8944
8966
 
8967
+ **namespaces**(collectionId: string) → `Promise<FacetNamespaceListResponse>`
8968
+
8945
8969
  **publicList**(collectionId: string,
8946
8970
  params?: PublicFacetListParams) → `Promise<FacetListResponse>`
8947
8971
 
@@ -8959,6 +8983,8 @@ Delete a crate for a collection (admin only). This performs a soft delete. ```ty
8959
8983
  **publicQuery**(collectionId: string,
8960
8984
  body: FacetQueryRequest) → `Promise<FacetQueryResponse>`
8961
8985
 
8986
+ **publicNamespaces**(collectionId: string) → `Promise<FacetNamespaceListResponse>`
8987
+
8962
8988
  ### form
8963
8989
 
8964
8990
  **get**(collectionId: string, formId: string, admin?: boolean) → `Promise<any>`
@@ -42,6 +42,21 @@ includeValues?: boolean
42
42
  includeDeleted?: boolean
43
43
  kind?: 'system' | 'custom'
44
44
  reserved?: boolean
45
+ namespace?: string
46
+ ```
47
+
48
+ When `namespace` is provided, returns facets matching that namespace plus global facets (`namespace: null`). Omit the param to return all facets.
49
+
50
+ ### List namespaces
51
+
52
+ ```ts
53
+ GET /api/v1/admin/collection/:collectionId/facets/namespaces
54
+ ```
55
+
56
+ Returns all distinct namespaces in use for the collection (excludes globals).
57
+
58
+ ```ts
59
+ { namespaces: string[] }
45
60
  ```
46
61
 
47
62
  ### Create facet definition
@@ -50,6 +65,8 @@ reserved?: boolean
50
65
  POST /api/v1/admin/collection/:collectionId/facets
51
66
  ```
52
67
 
68
+ Pass `namespace` in the body to scope the facet to a domain (e.g. `"dpp"`, `"nutrition"`). Omit it to create a global facet.
69
+
53
70
  ### Get facet definition
54
71
 
55
72
  ```ts
@@ -146,6 +163,8 @@ Supported query filters now:
146
163
  - `tags`
147
164
  - `facetEquals`
148
165
 
166
+ Body also accepts `namespace` (optional) to scope aggregation to a namespace plus global facets.
167
+
149
168
  ## Public endpoints
150
169
 
151
170
  ### List facet definitions
@@ -158,6 +177,21 @@ Optional query params:
158
177
 
159
178
  ```ts
160
179
  includeValues?: boolean
180
+ namespace?: string
181
+ ```
182
+
183
+ When `namespace` is provided, returns facets matching that namespace plus global facets (`namespace: null`). Omit the param to return all facets.
184
+
185
+ ### List namespaces
186
+
187
+ ```ts
188
+ GET /api/v1/public/collection/:collectionId/facets/namespaces
189
+ ```
190
+
191
+ Returns all distinct namespaces in use for the collection (excludes globals).
192
+
193
+ ```ts
194
+ { namespaces: string[] }
161
195
  ```
162
196
 
163
197
  ### Get facet definition
@@ -215,6 +249,7 @@ export interface FacetDefinition {
215
249
  key: string
216
250
  name: string
217
251
  description?: string | null
252
+ namespace?: string | null
218
253
  cardinality: 'single' | 'multi'
219
254
  kind: 'system' | 'custom'
220
255
  hierarchical: boolean
@@ -230,6 +265,7 @@ export interface FacetDefinitionWriteInput {
230
265
  key?: string
231
266
  name: string
232
267
  description?: string | null
268
+ namespace?: string | null
233
269
  cardinality?: 'single' | 'multi'
234
270
  kind?: 'system' | 'custom'
235
271
  hierarchical?: boolean
@@ -305,6 +341,7 @@ export interface FacetQueryRequest {
305
341
  facetKeys?: string[]
306
342
  includeEmpty?: boolean
307
343
  includeDeleted?: boolean
344
+ namespace?: string | null
308
345
  query?: {
309
346
  search?: string
310
347
  status?: string[]
@@ -326,6 +363,10 @@ export interface FacetBucket {
326
363
  count: number
327
364
  }
328
365
 
366
+ export interface FacetNamespaceListResponse {
367
+ namespaces: string[]
368
+ }
369
+
329
370
  export interface FacetQueryResponse {
330
371
  items: Array<{
331
372
  facet: FacetDefinition
@@ -344,4 +385,5 @@ export interface FacetQueryResponse {
344
385
  - treat facet definitions and facet values as collection-scoped resources
345
386
  - use the facet API to manage definitions and values
346
387
  - use product read/write routes to assign facet data onto products
347
- - treat `label` and `category` as reserved system facets when present
388
+ - treat `label` and `category` as reserved system facets when present
389
+ - facets with `namespace: null` are global and appear in all contexts; namespaced facets belong to a specific domain (e.g. `"dpp"`, `"nutrition"`)
package/docs/ai.md CHANGED
@@ -251,6 +251,100 @@ const response = await ai.chat.responses.create('my-collection', {
251
251
  console.log(response.output);
252
252
  ```
253
253
 
254
+ ### Recommended Models
255
+
256
+ For agentic workflows on `v1/responses`, GPT-5.6 ships in three tiers. Pass either the full model
257
+ id (`openai/gpt-5.6-sol`) or the shorthand tier alias (`'cheap'`, `'balanced'`, `'premium'`) as
258
+ `model` — both resolve through the same server-side model registry.
259
+
260
+ | Tier | Model | Alias | Use for |
261
+ |------|-------|-------|---------|
262
+ | Cheapest (default) | `openai/gpt-5.6-luna` | `'cheap'` / omit `model` | Everyday chat, high-volume/simple turns |
263
+ | Balanced | `openai/gpt-5.6-terra` | `'balanced'` | Admin agent / tool-heavy setup workflows (route default) |
264
+ | Flagship | `openai/gpt-5.6-sol` | `'premium'` | Most demanding reasoning, coding, and multi-step tool use |
265
+
266
+ Every tier supports function/tool calling, Programmatic Tool Calling, and Multi-agent (see below), and all
267
+ three accept `service_tier: 'flex'` (≈50% cheaper, Batch-API rates, slower) or `'priority'` (premium, guaranteed
268
+ throughput) alongside the default `'standard'` tier. Pass it straight through in the request body:
269
+
270
+ ```typescript
271
+ const response = await ai.chat.responses.create('my-collection', {
272
+ model: 'balanced',
273
+ input: 'Summarize this week\'s ingested documents.',
274
+ service_tier: 'flex' // non-interactive/background work: cheaper, but can take minutes
275
+ });
276
+ ```
277
+
278
+ Flex requests run noticeably slower — reserve `flex` for non-production/background work (batch enrichment,
279
+ evaluations, async jobs), not user-facing chat turns. The server already raises its own timeout to 15
280
+ minutes for any request with `service_tier: 'flex'`, matching OpenAI's guidance — nothing to configure on
281
+ the client. On a `429` ("resource unavailable") the request wasn't charged; retry with backoff or drop
282
+ `service_tier` (or set it to `'auto'`) to fall back to standard processing.
283
+
284
+ ### Programmatic Tool Calling
285
+
286
+ Lets the model write a short in-memory program that orchestrates several tool calls (filtering,
287
+ looping, aggregating) before handing back one result, instead of a full message round-trip per
288
+ call. Add the hosted `programmatic_tool_calling` tool, and mark each function tool the program is
289
+ allowed to invoke with `allowed_callers: ['programmatic']`:
290
+
291
+ ```typescript
292
+ const response = await ai.chat.responses.create('my-collection', {
293
+ model: 'balanced',
294
+ input: 'Compare inventory with demand for every SKU in this collection.',
295
+ tools: [
296
+ {
297
+ type: 'function',
298
+ name: 'get_inventory',
299
+ description: 'Return available_units for a sku',
300
+ parameters: { type: 'object', properties: { sku: { type: 'string' } }, required: ['sku'] },
301
+ output_schema: { type: 'object', properties: { sku: { type: 'string' }, available_units: { type: 'number' } } },
302
+ allowed_callers: ['programmatic']
303
+ },
304
+ {
305
+ type: 'function',
306
+ name: 'get_demand',
307
+ description: 'Return requested_units for a sku',
308
+ parameters: { type: 'object', properties: { sku: { type: 'string' } }, required: ['sku'] },
309
+ output_schema: { type: 'object', properties: { sku: { type: 'string' }, requested_units: { type: 'number' } } },
310
+ allowed_callers: ['programmatic']
311
+ },
312
+ { type: 'programmatic_tool_calling' }
313
+ ]
314
+ });
315
+ ```
316
+
317
+ The response's `output` array can include a `program` item (the generated code), one
318
+ `function_call` item per program-issued call (tagged with `caller: { type: 'program', caller_id }`),
319
+ and a `program_output` item with the program's final `result`/`status`. Execute the `function_call`
320
+ items as normal and send results back keyed by their `call_id` on the next turn.
321
+
322
+ ### Multi-agent (subagents)
323
+
324
+ Lets the root agent spawn a tree of subagents that run in parallel and get synthesized back into
325
+ one response — useful for tasks that split cleanly into independent workstreams (e.g. research +
326
+ draft + review). Enable it by setting `multi_agent.enabled: true` — that's the entire contract on
327
+ your end; nothing else to configure or pass.
328
+
329
+ This is upstream beta functionality (OpenAI may still be limiting it to certain accounts/rollout),
330
+ so treat behavior and availability as subject to change until it's GA.
331
+
332
+ ```typescript
333
+ const response = await ai.chat.responses.create('my-collection', {
334
+ model: 'premium', // Sol recommended for the root agent when spawning subagents
335
+ input: 'Research three competitor loyalty programs, then draft a comparison summary.',
336
+ multi_agent: { enabled: true, max_concurrent_subagents: 3 }
337
+ });
338
+ ```
339
+
340
+ Subagent output arrives as additional items in `output`, each tagged `agent: { agent_name: '/root/<name>' }`
341
+ (root agent output uses `/root`). Notes/limits carried over from OpenAI's beta:
342
+
343
+ - `max_concurrent_subagents` defaults to `3`
344
+ - `reasoning.summary` and `max_tool_calls` are not supported while multi-agent is enabled
345
+ - Streaming is not supported while multi-agent is enabled — the SDK throws if you pass both
346
+ `stream: true` and `multi_agent.enabled: true`
347
+
254
348
  ---
255
349
 
256
350
  ## Chat Completions
package/openapi.yaml CHANGED
@@ -3429,6 +3429,11 @@ paths:
3429
3429
  required: false
3430
3430
  schema:
3431
3431
  type: boolean
3432
+ - name: namespace
3433
+ in: query
3434
+ required: false
3435
+ schema:
3436
+ type: string
3432
3437
  responses:
3433
3438
  200:
3434
3439
  description: Success
@@ -3474,6 +3479,33 @@ paths:
3474
3479
  application/json:
3475
3480
  schema:
3476
3481
  $ref: "#/components/schemas/FacetDefinitionWriteInput"
3482
+ /admin/collection/{collectionId}/facets/namespaces:
3483
+ get:
3484
+ tags:
3485
+ - facets
3486
+ summary: facets.namespaces
3487
+ operationId: facets_namespaces
3488
+ security:
3489
+ - bearerAuth: []
3490
+ parameters:
3491
+ - name: collectionId
3492
+ in: path
3493
+ required: true
3494
+ schema:
3495
+ type: string
3496
+ responses:
3497
+ 200:
3498
+ description: Success
3499
+ content:
3500
+ application/json:
3501
+ schema:
3502
+ $ref: "#/components/schemas/FacetNamespaceListResponse"
3503
+ 400:
3504
+ description: Bad request
3505
+ 401:
3506
+ description: Unauthorized
3507
+ 404:
3508
+ description: Not found
3477
3509
  /admin/collection/{collectionId}/facets/query:
3478
3510
  post:
3479
3511
  tags:
@@ -9316,6 +9348,32 @@ paths:
9316
9348
  application/json:
9317
9349
  schema:
9318
9350
  $ref: "#/components/schemas/RequestUploadTokenOptions"
9351
+ /public/collection/by-domain/{domain}:
9352
+ get:
9353
+ tags:
9354
+ - collection
9355
+ summary: Resolve the collection for an explicit Hub domain (public endpoint).
9356
+ operationId: collection_getByDomain
9357
+ security: []
9358
+ parameters:
9359
+ - name: domain
9360
+ in: path
9361
+ required: true
9362
+ schema:
9363
+ type: string
9364
+ responses:
9365
+ 200:
9366
+ description: Success
9367
+ content:
9368
+ application/json:
9369
+ schema:
9370
+ $ref: "#/components/schemas/CollectionResponse"
9371
+ 400:
9372
+ description: Bad request
9373
+ 401:
9374
+ description: Unauthorized
9375
+ 404:
9376
+ description: Not found
9319
9377
  /public/collection/getByHub:
9320
9378
  get:
9321
9379
  tags:
@@ -10811,6 +10869,11 @@ paths:
10811
10869
  required: false
10812
10870
  schema:
10813
10871
  type: boolean
10872
+ - name: namespace
10873
+ in: query
10874
+ required: false
10875
+ schema:
10876
+ type: string
10814
10877
  responses:
10815
10878
  200:
10816
10879
  description: Success
@@ -10824,6 +10887,32 @@ paths:
10824
10887
  description: Unauthorized
10825
10888
  404:
10826
10889
  description: Not found
10890
+ /public/collection/{collectionId}/facets/namespaces:
10891
+ get:
10892
+ tags:
10893
+ - facets
10894
+ summary: facets.publicNamespaces
10895
+ operationId: facets_publicNamespaces
10896
+ security: []
10897
+ parameters:
10898
+ - name: collectionId
10899
+ in: path
10900
+ required: true
10901
+ schema:
10902
+ type: string
10903
+ responses:
10904
+ 200:
10905
+ description: Success
10906
+ content:
10907
+ application/json:
10908
+ schema:
10909
+ $ref: "#/components/schemas/FacetNamespaceListResponse"
10910
+ 400:
10911
+ description: Bad request
10912
+ 401:
10913
+ description: Unauthorized
10914
+ 404:
10915
+ description: Not found
10827
10916
  /public/collection/{collectionId}/facets/query:
10828
10917
  post:
10829
10918
  tags:
@@ -10879,6 +10968,11 @@ paths:
10879
10968
  required: false
10880
10969
  schema:
10881
10970
  type: boolean
10971
+ - name: namespace
10972
+ in: query
10973
+ required: false
10974
+ schema:
10975
+ type: string
10882
10976
  responses:
10883
10977
  200:
10884
10978
  description: Success
@@ -13870,6 +13964,16 @@ components:
13870
13964
  parameters:
13871
13965
  type: object
13872
13966
  additionalProperties: true
13967
+ output_schema:
13968
+ type: object
13969
+ additionalProperties: true
13970
+ allowed_callers:
13971
+ type: array
13972
+ items:
13973
+ type: string
13974
+ enum:
13975
+ - assistant
13976
+ - programmatic
13873
13977
  required:
13874
13978
  - type
13875
13979
  ResponseInputItem:
@@ -13958,6 +14062,22 @@ components:
13958
14062
  type: string
13959
14063
  prompt_cache_key:
13960
14064
  type: string
14065
+ multi_agent:
14066
+ type: object
14067
+ additionalProperties: true
14068
+ enabled:
14069
+ type: boolean
14070
+ max_concurrent_subagents:
14071
+ type: number
14072
+ service_tier:
14073
+ type: string
14074
+ enum:
14075
+ - auto
14076
+ - standard
14077
+ - flex
14078
+ - priority
14079
+ required:
14080
+ - enabled
13961
14081
  ResponsesResult:
13962
14082
  type: object
13963
14083
  properties:
@@ -20697,6 +20817,8 @@ components:
20697
20817
  type: string
20698
20818
  description:
20699
20819
  type: string
20820
+ namespace:
20821
+ type: string
20700
20822
  cardinality:
20701
20823
  type: object
20702
20824
  additionalProperties: true
@@ -20792,6 +20914,8 @@ components:
20792
20914
  type: string
20793
20915
  description:
20794
20916
  type: string
20917
+ namespace:
20918
+ type: string
20795
20919
  cardinality:
20796
20920
  type: object
20797
20921
  additionalProperties: true
@@ -20887,6 +21011,8 @@ components:
20887
21011
  type: boolean
20888
21012
  includeDeleted:
20889
21013
  type: boolean
21014
+ namespace:
21015
+ type: string
20890
21016
  query:
20891
21017
  type: object
20892
21018
  additionalProperties: true
@@ -20954,11 +21080,24 @@ components:
20954
21080
  additionalProperties: true
20955
21081
  reserved:
20956
21082
  type: boolean
21083
+ namespace:
21084
+ type: string
20957
21085
  PublicFacetListParams:
20958
21086
  type: object
20959
21087
  properties:
20960
21088
  includeValues:
20961
21089
  type: boolean
21090
+ namespace:
21091
+ type: string
21092
+ FacetNamespaceListResponse:
21093
+ type: object
21094
+ properties:
21095
+ namespaces:
21096
+ type: array
21097
+ items:
21098
+ type: string
21099
+ required:
21100
+ - namespaces
20962
21101
  FacetGetParams:
20963
21102
  type: object
20964
21103
  properties:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proveanything/smartlinks",
3
- "version": "1.15.1",
3
+ "version": "1.15.3",
4
4
  "description": "Official JavaScript/TypeScript SDK for the Smartlinks API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",