Skip to main content
Glama

DocsMint

Turn your documents into knowledge you and your AI agents can use.

Write and organize notes, guides, and project documentation in one workspace. Find answers with search that understands related concepts, then give your agents access to the same documents through MCP, REST, the SDK, or CLI.

Connect DocsMint Cloud to get started without operating the stack, or self-host with Docker to run the Apache-2.0 application on your own infrastructure.

Apache-2.0 License Release npm Docker Pulls CI HOL Registry trust

DocsMint MCP server MCP Badge MCP Registry DocsMint Cloud

Bun TypeScript Svelte Elysia Tailwind_CSS Drizzle_ORM Stars PRs Welcome

Connect your AI agent

Connect DocsMint Cloud instantly or run the self-hosted stdio bridge against your own DocsMint API. Both paths give agents access to persistent knowledge; the self-hosted bridge exposes 22 focused tools covering all 31 existing operations plus bounded batch actions and direct workspace-item inspection, with 2 prompts and 3 resources.

Recommended: DocsMint Cloud setup. No server installation is required. Sign up or log in, choose your workspace, and follow your client's connection instructions. OAuth-capable clients use browser consent; API-key clients create an MCP/API credential in the authenticated browser UI. Hosted MCP follows your plan and workspace permissions. Prefer workspace-bound or category-scoped credentials.

The Cloud endpoint is https://docsmint.com/mcp (Streamable HTTP). OAuth-capable clients discover the hosted resource and authorization-server metadata; current authorization and client-connection methods are described in the DocsMint Cloud setup guide. Browser consent binds access to the selected workspaces, optional categories, and requested scopes. DocsMint Cloud 1.1.9 and later supports hourly access tokens and rotating refresh tokens for up to 30 days from authorization when the client supports renewal. Existing connections need one reconnect to enable refresh; clients without refresh support still reconnect after access expires. API-key clients can instead send Authorization: Bearer <key> with an MCP/API credential created in the authenticated browser UI. Credentials cannot create or elevate other credentials; lifecycle management belongs to the signed-in browser session.

Self-hosted alternative: run DocsMint with Docker, create an API key in its browser UI, and configure HIAI_DOCS_URL and HIAI_DOCS_API_KEY for npx --yes --package @hiai-gg/docsmint docsmint-mcp. Install Bun 1.4.4 or later to execute the published binary. The npm package is a stdio bridge to your own API; it does not install the DocsMint application or Cloud OAuth server. See the MCP guide for client configuration. The Glama OSS Server listing describes this bridge; the hosted DocsMint Cloud Connector is a separate listing.

Related MCP server: en-quire

Why DocsMint?

  • Keep knowledge easy to edit. Use a rich visual editor or Markdown; organize documents with folders, categories, and tags.

  • Find the document you mean. Search combines keywords, meaning, typo tolerance, and graph relationships across languages.

  • Keep agents close to the source. Let your tools search, read, and update the same knowledge through MCP, REST, a typed SDK, and CLI.

  • Choose what an integration can access. Category keys grant explicit read, edit, and write permissions for a defined part of your library.

  • Keep retrieval up to date. Document edits and metadata changes refresh the search index automatically in the background.

  • Choose how you run it. Use managed DocsMint or self-host the application, database, search, queues, and files.

Security patch 2.1.1

Bun 1.4.4, SvelteKit/Vite and Better Auth patch refreshes preserve the existing MCP/REST contract. See 2.1.1 release notes and the security report.

What's new in 2.1.0?

  • Add stateless Bearer HTTP MCP for self-hosted installations, including the public web-origin proxy and configurable Origin/CORS policy.

  • Keep the 22-tool catalog and generate schemas, annotations and branch examples from real MCP discovery.

  • Return redacted argument diagnostics as JSON-RPC errors without replacing upstream dispatch; keep compatible compact text and structured results.

  • Add server-side document filters, stable cursor pagination, scoped totals, previews, metadata-rich export and normalized search fields.

  • Add credential/workspace discovery and an explicit SDK API prefix while retaining existing routes, fields and methods.

2.1.0 release notes.

Previous release: 2.0.4

Hosted MCP integrations can discover granted workspaces, including empty spaces, with list_workspace_structure(kind="workspaces") and select one with the optional workspaceId argument. The catalog remains 22 tools. Host authorization hooks preserve the connection's existing workspace/category boundaries. Multi-scope reads carry labeled results and independent pagination. Existing single-scope calls remain compatible.

The OSS frontend adopts SvelteKit 3; dependency updates resolve the current security audit findings. No database migration is required. See the 2.0.4 release notes.

Previous release: 1.0.3

  • Make MCP tool selection clearer: use a single-document tool for one document and batch_documents when multiple explicit IDs need the same action.

  • Keep the 22-tool catalog, all 31 underlying operations, input schemas, authorization, and stdio behavior unchanged. The LobeHub tool descriptions match the released MCP catalog.

  • DocsMint Cloud remains a separate hosted Connector. Cloud descriptions change only when the hosted service adopts this package version.

No database migration is required. See the release notes and changelog.

Install with an AI agent

Prefer an assisted self-hosted setup? Give your coding agent this prompt. You will need Docker and a choice of AI provider.

Install DocsMint from https://github.com/HiAi-gg/docsmint.
Verify Docker and Docker Compose v2, clone the repository, and run
`bash scripts/quickstart.sh`. Do not print or commit .env. Ask me to enter only
an OpenRouter key or select Ollama, then run quickstart again. Verify
http://localhost:50701, http://localhost:50700/api/health, and
`docker compose ps`. Do not replace Bun, rewrite migrations, disable GraphRAG,
or delete volumes.

After startup, open http://localhost:50701 and create the first account. For manual installation, use the Docker quickstart below.

Quickstart

Requirements

  • Docker Engine or Docker Desktop

  • Docker Compose v2

  • One of:

Start with Docker

git clone https://github.com/HiAi-gg/docsmint.git
cd docsmint
bash scripts/quickstart.sh

On its first run, the script creates an ignored root .env, generates the database, authentication, and storage secrets, builds the PostgreSQL image, applies migrations, and starts the complete application.

Published application images are on Docker Hub. There is no untagged latest image; pull the role-specific tags:

docker pull vgalibov/docsmint:api-latest
docker pull vgalibov/docsmint:web-latest
docker pull vgalibov/docsmint:caddy-latest

Use versioned tags api-v1.0.3, web-v1.0.3, and caddy-v1.0.3 for reproducible deploys. Caddy is the supporting reverse proxy with rate limiting; it is separate from the API and web application. The quickstart still builds the Compose stack from this repository so PostgreSQL, Redis, and SeaweedFS start together with the application.

For OpenRouter, add one value to .env and run the script again:

OPENROUTER_API_KEY=sk-or-your-key

For Ollama, select the local provider instead:

AI_PROVIDER=ollama
OLLAMA_PORT=11434

Then make sure the configured local models are available:

ollama pull bge-m3
ollama pull qwen3:8b
bash scripts/quickstart.sh

Open http://localhost:50701. The API health endpoint is http://localhost:50700/api/health.

First use

  1. Create your account in the web application.

  2. Create a category or folder and add or import a document.

  3. Wait for the document pipeline to finish chunking and embedding.

  4. Search using an exact phrase, a related concept, an alternate language, or a misspelling.

  5. Open Settings → API when you want to connect a CLI, MCP client, or external application.

The canonical local ports are:

Service

Port

Web application

50701

REST API

50700

PostgreSQL

5437

Redis

6384

SeaweedFS S3 gateway

50702

SeaweedFS filer UI

50703

See Deployment for domains, TLS, provider tuning, backups, and production operation.

Embedding provider URLs, models, and credentials are deployment configuration. They are never stored in browser settings or local storage.

Use DocsMint from the terminal

One public package, @hiai-gg/docsmint, includes the TypeScript SDK, docsmint CLI, and docsmint-mcp bridge. These clients connect to a running DocsMint deployment; use the Docker quickstart to install the self-hosted server.

bun add @hiai-gg/docsmint
bunx --package @hiai-gg/docsmint docsmint init \
  --url http://localhost:50700 \
  --key 'your-global-or-category-key'

bunx --package @hiai-gg/docsmint docsmint search "project architecture"
bunx --package @hiai-gg/docsmint docsmint list
bunx --package @hiai-gg/docsmint docsmint read <document-id>
bunx --package @hiai-gg/docsmint docsmint create \
  --title "Release notes" --content "# Highlights"

Credentials can also be supplied through HIAI_DOCS_URL and HIAI_DOCS_API_KEY. See the CLI guide for every command and configuration precedence.

Connect an MCP client

Give agents a secure path to search, read, and maintain your knowledge without database or filesystem access. DocsMint publishes MCP tools plus ready-made research prompts, scoped resources, and a document-manager skill.

Hosted DocsMint

Connect directly to the managed Streamable HTTP endpoint. Keep the API key in an environment variable rather than writing it into client configuration:

codex mcp add docsmint \
  --url https://docsmint.com/mcp \
  --bearer-token-env-var HIAI_DOCS_API_KEY

Self-hosted DocsMint

Run the published stdio bridge against your own DocsMint API:

{
  "mcpServers": {
    "docsmint": {
      "command": "npx",
      "args": ["--yes", "--package", "@hiai-gg/docsmint", "docsmint-mcp"],
      "env": {
        "HIAI_DOCS_URL": "http://localhost:50700",
        "HIAI_DOCS_API_KEY": "your-global-or-category-key"
      }
    }
  }
}

Category keys let you expose only the documents and operations an agent needs. Use a global key only for trusted owner-wide automation. See the complete MCP reference for Bun, npm, local checkout, all tools, prompts, resources, permissions, and REST mappings.

Self-hosted HTTP

The same 22-tool contract is also available at /mcp on your installation's public web origin. With the default Compose ports, that is http://localhost:50701/mcp; with Caddy, use your normal application domain, such as https://docs.example.com/mcp. The web server streams requests to the backend using its trusted API_URL setting (http://api:50700 in Compose). Do not point API_URL back at the public web server.

Create a global or category-scoped key in Settings → API, then supply it as an environment variable to your MCP client:

codex mcp add docsmint-selfhost \
  --url https://docs.example.com/mcp \
  --bearer-token-env-var HIAI_DOCS_API_KEY

Self-hosted HTTP uses Authorization: Bearer <key>; it does not implement DocsMint Cloud OAuth or accept a browser session as an API credential. Category keys keep their existing category and independent read/edit/write restrictions. An ordinary OSS installation has a personal space rather than Cloud workspace slugs: omit X-Docsmint-Workspace on these requests.

Configure the public application URL and the exact browser origins you trust:

PUBLIC_APP_URL=https://docs.example.com
CORS_ORIGINS=https://docs.example.com,https://trusted-client.example.com
MCP_HTTP_ENABLED=true

PUBLIC_APP_URL is used for trusted absolute document links; leaving it unset keeps OSS document links relative. CORS_ORIGINS applies to the HTTP integration endpoints. An allowed browser origin receives CORS headers, an unknown Origin is rejected, and authenticated server clients may omit Origin. Do not use a wildcard for credentialed browser access. Compose passes these settings to the API container; restart the application through your normal deployment workflow after changing them.

The HTTP transport is stateless and does not issue Mcp-Session-Id. Send MCP JSON-RPC through POST; accepted notifications return 202. GET and DELETE return 405 because this endpoint provides neither a standalone SSE listener nor server-side sessions. Clients must accept JSON and SSE responses: the installed MCP SDK can use SSE for legacy protocol requests even when modern JSON mode is configured. /mcp/ is normalized internally without redirecting the POST or dropping its Bearer header. The proxy preserves response status, authentication challenges, CORS headers and streaming bodies, and does not forward browser cookies or server workspace assertions as authority.

Set MCP_HTTP_ENABLED=false to disable this HTTP endpoint independently. The existing REST API and stdio bridge remain available; existing stdio client configuration does not need to change.

TypeScript SDK

bun add @hiai-gg/docsmint
import { DocsClient } from '@hiai-gg/docsmint';

const docs = new DocsClient({
  baseUrl: 'http://localhost:50700',
  apiKey: process.env.HIAI_DOCS_API_KEY,
});

const created = await docs.createDoc({
  title: 'Meeting notes',
  content: '# Agenda',
});

const results = await docs.search('what did we decide?');
console.log(created.id, results.items);

The SDK is a typed fetch client with retries for transient failures and idempotent document creation retries. See the SDK reference and REST API.

API keys and integrations

Create and revoke integration keys from Settings → API.

Credential

Intended use

Access

Global API key

Trusted owner-wide CLI, MCP, SDK, or service

All owner content

Category key

Least-privilege agent or product integration

One category with selected permissions

Operator key

Administration and reindex operations

