@vectros-ai/mcp-server 0.18.0 → 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/CHANGELOG.md +46 -1
- package/README.md +42 -15
- package/dist/cli-http.js +204 -42
- package/dist/cli-http.js.map +1 -1
- package/dist/cli-http.mjs +204 -42
- package/dist/cli-http.mjs.map +1 -1
- package/dist/cli.js +204 -42
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +204 -42
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.mts +6 -9
- package/dist/index.d.ts +6 -9
- package/dist/index.js +204 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +204 -42
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -26,7 +26,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
// src/server.ts
|
|
27
27
|
var import_server = require("@modelcontextprotocol/sdk/server/index.js");
|
|
28
28
|
|
|
29
|
-
// node_modules/@vectros-ai/sdk/dist/index.mjs
|
|
29
|
+
// ../../node_modules/@vectros-ai/sdk/dist/index.mjs
|
|
30
30
|
var __defProp2 = Object.defineProperty;
|
|
31
31
|
var __export = (target, all) => {
|
|
32
32
|
for (var name in all)
|
|
@@ -41,9 +41,11 @@ __export(api_exports, {
|
|
|
41
41
|
BatchWriteRequest: () => BatchWriteRequest,
|
|
42
42
|
BatchWriteResult: () => BatchWriteResult,
|
|
43
43
|
ChatMessage: () => ChatMessage,
|
|
44
|
+
ChatRequest: () => ChatRequest,
|
|
44
45
|
ConflictError: () => ConflictError,
|
|
45
46
|
ContentDeltaEvent: () => ContentDeltaEvent,
|
|
46
47
|
ContentTooLargeError: () => ContentTooLargeError,
|
|
48
|
+
DocumentAskRequest: () => DocumentAskRequest,
|
|
47
49
|
DocumentContextEvent: () => DocumentContextEvent,
|
|
48
50
|
DocumentLookupRequest: () => DocumentLookupRequest,
|
|
49
51
|
DocumentPatchRequest: () => DocumentPatchRequest,
|
|
@@ -74,8 +76,10 @@ __export(api_exports, {
|
|
|
74
76
|
NotImplementedError: () => NotImplementedError,
|
|
75
77
|
PaymentRequiredError: () => PaymentRequiredError,
|
|
76
78
|
PingResponse: () => PingResponse,
|
|
79
|
+
RagRequest: () => RagRequest,
|
|
77
80
|
RagSearch: () => RagSearch,
|
|
78
81
|
ReadAccessLogResponse: () => ReadAccessLogResponse,
|
|
82
|
+
ReasoningDeltaEvent: () => ReasoningDeltaEvent,
|
|
79
83
|
RecordLookupRequest: () => RecordLookupRequest,
|
|
80
84
|
RecordRequest: () => RecordRequest,
|
|
81
85
|
RecordResponse: () => RecordResponse,
|
|
@@ -431,7 +435,33 @@ var ListUsersRequestOrder = {
|
|
|
431
435
|
Asc: "asc",
|
|
432
436
|
Desc: "desc"
|
|
433
437
|
};
|
|
438
|
+
var ChatRequest;
|
|
439
|
+
((ChatRequest2) => {
|
|
440
|
+
ChatRequest2.Reasoning = {
|
|
441
|
+
Omit: "omit",
|
|
442
|
+
Stream: "stream"
|
|
443
|
+
};
|
|
444
|
+
})(ChatRequest || (ChatRequest = {}));
|
|
445
|
+
var DocumentAskRequest;
|
|
446
|
+
((DocumentAskRequest2) => {
|
|
447
|
+
DocumentAskRequest2.Reasoning = {
|
|
448
|
+
Omit: "omit",
|
|
449
|
+
Stream: "stream"
|
|
450
|
+
};
|
|
451
|
+
})(DocumentAskRequest || (DocumentAskRequest = {}));
|
|
452
|
+
var RagRequest;
|
|
453
|
+
((RagRequest2) => {
|
|
454
|
+
RagRequest2.Reasoning = {
|
|
455
|
+
Omit: "omit",
|
|
456
|
+
Stream: "stream"
|
|
457
|
+
};
|
|
458
|
+
})(RagRequest || (RagRequest = {}));
|
|
434
459
|
var inference_exports = {};
|
|
460
|
+
__export(inference_exports, {
|
|
461
|
+
ChatRequest: () => ChatRequest,
|
|
462
|
+
DocumentAskRequest: () => DocumentAskRequest,
|
|
463
|
+
RagRequest: () => RagRequest
|
|
464
|
+
});
|
|
435
465
|
var BatchWriteRequest;
|
|
436
466
|
((BatchWriteRequest2) => {
|
|
437
467
|
BatchWriteRequest2.Atomicity = {
|
|
@@ -704,6 +734,12 @@ var ReadAccessLogResponse;
|
|
|
704
734
|
Rag: "rag"
|
|
705
735
|
};
|
|
706
736
|
})(ReadAccessLogResponse || (ReadAccessLogResponse = {}));
|
|
737
|
+
var ReasoningDeltaEvent;
|
|
738
|
+
((ReasoningDeltaEvent2) => {
|
|
739
|
+
ReasoningDeltaEvent2.Event = {
|
|
740
|
+
ReasoningDelta: "reasoning_delta"
|
|
741
|
+
};
|
|
742
|
+
})(ReasoningDeltaEvent || (ReasoningDeltaEvent = {}));
|
|
707
743
|
var RecordRequest;
|
|
708
744
|
((RecordRequest2) => {
|
|
709
745
|
RecordRequest2.Status = {
|
|
@@ -2456,7 +2492,7 @@ var AuthClient = class {
|
|
|
2456
2492
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/jwks");
|
|
2457
2493
|
}
|
|
2458
2494
|
/**
|
|
2459
|
-
* Returns a page of per-subject PHI read-access rows: who read which subject's PHI, when, against which record, and whether any sensitive value was actually revealed in plaintext. Metadata only — never the PHI itself.
|
|
2495
|
+
* Returns a page of per-subject PHI read-access rows: who read which subject's PHI, when, against which record, and whether any sensitive value was actually revealed in plaintext. Metadata only — never the PHI itself. Rows exist only where read-access logging is enabled. Provide at least one query axis: a subject (`subjectType` + `subjectId`) within a `contextId` for the primary accounting query; `resourceId` within a `contextId` for 'who read this record'; `callerKeyId` for 'what did this credential read' (account-wide forensic); or `contextId` alone to enumerate a whole context. `from`/`to` bound the time window. Results are scoped to your account, derived from your token — never from input. Requires the `access-log:r` scope.
|
|
2460
2496
|
*
|
|
2461
2497
|
* @param {Vectros.GetAccessLogRequest} request
|
|
2462
2498
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -2598,7 +2634,7 @@ var AuthClient = class {
|
|
|
2598
2634
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/admin/keys/scoped");
|
|
2599
2635
|
}
|
|
2600
2636
|
/**
|
|
2601
|
-
* 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
|
|
2637
|
+
* 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.
|
|
2602
2638
|
*
|
|
2603
2639
|
* @param {Vectros.CreateScopedKeyRequest} request
|
|
2604
2640
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -2941,6 +2977,7 @@ var AuthClient = class {
|
|
|
2941
2977
|
* @throws {@link Vectros.BadRequestError}
|
|
2942
2978
|
* @throws {@link Vectros.ForbiddenError}
|
|
2943
2979
|
* @throws {@link Vectros.NotFoundError}
|
|
2980
|
+
* @throws {@link Vectros.ConflictError}
|
|
2944
2981
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
2945
2982
|
*
|
|
2946
2983
|
* @example
|
|
@@ -2993,6 +3030,8 @@ var AuthClient = class {
|
|
|
2993
3030
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
2994
3031
|
case 404:
|
|
2995
3032
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3033
|
+
case 409:
|
|
3034
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
2996
3035
|
case 429:
|
|
2997
3036
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
2998
3037
|
default:
|
|
@@ -3076,6 +3115,8 @@ var AuthClient = class {
|
|
|
3076
3115
|
* @throws {@link Vectros.BadRequestError}
|
|
3077
3116
|
* @throws {@link Vectros.PaymentRequiredError}
|
|
3078
3117
|
* @throws {@link Vectros.ForbiddenError}
|
|
3118
|
+
* @throws {@link Vectros.NotFoundError}
|
|
3119
|
+
* @throws {@link Vectros.ConflictError}
|
|
3079
3120
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3080
3121
|
*
|
|
3081
3122
|
* @example
|
|
@@ -3128,6 +3169,10 @@ var AuthClient = class {
|
|
|
3128
3169
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
3129
3170
|
case 403:
|
|
3130
3171
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3172
|
+
case 404:
|
|
3173
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3174
|
+
case 409:
|
|
3175
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3131
3176
|
case 429:
|
|
3132
3177
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3133
3178
|
default:
|
|
@@ -3216,6 +3261,7 @@ var AuthClient = class {
|
|
|
3216
3261
|
* @throws {@link Vectros.BadRequestError}
|
|
3217
3262
|
* @throws {@link Vectros.ForbiddenError}
|
|
3218
3263
|
* @throws {@link Vectros.NotFoundError}
|
|
3264
|
+
* @throws {@link Vectros.ConflictError}
|
|
3219
3265
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3220
3266
|
*
|
|
3221
3267
|
* @example
|
|
@@ -3272,6 +3318,8 @@ var AuthClient = class {
|
|
|
3272
3318
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3273
3319
|
case 404:
|
|
3274
3320
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3321
|
+
case 409:
|
|
3322
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3275
3323
|
case 429:
|
|
3276
3324
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3277
3325
|
default:
|
|
@@ -3362,6 +3410,7 @@ var AuthClient = class {
|
|
|
3362
3410
|
* @throws {@link Vectros.BadRequestError}
|
|
3363
3411
|
* @throws {@link Vectros.ForbiddenError}
|
|
3364
3412
|
* @throws {@link Vectros.NotFoundError}
|
|
3413
|
+
* @throws {@link Vectros.ConflictError}
|
|
3365
3414
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3366
3415
|
*
|
|
3367
3416
|
* @example
|
|
@@ -3412,6 +3461,8 @@ var AuthClient = class {
|
|
|
3412
3461
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3413
3462
|
case 404:
|
|
3414
3463
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3464
|
+
case 409:
|
|
3465
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3415
3466
|
case 429:
|
|
3416
3467
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3417
3468
|
default:
|
|
@@ -3558,13 +3609,14 @@ var AuthClient = class {
|
|
|
3558
3609
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/app-contexts/{contextId}");
|
|
3559
3610
|
}
|
|
3560
3611
|
/**
|
|
3561
|
-
* 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
|
|
3612
|
+
* 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.
|
|
3562
3613
|
*
|
|
3563
3614
|
* @param {Vectros.UpdateAppContextRequest} request
|
|
3564
3615
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
3565
3616
|
*
|
|
3566
3617
|
* @throws {@link Vectros.ForbiddenError}
|
|
3567
3618
|
* @throws {@link Vectros.NotFoundError}
|
|
3619
|
+
* @throws {@link Vectros.ConflictError}
|
|
3568
3620
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3569
3621
|
*
|
|
3570
3622
|
* @example
|
|
@@ -3613,6 +3665,8 @@ var AuthClient = class {
|
|
|
3613
3665
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3614
3666
|
case 404:
|
|
3615
3667
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3668
|
+
case 409:
|
|
3669
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3616
3670
|
case 429:
|
|
3617
3671
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3618
3672
|
default:
|
|
@@ -3769,6 +3823,7 @@ var AuthClient = class {
|
|
|
3769
3823
|
*
|
|
3770
3824
|
* @throws {@link Vectros.ForbiddenError}
|
|
3771
3825
|
* @throws {@link Vectros.NotFoundError}
|
|
3826
|
+
* @throws {@link Vectros.ConflictError}
|
|
3772
3827
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3773
3828
|
*
|
|
3774
3829
|
* @example
|
|
@@ -3821,6 +3876,8 @@ var AuthClient = class {
|
|
|
3821
3876
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3822
3877
|
case 404:
|
|
3823
3878
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3879
|
+
case 409:
|
|
3880
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3824
3881
|
case 429:
|
|
3825
3882
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3826
3883
|
default:
|
|
@@ -3846,6 +3903,7 @@ var AuthClient = class {
|
|
|
3846
3903
|
*
|
|
3847
3904
|
* @throws {@link Vectros.ForbiddenError}
|
|
3848
3905
|
* @throws {@link Vectros.NotFoundError}
|
|
3906
|
+
* @throws {@link Vectros.ConflictError}
|
|
3849
3907
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3850
3908
|
*
|
|
3851
3909
|
* @example
|
|
@@ -3888,6 +3946,8 @@ var AuthClient = class {
|
|
|
3888
3946
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3889
3947
|
case 404:
|
|
3890
3948
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3949
|
+
case 409:
|
|
3950
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3891
3951
|
case 429:
|
|
3892
3952
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3893
3953
|
default:
|
|
@@ -4161,7 +4221,7 @@ var AuthClient = class {
|
|
|
4161
4221
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/issuers/{issuerId}");
|
|
4162
4222
|
}
|
|
4163
4223
|
/**
|
|
4164
|
-
* Updates the mutable fields of a registered issuer: `subClaim`, `emailClaim`, `userinfoUri`, `capturedClaims`, `restrictedToDomain` (a new non-blank value must already be a VERIFIED domain for your account; an empty string clears it
|
|
4224
|
+
* Updates the mutable fields of a registered issuer: `subClaim`, `emailClaim`, `userinfoUri`, `capturedClaims`, `restrictedToDomain` (a new non-blank value must already be a VERIFIED domain for your account; an empty string clears it where permitted; see `IssuerUpdateRequest.restrictedToDomain` for the full semantics), `status` (`active`/`suspended` — a registration awaiting verification (`pending_verification`) accepts no status change until it is verified; a suspended issuer's tokens are rejected identically to an unregistered issuer at exchange time), and `selfSignupPolicies`. Fields omitted from the body are left unchanged (partial update). `issuer`, `jwksUri`, `audience`, and `contextId` are trust-anchor / routing-pin fields and are immutable via this route — supplying a value that differs from the current registration is rejected with 400; supplying the current value back is a no-op. Rotating a trust anchor requires deleting and re-registering the issuer, which is itself refused while any user is bound through it. **`subClaim` is identity-determining, not merely cosmetic**: it names which verified JWT claim is read as the federated user's identifier, so changing it on an issuer that already has bound users would silently re-identify (or, under self-signup, orphan) every one of them — changing it is therefore refused once any user has bound through this issuer, the same guard `DELETE` already applies, and is only free before the first real login. Requires a root API key or the bootstrap's provisioning capability, gated identically to every other operation on this surface. A credential confined to one app context may only update an issuer registered in that context; naming one registered in another context returns 404, identically to a nonexistent issuerId. A root API key may update any issuer.
|
|
4165
4225
|
*
|
|
4166
4226
|
* @param {Vectros.IssuerUpdateRequest} request
|
|
4167
4227
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4169,6 +4229,7 @@ var AuthClient = class {
|
|
|
4169
4229
|
* @throws {@link Vectros.BadRequestError}
|
|
4170
4230
|
* @throws {@link Vectros.ForbiddenError}
|
|
4171
4231
|
* @throws {@link Vectros.NotFoundError}
|
|
4232
|
+
* @throws {@link Vectros.ConflictError}
|
|
4172
4233
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
4173
4234
|
*
|
|
4174
4235
|
* @example
|
|
@@ -4215,6 +4276,8 @@ var AuthClient = class {
|
|
|
4215
4276
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
4216
4277
|
case 404:
|
|
4217
4278
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
4279
|
+
case 409:
|
|
4280
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
4218
4281
|
case 429:
|
|
4219
4282
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
4220
4283
|
default:
|
|
@@ -4228,7 +4291,7 @@ var AuthClient = class {
|
|
|
4228
4291
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/auth/issuers/{issuerId}");
|
|
4229
4292
|
}
|
|
4230
4293
|
/**
|
|
4231
|
-
* 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
|
|
4294
|
+
* 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.
|
|
4232
4295
|
*
|
|
4233
4296
|
* @param {Vectros.DeleteIssuerRequest} request
|
|
4234
4297
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4354,7 +4417,7 @@ var AuthClient = class {
|
|
|
4354
4417
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/issuers");
|
|
4355
4418
|
}
|
|
4356
4419
|
/**
|
|
4357
|
-
* 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
|
|
4420
|
+
* 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.
|
|
4358
4421
|
*
|
|
4359
4422
|
* @param {Vectros.IssuerRequest} request
|
|
4360
4423
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4763,6 +4826,7 @@ var AuthClient = class {
|
|
|
4763
4826
|
* @throws {@link Vectros.BadRequestError}
|
|
4764
4827
|
* @throws {@link Vectros.ForbiddenError}
|
|
4765
4828
|
* @throws {@link Vectros.NotFoundError}
|
|
4829
|
+
* @throws {@link Vectros.ConflictError}
|
|
4766
4830
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
4767
4831
|
*
|
|
4768
4832
|
* @example
|
|
@@ -4810,6 +4874,8 @@ var AuthClient = class {
|
|
|
4810
4874
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
4811
4875
|
case 404:
|
|
4812
4876
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
4877
|
+
case 409:
|
|
4878
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
4813
4879
|
case 429:
|
|
4814
4880
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
4815
4881
|
default:
|
|
@@ -4909,6 +4975,7 @@ var AuthClient = class {
|
|
|
4909
4975
|
* @throws {@link Vectros.UnauthorizedError}
|
|
4910
4976
|
* @throws {@link Vectros.ForbiddenError}
|
|
4911
4977
|
* @throws {@link Vectros.NotFoundError}
|
|
4978
|
+
* @throws {@link Vectros.ContentTooLargeError}
|
|
4912
4979
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
4913
4980
|
*
|
|
4914
4981
|
* @example
|
|
@@ -4953,6 +5020,8 @@ var AuthClient = class {
|
|
|
4953
5020
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
4954
5021
|
case 404:
|
|
4955
5022
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
5023
|
+
case 413:
|
|
5024
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
4956
5025
|
case 429:
|
|
4957
5026
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
4958
5027
|
default:
|
|
@@ -4971,7 +5040,7 @@ var ComplianceClient = class {
|
|
|
4971
5040
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
4972
5041
|
}
|
|
4973
5042
|
/**
|
|
4974
|
-
* Submits
|
|
5043
|
+
* Submits an erasure request for a single end-subject (a user, or an identity entity in any namespace). Erasure deletes the records, documents, folders and record schemas the subject solely owns across the declared contexts (and, for a user, its access profiles there), plus its identity and lookup rows when all contexts are covered. Rows co-owned with another owner scope or principal are kept; read-access log entries are not erased. The request is asynchronous: it returns 202 with a `requestId`; poll `GET /v1/erasure-requests/{id}` until the job completes to obtain the completion certificate. Requires a root API key — a scoped credential is rejected with 403.
|
|
4975
5044
|
*
|
|
4976
5045
|
* @param {Vectros.ErasureRequest} request
|
|
4977
5046
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5034,7 +5103,7 @@ var ComplianceClient = class {
|
|
|
5034
5103
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/erasure-requests");
|
|
5035
5104
|
}
|
|
5036
5105
|
/**
|
|
5037
|
-
* Polls an erasure request by id. While the job is still running this returns its status only; once it completes, the response also includes the
|
|
5106
|
+
* Polls an erasure request by id. While the job is still running this returns its status only; once it completes, the response also includes the completion certificate (which contexts were swept, per-context deletion counts, whether the identity was kept, and reports of dangling references and shared rows left intact). Requires a root API key.
|
|
5038
5107
|
*
|
|
5039
5108
|
* @param {Vectros.GetErasureRequestRequest} request
|
|
5040
5109
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5092,7 +5161,7 @@ var ComplianceClient = class {
|
|
|
5092
5161
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/erasure-requests/{id}");
|
|
5093
5162
|
}
|
|
5094
5163
|
/**
|
|
5095
|
-
*
|
|
5164
|
+
* 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.
|
|
5096
5165
|
*
|
|
5097
5166
|
* @param {Vectros.ExportRequest} request
|
|
5098
5167
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5153,7 +5222,7 @@ var ComplianceClient = class {
|
|
|
5153
5222
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/admin/export");
|
|
5154
5223
|
}
|
|
5155
5224
|
/**
|
|
5156
|
-
*
|
|
5225
|
+
* 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.
|
|
5157
5226
|
*
|
|
5158
5227
|
* @param {Vectros.GetExportRequest} request
|
|
5159
5228
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5284,6 +5353,8 @@ var DocumentsClient = class {
|
|
|
5284
5353
|
*
|
|
5285
5354
|
* @throws {@link Vectros.BadRequestError}
|
|
5286
5355
|
* @throws {@link Vectros.ForbiddenError}
|
|
5356
|
+
* @throws {@link Vectros.NotFoundError}
|
|
5357
|
+
* @throws {@link Vectros.ConflictError}
|
|
5287
5358
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
5288
5359
|
*
|
|
5289
5360
|
* @example
|
|
@@ -5335,6 +5406,10 @@ var DocumentsClient = class {
|
|
|
5335
5406
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
5336
5407
|
case 403:
|
|
5337
5408
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
5409
|
+
case 404:
|
|
5410
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
5411
|
+
case 409:
|
|
5412
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
5338
5413
|
case 429:
|
|
5339
5414
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
5340
5415
|
default:
|
|
@@ -5482,6 +5557,7 @@ var DocumentsClient = class {
|
|
|
5482
5557
|
* @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
5483
5558
|
*
|
|
5484
5559
|
* @throws {@link Vectros.NotFoundError}
|
|
5560
|
+
* @throws {@link Vectros.ConflictError}
|
|
5485
5561
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
5486
5562
|
*
|
|
5487
5563
|
* @example
|
|
@@ -5521,6 +5597,8 @@ var DocumentsClient = class {
|
|
|
5521
5597
|
switch (_response.error.statusCode) {
|
|
5522
5598
|
case 404:
|
|
5523
5599
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
5600
|
+
case 409:
|
|
5601
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
5524
5602
|
case 429:
|
|
5525
5603
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
5526
5604
|
default:
|
|
@@ -5813,7 +5891,7 @@ var DocumentsClient = class {
|
|
|
5813
5891
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/documents/{id}/download");
|
|
5814
5892
|
}
|
|
5815
5893
|
/**
|
|
5816
|
-
* Returns the document's full text body when it is retained:
|
|
5894
|
+
* 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.
|
|
5817
5895
|
*
|
|
5818
5896
|
* @param {Vectros.GetDocumentTextRequest} request
|
|
5819
5897
|
* @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5933,6 +6011,7 @@ var DocumentsClient = class {
|
|
|
5933
6011
|
*
|
|
5934
6012
|
* @throws {@link Vectros.BadRequestError}
|
|
5935
6013
|
* @throws {@link Vectros.ForbiddenError}
|
|
6014
|
+
* @throws {@link Vectros.ConflictError}
|
|
5936
6015
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
5937
6016
|
*
|
|
5938
6017
|
* @example
|
|
@@ -5982,6 +6061,8 @@ var DocumentsClient = class {
|
|
|
5982
6061
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
5983
6062
|
case 403:
|
|
5984
6063
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6064
|
+
case 409:
|
|
6065
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
5985
6066
|
case 429:
|
|
5986
6067
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
5987
6068
|
default:
|
|
@@ -6065,6 +6146,8 @@ var FoldersClient = class {
|
|
|
6065
6146
|
*
|
|
6066
6147
|
* @throws {@link Vectros.BadRequestError}
|
|
6067
6148
|
* @throws {@link Vectros.ForbiddenError}
|
|
6149
|
+
* @throws {@link Vectros.NotFoundError}
|
|
6150
|
+
* @throws {@link Vectros.ConflictError}
|
|
6068
6151
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6069
6152
|
*
|
|
6070
6153
|
* @example
|
|
@@ -6114,6 +6197,10 @@ var FoldersClient = class {
|
|
|
6114
6197
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6115
6198
|
case 403:
|
|
6116
6199
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6200
|
+
case 404:
|
|
6201
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6202
|
+
case 409:
|
|
6203
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6117
6204
|
case 429:
|
|
6118
6205
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6119
6206
|
default:
|
|
@@ -6189,6 +6276,7 @@ var FoldersClient = class {
|
|
|
6189
6276
|
*
|
|
6190
6277
|
* @throws {@link Vectros.ForbiddenError}
|
|
6191
6278
|
* @throws {@link Vectros.NotFoundError}
|
|
6279
|
+
* @throws {@link Vectros.ConflictError}
|
|
6192
6280
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6193
6281
|
*
|
|
6194
6282
|
* @example
|
|
@@ -6236,6 +6324,8 @@ var FoldersClient = class {
|
|
|
6236
6324
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6237
6325
|
case 404:
|
|
6238
6326
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6327
|
+
case 409:
|
|
6328
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6239
6329
|
case 429:
|
|
6240
6330
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6241
6331
|
default:
|
|
@@ -6256,6 +6346,7 @@ var FoldersClient = class {
|
|
|
6256
6346
|
*
|
|
6257
6347
|
* @throws {@link Vectros.BadRequestError}
|
|
6258
6348
|
* @throws {@link Vectros.NotFoundError}
|
|
6349
|
+
* @throws {@link Vectros.ConflictError}
|
|
6259
6350
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6260
6351
|
*
|
|
6261
6352
|
* @example
|
|
@@ -6297,6 +6388,8 @@ var FoldersClient = class {
|
|
|
6297
6388
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6298
6389
|
case 404:
|
|
6299
6390
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6391
|
+
case 409:
|
|
6392
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6300
6393
|
case 429:
|
|
6301
6394
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6302
6395
|
default:
|
|
@@ -6310,7 +6403,7 @@ var FoldersClient = class {
|
|
|
6310
6403
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/folders/{id}");
|
|
6311
6404
|
}
|
|
6312
6405
|
/**
|
|
6313
|
-
* 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
|
|
6406
|
+
* 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.
|
|
6314
6407
|
*
|
|
6315
6408
|
* @param {Vectros.PatchFolderRequest} request
|
|
6316
6409
|
* @param {FoldersClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -6533,6 +6626,8 @@ var IdentityClient = class {
|
|
|
6533
6626
|
*
|
|
6534
6627
|
* @throws {@link Vectros.BadRequestError}
|
|
6535
6628
|
* @throws {@link Vectros.ForbiddenError}
|
|
6629
|
+
* @throws {@link Vectros.NotFoundError}
|
|
6630
|
+
* @throws {@link Vectros.ConflictError}
|
|
6536
6631
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6537
6632
|
*
|
|
6538
6633
|
* @example
|
|
@@ -6585,6 +6680,10 @@ var IdentityClient = class {
|
|
|
6585
6680
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6586
6681
|
case 403:
|
|
6587
6682
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6683
|
+
case 404:
|
|
6684
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6685
|
+
case 409:
|
|
6686
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6588
6687
|
case 429:
|
|
6589
6688
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6590
6689
|
default:
|
|
@@ -6665,6 +6764,7 @@ var IdentityClient = class {
|
|
|
6665
6764
|
*
|
|
6666
6765
|
* @throws {@link Vectros.BadRequestError}
|
|
6667
6766
|
* @throws {@link Vectros.NotFoundError}
|
|
6767
|
+
* @throws {@link Vectros.ConflictError}
|
|
6668
6768
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6669
6769
|
*
|
|
6670
6770
|
* @example
|
|
@@ -6717,6 +6817,8 @@ var IdentityClient = class {
|
|
|
6717
6817
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6718
6818
|
case 404:
|
|
6719
6819
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6820
|
+
case 409:
|
|
6821
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6720
6822
|
case 429:
|
|
6721
6823
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6722
6824
|
default:
|
|
@@ -6736,6 +6838,7 @@ var IdentityClient = class {
|
|
|
6736
6838
|
* @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
6737
6839
|
*
|
|
6738
6840
|
* @throws {@link Vectros.NotFoundError}
|
|
6841
|
+
* @throws {@link Vectros.ConflictError}
|
|
6739
6842
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6740
6843
|
*
|
|
6741
6844
|
* @example
|
|
@@ -6780,6 +6883,8 @@ var IdentityClient = class {
|
|
|
6780
6883
|
switch (_response.error.statusCode) {
|
|
6781
6884
|
case 404:
|
|
6782
6885
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6886
|
+
case 409:
|
|
6887
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6783
6888
|
case 429:
|
|
6784
6889
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6785
6890
|
default:
|
|
@@ -7003,6 +7108,7 @@ var IdentityClient = class {
|
|
|
7003
7108
|
*
|
|
7004
7109
|
* @throws {@link Vectros.ForbiddenError}
|
|
7005
7110
|
* @throws {@link Vectros.NotFoundError}
|
|
7111
|
+
* @throws {@link Vectros.ConflictError}
|
|
7006
7112
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7007
7113
|
*
|
|
7008
7114
|
* @example
|
|
@@ -7054,6 +7160,8 @@ var IdentityClient = class {
|
|
|
7054
7160
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7055
7161
|
case 404:
|
|
7056
7162
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7163
|
+
case 409:
|
|
7164
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7057
7165
|
case 429:
|
|
7058
7166
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7059
7167
|
default:
|
|
@@ -7074,6 +7182,7 @@ var IdentityClient = class {
|
|
|
7074
7182
|
*
|
|
7075
7183
|
* @throws {@link Vectros.ForbiddenError}
|
|
7076
7184
|
* @throws {@link Vectros.NotFoundError}
|
|
7185
|
+
* @throws {@link Vectros.ConflictError}
|
|
7077
7186
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7078
7187
|
*
|
|
7079
7188
|
* @example
|
|
@@ -7118,6 +7227,8 @@ var IdentityClient = class {
|
|
|
7118
7227
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7119
7228
|
case 404:
|
|
7120
7229
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7230
|
+
case 409:
|
|
7231
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7121
7232
|
case 429:
|
|
7122
7233
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7123
7234
|
default:
|
|
@@ -7182,7 +7293,7 @@ var IdentityClient = class {
|
|
|
7182
7293
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/namespaces");
|
|
7183
7294
|
}
|
|
7184
7295
|
/**
|
|
7185
|
-
* 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
|
|
7296
|
+
* 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.
|
|
7186
7297
|
*
|
|
7187
7298
|
* @param {Vectros.RegisterNamespaceRequest} request
|
|
7188
7299
|
* @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -7324,6 +7435,7 @@ var IdentityClient = class {
|
|
|
7324
7435
|
*
|
|
7325
7436
|
* @throws {@link Vectros.BadRequestError}
|
|
7326
7437
|
* @throws {@link Vectros.ForbiddenError}
|
|
7438
|
+
* @throws {@link Vectros.ConflictError}
|
|
7327
7439
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7328
7440
|
*
|
|
7329
7441
|
* @example
|
|
@@ -7373,6 +7485,8 @@ var IdentityClient = class {
|
|
|
7373
7485
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
7374
7486
|
case 403:
|
|
7375
7487
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7488
|
+
case 409:
|
|
7489
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7376
7490
|
case 429:
|
|
7377
7491
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7378
7492
|
default:
|
|
@@ -7441,13 +7555,14 @@ var IdentityClient = class {
|
|
|
7441
7555
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/users/{id}");
|
|
7442
7556
|
}
|
|
7443
7557
|
/**
|
|
7444
|
-
* 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.
|
|
7558
|
+
* 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.
|
|
7445
7559
|
*
|
|
7446
7560
|
* @param {Vectros.UpdateUserRequest} request
|
|
7447
7561
|
* @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
7448
7562
|
*
|
|
7449
7563
|
* @throws {@link Vectros.BadRequestError}
|
|
7450
7564
|
* @throws {@link Vectros.NotFoundError}
|
|
7565
|
+
* @throws {@link Vectros.ConflictError}
|
|
7451
7566
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7452
7567
|
*
|
|
7453
7568
|
* @example
|
|
@@ -7495,6 +7610,8 @@ var IdentityClient = class {
|
|
|
7495
7610
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
7496
7611
|
case 404:
|
|
7497
7612
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7613
|
+
case 409:
|
|
7614
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7498
7615
|
case 429:
|
|
7499
7616
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7500
7617
|
default:
|
|
@@ -7756,7 +7873,7 @@ var InferenceClient = class {
|
|
|
7756
7873
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
7757
7874
|
}
|
|
7758
7875
|
/**
|
|
7759
|
-
* Returns
|
|
7876
|
+
* 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`.
|
|
7760
7877
|
*
|
|
7761
7878
|
* @param {InferenceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
7762
7879
|
*
|
|
@@ -7800,7 +7917,7 @@ var InferenceClient = class {
|
|
|
7800
7917
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/models");
|
|
7801
7918
|
}
|
|
7802
7919
|
/**
|
|
7803
|
-
* 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.
|
|
7920
|
+
* 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.
|
|
7804
7921
|
*/
|
|
7805
7922
|
chatInference(request, requestOptions) {
|
|
7806
7923
|
return HttpResponsePromise.fromPromise(this.__chatInference(request, requestOptions));
|
|
@@ -7853,8 +7970,14 @@ var InferenceClient = class {
|
|
|
7853
7970
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
7854
7971
|
case 403:
|
|
7855
7972
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7973
|
+
case 404:
|
|
7974
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7975
|
+
case 413:
|
|
7976
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7856
7977
|
case 429:
|
|
7857
7978
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7979
|
+
case 503:
|
|
7980
|
+
throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
7858
7981
|
default:
|
|
7859
7982
|
throw new VectrosError({
|
|
7860
7983
|
statusCode: _response.error.statusCode,
|
|
@@ -7928,6 +8051,8 @@ var InferenceClient = class {
|
|
|
7928
8051
|
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7929
8052
|
case 429:
|
|
7930
8053
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
8054
|
+
case 503:
|
|
8055
|
+
throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
7931
8056
|
default:
|
|
7932
8057
|
throw new VectrosError({
|
|
7933
8058
|
statusCode: _response.error.statusCode,
|
|
@@ -7992,10 +8117,16 @@ var InferenceClient = class {
|
|
|
7992
8117
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
7993
8118
|
case 403:
|
|
7994
8119
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
8120
|
+
case 404:
|
|
8121
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
8122
|
+
case 413:
|
|
8123
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7995
8124
|
case 429:
|
|
7996
8125
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7997
8126
|
case 500:
|
|
7998
8127
|
throw new InternalServerError(_response.error.body, _response.rawResponse);
|
|
8128
|
+
case 503:
|
|
8129
|
+
throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
7999
8130
|
default:
|
|
8000
8131
|
throw new VectrosError({
|
|
8001
8132
|
statusCode: _response.error.statusCode,
|
|
@@ -8073,7 +8204,7 @@ var RecordsClient = class {
|
|
|
8073
8204
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/records/batch-get");
|
|
8074
8205
|
}
|
|
8075
8206
|
/**
|
|
8076
|
-
* Reserved endpoint for batch lookup and reference resolution. The published response shape correlates results to each input and carries a per-item status envelope.
|
|
8207
|
+
* 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.
|
|
8077
8208
|
*
|
|
8078
8209
|
* @param {Vectros.BatchLookupRequest} request
|
|
8079
8210
|
* @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -8134,7 +8265,7 @@ var RecordsClient = class {
|
|
|
8134
8265
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/records/lookup/batch");
|
|
8135
8266
|
}
|
|
8136
8267
|
/**
|
|
8137
|
-
* Writes up to 50 records
|
|
8268
|
+
* 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.
|
|
8138
8269
|
*
|
|
8139
8270
|
* `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.
|
|
8140
8271
|
*
|
|
@@ -8273,6 +8404,8 @@ var RecordsClient = class {
|
|
|
8273
8404
|
*
|
|
8274
8405
|
* @throws {@link Vectros.BadRequestError}
|
|
8275
8406
|
* @throws {@link Vectros.ForbiddenError}
|
|
8407
|
+
* @throws {@link Vectros.NotFoundError}
|
|
8408
|
+
* @throws {@link Vectros.ConflictError}
|
|
8276
8409
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
8277
8410
|
*
|
|
8278
8411
|
* @example
|
|
@@ -8329,6 +8462,10 @@ var RecordsClient = class {
|
|
|
8329
8462
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
8330
8463
|
case 403:
|
|
8331
8464
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
8465
|
+
case 404:
|
|
8466
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
8467
|
+
case 409:
|
|
8468
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
8332
8469
|
case 429:
|
|
8333
8470
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
8334
8471
|
default:
|
|
@@ -8477,6 +8614,7 @@ var RecordsClient = class {
|
|
|
8477
8614
|
* @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
8478
8615
|
*
|
|
8479
8616
|
* @throws {@link Vectros.NotFoundError}
|
|
8617
|
+
* @throws {@link Vectros.ConflictError}
|
|
8480
8618
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
8481
8619
|
*
|
|
8482
8620
|
* @example
|
|
@@ -8516,6 +8654,8 @@ var RecordsClient = class {
|
|
|
8516
8654
|
switch (_response.error.statusCode) {
|
|
8517
8655
|
case 404:
|
|
8518
8656
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
8657
|
+
case 409:
|
|
8658
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
8519
8659
|
case 429:
|
|
8520
8660
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
8521
8661
|
default:
|
|
@@ -8529,7 +8669,7 @@ var RecordsClient = class {
|
|
|
8529
8669
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/records/{id}");
|
|
8530
8670
|
}
|
|
8531
8671
|
/**
|
|
8532
|
-
* 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
|
|
8672
|
+
* 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.
|
|
8533
8673
|
*
|
|
8534
8674
|
* @param {Vectros.PatchRecordRequest} request
|
|
8535
8675
|
* @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -8958,6 +9098,8 @@ var SchemasClient = class {
|
|
|
8958
9098
|
*
|
|
8959
9099
|
* @throws {@link Vectros.BadRequestError}
|
|
8960
9100
|
* @throws {@link Vectros.ForbiddenError}
|
|
9101
|
+
* @throws {@link Vectros.NotFoundError}
|
|
9102
|
+
* @throws {@link Vectros.ConflictError}
|
|
8961
9103
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
8962
9104
|
*
|
|
8963
9105
|
* @example
|
|
@@ -9027,6 +9169,10 @@ var SchemasClient = class {
|
|
|
9027
9169
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
9028
9170
|
case 403:
|
|
9029
9171
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
9172
|
+
case 404:
|
|
9173
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
9174
|
+
case 409:
|
|
9175
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
9030
9176
|
case 429:
|
|
9031
9177
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
9032
9178
|
default:
|
|
@@ -9170,7 +9316,7 @@ var SchemasClient = class {
|
|
|
9170
9316
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/schemas/{id}");
|
|
9171
9317
|
}
|
|
9172
9318
|
/**
|
|
9173
|
-
* 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.
|
|
9319
|
+
* 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.
|
|
9174
9320
|
*
|
|
9175
9321
|
* @param {Vectros.DeleteSchemaRequest} request
|
|
9176
9322
|
* @param {SchemasClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -9297,7 +9443,7 @@ var ScriptsClient = class {
|
|
|
9297
9443
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
9298
9444
|
}
|
|
9299
9445
|
/**
|
|
9300
|
-
* 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
|
|
9446
|
+
* 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.
|
|
9301
9447
|
*
|
|
9302
9448
|
* **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.
|
|
9303
9449
|
*
|
|
@@ -9911,6 +10057,8 @@ var TriggersClient = class {
|
|
|
9911
10057
|
*
|
|
9912
10058
|
* @throws {@link Vectros.BadRequestError}
|
|
9913
10059
|
* @throws {@link Vectros.ForbiddenError}
|
|
10060
|
+
* @throws {@link Vectros.NotFoundError}
|
|
10061
|
+
* @throws {@link Vectros.ConflictError}
|
|
9914
10062
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
9915
10063
|
*
|
|
9916
10064
|
* @example
|
|
@@ -9968,6 +10116,10 @@ var TriggersClient = class {
|
|
|
9968
10116
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
9969
10117
|
case 403:
|
|
9970
10118
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
10119
|
+
case 404:
|
|
10120
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
10121
|
+
case 409:
|
|
10122
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
9971
10123
|
case 429:
|
|
9972
10124
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
9973
10125
|
default:
|
|
@@ -10044,6 +10196,7 @@ var TriggersClient = class {
|
|
|
10044
10196
|
* @throws {@link Vectros.BadRequestError}
|
|
10045
10197
|
* @throws {@link Vectros.ForbiddenError}
|
|
10046
10198
|
* @throws {@link Vectros.NotFoundError}
|
|
10199
|
+
* @throws {@link Vectros.ConflictError}
|
|
10047
10200
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
10048
10201
|
*
|
|
10049
10202
|
* @example
|
|
@@ -10101,6 +10254,8 @@ var TriggersClient = class {
|
|
|
10101
10254
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
10102
10255
|
case 404:
|
|
10103
10256
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
10257
|
+
case 409:
|
|
10258
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
10104
10259
|
case 429:
|
|
10105
10260
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
10106
10261
|
default:
|
|
@@ -10120,6 +10275,7 @@ var TriggersClient = class {
|
|
|
10120
10275
|
* @param {TriggersClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
10121
10276
|
*
|
|
10122
10277
|
* @throws {@link Vectros.NotFoundError}
|
|
10278
|
+
* @throws {@link Vectros.ConflictError}
|
|
10123
10279
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
10124
10280
|
*
|
|
10125
10281
|
* @example
|
|
@@ -10159,6 +10315,8 @@ var TriggersClient = class {
|
|
|
10159
10315
|
switch (_response.error.statusCode) {
|
|
10160
10316
|
case 404:
|
|
10161
10317
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
10318
|
+
case 409:
|
|
10319
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
10162
10320
|
case 429:
|
|
10163
10321
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
10164
10322
|
default:
|
|
@@ -10276,7 +10434,7 @@ function warnOnSuboptimalKey(key, log) {
|
|
|
10276
10434
|
if (key.prefix === "sk") {
|
|
10277
10435
|
log.warn(
|
|
10278
10436
|
{ prefix: key.prefix, env: key.env },
|
|
10279
|
-
'wildcard-scope key (sk_*) on a desktop MCP server is overly broad. For production, prefer a scoped ssk_* key bound to a narrowed AccessProfile
|
|
10437
|
+
'wildcard-scope key (sk_*) on a desktop MCP server is overly broad. For production, prefer a scoped ssk_* key bound to a narrowed AccessProfile: `npx -y @vectros-ai/cli bootstrap` mints one, and the "Recommended credential" section of this package\'s README describes it.'
|
|
10280
10438
|
);
|
|
10281
10439
|
} else if (key.prefix === "st") {
|
|
10282
10440
|
log.warn(
|
|
@@ -10288,8 +10446,8 @@ function warnOnSuboptimalKey(key, log) {
|
|
|
10288
10446
|
|
|
10289
10447
|
// src/build-info.ts
|
|
10290
10448
|
var BUILD_INFO = {
|
|
10291
|
-
mcpServer: true ? "0.18.
|
|
10292
|
-
sdk: true ? "0.
|
|
10449
|
+
mcpServer: true ? "0.18.2" : "dev",
|
|
10450
|
+
sdk: true ? "0.48.0" : "dev"
|
|
10293
10451
|
};
|
|
10294
10452
|
function formatBuildInfo() {
|
|
10295
10453
|
return `vectros-mcp-server ${BUILD_INFO.mcpServer} (sdk ${BUILD_INFO.sdk})`;
|
|
@@ -11268,7 +11426,7 @@ var inputSchema7 = {
|
|
|
11268
11426
|
),
|
|
11269
11427
|
status: import_zod7.z.string().optional().describe("Set the record lifecycle status (e.g. ARCHIVED) \u2014 archive/workflow without physical deletion."),
|
|
11270
11428
|
expectedVersion: import_zod7.z.number().int().optional().describe(
|
|
11271
|
-
"Optimistic concurrency: the version you last read. If the record changed since, the update is refused as a conflict (re-read and retry). Omit
|
|
11429
|
+
"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."
|
|
11272
11430
|
)
|
|
11273
11431
|
};
|
|
11274
11432
|
var recordUpdate = ({ client, log }) => ({
|
|
@@ -11338,7 +11496,7 @@ var import_zod10 = require("zod");
|
|
|
11338
11496
|
// src/tools/provider-alias.ts
|
|
11339
11497
|
var import_zod9 = require("zod");
|
|
11340
11498
|
var providerAliasInput = import_zod9.z.string().min(1, "providerAlias must be non-empty when supplied").optional().describe(
|
|
11341
|
-
"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.
|
|
11499
|
+
"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."
|
|
11342
11500
|
);
|
|
11343
11501
|
|
|
11344
11502
|
// src/tools/rag_ask.ts
|
|
@@ -11350,7 +11508,7 @@ var inputSchema9 = {
|
|
|
11350
11508
|
'System prompt that overrides the default for the generation step \u2014 e.g. "answer only from the provided context, cite sources, be concise". Default: a generic answer-from-context instruction.'
|
|
11351
11509
|
),
|
|
11352
11510
|
model: import_zod10.z.string().optional().describe(
|
|
11353
|
-
"Inference model alias (e.g. claude-haiku-
|
|
11511
|
+
"Inference model alias (e.g. claude-haiku-5-5, claude-sonnet-5-5, claude-opus-5-5). Omit it to use the platform default, which GET /v1/models reports as `defaultModel`; that endpoint also lists the catalog the calling key can reach. When `providerAlias` is set, this instead names the model on that provider's own id space."
|
|
11354
11512
|
),
|
|
11355
11513
|
providerAlias: providerAliasInput,
|
|
11356
11514
|
search: import_zod10.z.object({
|
|
@@ -11381,13 +11539,17 @@ var inputSchema9 = {
|
|
|
11381
11539
|
createdBefore: import_zod10.z.string().optional().describe("Same creation-time basis as createdAfter, bounding at/before this ISO 8601 UTC value."),
|
|
11382
11540
|
requireComplete: import_zod10.z.boolean().optional().describe("Fail closed (503) on a degraded search backend instead of grounding on partial results. Default false.")
|
|
11383
11541
|
}).optional().describe("Retrieval params + scoping. Default mode HYBRID, limit " + SEARCH_MCP_DEFAULT_LIMIT + "."),
|
|
11384
|
-
maxTokens: import_zod10.z.number().int().min(1).optional().describe(
|
|
11385
|
-
|
|
11542
|
+
maxTokens: import_zod10.z.number().int().min(1).optional().describe(
|
|
11543
|
+
"Max output tokens. claude-haiku-5-5, claude-sonnet-5, claude-sonnet-5-5 and claude-opus-5-5 can reason before they answer; when they do, the reasoning counts against this limit, so a small value can return little or no text. Leave headroom: 1024 or more for a short answer."
|
|
11544
|
+
),
|
|
11545
|
+
temperature: import_zod10.z.number().min(0).max(1).optional().describe(
|
|
11546
|
+
"Sampling temperature (0.0\u20131.0). Default 0.3 \u2014 lower favors deterministic, retrieval-grounded answers. The platform ignores it for claude-haiku-5-5, claude-sonnet-5, claude-sonnet-5-5 and claude-opus-5-5, which sample at their own default; it applies to models that accept a temperature, such as claude-haiku-4-5."
|
|
11547
|
+
)
|
|
11386
11548
|
};
|
|
11387
11549
|
var ragAsk = ({ client, log }) => ({
|
|
11388
11550
|
name: "rag_ask",
|
|
11389
11551
|
title: "RAG ask (corpus-wide)",
|
|
11390
|
-
description: "Ask a question grounded against your tenant's indexed content. Vectros performs a hybrid search, injects the top-K passages into the prompt, and streams a model answer back. Scope retrieval with `search` (ownership \u2014 `scope` for one ownership dimension or `scopeFilters` for several at once, e.g. one client within one org \u2014 folder, type, metadata filters, date window) to ground on a subset \u2014 e.g. one patient or one folder \u2014 and steer generation with `instructions`
|
|
11552
|
+
description: "Ask a question grounded against your tenant's indexed content. Vectros performs a hybrid search, injects the top-K passages into the prompt, and streams a model answer back. Scope retrieval with `search` (ownership \u2014 `scope` for one ownership dimension or `scopeFilters` for several at once, e.g. one client within one org \u2014 folder, type, metadata filters, date window) to ground on a subset \u2014 e.g. one patient or one folder \u2014 and steer generation with `instructions` (and `temperature`, for the models that accept one). The full answer is returned as a single response; progress notifications keep the call alive during the 30-45s generation window. Calls without `providerAlias` are served by platform-hosted AWS Bedrock. A call that sets `providerAlias` goes to your own model provider, outside Vectros's AWS BAA boundary.",
|
|
11391
11553
|
inputSchema: inputSchema9,
|
|
11392
11554
|
// NOT a pure read: this call reserves an atomic hold against the caller's prepaid inference
|
|
11393
11555
|
// balance before generation starts, then debits it on completion — a real financial side
|
|
@@ -11489,10 +11651,12 @@ var inputSchema10 = {
|
|
|
11489
11651
|
documentId: import_zod11.z.string().min(1, "documentId is required").describe("ID of the document to ask against."),
|
|
11490
11652
|
prompt: import_zod11.z.string().min(1, "prompt is required").describe("Question to ask about the document."),
|
|
11491
11653
|
model: import_zod11.z.string().optional().describe(
|
|
11492
|
-
"Inference model alias.
|
|
11654
|
+
"Inference model alias. Omit it to use the platform default, which GET /v1/models reports as `defaultModel`; that endpoint also lists the catalog the calling key can reach. When `providerAlias` is set, this instead names the model on that provider's own id space."
|
|
11493
11655
|
),
|
|
11494
11656
|
providerAlias: providerAliasInput,
|
|
11495
|
-
maxTokens: import_zod11.z.number().int().min(1).optional().describe(
|
|
11657
|
+
maxTokens: import_zod11.z.number().int().min(1).optional().describe(
|
|
11658
|
+
"Max output tokens. claude-haiku-5-5, claude-sonnet-5, claude-sonnet-5-5 and claude-opus-5-5 can reason before they answer; when they do, the reasoning counts against this limit, so a small value can return little or no text. Leave headroom: 1024 or more for a short answer."
|
|
11659
|
+
)
|
|
11496
11660
|
};
|
|
11497
11661
|
var documentAsk = ({ client, log }) => ({
|
|
11498
11662
|
name: "document_ask",
|
|
@@ -11843,7 +12007,7 @@ var inputSchema14 = {
|
|
|
11843
12007
|
'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).'
|
|
11844
12008
|
),
|
|
11845
12009
|
expectedVersion: import_zod15.z.number().int().optional().describe(
|
|
11846
|
-
"Optimistic concurrency: the version you last read. If the document changed since, the update is refused as a conflict (re-read and retry). Omit
|
|
12010
|
+
"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."
|
|
11847
12011
|
)
|
|
11848
12012
|
};
|
|
11849
12013
|
var documentUpdate = ({ client, log }) => ({
|
|
@@ -11997,10 +12161,8 @@ var folderCreate = ({ client, log }) => ({
|
|
|
11997
12161
|
// freshly-proved-free value, so the idempotency check running after that derivation can never
|
|
11998
12162
|
// match on the default path. `slug` is optional, so this is annotated for the less-safe default —
|
|
11999
12163
|
// the same standard applied to record_create/document_ingest/record_batch_write's identical
|
|
12000
|
-
// optional-dedupe-key shape. (
|
|
12001
|
-
//
|
|
12002
|
-
// from the optional-externalId tools — that reasoning was wrong: the derivation is unconditional,
|
|
12003
|
-
// but it is unconditionally NON-colliding by construction, which is the opposite property.)
|
|
12164
|
+
// optional-dedupe-key shape. (The slug derivation being unconditional does not make the tool
|
|
12165
|
+
// idempotent: it is unconditionally NON-colliding by construction, which is the opposite property.)
|
|
12004
12166
|
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false },
|
|
12005
12167
|
handler: async (args) => {
|
|
12006
12168
|
try {
|
|
@@ -12035,7 +12197,7 @@ var inputSchema18 = {
|
|
|
12035
12197
|
'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).'
|
|
12036
12198
|
),
|
|
12037
12199
|
expectedVersion: import_zod19.z.number().int().optional().describe(
|
|
12038
|
-
"Optimistic concurrency: the version you last read. If the folder changed since, the update is refused as a conflict (re-read and retry). Omit
|
|
12200
|
+
"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."
|
|
12039
12201
|
)
|
|
12040
12202
|
};
|
|
12041
12203
|
var folderUpdate = ({ client, log }) => ({
|
|
@@ -12080,7 +12242,7 @@ var inputSchema19 = {
|
|
|
12080
12242
|
var folderDelete = ({ client, log }) => ({
|
|
12081
12243
|
name: "folder_delete",
|
|
12082
12244
|
title: "Delete a folder",
|
|
12083
|
-
description: 'Permanently delete a folder by id. The folder must be EMPTY first \u2014 it must contain no documents, no records, and no sub-folders \u2014 and a non-empty folder is refused, which is the most common way this call fails. Use record_query with this folderId, and document_query, to see what is in it. Clearing it differs by content type: a document can be moved out (document_update with a different folderId) or deleted. A RECORD can also be re-filed into another folder \u2014 the API supports it \u2014 but THIS SERVER does not expose that yet: record_update has no folderId argument, so from here your only option is record_delete (needs records:d). Do NOT read that as "the record cannot be moved" and delete
|
|
12245
|
+
description: 'Permanently delete a folder by id. The folder must be EMPTY first \u2014 it must contain no documents, no records, and no sub-folders \u2014 and a non-empty folder is refused, which is the most common way this call fails. Use record_query with this folderId, and document_query, to see what is in it. Clearing it differs by content type: a document can be moved out (document_update with a different folderId) or deleted. A RECORD can also be re-filed into another folder \u2014 the API supports it \u2014 but THIS SERVER does not expose that yet: record_update has no folderId argument, so from here your only option is record_delete (needs records:d). Do NOT read that as "the record cannot be moved" and delete the record on that basis: if the record should be kept, tell the user to move it with the Vectros API/SDK directly rather than deleting it here. A sub-folder cannot be re-parented at all, so nested folders have to be emptied and deleted innermost-first. Note the emptiness check counts everything in the folder, INCLUDING items your credential cannot read \u2014 so a refusal you cannot account for from what you can list is expected behaviour, not a bug, and retrying will not clear it. Requires the key to allow folders:d \u2014 a key without it gets a permission error. Protected folders (e.g. a context root) cannot be deleted at all, however empty.',
|
|
12084
12246
|
inputSchema: inputSchema19,
|
|
12085
12247
|
// Deletes. Idempotent in the standard REST sense: the end state ("this id no longer
|
|
12086
12248
|
// resolves") is the same whether this is the first delete or a repeat of one.
|
|
@@ -12106,7 +12268,7 @@ var inputSchema20 = {
|
|
|
12106
12268
|
var currentIdentity = ({ log, apiKey, environment }) => ({
|
|
12107
12269
|
name: "current_identity",
|
|
12108
12270
|
title: "Current identity (tenant + principal scope)",
|
|
12109
|
-
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
|
|
12271
|
+
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.",
|
|
12110
12272
|
inputSchema: inputSchema20,
|
|
12111
12273
|
// A pure read (/v1/ping) — never creates, modifies, or deletes anything server-side.
|
|
12112
12274
|
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
@@ -12630,7 +12792,7 @@ var identityResource = ({ log, apiKey, environment }) => ({
|
|
|
12630
12792
|
name: "identity",
|
|
12631
12793
|
uri: "vectros://identity",
|
|
12632
12794
|
title: "Current identity (tenant + principal scope)",
|
|
12633
|
-
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
|
|
12795
|
+
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.",
|
|
12634
12796
|
mimeType: "application/json",
|
|
12635
12797
|
read: async () => {
|
|
12636
12798
|
const identity = await resolveIdentity({ log, apiKey, environment });
|