mcp-scraper 0.87.0 → 0.88.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/README.md +3 -3
- package/dist/bin/api-server.js +2 -2
- package/dist/bin/mcp-scraper-cli.js +3 -3
- package/dist/bin/mcp-scraper-core.js +5 -5
- package/dist/bin/mcp-scraper-install.js +2 -2
- package/dist/bin/mcp-stdio-server.js +5 -5
- package/dist/bin/paa-harvest.js +2 -2
- package/dist/{chunk-XX6XUZQM.js → chunk-2JVZQGSN.js} +7 -3
- package/dist/{chunk-NKRO2SUO.js → chunk-4QMUF6XM.js} +2 -2
- package/dist/{chunk-UDLPENTY.js → chunk-ABF2CGOZ.js} +1 -1
- package/dist/{chunk-OWF2JJKN.js → chunk-GXBZXWXB.js} +8 -8
- package/dist/{chunk-KQWVJOVR.js → chunk-IHXAXYIS.js} +1 -1
- package/dist/{chunk-WFGAR4BZ.js → chunk-MZDNZQWT.js} +1 -1
- package/dist/{chunk-6XDNIYGP.js → chunk-P5FPC54B.js} +3 -3
- package/dist/{chunk-R2HRN2FW.js → chunk-S24LFPL7.js} +1 -1
- package/dist/{chunk-6IOGTFNS.js → chunk-UZPTGUDV.js} +1 -1
- package/dist/{chunk-Y3AIFO7C.js → chunk-XIJI34RM.js} +1 -1
- package/dist/{extract-bundle-FALNLKYY.js → extract-bundle-565SBZCR.js} +2 -2
- package/dist/{gmail-service-BUSU4BVX.js → gmail-service-E6ALS7JG.js} +2 -2
- package/dist/index.cjs +8 -8
- package/dist/index.js +2 -2
- package/dist/{server-4QWARJET.js → server-PD3TDL6Q.js} +434 -425
- package/dist/{site-extract-repository-S5FYNFDY.js → site-extract-repository-VYFZASPU.js} +2 -2
- package/dist/{worker-DAVCZ3FP.js → worker-LDCAULWL.js} +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ All notable changes to MCP Scraper are documented here. The format is based on [
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.88.0] - 2026-09-02
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Made one `MCP_SCRAPER_API_KEY` authenticate scraping, Memory, Research, and native CRM through the canonical root MCP endpoint; root-to-Memory calls now use short-lived audience-bound owner assertions.
|
|
12
|
+
- Reduced the customer-callable unified catalog from 377 to 375 tools by retiring Memory key issuance and scope mutation, while preserving explicit compatibility errors in SDK clients.
|
|
13
|
+
- Added strict-schema validation for all 148 direct Memory tools and an authenticated 30-screenshot CRM workspace proof runner covering ten surfaces at wide, compact, and mobile viewports.
|
|
14
|
+
|
|
15
|
+
### Security
|
|
16
|
+
|
|
17
|
+
- Stopped normal creation, storage, display, and use of long-lived per-user Memory keys. Existing direct `mk_` credentials remain accepted for one documented compatibility release and can still be listed or revoked.
|
|
18
|
+
|
|
7
19
|
## [0.87.0] - 2026-09-02
|
|
8
20
|
|
|
9
21
|
### Added
|
|
@@ -1712,7 +1724,8 @@ All notable changes to MCP Scraper are documented here. The format is based on [
|
|
|
1712
1724
|
- Write actions remain unavailable until the account owner explicitly enables them.
|
|
1713
1725
|
- Provider-specific connection data is normalized into one agent-facing contract.
|
|
1714
1726
|
|
|
1715
|
-
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.
|
|
1727
|
+
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.88.0...HEAD
|
|
1728
|
+
[0.88.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.87.0...v0.88.0
|
|
1716
1729
|
[0.87.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.86.5...v0.87.0
|
|
1717
1730
|
[0.86.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.85.0...v0.86.0
|
|
1718
1731
|
[0.84.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/v0.83.5...v0.84.0
|
package/README.md
CHANGED
|
@@ -175,7 +175,7 @@ Build the branded one-click bundle:
|
|
|
175
175
|
npm run build:mcpb
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
-
The generated bundle is written to `build/mcpb/mcp-scraper-<version>.mcpb` and copied to `public/downloads/` for the hosted download. The current public bundle is `https://mcpscraper.dev/downloads/mcp-scraper.mcpb` (`0.
|
|
178
|
+
The generated bundle is written to `build/mcpb/mcp-scraper-<version>.mcpb` and copied to `public/downloads/` for the hosted download. The current public bundle is `https://mcpscraper.dev/downloads/mcp-scraper.mcpb` (`0.88.0`, SHA-256 `ff593dd4184122b9d9ef10bb0a9c21a907f8e2e180520dfbe56001bff0ee090d`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, API-key configuration field, and manually curated current-release message from the bundle manifest.
|
|
179
179
|
|
|
180
180
|
The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
|
|
181
181
|
|
|
@@ -350,9 +350,9 @@ The `mcp-scraper` server (and the MCPB bundle, which runs it) exposes both secti
|
|
|
350
350
|
|
|
351
351
|
All MCP tools return `structuredContent` with the IDs, URLs, CSV paths, transcripts, browser session handles, replay paths, artifacts, recipe fields, or blueprint fields needed by the next step, plus readable text content for compatibility. Runtime `tools/list` omits output schemas so strict clients can register the complete catalog; the generated developer manifest retains every canonical output schema for validation and typed SDK generation. All tools carry MCP annotations; file-writing tools such as replay downloads and annotations state their filesystem side effects.
|
|
352
352
|
|
|
353
|
-
The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes
|
|
353
|
+
The canonical tool inventory is generated at `docs/mcp-tool-manifest.generated.json`. The unified server exposes 375 tools: 249 scraper, browser, workflow, billing, connected-service, and personal-assistant tools plus 126 durable-memory tools. The two retired customer credential mutations are no longer advertised. The scraper-side inventory includes complete Gmail selection, message, attachment, export, bulk-action, and Memory-import workflows; governed personal-assistant commands, messaging, approvals, grants, number setup, and execution readback; durable PAA starts and status; rendered site-content similarity; governed Local Sourcebook and Transparent Commons workflows; direct site-export reads; Editorial Reading Room and News Publisher templates; and production X-Ray setup, analytics, seven-model attribution, structured post-purchase surveys, reported impact, truthful view-evidence status, CRM policy and receipt, campaign, export, and scheduled-report tools. Provider setup remains absent until its authorization, ingestion, reconciliation, privacy, canary, cleanup, and deployment receipts are complete. Successful evidence-compiled Local Sourcebook revisions publish automatically to their canonical `localsourcebook.com` category profile and review URLs; administrator controls handle exceptional rejection or unpublishing. Release verification compares the exact local and hosted tool-name sets, not only the count.
|
|
354
354
|
|
|
355
|
-
For contract parity, stdio and MCPB memory calls invoke the matching public tool on the hosted MCP Scraper `/mcp` endpoint. The hosted aggregate runtime owns MCP Scraper-specific billing, scheduling, credential, and in-process cutover policy; its internal `/memory/mcp-call` bridge is a fallback to the standalone
|
|
355
|
+
For contract parity, stdio and MCPB memory calls invoke the matching public tool on the hosted MCP Scraper `/mcp` endpoint. The hosted aggregate runtime owns MCP Scraper-specific billing, scheduling, credential, and in-process cutover policy; its internal `/memory/mcp-call` bridge is a fallback to the standalone Memory service, not a second customer setup path. Existing direct Memory credentials remain compatible for one release, but all new customer setup uses the root endpoint and `MCP_SCRAPER_API_KEY`.
|
|
356
356
|
|
|
357
357
|
## Resources
|
|
358
358
|
|
package/dist/bin/api-server.js
CHANGED
|
@@ -17,8 +17,8 @@ loadDotEnv();
|
|
|
17
17
|
async function main() {
|
|
18
18
|
const [{ serve }, { app, personalAssistantProductionStartup }, { startWorker }, { migrate }] = await Promise.all([
|
|
19
19
|
import("@hono/node-server"),
|
|
20
|
-
import("../server-
|
|
21
|
-
import("../worker-
|
|
20
|
+
import("../server-PD3TDL6Q.js"),
|
|
21
|
+
import("../worker-LDCAULWL.js"),
|
|
22
22
|
import("../db-Z34LPZNR.js")
|
|
23
23
|
]);
|
|
24
24
|
const PORT = parseInt(process.env.PORT ?? "3001");
|
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
openWorkflowReport,
|
|
7
7
|
runWorkflow,
|
|
8
8
|
workflowOutputBaseDir
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-UZPTGUDV.js";
|
|
10
10
|
import "../chunk-RJ7JVYKU.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-GXBZXWXB.js";
|
|
12
12
|
import {
|
|
13
13
|
XRAY_INSTALL_CONTRACT,
|
|
14
14
|
XRAY_INSTALL_PROTOCOL_DIGEST,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import "../chunk-GGZEC22A.js";
|
|
20
20
|
import {
|
|
21
21
|
PACKAGE_VERSION
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-XIJI34RM.js";
|
|
23
23
|
|
|
24
24
|
// src/cli/human-cli.ts
|
|
25
25
|
import { Command } from "commander";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runMcpScraperStdio
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-P5FPC54B.js";
|
|
5
|
+
import "../chunk-2JVZQGSN.js";
|
|
6
6
|
import "../chunk-PGJQDMC2.js";
|
|
7
7
|
import "../chunk-DNM65UCK.js";
|
|
8
8
|
import "../chunk-T3MZISOF.js";
|
|
9
9
|
import "../chunk-6HAV7LCE.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-4QMUF6XM.js";
|
|
11
11
|
import "../chunk-OM7HVEJ3.js";
|
|
12
12
|
import "../chunk-OPQIGAFB.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-ABF2CGOZ.js";
|
|
14
14
|
import "../chunk-P7FWOMU7.js";
|
|
15
15
|
import "../chunk-GGZEC22A.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-XIJI34RM.js";
|
|
17
17
|
import "../chunk-YXNDOQXN.js";
|
|
18
18
|
|
|
19
19
|
// src/mcp/thorbit-restricted-tool-surface.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
renderInstallTerminal
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-ABF2CGOZ.js";
|
|
5
5
|
import {
|
|
6
6
|
PACKAGE_VERSION
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-XIJI34RM.js";
|
|
8
8
|
|
|
9
9
|
// bin/mcp-scraper-install.ts
|
|
10
10
|
var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runMcpScraperStdio
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-P5FPC54B.js";
|
|
5
|
+
import "../chunk-2JVZQGSN.js";
|
|
6
6
|
import "../chunk-PGJQDMC2.js";
|
|
7
7
|
import "../chunk-DNM65UCK.js";
|
|
8
8
|
import "../chunk-T3MZISOF.js";
|
|
9
9
|
import "../chunk-6HAV7LCE.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-4QMUF6XM.js";
|
|
11
11
|
import "../chunk-OM7HVEJ3.js";
|
|
12
12
|
import "../chunk-OPQIGAFB.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-ABF2CGOZ.js";
|
|
14
14
|
import "../chunk-P7FWOMU7.js";
|
|
15
15
|
import "../chunk-GGZEC22A.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-XIJI34RM.js";
|
|
17
17
|
import "../chunk-YXNDOQXN.js";
|
|
18
18
|
|
|
19
19
|
// bin/mcp-stdio-server.ts
|
package/dist/bin/paa-harvest.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
harvest
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-S24LFPL7.js";
|
|
5
5
|
import {
|
|
6
6
|
browserServiceApiKey
|
|
7
7
|
} from "../chunk-OM7HVEJ3.js";
|
|
8
8
|
import "../chunk-OPQIGAFB.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-GXBZXWXB.js";
|
|
10
10
|
import "../chunk-YXNDOQXN.js";
|
|
11
11
|
|
|
12
12
|
// src/cli.ts
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
PAA_QUESTION_CREDITS,
|
|
27
27
|
PAGE_SCRAPE_CREDITS,
|
|
28
28
|
SERP_SEARCH_CREDITS
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-4QMUF6XM.js";
|
|
30
30
|
import {
|
|
31
31
|
browserServiceProfileName,
|
|
32
32
|
browserServiceProfileSaveChanges
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
} from "./chunk-P7FWOMU7.js";
|
|
51
51
|
import {
|
|
52
52
|
PACKAGE_VERSION
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-XIJI34RM.js";
|
|
54
54
|
import {
|
|
55
55
|
PUBLIC_ERROR_CODES,
|
|
56
56
|
buildPublicErrorEnvelope,
|
|
@@ -32304,6 +32304,10 @@ var MEMORY_TOOL_SCHEMAS = [
|
|
|
32304
32304
|
var MEMORY_TOOL_DESCRIPTION_OVERRIDES = {
|
|
32305
32305
|
"access-swap-vault": "Set the account's persisted active vault so later memory calls may omit vault and use it by default across stateless requests. The vault must be entitled to the key and the key must hold 'swap' scope."
|
|
32306
32306
|
};
|
|
32307
|
+
var LEGACY_DIRECT_CREDENTIAL_TOOL_IDS = /* @__PURE__ */ new Set([
|
|
32308
|
+
"access-issue-key",
|
|
32309
|
+
"access-set-scope"
|
|
32310
|
+
]);
|
|
32307
32311
|
var MEMORY_TOOL_REGISTRY = [
|
|
32308
32312
|
...MEMORY_TOOL_SCHEMAS.map((schema) => ({
|
|
32309
32313
|
...schema,
|
|
@@ -32311,7 +32315,7 @@ var MEMORY_TOOL_REGISTRY = [
|
|
|
32311
32315
|
})),
|
|
32312
32316
|
...MEMORY_GOVERNED_TOOL_SCHEMAS,
|
|
32313
32317
|
...MEMORY_IMAGE_TOOL_SCHEMAS
|
|
32314
|
-
];
|
|
32318
|
+
].filter((schema) => !LEGACY_DIRECT_CREDENTIAL_TOOL_IDS.has(schema.id));
|
|
32315
32319
|
|
|
32316
32320
|
// src/mcp/memory-mcp-server.ts
|
|
32317
32321
|
function registerMemoryMcpTools(server, executor) {
|
|
@@ -213,9 +213,9 @@ var PUBLIC_PRODUCT_CONTRACT = {
|
|
|
213
213
|
"freeSignupCredits": 0
|
|
214
214
|
},
|
|
215
215
|
"inventory": {
|
|
216
|
-
"totalTools":
|
|
216
|
+
"totalTools": 375,
|
|
217
217
|
"scraperTools": 249,
|
|
218
|
-
"memoryTools":
|
|
218
|
+
"memoryTools": 126
|
|
219
219
|
},
|
|
220
220
|
"concurrencyPack": {
|
|
221
221
|
"ratePolicyVersion": "2026-08-14.concurrency-pack-v1",
|
|
@@ -55,7 +55,7 @@ function renderInstallTerminal(options) {
|
|
|
55
55
|
"1/1 install surfaces ready",
|
|
56
56
|
colorize(`Newest in v${options.version}: ${release_message_default.message}`, "lime", color),
|
|
57
57
|
"",
|
|
58
|
-
`${colorize("Tools", "cyan", color)} ${colorize("(
|
|
58
|
+
`${colorize("Tools", "cyan", color)} ${colorize("(375 MCP tools)", "muted", color)}`,
|
|
59
59
|
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
60
60
|
toolRow("extract", ["extract_url", "map_site_urls", "extract_site", "audit_site", "directory_workflow"], color),
|
|
61
61
|
toolRow("build", ["create_editorial_reading_room", "rank_tracker_workflow", "portable HTML"], color),
|
|
@@ -150,18 +150,18 @@ var RawMapsAboutAttributeSchema = z.object({
|
|
|
150
150
|
|
|
151
151
|
// src/output/memory-library-sink.ts
|
|
152
152
|
async function postToMemoryLibrary(args) {
|
|
153
|
-
const
|
|
154
|
-
const
|
|
155
|
-
if (!
|
|
153
|
+
const key = process.env.MCP_SCRAPER_API_KEY?.trim();
|
|
154
|
+
const baseUrl = (process.env.MCP_SCRAPER_BASE_URL ?? "https://mcpscraper.dev").replace(/\/$/, "");
|
|
155
|
+
if (!key) return;
|
|
156
156
|
try {
|
|
157
|
-
const res = await fetch(
|
|
157
|
+
const res = await fetch(`${baseUrl}/memory/mcp-call`, {
|
|
158
158
|
method: "POST",
|
|
159
|
-
headers: { "content-type": "application/json" },
|
|
160
|
-
body: JSON.stringify({
|
|
159
|
+
headers: { "content-type": "application/json", "x-api-key": key },
|
|
160
|
+
body: JSON.stringify({ toolName: "libraryIngestTool", args })
|
|
161
161
|
});
|
|
162
162
|
const body = await res.json().catch(() => null);
|
|
163
|
-
if (!res.ok || body?.
|
|
164
|
-
console.warn("[memory-library-sink] ingest not accepted:", res.status, body?.
|
|
163
|
+
if (!res.ok || body?.ok === false) {
|
|
164
|
+
console.warn("[memory-library-sink] ingest not accepted:", res.status, body?.error ?? "");
|
|
165
165
|
}
|
|
166
166
|
} catch (err) {
|
|
167
167
|
console.warn("[memory-library-sink] ingest failed:", err?.message);
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
registerScheduledResultsMcpTools,
|
|
13
13
|
registerSerpIntelligenceCaptureTools,
|
|
14
14
|
resolveDeploymentProfile
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2JVZQGSN.js";
|
|
16
16
|
import {
|
|
17
17
|
renderInstallTerminal
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ABF2CGOZ.js";
|
|
19
19
|
import {
|
|
20
20
|
PACKAGE_VERSION
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-XIJI34RM.js";
|
|
22
22
|
|
|
23
23
|
// src/mcp/stdio-runtime.ts
|
|
24
24
|
import { readFileSync } from "fs";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
createSiteExtractContentReader,
|
|
11
11
|
createSiteExtractImageArtifact,
|
|
12
12
|
extractJobLimitInfo
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IHXAXYIS.js";
|
|
14
14
|
import "./chunk-OZJMVCDK.js";
|
|
15
15
|
import {
|
|
16
16
|
computeIssues,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
renderLinkReport
|
|
20
20
|
} from "./chunk-PGJQDMC2.js";
|
|
21
21
|
import "./chunk-DNM65UCK.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-4QMUF6XM.js";
|
|
23
23
|
import "./chunk-GGZEC22A.js";
|
|
24
24
|
import {
|
|
25
25
|
getDb
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
GmailServiceError,
|
|
8
8
|
normalizeGmailMessage,
|
|
9
9
|
parseGmailAddresses
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MZDNZQWT.js";
|
|
11
11
|
import "./chunk-C5Z4OFKW.js";
|
|
12
12
|
import "./chunk-T3MZISOF.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-4QMUF6XM.js";
|
|
14
14
|
import "./chunk-OPQIGAFB.js";
|
|
15
15
|
import "./chunk-YXNDOQXN.js";
|
|
16
16
|
export {
|
package/dist/index.cjs
CHANGED
|
@@ -4635,18 +4635,18 @@ var import_papaparse = __toESM(require("papaparse"), 1);
|
|
|
4635
4635
|
|
|
4636
4636
|
// src/output/memory-library-sink.ts
|
|
4637
4637
|
async function postToMemoryLibrary(args) {
|
|
4638
|
-
const
|
|
4639
|
-
const
|
|
4640
|
-
if (!
|
|
4638
|
+
const key = process.env.MCP_SCRAPER_API_KEY?.trim();
|
|
4639
|
+
const baseUrl = (process.env.MCP_SCRAPER_BASE_URL ?? "https://mcpscraper.dev").replace(/\/$/, "");
|
|
4640
|
+
if (!key) return;
|
|
4641
4641
|
try {
|
|
4642
|
-
const res = await fetch(
|
|
4642
|
+
const res = await fetch(`${baseUrl}/memory/mcp-call`, {
|
|
4643
4643
|
method: "POST",
|
|
4644
|
-
headers: { "content-type": "application/json" },
|
|
4645
|
-
body: JSON.stringify({
|
|
4644
|
+
headers: { "content-type": "application/json", "x-api-key": key },
|
|
4645
|
+
body: JSON.stringify({ toolName: "libraryIngestTool", args })
|
|
4646
4646
|
});
|
|
4647
4647
|
const body = await res.json().catch(() => null);
|
|
4648
|
-
if (!res.ok || body?.
|
|
4649
|
-
console.warn("[memory-library-sink] ingest not accepted:", res.status, body?.
|
|
4648
|
+
if (!res.ok || body?.ok === false) {
|
|
4649
|
+
console.warn("[memory-library-sink] ingest not accepted:", res.status, body?.error ?? "");
|
|
4650
4650
|
}
|
|
4651
4651
|
} catch (err) {
|
|
4652
4652
|
console.warn("[memory-library-sink] ingest failed:", err?.message);
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
harvest
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S24LFPL7.js";
|
|
4
4
|
import "./chunk-OM7HVEJ3.js";
|
|
5
5
|
import {
|
|
6
6
|
recordVendorUsage
|
|
7
7
|
} from "./chunk-OPQIGAFB.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-GXBZXWXB.js";
|
|
9
9
|
import "./chunk-YXNDOQXN.js";
|
|
10
10
|
|
|
11
11
|
// src/video/VideoGenerator.ts
|