/api/admin/* only

Category permissions are explicit and non-hierarchical:

  • read permits list, read, search, and export;

  • edit permits updates to existing content, attachments, and versions;

  • write permits create, move, delete, share, and publish operations.

Combine permissions when an integration needs more than one capability. API-key lifecycle operations require the owning browser session; an API key cannot create or elevate another key. Server-to-server integrations are not affected by browser CORS. Browser integrations must add their exact origin to CORS_ORIGINS.

What is included?

Documents use structured TipTap JSON as canonical content. Markdown is the source-editing, import, and export format. The same document store serves the web application and public integration interfaces.

frontend/          SvelteKit workspace and TipTap editor
backend/           Elysia REST API, search, workers, and authentication
packages/db/       Drizzle schema and migrations
packages/sdk/      Typed API client
packages/cli/      Terminal client
packages/mcp-server/  MCP stdio and HTTP contract
postgres/          PostgreSQL image with vector and graph extensions

The Docker deployment runs:

  • Web — document editor, folders, categories, sharing, settings, and search;

  • API — documents, attachments, versions, keys, search, and administration;

  • PostgreSQL 18 — relational data, pgvector/pgvectorscale vectors, and the Apache AGE graph in one database;

  • Redis 8 — BullMQ queues, caching, retries, and job recovery;

  • SeaweedFS — S3-compatible attachment storage.

How search works

Every document save schedules background work. Content is chunked, changed chunks are embedded, and the completed generation is activated atomically. The previous valid generation remains searchable if a provider call fails.

Search combines exact title matches, multilingual lexical search, typo-tolerant fuzzy matching, semantic vectors, adaptive query expansion, and Apache AGE graph neighbors. Reciprocal rank fusion combines the channels without allowing one weak provider result to dominate. A cross-encoder then reranks the fused prefix against the original query (Voyage rerank-2.5 by default). On a labeled 24-document corpus that moved MRR 0.969 → 1.000 and nDCG@10 0.958 → 0.986 versus RRF-only. Rerank, expansion, embeddings, and AGE failures keep the remaining channels. Authorization is applied before retrieval and again before results are returned.

GraphRAG is part of the normal search path in the reference configuration. It extracts entities after embeddings are ready and finds related documents beyond direct keyword or vector similarity. It degrades gracefully when an external model is unavailable.

For pipeline internals and tuning, see Architecture and Deployment.

Stack

  • Bun 1.4.4+, TypeScript, Elysia, Zod, and Pino

  • Svelte 5, SvelteKit, Tailwind CSS, and TipTap

  • Better Auth and Drizzle ORM

  • PostgreSQL 18, pgvector, pgvectorscale, and Apache AGE

  • Redis 8 and BullMQ

  • SeaweedFS with its S3-compatible API

  • OpenAI-compatible providers through OpenRouter or local Ollama

Documentation

Development

Use Bun 1.4.4 or later for local development.

bun install
bun run lint
bun run typecheck
bun run test
bun run build

Read CONTRIBUTING.md before opening a pull request. Please report vulnerabilities through SECURITY.md, not a public issue.

License

DocsMint is released under the Apache License 2.0.

Built as an independent open-source project in the HiAi ecosystem.

Available Tools

22 tools
batch_documentsA
Destructive
Inspect

Use for multiple explicitly selected documents that need the same action; for one document prefer the matching single-document tool. Accepts 1–25 IDs for automation compatibility. Supports move, set_category, add_tag, remove_tag, trash, restore, or refresh_index. Processes sequentially through the existing API with a permission check per document and a per-ID result; partial success is possible. Stops after authentication or rate-limit failure. Never expands a search result or permanently purges documents; version restore is separate.

NameRequiredDescriptionDefault
tagIdNo
actionNo
folderIdNoDestination folder UUID, or null for no folder.
categoryIdNoCategory UUID, or null to clear explicit category.
documentIdsNoOne to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
totalYes
actionYes
failedYes
abortedYes
resultsYes
succeededYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true and idempotent=false, but the description adds genuinely new context: sequential processing with a per-document permission check, per-ID results, partial success, and stopping on auth/rate-limit failure. The one gap is it doesn't say what trashing vs. permanent deletion means for recovery timing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph, front-loaded with the selection rule and alternatives before behavioral detail. Slightly long, and the ID-count sentence duplicates the schema, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and per-ID results are described, the description covers the failure model, concurrency model, and action scope needed to invoke a complex multi-action tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the schema already documents each action's const, documentIds bounds, and workspaceId sourcing. The description's '1–25 IDs' restates the schema's minItems/maxItems rather than adding new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource combination (batch actions on explicitly selected documents) and enumerates the seven supported actions. It is immediately distinguishable from single-document siblings, which it explicitly points to.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit selection rule: use for multiple explicitly selected documents, prefer the matching single-document tool for one. It also rules out search expansion and version restore, routing those to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_snapshotAInspect

Save a named snapshot of an existing document before a planned change. The snapshot can later be restored with restore_document_version.

NameRequiredDescriptionDefault
labelYesSnapshot label, from 1 to 200 characters.
documentIdYesUUID returned by the corresponding list or read operation.
descriptionNoOptional snapshot note, at most 1000 characters.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
labelNo
contentYes
createdAtYes
createdByYes
documentIdYes
isSnapshotNo
contentJsonNo
descriptionNo
restoredFromNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=false, idempotentHint=false and openWorldHint=false, and the description's 'can later be restored' reinforces that the operation is safe and reversible. However, it does not disclose what the agent would most want beyond the annotations: whether calling twice with the same label creates duplicates, whether existing snapshots are affected, or whether any permission/grant is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the action and then the recovery path. No redundant restatement of the name or title, and nothing that could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-destructive write with full schema coverage and an output schema, the description covers the essentials: what is created and how it is undone. The remaining gap is duplicate-label behavior and permission expectations, which are minor given the annotation safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (label, documentId, description, workspaceId) is already documented in the schema, including the ambiguity rule for workspaceId. The description adds nothing parameter-specific beyond the word 'named,' which implicitly maps to label — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Save a named snapshot of an existing document.' The label/document semantics and the pre-change timing make the operation immediately understandable. It also names restore_document_version as the counterpart, though it does not distinguish itself from save_document, the nearest sibling that also writes document state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear usage condition — 'before a planned change' — and points to restore_document_version as the way to undo. It stops short of explicit exclusions (e.g., when to use save_document or a version restore instead), so the agent must infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_categoryA
Destructive
Inspect

Delete a workspace category and detach its documents without deleting them. Requires full workspace write access; category-scoped credentials are denied.

NameRequiredDescriptionDefault
idYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
deletedYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description discloses the critical behavioral detail that documents are detached rather than deleted. It also states the permission model, including that category-scoped credentials are denied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences. The destructive action and document-detachment behavior are front-loaded, followed by the authorization constraint, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation, the description covers the main risk (documents survive) and the auth requirement, while annotations and the output schema cover safety hints and return values. It does not address reversibility, failure conditions, or lifecycle details, but the core context is strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both the required id and optional workspaceId are documented in the schema. The description adds no additional parameter meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: 'Delete a workspace category.' It also states the key side effect, 'detach its documents without deleting them,' which distinguishes this from document, folder, and tag deletion siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an authorization prerequisite ('Requires full workspace write access; category-scoped credentials are denied'), which helps an agent know when the call will fail. However, it does not explain when to use this tool versus alternatives such as save_category or delete_document.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_documentA
Destructive
Inspect

Move one document to trash without purging content or versions. Use batch_documents(action=trash) for multiple explicit IDs. Requires write access and an explicit delete request; permanently_delete_document is a separate irreversible action.

NameRequiredDescriptionDefault
idYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotent, so the description earns credit for the extra context: content and versions are retained, write access and an explicit delete request are required, and permanent deletion lives elsewhere. Missing only detail on whether the document lands in list_trash or how long it is retained before purge.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the effect and the reversibility guarantee, then alternatives, then prerequisites. No sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation; the description covers the remaining agent-critical facts — recoverability, authorization requirement, and the sibling routing — for a two-parameter mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both id and workspaceId are already documented in the schema. The description adds no syntax, format, or ambiguity guidance beyond that, leaving this at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Move one document to trash') and immediately bounds the effect ('without purging content or versions'). The singular scope plus the contrast with batch_documents makes it unmistakable among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes multiple explicit IDs to batch_documents(action=trash) and names permanently_delete_document as the separate irreversible path. The agent has a clear decision rule for all three cases without opening a schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_folderA
Destructive
Inspect

Delete a folder while preserving its documents; child folders and documents are detached under the API rules. Requires write access.

NameRequiredDescriptionDefault
idYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
deletedYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered; the description adds the non-obvious side effects (documents survive, children are detached) and the write-access requirement. It stops short of saying whether the folder itself is recoverable via list_trash/restore, which for a destructive tool would be valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and the critical side effect, with the prerequisite trailing. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full input schema, an output schema, and destructive annotations, the description supplies exactly the missing semantic layer: what survives deletion and what permission is needed. The only gap is recoverability, which an agent planning a destructive call would reasonably want to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both 'id' and the optional 'workspaceId' are already documented in the schema, including their UUID sourcing guidance. The description adds nothing further about parameter values; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a folder') and immediately disambiguates the outcome from sibling delete tools: documents are preserved while child folders and documents are detached. An agent can distinguish this from delete_document, delete_category, and delete_tag without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Requires write access' gives a prerequisite, and preserving documents implies when to prefer this over per-document deletion. But there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. list_trash / permanently_delete_document for hard removal).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_tagA
Destructive
Inspect

Delete a workspace tag and remove its document assignments. Full workspace write access is required; documents themselves remain.

NameRequiredDescriptionDefault
idYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
deletedYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=false, so the safety bar is lower; the description still adds real payload facts — tag assignments are removed while documents survive — plus the permission requirement. It doesn't mention irreversibility or whether the tag must be unassigned first, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the destructive effect and the survival of documents front-loaded before the permission caveat. Every clause carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A destructive, non-idempotent mutation with full schema coverage and an output schema, so the description needn't explain returns. It covers effect and auth; a note on irreversibility or cascade behavior would complete it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both id and workspaceId documented in the schema itself, so baseline applies. The description adds no parameter-level meaning — notably nothing about workspaceId being omittable for searches versus needed for this structure change.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Delete a workspace tag') and adds scope ('remove its document assignments'), which separates it from delete_category/delete_document siblings by resource type. It stops short of naming which sibling to prefer, but the object being acted on is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a prerequisite ('Full workspace write access is required') but never says when to choose this over save_tag, delete_category, or set_document_tag (e.g., unassign vs delete). Usage is implied by the verb rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explore_graphA
Read-onlyIdempotent
Inspect

Explore graph relations from readable seed documents. mode=neighbors traverses one document without a query; mode=search ranks relations from one or more seed IDs with optional query text.

NameRequiredDescriptionDefault
modeNo
limitNoMaximum results to return, up to 100.
queryNoOptional graph relevance query, at most 2000 characters.
docIdsNoOne to 50 authorized seed document UUIDs.
documentIdNoUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations provide safety hints like 'readOnlyHint: true,' the description adds critical behavioral detail about the differing internal operations of the two modes, outlining how each mode functions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence that effectively covers the tool's core functionality and its primary behavioral split between modes without any filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description successfully simplifies the complex `oneOf` schema structure by framing the tool around its two distinct behavioral modes (neighbors and search), making it highly actionable for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given the high schema description coverage (83%), the baseline score applies. The description adds semantic value by explaining the functional difference between the `mode` arguments (neighbors vs search) rather than redundant parameter definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose as exploring graph relations from readable seed documents. It distinguishes between two operational modes: traversal (neighbors) and ranked search (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies the functional criteria for selecting either mode: 'neighbors traverses one document without a query,' versus 'search ranks relations... with optional query text.' This guides the agent on when to use which specific configuration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_documentsA
Read-onlyIdempotent
Inspect

Find readable documents in the active scope. Use mode=list for paginated browsing by folder or tag UUID; use mode=search for hybrid text and semantic retrieval with tag names.

NameRequiredDescriptionDefault
qNoLiteral case-insensitive title/content filter; does not invoke semantic search.
tagNoUUID returned by the corresponding list or read operation.
modeNo
pageNoOne-based page number; defaults to the API first page.
tagsNoOptional tag names; all supplied names must match.
limitNo
queryNoText to search in the original language.
folderNoOptional folder UUID filter for search.
sortByNoStable server-side sort field; defaults to updatedAt.
tagIdsNoFilter by tag UUIDs; cannot combine with the legacy tag field.
folderIdNoUUID returned by the corresponding list or read operation.
rootOnlyNoReturn only documents without a folder; cannot combine with folderId.
tagMatchNoRequire all supplied tags by default, or any supplied tag.
sortOrderNoSort direction, descending by default with an ID tie-breaker.
updatedToNoExclusive updated timestamp upper bound, with timezone.
categoryIdNoFilter by effective category UUID, including inherited folder placement.
visibilityNoOptional document visibility filter; never expands access.
updatedFromNoInclusive updated timestamp lower bound, with timezone.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.
includeChunksNoInclude matching text chunks only when requested.
includeDiagnosticsNoInclude redacted diagnostic details; omitted by default.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds that results are limited to "readable" documents in the active scope, which implies access filtering, but says nothing about pagination caps, result ordering, or what the search mode returns beyond the schema/output contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core purpose front-loaded and the mode split immediately after. Every clause carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-parameter tool with two mutually exclusive parameter sets, the description explains the mode split but not which parameter families belong to which mode, nor the workspaceId scoping default (search all granted scopes when omitted). The oneOf schema and output schema cover the rest, so this is adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so the schema carries most parameter meaning. The description still adds real value by clarifying that list mode filters by tag UUID while search mode takes tag names, and by characterizing the search query as hybrid text + semantic rather than a literal match.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Find readable documents") plus the scope qualifier ("in the active scope"), and splits the tool's two distinct behaviors (list vs search) explicitly. It does not contrast itself against siblings like read_document or explore_graph, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: mode=list for paginated browsing by folder or tag UUID, mode=search for hybrid text/semantic retrieval with tag names. That is a clear when-to-use rule for the internal fork, but there is no guidance on when to pick this tool over sibling retrieval tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_document_index_statusA
Read-onlyIdempotent
Inspect

Read current indexing and pipeline status for one document without starting work. Use refresh_document_index only when an explicit retry is intended.

NameRequiredDescriptionDefault
documentIdYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
pipelineYes
documentIdYes
searchableYes
embeddingStatusYes
embeddingProfileYes
activeGenerationIdYes
embeddingErrorCodeYes
embeddingUpdatedAtYes
pendingGenerationIdYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds a meaningful behavioral detail beyond annotations: this read does not start indexing work, which is precisely why it differs from refresh_document_index. It does not discuss rate limits or workspace scoping, but the essential non-mutating nature is made explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is two tight sentences with zero waste. The core purpose is front-loaded, and the alternative-use warning follows immediately in a compact routing sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-read tool, the description covers purpose, behavioral distinction from the retry sibling, and the fact that no work is started. The output schema exists, annotations already declare the safety profile, and parameter descriptions are fully covered by the schema, leaving no material gap for an agent to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, including clear descriptions for documentId and workspaceId, so the schema already carries parameter semantics. The description only implies that status is scoped to one document and does not add syntax, format, or workspace-scope guidance beyond what is already in the schema. Baseline 3 is appropriate when structured fields do the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb + resource: 'Read current indexing and pipeline status for one document.' It also distinguishes the tool from the sibling refresh_document_index by clarifying that this tool does not start work. An agent can tell exactly what this tool does and what it is not for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent to refresh_document_index only when an explicit retry is intended, which is a clear alternative-use condition. The phrase 'without starting work' also clarifies when this read-only status check is appropriate instead of initiating a retry. Nothing material is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_workspace_itemA
Read-onlyIdempotent
Inspect

Read one visible folder, category, or tag by UUID. Folder uses its direct API getter; category and tag lookup uses the complete permission-filtered lists. An absent or out-of-scope ID is reported as not found. Use list_workspace_structure to discover IDs first.

NameRequiredDescriptionDefault
idYesUUID of an item visible to the active API key.
kindYesThe workspace resource type to read by ID.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, but the description adds real value: folder lookup uses a direct API getter while category/tag use permission-filtered lists (a latency/consistency difference), and an absent or out-of-scope ID is surfaced as 'not found' rather than an error. That not-found semantics is the kind of thing an agent needs and cannot infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences with zero filler: purpose first, implementation differences second, error semantics third, prerequisite last. Every sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the description's burden is light, and it still covers the two non-obvious behaviors (per-kind lookup mechanism, not-found reporting). The only gap is silence on the optional workspaceId scoping parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, kind, and workspaceId, and the enum pins the allowed kinds. The description only restates the three kinds and adds visibility scoping for IDs; it says nothing about the optional workspaceId parameter. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) plus the exact resource set (one visible folder, category, or tag) scoped to UUID. This cleanly separates it from siblings like save_folder, delete_category, and list_workspace_structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to list_workspace_structure for ID discovery, which is the key prerequisite. It stops short of stating when a caller should prefer a bulk list call over repeated single reads, but the primary usage condition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_trashA
Read-onlyIdempotent
Inspect

List soft-deleted documents visible to the active workspace or category scope. Requires read access and does not restore or purge anything.

NameRequiredDescriptionDefault
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, non-destructive, and idempotent behavior, so the description adds mainly the auth requirement ('Requires read access') and clarifies that it won't restore or purge. This is useful context beyond the annotations, but it does not cover rate limits, pagination, or return format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose and scope. The second sentence adds auth and side-effect clarity without redundancy, though it could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter, the description covers purpose, scope, auth requirement, and non-destructive nature. An output schema exists, so return values need not be explained; the description is largely complete, though it could mention pagination or default ordering.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single optional workspaceId parameter is fully documented in the schema. The description adds a minor scope hint ('visible to the active workspace or category scope'), but does not provide syntax or default behavior beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb (List) and resource (soft-deleted documents) with scope (active workspace or category). It implicitly distinguishes itself from restore/purge siblings by explicitly stating it does not perform those actions, though it doesn't name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'does not restore or purge anything' signals when not to use this tool (i.e., for recovery or permanent deletion), and 'Requires read access' implies a prerequisite. However, no alternative tool is named, leaving the agent to infer that restore_trashed_document or permanently_delete_document should be used instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workspace_structureA
Read-onlyIdempotent
Inspect

Discover permitted spaces with kind=workspaces, including empty spaces; use returned workspaceId for scoped operations. List folders, categories, or tags; set kind=folders for root folders or children of parentId. Unselected reads cover all granted scopes when supported by the host.

NameRequiredDescriptionDefault
kindNo
parentIdNoUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine behavior beyond that: empty spaces are included in workspace discovery, and unscoped reads cover all granted scopes only 'when supported by the host'. The latter is vague about what happens if the host does not support it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the primary discovery mode before branching to the other kinds. No filler, though the closing sentence about host support is cryptic enough that it costs a little clarity for its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all four kind variants and the parentId/workspaceId interplay, which is the substance an agent needs to call it. With an output schema present, return values need no explanation. Minor gaps remain around ordering/pagination and categories/tags scoping rules.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% with fairly detailed kind/workspaceId descriptions. The description adds meaning the schema lacks, notably that parentId selects children of a parent folder and that workspaceId is reused from a preceding kind=workspaces call. The categories/tags scoping behavior relative to workspaceId is not spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verbs and resources: 'Discover permitted spaces with kind=workspaces' and 'List folders, categories, or tags'. This is important because the tool name only mentions 'workspace_structure' while the tool actually also enumerates categories and tags. It doesn't name any sibling (e.g. save_folder/delete_tag) as a contrast, so the differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear guidance on which kind to pick: kind=workspaces to discover spaces and obtain a workspaceId for later scoped calls, kind=folders for root folders or children of parentId. It also explains that omitting workspaceId broadens reads to all granted scopes. It stops short of naming alternatives or stating when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

permanently_delete_documentA
Destructive
Inspect

Irreversibly purge a document already in trash, including its version history. Use only on an explicit user request after checking list_trash.

NameRequiredDescriptionDefault
idYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, but the description adds the details an agent actually needs before firing: the operation is irreversible and it destroys version history, and the target must already be in trash. That is exactly the 'what gets destroyed' context the annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the irreversible consequence front-loaded ahead of the usage restriction. Every clause carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive single-target purge with full schema coverage, an output schema, and complete annotations, nothing material is missing: what it does, what is lost, what precondition must hold, and what to check first are all stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the id parameter documented as a UUID from a list/read operation and workspaceId explained as optional scope. The description adds no further syntax or format detail, so the documented baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('irreversibly purge a document') plus a narrowing precondition ('already in trash, including its version history') that separates it from sibling soft-delete tools like delete_document. An agent can pick this over delete_document or restore_trashed_document without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a hard usage gate ('use only on an explicit user request') and a concrete prerequisite ('after checking list_trash'), which is real routing guidance. It stops short of naming the alternatives for the non-trashed case (delete_document) or the undo path (restore_trashed_document), so the when-not side is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_documentA
Read-onlyIdempotent
Inspect

Read one document by UUID. Choose detail for content and metadata, markdown for portable export, or versions for saved revisions and snapshots. All views are read-only.

NameRequiredDescriptionDefault
idNoUUID returned by the corresponding list or read operation.
viewNo
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.
onlySnapshotsNoWhen true, return only named snapshots.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so "All views are read-only" merely restates structured data and earns no credit. The description does add a little behavioral content by characterizing what versions returns (saved revisions and snapshots), but says nothing about permissions/scope behavior, version ordering, or result volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: the action first, the view decision second, the safety guarantee last. No filler, no repetition, and the most important disambiguation (which view) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return value detail is not required, and the description covers the main discriminator (view) plus the read-only guarantee. It leaves the optional onlySnapshots flag and workspaceId scoping behavior to the schema, which is acceptable given 75% coverage but keeps it short of fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema's own view descriptions are tautological ("Select the detail operation explicitly"), so the description's mapping of detail/markdown/versions to actual outputs adds genuine meaning beyond the schema. workspaceId and onlySnapshots are left entirely to the schema's own text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Read one document by UUID" is a specific verb+resource with a clear single-item scope, and the three view modes make the tool's shape explicit. It does not explicitly contrast with siblings such as find_documents (which is how you obtain the UUID) or get_workspace_item, so differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives the key selection guidance an agent needs: use detail for content+metadata, markdown for portable export, versions for revisions/snapshots. That covers the internal choice well. It stops short of saying when to reach for this tool versus find_documents or get_document_index_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_document_indexAInspect

Queue an explicit asynchronous reindex for one document; use batch_documents(action=refresh_index) for multiple explicit IDs. Routine content and placement changes already schedule indexing; check get_document_index_status first.

NameRequiredDescriptionDefault
documentIdYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
documentIdYes
deduplicatedYes
generationIdYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (not read-only, not destructive, not idempotent), and the description adds meaningful behavior beyond them: the operation is asynchronous (queued, not immediate) and is often unnecessary because routine edits auto-schedule indexing. It stops short of saying what happens on duplicate queueing or how completion is observed, which would round out the async story.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler. The primary action is front-loaded, followed by the sibling routing and the precondition check in descending order of importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and both parameters are fully described in the schema. The description fills the remaining gaps an agent needs: async nature, sibling routing, and the prerequisite status check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both documentId and workspaceId are already documented in the schema. The description only implies the single-document constraint ('one document') without adding format, scoping, or ambiguity-resolution detail. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Queue an explicit asynchronous reindex for one document') with clear scope ('one document'). It also distinguishes itself from the batch sibling that handles multiple IDs, so an agent can route correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative (batch_documents(action=refresh_index)) and the condition that selects it, then adds two negative conditions: routine content/placement changes already schedule indexing, and get_document_index_status should be checked first. This is an unusually complete when/when-not/alternatives statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_document_versionA
Destructive
Inspect

Restore content from a version or snapshot listed by read_document(view=versions). This changes current content and queues indexing; it does not restore a trashed document.

NameRequiredDescriptionDefault
versionIdYesUUID returned by the corresponding list or read operation.
documentIdYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
idYes
tagsNo
titleYes
contentYes
ownerIdYes
folderIdYes
metadataNo
createdAtYes
updatedAtYes
categoryIdYes
folderNameNo
visibilityYes
contentJsonNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is known. The description adds real behavioral context beyond that: current content is overwritten and an indexing job is queued as a side effect. It stops short of saying whether the prior content is itself snapshotted or whether the restore is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The core mutation and the queued-indexing consequence come first, and the exclusion follows as a scoping clause. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations already cover the return shape and safety profile, so the description only needs to explain side effects and boundaries — which it does. The only gap is not stating whether a rollback snapshot is created before overwriting current content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, but the description adds a retrieval path for versionId ('listed by read_document(view=versions)') that is more actionable than the schema's generic 'UUID returned by the corresponding list or read operation.' workspaceId and the required UUID pairing are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb and resource (restore content from a version/snapshot) and immediately scopes it against the sibling restore_trashed_document with 'it does not restore a trashed document.' An agent can distinguish it from the other 20 siblings without reading any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells the agent where the versionId comes from (read_document with view=versions), which is a concrete precondition for use. It also excludes the trashed-document case, implicitly routing that need to restore_trashed_document, though it never names that sibling explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_trashed_documentAInspect

Return one document from trash to the active library; use batch_documents(action=restore) for multiple explicit IDs. This restores the document itself, unlike restore_document_version which changes content.

NameRequiredDescriptionDefault
idYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription
successYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (destructiveHint=false, openWorldHint=false, idempotentHint=false), so the description needn't restate it. The description adds the useful scope distinction that only the document itself is restored, but says nothing about what happens if the document is not in trash or whether a second call fails — relevant given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, and the primary behavior comes before the sibling disambiguations. Every clause carries routing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the safety profile. The description is nearly complete for a single-entity mutation; only failure/edge-case behavior (document not in trash) is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the id and workspaceId parameters are fully documented in the schema itself, including where to obtain each UUID. The description adds no parameter-level detail, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Return one document from trash to the active library') and immediately distinguishes itself from two siblings by name. An agent can tell it apart from restore_document_version and batch_documents without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: use batch_documents(action=restore) for multiple explicit IDs, and restore_document_version if the goal is to change content rather than un-trash. Both the alternative and the selection condition are stated outright.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_categoryA
Destructive
Inspect

Create or update a workspace category. Full workspace write access is required; category-scoped credentials cannot manage categories.

NameRequiredDescriptionDefault
idNoUUID returned by the corresponding list or read operation.
nameNoNon-empty human-readable name or title.
orderNoNew non-negative display order.
actionNo
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, and the description usefully adds that category-scoped credentials are rejected. However, it never explains what makes a save destructive — e.g. whether an update replaces name/order wholesale, what happens to items already filed under a renamed category, or what failure modes exist. Given a destructive write tool, the added context is real but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the operation scope stated first and the auth constraint second. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and rich annotations cover return shape and safety profile, and the auth note covers a key gate. Still missing for a destructive create-or-update tool: whether update is partial or full replacement, and what happens when a create is ambiguous without workspaceId — a case the schema itself flags.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the schema already explains name, id, order, action, and workspaceId. The description adds nothing about parameter behavior — notably it does not clarify that id/order are forbidden on create or that workspaceId may be omitted. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair ("Create or update") and a specific resource ("workspace category"), which separates it from siblings like save_folder and save_tag by resource type. It does not explicitly name an alternative tool or clarify why category save is distinct from those siblings, keeping it just below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an auth prerequisite ("Full workspace write access is required; category-scoped credentials cannot manage categories") but never says when to create vs. update or when to prefer this over save_folder/save_tag. The create/update split is only inferable from the schema's action enum, so usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_documentA
Destructive
Inspect

Create or update one document. Use action=create for a new document or action=update for an existing one; batch_documents handles the same placement change across multiple existing documents. Creation requires write access; content edits require edit access, and placement changes may require write access. Content or placement changes queue normal indexing.

NameRequiredDescriptionDefault
idNoUUID returned by the corresponding list or read operation.
titleNoDocument title, from 1 to 500 characters.
actionNo
contentNoMarkdown document content; an empty string clears the content on update.
folderIdNo
categoryIdNoOptional category UUID; null clears the explicit category.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a destructive, non-idempotent mutation, so the description benefits from adding permission requirements and side effects. It adds that creation needs write access, content edits need edit access, placement changes may need write access, and content or placement changes queue indexing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three compact sentences and front-loads the core create/update behavior. Every sentence contributes actionable routing, permission, or side-effect information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the oneOf schema, annotations, and output schema, the description supplies the key decision context: create vs update, batch alternative, permissions, and indexing consequences. An agent has enough information to choose and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 71%, so most parameter meaning is already supplied by the schema. The description clarifies that action=create means new document and action=update means existing document, but it does not add much beyond the schema for the remaining parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: create or update one document. It also distinguishes the tool from batch_documents, which handles placement changes across multiple existing documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says action=create is for a new document and action=update is for an existing one. It names batch_documents as the alternative for multi-document placement changes and states the access-level prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_folderA
Destructive
Inspect

Create or update a folder. action=update can rename or move an existing folder; the API enforces category boundaries and queues affected documents for reindexing.

NameRequiredDescriptionDefault
idNoUUID returned by the corresponding list or read operation.
nameNoNon-empty human-readable name or title.
orderNoNew non-negative display order.
actionNo
parentIdNoOptional parent folder UUID; null selects the root.
categoryIdNoOptional category UUID; null clears the explicit category.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=false, but the description adds genuinely new behavior: the API enforces category boundaries and queues affected documents for reindexing. It does not disclose what specifically is destroyed or what permissions the category-boundary rule requires.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the core purpose is front-loaded, then the update branch, then the side effects. No filler and nothing repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent mutation with a rich oneOf schema and an output schema, the description covers purpose, the create/update split, and the reindexing side effect. The main remaining gap is permission/prerequisite context for the category-boundary enforcement and what a failed move does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (86%) and every property carries its own description, so the schema does the heavy lifting for parentId, categoryId, order, and workspaceId. The description only adds the category-boundary constraint, not per-parameter format or requiredness context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Create or update a folder") and immediately clarifies that the update branch covers rename or move. The folder entity cleanly separates it from siblings like save_category, save_tag, save_document, and delete_folder, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"action=update can rename or move an existing folder" gives clear context for choosing between the tool's two branches, which is the main routing decision an agent faces. It stops short of stating when not to use it or naming an alternative tool for cross-workspace or trash scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_tagA
Destructive
Inspect

Create or update a workspace tag. Full workspace write access is required; renaming or recoloring a tag causes affected documents to be reindexed.

NameRequiredDescriptionDefault
idNoUUID returned by the corresponding list or read operation.
nameNoNon-empty human-readable name or title.
colorNoOptional tag color, at most 20 characters.
actionNo
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, readOnlyHint=false and idempotentHint=false. The description adds two genuinely non-obvious behavioral facts — the workspace write-permission requirement and the document reindexing side effect on rename/recolor — which is real incremental value. However it omits what an update actually destroys or whether an update with no color leaves the existing color intact, which matters for a destructive-flagged mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the scope stated first and the permission plus side-effect caveats packed into the second. Nothing can be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with an output schema and 80% schema coverage, the description covers permissions and the reindexing consequence, which are the highest-risk unknowns. It falls short only on update semantics (partial-update behavior, overwrite vs. merge), which an agent would still have to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the schema already documents name, color, id, workspaceId and the action discriminator. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Create or update a workspace tag" gives a specific verb pair and resource, and the description's second clause scopes it to workspace-level tags. It does not, however, distinguish itself from the nearby delete_tag or set_document_tag siblings, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the access prerequisite ("Full workspace write access is required") but never says when to choose this over delete_tag or set_document_tag, nor when create vs. update applies beyond what the schema's `action` const already declares. Usage is only implied by the name and the first sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_document_tagA
Destructive
Inspect

Add or remove an existing tag assignment on one document. Use batch_documents for the same tag action across multiple explicit IDs. Requires edit access to each document; action=remove preserves the tag itself.

NameRequiredDescriptionDefault
tagIdYesUUID returned by the corresponding list or read operation.
actionYesAdd or remove exactly one tag assignment.
documentIdYesUUID returned by the corresponding list or read operation.
workspaceIdNoWorkspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotency, so the description's key contribution is scoping the destruction: 'action=remove preserves the tag itself' reassures that only the assignment is removed, not the tag entity. It also discloses the edit-access requirement, valuable auth context absent from annotations, but does not address what happens if the assignment already exists despite idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core operation front-loaded and the alternative routing and permission note following in priority order. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, and the description covers the operation, the alternative, permissions, and the remove semantics. The one residual gap is behavior on a duplicate add, which matters given idempotentHint=false but is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description exceeds that by explaining the semantic effect of the action enum ('remove preserves the tag itself') and by qualifying tagId as an 'existing tag assignment.' It adds real meaning rather than restating field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair and resource ('Add or remove an existing tag assignment') with explicit cardinality scope ('on one document'), which cleanly separates it from batch_documents. An agent knows exactly what operation this performs without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the sibling alternative explicitly and gives the condition that selects it: 'Use batch_documents for the same tag action across multiple explicit IDs.' It also states the prerequisite ('Requires edit access to each document'), though it doesn't clarify when to use save_tag vs. this for a tag that doesn't yet exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv2.1.1
    • Changedbatch_documents6 fields changed
      • removedInput schema / properties / documentIds / anyOf
        Removed value: -[
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -    "items": {
        -      "description": "UUID of an item visible to the active API key.",
        -      "format": "uuid",
        -      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -      "type": "string"
        -    },
        -    "maxItems": 25,
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]
      • addedInput schema / properties / documentIds / description
        Added value: +"One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion."
      • addedInput schema / properties / documentIds / items
        Added value: +{
        +  "description": "UUID of an item visible to the active API key.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / documentIds / maxItems
        Added value: +25
      • addedInput schema / properties / documentIds / minItems
        Added value: +1
      • addedInput schema / properties / documentIds / type
        Added value: +"array"
    • Changedexplore_graph5 fields changed
      • removedInput schema / properties / limit / anyOf
        Removed value: -[
        -  {
        -    "description": "Maximum results to return, up to 100.",
        -    "maximum": 100,
        -    "minimum": 1,
        -    "type": "integer"
        -  },
        -  {
        -    "description": "Maximum results to return, up to 100.",
        -    "maximum": 100,
        -    "minimum": 1,
        -    "type": "integer"
        -  }
        -]
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results to return, up to 100."
      • addedInput schema / properties / limit / maximum
        Added value: +100
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / limit / type
        Added value: +"integer"
    • Changedfind_documents13 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "query"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "folder"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tags"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "folderId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum documents per page, up to 1000.",
        -        "maximum": 1000,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "list",
        -        "description": "Select the list operation explicitly.",
        -        "type": "string"
        -      },
        -      "page": {
        -        "description": "One-based page number; defaults to the API first page.",
        -        "maximum": 9007199254740991,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "tag": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "workspaceId": {
        -        "$schema": "https://json-schema.org/draft/2020-12/schema",
        -        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tag"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "page"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "folder": {
        -        "description": "Optional folder UUID filter for search.",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "search",
        -        "description": "Select the search operation explicitly.",
        -        "type": "string"
        -      },
        -      "query": {
        -        "description": "Text to search in the original language.",
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "tags": {
        -        "description": "Optional tag names; all supplied names must match.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "workspaceId": {
        -        "$schema": "https://json-schema.org/draft/2020-12/schema",
        -        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "query"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "query"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "includeDiagnostics"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "includeChunks"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "folder"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tags"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "categoryId": {
        +        "description": "Filter by effective category UUID, including inherited folder placement.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "folderId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum documents per page, up to 1000.",
        +        "maximum": 1000,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "list",
        +        "description": "Select the list operation explicitly.",
        +        "type": "string"
        +      },
        +      "page": {
        +        "description": "One-based page number; defaults to the API first page.",
        +        "maximum": 9007199254740991,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "q": {
        +        "description": "Literal case-insensitive title/content filter; does not invoke semantic search.",
        +        "type": "string"
        +      },
        +      "rootOnly": {
        +        "description": "Return only documents without a folder; cannot combine with folderId.",
        +        "type": "boolean"
        +      },
        +      "sortBy": {
        +        "description": "Stable server-side sort field; defaults to updatedAt.",
        +        "enum": [
        +          "updatedAt",
        +          "createdAt",
        +          "title"
        +        ],
        +        "type": "string"
        +      },
        +      "sortOrder": {
        +        "description": "Sort direction, descending by default with an ID tie-breaker.",
        +        "enum": [
        +          "asc",
        +          "desc"
        +        ],
        +        "type": "string"
        +      },
        +      "tag": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "tagIds": {
        +        "description": "Filter by tag UUIDs; cannot combine with the legacy tag field.",
        +        "items": {
        +          "description": "UUID returned by the corresponding list or read operation.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "tagMatch": {
        +        "description": "Require all supplied tags by default, or any supplied tag.",
        +        "enum": [
        +          "all",
        +          "any"
        +        ],
        +        "type": "string"
        +      },
        +      "updatedFrom": {
        +        "description": "Inclusive updated timestamp lower bound, with timezone.",
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "updatedTo": {
        +        "description": "Exclusive updated timestamp upper bound, with timezone.",
        +        "format": "date-time",
        +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +        "type": "string"
        +      },
        +      "visibility": {
        +        "description": "Optional document visibility filter; never expands access.",
        +        "enum": [
        +          "private",
        +          "shared",
        +          "public"
        +        ],
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "visibility"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "rootOnly"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tag"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagIds"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagMatch"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "q"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "updatedFrom"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "updatedTo"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "sortBy"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "sortOrder"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "page"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "folder": {
        +        "description": "Optional folder UUID filter for search.",
        +        "type": "string"
        +      },
        +      "includeChunks": {
        +        "description": "Include matching text chunks only when requested.",
        +        "type": "boolean"
        +      },
        +      "includeDiagnostics": {
        +        "description": "Include redacted diagnostic details; omitted by default.",
        +        "type": "boolean"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      },
        +      "query": {
        +        "description": "Text to search in the original language.",
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "tags": {
        +        "description": "Optional tag names; all supplied names must match.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "query"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / categoryId
        Added value: +{
        +  "description": "Filter by effective category UUID, including inherited folder placement.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / includeChunks
        Added value: +{
        +  "description": "Include matching text chunks only when requested.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / includeDiagnostics
        Added value: +{
        +  "description": "Include redacted diagnostic details; omitted by default.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / q
        Added value: +{
        +  "description": "Literal case-insensitive title/content filter; does not invoke semantic search.",
        +  "type": "string"
        +}
      • addedInput schema / properties / rootOnly
        Added value: +{
        +  "description": "Return only documents without a folder; cannot combine with folderId.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sortBy
        Added value: +{
        +  "description": "Stable server-side sort field; defaults to updatedAt.",
        +  "enum": [
        +    "updatedAt",
        +    "createdAt",
        +    "title"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / sortOrder
        Added value: +{
        +  "description": "Sort direction, descending by default with an ID tie-breaker.",
        +  "enum": [
        +    "asc",
        +    "desc"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / tagIds
        Added value: +{
        +  "description": "Filter by tag UUIDs; cannot combine with the legacy tag field.",
        +  "items": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / tagMatch
        Added value: +{
        +  "description": "Require all supplied tags by default, or any supplied tag.",
        +  "enum": [
        +    "all",
        +    "any"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / updatedFrom
        Added value: +{
        +  "description": "Inclusive updated timestamp lower bound, with timezone.",
        +  "format": "date-time",
        +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +  "type": "string"
        +}
      • addedInput schema / properties / updatedTo
        Added value: +{
        +  "description": "Exclusive updated timestamp upper bound, with timezone.",
        +  "format": "date-time",
        +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        +  "type": "string"
        +}
      • addedInput schema / properties / visibility
        Added value: +{
        +  "description": "Optional document visibility filter; never expands access.",
        +  "enum": [
        +    "private",
        +    "shared",
        +    "public"
        +  ],
        +  "type": "string"
        +}
    • Changedread_document6 fields changed
      • removedInput schema / properties / id / anyOf
        Removed value: -[
        -  {
        -    "description": "UUID returned by the corresponding list or read operation.",
        -    "format": "uuid",
        -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -    "type": "string"
        -  },
        -  {
        -    "description": "UUID returned by the corresponding list or read operation.",
        -    "format": "uuid",
        -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -    "type": "string"
        -  },
        -  {
        -    "description": "UUID returned by the corresponding list or read operation.",
        -    "format": "uuid",
        -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / id / description
        Added value: +"UUID returned by the corresponding list or read operation."
      • addedInput schema / properties / id / format
        Added value: +"uuid"
      • addedInput schema / properties / id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      • addedInput schema / properties / id / type
        Added value: +"string"
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "detail",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "categoryId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "content": {
        -            "type": "string"
        -          },
        -          "contentJson": {},
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "folderId": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "folderName": {
        -            "type": [
        -              "string",
        -              "null"
        -            ]
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "metadata": {},
        -          "ownerId": {
        -            "type": "string"
        -          },
        -          "tags": {
        -            "items": {
        -              "additionalProperties": {},
        -              "properties": {
        -                "color": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "documentCount": {
        -                  "type": "number"
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "color"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "updatedAt": {
        -            "type": "string"
        -          },
        -          "visibility": {
        -            "enum": [
        -              "private",
        -              "shared",
        -              "public"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "ownerId",
        -          "folderId",
        -          "categoryId",
        -          "title",
        -          "content",
        -          "visibility",
        -          "createdAt",
        -          "updatedAt"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "markdown",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "filename": {
        -            "type": "string"
        -          },
        -          "markdown": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "markdown"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "versions",
        -        "type": "string"
        -      },
        -      "result": {
        -        "items": {
        -          "additionalProperties": {},
        -          "properties": {
        -            "content": {
        -              "type": "string"
        -            },
        -            "contentJson": {},
        -            "createdAt": {
        -              "type": "string"
        -            },
        -            "createdBy": {
        -              "type": "string"
        -            },
        -            "description": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "documentId": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "isSnapshot": {
        -              "type": "boolean"
        -            },
        -            "label": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "restoredFrom": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "documentId",
        -            "content",
        -            "createdBy",
        -            "createdAt"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "detail",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "categoryId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "content": {
        +            "type": "string"
        +          },
        +          "contentJson": {},
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "folderId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "folderName": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "metadata": {},
        +          "ownerId": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "color": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "documentCount": {
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "color"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "updatedAt": {
        +            "type": "string"
        +          },
        +          "visibility": {
        +            "enum": [
        +              "private",
        +              "shared",
        +              "public"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "ownerId",
        +          "folderId",
        +          "categoryId",
        +          "title",
        +          "content",
        +          "visibility",
        +          "createdAt",
        +          "updatedAt"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "markdown",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "filename": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "markdown": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "updatedAt": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "workspaceId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "workspaceSlug": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "markdown"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "versions",
        +        "type": "string"
        +      },
        +      "result": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "content": {
        +              "type": "string"
        +            },
        +            "contentJson": {},
        +            "createdAt": {
        +              "type": "string"
        +            },
        +            "createdBy": {
        +              "type": "string"
        +            },
        +            "description": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "documentId": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "isSnapshot": {
        +              "type": "boolean"
        +            },
        +            "label": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "restoredFrom": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "documentId",
        +            "content",
        +            "createdBy",
        +            "createdAt"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedsave_category5 fields changed
      • removedInput schema / properties / name / anyOf
        Removed value: -[
        -  {
        -    "description": "Non-empty human-readable name or title.",
        -    "maxLength": 255,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  {
        -    "description": "Non-empty human-readable name or title.",
        -    "maxLength": 255,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / name / description
        Added value: +"Non-empty human-readable name or title."
      • addedInput schema / properties / name / maxLength
        Added value: +255
      • addedInput schema / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / name / type
        Added value: +"string"
    • Changedsave_document10 fields changed
      • changedInput schema / properties / categoryId / anyOf
        Previous value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "Optional category UUID; null clears the explicit category."
        -  },
        -  {
        -    "anyOf": [
        -      {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "Optional category UUID; null clears the explicit category."
        -  }
        -]New value: +[
        +  {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / categoryId / description
        Added value: +"Optional category UUID; null clears the explicit category."
      • removedInput schema / properties / content / anyOf
        Removed value: -[
        -  {
        -    "description": "Markdown document content; an empty string clears the content on update.",
        -    "type": "string"
        -  },
        -  {
        -    "description": "Markdown document content; an empty string clears the content on update.",
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / content / description
        Added value: +"Markdown document content; an empty string clears the content on update."
      • addedInput schema / properties / content / type
        Added value: +"string"
      • removedInput schema / properties / title / anyOf
        Removed value: -[
        -  {
        -    "description": "Document title, from 1 to 500 characters.",
        -    "maxLength": 500,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  {
        -    "description": "Document title, from 1 to 500 characters.",
        -    "maxLength": 500,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / title / description
        Added value: +"Document title, from 1 to 500 characters."
      • addedInput schema / properties / title / maxLength
        Added value: +500
      • addedInput schema / properties / title / minLength
        Added value: +1
      • addedInput schema / properties / title / type
        Added value: +"string"
    • Changedsave_folder9 fields changed
      • changedInput schema / properties / categoryId / anyOf
        Previous value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "Optional category UUID; null clears the explicit category."
        -  },
        -  {
        -    "anyOf": [
        -      {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "Optional category UUID; null clears the explicit category."
        -  }
        -]New value: +[
        +  {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / categoryId / description
        Added value: +"Optional category UUID; null clears the explicit category."
      • removedInput schema / properties / name / anyOf
        Removed value: -[
        -  {
        -    "description": "Non-empty human-readable name or title.",
        -    "maxLength": 255,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  {
        -    "description": "Non-empty human-readable name or title.",
        -    "maxLength": 255,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / name / description
        Added value: +"Non-empty human-readable name or title."
      • addedInput schema / properties / name / maxLength
        Added value: +255
      • addedInput schema / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / name / type
        Added value: +"string"
      • changedInput schema / properties / parentId / anyOf
        Previous value: -[
        -  {
        -    "anyOf": [
        -      {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "Optional parent folder UUID; null selects the root."
        -  },
        -  {
        -    "anyOf": [
        -      {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      {
        -        "type": "null"
        -      }
        -    ],
        -    "description": "Optional parent folder UUID; null selects the root."
        -  }
        -]New value: +[
        +  {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / parentId / description
        Added value: +"Optional parent folder UUID; null selects the root."
    • Changedsave_tag9 fields changed
      • removedInput schema / properties / color / anyOf
        Removed value: -[
        -  {
        -    "description": "Optional tag color, at most 20 characters.",
        -    "maxLength": 20,
        -    "type": "string"
        -  },
        -  {
        -    "description": "Optional tag color, at most 20 characters.",
        -    "maxLength": 20,
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / color / description
        Added value: +"Optional tag color, at most 20 characters."
      • addedInput schema / properties / color / maxLength
        Added value: +20
      • addedInput schema / properties / color / type
        Added value: +"string"
      • removedInput schema / properties / name / anyOf
        Removed value: -[
        -  {
        -    "description": "Non-empty human-readable name or title.",
        -    "maxLength": 100,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  {
        -    "description": "Non-empty human-readable name or title.",
        -    "maxLength": 100,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -]
      • addedInput schema / properties / name / description
        Added value: +"Non-empty human-readable name or title."
      • addedInput schema / properties / name / maxLength
        Added value: +100
      • addedInput schema / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / name / type
        Added value: +"string"
  2. 22 tool updatesv2.0.4
    • Changedbatch_documents2 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "categoryId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tagId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "move",
        -        "description": "Move each document to the same folder.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "folderId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID of an item visible to the active API key.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Destination folder UUID, or null for no folder."
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "folderId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tagId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "set_category",
        -        "description": "Set one explicit category on every document.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID of an item visible to the active API key.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Category UUID, or null to clear explicit category."
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "categoryId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "categoryId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "add_tag",
        -        "description": "Assign one existing tag to every document.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "tagId": {
        -        "description": "Existing tag UUID to assign to each document.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "tagId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "categoryId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "remove_tag",
        -        "description": "Remove one tag assignment from every document.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "tagId": {
        -        "description": "Existing tag UUID to unassign from each document.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "tagId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "categoryId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tagId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "trash",
        -        "description": "Move every document to trash without permanent deletion.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "categoryId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tagId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "restore",
        -        "description": "Restore every selected document from trash.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "categoryId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tagId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "refresh_index",
        -        "description": "Request explicit indexing retry for every document.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "move",
        +        "description": "Move each document to the same folder.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "folderId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID of an item visible to the active API key.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Destination folder UUID, or null for no folder."
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "folderId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "set_category",
        +        "description": "Set one explicit category on every document.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID of an item visible to the active API key.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Category UUID, or null to clear explicit category."
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "categoryId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "add_tag",
        +        "description": "Assign one existing tag to every document.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "tagId": {
        +        "description": "Existing tag UUID to assign to each document.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "tagId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "remove_tag",
        +        "description": "Remove one tag assignment from every document.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "tagId": {
        +        "description": "Existing tag UUID to unassign from each document.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "tagId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "trash",
        +        "description": "Move every document to trash without permanent deletion.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "restore",
        +        "description": "Restore every selected document from trash.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "refresh_index",
        +        "description": "Request explicit indexing retry for every document.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedcreate_snapshot7 fields changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / properties / description / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / description / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / label / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / label / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / restoredFrom / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / restoredFrom / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changeddelete_category1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changeddelete_document1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changeddelete_folder1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changeddelete_tag1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedexplore_graph2 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "docIds"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "query"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "documentId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "neighbors",
        -        "description": "Select the neighbors operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "documentId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "documentId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "docIds": {
        -        "description": "One to 50 authorized seed document UUIDs.",
        -        "items": {
        -          "description": "UUID returned by the corresponding list or read operation.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 50,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "search",
        -        "description": "Select the search operation explicitly.",
        -        "type": "string"
        -      },
        -      "query": {
        -        "description": "Optional graph relevance query, at most 2000 characters.",
        -        "maxLength": 2000,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "docIds"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "docIds"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "query"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "documentId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "neighbors",
        +        "description": "Select the neighbors operation explicitly.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "documentId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "documentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "docIds": {
        +        "description": "One to 50 authorized seed document UUIDs.",
        +        "items": {
        +          "description": "UUID returned by the corresponding list or read operation.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 50,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      },
        +      "query": {
        +        "description": "Optional graph relevance query, at most 2000 characters.",
        +        "maxLength": 2000,
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "docIds"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedfind_documents3 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "query"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "folder"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tags"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "folderId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum documents per page, up to 1000.",
        -        "maximum": 1000,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "list",
        -        "description": "Select the list operation explicitly.",
        -        "type": "string"
        -      },
        -      "page": {
        -        "description": "One-based page number; defaults to the API first page.",
        -        "maximum": 9007199254740991,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "tag": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "folderId"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "tag"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "page"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "folder": {
        -        "description": "Optional folder UUID filter for search.",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "search",
        -        "description": "Select the search operation explicitly.",
        -        "type": "string"
        -      },
        -      "query": {
        -        "description": "Text to search in the original language.",
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "tags": {
        -        "description": "Optional tag names; all supplied names must match.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "query"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "query"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "folder"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tags"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "folderId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum documents per page, up to 1000.",
        +        "maximum": 1000,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "list",
        +        "description": "Select the list operation explicitly.",
        +        "type": "string"
        +      },
        +      "page": {
        +        "description": "One-based page number; defaults to the API first page.",
        +        "maximum": 9007199254740991,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "tag": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tag"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "page"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "folder": {
        +        "description": "Optional folder UUID filter for search.",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      },
        +      "query": {
        +        "description": "Text to search in the original language.",
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "tags": {
        +        "description": "Optional tag names; all supplied names must match.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "query"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "list",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "items": {
        -            "items": {
        -              "additionalProperties": {},
        -              "properties": {
        -                "categoryId": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "categoryName": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "content": {
        -                  "type": "string"
        -                },
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "folderId": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "folderName": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "tags": {
        -                  "items": {
        -                    "additionalProperties": {},
        -                    "properties": {
        -                      "color": {
        -                        "anyOf": [
        -                          {
        -                            "type": "string"
        -                          },
        -                          {
        -                            "type": "null"
        -                          }
        -                        ]
        -                      },
        -                      "createdAt": {
        -                        "type": "string"
        -                      },
        -                      "documentCount": {
        -                        "type": "number"
        -                      },
        -                      "id": {
        -                        "type": "string"
        -                      },
        -                      "name": {
        -                        "type": "string"
        -                      }
        -                    },
        -                    "required": [
        -                      "id",
        -                      "name",
        -                      "color"
        -                    ],
        -                    "type": "object"
        -                  },
        -                  "type": "array"
        -                },
        -                "title": {
        -                  "type": "string"
        -                },
        -                "updatedAt": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "title",
        -                "content",
        -                "folderId",
        -                "folderName",
        -                "categoryId",
        -                "categoryName",
        -                "createdAt",
        -                "updatedAt",
        -                "tags"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "limit": {
        -            "type": "number"
        -          },
        -          "page": {
        -            "type": "number"
        -          },
        -          "total": {
        -            "type": "number"
        -          }
        -        },
        -        "required": [
        -          "items",
        -          "total",
        -          "page",
        -          "limit"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "search",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "diagnostics": {
        -            "additionalProperties": {},
        -            "properties": {
        -              "graphAttempted": {
        -                "type": "boolean"
        -              },
        -              "graphContribution": {
        -                "type": "boolean"
        -              },
        -              "graphFailed": {
        -                "type": "boolean"
        -              }
        -            },
        -            "required": [
        -              "graphAttempted",
        -              "graphFailed",
        -              "graphContribution"
        -            ],
        -            "type": "object"
        -          },
        -          "items": {
        -            "items": {
        -              "additionalProperties": {},
        -              "properties": {
        -                "chunks": {
        -                  "items": {
        -                    "additionalProperties": {},
        -                    "properties": {
        -                      "charEnd": {
        -                        "type": "number"
        -                      },
        -                      "charStart": {
        -                        "type": "number"
        -                      },
        -                      "chunkIndex": {
        -                        "type": "number"
        -                      },
        -                      "chunkText": {
        -                        "type": "string"
        -                      },
        -                      "score": {
        -                        "type": "number"
        -                      }
        -                    },
        -                    "required": [
        -                      "chunkIndex",
        -                      "chunkText",
        -                      "charStart",
        -                      "charEnd",
        -                      "score"
        -                    ],
        -                    "type": "object"
        -                  },
        -                  "type": "array"
        -                },
        -                "created_at": {
        -                  "type": "string"
        -                },
        -                "folder_id": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "folder_name": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "score": {
        -                  "type": "number"
        -                },
        -                "snippet": {
        -                  "type": "string"
        -                },
        -                "tags": {
        -                  "items": {
        -                    "additionalProperties": {},
        -                    "properties": {
        -                      "color": {
        -                        "anyOf": [
        -                          {
        -                            "type": "string"
        -                          },
        -                          {
        -                            "type": "null"
        -                          }
        -                        ]
        -                      },
        -                      "createdAt": {
        -                        "type": "string"
        -                      },
        -                      "documentCount": {
        -                        "type": "number"
        -                      },
        -                      "id": {
        -                        "type": "string"
        -                      },
        -                      "name": {
        -                        "type": "string"
        -                      }
        -                    },
        -                    "required": [
        -                      "id",
        -                      "name",
        -                      "color"
        -                    ],
        -                    "type": "object"
        -                  },
        -                  "type": "array"
        -                },
        -                "title": {
        -                  "type": "string"
        -                },
        -                "updated_at": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "title",
        -                "snippet",
        -                "score",
        -                "folder_id",
        -                "folder_name",
        -                "created_at",
        -                "updated_at"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "limit": {
        -            "type": "number"
        -          },
        -          "page": {
        -            "type": "number"
        -          },
        -          "total": {
        -            "type": "number"
        -          }
        -        },
        -        "required": [
        -          "items",
        -          "total",
        -          "page",
        -          "limit"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "list",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "items": {
        +            "items": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "categoryId": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "categoryName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "content": {
        +                  "type": "string"
        +                },
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "folderId": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "folderName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "tags": {
        +                  "items": {
        +                    "additionalProperties": {},
        +                    "properties": {
        +                      "color": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "createdAt": {
        +                        "type": "string"
        +                      },
        +                      "documentCount": {
        +                        "type": "number"
        +                      },
        +                      "id": {
        +                        "type": "string"
        +                      },
        +                      "name": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "id",
        +                      "name",
        +                      "color"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "title": {
        +                  "type": "string"
        +                },
        +                "updatedAt": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "title",
        +                "content",
        +                "folderId",
        +                "folderName",
        +                "categoryId",
        +                "categoryName",
        +                "createdAt",
        +                "updatedAt",
        +                "tags"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "limit": {
        +            "type": "number"
        +          },
        +          "page": {
        +            "type": "number"
        +          },
        +          "total": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "items",
        +          "total",
        +          "page",
        +          "limit"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "search",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "diagnostics": {
        +            "additionalProperties": {},
        +            "properties": {
        +              "graphAttempted": {
        +                "type": "boolean"
        +              },
        +              "graphContribution": {
        +                "type": "boolean"
        +              },
        +              "graphFailed": {
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "graphAttempted",
        +              "graphFailed",
        +              "graphContribution"
        +            ],
        +            "type": "object"
        +          },
        +          "items": {
        +            "items": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "chunks": {
        +                  "items": {
        +                    "additionalProperties": {},
        +                    "properties": {
        +                      "charEnd": {
        +                        "type": "number"
        +                      },
        +                      "charStart": {
        +                        "type": "number"
        +                      },
        +                      "chunkIndex": {
        +                        "type": "number"
        +                      },
        +                      "chunkText": {
        +                        "type": "string"
        +                      },
        +                      "score": {
        +                        "type": "number"
        +                      }
        +                    },
        +                    "required": [
        +                      "chunkIndex",
        +                      "chunkText",
        +                      "charStart",
        +                      "charEnd",
        +                      "score"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "created_at": {
        +                  "type": "string"
        +                },
        +                "folder_id": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "folder_name": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "score": {
        +                  "type": "number"
        +                },
        +                "snippet": {
        +                  "type": "string"
        +                },
        +                "tags": {
        +                  "items": {
        +                    "additionalProperties": {},
        +                    "properties": {
        +                      "color": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "createdAt": {
        +                        "type": "string"
        +                      },
        +                      "documentCount": {
        +                        "type": "number"
        +                      },
        +                      "id": {
        +                        "type": "string"
        +                      },
        +                      "name": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "id",
        +                      "name",
        +                      "color"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "title": {
        +                  "type": "string"
        +                },
        +                "updated_at": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "title",
        +                "snippet",
        +                "score",
        +                "folder_id",
        +                "folder_name",
        +                "created_at",
        +                "updated_at"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "limit": {
        +            "type": "number"
        +          },
        +          "page": {
        +            "type": "number"
        +          },
        +          "total": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "items",
        +          "total",
        +          "page",
        +          "limit"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "type": "string"
        +      },
        +      "scopedResults": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "categoryId": {
        +              "anyOf": [
        +                {
        +                  "format": "uuid",
        +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "data": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "operation": {
        +                      "const": "list",
        +                      "type": "string"
        +                    },
        +                    "result": {
        +                      "additionalProperties": {},
        +                      "properties": {
        +                        "items": {
        +                          "items": {
        +                            "additionalProperties": {},
        +                            "properties": {
        +                              "categoryId": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "categoryName": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "content": {
        +                                "type": "string"
        +                              },
        +                              "createdAt": {
        +                                "type": "string"
        +                              },
        +                              "folderId": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "folderName": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "id": {
        +                                "type": "string"
        +                              },
        +                              "tags": {
        +                                "items": {
        +                                  "additionalProperties": {},
        +                                  "properties": {
        +                                    "color": {
        +                                      "type": [
        +                                        "string",
        +                                        "null"
        +                                      ]
        +                                    },
        +                                    "createdAt": {
        +                                      "type": "string"
        +                                    },
        +                                    "documentCount": {
        +                                      "type": "number"
        +                                    },
        +                                    "id": {
        +                                      "type": "string"
        +                                    },
        +                                    "name": {
        +                                      "type": "string"
        +                                    }
        +                                  },
        +                                  "required": [
        +                                    "id",
        +                                    "name",
        +                                    "color"
        +                                  ],
        +                                  "type": "object"
        +                                },
        +                                "type": "array"
        +                              },
        +                              "title": {
        +                                "type": "string"
        +                              },
        +                              "updatedAt": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "id",
        +                              "title",
        +                              "content",
        +                              "folderId",
        +                              "folderName",
        +                              "categoryId",
        +                              "categoryName",
        +                              "createdAt",
        +                              "updatedAt",
        +                              "tags"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "limit": {
        +                          "type": "number"
        +                        },
        +                        "page": {
        +                          "type": "number"
        +                        },
        +                        "total": {
        +                          "type": "number"
        +                        }
        +                      },
        +                      "required": [
        +                        "items",
        +                        "total",
        +                        "page",
        +                        "limit"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  },
        +                  "required": [
        +                    "operation",
        +                    "result"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "operation": {
        +                      "const": "search",
        +                      "type": "string"
        +                    },
        +                    "result": {
        +                      "additionalProperties": {},
        +                      "properties": {
        +                        "diagnostics": {
        +                          "additionalProperties": {},
        +                          "properties": {
        +                            "graphAttempted": {
        +                              "type": "boolean"
        +                            },
        +                            "graphContribution": {
        +                              "type": "boolean"
        +                            },
        +                            "graphFailed": {
        +                              "type": "boolean"
        +                            }
        +                          },
        +                          "required": [
        +                            "graphAttempted",
        +                            "graphFailed",
        +                            "graphContribution"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        "items": {
        +                          "items": {
        +                            "additionalProperties": {},
        +                            "properties": {
        +                              "chunks": {
        +                                "items": {
        +                                  "additionalProperties": {},
        +                                  "properties": {
        +                                    "charEnd": {
        +                                      "type": "number"
        +                                    },
        +                                    "charStart": {
        +                                      "type": "number"
        +                                    },
        +                                    "chunkIndex": {
        +                                      "type": "number"
        +                                    },
        +                                    "chunkText": {
        +                                      "type": "string"
        +                                    },
        +                                    "score": {
        +                                      "type": "number"
        +                                    }
        +                                  },
        +                                  "required": [
        +                                    "chunkIndex",
        +                                    "chunkText",
        +                                    "charStart",
        +                                    "charEnd",
        +                                    "score"
        +                                  ],
        +                                  "type": "object"
        +                                },
        +                                "type": "array"
        +                              },
        +                              "created_at": {
        +                                "type": "string"
        +                              },
        +                              "folder_id": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "folder_name": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "id": {
        +                                "type": "string"
        +                              },
        +                              "score": {
        +                                "type": "number"
        +                              },
        +                              "snippet": {
        +                                "type": "string"
        +                              },
        +                              "tags": {
        +                                "items": {
        +                                  "additionalProperties": {},
        +                                  "properties": {
        +                                    "color": {
        +                                      "type": [
        +                                        "string",
        +                                        "null"
        +                                      ]
        +                                    },
        +                                    "createdAt": {
        +                                      "type": "string"
        +                                    },
        +                                    "documentCount": {
        +                                      "type": "number"
        +                                    },
        +                                    "id": {
        +                                      "type": "string"
        +                                    },
        +                                    "name": {
        +                                      "type": "string"
        +                                    }
        +                                  },
        +                                  "required": [
        +                                    "id",
        +                                    "name",
        +                                    "color"
        +                                  ],
        +                                  "type": "object"
        +                                },
        +                                "type": "array"
        +                              },
        +                              "title": {
        +                                "type": "string"
        +                              },
        +                              "updated_at": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "id",
        +                              "title",
        +                              "snippet",
        +                              "score",
        +                              "folder_id",
        +                              "folder_name",
        +                              "created_at",
        +                              "updated_at"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "limit": {
        +                          "type": "number"
        +                        },
        +                        "page": {
        +                          "type": "number"
        +                        },
        +                        "total": {
        +                          "type": "number"
        +                        }
        +                      },
        +                      "required": [
        +                        "items",
        +                        "total",
        +                        "page",
        +                        "limit"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  },
        +                  "required": [
        +                    "operation",
        +                    "result"
        +                  ],
        +                  "type": "object"
        +                }
        +              ]
        +            },
        +            "workspace": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "id": {
        +                  "format": "uuid",
        +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "slug": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "slug"
        +              ],
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "workspace",
        +            "categoryId",
        +            "data"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "scopedResults"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_document_index_status11 fields changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / properties / activeGenerationId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / activeGenerationId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / embeddingErrorCode / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / embeddingErrorCode / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / embeddingProfile / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / embeddingProfile / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / embeddingUpdatedAt / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / embeddingUpdatedAt / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / pendingGenerationId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / pendingGenerationId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_workspace_item16 fields changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / __schema0 / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / parentId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / parentId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "folder",
        -        "type": "string"
        -      },
        -      "result": {
        -        "$ref": "#/$defs/__schema0"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "category",
        -        "type": "string"
        -      },
        -      "result": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": {},
        -            "properties": {
        -              "apiMode": {
        -                "enum": [
        -                  "unavailable",
        -                  "global",
        -                  "category"
        -                ],
        -                "type": "string"
        -              },
        -              "apiPermissionEdit": {
        -                "type": "boolean"
        -              },
        -              "apiPermissionRead": {
        -                "type": "boolean"
        -              },
        -              "apiPermissionWrite": {
        -                "type": "boolean"
        -              },
        -              "createdAt": {
        -                "type": "string"
        -              },
        -              "documentCount": {
        -                "type": "number"
        -              },
        -              "folderCount": {
        -                "type": "number"
        -              },
        -              "id": {
        -                "type": "string"
        -              },
        -              "name": {
        -                "type": "string"
        -              },
        -              "order": {
        -                "type": "number"
        -              },
        -              "updatedAt": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "id",
        -              "name",
        -              "order",
        -              "createdAt",
        -              "updatedAt",
        -              "apiMode",
        -              "apiPermissionRead",
        -              "apiPermissionEdit",
        -              "apiPermissionWrite"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "additionalProperties": {},
        -            "properties": {
        -              "createdAt": {
        -                "type": "string"
        -              },
        -              "documentCount": {
        -                "type": "number"
        -              },
        -              "folderCount": {
        -                "type": "number"
        -              },
        -              "id": {
        -                "type": "string"
        -              },
        -              "name": {
        -                "type": "string"
        -              },
        -              "order": {
        -                "type": "number"
        -              },
        -              "updatedAt": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "id",
        -              "name",
        -              "order",
        -              "createdAt",
        -              "updatedAt"
        -            ],
        -            "type": "object"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "tag",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "color": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "documentCount": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "color"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "folder",
        +        "type": "string"
        +      },
        +      "result": {
        +        "$ref": "#/$defs/__schema0"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "category",
        +        "type": "string"
        +      },
        +      "result": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": {},
        +            "properties": {
        +              "apiMode": {
        +                "enum": [
        +                  "unavailable",
        +                  "global",
        +                  "category"
        +                ],
        +                "type": "string"
        +              },
        +              "apiPermissionEdit": {
        +                "type": "boolean"
        +              },
        +              "apiPermissionRead": {
        +                "type": "boolean"
        +              },
        +              "apiPermissionWrite": {
        +                "type": "boolean"
        +              },
        +              "createdAt": {
        +                "type": "string"
        +              },
        +              "documentCount": {
        +                "type": "number"
        +              },
        +              "folderCount": {
        +                "type": "number"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "order": {
        +                "type": "number"
        +              },
        +              "updatedAt": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "id",
        +              "name",
        +              "order",
        +              "createdAt",
        +              "updatedAt",
        +              "apiMode",
        +              "apiPermissionRead",
        +              "apiPermissionEdit",
        +              "apiPermissionWrite"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": {},
        +            "properties": {
        +              "createdAt": {
        +                "type": "string"
        +              },
        +              "documentCount": {
        +                "type": "number"
        +              },
        +              "folderCount": {
        +                "type": "number"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "order": {
        +                "type": "number"
        +              },
        +              "updatedAt": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "id",
        +              "name",
        +              "order",
        +              "createdAt",
        +              "updatedAt"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "tag",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "color": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "documentCount": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "color"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedlist_trash5 fields changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / additionalProperties
        Removed value: -{}
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "documents": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "deletedAt": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "format": "uuid",
        +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +              "type": "string"
        +            },
        +            "purgeAfter": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "title": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "title",
        +            "deletedAt",
        +            "purgeAfter"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "folders": {
        +        "items": {},
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "documents",
        +      "folders"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "type": "string"
        +      },
        +      "scopedResults": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "categoryId": {
        +              "anyOf": [
        +                {
        +                  "format": "uuid",
        +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "data": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "documents": {
        +                  "items": {
        +                    "additionalProperties": {},
        +                    "properties": {
        +                      "deletedAt": {
        +                        "type": "string"
        +                      },
        +                      "id": {
        +                        "format": "uuid",
        +                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                        "type": "string"
        +                      },
        +                      "purgeAfter": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "title": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "id",
        +                      "title",
        +                      "deletedAt",
        +                      "purgeAfter"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "folders": {
        +                  "items": {},
        +                  "type": "array"
        +                }
        +              },
        +              "required": [
        +                "documents",
        +                "folders"
        +              ],
        +              "type": "object"
        +            },
        +            "workspace": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "id": {
        +                  "format": "uuid",
        +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "slug": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "slug"
        +              ],
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "workspace",
        +            "categoryId",
        +            "data"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "scopedResults"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "documents": {
        -    "items": {
        -      "additionalProperties": {},
        -      "properties": {
        -        "deletedAt": {
        -          "type": "string"
        -        },
        -        "id": {
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "purgeAfter": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "title": {
        -          "type": "string"
        -        }
        -      },
        -      "required": [
        -        "id",
        -        "title",
        -        "deletedAt",
        -        "purgeAfter"
        -      ],
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  "folders": {
        -    "items": {},
        -    "type": "array"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "documents",
        -  "folders"
        -]
    • Changedlist_workspace_structure18 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "properties": {
        -      "kind": {
        -        "const": "folders",
        -        "description": "Select the folders operation explicitly.",
        -        "type": "string"
        -      },
        -      "parentId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "parentId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "kind": {
        -        "const": "categories",
        -        "description": "Select the categories operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "parentId"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "kind": {
        -        "const": "tags",
        -        "description": "Select the tags operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "parentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "kind": {
        +        "const": "workspaces",
        +        "description": "Discover every workspace granted to this connection, including empty ones.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "kind": {
        +        "const": "folders",
        +        "description": "Select the folders operation explicitly.",
        +        "type": "string"
        +      },
        +      "parentId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "parentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "kind": {
        +        "const": "categories",
        +        "description": "Select the categories operation explicitly.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "parentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "kind": {
        +        "const": "tags",
        +        "description": "Select the tags operation explicitly.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / kind / anyOf
        Previous value: -[
        -  {
        -    "const": "folders",
        -    "description": "Select the folders operation explicitly.",
        -    "type": "string"
        -  },
        -  {
        -    "const": "categories",
        -    "description": "Select the categories operation explicitly.",
        -    "type": "string"
        -  },
        -  {
        -    "const": "tags",
        -    "description": "Select the tags operation explicitly.",
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "const": "workspaces",
        +    "description": "Discover every workspace granted to this connection, including empty ones.",
        +    "type": "string"
        +  },
        +  {
        +    "const": "folders",
        +    "description": "Select the folders operation explicitly.",
        +    "type": "string"
        +  },
        +  {
        +    "const": "categories",
        +    "description": "Select the categories operation explicitly.",
        +    "type": "string"
        +  },
        +  {
        +    "const": "tags",
        +    "description": "Select the tags operation explicitly.",
        +    "type": "string"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / __schema0 / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / parentId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / parentId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "folders",
        -        "type": "string"
        -      },
        -      "result": {
        -        "items": {
        -          "$ref": "#/$defs/__schema0"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "categories",
        -        "type": "string"
        -      },
        -      "result": {
        -        "items": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": {},
        -              "properties": {
        -                "apiMode": {
        -                  "enum": [
        -                    "unavailable",
        -                    "global",
        -                    "category"
        -                  ],
        -                  "type": "string"
        -                },
        -                "apiPermissionEdit": {
        -                  "type": "boolean"
        -                },
        -                "apiPermissionRead": {
        -                  "type": "boolean"
        -                },
        -                "apiPermissionWrite": {
        -                  "type": "boolean"
        -                },
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "documentCount": {
        -                  "type": "number"
        -                },
        -                "folderCount": {
        -                  "type": "number"
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                },
        -                "order": {
        -                  "type": "number"
        -                },
        -                "updatedAt": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "order",
        -                "createdAt",
        -                "updatedAt",
        -                "apiMode",
        -                "apiPermissionRead",
        -                "apiPermissionEdit",
        -                "apiPermissionWrite"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "additionalProperties": {},
        -              "properties": {
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "documentCount": {
        -                  "type": "number"
        -                },
        -                "folderCount": {
        -                  "type": "number"
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                },
        -                "order": {
        -                  "type": "number"
        -                },
        -                "updatedAt": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "order",
        -                "createdAt",
        -                "updatedAt"
        -              ],
        -              "type": "object"
        -            }
        -          ]
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "tags",
        -        "type": "string"
        -      },
        -      "result": {
        -        "items": {
        -          "additionalProperties": {},
        -          "properties": {
        -            "color": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "createdAt": {
        -              "type": "string"
        -            },
        -            "documentCount": {
        -              "type": "number"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "name": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "color"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "workspaces",
        +        "type": "string"
        +      },
        +      "result": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "categoryIds": {
        +              "items": {
        +                "format": "uuid",
        +                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "entireWorkspace": {
        +              "type": "boolean"
        +            },
        +            "id": {
        +              "format": "uuid",
        +              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "slug",
        +            "entireWorkspace",
        +            "categoryIds"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "folders",
        +        "type": "string"
        +      },
        +      "result": {
        +        "items": {
        +          "$ref": "#/$defs/__schema0"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "categories",
        +        "type": "string"
        +      },
        +      "result": {
        +        "items": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": {},
        +              "properties": {
        +                "apiMode": {
        +                  "enum": [
        +                    "unavailable",
        +                    "global",
        +                    "category"
        +                  ],
        +                  "type": "string"
        +                },
        +                "apiPermissionEdit": {
        +                  "type": "boolean"
        +                },
        +                "apiPermissionRead": {
        +                  "type": "boolean"
        +                },
        +                "apiPermissionWrite": {
        +                  "type": "boolean"
        +                },
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "documentCount": {
        +                  "type": "number"
        +                },
        +                "folderCount": {
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "order": {
        +                  "type": "number"
        +                },
        +                "updatedAt": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "order",
        +                "createdAt",
        +                "updatedAt",
        +                "apiMode",
        +                "apiPermissionRead",
        +                "apiPermissionEdit",
        +                "apiPermissionWrite"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": {},
        +              "properties": {
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "documentCount": {
        +                  "type": "number"
        +                },
        +                "folderCount": {
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "order": {
        +                  "type": "number"
        +                },
        +                "updatedAt": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "order",
        +                "createdAt",
        +                "updatedAt"
        +              ],
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "tags",
        +        "type": "string"
        +      },
        +      "result": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "color": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "createdAt": {
        +              "type": "string"
        +            },
        +            "documentCount": {
        +              "type": "number"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "color"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "type": "string"
        +      },
        +      "scopedResults": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "categoryId": {
        +              "anyOf": [
        +                {
        +                  "format": "uuid",
        +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "data": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "operation": {
        +                      "const": "workspaces",
        +                      "type": "string"
        +                    },
        +                    "result": {
        +                      "items": {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "categoryIds": {
        +                            "items": {
        +                              "format": "uuid",
        +                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                              "type": "string"
        +                            },
        +                            "type": "array"
        +                          },
        +                          "entireWorkspace": {
        +                            "type": "boolean"
        +                          },
        +                          "id": {
        +                            "format": "uuid",
        +                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                            "type": "string"
        +                          },
        +                          "name": {
        +                            "type": "string"
        +                          },
        +                          "slug": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "id",
        +                          "name",
        +                          "slug",
        +                          "entireWorkspace",
        +                          "categoryIds"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "operation",
        +                    "result"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "operation": {
        +                      "const": "folders",
        +                      "type": "string"
        +                    },
        +                    "result": {
        +                      "items": {
        +                        "$ref": "#/$defs/__schema0"
        +                      },
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "operation",
        +                    "result"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "operation": {
        +                      "const": "categories",
        +                      "type": "string"
        +                    },
        +                    "result": {
        +                      "items": {
        +                        "anyOf": [
        +                          {
        +                            "additionalProperties": {},
        +                            "properties": {
        +                              "apiMode": {
        +                                "enum": [
        +                                  "unavailable",
        +                                  "global",
        +                                  "category"
        +                                ],
        +                                "type": "string"
        +                              },
        +                              "apiPermissionEdit": {
        +                                "type": "boolean"
        +                              },
        +                              "apiPermissionRead": {
        +                                "type": "boolean"
        +                              },
        +                              "apiPermissionWrite": {
        +                                "type": "boolean"
        +                              },
        +                              "createdAt": {
        +                                "type": "string"
        +                              },
        +                              "documentCount": {
        +                                "type": "number"
        +                              },
        +                              "folderCount": {
        +                                "type": "number"
        +                              },
        +                              "id": {
        +                                "type": "string"
        +                              },
        +                              "name": {
        +                                "type": "string"
        +                              },
        +                              "order": {
        +                                "type": "number"
        +                              },
        +                              "updatedAt": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "id",
        +                              "name",
        +                              "order",
        +                              "createdAt",
        +                              "updatedAt",
        +                              "apiMode",
        +                              "apiPermissionRead",
        +                              "apiPermissionEdit",
        +                              "apiPermissionWrite"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          {
        +                            "additionalProperties": {},
        +                            "properties": {
        +                              "createdAt": {
        +                                "type": "string"
        +                              },
        +                              "documentCount": {
        +                                "type": "number"
        +                              },
        +                              "folderCount": {
        +                                "type": "number"
        +                              },
        +                              "id": {
        +                                "type": "string"
        +                              },
        +                              "name": {
        +                                "type": "string"
        +                              },
        +                              "order": {
        +                                "type": "number"
        +                              },
        +                              "updatedAt": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "id",
        +                              "name",
        +                              "order",
        +                              "createdAt",
        +                              "updatedAt"
        +                            ],
        +                            "type": "object"
        +                          }
        +                        ]
        +                      },
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "operation",
        +                    "result"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "operation": {
        +                      "const": "tags",
        +                      "type": "string"
        +                    },
        +                    "result": {
        +                      "items": {
        +                        "additionalProperties": {},
        +                        "properties": {
        +                          "color": {
        +                            "type": [
        +                              "string",
        +                              "null"
        +                            ]
        +                          },
        +                          "createdAt": {
        +                            "type": "string"
        +                          },
        +                          "documentCount": {
        +                            "type": "number"
        +                          },
        +                          "id": {
        +                            "type": "string"
        +                          },
        +                          "name": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "id",
        +                          "name",
        +                          "color"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      "type": "array"
        +                    }
        +                  },
        +                  "required": [
        +                    "operation",
        +                    "result"
        +                  ],
        +                  "type": "object"
        +                }
        +              ]
        +            },
        +            "workspace": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "id": {
        +                  "format": "uuid",
        +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "slug": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "slug"
        +              ],
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "workspace",
        +            "categoryId",
        +            "data"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "scopedResults"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedpermanently_delete_document1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedread_document3 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "onlySnapshots"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "view": {
        -        "const": "detail",
        -        "description": "Select the detail operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "view",
        -      "id"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "onlySnapshots"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "view": {
        -        "const": "markdown",
        -        "description": "Select the markdown operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "view",
        -      "id"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "onlySnapshots": {
        -        "description": "When true, return only named snapshots.",
        -        "type": "boolean"
        -      },
        -      "view": {
        -        "const": "versions",
        -        "description": "Select the versions operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "view",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "onlySnapshots"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "view": {
        +        "const": "detail",
        +        "description": "Select the detail operation explicitly.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "onlySnapshots"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "view": {
        +        "const": "markdown",
        +        "description": "Select the markdown operation explicitly.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "onlySnapshots": {
        +        "description": "When true, return only named snapshots.",
        +        "type": "boolean"
        +      },
        +      "view": {
        +        "const": "versions",
        +        "description": "Select the versions operation explicitly.",
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "detail",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "categoryId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "content": {
        -            "type": "string"
        -          },
        -          "contentJson": {},
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "folderId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "folderName": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "metadata": {},
        -          "ownerId": {
        -            "type": "string"
        -          },
        -          "tags": {
        -            "items": {
        -              "additionalProperties": {},
        -              "properties": {
        -                "color": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "documentCount": {
        -                  "type": "number"
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "color"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "updatedAt": {
        -            "type": "string"
        -          },
        -          "visibility": {
        -            "enum": [
        -              "private",
        -              "shared",
        -              "public"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "ownerId",
        -          "folderId",
        -          "categoryId",
        -          "title",
        -          "content",
        -          "visibility",
        -          "createdAt",
        -          "updatedAt"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "markdown",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "filename": {
        -            "type": "string"
        -          },
        -          "markdown": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "markdown"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "versions",
        -        "type": "string"
        -      },
        -      "result": {
        -        "items": {
        -          "additionalProperties": {},
        -          "properties": {
        -            "content": {
        -              "type": "string"
        -            },
        -            "contentJson": {},
        -            "createdAt": {
        -              "type": "string"
        -            },
        -            "createdBy": {
        -              "type": "string"
        -            },
        -            "description": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "documentId": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "isSnapshot": {
        -              "type": "boolean"
        -            },
        -            "label": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "restoredFrom": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "documentId",
        -            "content",
        -            "createdBy",
        -            "createdAt"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "detail",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "categoryId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "content": {
        +            "type": "string"
        +          },
        +          "contentJson": {},
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "folderId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "folderName": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "metadata": {},
        +          "ownerId": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "color": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "documentCount": {
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "color"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "updatedAt": {
        +            "type": "string"
        +          },
        +          "visibility": {
        +            "enum": [
        +              "private",
        +              "shared",
        +              "public"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "ownerId",
        +          "folderId",
        +          "categoryId",
        +          "title",
        +          "content",
        +          "visibility",
        +          "createdAt",
        +          "updatedAt"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "markdown",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "filename": {
        +            "type": "string"
        +          },
        +          "markdown": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "markdown"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "versions",
        +        "type": "string"
        +      },
        +      "result": {
        +        "items": {
        +          "additionalProperties": {},
        +          "properties": {
        +            "content": {
        +              "type": "string"
        +            },
        +            "contentJson": {},
        +            "createdAt": {
        +              "type": "string"
        +            },
        +            "createdBy": {
        +              "type": "string"
        +            },
        +            "description": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "documentId": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "isSnapshot": {
        +              "type": "boolean"
        +            },
        +            "label": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "restoredFrom": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "documentId",
        +            "content",
        +            "createdBy",
        +            "createdAt"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedrefresh_document_index1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedrestore_document_version9 fields changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / folderId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / folderId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / folderName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / folderName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tags / items / properties / color / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tags / items / properties / color / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedrestore_trashed_document1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedsave_category2 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "id"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "order"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "order": {
        -        "description": "New non-negative display order.",
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "order"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "order": {
        +        "description": "New non-negative display order.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedsave_document3 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "id"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "content": {
        -        "description": "Markdown document content; an empty string clears the content on update.",
        -        "type": "string"
        -      },
        -      "folderId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "title": {
        -        "description": "Document title, from 1 to 500 characters.",
        -        "maxLength": 500,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "content": {
        -        "description": "Markdown document content; an empty string clears the content on update.",
        -        "type": "string"
        -      },
        -      "folderId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional folder UUID; null clears the placement on update."
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "title": {
        -        "description": "Document title, from 1 to 500 characters.",
        -        "maxLength": 500,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "content": {
        +        "description": "Markdown document content; an empty string clears the content on update.",
        +        "type": "string"
        +      },
        +      "folderId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "title": {
        +        "description": "Document title, from 1 to 500 characters.",
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "content": {
        +        "description": "Markdown document content; an empty string clears the content on update.",
        +        "type": "string"
        +      },
        +      "folderId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional folder UUID; null clears the placement on update."
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "title": {
        +        "description": "Document title, from 1 to 500 characters.",
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "create",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "categoryId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "content": {
        -            "type": "string"
        -          },
        -          "contentJson": {},
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "folderId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "folderName": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "metadata": {},
        -          "ownerId": {
        -            "type": "string"
        -          },
        -          "tags": {
        -            "items": {
        -              "additionalProperties": {},
        -              "properties": {
        -                "color": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "documentCount": {
        -                  "type": "number"
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "color"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "updatedAt": {
        -            "type": "string"
        -          },
        -          "visibility": {
        -            "enum": [
        -              "private",
        -              "shared",
        -              "public"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "ownerId",
        -          "folderId",
        -          "categoryId",
        -          "title",
        -          "content",
        -          "visibility",
        -          "createdAt",
        -          "updatedAt"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "update",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "categoryId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "content": {
        -            "type": "string"
        -          },
        -          "contentJson": {},
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "folderId": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "folderName": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "metadata": {},
        -          "ownerId": {
        -            "type": "string"
        -          },
        -          "tags": {
        -            "items": {
        -              "additionalProperties": {},
        -              "properties": {
        -                "color": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "createdAt": {
        -                  "type": "string"
        -                },
        -                "documentCount": {
        -                  "type": "number"
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "color"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "title": {
        -            "type": "string"
        -          },
        -          "updatedAt": {
        -            "type": "string"
        -          },
        -          "visibility": {
        -            "enum": [
        -              "private",
        -              "shared",
        -              "public"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "ownerId",
        -          "folderId",
        -          "categoryId",
        -          "title",
        -          "content",
        -          "visibility",
        -          "createdAt",
        -          "updatedAt"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "create",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "categoryId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "content": {
        +            "type": "string"
        +          },
        +          "contentJson": {},
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "folderId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "folderName": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "metadata": {},
        +          "ownerId": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "color": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "documentCount": {
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "color"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "updatedAt": {
        +            "type": "string"
        +          },
        +          "visibility": {
        +            "enum": [
        +              "private",
        +              "shared",
        +              "public"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "ownerId",
        +          "folderId",
        +          "categoryId",
        +          "title",
        +          "content",
        +          "visibility",
        +          "createdAt",
        +          "updatedAt"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "update",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "categoryId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "content": {
        +            "type": "string"
        +          },
        +          "contentJson": {},
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "folderId": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "folderName": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "metadata": {},
        +          "ownerId": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "additionalProperties": {},
        +              "properties": {
        +                "color": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "createdAt": {
        +                  "type": "string"
        +                },
        +                "documentCount": {
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "color"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "updatedAt": {
        +            "type": "string"
        +          },
        +          "visibility": {
        +            "enum": [
        +              "private",
        +              "shared",
        +              "public"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "ownerId",
        +          "folderId",
        +          "categoryId",
        +          "title",
        +          "content",
        +          "visibility",
        +          "createdAt",
        +          "updatedAt"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedsave_folder16 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "id"
        -              ]
        -            },
        -            {
        -              "required": [
        -                "order"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "parentId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional parent folder UUID; null selects the root."
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "order": {
        -        "description": "New non-negative display order.",
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "parentId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional parent folder UUID; null selects the root."
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "order"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "parentId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional parent folder UUID; null selects the root."
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "order": {
        +        "description": "New non-negative display order.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "parentId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional parent folder UUID; null selects the root."
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • removedOutput schema / $defs / __schema0 / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / categoryName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderName / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / folderName / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / $defs / __schema0 / properties / parentId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / $defs / __schema0 / properties / parentId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedsave_tag3 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "not": {
        -          "anyOf": [
        -            {
        -              "required": [
        -                "id"
        -              ]
        -            }
        -          ]
        -        }
        -      }
        -    ],
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "color": {
        -        "description": "Optional tag color, at most 20 characters.",
        -        "maxLength": 20,
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 100,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "color": {
        -        "description": "Optional tag color, at most 20 characters.",
        -        "maxLength": 20,
        -        "type": "string"
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 100,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "color": {
        +        "description": "Optional tag color, at most 20 characters.",
        +        "maxLength": 20,
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "color": {
        +        "description": "Optional tag color, at most 20 characters.",
        +        "maxLength": 20,
        +        "type": "string"
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "workspaceId": {
        +        "$schema": "https://json-schema.org/draft/2020-12/schema",
        +        "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "create",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "color": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "documentCount": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "color"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "operation": {
        -        "const": "update",
        -        "type": "string"
        -      },
        -      "result": {
        -        "additionalProperties": {},
        -        "properties": {
        -          "color": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "createdAt": {
        -            "type": "string"
        -          },
        -          "documentCount": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "color"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "operation",
        -      "result"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "create",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "color": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "documentCount": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "color"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "operation": {
        +        "const": "update",
        +        "type": "string"
        +      },
        +      "result": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "color": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "documentCount": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "color"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "operation",
        +      "result"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedset_document_tag1 field changed
      • addedInput schema / properties / workspaceId
        Added value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
  3. 9 tool updatesv1.0.3
    • Changedbatch_documents3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "move",
        -        "description": "Move each document to the same folder.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "folderId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID of an item visible to the active API key.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Destination folder UUID, or null for no folder."
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "folderId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "set_category",
        -        "description": "Set one explicit category on every document.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID of an item visible to the active API key.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Category UUID, or null to clear explicit category."
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "categoryId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "add_tag",
        -        "description": "Assign one existing tag to every document.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "tagId": {
        -        "description": "Existing tag UUID to assign to each document.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "tagId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "remove_tag",
        -        "description": "Remove one tag assignment from every document.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "tagId": {
        -        "description": "Existing tag UUID to unassign from each document.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action",
        -      "tagId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "trash",
        -        "description": "Move every document to trash without permanent deletion.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "restore",
        -        "description": "Restore every selected document from trash.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "refresh_index",
        -        "description": "Request explicit indexing retry for every document.",
        -        "type": "string"
        -      },
        -      "documentIds": {
        -        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        -        "items": {
        -          "description": "UUID of an item visible to the active API key.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 25,
        -        "minItems": 1,
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "documentIds",
        -      "action"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "move",
        +        "description": "Move each document to the same folder.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "folderId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID of an item visible to the active API key.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Destination folder UUID, or null for no folder."
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "folderId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "set_category",
        +        "description": "Set one explicit category on every document.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID of an item visible to the active API key.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Category UUID, or null to clear explicit category."
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "categoryId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "add_tag",
        +        "description": "Assign one existing tag to every document.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "tagId": {
        +        "description": "Existing tag UUID to assign to each document.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "tagId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "remove_tag",
        +        "description": "Remove one tag assignment from every document.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "tagId": {
        +        "description": "Existing tag UUID to unassign from each document.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action",
        +      "tagId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "trash",
        +        "description": "Move every document to trash without permanent deletion.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "restore",
        +        "description": "Restore every selected document from trash.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "categoryId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tagId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "refresh_index",
        +        "description": "Request explicit indexing retry for every document.",
        +        "type": "string"
        +      },
        +      "documentIds": {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "documentIds",
        +      "action"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "action": {
        +    "anyOf": [
        +      {
        +        "const": "move",
        +        "description": "Move each document to the same folder.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "set_category",
        +        "description": "Set one explicit category on every document.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "add_tag",
        +        "description": "Assign one existing tag to every document.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "remove_tag",
        +        "description": "Remove one tag assignment from every document.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "trash",
        +        "description": "Move every document to trash without permanent deletion.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "restore",
        +        "description": "Restore every selected document from trash.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "refresh_index",
        +        "description": "Request explicit indexing retry for every document.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "categoryId": {
        +    "anyOf": [
        +      {
        +        "description": "UUID of an item visible to the active API key.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "Category UUID, or null to clear explicit category."
        +  },
        +  "documentIds": {
        +    "anyOf": [
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      {
        +        "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.",
        +        "items": {
        +          "description": "UUID of an item visible to the active API key.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 25,
        +        "minItems": 1,
        +        "type": "array"
        +      }
        +    ]
        +  },
        +  "folderId": {
        +    "anyOf": [
        +      {
        +        "description": "UUID of an item visible to the active API key.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "Destination folder UUID, or null for no folder."
        +  },
        +  "tagId": {
        +    "anyOf": [
        +      {
        +        "description": "Existing tag UUID to assign to each document.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      {
        +        "description": "Existing tag UUID to unassign from each document.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    ]
        +  }
        +}
    • Changedexplore_graph3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "documentId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "neighbors",
        -        "description": "Select the neighbors operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "documentId"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "docIds": {
        -        "description": "One to 50 authorized seed document UUIDs.",
        -        "items": {
        -          "description": "UUID returned by the corresponding list or read operation.",
        -          "format": "uuid",
        -          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -          "type": "string"
        -        },
        -        "maxItems": 50,
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "search",
        -        "description": "Select the search operation explicitly.",
        -        "type": "string"
        -      },
        -      "query": {
        -        "description": "Optional graph relevance query, at most 2000 characters.",
        -        "maxLength": 2000,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "docIds"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "docIds"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "query"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "documentId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "neighbors",
        +        "description": "Select the neighbors operation explicitly.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "documentId"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "documentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "docIds": {
        +        "description": "One to 50 authorized seed document UUIDs.",
        +        "items": {
        +          "description": "UUID returned by the corresponding list or read operation.",
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        "maxItems": 50,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      },
        +      "query": {
        +        "description": "Optional graph relevance query, at most 2000 characters.",
        +        "maxLength": 2000,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "docIds"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "docIds": {
        +    "description": "One to 50 authorized seed document UUIDs.",
        +    "items": {
        +      "description": "UUID returned by the corresponding list or read operation.",
        +      "format": "uuid",
        +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +      "type": "string"
        +    },
        +    "maxItems": 50,
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  "documentId": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "limit": {
        +    "anyOf": [
        +      {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      }
        +    ]
        +  },
        +  "mode": {
        +    "anyOf": [
        +      {
        +        "const": "neighbors",
        +        "description": "Select the neighbors operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "query": {
        +    "description": "Optional graph relevance query, at most 2000 characters.",
        +    "maxLength": 2000,
        +    "type": "string"
        +  }
        +}
    • Changedfind_documents3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "folderId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum documents per page, up to 1000.",
        -        "maximum": 1000,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "list",
        -        "description": "Select the list operation explicitly.",
        -        "type": "string"
        -      },
        -      "page": {
        -        "description": "One-based page number; defaults to the API first page.",
        -        "maximum": 9007199254740991,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "tag": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "mode"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "folder": {
        -        "description": "Optional folder UUID filter for search.",
        -        "type": "string"
        -      },
        -      "limit": {
        -        "description": "Maximum results to return, up to 100.",
        -        "maximum": 100,
        -        "minimum": 1,
        -        "type": "integer"
        -      },
        -      "mode": {
        -        "const": "search",
        -        "description": "Select the search operation explicitly.",
        -        "type": "string"
        -      },
        -      "query": {
        -        "description": "Text to search in the original language.",
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "tags": {
        -        "description": "Optional tag names; all supplied names must match.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      }
        -    },
        -    "required": [
        -      "mode",
        -      "query"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "query"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "folder"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tags"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "folderId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum documents per page, up to 1000.",
        +        "maximum": 1000,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "list",
        +        "description": "Select the list operation explicitly.",
        +        "type": "string"
        +      },
        +      "page": {
        +        "description": "One-based page number; defaults to the API first page.",
        +        "maximum": 9007199254740991,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "tag": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "mode"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "folderId"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "tag"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "page"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "folder": {
        +        "description": "Optional folder UUID filter for search.",
        +        "type": "string"
        +      },
        +      "limit": {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "mode": {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      },
        +      "query": {
        +        "description": "Text to search in the original language.",
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "tags": {
        +        "description": "Optional tag names; all supplied names must match.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "mode",
        +      "query"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "folder": {
        +    "description": "Optional folder UUID filter for search.",
        +    "type": "string"
        +  },
        +  "folderId": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "limit": {
        +    "anyOf": [
        +      {
        +        "description": "Maximum documents per page, up to 1000.",
        +        "maximum": 1000,
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      {
        +        "description": "Maximum results to return, up to 100.",
        +        "maximum": 100,
        +        "minimum": 1,
        +        "type": "integer"
        +      }
        +    ]
        +  },
        +  "mode": {
        +    "anyOf": [
        +      {
        +        "const": "list",
        +        "description": "Select the list operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "search",
        +        "description": "Select the search operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "page": {
        +    "description": "One-based page number; defaults to the API first page.",
        +    "maximum": 9007199254740991,
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "query": {
        +    "description": "Text to search in the original language.",
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "tag": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "tags": {
        +    "description": "Optional tag names; all supplied names must match.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +}
    • Changedlist_workspace_structure3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "kind": {
        -        "const": "folders",
        -        "description": "Select the folders operation explicitly.",
        -        "type": "string"
        -      },
        -      "parentId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "kind": {
        -        "const": "categories",
        -        "description": "Select the categories operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "kind": {
        -        "const": "tags",
        -        "description": "Select the tags operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "properties": {
        +      "kind": {
        +        "const": "folders",
        +        "description": "Select the folders operation explicitly.",
        +        "type": "string"
        +      },
        +      "parentId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "parentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "kind": {
        +        "const": "categories",
        +        "description": "Select the categories operation explicitly.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "parentId"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "kind": {
        +        "const": "tags",
        +        "description": "Select the tags operation explicitly.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "kind": {
        +    "anyOf": [
        +      {
        +        "const": "folders",
        +        "description": "Select the folders operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "categories",
        +        "description": "Select the categories operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "tags",
        +        "description": "Select the tags operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "parentId": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  }
        +}
    • Changedread_document3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "view": {
        -        "const": "detail",
        -        "description": "Select the detail operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "view",
        -      "id"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "view": {
        -        "const": "markdown",
        -        "description": "Select the markdown operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "view",
        -      "id"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "onlySnapshots": {
        -        "description": "When true, return only named snapshots.",
        -        "type": "boolean"
        -      },
        -      "view": {
        -        "const": "versions",
        -        "description": "Select the versions operation explicitly.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "view",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "onlySnapshots"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "view": {
        +        "const": "detail",
        +        "description": "Select the detail operation explicitly.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "onlySnapshots"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "view": {
        +        "const": "markdown",
        +        "description": "Select the markdown operation explicitly.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "onlySnapshots": {
        +        "description": "When true, return only named snapshots.",
        +        "type": "boolean"
        +      },
        +      "view": {
        +        "const": "versions",
        +        "description": "Select the versions operation explicitly.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "view",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "id": {
        +    "anyOf": [
        +      {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "onlySnapshots": {
        +    "description": "When true, return only named snapshots.",
        +    "type": "boolean"
        +  },
        +  "view": {
        +    "anyOf": [
        +      {
        +        "const": "detail",
        +        "description": "Select the detail operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "markdown",
        +        "description": "Select the markdown operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "versions",
        +        "description": "Select the versions operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  }
        +}
    • Changedsave_category3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "order": {
        -        "description": "New non-negative display order.",
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "order"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "order": {
        +        "description": "New non-negative display order.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "action": {
        +    "anyOf": [
        +      {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "id": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "name": {
        +    "anyOf": [
        +      {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "order": {
        +    "description": "New non-negative display order.",
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  }
        +}
    • Changedsave_document3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "content": {
        -        "description": "Markdown document content; an empty string clears the content on update.",
        -        "type": "string"
        -      },
        -      "folderId": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "title": {
        -        "description": "Document title, from 1 to 500 characters.",
        -        "maxLength": 500,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "content": {
        -        "description": "Markdown document content; an empty string clears the content on update.",
        -        "type": "string"
        -      },
        -      "folderId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional folder UUID; null clears the placement on update."
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "title": {
        -        "description": "Document title, from 1 to 500 characters.",
        -        "maxLength": 500,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "content": {
        +        "description": "Markdown document content; an empty string clears the content on update.",
        +        "type": "string"
        +      },
        +      "folderId": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "title": {
        +        "description": "Document title, from 1 to 500 characters.",
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "content": {
        +        "description": "Markdown document content; an empty string clears the content on update.",
        +        "type": "string"
        +      },
        +      "folderId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional folder UUID; null clears the placement on update."
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "title": {
        +        "description": "Document title, from 1 to 500 characters.",
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "action": {
        +    "anyOf": [
        +      {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "categoryId": {
        +    "anyOf": [
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      }
        +    ]
        +  },
        +  "content": {
        +    "anyOf": [
        +      {
        +        "description": "Markdown document content; an empty string clears the content on update.",
        +        "type": "string"
        +      },
        +      {
        +        "description": "Markdown document content; an empty string clears the content on update.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "folderId": {
        +    "anyOf": [
        +      {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional folder UUID; null clears the placement on update."
        +      }
        +    ]
        +  },
        +  "id": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "title": {
        +    "anyOf": [
        +      {
        +        "description": "Document title, from 1 to 500 characters.",
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      {
        +        "description": "Document title, from 1 to 500 characters.",
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    ]
        +  }
        +}
    • Changedsave_folder3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "parentId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional parent folder UUID; null selects the root."
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "categoryId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional category UUID; null clears the explicit category."
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 255,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "order": {
        -        "description": "New non-negative display order.",
        -        "maximum": 9007199254740991,
        -        "minimum": 0,
        -        "type": "integer"
        -      },
        -      "parentId": {
        -        "anyOf": [
        -          {
        -            "description": "UUID returned by the corresponding list or read operation.",
        -            "format": "uuid",
        -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "description": "Optional parent folder UUID; null selects the root."
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            },
        +            {
        +              "required": [
        +                "order"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "parentId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional parent folder UUID; null selects the root."
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "categoryId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "order": {
        +        "description": "New non-negative display order.",
        +        "maximum": 9007199254740991,
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "parentId": {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional parent folder UUID; null selects the root."
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "action": {
        +    "anyOf": [
        +      {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "categoryId": {
        +    "anyOf": [
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      },
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional category UUID; null clears the explicit category."
        +      }
        +    ]
        +  },
        +  "id": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "name": {
        +    "anyOf": [
        +      {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 255,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "order": {
        +    "description": "New non-negative display order.",
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "parentId": {
        +    "anyOf": [
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional parent folder UUID; null selects the root."
        +      },
        +      {
        +        "anyOf": [
        +          {
        +            "description": "UUID returned by the corresponding list or read operation.",
        +            "format": "uuid",
        +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "Optional parent folder UUID; null selects the root."
        +      }
        +    ]
        +  }
        +}
    • Changedsave_tag3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "create",
        -        "description": "Select the create operation explicitly.",
        -        "type": "string"
        -      },
        -      "color": {
        -        "description": "Optional tag color, at most 20 characters.",
        -        "maxLength": 20,
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 100,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "const": "update",
        -        "description": "Select the update operation explicitly.",
        -        "type": "string"
        -      },
        -      "color": {
        -        "description": "Optional tag color, at most 20 characters.",
        -        "maxLength": 20,
        -        "type": "string"
        -      },
        -      "id": {
        -        "description": "UUID returned by the corresponding list or read operation.",
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Non-empty human-readable name or title.",
        -        "maxLength": 100,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "id"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "not": {
        +          "anyOf": [
        +            {
        +              "required": [
        +                "id"
        +              ]
        +            }
        +          ]
        +        }
        +      }
        +    ],
        +    "properties": {
        +      "action": {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      "color": {
        +        "description": "Optional tag color, at most 20 characters.",
        +        "maxLength": 20,
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "properties": {
        +      "action": {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      },
        +      "color": {
        +        "description": "Optional tag color, at most 20 characters.",
        +        "maxLength": 20,
        +        "type": "string"
        +      },
        +      "id": {
        +        "description": "UUID returned by the corresponding list or read operation.",
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "id"
        +    ],
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties
        Added value: +{
        +  "action": {
        +    "anyOf": [
        +      {
        +        "const": "create",
        +        "description": "Select the create operation explicitly.",
        +        "type": "string"
        +      },
        +      {
        +        "const": "update",
        +        "description": "Select the update operation explicitly.",
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "color": {
        +    "anyOf": [
        +      {
        +        "description": "Optional tag color, at most 20 characters.",
        +        "maxLength": 20,
        +        "type": "string"
        +      },
        +      {
        +        "description": "Optional tag color, at most 20 characters.",
        +        "maxLength": 20,
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "id": {
        +    "description": "UUID returned by the corresponding list or read operation.",
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  "name": {
        +    "anyOf": [
        +      {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      {
        +        "description": "Non-empty human-readable name or title.",
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    ]
        +  }
        +}
  4. 2 tool updatesv0.1.3
    • Addedbatch_documents
    • Addedget_workspace_item
  5. 40 tool updatesv0.1.2
    • Removedadd_tag_to_document
    • Removedcreate_category
    • Removedcreate_document
    • Removedcreate_folder
    • Changedcreate_snapshot4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / description / description
        Previous value: -"Optional snapshot note up to 1,000 characters; omit if not needed."New value: +"Optional snapshot note, at most 1000 characters."
      • changedInput schema / properties / documentId / description
        Previous value: -"UUID of the existing document, obtained from search_documents or list_documents and visible in the active scope."New value: +"UUID returned by the corresponding list or read operation."
      • changedInput schema / properties / label / description
        Previous value: -"Non-empty snapshot label up to 200 characters, for example 'v1.0-release'."New value: +"Snapshot label, from 1 to 200 characters."
    • Removedcreate_tag
    • Changeddelete_category2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"UUID of the category to delete; obtain it from list_categories using a workspace-scoped credential."New value: +"UUID returned by the corresponding list or read operation."
    • Changeddelete_document2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"UUID of the document to move to trash; obtain it from search_documents, list_documents, or get_document."New value: +"UUID returned by the corresponding list or read operation."
    • Changeddelete_folder2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"UUID of the folder to delete; obtain it from list_folders. This detaches, but does not delete, the documents inside it."New value: +"UUID returned by the corresponding list or read operation."
    • Changeddelete_tag2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"UUID of the target object, obtained from the corresponding list tool."New value: +"UUID returned by the corresponding list or read operation."
    • Addedexplore_graph
    • Removedexport_document
    • Addedfind_documents
    • Removedget_document
    • Changedget_document_index_status2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / documentId / description
        Previous value: -"UUID of a document returned by search_documents or list_documents; it must be readable in the active scope."New value: +"UUID returned by the corresponding list or read operation."
    • Removedget_related_documents
    • Removedget_version_history
    • Removedlist_categories
    • Removedlist_documents
    • Removedlist_folders
    • Removedlist_tags
    • Changedlist_trash1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedlist_workspace_structure
    • Changedpermanently_delete_document2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"UUID of the target object, obtained from the corresponding list tool."New value: +"UUID returned by the corresponding list or read operation."
    • Addedread_document
    • Changedrefresh_document_index2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / documentId / description
        Previous value: -"UUID of the document to refresh, obtained from search_documents or list_documents and visible in the active scope."New value: +"UUID returned by the corresponding list or read operation."
    • Removedremove_tag_from_document
    • Changedrestore_document_version3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / documentId / description
        Previous value: -"UUID of the document whose content should be restored; it must be visible in the active workspace or category."New value: +"UUID returned by the corresponding list or read operation."
      • changedInput schema / properties / versionId / description
        Previous value: -"UUID of a version belonging to this document, from get_version_history. Use the version ID, not a snapshot label."New value: +"UUID returned by the corresponding list or read operation."
    • Changedrestore_trashed_document2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / id / description
        Previous value: -"UUID of the target object, obtained from the corresponding list tool."New value: +"UUID returned by the corresponding list or read operation."
    • Addedsave_category
    • Addedsave_document
    • Addedsave_folder
    • Addedsave_tag
    • Removedsearch_documents
    • Removedsearch_knowledge_graph
    • Addedset_document_tag
    • Removedupdate_category
    • Removedupdate_document
    • Removedupdate_folder
    • Removedupdate_tag
  6. 10 tool updatesv0.1.1
    • Addedadd_tag_to_document
    • Addedcreate_tag
    • Addeddelete_tag
    • Addedlist_trash
    • Addedpermanently_delete_document
    • Addedremove_tag_from_document
    • Addedrestore_trashed_document
    • Addedupdate_category
    • Addedupdate_folder
    • Addedupdate_tag
  7. 21 tool updates
    • First observedcreate_category
    • First observedcreate_document
    • First observedcreate_folder
    • First observedcreate_snapshot
    • First observeddelete_category
    • First observeddelete_document
    • First observeddelete_folder
    • First observedexport_document
    • First observedget_document
    • First observedget_document_index_status
    • First observedget_related_documents
    • First observedget_version_history
    • First observedlist_categories
    • First observedlist_documents
    • First observedlist_folders
    • First observedlist_tags
    • First observedrefresh_document_index
    • First observedrestore_document_version
    • First observedsearch_documents
    • First observedsearch_knowledge_graph
    • First observedupdate_document

TDQS

A3.9/5.0

Scored across 22 tools

Disambiguation4/5

Most tools target a distinct resource+action pair, and descriptions actively cross-reference alternatives (e.g. delete_document vs permanently_delete_document, restore_trashed_document vs restore_document_version, single vs batch operations). A few boundaries are softer: get_workspace_item is a grab-bag reader for folders/categories/tags that sits close to list_workspace_structure, and tag handling is spread across save_tag, set_document_tag, and batch_documents(action=add_tag), though the descriptions do clarify each case.

Naming Consistency4/5

Almost everything follows a snake_case verb_noun pattern (list_trash, find_documents, save_document, delete_folder, restore_trashed_document). Minor deviations: batch_documents uses a bare noun-ish verb, permanently_delete_document stacks an adverb, and save_* doubles as create-or-update rather than a verb per operation.

Tool Count3/5

22 tools is on the heavy side of the 3-15 sweet spot; the domain is genuinely broad (documents, folders, categories, tags, trash, versions, indexing, graph), so most tools earn a place. Still, a few could collapse (e.g. get_workspace_item into list/read patterns, and delete_document plus permanently_delete_document into one parameterized delete), making the surface feel wide rather than tight.

Completeness4/5

Full lifecycle coverage is present: create/read/update for documents, folders, categories, tags; trash, restore, and permanent purge; version snapshot and restore; index status and refresh; plus batch and graph exploration. Remaining gaps are minor, such as no explicit document move/copy tool outside batch_documents(action=move) and no bulk folder/tag hierarchy operations.

Maintenance

ActivityNo data
ResponsivenessOutdated data

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A complete MCP server for Retrieval-Augmented Generation with file management and vector memory for agents. Supports multiple document formats (PDF, DOCX, TXT, MD, CSV, JSON) with semantic search using Hugging Face embeddings and ChromaDB for efficient vector storage.
    11
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for structured document management of markdown and YAML files, with RBAC, git-based approval workflows, and semantic search, enabling agents to read, edit, and maintain documents under governance.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes one or more documentation folders (Markdown, MDX, TXT) to AI agents, enabling listing, reading, and searching of documentation files.
    -