@vectros-ai/mcp-server 0.18.1 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -16,9 +16,11 @@ __export(api_exports, {
16
16
  BatchWriteRequest: () => BatchWriteRequest,
17
17
  BatchWriteResult: () => BatchWriteResult,
18
18
  ChatMessage: () => ChatMessage,
19
+ ChatRequest: () => ChatRequest,
19
20
  ConflictError: () => ConflictError,
20
21
  ContentDeltaEvent: () => ContentDeltaEvent,
21
22
  ContentTooLargeError: () => ContentTooLargeError,
23
+ DocumentAskRequest: () => DocumentAskRequest,
22
24
  DocumentContextEvent: () => DocumentContextEvent,
23
25
  DocumentLookupRequest: () => DocumentLookupRequest,
24
26
  DocumentPatchRequest: () => DocumentPatchRequest,
@@ -49,8 +51,10 @@ __export(api_exports, {
49
51
  NotImplementedError: () => NotImplementedError,
50
52
  PaymentRequiredError: () => PaymentRequiredError,
51
53
  PingResponse: () => PingResponse,
54
+ RagRequest: () => RagRequest,
52
55
  RagSearch: () => RagSearch,
53
56
  ReadAccessLogResponse: () => ReadAccessLogResponse,
57
+ ReasoningDeltaEvent: () => ReasoningDeltaEvent,
54
58
  RecordLookupRequest: () => RecordLookupRequest,
55
59
  RecordRequest: () => RecordRequest,
56
60
  RecordResponse: () => RecordResponse,
@@ -406,7 +410,33 @@ var ListUsersRequestOrder = {
406
410
  Asc: "asc",
407
411
  Desc: "desc"
408
412
  };
413
+ var ChatRequest;
414
+ ((ChatRequest2) => {
415
+ ChatRequest2.Reasoning = {
416
+ Omit: "omit",
417
+ Stream: "stream"
418
+ };
419
+ })(ChatRequest || (ChatRequest = {}));
420
+ var DocumentAskRequest;
421
+ ((DocumentAskRequest2) => {
422
+ DocumentAskRequest2.Reasoning = {
423
+ Omit: "omit",
424
+ Stream: "stream"
425
+ };
426
+ })(DocumentAskRequest || (DocumentAskRequest = {}));
427
+ var RagRequest;
428
+ ((RagRequest2) => {
429
+ RagRequest2.Reasoning = {
430
+ Omit: "omit",
431
+ Stream: "stream"
432
+ };
433
+ })(RagRequest || (RagRequest = {}));
409
434
  var inference_exports = {};
435
+ __export(inference_exports, {
436
+ ChatRequest: () => ChatRequest,
437
+ DocumentAskRequest: () => DocumentAskRequest,
438
+ RagRequest: () => RagRequest
439
+ });
410
440
  var BatchWriteRequest;
411
441
  ((BatchWriteRequest2) => {
412
442
  BatchWriteRequest2.Atomicity = {
@@ -679,6 +709,12 @@ var ReadAccessLogResponse;
679
709
  Rag: "rag"
680
710
  };
681
711
  })(ReadAccessLogResponse || (ReadAccessLogResponse = {}));
712
+ var ReasoningDeltaEvent;
713
+ ((ReasoningDeltaEvent2) => {
714
+ ReasoningDeltaEvent2.Event = {
715
+ ReasoningDelta: "reasoning_delta"
716
+ };
717
+ })(ReasoningDeltaEvent || (ReasoningDeltaEvent = {}));
682
718
  var RecordRequest;
683
719
  ((RecordRequest2) => {
684
720
  RecordRequest2.Status = {
@@ -2573,7 +2609,7 @@ var AuthClient = class {
2573
2609
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/admin/keys/scoped");
2574
2610
  }
2575
2611
  /**
2576
- * Creates a scoped API key (an `ssk_*` secret) that inherits its permissions from an existing access profile in your account. The call is idempotent on the combination of tenant, context, user, and key name: re-issuing the same request returns the existing key WITHOUT re-disclosing its raw secret. The raw key is returned ONLY in this response — store it securely, as it cannot be retrieved again. Requires the `keys:c` scope. If you use a scoped credential, `keys:c` alone is not sufficient: because the minted key is durably bound to the profile you name, the profile's effective scopes may not exceed your own, and you may only mint against a profile whose `identityOverrides` values your own identity holds. Minting a key bound to your OWN principal needs nothing further; minting one bound to a DIFFERENT principal additionally requires the `delegate-mint` capability (`granted_capabilities`) on your credential — without it the request is refused. A root API key (`sk_`) is exempt from all three bounds. The profile you name must be `active` AND the user you name must not be `SUSPENDED`: either is refused with `409`, and no root exemption applies to that. Both refusals stop ISSUANCE only. Suspending the profile additionally stops credentials already bound to it, within about five minutes; suspending the user does not stop their existing keys at all. A `PENDING` user is fine.
2612
+ * Creates a scoped API key (an `ssk_*` secret) that inherits its permissions from an existing access profile in your account. The call is idempotent on the combination of tenant, context, user, and key name: re-issuing the same request returns the existing key WITHOUT re-disclosing its raw secret. The raw key is returned ONLY in this response — store it securely, as it cannot be retrieved again. Requires the `keys:c` scope. If you use a scoped credential, `keys:c` alone is not sufficient: because the minted key is durably bound to the profile you name, the profile's effective scopes may not exceed your own, and you may only mint against a profile whose `identityOverrides` values your own identity holds. Minting a key bound to your OWN principal needs nothing further; minting one bound to a DIFFERENT principal additionally requires the `delegate-mint` capability (`granted_capabilities`) on your credential — without it the request is refused. A root API key (`sk_`) is exempt from all three bounds. The profile you name must be `active` AND the user you name must not be `SUSPENDED`: either is refused with `409`, and no root exemption applies to that. Both refusals stop ISSUANCE only. Suspending the profile or the user additionally stops credentials already bound to it, within about five minutes. A `PENDING` user is fine.
2577
2613
  *
2578
2614
  * @param {Vectros.CreateScopedKeyRequest} request
2579
2615
  * @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -2916,6 +2952,7 @@ var AuthClient = class {
2916
2952
  * @throws {@link Vectros.BadRequestError}
2917
2953
  * @throws {@link Vectros.ForbiddenError}
2918
2954
  * @throws {@link Vectros.NotFoundError}
2955
+ * @throws {@link Vectros.ConflictError}
2919
2956
  * @throws {@link Vectros.TooManyRequestsError}
2920
2957
  *
2921
2958
  * @example
@@ -2968,6 +3005,8 @@ var AuthClient = class {
2968
3005
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
2969
3006
  case 404:
2970
3007
  throw new NotFoundError(_response.error.body, _response.rawResponse);
3008
+ case 409:
3009
+ throw new ConflictError(_response.error.body, _response.rawResponse);
2971
3010
  case 429:
2972
3011
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
2973
3012
  default:
@@ -3051,6 +3090,8 @@ var AuthClient = class {
3051
3090
  * @throws {@link Vectros.BadRequestError}
3052
3091
  * @throws {@link Vectros.PaymentRequiredError}
3053
3092
  * @throws {@link Vectros.ForbiddenError}
3093
+ * @throws {@link Vectros.NotFoundError}
3094
+ * @throws {@link Vectros.ConflictError}
3054
3095
  * @throws {@link Vectros.TooManyRequestsError}
3055
3096
  *
3056
3097
  * @example
@@ -3103,6 +3144,10 @@ var AuthClient = class {
3103
3144
  throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
3104
3145
  case 403:
3105
3146
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
3147
+ case 404:
3148
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
3149
+ case 409:
3150
+ throw new ConflictError(_response.error.body, _response.rawResponse);
3106
3151
  case 429:
3107
3152
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
3108
3153
  default:
@@ -3191,6 +3236,7 @@ var AuthClient = class {
3191
3236
  * @throws {@link Vectros.BadRequestError}
3192
3237
  * @throws {@link Vectros.ForbiddenError}
3193
3238
  * @throws {@link Vectros.NotFoundError}
3239
+ * @throws {@link Vectros.ConflictError}
3194
3240
  * @throws {@link Vectros.TooManyRequestsError}
3195
3241
  *
3196
3242
  * @example
@@ -3247,6 +3293,8 @@ var AuthClient = class {
3247
3293
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
3248
3294
  case 404:
3249
3295
  throw new NotFoundError(_response.error.body, _response.rawResponse);
3296
+ case 409:
3297
+ throw new ConflictError(_response.error.body, _response.rawResponse);
3250
3298
  case 429:
3251
3299
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
3252
3300
  default:
@@ -3337,6 +3385,7 @@ var AuthClient = class {
3337
3385
  * @throws {@link Vectros.BadRequestError}
3338
3386
  * @throws {@link Vectros.ForbiddenError}
3339
3387
  * @throws {@link Vectros.NotFoundError}
3388
+ * @throws {@link Vectros.ConflictError}
3340
3389
  * @throws {@link Vectros.TooManyRequestsError}
3341
3390
  *
3342
3391
  * @example
@@ -3387,6 +3436,8 @@ var AuthClient = class {
3387
3436
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
3388
3437
  case 404:
3389
3438
  throw new NotFoundError(_response.error.body, _response.rawResponse);
3439
+ case 409:
3440
+ throw new ConflictError(_response.error.body, _response.rawResponse);
3390
3441
  case 429:
3391
3442
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
3392
3443
  default:
@@ -3533,13 +3584,14 @@ var AuthClient = class {
3533
3584
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/app-contexts/{contextId}");
3534
3585
  }
3535
3586
  /**
3536
- * Updates an app context. This is a partial update: any field you omit (or send as null) keeps its existing value. The `contextId` is immutable and is taken from the URL path, so any `contextId` in the request body is ignored. Patchable fields: `name`, `description`, `companyName`; the per-principal metering trio (`meteringAxis`, `principalBurstLimit`, `principalUsageCap` — only takes effect for a partner with the corresponding account-level feature enabled); `readAccessLogDefault` (the PHI read-access-logging context default); and `identityProjectionClaims` (requires the platform provisioning capability on top of the ordinary scope below — see its own field description). Requires the `app-contexts:u` scope.
3587
+ * Updates an app context. This is a partial update: any field you omit (or send as null) keeps its existing value. The `contextId` is immutable and is taken from the URL path, so any `contextId` in the request body is ignored. Patchable fields: `name`, `description`, `companyName`; the per-principal metering trio (`meteringAxis`, `principalBurstLimit`, `principalUsageCap` — only takes effect for an account with the corresponding feature enabled); `readAccessLogDefault` (the PHI read-access-logging context default); and `identityProjectionClaims` (requires the platform provisioning capability on top of the ordinary scope below — see its own field description). Requires the `app-contexts:u` scope.
3537
3588
  *
3538
3589
  * @param {Vectros.UpdateAppContextRequest} request
3539
3590
  * @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
3540
3591
  *
3541
3592
  * @throws {@link Vectros.ForbiddenError}
3542
3593
  * @throws {@link Vectros.NotFoundError}
3594
+ * @throws {@link Vectros.ConflictError}
3543
3595
  * @throws {@link Vectros.TooManyRequestsError}
3544
3596
  *
3545
3597
  * @example
@@ -3588,6 +3640,8 @@ var AuthClient = class {
3588
3640
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
3589
3641
  case 404:
3590
3642
  throw new NotFoundError(_response.error.body, _response.rawResponse);
3643
+ case 409:
3644
+ throw new ConflictError(_response.error.body, _response.rawResponse);
3591
3645
  case 429:
3592
3646
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
3593
3647
  default:
@@ -3744,6 +3798,7 @@ var AuthClient = class {
3744
3798
  *
3745
3799
  * @throws {@link Vectros.ForbiddenError}
3746
3800
  * @throws {@link Vectros.NotFoundError}
3801
+ * @throws {@link Vectros.ConflictError}
3747
3802
  * @throws {@link Vectros.TooManyRequestsError}
3748
3803
  *
3749
3804
  * @example
@@ -3796,6 +3851,8 @@ var AuthClient = class {
3796
3851
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
3797
3852
  case 404:
3798
3853
  throw new NotFoundError(_response.error.body, _response.rawResponse);
3854
+ case 409:
3855
+ throw new ConflictError(_response.error.body, _response.rawResponse);
3799
3856
  case 429:
3800
3857
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
3801
3858
  default:
@@ -3821,6 +3878,7 @@ var AuthClient = class {
3821
3878
  *
3822
3879
  * @throws {@link Vectros.ForbiddenError}
3823
3880
  * @throws {@link Vectros.NotFoundError}
3881
+ * @throws {@link Vectros.ConflictError}
3824
3882
  * @throws {@link Vectros.TooManyRequestsError}
3825
3883
  *
3826
3884
  * @example
@@ -3863,6 +3921,8 @@ var AuthClient = class {
3863
3921
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
3864
3922
  case 404:
3865
3923
  throw new NotFoundError(_response.error.body, _response.rawResponse);
3924
+ case 409:
3925
+ throw new ConflictError(_response.error.body, _response.rawResponse);
3866
3926
  case 429:
3867
3927
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
3868
3928
  default:
@@ -4144,6 +4204,7 @@ var AuthClient = class {
4144
4204
  * @throws {@link Vectros.BadRequestError}
4145
4205
  * @throws {@link Vectros.ForbiddenError}
4146
4206
  * @throws {@link Vectros.NotFoundError}
4207
+ * @throws {@link Vectros.ConflictError}
4147
4208
  * @throws {@link Vectros.TooManyRequestsError}
4148
4209
  *
4149
4210
  * @example
@@ -4190,6 +4251,8 @@ var AuthClient = class {
4190
4251
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
4191
4252
  case 404:
4192
4253
  throw new NotFoundError(_response.error.body, _response.rawResponse);
4254
+ case 409:
4255
+ throw new ConflictError(_response.error.body, _response.rawResponse);
4193
4256
  case 429:
4194
4257
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
4195
4258
  default:
@@ -4203,7 +4266,7 @@ var AuthClient = class {
4203
4266
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/auth/issuers/{issuerId}");
4204
4267
  }
4205
4268
  /**
4206
- * Deregisters a trusted third-party IdP issuer. Requires a root API key or the bootstrap's provisioning capability. A credential confined to one app context may only deregister an issuer registered in that context; naming one registered in another context returns 404, identically to a nonexistent issuerId. A root API key may deregister any issuer. Refused if any user account was ever created or matched via this issuer (by a prior self-signup or accepted invite, through `POST /v1/auth/token/exchange`) — that access cannot be silently orphaned. This is unconditional on the affected users' `status`: suspending them first does not lift the refusal. **A bound registration cannot be replaced, self-service, within its own app context**: registering a replacement issuer under a different issuerId in the SAME context also fails, because the context's one-active-issuer claim is released only when THIS registration is deleted. Two real options: suspend this issuer (stops new exchanges immediately) and register a replacement under a DIFFERENT app context — note that targets a different context, so this context's existing users/roles/access profiles are not carried over; or contact your platform operator, who can force-release this registration so a replacement may be registered in the SAME context under a new issuerId. **The operator path is not a lighter-weight alternative to the first — it PERMANENTLY RETIRES this issuerId and leaves every bound user unable to ever exchange through it again; it does not preserve continuity for them any better than registering under a different context does.** An issuer that has never been used for an exchange (no bound users yet) can always be deregistered.
4269
+ * Deregisters a trusted third-party IdP issuer. Requires a root API key or the bootstrap's provisioning capability. A credential confined to one app context may only deregister an issuer registered in that context; naming one registered in another context returns 404, identically to a nonexistent issuerId. A root API key may deregister any issuer. Refused if any user account was ever created or matched via this issuer (by a prior self-signup or accepted invite, through `POST /v1/auth/token/exchange`) — that access cannot be silently orphaned. This is unconditional on the affected users' `status`: suspending them first does not lift the refusal. **A bound registration cannot be replaced, self-service, within its own app context**: registering a replacement issuer under a different issuerId in the SAME context also fails, because the context's one-active-issuer claim is released only when THIS registration is deleted. Two real options: suspend this issuer (stops new exchanges immediately) and register a replacement under a DIFFERENT app context — note that targets a different context, so this context's existing users/roles/access profiles are not carried over; or contact support, who can force-release this registration so a replacement may be registered in the SAME context under a new issuerId. **The support path is not a lighter-weight alternative to the first — it PERMANENTLY RETIRES this issuerId and leaves every bound user unable to ever exchange through it again; it does not preserve continuity for them any better than registering under a different context does.** An issuer that has never been used for an exchange (no bound users yet) can always be deregistered.
4207
4270
  *
4208
4271
  * @param {Vectros.DeleteIssuerRequest} request
4209
4272
  * @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -4329,7 +4392,7 @@ var AuthClient = class {
4329
4392
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/issuers");
4330
4393
  }
4331
4394
  /**
4332
- * Registers a trusted third-party IdP issuer that BYO-IdP token exchange (`POST /v1/auth/token/exchange`) may accept a `subject_token` from. Requires a root API key or the CLI bootstrap's provisioning capability — never an ordinary partner-grantable scope. A credential authorized only via the provisioning capability may register only against the app context it is bound to; naming a different one returns 403. A root API key is unaffected and may register against any of its contexts. A registration without `restrictedToDomain` is created `pending_verification` with a one-time challenge (`verificationClaim`, `verificationNonce`, `verificationExpiresAt`) and accepts no token until you prove you control the issuer with `POST /v1/auth/issuers/{issuerId}/verify`; it claims no `(issuer, audience)` pair until then, so registering never reveals whether another tenant holds one. A registration scoped to an already-verified domain with `restrictedToDomain` is `active` at once. Idempotent by `issuerId` within your tenant. If `issuerId` collides with a registration owned by a different app context than the one you're confined to, the request fails with 400 rather than returning that context's configuration. An app context may have at most one active issuer — deregister the existing one first if you need to replace it. One issuer MAY serve several contexts today, each via its own registration row with a distinct `audience`. Optionally name `restrictedToDomain` to scope this registration's (issuer, audience) uniqueness to a specific VERIFIED domain rather than the bare pair — see that field's own description. A domain-scoped registration proves control of the DOMAIN, not of the issuer itself: it routes only tokens carrying that domain's `hd` claim.
4395
+ * Registers a trusted third-party IdP issuer that BYO-IdP token exchange (`POST /v1/auth/token/exchange`) may accept a `subject_token` from. Requires a root API key or the CLI bootstrap's provisioning capability — never an ordinary grantable scope. A credential authorized only via the provisioning capability may register only against the app context it is bound to; naming a different one returns 403. A root API key is unaffected and may register against any of its contexts. A registration without `restrictedToDomain` is created `pending_verification` with a one-time challenge (`verificationClaim`, `verificationNonce`, `verificationExpiresAt`) and accepts no token until you prove you control the issuer with `POST /v1/auth/issuers/{issuerId}/verify`; it claims no `(issuer, audience)` pair until then, so registering never reveals whether another tenant holds one. A registration scoped to an already-verified domain with `restrictedToDomain` is `active` at once. Idempotent by `issuerId` within your tenant. If `issuerId` collides with a registration owned by a different app context than the one you're confined to, the request fails with 400 rather than returning that context's configuration. An app context may have at most one active issuer — deregister the existing one first if you need to replace it. One issuer MAY serve several contexts, each via its own registration row with a distinct `audience`. Optionally name `restrictedToDomain` to scope this registration's (issuer, audience) uniqueness to a specific VERIFIED domain rather than the bare pair — see that field's own description. A domain-scoped registration proves control of the DOMAIN, not of the issuer itself: it routes only tokens carrying that domain's `hd` claim.
4333
4396
  *
4334
4397
  * @param {Vectros.IssuerRequest} request
4335
4398
  * @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -4738,6 +4801,7 @@ var AuthClient = class {
4738
4801
  * @throws {@link Vectros.BadRequestError}
4739
4802
  * @throws {@link Vectros.ForbiddenError}
4740
4803
  * @throws {@link Vectros.NotFoundError}
4804
+ * @throws {@link Vectros.ConflictError}
4741
4805
  * @throws {@link Vectros.TooManyRequestsError}
4742
4806
  *
4743
4807
  * @example
@@ -4785,6 +4849,8 @@ var AuthClient = class {
4785
4849
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
4786
4850
  case 404:
4787
4851
  throw new NotFoundError(_response.error.body, _response.rawResponse);
4852
+ case 409:
4853
+ throw new ConflictError(_response.error.body, _response.rawResponse);
4788
4854
  case 429:
4789
4855
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
4790
4856
  default:
@@ -4884,6 +4950,7 @@ var AuthClient = class {
4884
4950
  * @throws {@link Vectros.UnauthorizedError}
4885
4951
  * @throws {@link Vectros.ForbiddenError}
4886
4952
  * @throws {@link Vectros.NotFoundError}
4953
+ * @throws {@link Vectros.ContentTooLargeError}
4887
4954
  * @throws {@link Vectros.TooManyRequestsError}
4888
4955
  *
4889
4956
  * @example
@@ -4928,6 +4995,8 @@ var AuthClient = class {
4928
4995
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
4929
4996
  case 404:
4930
4997
  throw new NotFoundError(_response.error.body, _response.rawResponse);
4998
+ case 413:
4999
+ throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
4931
5000
  case 429:
4932
5001
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
4933
5002
  default:
@@ -5067,7 +5136,7 @@ var ComplianceClient = class {
5067
5136
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/erasure-requests/{id}");
5068
5137
  }
5069
5138
  /**
5070
- * Submits an asynchronous job to export your account's data, or a single end-subject's data, across the requested contexts. The request returns 202 with an `exportJobId`; poll `GET /v1/admin/export/{id}` until the job completes to obtain a short-lived presigned download URL and a manifest describing the payload. Requires a root API key — a scoped credential is rejected with 403.
5139
+ * Reserved: with a root API key this operation answers `501` and starts no job. The request and response shapes are published so that integrations can be written against them: a request names the contexts, or a single end-subject, to export, and the response carries an `exportJobId` that `GET /v1/admin/export/{id}` reports on. Requires a root API key — a scoped credential is rejected with 403.
5071
5140
  *
5072
5141
  * @param {Vectros.ExportRequest} request
5073
5142
  * @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -5128,7 +5197,7 @@ var ComplianceClient = class {
5128
5197
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/admin/export");
5129
5198
  }
5130
5199
  /**
5131
- * Polls an export job by id. While the job is still running this returns its status only; once it completes, the response also includes a short-lived presigned download URL and a manifest (format version and per-context counts). Requires a root API key.
5200
+ * Reserved: with a root API key this operation answers `501`. Its response shape is the one the export operation above refers to: the job status, and a short-lived presigned download URL and a manifest (format version and per-context counts) for a completed job. Requires a root API key.
5132
5201
  *
5133
5202
  * @param {Vectros.GetExportRequest} request
5134
5203
  * @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -5259,6 +5328,8 @@ var DocumentsClient = class {
5259
5328
  *
5260
5329
  * @throws {@link Vectros.BadRequestError}
5261
5330
  * @throws {@link Vectros.ForbiddenError}
5331
+ * @throws {@link Vectros.NotFoundError}
5332
+ * @throws {@link Vectros.ConflictError}
5262
5333
  * @throws {@link Vectros.TooManyRequestsError}
5263
5334
  *
5264
5335
  * @example
@@ -5310,6 +5381,10 @@ var DocumentsClient = class {
5310
5381
  throw new BadRequestError(_response.error.body, _response.rawResponse);
5311
5382
  case 403:
5312
5383
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
5384
+ case 404:
5385
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
5386
+ case 409:
5387
+ throw new ConflictError(_response.error.body, _response.rawResponse);
5313
5388
  case 429:
5314
5389
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
5315
5390
  default:
@@ -5457,6 +5532,7 @@ var DocumentsClient = class {
5457
5532
  * @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
5458
5533
  *
5459
5534
  * @throws {@link Vectros.NotFoundError}
5535
+ * @throws {@link Vectros.ConflictError}
5460
5536
  * @throws {@link Vectros.TooManyRequestsError}
5461
5537
  *
5462
5538
  * @example
@@ -5496,6 +5572,8 @@ var DocumentsClient = class {
5496
5572
  switch (_response.error.statusCode) {
5497
5573
  case 404:
5498
5574
  throw new NotFoundError(_response.error.body, _response.rawResponse);
5575
+ case 409:
5576
+ throw new ConflictError(_response.error.body, _response.rawResponse);
5499
5577
  case 429:
5500
5578
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
5501
5579
  default:
@@ -5788,7 +5866,7 @@ var DocumentsClient = class {
5788
5866
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/documents/{id}/download");
5789
5867
  }
5790
5868
  /**
5791
- * Returns the document's full text body when it is retained: always available for text-ingested documents, and for file-uploaded documents unless they were uploaded with `storeText=false` (which discards the extracted text once indexing completes — the original file remains available via `GET /{id}/download`). Returns 404 when the document does not exist, its text was not retained, or extraction has not yet completed. Requires the `documents:r` scope.
5869
+ * Returns the document's full text body when it is retained: retained for text-ingested documents, and for file-uploaded documents unless they were uploaded with `storeText=false` (which discards the extracted text once indexing completes — the original file remains available via `GET /v1/documents/{id}/download`). Returns 404 when the document does not exist, its text was not retained, or extraction has not yet completed. Requires the `documents:r` scope.
5792
5870
  *
5793
5871
  * @param {Vectros.GetDocumentTextRequest} request
5794
5872
  * @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -5908,6 +5986,7 @@ var DocumentsClient = class {
5908
5986
  *
5909
5987
  * @throws {@link Vectros.BadRequestError}
5910
5988
  * @throws {@link Vectros.ForbiddenError}
5989
+ * @throws {@link Vectros.ConflictError}
5911
5990
  * @throws {@link Vectros.TooManyRequestsError}
5912
5991
  *
5913
5992
  * @example
@@ -5957,6 +6036,8 @@ var DocumentsClient = class {
5957
6036
  throw new BadRequestError(_response.error.body, _response.rawResponse);
5958
6037
  case 403:
5959
6038
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
6039
+ case 409:
6040
+ throw new ConflictError(_response.error.body, _response.rawResponse);
5960
6041
  case 429:
5961
6042
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
5962
6043
  default:
@@ -6040,6 +6121,8 @@ var FoldersClient = class {
6040
6121
  *
6041
6122
  * @throws {@link Vectros.BadRequestError}
6042
6123
  * @throws {@link Vectros.ForbiddenError}
6124
+ * @throws {@link Vectros.NotFoundError}
6125
+ * @throws {@link Vectros.ConflictError}
6043
6126
  * @throws {@link Vectros.TooManyRequestsError}
6044
6127
  *
6045
6128
  * @example
@@ -6089,6 +6172,10 @@ var FoldersClient = class {
6089
6172
  throw new BadRequestError(_response.error.body, _response.rawResponse);
6090
6173
  case 403:
6091
6174
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
6175
+ case 404:
6176
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
6177
+ case 409:
6178
+ throw new ConflictError(_response.error.body, _response.rawResponse);
6092
6179
  case 429:
6093
6180
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
6094
6181
  default:
@@ -6164,6 +6251,7 @@ var FoldersClient = class {
6164
6251
  *
6165
6252
  * @throws {@link Vectros.ForbiddenError}
6166
6253
  * @throws {@link Vectros.NotFoundError}
6254
+ * @throws {@link Vectros.ConflictError}
6167
6255
  * @throws {@link Vectros.TooManyRequestsError}
6168
6256
  *
6169
6257
  * @example
@@ -6211,6 +6299,8 @@ var FoldersClient = class {
6211
6299
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
6212
6300
  case 404:
6213
6301
  throw new NotFoundError(_response.error.body, _response.rawResponse);
6302
+ case 409:
6303
+ throw new ConflictError(_response.error.body, _response.rawResponse);
6214
6304
  case 429:
6215
6305
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
6216
6306
  default:
@@ -6231,6 +6321,7 @@ var FoldersClient = class {
6231
6321
  *
6232
6322
  * @throws {@link Vectros.BadRequestError}
6233
6323
  * @throws {@link Vectros.NotFoundError}
6324
+ * @throws {@link Vectros.ConflictError}
6234
6325
  * @throws {@link Vectros.TooManyRequestsError}
6235
6326
  *
6236
6327
  * @example
@@ -6272,6 +6363,8 @@ var FoldersClient = class {
6272
6363
  throw new BadRequestError(_response.error.body, _response.rawResponse);
6273
6364
  case 404:
6274
6365
  throw new NotFoundError(_response.error.body, _response.rawResponse);
6366
+ case 409:
6367
+ throw new ConflictError(_response.error.body, _response.rawResponse);
6275
6368
  case 429:
6276
6369
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
6277
6370
  default:
@@ -6285,7 +6378,7 @@ var FoldersClient = class {
6285
6378
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/folders/{id}");
6286
6379
  }
6287
6380
  /**
6288
- * Partially updates a folder using an RFC 7386 JSON Merge Patch. The `name`, `description`, and ownership fields (`userId`, `scopes`) are applied when present and left unchanged when omitted; sending any of these as null is rejected, because clearing a field is not supported in this release (omit it instead). `slug` and `parentFolderId` are immutable — a folder cannot be re-slugged or moved via the API — and the request is rejected if either is present. Pass `expectedVersion` for optimistic concurrency (you get a 409 if the folder changed since you last read it). Requires the `folders:u` scope.
6381
+ * Partially updates a folder using an RFC 7386 JSON Merge Patch. The `name`, `description`, and ownership fields (`userId`, `scopes`) are applied when present and left unchanged when omitted; sending any of these as null is rejected, because clearing a field is not supported (omit it instead). `slug` and `parentFolderId` are immutable — a folder cannot be re-slugged or moved via the API — and the request is rejected if either is present. Pass `expectedVersion` for optimistic concurrency (you get a 409 if the folder changed since you last read it). Requires the `folders:u` scope.
6289
6382
  *
6290
6383
  * @param {Vectros.PatchFolderRequest} request
6291
6384
  * @param {FoldersClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -6508,6 +6601,8 @@ var IdentityClient = class {
6508
6601
  *
6509
6602
  * @throws {@link Vectros.BadRequestError}
6510
6603
  * @throws {@link Vectros.ForbiddenError}
6604
+ * @throws {@link Vectros.NotFoundError}
6605
+ * @throws {@link Vectros.ConflictError}
6511
6606
  * @throws {@link Vectros.TooManyRequestsError}
6512
6607
  *
6513
6608
  * @example
@@ -6560,6 +6655,10 @@ var IdentityClient = class {
6560
6655
  throw new BadRequestError(_response.error.body, _response.rawResponse);
6561
6656
  case 403:
6562
6657
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
6658
+ case 404:
6659
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
6660
+ case 409:
6661
+ throw new ConflictError(_response.error.body, _response.rawResponse);
6563
6662
  case 429:
6564
6663
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
6565
6664
  default:
@@ -6640,6 +6739,7 @@ var IdentityClient = class {
6640
6739
  *
6641
6740
  * @throws {@link Vectros.BadRequestError}
6642
6741
  * @throws {@link Vectros.NotFoundError}
6742
+ * @throws {@link Vectros.ConflictError}
6643
6743
  * @throws {@link Vectros.TooManyRequestsError}
6644
6744
  *
6645
6745
  * @example
@@ -6692,6 +6792,8 @@ var IdentityClient = class {
6692
6792
  throw new BadRequestError(_response.error.body, _response.rawResponse);
6693
6793
  case 404:
6694
6794
  throw new NotFoundError(_response.error.body, _response.rawResponse);
6795
+ case 409:
6796
+ throw new ConflictError(_response.error.body, _response.rawResponse);
6695
6797
  case 429:
6696
6798
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
6697
6799
  default:
@@ -6711,6 +6813,7 @@ var IdentityClient = class {
6711
6813
  * @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
6712
6814
  *
6713
6815
  * @throws {@link Vectros.NotFoundError}
6816
+ * @throws {@link Vectros.ConflictError}
6714
6817
  * @throws {@link Vectros.TooManyRequestsError}
6715
6818
  *
6716
6819
  * @example
@@ -6755,6 +6858,8 @@ var IdentityClient = class {
6755
6858
  switch (_response.error.statusCode) {
6756
6859
  case 404:
6757
6860
  throw new NotFoundError(_response.error.body, _response.rawResponse);
6861
+ case 409:
6862
+ throw new ConflictError(_response.error.body, _response.rawResponse);
6758
6863
  case 429:
6759
6864
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
6760
6865
  default:
@@ -6978,6 +7083,7 @@ var IdentityClient = class {
6978
7083
  *
6979
7084
  * @throws {@link Vectros.ForbiddenError}
6980
7085
  * @throws {@link Vectros.NotFoundError}
7086
+ * @throws {@link Vectros.ConflictError}
6981
7087
  * @throws {@link Vectros.TooManyRequestsError}
6982
7088
  *
6983
7089
  * @example
@@ -7029,6 +7135,8 @@ var IdentityClient = class {
7029
7135
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
7030
7136
  case 404:
7031
7137
  throw new NotFoundError(_response.error.body, _response.rawResponse);
7138
+ case 409:
7139
+ throw new ConflictError(_response.error.body, _response.rawResponse);
7032
7140
  case 429:
7033
7141
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
7034
7142
  default:
@@ -7049,6 +7157,7 @@ var IdentityClient = class {
7049
7157
  *
7050
7158
  * @throws {@link Vectros.ForbiddenError}
7051
7159
  * @throws {@link Vectros.NotFoundError}
7160
+ * @throws {@link Vectros.ConflictError}
7052
7161
  * @throws {@link Vectros.TooManyRequestsError}
7053
7162
  *
7054
7163
  * @example
@@ -7093,6 +7202,8 @@ var IdentityClient = class {
7093
7202
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
7094
7203
  case 404:
7095
7204
  throw new NotFoundError(_response.error.body, _response.rawResponse);
7205
+ case 409:
7206
+ throw new ConflictError(_response.error.body, _response.rawResponse);
7096
7207
  case 429:
7097
7208
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
7098
7209
  default:
@@ -7157,7 +7268,7 @@ var IdentityClient = class {
7157
7268
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/namespaces");
7158
7269
  }
7159
7270
  /**
7160
- * Registers a new scope namespace and declares whether its values resolve to identity entities (`entityBacked`). Also requires `specificityRank`, an explicit, account-unique position in the specificity order used to break recordType schema-resolution ties. Requires a root API key or one of the CLI bootstrap's two provisioning capabilities — never an ordinary partner-grantable scope. A bootstrap credential's registration is confined to its own app context UNLESS it additionally holds the tenant-wide namespace-provisioning capability and `contextId` is omitted, in which case it may register a TENANT-WIDE namespace (visible to every context). `org` and `client` are reserved names, registered the same way as any other namespace.
7271
+ * Registers a new scope namespace and declares whether its values resolve to identity entities (`entityBacked`). Also requires `specificityRank`, an explicit, account-unique position in the specificity order used to break recordType schema-resolution ties. Requires a root API key or one of the CLI bootstrap's two provisioning capabilities — never an ordinary grantable scope. A bootstrap credential's registration is confined to its own app context UNLESS it additionally holds the tenant-wide namespace-provisioning capability and `contextId` is omitted, in which case it may register a TENANT-WIDE namespace (visible to every context). `org` and `client` are reserved names, registered the same way as any other namespace.
7161
7272
  *
7162
7273
  * @param {Vectros.RegisterNamespaceRequest} request
7163
7274
  * @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -7299,6 +7410,7 @@ var IdentityClient = class {
7299
7410
  *
7300
7411
  * @throws {@link Vectros.BadRequestError}
7301
7412
  * @throws {@link Vectros.ForbiddenError}
7413
+ * @throws {@link Vectros.ConflictError}
7302
7414
  * @throws {@link Vectros.TooManyRequestsError}
7303
7415
  *
7304
7416
  * @example
@@ -7348,6 +7460,8 @@ var IdentityClient = class {
7348
7460
  throw new BadRequestError(_response.error.body, _response.rawResponse);
7349
7461
  case 403:
7350
7462
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
7463
+ case 409:
7464
+ throw new ConflictError(_response.error.body, _response.rawResponse);
7351
7465
  case 429:
7352
7466
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
7353
7467
  default:
@@ -7416,13 +7530,14 @@ var IdentityClient = class {
7416
7530
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/users/{id}");
7417
7531
  }
7418
7532
  /**
7419
- * Updates mutable fields on an existing user (such as email, status, payload, or schema binding). The `type` field is immutable after creation, and `email` cannot be changed while an invitation to that user is still outstanding — revoke the invitation, or invite the new address instead. This endpoint also activates an invited user: a PUT that moves a PENDING user to ACTIVE and carries `inviteToken`, `externalSubject`, and `emailVerifiedAttestation=true` completes the invitation. **`externalSubject` set this way is NOT an authentication binding and does not enable sign-in anywhere** — not the Vectros DevPortal/Admin App/web apps, and not `/v1/auth/token/exchange` either; both are granted only by the invitee authenticating themselves. If the invitee needs dev-portal/web-app access, send them the invitation link and let them accept it directly. If the invitee needs to sign in via token exchange, have them redeem `inviteToken` themselves at `/v1/auth/token/exchange` with their own credential — Vectros verifies it there and computes its own value for this field from the verified credential. The value you send here is stored exactly as-is, with no normalization, and does NOT automatically match or deduplicate against what a later token-exchange sign-in computes for the same real-world identity. Call this endpoint directly only if you run your own backend and want Vectros to record which of your own users a given account corresponds to — treat this field as informational for that purpose, not as a way to pre-authorize sign-in. Requires the `users:u` scope.
7533
+ * Updates mutable fields on an existing user (such as email, status, payload, or schema binding). The `type` field is immutable after creation, and `email` cannot be changed while an invitation to that user is still outstanding — revoke the invitation, or invite the new address instead. This endpoint also activates an invited user: a PUT that moves a PENDING user to ACTIVE and carries `inviteToken`, `externalSubject`, and `emailVerifiedAttestation=true` completes the invitation. **`externalSubject` set this way is NOT an authentication binding and does not enable sign-in anywhere** — not the Vectros DevPortal/Admin App/web apps, and not `/v1/auth/token/exchange` either; both are granted only by the invitee authenticating themselves. A subject stored through `PUT /v1/users/{id}` does not make the person a member of your account: it is ignored for the tenant claims in sign-in tokens, the developer portal's memberships list and tenant switching, and an ownership transfer. To give such a person access, delete the user and invite them again; accepting the invitation binds the subject and counts it. If the invitee needs dev-portal/web-app access, send them the invitation link and let them accept it directly. If the invitee needs to sign in via token exchange, have them redeem `inviteToken` themselves at `/v1/auth/token/exchange` with their own credential — Vectros verifies it there and computes its own value for this field from the verified credential. The value you send here is stored exactly as-is, with no normalization, and does NOT automatically match or deduplicate against what a later token-exchange sign-in computes for the same real-world identity. Call this endpoint directly only if you run your own backend and want Vectros to record which of your own users a given account corresponds to — treat this field as informational for that purpose, not as a way to pre-authorize sign-in. Requires the `users:u` scope.
7420
7534
  *
7421
7535
  * @param {Vectros.UpdateUserRequest} request
7422
7536
  * @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
7423
7537
  *
7424
7538
  * @throws {@link Vectros.BadRequestError}
7425
7539
  * @throws {@link Vectros.NotFoundError}
7540
+ * @throws {@link Vectros.ConflictError}
7426
7541
  * @throws {@link Vectros.TooManyRequestsError}
7427
7542
  *
7428
7543
  * @example
@@ -7470,6 +7585,8 @@ var IdentityClient = class {
7470
7585
  throw new BadRequestError(_response.error.body, _response.rawResponse);
7471
7586
  case 404:
7472
7587
  throw new NotFoundError(_response.error.body, _response.rawResponse);
7588
+ case 409:
7589
+ throw new ConflictError(_response.error.body, _response.rawResponse);
7473
7590
  case 429:
7474
7591
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
7475
7592
  default:
@@ -7731,7 +7848,7 @@ var InferenceClient = class {
7731
7848
  this._options = normalizeClientOptionsWithAuth(options);
7732
7849
  }
7733
7850
  /**
7734
- * Returns every inference model available to you, including each model's context window, the plan tiers it's available on, and the exact credit rates charged per 1K input and output tokens. Use this to populate model pickers and to validate a request before calling `/v1/chat`, `/v1/rag`, or `/v1/documents/{id}/ask`.
7851
+ * Returns the whole platform model catalog, whatever your plan: `availableOn` names each model's plan tiers. Each entry also carries the context window and the credit rates per 1K input and output tokens: `regionPricing.base` for global-region requests, `regionPricing.us` for default requests, and `longContext` for prompts over its threshold. A model reached through a `providerAlias` is not listed. Use this to populate model pickers and to validate a request before calling `/v1/chat`, `/v1/rag`, or `/v1/documents/{id}/ask`.
7735
7852
  *
7736
7853
  * @param {InferenceClient.RequestOptions} requestOptions - Request-specific configuration.
7737
7854
  *
@@ -7775,7 +7892,7 @@ var InferenceClient = class {
7775
7892
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/models");
7776
7893
  }
7777
7894
  /**
7778
- * Streams a model response as Server-Sent Events (SSE). Send the full conversation history in the `messages` array; a message with role `system` is extracted and used as the system prompt. Token cost is debited from your pre-paid inference balance (in cents), and a small per-call flat fee is debited from your monthly platform credit allowance. Requires the `inference:r` scope.
7895
+ * Streams a model response as Server-Sent Events (SSE). Send the full conversation history in the `messages` array; a message with role `system` is extracted and used as the system prompt. On a pre-paid account, token cost is debited from your inference balance; usage-billed accounts accrue it for post-billing. A request routed through your own `providerAlias` incurs no Vectros token cost. A small per-call flat fee is charged to your monthly credit allowance, except when the call fails on the server side. Requires the `inference:r` scope.
7779
7896
  */
7780
7897
  chatInference(request, requestOptions) {
7781
7898
  return HttpResponsePromise.fromPromise(this.__chatInference(request, requestOptions));
@@ -7828,10 +7945,14 @@ var InferenceClient = class {
7828
7945
  throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
7829
7946
  case 403:
7830
7947
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
7948
+ case 404:
7949
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
7831
7950
  case 413:
7832
7951
  throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
7833
7952
  case 429:
7834
7953
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
7954
+ case 503:
7955
+ throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
7835
7956
  default:
7836
7957
  throw new VectrosError({
7837
7958
  statusCode: _response.error.statusCode,
@@ -7905,6 +8026,8 @@ var InferenceClient = class {
7905
8026
  throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
7906
8027
  case 429:
7907
8028
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
8029
+ case 503:
8030
+ throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
7908
8031
  default:
7909
8032
  throw new VectrosError({
7910
8033
  statusCode: _response.error.statusCode,
@@ -7969,12 +8092,16 @@ var InferenceClient = class {
7969
8092
  throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
7970
8093
  case 403:
7971
8094
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
8095
+ case 404:
8096
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
7972
8097
  case 413:
7973
8098
  throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
7974
8099
  case 429:
7975
8100
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
7976
8101
  case 500:
7977
8102
  throw new InternalServerError(_response.error.body, _response.rawResponse);
8103
+ case 503:
8104
+ throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
7978
8105
  default:
7979
8106
  throw new VectrosError({
7980
8107
  statusCode: _response.error.statusCode,
@@ -8052,7 +8179,7 @@ var RecordsClient = class {
8052
8179
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/records/batch-get");
8053
8180
  }
8054
8181
  /**
8055
- * Reserved endpoint for batch lookup and reference resolution. The published response shape correlates results to each input and carries a per-item status envelope. It currently returns 501 (not implemented). The documented 200 response schema is the stable shape this endpoint will use once available. Requires the `records:r` scope.
8182
+ * Reserved endpoint for batch lookup and reference resolution. With the `records:r` scope it answers 501 (not implemented). The published response shape correlates results to each input and carries a per-item status envelope. Requires the `records:r` scope.
8056
8183
  *
8057
8184
  * @param {Vectros.BatchLookupRequest} request
8058
8185
  * @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -8113,7 +8240,7 @@ var RecordsClient = class {
8113
8240
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/records/lookup/batch");
8114
8241
  }
8115
8242
  /**
8116
- * Writes up to 50 records (or 50 with `atomicity: all_or_nothing`) in a single request. Each item in `items` has exactly the same shape, and goes through exactly the same validation, authorization and idempotency rules, as the body of a single `POST /v1/records` — including schema validation, `externalId` idempotency, unique-field enforcement, and the `records:c:<type>` scope check, which is applied per item against that item's own record type. A batch is not a way to write a type your credential could not write one at a time.
8243
+ * Writes up to 50 records per request in `best_effort` mode and up to 50 with `atomicity: all_or_nothing`, in a single request. Each item in `items` has exactly the same shape, and goes through exactly the same validation, authorization and idempotency rules, as the body of a single `POST /v1/records` — including schema validation, `externalId` idempotency, unique-field enforcement, and the `records:c:<type>` scope check, which is applied per item against that item's own record type. A batch is not a way to write a type your credential could not write one at a time.
8117
8244
  *
8118
8245
  * `atomicity` selects how the batch commits. `best_effort` (the default) writes each item independently: some can succeed while others fail, and each item's own outcome is reported. `all_or_nothing` commits every item in one transaction — if any item fails, no record is created or updated at all, and every item that was itself fine reports `not_committed` while the ones that failed report why. Because the transaction is bounded by the number of underlying storage rows rather than by the number of records, a large `all_or_nothing` batch can be refused as too large to commit atomically even when it is within the item limit; the error says so, and nothing is written when it happens.
8119
8246
  *
@@ -8252,6 +8379,8 @@ var RecordsClient = class {
8252
8379
  *
8253
8380
  * @throws {@link Vectros.BadRequestError}
8254
8381
  * @throws {@link Vectros.ForbiddenError}
8382
+ * @throws {@link Vectros.NotFoundError}
8383
+ * @throws {@link Vectros.ConflictError}
8255
8384
  * @throws {@link Vectros.TooManyRequestsError}
8256
8385
  *
8257
8386
  * @example
@@ -8308,6 +8437,10 @@ var RecordsClient = class {
8308
8437
  throw new BadRequestError(_response.error.body, _response.rawResponse);
8309
8438
  case 403:
8310
8439
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
8440
+ case 404:
8441
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
8442
+ case 409:
8443
+ throw new ConflictError(_response.error.body, _response.rawResponse);
8311
8444
  case 429:
8312
8445
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
8313
8446
  default:
@@ -8456,6 +8589,7 @@ var RecordsClient = class {
8456
8589
  * @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
8457
8590
  *
8458
8591
  * @throws {@link Vectros.NotFoundError}
8592
+ * @throws {@link Vectros.ConflictError}
8459
8593
  * @throws {@link Vectros.TooManyRequestsError}
8460
8594
  *
8461
8595
  * @example
@@ -8495,6 +8629,8 @@ var RecordsClient = class {
8495
8629
  switch (_response.error.statusCode) {
8496
8630
  case 404:
8497
8631
  throw new NotFoundError(_response.error.body, _response.rawResponse);
8632
+ case 409:
8633
+ throw new ConflictError(_response.error.body, _response.rawResponse);
8498
8634
  case 429:
8499
8635
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
8500
8636
  default:
@@ -8508,7 +8644,7 @@ var RecordsClient = class {
8508
8644
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/records/{id}");
8509
8645
  }
8510
8646
  /**
8511
- * Partially updates a record using an RFC 7386 JSON Merge Patch. The `payload` object is deep-merged into the existing payload: keys you send overwrite (recursing into nested objects), a key set to null is deleted, and keys you omit are left unchanged — so you can change a single field without re-sending the rest (unlike the full-replacement PUT). Top-level fields (`status`, `folderId`, `userId`, `scopes`) are set when present and left unchanged when omitted; sending a top-level field as null is rejected (clearing a top-level field is not supported in this release — omit it instead). `typeName`, `schemaId`, `externalId`, and `indexMode` are immutable and rejected if present. The merged result is validated against the schema. Pass `expectedVersion` to make the patch conditional (optimistic concurrency, 409 on conflict). Requires the `records:u:<type>` scope.
8647
+ * Partially updates a record using an RFC 7386 JSON Merge Patch. The `payload` object is deep-merged into the existing payload: keys you send overwrite (recursing into nested objects), a key set to null is deleted, and keys you omit are left unchanged — so you can change a single field without re-sending the rest (unlike the full-replacement PUT). Top-level fields (`status`, `folderId`, `userId`, `scopes`) are set when present and left unchanged when omitted; sending a top-level field as null is rejected (clearing a top-level field is not supported — omit it instead). `typeName`, `schemaId`, `externalId`, and `indexMode` are immutable and rejected if present. The merged result is validated against the schema. Pass `expectedVersion` to make the patch conditional (optimistic concurrency, 409 on conflict). Requires the `records:u:<type>` scope.
8512
8648
  *
8513
8649
  * @param {Vectros.PatchRecordRequest} request
8514
8650
  * @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -8937,6 +9073,8 @@ var SchemasClient = class {
8937
9073
  *
8938
9074
  * @throws {@link Vectros.BadRequestError}
8939
9075
  * @throws {@link Vectros.ForbiddenError}
9076
+ * @throws {@link Vectros.NotFoundError}
9077
+ * @throws {@link Vectros.ConflictError}
8940
9078
  * @throws {@link Vectros.TooManyRequestsError}
8941
9079
  *
8942
9080
  * @example
@@ -9006,6 +9144,10 @@ var SchemasClient = class {
9006
9144
  throw new BadRequestError(_response.error.body, _response.rawResponse);
9007
9145
  case 403:
9008
9146
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
9147
+ case 404:
9148
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
9149
+ case 409:
9150
+ throw new ConflictError(_response.error.body, _response.rawResponse);
9009
9151
  case 429:
9010
9152
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
9011
9153
  default:
@@ -9149,7 +9291,7 @@ var SchemasClient = class {
9149
9291
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/schemas/{id}");
9150
9292
  }
9151
9293
  /**
9152
- * Permanently deletes a record schema. The request is refused with 409 if records of this type still exist — delete those records first, since every record must reference a live schema. The same applies to documents bound to this schema (for a schema declaring the `document` surface) — delete those documents first. A lineage base (a schema other schemas declare `basedOn`) also cannot be deleted while any such variant still exists — delete the variant schema(s) first. It is likewise refused while any trigger rule fires off this schema — delete those trigger rules first. Requires the `schemas:d` scope.
9294
+ * Permanently deletes a record schema. The request is refused with 409 if records of this type still exist — delete those records first, since every record must reference a live schema. The same applies to documents bound to this schema (for a schema declaring the `document` surface) — delete those documents first. A lineage base (a schema other schemas declare `basedOn`) also cannot be deleted while any such variant still exists — delete the variant schema(s) first. It is likewise refused while any trigger rule fires off this schema — delete those trigger rules first — and, for a schema declaring the `user` or `entity` surface, while any user or entity bound to it still exists. Requires the `schemas:d` scope.
9153
9295
  *
9154
9296
  * @param {Vectros.DeleteSchemaRequest} request
9155
9297
  * @param {SchemasClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -9276,7 +9418,7 @@ var ScriptsClient = class {
9276
9418
  this._options = normalizeClientOptionsWithAuth(options);
9277
9419
  }
9278
9420
  /**
9279
- * Runs a script you previously pushed to `POST /v1/scripts`, under your own credential, and returns what it returned. Every write the script makes is buffered and committed as ONE transaction after the script finishes: either all of them land or none do, and the response is sent only after they have committed — so everything in `result` is committed state or the script's own computation over it. On any failure the body is the standard error envelope and nothing the script staged is committed: its rows are written only when the transaction commits, and a document body or a large payload is DECIDED at that point and WRITTEN to storage only after the commit, so an aborted execution leaves nothing behind. The one residual sits after a successful commit, outside this response: if storing a body fails then, the row exists and the body does not until the platform's repair lands — so a `200` guarantees the rows, and a document's text should be read before it is relied on.
9421
+ * Runs a script you previously pushed to `POST /v1/scripts`, under your own credential, and returns what it returned. Every write the script makes is buffered and committed as ONE transaction after the script finishes: either all of them land or none do, and the response is sent only after they have committed — so everything in `result` is committed state or the script's own computation over it. On any failure the body is the standard error envelope and nothing the script staged is committed: its rows are written only when the transaction commits, and a document body or a large payload is DECIDED at that point and WRITTEN to storage only after the commit, so an aborted execution leaves nothing behind. The one residual sits after a successful commit, outside this response: if storing a body fails then, the row exists and the body may not — so a `200` guarantees the rows, and a document's text should be read before it is relied on.
9280
9422
  *
9281
9423
  * **Permission.** Requires the `scripts:x` scope — the permission to *execute* — separate from the `scripts:c` permission to push scripts. Bare `scripts:x` grants every script in the context; `scripts:x:<name>` grants exactly that script name, every version of it. Execution discloses no source, so `scripts:r` is not needed. Inside the script, every read and write is enforced by your credential's data scopes exactly as the equivalent REST call would be — `scripts:x` alone can read and write nothing.
9282
9424
  *
@@ -9890,6 +10032,8 @@ var TriggersClient = class {
9890
10032
  *
9891
10033
  * @throws {@link Vectros.BadRequestError}
9892
10034
  * @throws {@link Vectros.ForbiddenError}
10035
+ * @throws {@link Vectros.NotFoundError}
10036
+ * @throws {@link Vectros.ConflictError}
9893
10037
  * @throws {@link Vectros.TooManyRequestsError}
9894
10038
  *
9895
10039
  * @example
@@ -9947,6 +10091,10 @@ var TriggersClient = class {
9947
10091
  throw new BadRequestError(_response.error.body, _response.rawResponse);
9948
10092
  case 403:
9949
10093
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
10094
+ case 404:
10095
+ throw new NotFoundError(_response.error.body, _response.rawResponse);
10096
+ case 409:
10097
+ throw new ConflictError(_response.error.body, _response.rawResponse);
9950
10098
  case 429:
9951
10099
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
9952
10100
  default:
@@ -10023,6 +10171,7 @@ var TriggersClient = class {
10023
10171
  * @throws {@link Vectros.BadRequestError}
10024
10172
  * @throws {@link Vectros.ForbiddenError}
10025
10173
  * @throws {@link Vectros.NotFoundError}
10174
+ * @throws {@link Vectros.ConflictError}
10026
10175
  * @throws {@link Vectros.TooManyRequestsError}
10027
10176
  *
10028
10177
  * @example
@@ -10080,6 +10229,8 @@ var TriggersClient = class {
10080
10229
  throw new ForbiddenError(_response.error.body, _response.rawResponse);
10081
10230
  case 404:
10082
10231
  throw new NotFoundError(_response.error.body, _response.rawResponse);
10232
+ case 409:
10233
+ throw new ConflictError(_response.error.body, _response.rawResponse);
10083
10234
  case 429:
10084
10235
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
10085
10236
  default:
@@ -10099,6 +10250,7 @@ var TriggersClient = class {
10099
10250
  * @param {TriggersClient.RequestOptions} requestOptions - Request-specific configuration.
10100
10251
  *
10101
10252
  * @throws {@link Vectros.NotFoundError}
10253
+ * @throws {@link Vectros.ConflictError}
10102
10254
  * @throws {@link Vectros.TooManyRequestsError}
10103
10255
  *
10104
10256
  * @example
@@ -10138,6 +10290,8 @@ var TriggersClient = class {
10138
10290
  switch (_response.error.statusCode) {
10139
10291
  case 404:
10140
10292
  throw new NotFoundError(_response.error.body, _response.rawResponse);
10293
+ case 409:
10294
+ throw new ConflictError(_response.error.body, _response.rawResponse);
10141
10295
  case 429:
10142
10296
  throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
10143
10297
  default:
@@ -10272,8 +10426,8 @@ function warnOnSuboptimalKey(key, log) {
10272
10426
 
10273
10427
  // src/build-info.ts
10274
10428
  var BUILD_INFO = {
10275
- mcpServer: true ? "0.18.1" : "dev",
10276
- sdk: true ? "0.47.0" : "dev"
10429
+ mcpServer: true ? "0.18.2" : "dev",
10430
+ sdk: true ? "0.48.0" : "dev"
10277
10431
  };
10278
10432
 
10279
10433
  // src/log.ts
@@ -11249,7 +11403,7 @@ var inputSchema7 = {
11249
11403
  ),
11250
11404
  status: z7.string().optional().describe("Set the record lifecycle status (e.g. ARCHIVED) \u2014 archive/workflow without physical deletion."),
11251
11405
  expectedVersion: z7.number().int().optional().describe(
11252
- "Optimistic concurrency: the version you last read. If the record changed since, the update is refused as a conflict (re-read and retry). Omit for last-write-wins."
11406
+ "Optimistic concurrency: the version you last read. If the record changed since, the update is refused as a conflict (re-read and retry). Omit it to update whatever version is current: an update that meets another change to the same record at the same moment is still refused as a conflict."
11253
11407
  )
11254
11408
  };
11255
11409
  var recordUpdate = ({ client, log }) => ({
@@ -11319,7 +11473,7 @@ import { z as z10 } from "zod";
11319
11473
  // src/tools/provider-alias.ts
11320
11474
  import { z as z9 } from "zod";
11321
11475
  var providerAliasInput = z9.string().min(1, "providerAlias must be non-empty when supplied").optional().describe(
11322
- "Route THIS call through your own model provider instead of the platform-hosted default, by the alias of a provider config your account has activated. It works only after your account has set up that provider and signed the platform's risk-acceptance waiver; without both, the platform refuses the call with a 403, which is returned to you as written. If your account has accepted the Business Associate Agreement with Vectros in the developer portal, an account owner must also have attested that provider config in the developer portal (Model Providers); until then the platform refuses the call with a 403 that says it needs a BAA-holder attestation. A call served by your own provider leaves the Vectros perimeter. Omit it (the default) to use the platform-hosted path. When set, `model` names the model on your provider's own id space, and falls back to that provider config's default model when omitted."
11476
+ "Route THIS call through your own model provider instead of the platform-hosted default, by the alias of a provider config your account has activated. It works only after your account has set up that provider and signed the platform's risk-acceptance waiver; without both, the platform refuses the call with a 403, which is returned to you as written. When the waiver is the cause, the 403 carries an `errorCode` that says which case it is: `WAIVER_NOT_SIGNED` (the waiver has not been signed), `WAIVER_TEXT_CHANGED` (it was signed, but its text changed afterwards, so the earlier signature no longer counts), or `WAIVER_REVOKED` (an owner revoked it). An account owner resolves each in the developer portal (Model Providers); retrying the call does not help. If your account has accepted the Business Associate Agreement with Vectros in the developer portal, an account owner must also have attested that provider config in the developer portal (Model Providers); until then the platform refuses the call with a 403 that says it needs a BAA-holder attestation. A call served by your own provider leaves the Vectros perimeter. Omit it (the default) to use the platform-hosted path. When set, `model` names the model on your provider's own id space, and falls back to that provider config's default model when omitted."
11323
11477
  );
11324
11478
 
11325
11479
  // src/tools/rag_ask.ts
@@ -11830,7 +11984,7 @@ var inputSchema14 = {
11830
11984
  'Reassign scope ownership as `namespace:value` entries, at most 2 (e.g. ["org:<uuid>", "group:eng-team"]) \u2014 the COMPLETE new parent set. `org`/`client` are reserved namespace names, registered like any other. Omit to leave ownership unchanged; `[]` clears it (private to the owning user).'
11831
11985
  ),
11832
11986
  expectedVersion: z15.number().int().optional().describe(
11833
- "Optimistic concurrency: the version you last read. If the document changed since, the update is refused as a conflict (re-read and retry). Omit for last-write-wins."
11987
+ "Optimistic concurrency: the version you last read. If the document changed since, the update is refused as a conflict (re-read and retry). Omit it to update whatever version is current: an update that meets another change to the same document at the same moment is still refused as a conflict."
11834
11988
  )
11835
11989
  };
11836
11990
  var documentUpdate = ({ client, log }) => ({
@@ -11984,10 +12138,8 @@ var folderCreate = ({ client, log }) => ({
11984
12138
  // freshly-proved-free value, so the idempotency check running after that derivation can never
11985
12139
  // match on the default path. `slug` is optional, so this is annotated for the less-safe default —
11986
12140
  // the same standard applied to record_create/document_ingest/record_batch_write's identical
11987
- // optional-dedupe-key shape. (A prior version of this annotation claimed unconditional
11988
- // idempotency, reasoning that the derived slug made this tool "genuinely structurally different"
11989
- // from the optional-externalId tools — that reasoning was wrong: the derivation is unconditional,
11990
- // but it is unconditionally NON-colliding by construction, which is the opposite property.)
12141
+ // optional-dedupe-key shape. (The slug derivation being unconditional does not make the tool
12142
+ // idempotent: it is unconditionally NON-colliding by construction, which is the opposite property.)
11991
12143
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false },
11992
12144
  handler: async (args) => {
11993
12145
  try {
@@ -12022,7 +12174,7 @@ var inputSchema18 = {
12022
12174
  'Reassign scope ownership as `namespace:value` entries, at most 2 (e.g. ["org:<uuid>", "group:eng-team"]) \u2014 the COMPLETE new parent set. `org`/`client` are reserved namespace names, registered like any other. Omit to leave ownership unchanged; `[]` clears it (private to the owning user).'
12023
12175
  ),
12024
12176
  expectedVersion: z19.number().int().optional().describe(
12025
- "Optimistic concurrency: the version you last read. If the folder changed since, the update is refused as a conflict (re-read and retry). Omit for last-write-wins."
12177
+ "Optimistic concurrency: the version you last read. If the folder changed since, the update is refused as a conflict (re-read and retry). Omit it to update whatever version is current: an update that meets another change to the same folder at the same moment is still refused as a conflict."
12026
12178
  )
12027
12179
  };
12028
12180
  var folderUpdate = ({ client, log }) => ({
@@ -12093,7 +12245,7 @@ var inputSchema20 = {
12093
12245
  var currentIdentity = ({ log, apiKey, environment }) => ({
12094
12246
  name: "current_identity",
12095
12247
  title: "Current identity (tenant + principal scope)",
12096
- description: "Describe the credential the MCP server is operating under. Returns tenantId, environment (staging|production), principalType (root_key|scoped_key|token), principalKeyId, principalLabel, and (for scoped credentials) allowedActions plus dataScope \u2014 the credential's verb+ownership reach as { userId, scopes[] }, where each scope is a `namespace:value` string (e.g. \"org:<uuid>\"). Note: this does not yet include granted_capabilities (member-lifecycle / forensic-read / context-directory-read / delegate-mint, as of API 0.40.0, joined by delegate-principal-stamp in 0.42.0) \u2014 a separate reach dimension a scope clause can carry that /v1/ping does not report yet, so allowedActions+dataScope may understate a credential's true reach. Also reports mcpServerVersion (this server's own package version) and sdkVersion (the bundled @vectros-ai/sdk version) so a caller can tell what build it's talking to. Use this when the user asks 'what can you do here?', 'what tenant am I in?', or 'what version is this?'. Calls GET /v1/ping under the hood.",
12248
+ description: "Describe the credential the MCP server is operating under. Returns tenantId, environment (staging|production), principalType (root_key|scoped_key|token), principalKeyId, principalLabel, and (for scoped credentials) allowedActions plus dataScope \u2014 the credential's verb+ownership reach as { userId, scopes[] }, where each scope is a `namespace:value` string (e.g. \"org:<uuid>\"). Note: this does not include granted_capabilities (member-lifecycle / forensic-read / context-directory-read / delegate-mint, as of API 0.40.0, joined by delegate-principal-stamp in 0.42.0 and trigger-control-plane-grant in 0.44.0) \u2014 a separate reach dimension a scope clause can carry that /v1/ping does not report, so allowedActions+dataScope may understate a credential's true reach. Also reports mcpServerVersion (this server's own package version) and sdkVersion (the bundled @vectros-ai/sdk version) so a caller can tell what build it's talking to. Use this when the user asks 'what can you do here?', 'what tenant am I in?', or 'what version is this?'. Calls GET /v1/ping under the hood.",
12097
12249
  inputSchema: inputSchema20,
12098
12250
  // A pure read (/v1/ping) — never creates, modifies, or deletes anything server-side.
12099
12251
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
@@ -12617,7 +12769,7 @@ var identityResource = ({ log, apiKey, environment }) => ({
12617
12769
  name: "identity",
12618
12770
  uri: "vectros://identity",
12619
12771
  title: "Current identity (tenant + principal scope)",
12620
- description: "The tenant + principal scope the MCP server is authenticated as. Returns the same payload as the `current_identity` tool: status, tenantId, environment, principalType, principalKeyId, principalLabel, (for scoped credentials) allowedActions + dataScope ({ userId, scopes[] }). Note: this does not yet include granted_capabilities (member-lifecycle / forensic-read / context-directory-read / delegate-mint, as of API 0.40.0, joined by delegate-principal-stamp in 0.42.0) \u2014 a separate reach dimension a scope clause can carry that /v1/ping does not report yet, so allowedActions+dataScope may understate a credential's true reach. Also reports mcpServerVersion and sdkVersion (this build's own version and the bundled @vectros-ai/sdk version). The /v1/ping backing call ships the extended shape today; the version fields are always client-derived.",
12772
+ description: "The tenant + principal scope the MCP server is authenticated as. Returns the same payload as the `current_identity` tool: status, tenantId, environment, principalType, principalKeyId, principalLabel, (for scoped credentials) allowedActions + dataScope ({ userId, scopes[] }). Note: this does not include granted_capabilities (member-lifecycle / forensic-read / context-directory-read / delegate-mint, as of API 0.40.0, joined by delegate-principal-stamp in 0.42.0 and trigger-control-plane-grant in 0.44.0) \u2014 a separate reach dimension a scope clause can carry that /v1/ping does not report, so allowedActions+dataScope may understate a credential's true reach. Also reports mcpServerVersion and sdkVersion (this build's own version and the bundled @vectros-ai/sdk version). The /v1/ping backing call ships the extended shape today; the version fields are always client-derived.",
12621
12773
  mimeType: "application/json",
12622
12774
  read: async () => {
12623
12775
  const identity = await resolveIdentity({ log, apiKey, environment });