@vectros-ai/mcp-server 0.18.0 → 0.18.1
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 +27 -0
- package/README.md +21 -15
- package/dist/cli-http.js +26 -16
- package/dist/cli-http.js.map +1 -1
- package/dist/cli-http.mjs +26 -16
- package/dist/cli-http.mjs.map +1 -1
- package/dist/cli.js +26 -16
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +26 -16
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +26 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +26 -16
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
3
3
|
All notable changes to `@vectros-ai/mcp-server` are documented here.
|
|
4
4
|
This project adheres to [Semantic Versioning](https://semver.org).
|
|
5
5
|
|
|
6
|
+
## 0.18.1 — 2026-10-12
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- **`folder_delete` tells the agent to keep a record it cannot re-file, and the `sk_*` startup warning points at
|
|
11
|
+
things you can find.** The `folder_delete` description says not to delete a record just because this server cannot
|
|
12
|
+
move it, and to tell the user to move it with the Vectros API or SDK instead. The warning logged for a wildcard `sk_*` key names the
|
|
13
|
+
command that mints a scoped key (`npx -y @vectros-ai/cli bootstrap`) and the README's "Recommended credential"
|
|
14
|
+
section.
|
|
15
|
+
- **`rag_ask` and `document_ask` name another reason a routed call (`providerAlias`) is refused with a `403`.**
|
|
16
|
+
Besides an unknown or inactive alias and a risk waiver your account has not signed, an account that has accepted the
|
|
17
|
+
Business Associate Agreement with Vectros in the developer portal also needs an account owner to attest each provider
|
|
18
|
+
config in the portal (Model Providers). Until then the platform refuses the call with a `403` that says it needs a
|
|
19
|
+
BAA-holder attestation. The `providerAlias` description and the README section on routing a call through your own
|
|
20
|
+
provider say so; nothing in this server records the attestation.
|
|
21
|
+
- **`rag_ask` and `document_ask` describe the generation limits as the platform applies them.** The platform's default
|
|
22
|
+
model is `claude-haiku-5-5`. It, `claude-sonnet-5`, `claude-sonnet-5-5` and `claude-opus-5-5` can reason before they
|
|
23
|
+
answer, and when they do the reasoning counts against `maxTokens`, so a small `maxTokens` can return little or no
|
|
24
|
+
text; the `maxTokens` description says so and suggests 1024 or more for a short answer. The same four models ignore a
|
|
25
|
+
`temperature`, so the `rag_ask` `temperature` description says it applies only to models that accept one, such as
|
|
26
|
+
`claude-haiku-4-5`. The `model` descriptions point to `defaultModel` in `GET /v1/models` instead of naming a default.
|
|
27
|
+
Only the descriptions change; what the tools send is the same.
|
|
28
|
+
- **The server is built against SDK 0.47.0.** During a long streamed answer the platform now sends a `: keepalive`
|
|
29
|
+
comment line about every 15 seconds; the server ignores it and the tools return the same answers.
|
|
30
|
+
- **Source comments state their rules themselves.** Comments that pointed at an internal design document
|
|
31
|
+
now say what the rule is, so the source maps that ship with the package read on their own. No behavior changes.
|
|
32
|
+
|
|
6
33
|
## 0.18.0 — 2026-10-01
|
|
7
34
|
|
|
8
35
|
### Added
|
package/README.md
CHANGED
|
@@ -232,7 +232,7 @@ resolves to its main repo's `.mcp.json` — add and open from the same project.
|
|
|
232
232
|
| Tool | What it does |
|
|
233
233
|
|---|---|
|
|
234
234
|
| `hybrid_search` | Hybrid BM25 + dense search across the tenant's indexed content (records + documents). Narrow by ownership (`scope` for one dimension, `scopeFilters` for several at once — e.g. one client within one org), folder, type, metadata filters, a created date window, and keyword-precision (`textMode`) / relevance floors. Returns the indexed projection of each hit. |
|
|
235
|
-
| `rag_ask` | Ask a question grounded against the indexed corpus. Scope retrieval (ownership — `scope` or multi-dimension `scopeFilters` — / folder / type / metadata filters / date window) and steer generation (`instructions
|
|
235
|
+
| `rag_ask` | Ask a question grounded against the indexed corpus. Scope retrieval through `search` (ownership — `search.scope` or multi-dimension `search.scopeFilters` — / folder / type / metadata filters / date window) and steer generation (`instructions`, and `temperature` for the models that accept one). Streaming generation aggregated; progress notifications keep the call alive for the generation window. Optional `providerAlias` routes one call through your own model provider (see below). |
|
|
236
236
|
| `document_ask` | Ask a question grounded against a single document. Same aggregation + progress-notification shape as `rag_ask`, including the optional `providerAlias`. |
|
|
237
237
|
|
|
238
238
|
**Records** (structured, schema-validated data)
|
|
@@ -288,15 +288,22 @@ provider config's default model when omitted). The server forwards `providerAlia
|
|
|
288
288
|
never fills it in.
|
|
289
289
|
|
|
290
290
|
It works only after your account has set up the provider and signed the platform's risk-acceptance waiver. Without
|
|
291
|
-
both, the platform refuses the call with a `403`, which the tool returns to you as written.
|
|
292
|
-
|
|
293
|
-
|
|
291
|
+
both, the platform refuses the call with a `403`, which the tool returns to you as written.
|
|
292
|
+
|
|
293
|
+
If your account has accepted the Business Associate Agreement with Vectros in the developer portal, an account owner must also attest each provider
|
|
294
|
+
config in the developer portal (**Model Providers**) before a call can use it. Until then the platform refuses the
|
|
295
|
+
call with a `403` that says it needs a BAA-holder attestation. The owner does this in the portal; nothing in this
|
|
296
|
+
server does it.
|
|
297
|
+
|
|
298
|
+
A call served by your own provider leaves the platform-hosted Bedrock path, and Vectros's AWS BAA boundary, so
|
|
299
|
+
decide deliberately whether a given call should use it. Nothing here is a statement about how a provider you chose handles your data.
|
|
294
300
|
|
|
295
301
|
### Opting into a subset
|
|
296
302
|
|
|
297
|
-
Pass `VECTROS_MCP_TOOLS=hybrid_search,
|
|
298
|
-
|
|
299
|
-
exposing ingestion or inference costs to the credential.
|
|
303
|
+
Pass `VECTROS_MCP_TOOLS=hybrid_search,record_query,record_get` to register only those
|
|
304
|
+
three — useful for giving an agent read-only access without
|
|
305
|
+
exposing ingestion or inference costs to the credential. Add `rag_ask` or `document_ask`
|
|
306
|
+
only if the credential should be able to spend inference balance. Unknown tool
|
|
300
307
|
names fail fast at startup.
|
|
301
308
|
|
|
302
309
|
## Resources
|
|
@@ -321,12 +328,11 @@ server emits a `warn` log line on startup when you pass a wildcard
|
|
|
321
328
|
**The easiest way to get one is `npx -y @vectros-ai/cli bootstrap` (above)**
|
|
322
329
|
— it mints a least-privilege `ssk_*` and an AccessProfile for you, no root
|
|
323
330
|
key required. To do it by hand instead: mint a scoped key from the developer
|
|
324
|
-
portal under **Keys → Create scoped key**, bind it to
|
|
325
|
-
|
|
331
|
+
portal under **Keys → Create scoped key**, bind it to a read-only AccessProfile
|
|
332
|
+
(any name, for example `mcp-read`), and drop the resulting
|
|
326
333
|
`ssk_live_...` into the config above.
|
|
327
334
|
|
|
328
|
-
See the Vectros developer documentation on scoped tokens
|
|
329
|
-
AccessProfile for MCP") for least-privilege credential setup — the
|
|
335
|
+
See the Vectros developer documentation on scoped tokens for least-privilege credential setup — the
|
|
330
336
|
`vectros bootstrap` flow provisions a scoped `ssk_*` key and its AccessProfile
|
|
331
337
|
in one command.
|
|
332
338
|
|
|
@@ -361,7 +367,7 @@ The server resolves its API key from the first source that yields one:
|
|
|
361
367
|
|
|
362
368
|
The resolved key is held in memory and never logged. Startup logs which alias it
|
|
363
369
|
resolved (not the key), so you can tell at a glance which identity the server is
|
|
364
|
-
running as — `vectros keyring doctor` shows the same view.
|
|
370
|
+
running as — `vectros keyring doctor` (CLI 0.10.0+) shows the same view.
|
|
365
371
|
|
|
366
372
|
> **Startup warns when it picks an identity you didn't name.** If `VECTROS_API_KEY`
|
|
367
373
|
> is unset and no `VECTROS_KEYRING_ALIAS` is set, the server falls back to your
|
|
@@ -371,7 +377,7 @@ running as — `vectros keyring doctor` shows the same view.
|
|
|
371
377
|
> blank placeholder (`"VECTROS_API_KEY": ""` in a client config, or `-e VECTROS_API_KEY`
|
|
372
378
|
> passing through an unset var in Docker) reads as "not configured yet" but resolves
|
|
373
379
|
> like an unset key. Nothing is blocked — name an entry with `VECTROS_KEYRING_ALIAS`,
|
|
374
|
-
> or set `VECTROS_API_KEY`, and the warning goes away. `vectros keyring doctor` shows
|
|
380
|
+
> or set `VECTROS_API_KEY`, and the warning goes away. `vectros keyring doctor` (CLI 0.10.0+) shows
|
|
375
381
|
> which entry is active and which of your keys are live.
|
|
376
382
|
|
|
377
383
|
## Environment variables
|
|
@@ -511,8 +517,8 @@ The server is on a pre-1.0 track toward a stable 1.0 release.
|
|
|
511
517
|
## Rate limits
|
|
512
518
|
|
|
513
519
|
Tool calls hit the same per-minute rate limits as any API client; the
|
|
514
|
-
[rate limits guide](https://docs.vectros.ai/guides/operations-trust/rate-limits) says which requests count. On a `429` the
|
|
515
|
-
|
|
520
|
+
[rate limits guide](https://docs.vectros.ai/guides/operations-trust/rate-limits) says which requests count. On a `429` the tool returns the error with `HTTP 429` and `errorCode: RATE_LIMITED`, so the agent can pace and retry
|
|
521
|
+
rather than blind-retrying. The guide also lists
|
|
516
522
|
the per-plan limits.
|
|
517
523
|
|
|
518
524
|
## Building from source
|
package/dist/cli-http.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)
|
|
@@ -2456,7 +2456,7 @@ var AuthClient = class {
|
|
|
2456
2456
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/jwks");
|
|
2457
2457
|
}
|
|
2458
2458
|
/**
|
|
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.
|
|
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. 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
2460
|
*
|
|
2461
2461
|
* @param {Vectros.GetAccessLogRequest} request
|
|
2462
2462
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4161,7 +4161,7 @@ var AuthClient = class {
|
|
|
4161
4161
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/auth/issuers/{issuerId}");
|
|
4162
4162
|
}
|
|
4163
4163
|
/**
|
|
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
|
|
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 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
4165
|
*
|
|
4166
4166
|
* @param {Vectros.IssuerUpdateRequest} request
|
|
4167
4167
|
* @param {AuthClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -4971,7 +4971,7 @@ var ComplianceClient = class {
|
|
|
4971
4971
|
this._options = normalizeClientOptionsWithAuth(options);
|
|
4972
4972
|
}
|
|
4973
4973
|
/**
|
|
4974
|
-
* Submits
|
|
4974
|
+
* 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
4975
|
*
|
|
4976
4976
|
* @param {Vectros.ErasureRequest} request
|
|
4977
4977
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -5034,7 +5034,7 @@ var ComplianceClient = class {
|
|
|
5034
5034
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/v1/erasure-requests");
|
|
5035
5035
|
}
|
|
5036
5036
|
/**
|
|
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
|
|
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 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
5038
|
*
|
|
5039
5039
|
* @param {Vectros.GetErasureRequestRequest} request
|
|
5040
5040
|
* @param {ComplianceClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -7853,6 +7853,8 @@ var InferenceClient = class {
|
|
|
7853
7853
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
7854
7854
|
case 403:
|
|
7855
7855
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7856
|
+
case 413:
|
|
7857
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7856
7858
|
case 429:
|
|
7857
7859
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7858
7860
|
default:
|
|
@@ -7992,6 +7994,8 @@ var InferenceClient = class {
|
|
|
7992
7994
|
throw new PaymentRequiredError(_response.error.body, _response.rawResponse);
|
|
7993
7995
|
case 403:
|
|
7994
7996
|
throw new ForbiddenError(_response.error.body, _response.rawResponse);
|
|
7997
|
+
case 413:
|
|
7998
|
+
throw new ContentTooLargeError(_response.error.body, _response.rawResponse);
|
|
7995
7999
|
case 429:
|
|
7996
8000
|
throw new TooManyRequestsError(_response.error.body, _response.rawResponse);
|
|
7997
8001
|
case 500:
|
|
@@ -10276,7 +10280,7 @@ function warnOnSuboptimalKey(key, log) {
|
|
|
10276
10280
|
if (key.prefix === "sk") {
|
|
10277
10281
|
log.warn(
|
|
10278
10282
|
{ 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
|
|
10283
|
+
'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
10284
|
);
|
|
10281
10285
|
} else if (key.prefix === "st") {
|
|
10282
10286
|
log.warn(
|
|
@@ -10288,8 +10292,8 @@ function warnOnSuboptimalKey(key, log) {
|
|
|
10288
10292
|
|
|
10289
10293
|
// src/build-info.ts
|
|
10290
10294
|
var BUILD_INFO = {
|
|
10291
|
-
mcpServer: true ? "0.18.
|
|
10292
|
-
sdk: true ? "0.
|
|
10295
|
+
mcpServer: true ? "0.18.1" : "dev",
|
|
10296
|
+
sdk: true ? "0.47.0" : "dev"
|
|
10293
10297
|
};
|
|
10294
10298
|
|
|
10295
10299
|
// src/log.ts
|
|
@@ -11335,7 +11339,7 @@ var import_zod10 = require("zod");
|
|
|
11335
11339
|
// src/tools/provider-alias.ts
|
|
11336
11340
|
var import_zod9 = require("zod");
|
|
11337
11341
|
var providerAliasInput = import_zod9.z.string().min(1, "providerAlias must be non-empty when supplied").optional().describe(
|
|
11338
|
-
"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.
|
|
11342
|
+
"Route THIS call through your own model provider instead of the platform-hosted default, by the alias of a provider config your account has activated. It works only after your account has set up that provider and signed the platform's risk-acceptance waiver; without both, the platform refuses the call with a 403, which is returned to you as written. If your account has accepted the Business Associate Agreement with Vectros in the developer portal, an account owner must also have attested that provider config in the developer portal (Model Providers); until then the platform refuses the call with a 403 that says it needs a BAA-holder attestation. A call served by your own provider leaves the Vectros perimeter. Omit it (the default) to use the platform-hosted path. When set, `model` names the model on your provider's own id space, and falls back to that provider config's default model when omitted."
|
|
11339
11343
|
);
|
|
11340
11344
|
|
|
11341
11345
|
// src/tools/rag_ask.ts
|
|
@@ -11347,7 +11351,7 @@ var inputSchema9 = {
|
|
|
11347
11351
|
'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.'
|
|
11348
11352
|
),
|
|
11349
11353
|
model: import_zod10.z.string().optional().describe(
|
|
11350
|
-
"Inference model alias (e.g. claude-haiku-
|
|
11354
|
+
"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."
|
|
11351
11355
|
),
|
|
11352
11356
|
providerAlias: providerAliasInput,
|
|
11353
11357
|
search: import_zod10.z.object({
|
|
@@ -11378,13 +11382,17 @@ var inputSchema9 = {
|
|
|
11378
11382
|
createdBefore: import_zod10.z.string().optional().describe("Same creation-time basis as createdAfter, bounding at/before this ISO 8601 UTC value."),
|
|
11379
11383
|
requireComplete: import_zod10.z.boolean().optional().describe("Fail closed (503) on a degraded search backend instead of grounding on partial results. Default false.")
|
|
11380
11384
|
}).optional().describe("Retrieval params + scoping. Default mode HYBRID, limit " + SEARCH_MCP_DEFAULT_LIMIT + "."),
|
|
11381
|
-
maxTokens: import_zod10.z.number().int().min(1).optional().describe(
|
|
11382
|
-
|
|
11385
|
+
maxTokens: import_zod10.z.number().int().min(1).optional().describe(
|
|
11386
|
+
"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."
|
|
11387
|
+
),
|
|
11388
|
+
temperature: import_zod10.z.number().min(0).max(1).optional().describe(
|
|
11389
|
+
"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."
|
|
11390
|
+
)
|
|
11383
11391
|
};
|
|
11384
11392
|
var ragAsk = ({ client, log }) => ({
|
|
11385
11393
|
name: "rag_ask",
|
|
11386
11394
|
title: "RAG ask (corpus-wide)",
|
|
11387
|
-
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`
|
|
11395
|
+
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.",
|
|
11388
11396
|
inputSchema: inputSchema9,
|
|
11389
11397
|
// NOT a pure read: this call reserves an atomic hold against the caller's prepaid inference
|
|
11390
11398
|
// balance before generation starts, then debits it on completion — a real financial side
|
|
@@ -11486,10 +11494,12 @@ var inputSchema10 = {
|
|
|
11486
11494
|
documentId: import_zod11.z.string().min(1, "documentId is required").describe("ID of the document to ask against."),
|
|
11487
11495
|
prompt: import_zod11.z.string().min(1, "prompt is required").describe("Question to ask about the document."),
|
|
11488
11496
|
model: import_zod11.z.string().optional().describe(
|
|
11489
|
-
"Inference model alias.
|
|
11497
|
+
"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."
|
|
11490
11498
|
),
|
|
11491
11499
|
providerAlias: providerAliasInput,
|
|
11492
|
-
maxTokens: import_zod11.z.number().int().min(1).optional().describe(
|
|
11500
|
+
maxTokens: import_zod11.z.number().int().min(1).optional().describe(
|
|
11501
|
+
"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."
|
|
11502
|
+
)
|
|
11493
11503
|
};
|
|
11494
11504
|
var documentAsk = ({ client, log }) => ({
|
|
11495
11505
|
name: "document_ask",
|
|
@@ -12077,7 +12087,7 @@ var inputSchema19 = {
|
|
|
12077
12087
|
var folderDelete = ({ client, log }) => ({
|
|
12078
12088
|
name: "folder_delete",
|
|
12079
12089
|
title: "Delete a folder",
|
|
12080
|
-
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
|
|
12090
|
+
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.',
|
|
12081
12091
|
inputSchema: inputSchema19,
|
|
12082
12092
|
// Deletes. Idempotent in the standard REST sense: the end state ("this id no longer
|
|
12083
12093
|
// resolves") is the same whether this is the first delete or a repeat of one.
|