@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.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// src/server.ts
|
|
4
4
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
5
5
|
|
|
6
|
-
// node_modules/@vectros-ai/sdk/dist/index.mjs
|
|
6
|
+
// ../../node_modules/@vectros-ai/sdk/dist/index.mjs
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __export = (target, all) => {
|
|
9
9
|
for (var name in all)
|
|
@@ -18,9 +18,11 @@ __export(api_exports, {
|
|
|
18
18
|
BatchWriteRequest: () => BatchWriteRequest,
|
|
19
19
|
BatchWriteResult: () => BatchWriteResult,
|
|
20
20
|
ChatMessage: () => ChatMessage,
|
|
21
|
+
ChatRequest: () => ChatRequest,
|
|
21
22
|
ConflictError: () => ConflictError,
|
|
22
23
|
ContentDeltaEvent: () => ContentDeltaEvent,
|
|
23
24
|
ContentTooLargeError: () => ContentTooLargeError,
|
|
25
|
+
DocumentAskRequest: () => DocumentAskRequest,
|
|
24
26
|
DocumentContextEvent: () => DocumentContextEvent,
|
|
25
27
|
DocumentLookupRequest: () => DocumentLookupRequest,
|
|
26
28
|
DocumentPatchRequest: () => DocumentPatchRequest,
|
|
@@ -51,8 +53,10 @@ __export(api_exports, {
|
|
|
51
53
|
NotImplementedError: () => NotImplementedError,
|
|
52
54
|
PaymentRequiredError: () => PaymentRequiredError,
|
|
53
55
|
PingResponse: () => PingResponse,
|
|
56
|
+
RagRequest: () => RagRequest,
|
|
54
57
|
RagSearch: () => RagSearch,
|
|
55
58
|
ReadAccessLogResponse: () => ReadAccessLogResponse,
|
|
59
|
+
ReasoningDeltaEvent: () => ReasoningDeltaEvent,
|
|
56
60
|
RecordLookupRequest: () => RecordLookupRequest,
|
|
57
61
|
RecordRequest: () => RecordRequest,
|
|
58
62
|
RecordResponse: () => RecordResponse,
|
|
@@ -408,7 +412,33 @@ var ListUsersRequestOrder = {
|
|
|
408
412
|
Asc: "asc",
|
|
409
413
|
Desc: "desc"
|
|
410
414
|
};
|
|
415
|
+
var ChatRequest;
|
|
416
|
+
((ChatRequest2) => {
|
|
417
|
+
ChatRequest2.Reasoning = {
|
|
418
|
+
Omit: "omit",
|
|
419
|
+
Stream: "stream"
|
|
420
|
+
};
|
|
421
|
+
})(ChatRequest || (ChatRequest = {}));
|
|
422
|
+
var DocumentAskRequest;
|
|
423
|
+
((DocumentAskRequest2) => {
|
|
424
|
+
DocumentAskRequest2.Reasoning = {
|
|
425
|
+
Omit: "omit",
|
|
426
|
+
Stream: "stream"
|
|
427
|
+
};
|
|
428
|
+
})(DocumentAskRequest || (DocumentAskRequest = {}));
|
|
429
|
+
var RagRequest;
|
|
430
|
+
((RagRequest2) => {
|
|
431
|
+
RagRequest2.Reasoning = {
|
|
432
|
+
Omit: "omit",
|
|
433
|
+
Stream: "stream"
|
|
434
|
+
};
|
|
435
|
+
})(RagRequest || (RagRequest = {}));
|
|
411
436
|
var inference_exports = {};
|
|
437
|
+
__export(inference_exports, {
|
|
438
|
+
ChatRequest: () => ChatRequest,
|
|
439
|
+
DocumentAskRequest: () => DocumentAskRequest,
|
|
440
|
+
RagRequest: () => RagRequest
|
|
441
|
+
});
|
|
412
442
|
var BatchWriteRequest;
|
|
413
443
|
((BatchWriteRequest2) => {
|
|
414
444
|
BatchWriteRequest2.Atomicity = {
|
|
@@ -681,6 +711,12 @@ var ReadAccessLogResponse;
|
|
|
681
711
|
Rag: "rag"
|
|
682
712
|
};
|
|
683
713
|
})(ReadAccessLogResponse || (ReadAccessLogResponse = {}));
|
|
714
|
+
var ReasoningDeltaEvent;
|
|
715
|
+
((ReasoningDeltaEvent2) => {
|
|
716
|
+
ReasoningDeltaEvent2.Event = {
|
|
717
|
+
ReasoningDelta: "reasoning_delta"
|
|
718
|
+
};
|
|
719
|
+
})(ReasoningDeltaEvent || (ReasoningDeltaEvent = {}));
|
|
684
720
|
var RecordRequest;
|
|
685
721
|
((RecordRequest2) => {
|
|
686
722
|
RecordRequest2.Status = {
|
|
@@ -2433,7 +2469,7 @@ var AuthClient = class {
|
|
|
2433
2469
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/jwks");
|
|
2434
2470
|
}
|
|
2435
2471
|
/**
|
|
2436
|
-
* 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.
|
|
2472
|
+
* 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.
|
|
2437
2473
|
*
|
|
2438
2474
|
* @param {Vectros.GetAccessLogRequest} request
|
|
2439
2475
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -2575,7 +2611,7 @@ var AuthClient = class {
|
|
|
2575
2611
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/admin/keys/scoped");
|
|
2576
2612
|
}
|
|
2577
2613
|
/**
|
|
2578
|
-
* 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
|
|
2614
|
+
* 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.
|
|
2579
2615
|
*
|
|
2580
2616
|
* @param {Vectros.CreateScopedKeyRequest} request
|
|
2581
2617
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -2918,6 +2954,7 @@ var AuthClient = class {
|
|
|
2918
2954
|
* @throws {@link Vectros.BadRequestError}
|
|
2919
2955
|
* @throws {@link Vectros.ForbiddenError}
|
|
2920
2956
|
* @throws {@link Vectros.NotFoundError}
|
|
2957
|
+
* @throws {@link Vectros.ConflictError}
|
|
2921
2958
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
2922
2959
|
*
|
|
2923
2960
|
* @example
|
|
@@ -2970,6 +3007,8 @@ var AuthClient = class {
|
|
|
2970
3007
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
2971
3008
|
case 404:
|
|
2972
3009
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3010
|
+
case 409:
|
|
3011
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
2973
3012
|
case 429:
|
|
2974
3013
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
2975
3014
|
default:
|
|
@@ -3053,6 +3092,8 @@ var AuthClient = class {
|
|
|
3053
3092
|
* @throws {@link Vectros.BadRequestError}
|
|
3054
3093
|
* @throws {@link Vectros.PaymentRequiredError}
|
|
3055
3094
|
* @throws {@link Vectros.ForbiddenError}
|
|
3095
|
+
* @throws {@link Vectros.NotFoundError}
|
|
3096
|
+
* @throws {@link Vectros.ConflictError}
|
|
3056
3097
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3057
3098
|
*
|
|
3058
3099
|
* @example
|
|
@@ -3105,6 +3146,10 @@ var AuthClient = class {
|
|
|
3105
3146
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
3106
3147
|
case 403:
|
|
3107
3148
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3149
|
+
case 404:
|
|
3150
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3151
|
+
case 409:
|
|
3152
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3108
3153
|
case 429:
|
|
3109
3154
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3110
3155
|
default:
|
|
@@ -3193,6 +3238,7 @@ var AuthClient = class {
|
|
|
3193
3238
|
* @throws {@link Vectros.BadRequestError}
|
|
3194
3239
|
* @throws {@link Vectros.ForbiddenError}
|
|
3195
3240
|
* @throws {@link Vectros.NotFoundError}
|
|
3241
|
+
* @throws {@link Vectros.ConflictError}
|
|
3196
3242
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3197
3243
|
*
|
|
3198
3244
|
* @example
|
|
@@ -3249,6 +3295,8 @@ var AuthClient = class {
|
|
|
3249
3295
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3250
3296
|
case 404:
|
|
3251
3297
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3298
|
+
case 409:
|
|
3299
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3252
3300
|
case 429:
|
|
3253
3301
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3254
3302
|
default:
|
|
@@ -3339,6 +3387,7 @@ var AuthClient = class {
|
|
|
3339
3387
|
* @throws {@link Vectros.BadRequestError}
|
|
3340
3388
|
* @throws {@link Vectros.ForbiddenError}
|
|
3341
3389
|
* @throws {@link Vectros.NotFoundError}
|
|
3390
|
+
* @throws {@link Vectros.ConflictError}
|
|
3342
3391
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3343
3392
|
*
|
|
3344
3393
|
* @example
|
|
@@ -3389,6 +3438,8 @@ var AuthClient = class {
|
|
|
3389
3438
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3390
3439
|
case 404:
|
|
3391
3440
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3441
|
+
case 409:
|
|
3442
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3392
3443
|
case 429:
|
|
3393
3444
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3394
3445
|
default:
|
|
@@ -3535,13 +3586,14 @@ var AuthClient = class {
|
|
|
3535
3586
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/app-contexts/{contextId}");
|
|
3536
3587
|
}
|
|
3537
3588
|
/**
|
|
3538
|
-
* 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
|
|
3589
|
+
* 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.
|
|
3539
3590
|
*
|
|
3540
3591
|
* @param {Vectros.UpdateAppContextRequest} request
|
|
3541
3592
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
3542
3593
|
*
|
|
3543
3594
|
* @throws {@link Vectros.ForbiddenError}
|
|
3544
3595
|
* @throws {@link Vectros.NotFoundError}
|
|
3596
|
+
* @throws {@link Vectros.ConflictError}
|
|
3545
3597
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3546
3598
|
*
|
|
3547
3599
|
* @example
|
|
@@ -3590,6 +3642,8 @@ var AuthClient = class {
|
|
|
3590
3642
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3591
3643
|
case 404:
|
|
3592
3644
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3645
|
+
case 409:
|
|
3646
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3593
3647
|
case 429:
|
|
3594
3648
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3595
3649
|
default:
|
|
@@ -3746,6 +3800,7 @@ var AuthClient = class {
|
|
|
3746
3800
|
*
|
|
3747
3801
|
* @throws {@link Vectros.ForbiddenError}
|
|
3748
3802
|
* @throws {@link Vectros.NotFoundError}
|
|
3803
|
+
* @throws {@link Vectros.ConflictError}
|
|
3749
3804
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3750
3805
|
*
|
|
3751
3806
|
* @example
|
|
@@ -3798,6 +3853,8 @@ var AuthClient = class {
|
|
|
3798
3853
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3799
3854
|
case 404:
|
|
3800
3855
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3856
|
+
case 409:
|
|
3857
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3801
3858
|
case 429:
|
|
3802
3859
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3803
3860
|
default:
|
|
@@ -3823,6 +3880,7 @@ var AuthClient = class {
|
|
|
3823
3880
|
*
|
|
3824
3881
|
* @throws {@link Vectros.ForbiddenError}
|
|
3825
3882
|
* @throws {@link Vectros.NotFoundError}
|
|
3883
|
+
* @throws {@link Vectros.ConflictError}
|
|
3826
3884
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
3827
3885
|
*
|
|
3828
3886
|
* @example
|
|
@@ -3865,6 +3923,8 @@ var AuthClient = class {
|
|
|
3865
3923
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
3866
3924
|
case 404:
|
|
3867
3925
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
3926
|
+
case 409:
|
|
3927
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
3868
3928
|
case 429:
|
|
3869
3929
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
3870
3930
|
default:
|
|
@@ -4138,7 +4198,7 @@ var AuthClient = class {
|
|
|
4138
4198
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/issuers/{issuerId}");
|
|
4139
4199
|
}
|
|
4140
4200
|
/**
|
|
4141
|
-
* 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
|
|
4201
|
+
* 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.
|
|
4142
4202
|
*
|
|
4143
4203
|
* @param {Vectros.IssuerUpdateRequest} request
|
|
4144
4204
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4146,6 +4206,7 @@ var AuthClient = class {
|
|
|
4146
4206
|
* @throws {@link Vectros.BadRequestError}
|
|
4147
4207
|
* @throws {@link Vectros.ForbiddenError}
|
|
4148
4208
|
* @throws {@link Vectros.NotFoundError}
|
|
4209
|
+
* @throws {@link Vectros.ConflictError}
|
|
4149
4210
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
4150
4211
|
*
|
|
4151
4212
|
* @example
|
|
@@ -4192,6 +4253,8 @@ var AuthClient = class {
|
|
|
4192
4253
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
4193
4254
|
case 404:
|
|
4194
4255
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
4256
|
+
case 409:
|
|
4257
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
4195
4258
|
case 429:
|
|
4196
4259
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
4197
4260
|
default:
|
|
@@ -4205,7 +4268,7 @@ var AuthClient = class {
|
|
|
4205
4268
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/auth/issuers/{issuerId}");
|
|
4206
4269
|
}
|
|
4207
4270
|
/**
|
|
4208
|
-
* 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
|
|
4271
|
+
* 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.
|
|
4209
4272
|
*
|
|
4210
4273
|
* @param {Vectros.DeleteIssuerRequest} request
|
|
4211
4274
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4331,7 +4394,7 @@ var AuthClient = class {
|
|
|
4331
4394
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/issuers");
|
|
4332
4395
|
}
|
|
4333
4396
|
/**
|
|
4334
|
-
* 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
|
|
4397
|
+
* 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.
|
|
4335
4398
|
*
|
|
4336
4399
|
* @param {Vectros.IssuerRequest} request
|
|
4337
4400
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4740,6 +4803,7 @@ var AuthClient = class {
|
|
|
4740
4803
|
* @throws {@link Vectros.BadRequestError}
|
|
4741
4804
|
* @throws {@link Vectros.ForbiddenError}
|
|
4742
4805
|
* @throws {@link Vectros.NotFoundError}
|
|
4806
|
+
* @throws {@link Vectros.ConflictError}
|
|
4743
4807
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
4744
4808
|
*
|
|
4745
4809
|
* @example
|
|
@@ -4787,6 +4851,8 @@ var AuthClient = class {
|
|
|
4787
4851
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
4788
4852
|
case 404:
|
|
4789
4853
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
4854
|
+
case 409:
|
|
4855
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
4790
4856
|
case 429:
|
|
4791
4857
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
4792
4858
|
default:
|
|
@@ -4886,6 +4952,7 @@ var AuthClient = class {
|
|
|
4886
4952
|
* @throws {@link Vectros.UnauthorizedError}
|
|
4887
4953
|
* @throws {@link Vectros.ForbiddenError}
|
|
4888
4954
|
* @throws {@link Vectros.NotFoundError}
|
|
4955
|
+
* @throws {@link Vectros.ContentTooLargeError}
|
|
4889
4956
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
4890
4957
|
*
|
|
4891
4958
|
* @example
|
|
@@ -4930,6 +4997,8 @@ var AuthClient = class {
|
|
|
4930
4997
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
4931
4998
|
case 404:
|
|
4932
4999
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
5000
|
+
case 413:
|
|
5001
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
4933
5002
|
case 429:
|
|
4934
5003
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
4935
5004
|
default:
|
|
@@ -4948,7 +5017,7 @@ var ComplianceClient = class {
|
|
|
4948
5017
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
4949
5018
|
}
|
|
4950
5019
|
/**
|
|
4951
|
-
* Submits
|
|
5020
|
+
* 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.
|
|
4952
5021
|
*
|
|
4953
5022
|
* @param {Vectros.ErasureRequest} request
|
|
4954
5023
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5011,7 +5080,7 @@ var ComplianceClient = class {
|
|
|
5011
5080
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/erasure-requests");
|
|
5012
5081
|
}
|
|
5013
5082
|
/**
|
|
5014
|
-
* 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
|
|
5083
|
+
* 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.
|
|
5015
5084
|
*
|
|
5016
5085
|
* @param {Vectros.GetErasureRequestRequest} request
|
|
5017
5086
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5069,7 +5138,7 @@ var ComplianceClient = class {
|
|
|
5069
5138
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/erasure-requests/{id}");
|
|
5070
5139
|
}
|
|
5071
5140
|
/**
|
|
5072
|
-
*
|
|
5141
|
+
* 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.
|
|
5073
5142
|
*
|
|
5074
5143
|
* @param {Vectros.ExportRequest} request
|
|
5075
5144
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5130,7 +5199,7 @@ var ComplianceClient = class {
|
|
|
5130
5199
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/admin/export");
|
|
5131
5200
|
}
|
|
5132
5201
|
/**
|
|
5133
|
-
*
|
|
5202
|
+
* 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.
|
|
5134
5203
|
*
|
|
5135
5204
|
* @param {Vectros.GetExportRequest} request
|
|
5136
5205
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5261,6 +5330,8 @@ var DocumentsClient = class {
|
|
|
5261
5330
|
*
|
|
5262
5331
|
* @throws {@link Vectros.BadRequestError}
|
|
5263
5332
|
* @throws {@link Vectros.ForbiddenError}
|
|
5333
|
+
* @throws {@link Vectros.NotFoundError}
|
|
5334
|
+
* @throws {@link Vectros.ConflictError}
|
|
5264
5335
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
5265
5336
|
*
|
|
5266
5337
|
* @example
|
|
@@ -5312,6 +5383,10 @@ var DocumentsClient = class {
|
|
|
5312
5383
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
5313
5384
|
case 403:
|
|
5314
5385
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
5386
|
+
case 404:
|
|
5387
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
5388
|
+
case 409:
|
|
5389
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
5315
5390
|
case 429:
|
|
5316
5391
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
5317
5392
|
default:
|
|
@@ -5459,6 +5534,7 @@ var DocumentsClient = class {
|
|
|
5459
5534
|
* @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
5460
5535
|
*
|
|
5461
5536
|
* @throws {@link Vectros.NotFoundError}
|
|
5537
|
+
* @throws {@link Vectros.ConflictError}
|
|
5462
5538
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
5463
5539
|
*
|
|
5464
5540
|
* @example
|
|
@@ -5498,6 +5574,8 @@ var DocumentsClient = class {
|
|
|
5498
5574
|
switch (_response.error.statusCode) {
|
|
5499
5575
|
case 404:
|
|
5500
5576
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
5577
|
+
case 409:
|
|
5578
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
5501
5579
|
case 429:
|
|
5502
5580
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
5503
5581
|
default:
|
|
@@ -5790,7 +5868,7 @@ var DocumentsClient = class {
|
|
|
5790
5868
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/documents/{id}/download");
|
|
5791
5869
|
}
|
|
5792
5870
|
/**
|
|
5793
|
-
* Returns the document's full text body when it is retained:
|
|
5871
|
+
* 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.
|
|
5794
5872
|
*
|
|
5795
5873
|
* @param {Vectros.GetDocumentTextRequest} request
|
|
5796
5874
|
* @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5910,6 +5988,7 @@ var DocumentsClient = class {
|
|
|
5910
5988
|
*
|
|
5911
5989
|
* @throws {@link Vectros.BadRequestError}
|
|
5912
5990
|
* @throws {@link Vectros.ForbiddenError}
|
|
5991
|
+
* @throws {@link Vectros.ConflictError}
|
|
5913
5992
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
5914
5993
|
*
|
|
5915
5994
|
* @example
|
|
@@ -5959,6 +6038,8 @@ var DocumentsClient = class {
|
|
|
5959
6038
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
5960
6039
|
case 403:
|
|
5961
6040
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6041
|
+
case 409:
|
|
6042
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
5962
6043
|
case 429:
|
|
5963
6044
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
5964
6045
|
default:
|
|
@@ -6042,6 +6123,8 @@ var FoldersClient = class {
|
|
|
6042
6123
|
*
|
|
6043
6124
|
* @throws {@link Vectros.BadRequestError}
|
|
6044
6125
|
* @throws {@link Vectros.ForbiddenError}
|
|
6126
|
+
* @throws {@link Vectros.NotFoundError}
|
|
6127
|
+
* @throws {@link Vectros.ConflictError}
|
|
6045
6128
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6046
6129
|
*
|
|
6047
6130
|
* @example
|
|
@@ -6091,6 +6174,10 @@ var FoldersClient = class {
|
|
|
6091
6174
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6092
6175
|
case 403:
|
|
6093
6176
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6177
|
+
case 404:
|
|
6178
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6179
|
+
case 409:
|
|
6180
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6094
6181
|
case 429:
|
|
6095
6182
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6096
6183
|
default:
|
|
@@ -6166,6 +6253,7 @@ var FoldersClient = class {
|
|
|
6166
6253
|
*
|
|
6167
6254
|
* @throws {@link Vectros.ForbiddenError}
|
|
6168
6255
|
* @throws {@link Vectros.NotFoundError}
|
|
6256
|
+
* @throws {@link Vectros.ConflictError}
|
|
6169
6257
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6170
6258
|
*
|
|
6171
6259
|
* @example
|
|
@@ -6213,6 +6301,8 @@ var FoldersClient = class {
|
|
|
6213
6301
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6214
6302
|
case 404:
|
|
6215
6303
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6304
|
+
case 409:
|
|
6305
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6216
6306
|
case 429:
|
|
6217
6307
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6218
6308
|
default:
|
|
@@ -6233,6 +6323,7 @@ var FoldersClient = class {
|
|
|
6233
6323
|
*
|
|
6234
6324
|
* @throws {@link Vectros.BadRequestError}
|
|
6235
6325
|
* @throws {@link Vectros.NotFoundError}
|
|
6326
|
+
* @throws {@link Vectros.ConflictError}
|
|
6236
6327
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6237
6328
|
*
|
|
6238
6329
|
* @example
|
|
@@ -6274,6 +6365,8 @@ var FoldersClient = class {
|
|
|
6274
6365
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6275
6366
|
case 404:
|
|
6276
6367
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6368
|
+
case 409:
|
|
6369
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6277
6370
|
case 429:
|
|
6278
6371
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6279
6372
|
default:
|
|
@@ -6287,7 +6380,7 @@ var FoldersClient = class {
|
|
|
6287
6380
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/folders/{id}");
|
|
6288
6381
|
}
|
|
6289
6382
|
/**
|
|
6290
|
-
* 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
|
|
6383
|
+
* 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.
|
|
6291
6384
|
*
|
|
6292
6385
|
* @param {Vectros.PatchFolderRequest} request
|
|
6293
6386
|
* @param {FoldersClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -6510,6 +6603,8 @@ var IdentityClient = class {
|
|
|
6510
6603
|
*
|
|
6511
6604
|
* @throws {@link Vectros.BadRequestError}
|
|
6512
6605
|
* @throws {@link Vectros.ForbiddenError}
|
|
6606
|
+
* @throws {@link Vectros.NotFoundError}
|
|
6607
|
+
* @throws {@link Vectros.ConflictError}
|
|
6513
6608
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6514
6609
|
*
|
|
6515
6610
|
* @example
|
|
@@ -6562,6 +6657,10 @@ var IdentityClient = class {
|
|
|
6562
6657
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6563
6658
|
case 403:
|
|
6564
6659
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
6660
|
+
case 404:
|
|
6661
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6662
|
+
case 409:
|
|
6663
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6565
6664
|
case 429:
|
|
6566
6665
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6567
6666
|
default:
|
|
@@ -6642,6 +6741,7 @@ var IdentityClient = class {
|
|
|
6642
6741
|
*
|
|
6643
6742
|
* @throws {@link Vectros.BadRequestError}
|
|
6644
6743
|
* @throws {@link Vectros.NotFoundError}
|
|
6744
|
+
* @throws {@link Vectros.ConflictError}
|
|
6645
6745
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6646
6746
|
*
|
|
6647
6747
|
* @example
|
|
@@ -6694,6 +6794,8 @@ var IdentityClient = class {
|
|
|
6694
6794
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
6695
6795
|
case 404:
|
|
6696
6796
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6797
|
+
case 409:
|
|
6798
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6697
6799
|
case 429:
|
|
6698
6800
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6699
6801
|
default:
|
|
@@ -6713,6 +6815,7 @@ var IdentityClient = class {
|
|
|
6713
6815
|
* @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
6714
6816
|
*
|
|
6715
6817
|
* @throws {@link Vectros.NotFoundError}
|
|
6818
|
+
* @throws {@link Vectros.ConflictError}
|
|
6716
6819
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6717
6820
|
*
|
|
6718
6821
|
* @example
|
|
@@ -6757,6 +6860,8 @@ var IdentityClient = class {
|
|
|
6757
6860
|
switch (_response.error.statusCode) {
|
|
6758
6861
|
case 404:
|
|
6759
6862
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
6863
|
+
case 409:
|
|
6864
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
6760
6865
|
case 429:
|
|
6761
6866
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
6762
6867
|
default:
|
|
@@ -6980,6 +7085,7 @@ var IdentityClient = class {
|
|
|
6980
7085
|
*
|
|
6981
7086
|
* @throws {@link Vectros.ForbiddenError}
|
|
6982
7087
|
* @throws {@link Vectros.NotFoundError}
|
|
7088
|
+
* @throws {@link Vectros.ConflictError}
|
|
6983
7089
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
6984
7090
|
*
|
|
6985
7091
|
* @example
|
|
@@ -7031,6 +7137,8 @@ var IdentityClient = class {
|
|
|
7031
7137
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7032
7138
|
case 404:
|
|
7033
7139
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7140
|
+
case 409:
|
|
7141
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7034
7142
|
case 429:
|
|
7035
7143
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7036
7144
|
default:
|
|
@@ -7051,6 +7159,7 @@ var IdentityClient = class {
|
|
|
7051
7159
|
*
|
|
7052
7160
|
* @throws {@link Vectros.ForbiddenError}
|
|
7053
7161
|
* @throws {@link Vectros.NotFoundError}
|
|
7162
|
+
* @throws {@link Vectros.ConflictError}
|
|
7054
7163
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7055
7164
|
*
|
|
7056
7165
|
* @example
|
|
@@ -7095,6 +7204,8 @@ var IdentityClient = class {
|
|
|
7095
7204
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7096
7205
|
case 404:
|
|
7097
7206
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7207
|
+
case 409:
|
|
7208
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7098
7209
|
case 429:
|
|
7099
7210
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7100
7211
|
default:
|
|
@@ -7159,7 +7270,7 @@ var IdentityClient = class {
|
|
|
7159
7270
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/namespaces");
|
|
7160
7271
|
}
|
|
7161
7272
|
/**
|
|
7162
|
-
* 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
|
|
7273
|
+
* 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.
|
|
7163
7274
|
*
|
|
7164
7275
|
* @param {Vectros.RegisterNamespaceRequest} request
|
|
7165
7276
|
* @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -7301,6 +7412,7 @@ var IdentityClient = class {
|
|
|
7301
7412
|
*
|
|
7302
7413
|
* @throws {@link Vectros.BadRequestError}
|
|
7303
7414
|
* @throws {@link Vectros.ForbiddenError}
|
|
7415
|
+
* @throws {@link Vectros.ConflictError}
|
|
7304
7416
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7305
7417
|
*
|
|
7306
7418
|
* @example
|
|
@@ -7350,6 +7462,8 @@ var IdentityClient = class {
|
|
|
7350
7462
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
7351
7463
|
case 403:
|
|
7352
7464
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7465
|
+
case 409:
|
|
7466
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7353
7467
|
case 429:
|
|
7354
7468
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7355
7469
|
default:
|
|
@@ -7418,13 +7532,14 @@ var IdentityClient = class {
|
|
|
7418
7532
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/users/{id}");
|
|
7419
7533
|
}
|
|
7420
7534
|
/**
|
|
7421
|
-
* 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.
|
|
7535
|
+
* 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.
|
|
7422
7536
|
*
|
|
7423
7537
|
* @param {Vectros.UpdateUserRequest} request
|
|
7424
7538
|
* @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
7425
7539
|
*
|
|
7426
7540
|
* @throws {@link Vectros.BadRequestError}
|
|
7427
7541
|
* @throws {@link Vectros.NotFoundError}
|
|
7542
|
+
* @throws {@link Vectros.ConflictError}
|
|
7428
7543
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
7429
7544
|
*
|
|
7430
7545
|
* @example
|
|
@@ -7472,6 +7587,8 @@ var IdentityClient = class {
|
|
|
7472
7587
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
7473
7588
|
case 404:
|
|
7474
7589
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7590
|
+
case 409:
|
|
7591
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
7475
7592
|
case 429:
|
|
7476
7593
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7477
7594
|
default:
|
|
@@ -7733,7 +7850,7 @@ var InferenceClient = class {
|
|
|
7733
7850
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
7734
7851
|
}
|
|
7735
7852
|
/**
|
|
7736
|
-
* Returns
|
|
7853
|
+
* 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`.
|
|
7737
7854
|
*
|
|
7738
7855
|
* @param {InferenceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
7739
7856
|
*
|
|
@@ -7777,7 +7894,7 @@ var InferenceClient = class {
|
|
|
7777
7894
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/models");
|
|
7778
7895
|
}
|
|
7779
7896
|
/**
|
|
7780
|
-
* 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.
|
|
7897
|
+
* 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.
|
|
7781
7898
|
*/
|
|
7782
7899
|
chatInference(request, requestOptions) {
|
|
7783
7900
|
return HttpResponsePromise.fromPromise(this.__chatInference(request, requestOptions));
|
|
@@ -7830,8 +7947,14 @@ var InferenceClient = class {
|
|
|
7830
7947
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
7831
7948
|
case 403:
|
|
7832
7949
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7950
|
+
case 404:
|
|
7951
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
7952
|
+
case 413:
|
|
7953
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7833
7954
|
case 429:
|
|
7834
7955
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7956
|
+
case 503:
|
|
7957
|
+
throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
7835
7958
|
default:
|
|
7836
7959
|
throw new VectrosError({
|
|
7837
7960
|
statusCode: _response.error.statusCode,
|
|
@@ -7905,6 +8028,8 @@ var InferenceClient = class {
|
|
|
7905
8028
|
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7906
8029
|
case 429:
|
|
7907
8030
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
8031
|
+
case 503:
|
|
8032
|
+
throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
7908
8033
|
default:
|
|
7909
8034
|
throw new VectrosError({
|
|
7910
8035
|
statusCode: _response.error.statusCode,
|
|
@@ -7969,10 +8094,16 @@ var InferenceClient = class {
|
|
|
7969
8094
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
7970
8095
|
case 403:
|
|
7971
8096
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
8097
|
+
case 404:
|
|
8098
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
8099
|
+
case 413:
|
|
8100
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7972
8101
|
case 429:
|
|
7973
8102
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7974
8103
|
case 500:
|
|
7975
8104
|
throw new InternalServerError(_response.error.body, _response.rawResponse);
|
|
8105
|
+
case 503:
|
|
8106
|
+
throw new ServiceUnavailableError(_response.error.body, _response.rawResponse);
|
|
7976
8107
|
default:
|
|
7977
8108
|
throw new VectrosError({
|
|
7978
8109
|
statusCode: _response.error.statusCode,
|
|
@@ -8050,7 +8181,7 @@ var RecordsClient = class {
|
|
|
8050
8181
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/records/batch-get");
|
|
8051
8182
|
}
|
|
8052
8183
|
/**
|
|
8053
|
-
* Reserved endpoint for batch lookup and reference resolution. The published response shape correlates results to each input and carries a per-item status envelope.
|
|
8184
|
+
* 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.
|
|
8054
8185
|
*
|
|
8055
8186
|
* @param {Vectros.BatchLookupRequest} request
|
|
8056
8187
|
* @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -8111,7 +8242,7 @@ var RecordsClient = class {
|
|
|
8111
8242
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/records/lookup/batch");
|
|
8112
8243
|
}
|
|
8113
8244
|
/**
|
|
8114
|
-
* Writes up to 50 records
|
|
8245
|
+
* 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.
|
|
8115
8246
|
*
|
|
8116
8247
|
* `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.
|
|
8117
8248
|
*
|
|
@@ -8250,6 +8381,8 @@ var RecordsClient = class {
|
|
|
8250
8381
|
*
|
|
8251
8382
|
* @throws {@link Vectros.BadRequestError}
|
|
8252
8383
|
* @throws {@link Vectros.ForbiddenError}
|
|
8384
|
+
* @throws {@link Vectros.NotFoundError}
|
|
8385
|
+
* @throws {@link Vectros.ConflictError}
|
|
8253
8386
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
8254
8387
|
*
|
|
8255
8388
|
* @example
|
|
@@ -8306,6 +8439,10 @@ var RecordsClient = class {
|
|
|
8306
8439
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
8307
8440
|
case 403:
|
|
8308
8441
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
8442
|
+
case 404:
|
|
8443
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
8444
|
+
case 409:
|
|
8445
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
8309
8446
|
case 429:
|
|
8310
8447
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
8311
8448
|
default:
|
|
@@ -8454,6 +8591,7 @@ var RecordsClient = class {
|
|
|
8454
8591
|
* @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
8455
8592
|
*
|
|
8456
8593
|
* @throws {@link Vectros.NotFoundError}
|
|
8594
|
+
* @throws {@link Vectros.ConflictError}
|
|
8457
8595
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
8458
8596
|
*
|
|
8459
8597
|
* @example
|
|
@@ -8493,6 +8631,8 @@ var RecordsClient = class {
|
|
|
8493
8631
|
switch (_response.error.statusCode) {
|
|
8494
8632
|
case 404:
|
|
8495
8633
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
8634
|
+
case 409:
|
|
8635
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
8496
8636
|
case 429:
|
|
8497
8637
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
8498
8638
|
default:
|
|
@@ -8506,7 +8646,7 @@ var RecordsClient = class {
|
|
|
8506
8646
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/v1/records/{id}");
|
|
8507
8647
|
}
|
|
8508
8648
|
/**
|
|
8509
|
-
* 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
|
|
8649
|
+
* 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.
|
|
8510
8650
|
*
|
|
8511
8651
|
* @param {Vectros.PatchRecordRequest} request
|
|
8512
8652
|
* @param {RecordsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -8935,6 +9075,8 @@ var SchemasClient = class {
|
|
|
8935
9075
|
*
|
|
8936
9076
|
* @throws {@link Vectros.BadRequestError}
|
|
8937
9077
|
* @throws {@link Vectros.ForbiddenError}
|
|
9078
|
+
* @throws {@link Vectros.NotFoundError}
|
|
9079
|
+
* @throws {@link Vectros.ConflictError}
|
|
8938
9080
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
8939
9081
|
*
|
|
8940
9082
|
* @example
|
|
@@ -9004,6 +9146,10 @@ var SchemasClient = class {
|
|
|
9004
9146
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
9005
9147
|
case 403:
|
|
9006
9148
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
9149
|
+
case 404:
|
|
9150
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
9151
|
+
case 409:
|
|
9152
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
9007
9153
|
case 429:
|
|
9008
9154
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
9009
9155
|
default:
|
|
@@ -9147,7 +9293,7 @@ var SchemasClient = class {
|
|
|
9147
9293
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/v1/schemas/{id}");
|
|
9148
9294
|
}
|
|
9149
9295
|
/**
|
|
9150
|
-
* 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.
|
|
9296
|
+
* 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.
|
|
9151
9297
|
*
|
|
9152
9298
|
* @param {Vectros.DeleteSchemaRequest} request
|
|
9153
9299
|
* @param {SchemasClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -9274,7 +9420,7 @@ var ScriptsClient = class {
|
|
|
9274
9420
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
9275
9421
|
}
|
|
9276
9422
|
/**
|
|
9277
|
-
* 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
|
|
9423
|
+
* 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.
|
|
9278
9424
|
*
|
|
9279
9425
|
* **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.
|
|
9280
9426
|
*
|
|
@@ -9888,6 +10034,8 @@ var TriggersClient = class {
|
|
|
9888
10034
|
*
|
|
9889
10035
|
* @throws {@link Vectros.BadRequestError}
|
|
9890
10036
|
* @throws {@link Vectros.ForbiddenError}
|
|
10037
|
+
* @throws {@link Vectros.NotFoundError}
|
|
10038
|
+
* @throws {@link Vectros.ConflictError}
|
|
9891
10039
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
9892
10040
|
*
|
|
9893
10041
|
* @example
|
|
@@ -9945,6 +10093,10 @@ var TriggersClient = class {
|
|
|
9945
10093
|
throw new BadRequestError(_response.error.body, _response.rawResponse);
|
|
9946
10094
|
case 403:
|
|
9947
10095
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
10096
|
+
case 404:
|
|
10097
|
+
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
10098
|
+
case 409:
|
|
10099
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
9948
10100
|
case 429:
|
|
9949
10101
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
9950
10102
|
default:
|
|
@@ -10021,6 +10173,7 @@ var TriggersClient = class {
|
|
|
10021
10173
|
* @throws {@link Vectros.BadRequestError}
|
|
10022
10174
|
* @throws {@link Vectros.ForbiddenError}
|
|
10023
10175
|
* @throws {@link Vectros.NotFoundError}
|
|
10176
|
+
* @throws {@link Vectros.ConflictError}
|
|
10024
10177
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
10025
10178
|
*
|
|
10026
10179
|
* @example
|
|
@@ -10078,6 +10231,8 @@ var TriggersClient = class {
|
|
|
10078
10231
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
10079
10232
|
case 404:
|
|
10080
10233
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
10234
|
+
case 409:
|
|
10235
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
10081
10236
|
case 429:
|
|
10082
10237
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
10083
10238
|
default:
|
|
@@ -10097,6 +10252,7 @@ var TriggersClient = class {
|
|
|
10097
10252
|
* @param {TriggersClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
10098
10253
|
*
|
|
10099
10254
|
* @throws {@link Vectros.NotFoundError}
|
|
10255
|
+
* @throws {@link Vectros.ConflictError}
|
|
10100
10256
|
* @throws {@link Vectros.TooManyRequestsError}
|
|
10101
10257
|
*
|
|
10102
10258
|
* @example
|
|
@@ -10136,6 +10292,8 @@ var TriggersClient = class {
|
|
|
10136
10292
|
switch (_response.error.statusCode) {
|
|
10137
10293
|
case 404:
|
|
10138
10294
|
throw new NotFoundError(_response.error.body, _response.rawResponse);
|
|
10295
|
+
case 409:
|
|
10296
|
+
throw new ConflictError(_response.error.body, _response.rawResponse);
|
|
10139
10297
|
case 429:
|
|
10140
10298
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
10141
10299
|
default:
|
|
@@ -10258,7 +10416,7 @@ function warnOnSuboptimalKey(key, log) {
|
|
|
10258
10416
|
if (key.prefix === "sk") {
|
|
10259
10417
|
log.warn(
|
|
10260
10418
|
{ prefix: key.prefix, env: key.env },
|
|
10261
|
-
'wildcard-scope key (sk_*) on a desktop MCP server is overly broad. For production, prefer a scoped ssk_* key bound to a narrowed AccessProfile
|
|
10419
|
+
'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.'
|
|
10262
10420
|
);
|
|
10263
10421
|
} else if (key.prefix === "st") {
|
|
10264
10422
|
log.warn(
|
|
@@ -10270,8 +10428,8 @@ function warnOnSuboptimalKey(key, log) {
|
|
|
10270
10428
|
|
|
10271
10429
|
// src/build-info.ts
|
|
10272
10430
|
var BUILD_INFO = {
|
|
10273
|
-
mcpServer: true ? "0.18.
|
|
10274
|
-
sdk: true ? "0.
|
|
10431
|
+
mcpServer: true ? "0.18.2" : "dev",
|
|
10432
|
+
sdk: true ? "0.48.0" : "dev"
|
|
10275
10433
|
};
|
|
10276
10434
|
function formatBuildInfo() {
|
|
10277
10435
|
return `vectros-mcp-server ${BUILD_INFO.mcpServer} (sdk ${BUILD_INFO.sdk})`;
|
|
@@ -11250,7 +11408,7 @@ var inputSchema7 = {
|
|
|
11250
11408
|
),
|
|
11251
11409
|
status: z7.string().optional().describe("Set the record lifecycle status (e.g. ARCHIVED) \u2014 archive/workflow without physical deletion."),
|
|
11252
11410
|
expectedVersion: z7.number().int().optional().describe(
|
|
11253
|
-
"Optimistic concurrency: the version you last read. If the record changed since, the update is refused as a conflict (re-read and retry). Omit
|
|
11411
|
+
"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."
|
|
11254
11412
|
)
|
|
11255
11413
|
};
|
|
11256
11414
|
var recordUpdate = ({ client, log }) => ({
|
|
@@ -11320,7 +11478,7 @@ import { z as z10 } from "zod";
|
|
|
11320
11478
|
// src/tools/provider-alias.ts
|
|
11321
11479
|
import { z as z9 } from "zod";
|
|
11322
11480
|
var providerAliasInput = z9.string().min(1, "providerAlias must be non-empty when supplied").optional().describe(
|
|
11323
|
-
"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.
|
|
11481
|
+
"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."
|
|
11324
11482
|
);
|
|
11325
11483
|
|
|
11326
11484
|
// src/tools/rag_ask.ts
|
|
@@ -11332,7 +11490,7 @@ var inputSchema9 = {
|
|
|
11332
11490
|
'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.'
|
|
11333
11491
|
),
|
|
11334
11492
|
model: z10.string().optional().describe(
|
|
11335
|
-
"Inference model alias (e.g. claude-haiku-
|
|
11493
|
+
"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."
|
|
11336
11494
|
),
|
|
11337
11495
|
providerAlias: providerAliasInput,
|
|
11338
11496
|
search: z10.object({
|
|
@@ -11363,13 +11521,17 @@ var inputSchema9 = {
|
|
|
11363
11521
|
createdBefore: z10.string().optional().describe("Same creation-time basis as createdAfter, bounding at/before this ISO 8601 UTC value."),
|
|
11364
11522
|
requireComplete: z10.boolean().optional().describe("Fail closed (503) on a degraded search backend instead of grounding on partial results. Default false.")
|
|
11365
11523
|
}).optional().describe("Retrieval params + scoping. Default mode HYBRID, limit " + SEARCH_MCP_DEFAULT_LIMIT + "."),
|
|
11366
|
-
maxTokens: z10.number().int().min(1).optional().describe(
|
|
11367
|
-
|
|
11524
|
+
maxTokens: z10.number().int().min(1).optional().describe(
|
|
11525
|
+
"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."
|
|
11526
|
+
),
|
|
11527
|
+
temperature: z10.number().min(0).max(1).optional().describe(
|
|
11528
|
+
"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."
|
|
11529
|
+
)
|
|
11368
11530
|
};
|
|
11369
11531
|
var ragAsk = ({ client, log }) => ({
|
|
11370
11532
|
name: "rag_ask",
|
|
11371
11533
|
title: "RAG ask (corpus-wide)",
|
|
11372
|
-
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`
|
|
11534
|
+
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.",
|
|
11373
11535
|
inputSchema: inputSchema9,
|
|
11374
11536
|
// NOT a pure read: this call reserves an atomic hold against the caller's prepaid inference
|
|
11375
11537
|
// balance before generation starts, then debits it on completion — a real financial side
|
|
@@ -11471,10 +11633,12 @@ var inputSchema10 = {
|
|
|
11471
11633
|
documentId: z11.string().min(1, "documentId is required").describe("ID of the document to ask against."),
|
|
11472
11634
|
prompt: z11.string().min(1, "prompt is required").describe("Question to ask about the document."),
|
|
11473
11635
|
model: z11.string().optional().describe(
|
|
11474
|
-
"Inference model alias.
|
|
11636
|
+
"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."
|
|
11475
11637
|
),
|
|
11476
11638
|
providerAlias: providerAliasInput,
|
|
11477
|
-
maxTokens: z11.number().int().min(1).optional().describe(
|
|
11639
|
+
maxTokens: z11.number().int().min(1).optional().describe(
|
|
11640
|
+
"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."
|
|
11641
|
+
)
|
|
11478
11642
|
};
|
|
11479
11643
|
var documentAsk = ({ client, log }) => ({
|
|
11480
11644
|
name: "document_ask",
|
|
@@ -11825,7 +11989,7 @@ var inputSchema14 = {
|
|
|
11825
11989
|
'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).'
|
|
11826
11990
|
),
|
|
11827
11991
|
expectedVersion: z15.number().int().optional().describe(
|
|
11828
|
-
"Optimistic concurrency: the version you last read. If the document changed since, the update is refused as a conflict (re-read and retry). Omit
|
|
11992
|
+
"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."
|
|
11829
11993
|
)
|
|
11830
11994
|
};
|
|
11831
11995
|
var documentUpdate = ({ client, log }) => ({
|
|
@@ -11979,10 +12143,8 @@ var folderCreate = ({ client, log }) => ({
|
|
|
11979
12143
|
// freshly-proved-free value, so the idempotency check running after that derivation can never
|
|
11980
12144
|
// match on the default path. `slug` is optional, so this is annotated for the less-safe default —
|
|
11981
12145
|
// the same standard applied to record_create/document_ingest/record_batch_write's identical
|
|
11982
|
-
// optional-dedupe-key shape. (
|
|
11983
|
-
//
|
|
11984
|
-
// from the optional-externalId tools — that reasoning was wrong: the derivation is unconditional,
|
|
11985
|
-
// but it is unconditionally NON-colliding by construction, which is the opposite property.)
|
|
12146
|
+
// optional-dedupe-key shape. (The slug derivation being unconditional does not make the tool
|
|
12147
|
+
// idempotent: it is unconditionally NON-colliding by construction, which is the opposite property.)
|
|
11986
12148
|
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false },
|
|
11987
12149
|
handler: async (args) => {
|
|
11988
12150
|
try {
|
|
@@ -12017,7 +12179,7 @@ var inputSchema18 = {
|
|
|
12017
12179
|
'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).'
|
|
12018
12180
|
),
|
|
12019
12181
|
expectedVersion: z19.number().int().optional().describe(
|
|
12020
|
-
"Optimistic concurrency: the version you last read. If the folder changed since, the update is refused as a conflict (re-read and retry). Omit
|
|
12182
|
+
"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."
|
|
12021
12183
|
)
|
|
12022
12184
|
};
|
|
12023
12185
|
var folderUpdate = ({ client, log }) => ({
|
|
@@ -12062,7 +12224,7 @@ var inputSchema19 = {
|
|
|
12062
12224
|
var folderDelete = ({ client, log }) => ({
|
|
12063
12225
|
name: "folder_delete",
|
|
12064
12226
|
title: "Delete a folder",
|
|
12065
|
-
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
|
|
12227
|
+
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.',
|
|
12066
12228
|
inputSchema: inputSchema19,
|
|
12067
12229
|
// Deletes. Idempotent in the standard REST sense: the end state ("this id no longer
|
|
12068
12230
|
// resolves") is the same whether this is the first delete or a repeat of one.
|
|
@@ -12088,7 +12250,7 @@ var inputSchema20 = {
|
|
|
12088
12250
|
var currentIdentity = ({ log, apiKey, environment }) => ({
|
|
12089
12251
|
name: "current_identity",
|
|
12090
12252
|
title: "Current identity (tenant + principal scope)",
|
|
12091
|
-
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
|
|
12253
|
+
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.",
|
|
12092
12254
|
inputSchema: inputSchema20,
|
|
12093
12255
|
// A pure read (/v1/ping) — never creates, modifies, or deletes anything server-side.
|
|
12094
12256
|
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
@@ -12612,7 +12774,7 @@ var identityResource = ({ log, apiKey, environment }) => ({
|
|
|
12612
12774
|
name: "identity",
|
|
12613
12775
|
uri: "vectros://identity",
|
|
12614
12776
|
title: "Current identity (tenant + principal scope)",
|
|
12615
|
-
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
|
|
12777
|
+
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.",
|
|
12616
12778
|
mimeType: "application/json",
|
|
12617
12779
|
read: async () => {
|
|
12618
12780
|
const identity = await resolveIdentity({ log, apiKey, environment });
|