@oscardvs/zoteus
Advanced tools
@@ -10,3 +10,4 @@ import { RateLimitedFetcher } from './http.js'; | ||
| * Base: http://127.0.0.1:<port>/api ; the personal library is always users/0. | ||
| * Every endpoint is GET; there is no native local write support. | ||
| * Every endpoint here is GET. Native local-API writes exist from Zotero 10 and live in | ||
| * local-writes.ts, which needs the grant flow this client deliberately stays out of. | ||
| */ | ||
@@ -13,0 +14,0 @@ export declare class LocalApiClient { |
@@ -5,3 +5,4 @@ import { RateLimitedFetcher } from './http.js'; | ||
| * Base: http://127.0.0.1:<port>/api ; the personal library is always users/0. | ||
| * Every endpoint is GET; there is no native local write support. | ||
| * Every endpoint here is GET. Native local-API writes exist from Zotero 10 and live in | ||
| * local-writes.ts, which needs the grant flow this client deliberately stays out of. | ||
| */ | ||
@@ -8,0 +9,0 @@ export class LocalApiClient { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"local-client.js","sourceRoot":"","sources":["../../src/api/local-client.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"local-client.js","sourceRoot":"","sources":["../../src/api/local-client.ts"],"names":[],"mappings":"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"} |
@@ -17,14 +17,24 @@ import { RateLimitedFetcher } from './http.js'; | ||
| /** | ||
| * Write client for the Zotero 9+ desktop local API. | ||
| * Write client for the Zotero 10+ desktop local API. | ||
| * | ||
| * Zotero >= 9 accepts writes (POST/PATCH/DELETE) on the same local API the reads use | ||
| * (http://127.0.0.1:23119/api/users/0/...), gated by a *local* API key that the user | ||
| * grants through a one-time in-Zotero dialog: | ||
| * Local-API write support shipped in Zotero 10 (it is absent in 9.x, whose local API is | ||
| * GET-only). Writes go to the same local API the reads use | ||
| * (http://127.0.0.1:23119/api/users/0/...), gated by a *local* API key the user grants | ||
| * through a one-time in-Zotero dialog. Verified against zotero/zotero @ 10.0.0, | ||
| * chrome/content/zotero/xpcom/server/server_localAPI.js: | ||
| * | ||
| * 1. Every response carries a `Zotero-Server-ID` header; writes must echo it back | ||
| * (428 when missing, 412 when it no longer matches the running instance). | ||
| * 1. Every response carries a `Zotero-Server-ID` header; every request using a write | ||
| * method must echo it back — 428 when missing, 412 when it no longer matches the | ||
| * running instance (`LocalAPIEndpoint._validateServerID`). This applies to | ||
| * `/api/local/authorize` too, since it is itself a POST and does not opt out of | ||
| * `requireServerIDOnWrite`, so the server ID must be probed with a GET first. | ||
| * 2. `POST /api/local/authorize` with `{"appName": "..."}` shows a dialog in Zotero | ||
| * ("Allow" / "Always Allow" / "Deny") and returns `{key, remember}`. | ||
| * ("Allow" / "Always Allow" / "Deny") and returns `{key, remember}`; a denial is | ||
| * 403 `{"denied":true}` and more than 5 prompts a minute is 429. | ||
| * 3. Writes then carry `Zotero-API-Key: <key>`. A single-use key is consumed by the | ||
| * first successful write, so a 401 means: re-authorize. | ||
| * 4. Concurrency preconditions are enforced as in the Web API: multi-object DELETE | ||
| * *requires* `If-Unmodified-Since-Version`, and key-based writes require either it | ||
| * or a per-object `version` (428 otherwise). We send the library version we last | ||
| * observed and re-probe once on 412/428. | ||
| * | ||
@@ -43,2 +53,3 @@ * Keys are unrelated to zotero.org cloud keys. Grants are cached on disk so the user | ||
| private serverId?; | ||
| private libraryVersion?; | ||
| constructor(opts?: LocalWriteClientOptions); | ||
@@ -50,4 +61,12 @@ /** | ||
| hasStoredKey(): boolean; | ||
| /** | ||
| * One GET against the local API yields both things every write needs: the stable | ||
| * `Zotero-Server-ID` of the running instance and the library's current version | ||
| * (`Last-Modified-Version`), used as the concurrency precondition on writes. | ||
| */ | ||
| private probe; | ||
| /** Stable ID of the running Zotero instance (required on every write). */ | ||
| getServerId(): Promise<string>; | ||
| /** Personal-library version last seen, used as the write precondition. */ | ||
| private getLibraryVersion; | ||
| /** | ||
@@ -57,4 +76,7 @@ * Ask Zotero to grant this app a local API key. Blocks until the user answers the | ||
| * human-readable reason on denial/error. | ||
| * | ||
| * `/api/local/authorize` is a POST, so Zotero applies the same server-ID precondition | ||
| * it applies to any write: the header is mandatory (428) and must match (412). | ||
| */ | ||
| authorize(): Promise<string>; | ||
| authorize(retried?: boolean): Promise<string>; | ||
| private readHeaders; | ||
@@ -68,3 +90,7 @@ private writeHeaders; | ||
| * re-auth/re-probe cases: 401 (key consumed/unknown -> authorize again) and | ||
| * 412/428 (server-id stale/missing -> refresh it). | ||
| * 412/428 (server-id or library version stale/missing -> refresh both). | ||
| * | ||
| * `libraryPrecondition` adds `If-Unmodified-Since-Version`, which Zotero requires for | ||
| * multi-object deletes and for key-based writes (it stands in for a per-object | ||
| * `version`). It is recomputed on retry so a refreshed version is actually used. | ||
| */ | ||
@@ -74,7 +100,17 @@ private request; | ||
| writeItems(items: Record<string, unknown>[]): Promise<WriteResult>; | ||
| /** | ||
| * Move items to the trash (`deleted: 1`) or restore them (`deleted: 0`). This is the | ||
| * reversible operation — the local API's DELETE, like the Web API's, erases items | ||
| * outright and is exposed separately as {@link deleteItems}. | ||
| */ | ||
| setDeleted(keys: string[], deleted: 0 | 1): Promise<WriteResult>; | ||
| /** Partial single-item update. */ | ||
| patchItem(key: string, patch: Record<string, unknown>): Promise<number>; | ||
| /** Trash items by key (permanent=false, the default) or delete permanently. */ | ||
| deleteItems(keys: string[], permanent?: boolean): Promise<void>; | ||
| /** | ||
| * PERMANENTLY erase items by key. The local API mirrors the Web API here: DELETE | ||
| * removes the objects outright (no trash), and requires the library-version | ||
| * precondition. Use {@link setDeleted} for the reversible trash. | ||
| */ | ||
| deleteItems(keys: string[]): Promise<void>; | ||
| /** | ||
| * Store a file on a (child) attachment item using the Web-API 3-phase upload flow, | ||
@@ -81,0 +117,0 @@ * which the local API re-implements: authorize -> POST bytes to the returned URL -> |
+126
-31
@@ -6,15 +6,33 @@ import { createHash } from 'node:crypto'; | ||
| import { ZoteroApiError } from './errors.js'; | ||
| /** The local API caps a single write/delete batch at 50 objects. */ | ||
| const MAX_WRITE_OBJECTS = 50; | ||
| function chunks(keys) { | ||
| const out = []; | ||
| for (let i = 0; i < keys.length; i += MAX_WRITE_OBJECTS) | ||
| out.push(keys.slice(i, i + MAX_WRITE_OBJECTS)); | ||
| return out; | ||
| } | ||
| /** | ||
| * Write client for the Zotero 9+ desktop local API. | ||
| * Write client for the Zotero 10+ desktop local API. | ||
| * | ||
| * Zotero >= 9 accepts writes (POST/PATCH/DELETE) on the same local API the reads use | ||
| * (http://127.0.0.1:23119/api/users/0/...), gated by a *local* API key that the user | ||
| * grants through a one-time in-Zotero dialog: | ||
| * Local-API write support shipped in Zotero 10 (it is absent in 9.x, whose local API is | ||
| * GET-only). Writes go to the same local API the reads use | ||
| * (http://127.0.0.1:23119/api/users/0/...), gated by a *local* API key the user grants | ||
| * through a one-time in-Zotero dialog. Verified against zotero/zotero @ 10.0.0, | ||
| * chrome/content/zotero/xpcom/server/server_localAPI.js: | ||
| * | ||
| * 1. Every response carries a `Zotero-Server-ID` header; writes must echo it back | ||
| * (428 when missing, 412 when it no longer matches the running instance). | ||
| * 1. Every response carries a `Zotero-Server-ID` header; every request using a write | ||
| * method must echo it back — 428 when missing, 412 when it no longer matches the | ||
| * running instance (`LocalAPIEndpoint._validateServerID`). This applies to | ||
| * `/api/local/authorize` too, since it is itself a POST and does not opt out of | ||
| * `requireServerIDOnWrite`, so the server ID must be probed with a GET first. | ||
| * 2. `POST /api/local/authorize` with `{"appName": "..."}` shows a dialog in Zotero | ||
| * ("Allow" / "Always Allow" / "Deny") and returns `{key, remember}`. | ||
| * ("Allow" / "Always Allow" / "Deny") and returns `{key, remember}`; a denial is | ||
| * 403 `{"denied":true}` and more than 5 prompts a minute is 429. | ||
| * 3. Writes then carry `Zotero-API-Key: <key>`. A single-use key is consumed by the | ||
| * first successful write, so a 401 means: re-authorize. | ||
| * 4. Concurrency preconditions are enforced as in the Web API: multi-object DELETE | ||
| * *requires* `If-Unmodified-Since-Version`, and key-based writes require either it | ||
| * or a per-object `version` (428 otherwise). We send the library version we last | ||
| * observed and re-probe once on 412/428. | ||
| * | ||
@@ -33,2 +51,3 @@ * Keys are unrelated to zotero.org cloud keys. Grants are cached on disk so the user | ||
| serverId; | ||
| libraryVersion; | ||
| constructor(opts = {}) { | ||
@@ -51,16 +70,35 @@ this.base = `http://127.0.0.1:${opts.port ?? 23119}/api`; | ||
| } | ||
| /** Stable ID of the running Zotero instance (required on every write). */ | ||
| async getServerId() { | ||
| if (this.serverId) | ||
| return this.serverId; | ||
| /** | ||
| * One GET against the local API yields both things every write needs: the stable | ||
| * `Zotero-Server-ID` of the running instance and the library's current version | ||
| * (`Last-Modified-Version`), used as the concurrency precondition on writes. | ||
| */ | ||
| async probe(force = false) { | ||
| if (!force && this.serverId !== undefined && this.libraryVersion !== undefined) { | ||
| return { serverId: this.serverId, libraryVersion: this.libraryVersion }; | ||
| } | ||
| const res = await this.fetcher.fetch(`${this.base}/users/0/items?limit=1`, { method: 'GET', headers: this.readHeaders() }, { maxRetries: 0 }); | ||
| if (!res.ok) | ||
| if (!res.ok) { | ||
| await res.body?.cancel().catch(() => { }); | ||
| throw new Error(`Local API unreachable (HTTP ${res.status}) — is Zotero running?`); | ||
| } | ||
| const id = res.headers.get('zotero-server-id'); | ||
| const version = Number(res.headers.get('last-modified-version')); | ||
| await res.body?.cancel().catch(() => { }); | ||
| if (!id) | ||
| throw new Error('Local API did not return a Zotero-Server-ID header (Zotero >= 9 required for writes).'); | ||
| if (!id) { | ||
| throw new Error('Local API writes are not supported by this Zotero: no Zotero-Server-ID header. ' + | ||
| 'Desktop writes need Zotero 10 or newer (9.x has a read-only local API).'); | ||
| } | ||
| this.serverId = id; | ||
| return id; | ||
| this.libraryVersion = Number.isFinite(version) ? version : 0; | ||
| return { serverId: id, libraryVersion: this.libraryVersion }; | ||
| } | ||
| /** Stable ID of the running Zotero instance (required on every write). */ | ||
| async getServerId() { | ||
| return (await this.probe()).serverId; | ||
| } | ||
| /** Personal-library version last seen, used as the write precondition. */ | ||
| async getLibraryVersion() { | ||
| return (await this.probe()).libraryVersion; | ||
| } | ||
| /** | ||
@@ -70,8 +108,12 @@ * Ask Zotero to grant this app a local API key. Blocks until the user answers the | ||
| * human-readable reason on denial/error. | ||
| * | ||
| * `/api/local/authorize` is a POST, so Zotero applies the same server-ID precondition | ||
| * it applies to any write: the header is mandatory (428) and must match (412). | ||
| */ | ||
| async authorize() { | ||
| async authorize(retried = false) { | ||
| const serverId = await this.getServerId(); | ||
| this.logger?.info(`Requesting local API write access from Zotero (appName="${this.appName}")…`); | ||
| const res = await this.fetcher.fetch(`${this.base}/local/authorize`, { | ||
| method: 'POST', | ||
| headers: { 'Content-Type': 'application/json', 'Zotero-API-Version': '3' }, | ||
| headers: { ...this.readHeaders(), 'Content-Type': 'application/json', 'Zotero-Server-ID': serverId }, | ||
| body: JSON.stringify({ appName: this.appName }), | ||
@@ -86,5 +128,10 @@ }, { maxRetries: 0, deadlineMs: 300_000 }); | ||
| } | ||
| if ((res.status === 412 || res.status === 428) && !retried) { | ||
| // Zotero restarted (or was never probed) between the probe and the grant. | ||
| await this.probe(true); | ||
| return this.authorize(true); | ||
| } | ||
| if (!res.ok) { | ||
| throw new Error(`Local API authorize failed (HTTP ${res.status}): ${text || res.statusText}. ` + | ||
| 'Writes need Zotero 9+ with the local API enabled.'); | ||
| 'Writes need Zotero 10+ with the local API enabled.'); | ||
| } | ||
@@ -101,6 +148,9 @@ const { key, remember } = JSON.parse(text); | ||
| async writeHeaders() { | ||
| // Probe first: authorize() itself needs the server ID, so resolving it up front | ||
| // keeps a single round trip regardless of whether a grant is still needed. | ||
| const serverId = await this.getServerId(); | ||
| return { | ||
| ...this.readHeaders(), | ||
| 'Zotero-API-Key': this.key ?? (await this.authorize()), | ||
| 'Zotero-Server-ID': await this.getServerId(), | ||
| 'Zotero-Server-ID': serverId, | ||
| }; | ||
@@ -141,3 +191,7 @@ } | ||
| * re-auth/re-probe cases: 401 (key consumed/unknown -> authorize again) and | ||
| * 412/428 (server-id stale/missing -> refresh it). | ||
| * 412/428 (server-id or library version stale/missing -> refresh both). | ||
| * | ||
| * `libraryPrecondition` adds `If-Unmodified-Since-Version`, which Zotero requires for | ||
| * multi-object deletes and for key-based writes (it stands in for a per-object | ||
| * `version`). It is recomputed on retry so a refreshed version is actually used. | ||
| */ | ||
@@ -149,2 +203,5 @@ async request(method, path, init = {}, retried = false) { | ||
| const headers = await this.writeHeaders(); | ||
| if (init.libraryPrecondition) { | ||
| headers['If-Unmodified-Since-Version'] = String(await this.getLibraryVersion()); | ||
| } | ||
| if (init.json !== undefined) { | ||
@@ -168,4 +225,5 @@ headers['Content-Type'] = 'application/json'; | ||
| if ((res.status === 412 || res.status === 428) && !retried) { | ||
| this.serverId = undefined; | ||
| await res.body?.cancel().catch(() => { }); | ||
| // Either the instance changed or the library moved on: refresh both preconditions. | ||
| await this.probe(true); | ||
| return this.request(method, path, init, true); | ||
@@ -177,8 +235,34 @@ } | ||
| async writeItems(items) { | ||
| const res = await this.request('POST', '/users/0/items', { json: items }); | ||
| return this.parseWriteResult(res); | ||
| // Only key-based writes (updates) need the precondition; sending it for pure | ||
| // creates would just invent a 412 whenever the library moved on in the meantime. | ||
| const hasKeyedWrite = items.some((it) => typeof it.key === 'string' && it.key); | ||
| const res = await this.request('POST', '/users/0/items', { json: items, libraryPrecondition: hasKeyedWrite }); | ||
| const result = await this.parseWriteResult(res); | ||
| if (result.newLibraryVersion) | ||
| this.libraryVersion = result.newLibraryVersion; | ||
| return result; | ||
| } | ||
| /** | ||
| * Move items to the trash (`deleted: 1`) or restore them (`deleted: 0`). This is the | ||
| * reversible operation — the local API's DELETE, like the Web API's, erases items | ||
| * outright and is exposed separately as {@link deleteItems}. | ||
| */ | ||
| async setDeleted(keys, deleted) { | ||
| const merged = { successful: [], unchanged: [], failed: [], newLibraryVersion: 0 }; | ||
| let offset = 0; | ||
| for (const chunk of chunks(keys)) { | ||
| const res = await this.writeItems(chunk.map((key) => ({ key, deleted }))); | ||
| merged.successful.push(...res.successful.map((s) => ({ ...s, index: s.index + offset }))); | ||
| merged.failed.push(...res.failed.map((f) => ({ ...f, index: f.index + offset }))); | ||
| // `unchanged` is keyed by request index; resolve it back to item keys, since an | ||
| // item already in the requested state is "done" as far as callers care. | ||
| merged.unchanged.push(...res.unchanged.map((i) => chunk[Number(i)] ?? i)); | ||
| merged.newLibraryVersion = res.newLibraryVersion || merged.newLibraryVersion; | ||
| offset += chunk.length; | ||
| } | ||
| return merged; | ||
| } | ||
| /** Partial single-item update. */ | ||
| async patchItem(key, patch) { | ||
| const res = await this.request('PATCH', `/users/0/items/${key}`, { json: patch }); | ||
| const res = await this.request('PATCH', `/users/0/items/${key}`, { json: patch, libraryPrecondition: true }); | ||
| if (!res.ok) | ||
@@ -188,11 +272,22 @@ await this.throwApi(res, `PATCH /items/${key}`); | ||
| await res.body?.cancel().catch(() => { }); | ||
| if (Number.isFinite(v)) | ||
| this.libraryVersion = v; | ||
| return Number.isFinite(v) ? v : 0; | ||
| } | ||
| /** Trash items by key (permanent=false, the default) or delete permanently. */ | ||
| async deleteItems(keys, permanent = false) { | ||
| const path = `/users/0/items${permanent ? '/deleted' : ''}?itemKey=${keys.join(',')}`; | ||
| const res = await this.request('DELETE', path); | ||
| if (!res.ok && res.status !== 204) | ||
| await this.throwApi(res, `DELETE ${path}`); | ||
| await res.body?.cancel().catch(() => { }); | ||
| /** | ||
| * PERMANENTLY erase items by key. The local API mirrors the Web API here: DELETE | ||
| * removes the objects outright (no trash), and requires the library-version | ||
| * precondition. Use {@link setDeleted} for the reversible trash. | ||
| */ | ||
| async deleteItems(keys) { | ||
| for (const chunk of chunks(keys)) { | ||
| const path = `/users/0/items?itemKey=${chunk.join(',')}`; | ||
| const res = await this.request('DELETE', path, { libraryPrecondition: true }); | ||
| if (!res.ok && res.status !== 204) | ||
| await this.throwApi(res, `DELETE ${path}`); | ||
| const v = Number(res.headers.get('last-modified-version')); | ||
| await res.body?.cancel().catch(() => { }); | ||
| if (Number.isFinite(v)) | ||
| this.libraryVersion = v; | ||
| } | ||
| } | ||
@@ -199,0 +294,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"local-writes.js","sourceRoot":"","sources":["../../src/api/local-writes.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"local-writes.js","sourceRoot":"","sources":["../../src/api/local-writes.ts"],"names":[],"mappings":"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"} |
+1
-1
| export interface ZoteusConfig { | ||
| apiKey?: string; | ||
| /** Pre-provisioned Zotero 9+ desktop local-API key (skips the grant dialog). */ | ||
| /** Pre-provisioned Zotero 10+ desktop local-API key (skips the grant dialog). */ | ||
| localApiKey?: string; | ||
@@ -5,0 +5,0 @@ libraryId?: number; |
@@ -24,3 +24,3 @@ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; | ||
| local?: LocalApiClient; | ||
| /** Zotero 9+ desktop local-API writes (user-granted key); undefined when unavailable. */ | ||
| /** Zotero 10+ desktop local-API writes (user-granted key); undefined when unavailable. */ | ||
| localWrites?: LocalWriteClient; | ||
@@ -81,5 +81,6 @@ /** Desktop connector-API writes (Zotero 7+): saveItems/saveAttachment/updateSession. */ | ||
| /** | ||
| * Resolve the library a WRITE should target. Writes only go to the cloud Web API | ||
| * (the local API is read-only), so this throws a friendly error when no API key is | ||
| * configured. The thrown message is surfaced to the model as an isError result. | ||
| * Resolve the library a WRITE should target on the cloud Web API. Group libraries (and | ||
| * any library the running desktop app cannot reach) are cloud-only, so this throws a | ||
| * friendly error when no API key is configured. The thrown message is surfaced to the | ||
| * model as an isError result. | ||
| */ | ||
@@ -93,6 +94,7 @@ export declare function requireCloudLibrary(ctx: ToolContext, args?: { | ||
| * True when a local-API write failure means the running Zotero simply does not have | ||
| * (or accept) local writes yet — e.g. Zotero <= 9.0 whose local API is read-only | ||
| * ("No endpoint found", 501 "Endpoint does not support method") — as opposed to a | ||
| * real write failure (denied grant, validation error, stale version). Callers use | ||
| * this to fall back to the connector protocol or the cloud Web API. | ||
| * (or accept) local writes — i.e. Zotero 9 and earlier, whose local API is GET-only, so | ||
| * write paths answer "No endpoint found" (404) or 501 "Endpoint does not support | ||
| * method" and no response carries a Zotero-Server-ID header — as opposed to a real | ||
| * write failure (denied grant, validation error, stale version). Callers use this to | ||
| * fall back to the connector protocol or the cloud Web API. | ||
| */ | ||
@@ -99,0 +101,0 @@ export declare function isLocalWritesUnavailable(err: unknown): boolean; |
@@ -20,5 +20,6 @@ import { ZoteroApiError } from '../api/errors.js'; | ||
| /** | ||
| * Resolve the library a WRITE should target. Writes only go to the cloud Web API | ||
| * (the local API is read-only), so this throws a friendly error when no API key is | ||
| * configured. The thrown message is surfaced to the model as an isError result. | ||
| * Resolve the library a WRITE should target on the cloud Web API. Group libraries (and | ||
| * any library the running desktop app cannot reach) are cloud-only, so this throws a | ||
| * friendly error when no API key is configured. The thrown message is surfaced to the | ||
| * model as an isError result. | ||
| */ | ||
@@ -31,3 +32,3 @@ export function requireCloudLibrary(ctx, args) { | ||
| throw new Error('This operation writes to a cloud/group library and requires a cloud API key (set ZOTERO_API_KEY). ' + | ||
| 'For the personal library, writes can instead go through the running Zotero 9+ desktop app (local API).'); | ||
| 'For the personal library, writes can instead go through the running Zotero 10+ desktop app (local API).'); | ||
| } | ||
@@ -62,10 +63,12 @@ return { type: 'user', id: cloud.userID }; | ||
| * True when a local-API write failure means the running Zotero simply does not have | ||
| * (or accept) local writes yet — e.g. Zotero <= 9.0 whose local API is read-only | ||
| * ("No endpoint found", 501 "Endpoint does not support method") — as opposed to a | ||
| * real write failure (denied grant, validation error, stale version). Callers use | ||
| * this to fall back to the connector protocol or the cloud Web API. | ||
| * (or accept) local writes — i.e. Zotero 9 and earlier, whose local API is GET-only, so | ||
| * write paths answer "No endpoint found" (404) or 501 "Endpoint does not support | ||
| * method" and no response carries a Zotero-Server-ID header — as opposed to a real | ||
| * write failure (denied grant, validation error, stale version). Callers use this to | ||
| * fall back to the connector protocol or the cloud Web API. | ||
| */ | ||
| export function isLocalWritesUnavailable(err) { | ||
| const msg = err instanceof Error ? err.message : String(err); | ||
| return /local api/i.test(msg) && /404|no endpoint|not implemented|not supported|unreachable/i.test(msg); | ||
| return (/local api/i.test(msg) && | ||
| /404|no endpoint|not implemented|not supported|does not support|unreachable/i.test(msg)); | ||
| } | ||
@@ -72,0 +75,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAqDlD;;;;;;;GAOG;AACH,MAAM,UAAU,EAAE,CAAC,UAAmC,EAAE,OAAe;IACrE,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SAC5D;QACD,iBAAiB,EAAE,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAgB,EAChB,IAA+D;IAE/D,IAAI,IAAI,EAAE,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACzF,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,oGAAoG;YAClG,yGAAyG,CAC5G,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,IAAsB,EACtB,GAAgB;IAEhB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,YAAY,CACjB,GAAG,CAAC,IAAI,EACR;YACE,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE;SAC3E,EACD,KAAK,EAAE,IAAa,EAAE,EAAE;YACtB,IAAI,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GACX,GAAG,YAAY,cAAc;oBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO;oBACb,CAAC,CAAC,GAAG,YAAY,KAAK;wBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;wBACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAChF,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAGD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,CACL,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,6EAA6E,CAAC,IAAI,CAAC,GAAG,CAAC,CACxF,CAAC;AACJ,CAAC;AAGD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAgB;IACnD,IAAI,GAAG,CAAC,YAAY,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,EAAE;QAAE,GAAG,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC;AACZ,CAAC"} |
+2
-2
@@ -50,3 +50,3 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; | ||
| const router = new LibraryRouter({ config, capabilities, web, local }); | ||
| // Zotero 9+ accepts local-API writes behind a user-granted key. Only the operator | ||
| // Zotero 10+ accepts local-API writes behind a user-granted key. Only the operator | ||
| // context (never per-user tenants) talks to the desktop app. The client is created | ||
@@ -64,3 +64,3 @@ // eagerly but authorizes lazily, on first write. | ||
| // The connector protocol works on all recent Zotero versions while the app runs, | ||
| // including ones whose local API is still read-only (no grant dialog involved). | ||
| // including Zotero 9 and earlier, whose local API is read-only (no grant dialog). | ||
| const connectorWrites = !perUser && capabilities.localApi | ||
@@ -67,0 +67,0 @@ ? new ConnectorWriteClient({ port: config.localPort, fetcher, logger }) |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} |
@@ -93,4 +93,6 @@ import { z } from 'zod'; | ||
| try { | ||
| await ctx.localWrites.deleteItems(keys, false); | ||
| return ok({ trashed: keys, target: 'local' }, `Trashed ${keys.length} annotation(s) via the Zotero desktop app.`); | ||
| // `deleted: 1` (reversible trash), not DELETE — the local API's DELETE erases. | ||
| const result = await ctx.localWrites.setDeleted(keys, 1); | ||
| const trashed = [...result.successful.map((s) => s.key), ...result.unchanged]; | ||
| return ok({ trashed, failed: result.failed, target: 'local' }, `Trashed ${trashed.length} annotation(s) via the Zotero desktop app.`); | ||
| } | ||
@@ -116,3 +118,3 @@ catch (e) { | ||
| type: 'text', | ||
| text: 'Deleting annotations needs write access this Zotero cannot grant yet: the running app\u2019s local API is read-only (Zotero < 9.1) and the connector protocol cannot delete. Set ZOTERO_API_KEY for cloud writes, upgrade Zotero when local writes ship, or delete the annotations manually in Zotero\u2019s PDF reader.', | ||
| text: 'Deleting annotations needs write access this Zotero cannot grant: the running app\u2019s local API is read-only (local-API writes ship in Zotero 10) and the connector protocol cannot delete. Set ZOTERO_API_KEY for cloud writes, upgrade to Zotero 10 or newer, or delete the annotations manually in Zotero\u2019s PDF reader.', | ||
| }], | ||
@@ -194,5 +196,5 @@ isError: true, | ||
| // Prefer the desktop app for the personal library; fall back to the cloud. | ||
| // (a) Zotero with local-API write support (upcoming; needs a stored/provided key — | ||
| // we never trigger the grant dialog unexpectedly), or (b) the connector protocol | ||
| // that every recent Zotero exposes while running. | ||
| // (a) Zotero 10+ local-API writes (the first one asks for a key in-app — choose | ||
| // "Always Allow" to be asked once), or (b) the connector protocol that every | ||
| // recent Zotero exposes while running. | ||
| if (!args.library_id && (await ensureLocalApi(ctx)) && ctx.localWrites) { | ||
@@ -199,0 +201,0 @@ try { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/tools/annotate.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/tools/annotate.ts"],"names":[],"mappings":"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"} |
| import type { ToolDefinition } from '../registry/registry.js'; | ||
| /** | ||
| * Attach a file (local path or URL) to an item as a stored (imported_file) | ||
| * attachment. Requires the Zotero desktop app (Zotero 9+ local API writes), since | ||
| * attachment. Requires the Zotero desktop app (Zotero 10+ local API writes), since | ||
| * the cloud client here does not implement the storage upload flow. | ||
@@ -6,0 +6,0 @@ */ |
@@ -6,3 +6,3 @@ import { z } from 'zod'; | ||
| * Attach a file (local path or URL) to an item as a stored (imported_file) | ||
| * attachment. Requires the Zotero desktop app (Zotero 9+ local API writes), since | ||
| * attachment. Requires the Zotero desktop app (Zotero 10+ local API writes), since | ||
| * the cloud client here does not implement the storage upload flow. | ||
@@ -13,3 +13,3 @@ */ | ||
| title: 'Attach a file (PDF, snapshot) to an item', | ||
| description: 'Add a stored file attachment (e.g. a PDF full text) under an existing item. Give `parent` (the item key) and either `path` (a local file the Zoteus process can read) or `url` (downloaded first). `filename` and `content_type` are inferred when omitted. Runs against the Zotero desktop app\u2019s local API (Zotero 9+; you may be asked once to allow Zoteus write access — choose "Always Allow"). Returns the new attachment key.', | ||
| description: 'Add a stored file attachment (e.g. a PDF full text) under an existing item. Give `parent` (the item key) and either `path` (a local file the Zoteus process can read) or `url` (downloaded first). `filename` and `content_type` are inferred when omitted. Runs against the Zotero desktop app\u2019s local API (Zotero 10+; you may be asked once to allow Zoteus write access — choose "Always Allow"). Returns the new attachment key.', | ||
| inputSchema: { | ||
@@ -27,3 +27,3 @@ parent: z.string().describe('Key of the parent item to attach the file to.'), | ||
| return { | ||
| content: [{ type: 'text', text: 'Storing files needs Zotero desktop write access. If your Zotero has the upcoming local-API writes, provide a key via ZOTEUS_LOCAL_API_KEY (or grant it once); on current Zotero versions, attach files DURING import instead — zotero_import supports `attach_url`, which streams the file into the same save session. Otherwise set ZOTERO_API_KEY and use the cloud flow.' }], | ||
| content: [{ type: 'text', text: 'Storing files needs Zotero desktop write access, which the local API provides from Zotero 10. Grant it once when Zotero asks (or pre-provision ZOTEUS_LOCAL_API_KEY). On Zotero 9 and earlier, attach files DURING import instead — zotero_import supports `attach_url`, which streams the file into the same save session. Otherwise set ZOTERO_API_KEY and use the cloud flow.' }], | ||
| isError: true, | ||
@@ -50,3 +50,5 @@ }; | ||
| } | ||
| const filename = args.filename ?? inferredName; | ||
| // Zotero rejects anything that is not a bare file name, since it joins the value | ||
| // onto the storage directory path when the upload lands. | ||
| const filename = (args.filename ?? inferredName).split(/[\\/]/).pop() || inferredName; | ||
| const ext = filename.split('.').pop()?.toLowerCase() ?? ''; | ||
@@ -53,0 +55,0 @@ const contentType = args.content_type ?? |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"attach-file.js","sourceRoot":"","sources":["../../src/tools/attach-file.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"attach-file.js","sourceRoot":"","sources":["../../src/tools/attach-file.ts"],"names":[],"mappings":"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"} |
| import { z } from 'zod'; | ||
| import { ok, requireCloudLibrary } from '../registry/registry.js'; | ||
| import { ok, requireCloudLibrary, isLocalWritesUnavailable, ensureLocalApi } from '../registry/registry.js'; | ||
| const deleteItems = { | ||
| name: 'zotero_delete_items', | ||
| title: 'Permanently delete Zotero items', | ||
| description: 'PERMANENTLY and IRREVERSIBLY delete items by key (this purges them — it is NOT the trash). Prefer zotero_trash_items, which is reversible. This tool is disabled unless the server is started with ZOTEUS_ALLOW_DELETE=true, and additionally requires `confirm: true` on every call. The current library version is used as a precondition; the operation auto-chunks to 50 keys per request.', | ||
| description: 'PERMANENTLY and IRREVERSIBLY delete items by key (this purges them — it is NOT the trash). Prefer zotero_trash_items, which is reversible. This tool is disabled unless the server is started with ZOTEUS_ALLOW_DELETE=true, and additionally requires `confirm: true` on every call. For the personal library it goes through the running Zotero desktop app when that app supports local-API writes, otherwise the cloud Web API. The current library version is used as a precondition; the operation auto-chunks to 50 keys per request.', | ||
| inputSchema: { | ||
@@ -37,2 +37,15 @@ item_keys: z.array(z.string()).min(1).describe('Item keys to permanently delete.'), | ||
| } | ||
| // Local-first for the personal library: Zotero 10's local API implements the same | ||
| // multi-DELETE (with the library-version precondition), so no cloud key is needed. | ||
| if (ctx.localWrites && !args.library_id && (await ensureLocalApi(ctx))) { | ||
| try { | ||
| await ctx.localWrites.deleteItems(args.item_keys); | ||
| return ok({ deleted: args.item_keys, count: args.item_keys.length, target: 'local' }, `Permanently deleted ${args.item_keys.length} item(s) via the Zotero desktop app.`); | ||
| } | ||
| catch (e) { | ||
| if (!isLocalWritesUnavailable(e)) | ||
| throw e; | ||
| ctx.logger.info(`Local-API writes unavailable (${e instanceof Error ? e.message : e}); falling back to the cloud Web API.`); | ||
| } | ||
| } | ||
| const lib = requireCloudLibrary(ctx, args); | ||
@@ -39,0 +52,0 @@ const version = await ctx.web.currentLibraryVersion(lib); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"delete-items.js","sourceRoot":"","sources":["../../src/tools/delete-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,GAAmB;IAClC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,iCAAiC;IACxC,WAAW,EACT,gYAAgY;IAClY,WAAW,EAAE;QACX,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAClF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC5F,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACxC;IACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAChF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gIAAgI;qBACvI;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,MAAM,mGAAmG;qBACjK;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,CACP,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EACzD,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,WAAW,CACxD,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,eAAe,WAAW,CAAC"} | ||
| {"version":3,"file":"delete-items.js","sourceRoot":"","sources":["../../src/tools/delete-items.ts"],"names":[],"mappings":"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"} |
@@ -22,11 +22,7 @@ import { z } from 'zod'; | ||
| try { | ||
| if (deleted === 1) { | ||
| await ctx.localWrites.deleteItems(args.item_keys, false); | ||
| return ok({ updated: args.item_keys, target: 'local' }, `Trashed ${args.item_keys.length} item(s) via the Zotero desktop app.`); | ||
| } | ||
| const objects = []; | ||
| for (const key of args.item_keys) | ||
| objects.push({ key, deleted: 0 }); | ||
| const result = await ctx.localWrites.writeItems(objects); | ||
| return ok({ updated: result.successful.map((s) => s.key), failed: result.failed, target: 'local' }, `Restored ${result.successful.length} item(s) via the Zotero desktop app.`); | ||
| // Set the `deleted` flag rather than issuing a DELETE: the local API's DELETE, | ||
| // like the Web API's, erases items outright, which is not what "trash" means. | ||
| const result = await ctx.localWrites.setDeleted(args.item_keys, deleted); | ||
| const updated = [...result.successful.map((s) => s.key), ...result.unchanged]; | ||
| return ok({ updated, failed: result.failed, target: 'local' }, `${deleted ? 'Trashed' : 'Restored'} ${updated.length} item(s) via the Zotero desktop app.`); | ||
| } | ||
@@ -33,0 +29,0 @@ catch (e) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"trash-items.js","sourceRoot":"","sources":["../../src/tools/trash-items.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"trash-items.js","sourceRoot":"","sources":["../../src/tools/trash-items.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@oscardvs/zoteus", | ||
| "version": "1.2.0", | ||
| "version": "1.3.0", | ||
| "description": "The everything Zotero MCP server — complete Zotero Web API v3 + desktop local API for Claude and any MCP client.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
+2
-2
@@ -68,3 +68,3 @@ <div align="center"> | ||
| - **Write back, safely.** Create items, edit, tag, organize — versioned with optimistic-locking retries, reversible trash by default, permanent delete opt-in and confirmation-gated. | ||
| - **Write straight to the desktop app.** Personal-library writes go to your running Zotero — **no cloud API key needed**. On Zotero 9+ that's the local API behind a key you grant once ("Always Allow"); on older builds it's the same connector protocol the browser extensions use. The cloud Web API is the fallback for group libraries and for when the app isn't running. | ||
| - **Write straight to the desktop app.** Personal-library writes go to your running Zotero — **no cloud API key needed**. On Zotero 10+ that's the local API behind a key you grant once ("Always Allow"); on Zotero 9 and earlier, whose local API is read-only, it's the same connector protocol the browser extensions use. The cloud Web API is the fallback for group libraries and for when the app isn't running. | ||
| - **Annotate PDFs and attach files.** `zotero_annotate` adds real highlights, underlines, and notes — the same objects the Zotero PDF reader creates, positioned on the page — and `zotero_attach_file` stores a local file or a URL as an attachment under any item. | ||
@@ -91,3 +91,3 @@ - **Ground claims in the PDF.** `zotero_get_fulltext` returns the relevant passage with character offsets, nearest heading, and a page locator — extracting the text on the fly when Zotero hasn't indexed the PDF. | ||
| | `ZOTEUS_LOCAL` | `auto` | `auto\|on\|off` — use the Zotero desktop app (reads + personal-library writes) | | ||
| | `ZOTEUS_LOCAL_API_KEY` | — | Pre-provision the Zotero 9+ desktop write key (else granted once, in-app) | | ||
| | `ZOTEUS_LOCAL_API_KEY` | — | Pre-provision the Zotero 10+ desktop write key (else granted once, in-app) | | ||
| | `ZOTEUS_EMBEDDINGS` | `local` | `local\|openai\|gemini\|off` for semantic search | | ||
@@ -94,0 +94,0 @@ | `ZOTEUS_ALLOW_DELETE` | `false` | Must be `true` to expose permanent deletion | |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
785726
1.74%9637
1.59%